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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (639) hide show
  1. package/dist/{_basePickBy-BlpD3CIQ.js → _basePickBy-BQMPE4-n.js} +3 -3
  2. package/dist/{_basePickBy-BlpD3CIQ.js.map → _basePickBy-BQMPE4-n.js.map} +1 -1
  3. package/dist/{_baseUniq-CO35kH5B.js → _baseUniq-Bdp_vFUv.js} +3 -3
  4. package/dist/{_baseUniq-CO35kH5B.js.map → _baseUniq-Bdp_vFUv.js.map} +1 -1
  5. package/dist/{alert-dialog-DXa-O6E4.js → alert-dialog-C4dLk25S.js} +5 -5
  6. package/dist/{alert-dialog-DXa-O6E4.js.map → alert-dialog-C4dLk25S.js.map} +1 -1
  7. package/dist/{arc-DyfKNDOh.js → arc-jVbrWVYZ.js} +3 -3
  8. package/dist/{arc-DyfKNDOh.js.map → arc-jVbrWVYZ.js.map} +1 -1
  9. package/dist/architecture-PBZL5I3N-Zk3GmKE8.js +3 -0
  10. package/dist/{architectureDiagram-2XIMDMQ5-B4qk6eh9.js → architectureDiagram-2XIMDMQ5-D5q0ma9h.js} +10 -10
  11. package/dist/{architectureDiagram-2XIMDMQ5-B4qk6eh9.js.map → architectureDiagram-2XIMDMQ5-D5q0ma9h.js.map} +1 -1
  12. package/dist/{array-DPBIBG3p.js → array-DXadUs1s.js} +1 -1
  13. package/dist/{array-DPBIBG3p.js.map → array-DXadUs1s.js.map} +1 -1
  14. package/dist/{arrow-up-BhjinjWg.js → arrow-up-CJJ5q2ht.js} +2 -2
  15. package/dist/{arrow-up-BhjinjWg.js.map → arrow-up-CJJ5q2ht.js.map} +1 -1
  16. package/dist/{avatar-CZGZhjvv.js → avatar-DIhd5zYT.js} +1 -1
  17. package/dist/{avatar-CZGZhjvv.js.map → avatar-DIhd5zYT.js.map} +1 -1
  18. package/dist/{badge-CAvV5GE2.js → badge-C2kAwL41.js} +1 -1
  19. package/dist/{badge-CAvV5GE2.js.map → badge-C2kAwL41.js.map} +1 -1
  20. package/dist/{blockDiagram-WCTKOSBZ-DdPMGZ7X.js → blockDiagram-WCTKOSBZ-BH3jwWeU.js} +13 -13
  21. package/dist/{blockDiagram-WCTKOSBZ-DdPMGZ7X.js.map → blockDiagram-WCTKOSBZ-BH3jwWeU.js.map} +1 -1
  22. package/dist/{button-19KWzy7c.js → button-BtTc7Ncu.js} +1 -1
  23. package/dist/{button-19KWzy7c.js.map → button-BtTc7Ncu.js.map} +1 -1
  24. package/dist/{c4Diagram-IC4MRINW-Du1j-C4R.js → c4Diagram-IC4MRINW-OFLrunYI.js} +7 -7
  25. package/dist/{c4Diagram-IC4MRINW-Du1j-C4R.js.map → c4Diagram-IC4MRINW-OFLrunYI.js.map} +1 -1
  26. package/dist/{carousel-CJ5lxMYs.js → carousel-T96UFALA.js} +3 -3
  27. package/dist/{carousel-CJ5lxMYs.js.map → carousel-T96UFALA.js.map} +1 -1
  28. package/dist/{channel-BHvJxX8j.js → channel-LRbq43st.js} +2 -2
  29. package/dist/{channel-BHvJxX8j.js.map → channel-LRbq43st.js.map} +1 -1
  30. package/dist/charts/area/index.js +1 -1
  31. package/dist/charts/bar/index.js +1 -1
  32. package/dist/charts/index.js +2 -2
  33. package/dist/charts/line/index.js +1 -1
  34. package/dist/charts/pie/index.js +1 -1
  35. package/dist/charts/radar/index.js +1 -1
  36. package/dist/charts/scatter/index.js +1 -1
  37. package/dist/charts/waterfall/index.js +1 -1
  38. package/dist/{check-CybgTpDT.js → check-cGnuDoWp.js} +2 -2
  39. package/dist/{check-CybgTpDT.js.map → check-cGnuDoWp.js.map} +1 -1
  40. package/dist/{chevron-down-C_008JAH.js → chevron-down-m05raooX.js} +2 -2
  41. package/dist/{chevron-down-C_008JAH.js.map → chevron-down-m05raooX.js.map} +1 -1
  42. package/dist/{chevron-right-DuHRAn8w.js → chevron-right-ByWVa5XY.js} +2 -2
  43. package/dist/{chevron-right-DuHRAn8w.js.map → chevron-right-ByWVa5XY.js.map} +1 -1
  44. package/dist/{chevron-up-BY5jyuW2.js → chevron-up-CtvY7fRK.js} +2 -2
  45. package/dist/{chevron-up-BY5jyuW2.js.map → chevron-up-CtvY7fRK.js.map} +1 -1
  46. package/dist/{chunk-4BX2VUAB-CL-dnlxR.js → chunk-4BX2VUAB-BS9gpN-y.js} +2 -2
  47. package/dist/{chunk-4BX2VUAB-CL-dnlxR.js.map → chunk-4BX2VUAB-BS9gpN-y.js.map} +1 -1
  48. package/dist/{chunk-55IACEB6-DxNTqHZ8.js → chunk-55IACEB6-DZ-UBhHX.js} +3 -3
  49. package/dist/{chunk-55IACEB6-DxNTqHZ8.js.map → chunk-55IACEB6-DZ-UBhHX.js.map} +1 -1
  50. package/dist/{chunk-7E7YKBS2-Bewg8t99.js → chunk-7E7YKBS2-BsywoVTt.js} +2 -2
  51. package/dist/{chunk-7E7YKBS2-Bewg8t99.js.map → chunk-7E7YKBS2-BsywoVTt.js.map} +1 -1
  52. package/dist/{chunk-7R4GIKGN-DiZ1HYFd.js → chunk-7R4GIKGN-DJmroLCH.js} +3 -3
  53. package/dist/{chunk-7R4GIKGN-DiZ1HYFd.js.map → chunk-7R4GIKGN-DJmroLCH.js.map} +1 -1
  54. package/dist/{chunk-C72U2L5F-BqOejReq.js → chunk-C72U2L5F-BwPwVDcP.js} +2 -2
  55. package/dist/{chunk-C72U2L5F-BqOejReq.js.map → chunk-C72U2L5F-BwPwVDcP.js.map} +1 -1
  56. package/dist/{chunk-EGIJ26TM-1-wU_wPi.js → chunk-EGIJ26TM-DKd5cEgn.js} +2 -2
  57. package/dist/{chunk-EGIJ26TM-1-wU_wPi.js.map → chunk-EGIJ26TM-DKd5cEgn.js.map} +1 -1
  58. package/dist/{chunk-FMBD7UC4-7bd068zf.js → chunk-FMBD7UC4-1IxrpdPX.js} +2 -2
  59. package/dist/{chunk-FMBD7UC4-7bd068zf.js.map → chunk-FMBD7UC4-1IxrpdPX.js.map} +1 -1
  60. package/dist/{chunk-GEFDOKGD-bXEkwPrJ.js → chunk-GEFDOKGD-DGJJEGSm.js} +7 -7
  61. package/dist/{chunk-GEFDOKGD-bXEkwPrJ.js.map → chunk-GEFDOKGD-DGJJEGSm.js.map} +1 -1
  62. package/dist/{chunk-GLR3WWYH-GIQ55uMn.js → chunk-GLR3WWYH-BDwmgwCA.js} +8 -8
  63. package/dist/{chunk-GLR3WWYH-GIQ55uMn.js.map → chunk-GLR3WWYH-BDwmgwCA.js.map} +1 -1
  64. package/dist/{chunk-HHEYEP7N-BdiTBCvb.js → chunk-HHEYEP7N-DJ1b-gA8.js} +4 -4
  65. package/dist/{chunk-HHEYEP7N-BdiTBCvb.js.map → chunk-HHEYEP7N-DJ1b-gA8.js.map} +1 -1
  66. package/dist/{chunk-JSJVCQXG-p-BUVvps.js → chunk-JSJVCQXG-Do17yYig.js} +5 -5
  67. package/dist/{chunk-JSJVCQXG-p-BUVvps.js.map → chunk-JSJVCQXG-Do17yYig.js.map} +1 -1
  68. package/dist/{chunk-KX2RTZJC-DopwIbE1.js → chunk-KX2RTZJC-d9jFqUAY.js} +3 -3
  69. package/dist/{chunk-KX2RTZJC-DopwIbE1.js.map → chunk-KX2RTZJC-d9jFqUAY.js.map} +1 -1
  70. package/dist/{chunk-KYZI473N-4Y4_4kXL.js → chunk-KYZI473N-BXYCe83A.js} +9 -9
  71. package/dist/{chunk-KYZI473N-4Y4_4kXL.js.map → chunk-KYZI473N-BXYCe83A.js.map} +1 -1
  72. package/dist/{chunk-L3YUKLVL-U6LYvPh7.js → chunk-L3YUKLVL-Y5k8UNMf.js} +2 -2
  73. package/dist/{chunk-L3YUKLVL-U6LYvPh7.js.map → chunk-L3YUKLVL-Y5k8UNMf.js.map} +1 -1
  74. package/dist/{chunk-MX3YWQON-DnBlqD44.js → chunk-MX3YWQON-D43mcq1f.js} +2 -2
  75. package/dist/{chunk-MX3YWQON-DnBlqD44.js.map → chunk-MX3YWQON-D43mcq1f.js.map} +1 -1
  76. package/dist/{chunk-NQ4KR5QH-BSylMz0X.js → chunk-NQ4KR5QH-C0nWShNk.js} +7 -7
  77. package/dist/{chunk-NQ4KR5QH-BSylMz0X.js.map → chunk-NQ4KR5QH-C0nWShNk.js.map} +1 -1
  78. package/dist/{chunk-O4XLMI2P-BcKxBhcn.js → chunk-O4XLMI2P-DtGEm9QX.js} +12 -12
  79. package/dist/{chunk-O4XLMI2P-BcKxBhcn.js.map → chunk-O4XLMI2P-DtGEm9QX.js.map} +1 -1
  80. package/dist/{chunk-OZEHJAEY-D6S6KbwY.js → chunk-OZEHJAEY-BsQ56PV-.js} +2 -2
  81. package/dist/{chunk-OZEHJAEY-D6S6KbwY.js.map → chunk-OZEHJAEY-BsQ56PV-.js.map} +1 -1
  82. package/dist/{chunk-PQ6SQG4A-DPz_e-Es.js → chunk-PQ6SQG4A-Cpfc5F4u.js} +3 -3
  83. package/dist/{chunk-PQ6SQG4A-DPz_e-Es.js.map → chunk-PQ6SQG4A-Cpfc5F4u.js.map} +1 -1
  84. package/dist/{chunk-PU5JKC2W-CAfe4Tg3.js → chunk-PU5JKC2W-DNpn_Yik.js} +5 -5
  85. package/dist/{chunk-PU5JKC2W-CAfe4Tg3.js.map → chunk-PU5JKC2W-DNpn_Yik.js.map} +1 -1
  86. package/dist/{chunk-QZHKN3VN-DMkPzlbH.js → chunk-QZHKN3VN-kDNdTVLo.js} +2 -2
  87. package/dist/{chunk-QZHKN3VN-DMkPzlbH.js.map → chunk-QZHKN3VN-kDNdTVLo.js.map} +1 -1
  88. package/dist/{chunk-R5LLSJPH-C90VQC8y.js → chunk-R5LLSJPH-c1IfaK5D.js} +2 -2
  89. package/dist/{chunk-R5LLSJPH-C90VQC8y.js.map → chunk-R5LLSJPH-c1IfaK5D.js.map} +1 -1
  90. package/dist/{chunk-WL4C6EOR-B2OMxQLL.js → chunk-WL4C6EOR-BV-op7zg.js} +10 -10
  91. package/dist/{chunk-WL4C6EOR-B2OMxQLL.js.map → chunk-WL4C6EOR-BV-op7zg.js.map} +1 -1
  92. package/dist/{chunk-XIRO2GV7-D1_jT4ch.js → chunk-XIRO2GV7-Bv1hlNLi.js} +2 -2
  93. package/dist/{chunk-XIRO2GV7-D1_jT4ch.js.map → chunk-XIRO2GV7-Bv1hlNLi.js.map} +1 -1
  94. package/dist/{chunk-XPW4576I-DkznIIIK.js → chunk-XPW4576I-BqiPnb3d.js} +2 -2
  95. package/dist/{chunk-XPW4576I-DkznIIIK.js.map → chunk-XPW4576I-BqiPnb3d.js.map} +1 -1
  96. package/dist/{chunk-XZSTWKYB-BZB_wvbZ.js → chunk-XZSTWKYB-C7maKWEr.js} +6 -6
  97. package/dist/{chunk-XZSTWKYB-BZB_wvbZ.js.map → chunk-XZSTWKYB-C7maKWEr.js.map} +1 -1
  98. package/dist/{chunk-YBOYWFTD-DVqQ1pen.js → chunk-YBOYWFTD-DkjEOcgZ.js} +4 -4
  99. package/dist/{chunk-YBOYWFTD-DVqQ1pen.js.map → chunk-YBOYWFTD-DkjEOcgZ.js.map} +1 -1
  100. package/dist/classDiagram-VBA2DB6C-DZfC0xPM.js +31 -0
  101. package/dist/{classDiagram-VBA2DB6C-DFfohpM0.js.map → classDiagram-VBA2DB6C-DZfC0xPM.js.map} +1 -1
  102. package/dist/classDiagram-v2-RAHNMMFH-CtWRD1ax.js +31 -0
  103. package/dist/{classDiagram-v2-RAHNMMFH-kUMm28FB.js.map → classDiagram-v2-RAHNMMFH-CtWRD1ax.js.map} +1 -1
  104. package/dist/{clone-DxI1nSTP.js → clone-CliVdNc8.js} +2 -2
  105. package/dist/{clone-DxI1nSTP.js.map → clone-CliVdNc8.js.map} +1 -1
  106. package/dist/{component-x2UxdKEC.js → component-C1Jiz1Ki.js} +1 -1
  107. package/dist/{component-x2UxdKEC.js.map → component-C1Jiz1Ki.js.map} +1 -1
  108. package/dist/components/index.js +3 -3
  109. package/dist/components/theme/accent-switcher.d.ts +2 -0
  110. package/dist/components/theme/accent-switcher.d.ts.map +1 -1
  111. package/dist/components/theme/accent-switcher.js +5 -1
  112. package/dist/components/theme/accent-switcher.js.map +1 -1
  113. package/dist/components/theme/density-switcher.d.ts +2 -0
  114. package/dist/components/theme/density-switcher.d.ts.map +1 -1
  115. package/dist/components/theme/density-switcher.js +5 -1
  116. package/dist/components/theme/density-switcher.js.map +1 -1
  117. package/dist/components/theme/font-stack-picker.d.ts +2 -0
  118. package/dist/components/theme/font-stack-picker.d.ts.map +1 -1
  119. package/dist/components/theme/font-stack-picker.js +5 -1
  120. package/dist/components/theme/font-stack-picker.js.map +1 -1
  121. package/dist/components/theme/glass-slider.d.ts +2 -0
  122. package/dist/components/theme/glass-slider.d.ts.map +1 -1
  123. package/dist/components/theme/glass-slider.js +21 -15
  124. package/dist/components/theme/glass-slider.js.map +1 -1
  125. package/dist/components/theme/icon-gallery-browser.d.ts +16 -0
  126. package/dist/components/theme/icon-gallery-browser.d.ts.map +1 -0
  127. package/dist/components/theme/icon-set-picker.d.ts +2 -0
  128. package/dist/components/theme/icon-set-picker.d.ts.map +1 -1
  129. package/dist/components/theme/icon-set-picker.js +29 -24
  130. package/dist/components/theme/icon-set-picker.js.map +1 -1
  131. package/dist/components/theme/icon-usage-matrix.d.ts +2 -0
  132. package/dist/components/theme/icon-usage-matrix.d.ts.map +1 -1
  133. package/dist/components/theme/icon-usage-matrix.js +11 -7
  134. package/dist/components/theme/icon-usage-matrix.js.map +1 -1
  135. package/dist/components/theme/index.js +3 -3
  136. package/dist/components/theme/radius-slider.d.ts +2 -0
  137. package/dist/components/theme/radius-slider.d.ts.map +1 -1
  138. package/dist/components/theme/radius-slider.js +17 -12
  139. package/dist/components/theme/radius-slider.js.map +1 -1
  140. package/dist/components/theme/theme-preset-grid.d.ts +2 -0
  141. package/dist/components/theme/theme-preset-grid.d.ts.map +1 -1
  142. package/dist/components/theme/theme-preset-grid.js +6 -2
  143. package/dist/components/theme/theme-preset-grid.js.map +1 -1
  144. package/dist/components/theme/theme-preview-tile.d.ts +2 -0
  145. package/dist/components/theme/theme-preview-tile.d.ts.map +1 -1
  146. package/dist/components/theme/theme-preview-tile.js +9 -5
  147. package/dist/components/theme/theme-preview-tile.js.map +1 -1
  148. package/dist/components/theme/theme-studio.d.ts +4 -0
  149. package/dist/components/theme/theme-studio.d.ts.map +1 -1
  150. package/dist/components/theme/theme-studio.js +2 -93
  151. package/dist/components/theme/theme-switcher.d.ts +2 -0
  152. package/dist/components/theme/theme-switcher.d.ts.map +1 -1
  153. package/dist/components/theme/theme-switcher.js +5 -1
  154. package/dist/components/theme/theme-switcher.js.map +1 -1
  155. package/dist/composites/metrics-card.js +1 -1
  156. package/dist/composites/per-case-stats-table.js +1 -1
  157. package/dist/composites/run-monitor.js +2 -2
  158. package/dist/{copy-Hv8btfHH.js → copy-CP6UzCoj.js} +2 -2
  159. package/dist/{copy-Hv8btfHH.js.map → copy-CP6UzCoj.js.map} +1 -1
  160. package/dist/{cose-bilkent-S5V4N54A-DSIl5_e8.js → cose-bilkent-S5V4N54A-DxM02fly.js} +4 -4
  161. package/dist/{cose-bilkent-S5V4N54A-DSIl5_e8.js.map → cose-bilkent-S5V4N54A-DxM02fly.js.map} +1 -1
  162. package/dist/{createLucideIcon-wKpAnzBe.js → createLucideIcon-Cfb5CZJx.js} +1 -1
  163. package/dist/{createLucideIcon-wKpAnzBe.js.map → createLucideIcon-Cfb5CZJx.js.map} +1 -1
  164. package/dist/{cytoscape.esm-klxrH6H1.js → cytoscape.esm-2vKMh7AJ.js} +1 -1
  165. package/dist/{cytoscape.esm-klxrH6H1.js.map → cytoscape.esm-2vKMh7AJ.js.map} +1 -1
  166. package/dist/{dagre-Bm7BZZKB.js → dagre-BqC9mhMk.js} +7 -7
  167. package/dist/{dagre-Bm7BZZKB.js.map → dagre-BqC9mhMk.js.map} +1 -1
  168. package/dist/{dagre-KLK3FWXG-B0rbfsw9.js → dagre-KLK3FWXG-DTKcsol6.js} +15 -15
  169. package/dist/{dagre-KLK3FWXG-B0rbfsw9.js.map → dagre-KLK3FWXG-DTKcsol6.js.map} +1 -1
  170. package/dist/{defaultLocale-Cql_qCPq.js → defaultLocale-PLHpRrsr.js} +1 -1
  171. package/dist/{defaultLocale-Cql_qCPq.js.map → defaultLocale-PLHpRrsr.js.map} +1 -1
  172. package/dist/{diagram-E7M64L7V-DWS26Zbm.js → diagram-E7M64L7V-Co7O3gub.js} +12 -12
  173. package/dist/{diagram-E7M64L7V-DWS26Zbm.js.map → diagram-E7M64L7V-Co7O3gub.js.map} +1 -1
  174. package/dist/{diagram-IFDJBPK2--zOQrB5O.js → diagram-IFDJBPK2-D-Enf1mK.js} +7 -7
  175. package/dist/{diagram-IFDJBPK2--zOQrB5O.js.map → diagram-IFDJBPK2-D-Enf1mK.js.map} +1 -1
  176. package/dist/{diagram-P4PSJMXO-DjNveg1t.js → diagram-P4PSJMXO-O8g_RIkM.js} +7 -7
  177. package/dist/{diagram-P4PSJMXO-DjNveg1t.js.map → diagram-P4PSJMXO-O8g_RIkM.js.map} +1 -1
  178. package/dist/display/avatar/index.js +1 -1
  179. package/dist/display/badge/index.js +1 -1
  180. package/dist/display/index.js +3 -3
  181. package/dist/display/markdown-viewer/index.js +1 -1
  182. package/dist/{dist-Dq1IoZXt.js → dist-B-HCSak9.js} +13 -13
  183. package/dist/{dist-Dq1IoZXt.js.map → dist-B-HCSak9.js.map} +1 -1
  184. package/dist/{dist-CbqFryer.js → dist-BhO08NBU.js} +5 -5
  185. package/dist/{dist-CbqFryer.js.map → dist-BhO08NBU.js.map} +1 -1
  186. package/dist/{dist-D0fg6pif.js → dist-BlNMcPtC.js} +2 -2
  187. package/dist/{dist-D0fg6pif.js.map → dist-BlNMcPtC.js.map} +1 -1
  188. package/dist/{dist-CSE7pO-4.js → dist-BrNloUiz.js} +1 -1
  189. package/dist/{dist-CSE7pO-4.js.map → dist-BrNloUiz.js.map} +1 -1
  190. package/dist/{dist-CcNjOWyQ.js → dist-Br_I_YIY.js} +2 -2
  191. package/dist/{dist-CcNjOWyQ.js.map → dist-Br_I_YIY.js.map} +1 -1
  192. package/dist/{dist-D0hHNX_3.js → dist-CDa1xTf4.js} +9 -9
  193. package/dist/{dist-D0hHNX_3.js.map → dist-CDa1xTf4.js.map} +1 -1
  194. package/dist/{dist-BCCeHAQm.js → dist-CWPamCJD.js} +2 -2
  195. package/dist/{dist-BCCeHAQm.js.map → dist-CWPamCJD.js.map} +1 -1
  196. package/dist/{dist-CVCn7F_m.js → dist-CetkIu6m.js} +1 -1
  197. package/dist/{dist-CVCn7F_m.js.map → dist-CetkIu6m.js.map} +1 -1
  198. package/dist/{dist-koa_pEtu.js → dist-CjZz16VT.js} +2 -2
  199. package/dist/{dist-koa_pEtu.js.map → dist-CjZz16VT.js.map} +1 -1
  200. package/dist/{dist-D5o6xae2.js → dist-DDlxLS_M.js} +2 -2
  201. package/dist/{dist-D5o6xae2.js.map → dist-DDlxLS_M.js.map} +1 -1
  202. package/dist/{dist-Cao8o5bZ.js → dist-DFW2ymX5.js} +1 -1
  203. package/dist/{dist-Cao8o5bZ.js.map → dist-DFW2ymX5.js.map} +1 -1
  204. package/dist/{dist-Dm7Xaded.js → dist-DHTh2jaC.js} +1 -1
  205. package/dist/{dist-Dm7Xaded.js.map → dist-DHTh2jaC.js.map} +1 -1
  206. package/dist/{dist-BBVMDH9A.js → dist-DN5XnB8I.js} +4 -4
  207. package/dist/{dist-BBVMDH9A.js.map → dist-DN5XnB8I.js.map} +1 -1
  208. package/dist/{dist-C0wG5dwG.js → dist-DYQiYO9a.js} +2 -2
  209. package/dist/{dist-C0wG5dwG.js.map → dist-DYQiYO9a.js.map} +1 -1
  210. package/dist/{dist-RmXz0NYF.js → dist-GA_FAY5r.js} +1 -1
  211. package/dist/{dist-RmXz0NYF.js.map → dist-GA_FAY5r.js.map} +1 -1
  212. package/dist/{dist-cMlzVrN6.js → dist-M-TigQUP.js} +3 -3
  213. package/dist/{dist-cMlzVrN6.js.map → dist-M-TigQUP.js.map} +1 -1
  214. package/dist/{dist-DxtM7vvP.js → dist-QzxcNtrD.js} +3 -3
  215. package/dist/{dist-DxtM7vvP.js.map → dist-QzxcNtrD.js.map} +1 -1
  216. package/dist/{dist-CTlQcJNK.js → dist-W53Bo1BJ.js} +1 -1
  217. package/dist/{dist-CTlQcJNK.js.map → dist-W53Bo1BJ.js.map} +1 -1
  218. package/dist/{dist-B1veE5DO.js → dist-bUQfhez2.js} +8 -8
  219. package/dist/{dist-B1veE5DO.js.map → dist-bUQfhez2.js.map} +1 -1
  220. package/dist/{dist-DGayZ3ok2.js → dist-e5OOjxMa.js} +2 -2
  221. package/dist/dist-e5OOjxMa.js.map +1 -0
  222. package/dist/{dist-CpMqmV-i.js → dist-r_mYhsAH.js} +2 -2
  223. package/dist/{dist-CpMqmV-i.js.map → dist-r_mYhsAH.js.map} +1 -1
  224. package/dist/{dropdown-menu-ChWWguC6.js → dropdown-menu-CxFMDZns.js} +7 -7
  225. package/dist/{dropdown-menu-ChWWguC6.js.map → dropdown-menu-CxFMDZns.js.map} +1 -1
  226. package/dist/{ellipsis-QzwbUxFu.js → ellipsis-CLIG9-2m.js} +2 -2
  227. package/dist/{ellipsis-QzwbUxFu.js.map → ellipsis-CLIG9-2m.js.map} +1 -1
  228. package/dist/{erDiagram-INFDFZHY-Ccs6kW39.js → erDiagram-INFDFZHY-C42JeR9I.js} +15 -15
  229. package/dist/{erDiagram-INFDFZHY-Ccs6kW39.js.map → erDiagram-INFDFZHY-C42JeR9I.js.map} +1 -1
  230. package/dist/{es2015-Bv2aaatg.js → es2015-CJnm4_FQ.js} +4 -4
  231. package/dist/{es2015-Bv2aaatg.js.map → es2015-CJnm4_FQ.js.map} +1 -1
  232. package/dist/{flowDiagram-PKNHOUZH-BFdCj6uy.js → flowDiagram-PKNHOUZH-DInJjOz3.js} +18 -18
  233. package/dist/{flowDiagram-PKNHOUZH-BFdCj6uy.js.map → flowDiagram-PKNHOUZH-DInJjOz3.js.map} +1 -1
  234. package/dist/{ganttDiagram-A5KZAMGK-11X4ChEO.js → ganttDiagram-A5KZAMGK-Dgp-4Yss.js} +8 -8
  235. package/dist/{ganttDiagram-A5KZAMGK-11X4ChEO.js.map → ganttDiagram-A5KZAMGK-Dgp-4Yss.js.map} +1 -1
  236. package/dist/gitGraph-HDMCJU4V-D_QsK6Rt.js +3 -0
  237. package/dist/{gitGraphDiagram-K3NZZRJ6-BaZX5GA5.js → gitGraphDiagram-K3NZZRJ6-Dr_X0dND.js} +8 -8
  238. package/dist/{gitGraphDiagram-K3NZZRJ6-BaZX5GA5.js.map → gitGraphDiagram-K3NZZRJ6-Dr_X0dND.js.map} +1 -1
  239. package/dist/{graphlib-DmFENmkJ.js → graphlib-ecencZTG.js} +4 -4
  240. package/dist/{graphlib-DmFENmkJ.js.map → graphlib-ecencZTG.js.map} +1 -1
  241. package/dist/index.d.ts +1 -0
  242. package/dist/index.d.ts.map +1 -1
  243. package/dist/index.js +121 -121
  244. package/dist/info-3K5VOQVL-BbLiZXwn.js +3 -0
  245. package/dist/{infoDiagram-LFFYTUFH-iswGOIAk.js → infoDiagram-LFFYTUFH-DajJJRvc.js} +5 -5
  246. package/dist/{infoDiagram-LFFYTUFH-iswGOIAk.js.map → infoDiagram-LFFYTUFH-DajJJRvc.js.map} +1 -1
  247. package/dist/{init-Bdvvvy1Z.js → init-DcLTaNW1.js} +1 -1
  248. package/dist/{init-Bdvvvy1Z.js.map → init-DcLTaNW1.js.map} +1 -1
  249. package/dist/{input-DwHjxF_w.js → input-BrmncNsd.js} +1 -1
  250. package/dist/{input-DwHjxF_w.js.map → input-BrmncNsd.js.map} +1 -1
  251. package/dist/{interactive-C6OMqZhG.js → interactive-CXfIDzyh.js} +1 -1
  252. package/dist/{interactive-C6OMqZhG.js.map → interactive-CXfIDzyh.js.map} +1 -1
  253. package/dist/{isArrayLikeObject-uEhZQuCW.js → isArrayLikeObject-Bjsxaqj7.js} +1 -1
  254. package/dist/{isArrayLikeObject-uEhZQuCW.js.map → isArrayLikeObject-Bjsxaqj7.js.map} +1 -1
  255. package/dist/{isEmpty-SB7gHWzg.js → isEmpty-CeZZUVts.js} +2 -2
  256. package/dist/{isEmpty-SB7gHWzg.js.map → isEmpty-CeZZUVts.js.map} +1 -1
  257. package/dist/{ishikawaDiagram-PHBUUO56-BYrA8GRt.js → ishikawaDiagram-PHBUUO56-qHBJm2LT.js} +6 -6
  258. package/dist/{ishikawaDiagram-PHBUUO56-BYrA8GRt.js.map → ishikawaDiagram-PHBUUO56-qHBJm2LT.js.map} +1 -1
  259. package/dist/{journeyDiagram-4ABVD52K-BlCQNVun.js → journeyDiagram-4ABVD52K-PgfYdoDM.js} +7 -7
  260. package/dist/{journeyDiagram-4ABVD52K-BlCQNVun.js.map → journeyDiagram-4ABVD52K-PgfYdoDM.js.map} +1 -1
  261. package/dist/{kanban-definition-K7BYSVSG-85hLaVO4.js → kanban-definition-K7BYSVSG-DFRT8j7A.js} +11 -11
  262. package/dist/{kanban-definition-K7BYSVSG-85hLaVO4.js.map → kanban-definition-K7BYSVSG-DFRT8j7A.js.map} +1 -1
  263. package/dist/{katex-DyctUUDD.js → katex-BZdHnXin.js} +1 -1
  264. package/dist/{katex-DyctUUDD.js.map → katex-BZdHnXin.js.map} +1 -1
  265. package/dist/{label-DaoC8KCo.js → label-D_TX0q0F.js} +4 -4
  266. package/dist/{label-DaoC8KCo.js.map → label-D_TX0q0F.js.map} +1 -1
  267. package/dist/layout-DJ2E8nU0.js +135 -0
  268. package/dist/layout-DJ2E8nU0.js.map +1 -0
  269. package/dist/{line-xLJn8e8J.js → line-Cq1AZT4f.js} +4 -4
  270. package/dist/{line-xLJn8e8J.js.map → line-Cq1AZT4f.js.map} +1 -1
  271. package/dist/{linear-BePtLBEt.js → linear-BnJD01Xn.js} +5 -5
  272. package/dist/{linear-BePtLBEt.js.map → linear-BnJD01Xn.js.map} +1 -1
  273. package/dist/{markdown-viewer-DrwjEcXp.js → markdown-viewer-CBRQVRMp.js} +1 -1
  274. package/dist/{markdown-viewer-DrwjEcXp.js.map → markdown-viewer-CBRQVRMp.js.map} +1 -1
  275. package/dist/{math--xT1IZMK.js → math-D4gdAuwG.js} +1 -1
  276. package/dist/{math--xT1IZMK.js.map → math-D4gdAuwG.js.map} +1 -1
  277. package/dist/{menubar-CZie7LCj.js → menubar-lQZ-0ckw.js} +13 -13
  278. package/dist/{menubar-CZie7LCj.js.map → menubar-lQZ-0ckw.js.map} +1 -1
  279. package/dist/{mermaid-parser.core-Bd7Ghv5c.js → mermaid-parser.core-Dz5qv4CI.js} +16 -16
  280. package/dist/{mermaid-parser.core-Bd7Ghv5c.js.map → mermaid-parser.core-Dz5qv4CI.js.map} +1 -1
  281. package/dist/{mermaid.core-beWmNAWY.js → mermaid.core-DTiIXVKa.js} +44 -44
  282. package/dist/{mermaid.core-beWmNAWY.js.map → mermaid.core-DTiIXVKa.js.map} +1 -1
  283. package/dist/{mindmap-definition-YRQLILUH-CNBsYwDI.js → mindmap-definition-YRQLILUH-D95OPRMh.js} +13 -13
  284. package/dist/{mindmap-definition-YRQLILUH-CNBsYwDI.js.map → mindmap-definition-YRQLILUH-D95OPRMh.js.map} +1 -1
  285. package/dist/{navigation-menu-Db2QQ70P.js → navigation-menu-BpZTlEU0.js} +14 -14
  286. package/dist/{navigation-menu-Db2QQ70P.js.map → navigation-menu-BpZTlEU0.js.map} +1 -1
  287. package/dist/{ordinal-BKo-UFaW.js → ordinal-CC9tfh_g.js} +2 -2
  288. package/dist/{ordinal-BKo-UFaW.js.map → ordinal-CC9tfh_g.js.map} +1 -1
  289. package/dist/packet-RMMSAZCW-D72DRs1N.js +3 -0
  290. package/dist/{pagination-BmFjVnmV.js → pagination-CCjNavtQ.js} +5 -5
  291. package/dist/{pagination-BmFjVnmV.js.map → pagination-CCjNavtQ.js.map} +1 -1
  292. package/dist/{path-Z-HG_8i_.js → path-y0uQCOMW.js} +1 -1
  293. package/dist/{path-Z-HG_8i_.js.map → path-y0uQCOMW.js.map} +1 -1
  294. package/dist/pie-UPGHQEXC-C8RDLrEi.js +3 -0
  295. package/dist/{pieDiagram-SKSYHLDU-BMrGgUAv.js → pieDiagram-SKSYHLDU-BREEn_Sk.js} +12 -12
  296. package/dist/{pieDiagram-SKSYHLDU-BMrGgUAv.js.map → pieDiagram-SKSYHLDU-BREEn_Sk.js.map} +1 -1
  297. package/dist/primitives/button/index.js +1 -1
  298. package/dist/primitives/index.js +3 -3
  299. package/dist/primitives/input/index.js +1 -1
  300. package/dist/primitives/live-log-tail.js +1 -1
  301. package/dist/primitives/phase-progress.js +1 -1
  302. package/dist/primitives/sse-live-badge.js +1 -1
  303. package/dist/primitives/toggle/index.js +1 -1
  304. package/dist/primitives/yaml-override-editor.js +1 -1
  305. package/dist/primitives-BzQ6EvIx.js +380 -0
  306. package/dist/primitives-BzQ6EvIx.js.map +1 -0
  307. package/dist/{quadrantDiagram-337W2JSQ-kFO50yPy.js → quadrantDiagram-337W2JSQ-CcKc-h2o.js} +5 -5
  308. package/dist/{quadrantDiagram-337W2JSQ-kFO50yPy.js.map → quadrantDiagram-337W2JSQ-CcKc-h2o.js.map} +1 -1
  309. package/dist/radar-KQ55EAFF-DhmvjiyN.js +3 -0
  310. package/dist/{radio-group-Dum8cfXo.js → radio-group-8GO9_jRN.js} +10 -10
  311. package/dist/{radio-group-Dum8cfXo.js.map → radio-group-8GO9_jRN.js.map} +1 -1
  312. package/dist/react/app-switcher.js +1 -1
  313. package/dist/react/brand.js +1 -1
  314. package/dist/react/consent/preferences.js +1 -1
  315. package/dist/react/editors/code-editor.js +1 -1
  316. package/dist/react/editors/diff-viewer.js +1 -1
  317. package/dist/react/editors/json-viewer.js +1 -1
  318. package/dist/react/editors/log-viewer.js +1 -1
  319. package/dist/react/editors/yaml-editor.js +1 -1
  320. package/dist/react/feedback/notification-banner.js +2 -2
  321. package/dist/react/hooks/useSSE.js +1 -1
  322. package/dist/react/hooks/useStorage.js +1 -1
  323. package/dist/react/layout/app-shell.js +1 -1
  324. package/dist/react/layout/browser-layout.d.ts +12 -0
  325. package/dist/react/layout/browser-layout.d.ts.map +1 -0
  326. package/dist/react/layout/detail-header.d.ts +13 -0
  327. package/dist/react/layout/detail-header.d.ts.map +1 -0
  328. package/dist/react/layout/index.d.ts +4 -0
  329. package/dist/react/layout/index.d.ts.map +1 -1
  330. package/dist/react/layout/index.js +3 -2
  331. package/dist/react/layout/page-frame.d.ts +11 -0
  332. package/dist/react/layout/page-frame.d.ts.map +1 -0
  333. package/dist/react/layout/page-header.js +1 -1
  334. package/dist/react/layout/sub-nav.d.ts +15 -0
  335. package/dist/react/layout/sub-nav.d.ts.map +1 -0
  336. package/dist/react/primitives/alert-dialog.js +1 -1
  337. package/dist/react/primitives/alert.js +3 -3
  338. package/dist/react/primitives/animated-counter.js +1 -1
  339. package/dist/react/primitives/aspect-ratio.js +1 -1
  340. package/dist/react/primitives/attack-path.d.ts +1 -1
  341. package/dist/react/primitives/attack-path.js +2 -2
  342. package/dist/react/primitives/avatar.js +2 -2
  343. package/dist/react/primitives/badge.d.ts +1 -1
  344. package/dist/react/primitives/badge.js +3 -3
  345. package/dist/react/primitives/breadcrumb.js +3 -3
  346. package/dist/react/primitives/button.js +3 -3
  347. package/dist/react/primitives/calendar.js +1 -1
  348. package/dist/react/primitives/card.js +1 -1
  349. package/dist/react/primitives/carousel.js +1 -1
  350. package/dist/react/primitives/chart-area.js +1 -1
  351. package/dist/react/primitives/chart-bar.js +1 -1
  352. package/dist/react/primitives/chart-candlestick.js +1 -1
  353. package/dist/react/primitives/chart-frame.d.ts +14 -0
  354. package/dist/react/primitives/chart-frame.d.ts.map +1 -0
  355. package/dist/react/primitives/chart-funnel.js +1 -1
  356. package/dist/react/primitives/chart-gauge.js +1 -1
  357. package/dist/react/primitives/chart-heatmap.js +1 -1
  358. package/dist/react/primitives/chart-line.js +1 -1
  359. package/dist/react/primitives/chart-pie.js +1 -1
  360. package/dist/react/primitives/chart-radar.js +1 -1
  361. package/dist/react/primitives/chart-sankey.js +1 -1
  362. package/dist/react/primitives/chart-scatter.js +1 -1
  363. package/dist/react/primitives/chart-sparkline.js +1 -1
  364. package/dist/react/primitives/chart-treemap.js +1 -1
  365. package/dist/react/primitives/chart-waterfall.js +1 -1
  366. package/dist/react/primitives/chat-drawer.d.ts +13 -0
  367. package/dist/react/primitives/chat-drawer.d.ts.map +1 -0
  368. package/dist/react/primitives/chat-input.d.ts +10 -0
  369. package/dist/react/primitives/chat-input.d.ts.map +1 -0
  370. package/dist/react/primitives/checkbox.js +1 -1
  371. package/dist/react/primitives/code-block.js +3 -3
  372. package/dist/react/primitives/code-viewer.js +3 -3
  373. package/dist/react/primitives/collapsible.js +3 -3
  374. package/dist/react/primitives/color-picker.js +1 -1
  375. package/dist/react/primitives/context-menu.js +1 -1
  376. package/dist/react/primitives/copy-button.js +4 -4
  377. package/dist/react/primitives/cron-editor.js +1 -1
  378. package/dist/react/primitives/cvss-badge.d.ts +1 -1
  379. package/dist/react/primitives/cvss-badge.js +2 -2
  380. package/dist/react/primitives/dashboard-metric-card.d.ts +18 -0
  381. package/dist/react/primitives/dashboard-metric-card.d.ts.map +1 -0
  382. package/dist/react/primitives/data-field.d.ts +13 -0
  383. package/dist/react/primitives/data-field.d.ts.map +1 -0
  384. package/dist/react/primitives/data-grid.js +4 -4
  385. package/dist/react/primitives/data-table.js +2 -2
  386. package/dist/react/primitives/date-picker.js +1 -1
  387. package/dist/react/primitives/detection-status.d.ts +1 -1
  388. package/dist/react/primitives/detection-status.js +2 -2
  389. package/dist/react/primitives/dialog.js +3 -3
  390. package/dist/react/primitives/drawer.js +3 -3
  391. package/dist/react/primitives/dropdown-menu.js +1 -1
  392. package/dist/react/primitives/empty-state.js +1 -1
  393. package/dist/react/primitives/field.js +1 -1
  394. package/dist/react/primitives/file-tree.js +1 -1
  395. package/dist/react/primitives/flow-diagram.js +1 -1
  396. package/dist/react/primitives/heatmap-legend.js +1 -1
  397. package/dist/react/primitives/heatmap-toolbar.js +2 -2
  398. package/dist/react/primitives/hover-card.js +1 -1
  399. package/dist/react/primitives/index.d.ts +8 -0
  400. package/dist/react/primitives/index.d.ts.map +1 -1
  401. package/dist/react/primitives/index.js +84 -83
  402. package/dist/react/primitives/input.js +1 -1
  403. package/dist/react/primitives/json-path-browser.js +1 -1
  404. package/dist/react/primitives/kanban.js +1 -1
  405. package/dist/react/primitives/kbd.js +1 -1
  406. package/dist/react/primitives/label.js +1 -1
  407. package/dist/react/primitives/map.js +1 -1
  408. package/dist/react/primitives/markdown-viewer.js +0 -0
  409. package/dist/react/primitives/menubar.js +1 -1
  410. package/dist/react/primitives/mermaid-diagram.js +1 -1
  411. package/dist/react/primitives/metric-tile.js +1 -1
  412. package/dist/react/primitives/mitre-matrix.d.ts +1 -1
  413. package/dist/react/primitives/mitre-matrix.js +2 -2
  414. package/dist/react/primitives/modal.js +3 -3
  415. package/dist/react/primitives/navigation-menu.js +1 -1
  416. package/dist/react/primitives/network-graph.js +1 -1
  417. package/dist/react/primitives/notification-center.js +4 -4
  418. package/dist/react/primitives/notification-center.js.map +1 -1
  419. package/dist/react/primitives/pagination.js +1 -1
  420. package/dist/react/primitives/popover.js +1 -1
  421. package/dist/react/primitives/progress.js +2 -2
  422. package/dist/react/primitives/query-boundary.d.ts +15 -0
  423. package/dist/react/primitives/query-boundary.d.ts.map +1 -0
  424. package/dist/react/primitives/radio-group.js +1 -1
  425. package/dist/react/primitives/rule-editor.js +1 -1
  426. package/dist/react/primitives/score-ring.d.ts +13 -0
  427. package/dist/react/primitives/score-ring.d.ts.map +1 -0
  428. package/dist/react/primitives/scroll-area.js +1 -1
  429. package/dist/react/primitives/search.js +3 -3
  430. package/dist/react/primitives/section-panel.d.ts +11 -0
  431. package/dist/react/primitives/section-panel.d.ts.map +1 -0
  432. package/dist/react/primitives/select.js +1 -1
  433. package/dist/react/primitives/separator.js +1 -1
  434. package/dist/react/primitives/severity-indicator.d.ts +1 -1
  435. package/dist/react/primitives/severity-indicator.js +2 -2
  436. package/dist/react/primitives/sheet.js +3 -3
  437. package/dist/react/primitives/skeleton.js +1 -1
  438. package/dist/react/primitives/slide-panel.js +2 -2
  439. package/dist/react/primitives/slider.js +1 -1
  440. package/dist/react/primitives/spinner.js +1 -1
  441. package/dist/react/primitives/split-pane.js +1 -1
  442. package/dist/react/primitives/stat-card.js +2 -2
  443. package/dist/react/primitives/status-bar.js +1 -1
  444. package/dist/react/primitives/status-dot.js +1 -1
  445. package/dist/react/primitives/stepper.js +3 -3
  446. package/dist/react/primitives/switch.js +1 -1
  447. package/dist/react/primitives/table.js +1 -1
  448. package/dist/react/primitives/tabs.js +1 -1
  449. package/dist/react/primitives/tag-input.js +1 -1
  450. package/dist/react/primitives/terminal.js +1 -1
  451. package/dist/react/primitives/textarea.js +1 -1
  452. package/dist/react/primitives/timeline.js +1 -1
  453. package/dist/react/primitives/toast.js +1 -1
  454. package/dist/react/primitives/toggle.js +1 -1
  455. package/dist/react/primitives/tooltip.js +1 -1
  456. package/dist/react/primitives/tree-view.js +2 -2
  457. package/dist/react/primitives/typography.js +1 -1
  458. package/dist/react/primitives/uptime-bar.js +1 -1
  459. package/dist/react/primitives/vulnerability-card.d.ts +1 -1
  460. package/dist/react/primitives/vulnerability-card.js +2 -2
  461. package/dist/react/sidebar.js +2 -2
  462. package/dist/react/theme-studio.js +1 -1
  463. package/dist/react/theme-toggle.js +1 -1
  464. package/dist/react/topology.js +1 -1
  465. package/dist/react.js +103 -103
  466. package/dist/{requirementDiagram-Z7DCOOCP-D2Oxfw6G.js → requirementDiagram-Z7DCOOCP-aPcaPduF.js} +13 -13
  467. package/dist/{requirementDiagram-Z7DCOOCP-D2Oxfw6G.js.map → requirementDiagram-Z7DCOOCP-aPcaPduF.js.map} +1 -1
  468. package/dist/{rough.esm-Czyj4U3Q.js → rough.esm-C9rQ9YkE.js} +1 -1
  469. package/dist/{rough.esm-Czyj4U3Q.js.map → rough.esm-C9rQ9YkE.js.map} +1 -1
  470. package/dist/{sankeyDiagram-WA2Y5GQK-q1_lwNBY.js → sankeyDiagram-WA2Y5GQK-CO_lUqQX.js} +5 -5
  471. package/dist/{sankeyDiagram-WA2Y5GQK-q1_lwNBY.js.map → sankeyDiagram-WA2Y5GQK-CO_lUqQX.js.map} +1 -1
  472. package/dist/{scroll-area-CR1iK8Af.js → scroll-area-C_oeG0js.js} +8 -8
  473. package/dist/{scroll-area-CR1iK8Af.js.map → scroll-area-C_oeG0js.js.map} +1 -1
  474. package/dist/{search-CrxnZfZ5.js → search-Cu20LdaQ.js} +2 -2
  475. package/dist/{search-CrxnZfZ5.js.map → search-Cu20LdaQ.js.map} +1 -1
  476. package/dist/security/index.d.ts +2 -0
  477. package/dist/security/index.d.ts.map +1 -1
  478. package/dist/security/index.js +7 -6
  479. package/dist/security/mitre-data.d.ts +38 -0
  480. package/dist/security/mitre-data.d.ts.map +1 -0
  481. package/dist/security-AzmGrY2-.js +77 -0
  482. package/dist/security-AzmGrY2-.js.map +1 -0
  483. package/dist/{select-BX7KT3VP.js → select-Bc7Gn3Oa.js} +19 -19
  484. package/dist/{select-BX7KT3VP.js.map → select-Bc7Gn3Oa.js.map} +1 -1
  485. package/dist/{separator-C6KfB7ww.js → separator-C-OWzLst.js} +3 -3
  486. package/dist/{separator-C6KfB7ww.js.map → separator-C-OWzLst.js.map} +1 -1
  487. package/dist/{sequenceDiagram-2WXFIKYE-BCEaH0s_.js → sequenceDiagram-2WXFIKYE-D7Vh1Zld.js} +9 -9
  488. package/dist/{sequenceDiagram-2WXFIKYE-BCEaH0s_.js.map → sequenceDiagram-2WXFIKYE-D7Vh1Zld.js.map} +1 -1
  489. package/dist/{series-DMc2ZYyj.js → series-DrBALkNS.js} +2 -2
  490. package/dist/{series-DMc2ZYyj.js.map → series-DrBALkNS.js.map} +1 -1
  491. package/dist/services/index.js +2 -2
  492. package/dist/services/sse-react.js +1 -1
  493. package/dist/services/sse.js +1 -1
  494. package/dist/services/theme-engine/engine.d.ts.map +1 -1
  495. package/dist/services/theme-engine/fonts.d.ts.map +1 -1
  496. package/dist/services/theme-engine/icons.d.ts.map +1 -1
  497. package/dist/services/theme-engine/index.js +120 -48
  498. package/dist/services/theme-engine/index.js.map +1 -1
  499. package/dist/services/theme-engine/test-helpers.d.ts +13 -0
  500. package/dist/services/theme-engine/test-helpers.d.ts.map +1 -0
  501. package/dist/services/toast-react.js +2 -2
  502. package/dist/sidebar/index.js +1 -1
  503. package/dist/{slider-CLgdcoKC.js → slider-CJoWbXQt.js} +10 -10
  504. package/dist/{slider-CLgdcoKC.js.map → slider-CJoWbXQt.js.map} +1 -1
  505. package/dist/{src-hxErHTV1.js → src-BhNgmpel.js} +2 -2
  506. package/dist/{src-hxErHTV1.js.map → src-BhNgmpel.js.map} +1 -1
  507. package/dist/{src-BEYP07TO.js → src-D1EMXotX.js} +1 -1
  508. package/dist/{src-BEYP07TO.js.map → src-D1EMXotX.js.map} +1 -1
  509. package/dist/{sse-D0HLjufB.js → sse-DCaj9UFJ.js} +1 -1
  510. package/dist/{sse-D0HLjufB.js.map → sse-DCaj9UFJ.js.map} +1 -1
  511. package/dist/{stateDiagram-RAJIS63D-B-Mu-_BR.js → stateDiagram-RAJIS63D-DdiY5cf3.js} +18 -18
  512. package/dist/{stateDiagram-RAJIS63D-B-Mu-_BR.js.map → stateDiagram-RAJIS63D-DdiY5cf3.js.map} +1 -1
  513. package/dist/stateDiagram-v2-FVOUBMTO-CAWy0Pkh.js +29 -0
  514. package/dist/{stateDiagram-v2-FVOUBMTO-Cnp2uGxd.js.map → stateDiagram-v2-FVOUBMTO-CAWy0Pkh.js.map} +1 -1
  515. package/dist/{storage-B-gK537W.js → storage-BUlr2J4R.js} +1 -1
  516. package/dist/{storage-B-gK537W.js.map → storage-BUlr2J4R.js.map} +1 -1
  517. package/dist/styles/layout.css +18 -18
  518. package/dist/styles/sidebar.css +31 -19
  519. package/dist/styles/tenant-ui.css +34 -34
  520. package/dist/styles/theme-engine.css +546 -23
  521. package/dist/styles/theme.css +1 -0
  522. package/dist/styles/tokens.css +69 -34
  523. package/dist/styles/ui.css +5 -5
  524. package/dist/{switch-CoTkNGEB.js → switch-Dcd3Fyw_.js} +7 -7
  525. package/dist/{switch-CoTkNGEB.js.map → switch-Dcd3Fyw_.js.map} +1 -1
  526. package/dist/{tabs-BT2WAQcK.js → tabs-8AT2ntg_.js} +8 -8
  527. package/dist/{tabs-BT2WAQcK.js.map → tabs-8AT2ntg_.js.map} +1 -1
  528. package/dist/theme-studio-CN9Ipb9W.js +236 -0
  529. package/dist/theme-studio-CN9Ipb9W.js.map +1 -0
  530. package/dist/{theme-toggle-Csyj-tLm.js → theme-toggle-glKWbKG8.js} +2 -2
  531. package/dist/{theme-toggle-Csyj-tLm.js.map → theme-toggle-glKWbKG8.js.map} +1 -1
  532. package/dist/{timeline-definition-YZTLITO2-B0SegHNN.js → timeline-definition-YZTLITO2-CjxxCuOg.js} +5 -5
  533. package/dist/{timeline-definition-YZTLITO2-B0SegHNN.js.map → timeline-definition-YZTLITO2-CjxxCuOg.js.map} +1 -1
  534. package/dist/{toast-DRNPdj-R.js → toast-CawTm-7V.js} +6 -6
  535. package/dist/{toast-DRNPdj-R.js.map → toast-CawTm-7V.js.map} +1 -1
  536. package/dist/{toggle-DJJEPXXE.js → toggle-C8sazHXX.js} +7 -7
  537. package/dist/{toggle-DJJEPXXE.js.map → toggle-C8sazHXX.js.map} +1 -1
  538. package/dist/{toggle-D-WMiAg3.js → toggle-IUUynh_v.js} +1 -1
  539. package/dist/{toggle-D-WMiAg3.js.map → toggle-IUUynh_v.js.map} +1 -1
  540. package/dist/{tooltip-DuC73a5E.js → tooltip-NKOSxS28.js} +11 -11
  541. package/dist/{tooltip-DuC73a5E.js.map → tooltip-NKOSxS28.js.map} +1 -1
  542. package/dist/{topology-C4Q_kT9X.js → topology-C8cyIHlB.js} +5 -5
  543. package/dist/{topology-C4Q_kT9X.js.map → topology-C8cyIHlB.js.map} +1 -1
  544. package/dist/treemap-KZPCXAKY-BvLvHb2t.js +3 -0
  545. package/dist/{triangle-alert-CKjGAvtd.js → triangle-alert-BtwDDOUp.js} +2 -2
  546. package/dist/{triangle-alert-CKjGAvtd.js.map → triangle-alert-BtwDDOUp.js.map} +1 -1
  547. package/dist/types/confidence.d.ts +66 -0
  548. package/dist/types/confidence.d.ts.map +1 -0
  549. package/dist/types/index.d.ts +2 -0
  550. package/dist/types/index.d.ts.map +1 -0
  551. package/dist/utils/index.d.ts +3 -0
  552. package/dist/utils/index.d.ts.map +1 -1
  553. package/dist/utils/index.js +6 -6
  554. package/dist/utils/sage-analysis.d.ts +51 -0
  555. package/dist/utils/sage-analysis.d.ts.map +1 -0
  556. package/dist/utils/score.d.ts +58 -0
  557. package/dist/utils/score.d.ts.map +1 -0
  558. package/dist/utils/status-tone.d.ts +4 -0
  559. package/dist/utils/status-tone.d.ts.map +1 -0
  560. package/dist/{utils-B7XIe3qq.js → utils-DcOSDVkb.js} +1 -1
  561. package/dist/{utils-B7XIe3qq.js.map → utils-DcOSDVkb.js.map} +1 -1
  562. package/dist/{utils-CHEq9Vpx.js → utils-JB2cYPor.js} +120 -2
  563. package/dist/utils-JB2cYPor.js.map +1 -0
  564. package/dist/{value-CybtvyUg.js → value-gSPnIECy.js} +2 -2
  565. package/dist/{value-CybtvyUg.js.map → value-gSPnIECy.js.map} +1 -1
  566. package/dist/{vennDiagram-LZ73GAT5-ClN0stHq.js → vennDiagram-LZ73GAT5-FqpGoq2s.js} +7 -7
  567. package/dist/{vennDiagram-LZ73GAT5-ClN0stHq.js.map → vennDiagram-LZ73GAT5-FqpGoq2s.js.map} +1 -1
  568. package/dist/visualization/mermaid-diagram/index.js +1 -1
  569. package/dist/{x-BleQvk5v.js → x-D2ovnRiN.js} +2 -2
  570. package/dist/{x-BleQvk5v.js.map → x-D2ovnRiN.js.map} +1 -1
  571. package/dist/{xychartDiagram-JWTSCODW-DjFaG2VD.js → xychartDiagram-JWTSCODW-BNEAK79X.js} +10 -10
  572. package/dist/{xychartDiagram-JWTSCODW-DjFaG2VD.js.map → xychartDiagram-JWTSCODW-BNEAK79X.js.map} +1 -1
  573. package/package.json +1 -1
  574. package/src/components/theme/accent-switcher.ts +9 -2
  575. package/src/components/theme/density-switcher.ts +7 -1
  576. package/src/components/theme/font-stack-picker.ts +7 -1
  577. package/src/components/theme/glass-slider.ts +19 -8
  578. package/src/components/theme/icon-gallery-browser.ts +191 -0
  579. package/src/components/theme/icon-set-picker.ts +19 -8
  580. package/src/components/theme/icon-usage-matrix.ts +15 -1
  581. package/src/components/theme/radius-slider.ts +14 -6
  582. package/src/components/theme/theme-preset-grid.ts +8 -2
  583. package/src/components/theme/theme-preview-tile.ts +11 -3
  584. package/src/components/theme/theme-studio-review.test.ts +253 -0
  585. package/src/components/theme/theme-studio.ts +100 -61
  586. package/src/components/theme/theme-switcher.ts +7 -1
  587. package/src/index.ts +11 -0
  588. package/src/react/layout/browser-layout.tsx +54 -0
  589. package/src/react/layout/detail-header.tsx +42 -0
  590. package/src/react/layout/index.ts +4 -0
  591. package/src/react/layout/page-frame.tsx +32 -0
  592. package/src/react/layout/sub-nav.tsx +72 -0
  593. package/src/react/primitives/chart-frame.tsx +51 -0
  594. package/src/react/primitives/chat-drawer.tsx +94 -0
  595. package/src/react/primitives/chat-input.tsx +134 -0
  596. package/src/react/primitives/dashboard-metric-card.tsx +78 -0
  597. package/src/react/primitives/data-field.tsx +54 -0
  598. package/src/react/primitives/index.ts +13 -0
  599. package/src/react/primitives/notification-center.tsx +3 -3
  600. package/src/react/primitives/query-boundary.tsx +71 -0
  601. package/src/react/primitives/score-ring.tsx +78 -0
  602. package/src/react/primitives/section-panel.tsx +42 -0
  603. package/src/security/index.ts +4 -0
  604. package/src/security/mitre-data.ts +60 -0
  605. package/src/services/theme-engine/engine.test.ts +3 -25
  606. package/src/services/theme-engine/engine.ts +35 -9
  607. package/src/services/theme-engine/fonts.ts +4 -0
  608. package/src/services/theme-engine/icons.ts +76 -9
  609. package/src/services/theme-engine/palettes.ts +2 -2
  610. package/src/services/theme-engine/test-helpers.ts +37 -0
  611. package/src/styles/layout.css +18 -18
  612. package/src/styles/sidebar.css +31 -19
  613. package/src/styles/tenant-ui.css +34 -34
  614. package/src/styles/theme-engine.css +546 -23
  615. package/src/styles/theme.css +1 -0
  616. package/src/styles/tokens.css +69 -34
  617. package/src/styles/ui.css +5 -5
  618. package/src/types/confidence.ts +72 -0
  619. package/src/types/index.ts +9 -0
  620. package/src/utils/__tests__/sage-analysis.test.ts +41 -0
  621. package/src/utils/__tests__/score.test.ts +232 -0
  622. package/src/utils/__tests__/status-tone.test.ts +164 -0
  623. package/src/utils/index.ts +29 -0
  624. package/src/utils/sage-analysis.ts +62 -0
  625. package/src/utils/score.ts +123 -0
  626. package/src/utils/status-tone.ts +48 -0
  627. package/dist/architecture-PBZL5I3N-gCfUhEfQ.js +0 -3
  628. package/dist/classDiagram-VBA2DB6C-DFfohpM0.js +0 -31
  629. package/dist/classDiagram-v2-RAHNMMFH-kUMm28FB.js +0 -31
  630. package/dist/components/theme/theme-studio.js.map +0 -1
  631. package/dist/dist-DGayZ3ok2.js.map +0 -1
  632. package/dist/gitGraph-HDMCJU4V--53HTu2M.js +0 -3
  633. package/dist/info-3K5VOQVL-CmVeZuiG.js +0 -3
  634. package/dist/packet-RMMSAZCW-jFj7IW8A.js +0 -3
  635. package/dist/pie-UPGHQEXC-osqmeuax.js +0 -3
  636. package/dist/radar-KQ55EAFF-Dj2g5Z-W.js +0 -3
  637. package/dist/stateDiagram-v2-FVOUBMTO-Cnp2uGxd.js +0 -29
  638. package/dist/treemap-KZPCXAKY-DQ1GEudW.js +0 -3
  639. package/dist/utils-CHEq9Vpx.js.map +0 -1
@@ -1,6 +1,6 @@
1
- import { t as e } from "./utils-B7XIe3qq.js";
2
- import { t } from "./dist-BCCeHAQm.js";
3
- import { n } from "./dist-D0fg6pif.js";
1
+ import { t as e } from "./utils-DcOSDVkb.js";
2
+ import { t } from "./dist-CWPamCJD.js";
3
+ import { n } from "./dist-BlNMcPtC.js";
4
4
  import * as r from "react";
5
5
  import { jsx as i } from "react/jsx-runtime";
6
6
  import "react-dom";
@@ -52,4 +52,4 @@ u.displayName = c.displayName;
52
52
  //#endregion
53
53
  export { u as t };
54
54
 
55
- //# sourceMappingURL=label-DaoC8KCo.js.map
55
+ //# sourceMappingURL=label-D_TX0q0F.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"label-DaoC8KCo.js","names":["React","Label","React"],"sources":["../node_modules/@radix-ui/react-label/node_modules/@radix-ui/react-primitive/dist/index.mjs","../node_modules/@radix-ui/react-label/dist/index.mjs","../src/react/primitives/label.tsx"],"sourcesContent":["// src/primitive.tsx\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport { createSlot } from \"@radix-ui/react-slot\";\nimport { jsx } from \"react/jsx-runtime\";\nvar NODES = [\n \"a\",\n \"button\",\n \"div\",\n \"form\",\n \"h2\",\n \"h3\",\n \"img\",\n \"input\",\n \"label\",\n \"li\",\n \"nav\",\n \"ol\",\n \"p\",\n \"select\",\n \"span\",\n \"svg\",\n \"ul\"\n];\nvar Primitive = NODES.reduce((primitive, node) => {\n const Slot = createSlot(`Primitive.${node}`);\n const Node = React.forwardRef((props, forwardedRef) => {\n const { asChild, ...primitiveProps } = props;\n const Comp = asChild ? Slot : node;\n if (typeof window !== \"undefined\") {\n window[Symbol.for(\"radix-ui\")] = true;\n }\n return /* @__PURE__ */ jsx(Comp, { ...primitiveProps, ref: forwardedRef });\n });\n Node.displayName = `Primitive.${node}`;\n return { ...primitive, [node]: Node };\n}, {});\nfunction dispatchDiscreteCustomEvent(target, event) {\n if (target) ReactDOM.flushSync(() => target.dispatchEvent(event));\n}\nvar Root = Primitive;\nexport {\n Primitive,\n Root,\n dispatchDiscreteCustomEvent\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// src/label.tsx\nimport * as React from \"react\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { jsx } from \"react/jsx-runtime\";\nvar NAME = \"Label\";\nvar Label = React.forwardRef((props, forwardedRef) => {\n return /* @__PURE__ */ jsx(\n Primitive.label,\n {\n ...props,\n ref: forwardedRef,\n onMouseDown: (event) => {\n const target = event.target;\n if (target.closest(\"button, input, select, textarea\")) return;\n props.onMouseDown?.(event);\n if (!event.defaultPrevented && event.detail > 1) event.preventDefault();\n }\n }\n );\n});\nLabel.displayName = NAME;\nvar Root = Label;\nexport {\n Label,\n Root\n};\n//# sourceMappingURL=index.mjs.map\n","/**\n * Label Component\n *\n * A styled label component for form inputs.\n * Based on Radix UI Label primitive.\n */\n\nimport * as React from 'react'\nimport * as LabelPrimitive from '@radix-ui/react-label'\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport { cn } from './utils'\n\nconst labelVariants = cva(\n 'text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70'\n)\n\nconst Label = React.forwardRef<\n React.ComponentRef<typeof LabelPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof LabelPrimitive.Root> & VariantProps<typeof labelVariants>\n>(({ className, ...props }, ref) => (\n <LabelPrimitive.Root ref={ref} className={cn(labelVariants(), className)} {...props} />\n))\nLabel.displayName = LabelPrimitive.Root.displayName\n\nexport { Label }\n"],"x_google_ignoreList":[0,1],"mappings":";;;;;;;AAwBA,IAAI,IAnBQ;CACV;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACD,CACqB,QAAQ,GAAW,MAAS;CAChD,IAAM,IAAO,EAAW,aAAa,IAAO,EACtC,IAAOA,EAAM,YAAY,GAAO,MAAiB;EACrD,IAAM,EAAE,YAAS,GAAG,MAAmB,GACjC,IAAO,IAAU,IAAO;AAI9B,SAHI,OAAO,SAAW,QACpB,OAAO,OAAO,IAAI,WAAW,IAAI,KAEZ,kBAAI,GAAM;GAAE,GAAG;GAAgB,KAAK;GAAc,CAAC;GAC1E;AAEF,QADA,EAAK,cAAc,aAAa,KACzB;EAAE,GAAG;GAAY,IAAO;EAAM;GACpC,EAAE,CAAC,EC9BF,IAAO,SACPC,IAAQC,EAAM,YAAY,GAAO,MACZ,kBACrB,EAAU,OACV;CACE,GAAG;CACH,KAAK;CACL,cAAc,MAAU;AACP,IAAM,OACV,QAAQ,kCAAkC,KACrD,EAAM,cAAc,EAAM,EACtB,CAAC,EAAM,oBAAoB,EAAM,SAAS,KAAG,EAAM,gBAAgB;;CAE1E,CACF,CACD;AACF,EAAM,cAAc;AACpB,IAAI,IAAOD,GCXL,IAAgB,EACpB,6FACD,EAEK,IAAQ,EAAM,YAGjB,EAAE,cAAW,GAAG,KAAS,MAC1B,kBAAC,GAAD;CAA0B;CAAK,WAAW,EAAG,GAAe,EAAE,EAAU;CAAE,GAAI;CAAS,CAAA,CACvF;AACF,EAAM,cAAA,EAAkC"}
1
+ {"version":3,"file":"label-D_TX0q0F.js","names":["React","Label","React"],"sources":["../node_modules/@radix-ui/react-label/node_modules/@radix-ui/react-primitive/dist/index.mjs","../node_modules/@radix-ui/react-label/dist/index.mjs","../src/react/primitives/label.tsx"],"sourcesContent":["// src/primitive.tsx\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport { createSlot } from \"@radix-ui/react-slot\";\nimport { jsx } from \"react/jsx-runtime\";\nvar NODES = [\n \"a\",\n \"button\",\n \"div\",\n \"form\",\n \"h2\",\n \"h3\",\n \"img\",\n \"input\",\n \"label\",\n \"li\",\n \"nav\",\n \"ol\",\n \"p\",\n \"select\",\n \"span\",\n \"svg\",\n \"ul\"\n];\nvar Primitive = NODES.reduce((primitive, node) => {\n const Slot = createSlot(`Primitive.${node}`);\n const Node = React.forwardRef((props, forwardedRef) => {\n const { asChild, ...primitiveProps } = props;\n const Comp = asChild ? Slot : node;\n if (typeof window !== \"undefined\") {\n window[Symbol.for(\"radix-ui\")] = true;\n }\n return /* @__PURE__ */ jsx(Comp, { ...primitiveProps, ref: forwardedRef });\n });\n Node.displayName = `Primitive.${node}`;\n return { ...primitive, [node]: Node };\n}, {});\nfunction dispatchDiscreteCustomEvent(target, event) {\n if (target) ReactDOM.flushSync(() => target.dispatchEvent(event));\n}\nvar Root = Primitive;\nexport {\n Primitive,\n Root,\n dispatchDiscreteCustomEvent\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// src/label.tsx\nimport * as React from \"react\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { jsx } from \"react/jsx-runtime\";\nvar NAME = \"Label\";\nvar Label = React.forwardRef((props, forwardedRef) => {\n return /* @__PURE__ */ jsx(\n Primitive.label,\n {\n ...props,\n ref: forwardedRef,\n onMouseDown: (event) => {\n const target = event.target;\n if (target.closest(\"button, input, select, textarea\")) return;\n props.onMouseDown?.(event);\n if (!event.defaultPrevented && event.detail > 1) event.preventDefault();\n }\n }\n );\n});\nLabel.displayName = NAME;\nvar Root = Label;\nexport {\n Label,\n Root\n};\n//# sourceMappingURL=index.mjs.map\n","/**\n * Label Component\n *\n * A styled label component for form inputs.\n * Based on Radix UI Label primitive.\n */\n\nimport * as React from 'react'\nimport * as LabelPrimitive from '@radix-ui/react-label'\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport { cn } from './utils'\n\nconst labelVariants = cva(\n 'text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70'\n)\n\nconst Label = React.forwardRef<\n React.ComponentRef<typeof LabelPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof LabelPrimitive.Root> & VariantProps<typeof labelVariants>\n>(({ className, ...props }, ref) => (\n <LabelPrimitive.Root ref={ref} className={cn(labelVariants(), className)} {...props} />\n))\nLabel.displayName = LabelPrimitive.Root.displayName\n\nexport { Label }\n"],"x_google_ignoreList":[0,1],"mappings":";;;;;;;AAwBA,IAAI,IAnBQ;CACV;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACD,CACqB,QAAQ,GAAW,MAAS;CAChD,IAAM,IAAO,EAAW,aAAa,IAAO,EACtC,IAAOA,EAAM,YAAY,GAAO,MAAiB;EACrD,IAAM,EAAE,YAAS,GAAG,MAAmB,GACjC,IAAO,IAAU,IAAO;AAI9B,SAHI,OAAO,SAAW,QACpB,OAAO,OAAO,IAAI,WAAW,IAAI,KAEZ,kBAAI,GAAM;GAAE,GAAG;GAAgB,KAAK;GAAc,CAAC;GAC1E;AAEF,QADA,EAAK,cAAc,aAAa,KACzB;EAAE,GAAG;GAAY,IAAO;EAAM;GACpC,EAAE,CAAC,EC9BF,IAAO,SACPC,IAAQC,EAAM,YAAY,GAAO,MACZ,kBACrB,EAAU,OACV;CACE,GAAG;CACH,KAAK;CACL,cAAc,MAAU;AACP,IAAM,OACV,QAAQ,kCAAkC,KACrD,EAAM,cAAc,EAAM,EACtB,CAAC,EAAM,oBAAoB,EAAM,SAAS,KAAG,EAAM,gBAAgB;;CAE1E,CACF,CACD;AACF,EAAM,cAAc;AACpB,IAAI,IAAOD,GCXL,IAAgB,EACpB,6FACD,EAEK,IAAQ,EAAM,YAGjB,EAAE,cAAW,GAAG,KAAS,MAC1B,kBAAC,GAAD;CAA0B;CAAK,WAAW,EAAG,GAAe,EAAE,EAAU;CAAE,GAAI;CAAS,CAAA,CACvF;AACF,EAAM,cAAA,EAAkC"}
@@ -0,0 +1,135 @@
1
+ import { t as e } from "./utils-DcOSDVkb.js";
2
+ import { forwardRef as t } from "react";
3
+ import { Fragment as n, jsx as r, jsxs as i } from "react/jsx-runtime";
4
+ //#region src/react/layout/browser-layout.tsx
5
+ var a = t(({ toolbar: t, sidebar: n, sidebarWidth: a = "240px", detail: o, detailWidth: s = "400px", className: c, children: l, ...u }, d) => /* @__PURE__ */ i("div", {
6
+ ref: d,
7
+ className: e("flex h-full flex-col", c),
8
+ ...u,
9
+ children: [t && /* @__PURE__ */ r("div", {
10
+ className: "shrink-0 border-b border-border-glass px-4 py-3",
11
+ children: t
12
+ }), /* @__PURE__ */ i("div", {
13
+ className: "flex min-h-0 flex-1",
14
+ children: [
15
+ n && /* @__PURE__ */ r("aside", {
16
+ className: "shrink-0 overflow-y-auto border-r border-border-glass p-3",
17
+ style: { width: a },
18
+ children: n
19
+ }),
20
+ /* @__PURE__ */ r("div", {
21
+ className: "min-w-0 flex-1 overflow-y-auto",
22
+ children: l
23
+ }),
24
+ o && /* @__PURE__ */ r("aside", {
25
+ className: "shrink-0 overflow-y-auto border-l border-border-glass",
26
+ style: { width: s },
27
+ children: o
28
+ })
29
+ ]
30
+ })]
31
+ }));
32
+ a.displayName = "BrowserLayout";
33
+ //#endregion
34
+ //#region src/react/layout/detail-header.tsx
35
+ var o = t(({ icon: t, title: n, subtitle: a, badges: o, actions: s, trailing: c, backAction: l, className: u, ...d }, f) => /* @__PURE__ */ i("header", {
36
+ ref: f,
37
+ className: e("flex flex-col gap-4 pb-4", u),
38
+ ...d,
39
+ children: [l && /* @__PURE__ */ r("div", { children: l }), /* @__PURE__ */ i("div", {
40
+ className: "flex items-start gap-4",
41
+ children: [
42
+ t && /* @__PURE__ */ r("div", {
43
+ className: "flex h-12 w-12 shrink-0 items-center justify-center rounded-xl bg-foreground/[0.06] text-foreground-secondary [&>svg]:size-6",
44
+ children: t
45
+ }),
46
+ /* @__PURE__ */ i("div", {
47
+ className: "min-w-0 flex-1",
48
+ children: [/* @__PURE__ */ i("div", {
49
+ className: "flex items-center gap-3",
50
+ children: [/* @__PURE__ */ r("h1", {
51
+ className: "truncate text-xl font-bold tracking-tight text-foreground",
52
+ children: n
53
+ }), o && o.length > 0 && /* @__PURE__ */ r("div", {
54
+ className: "flex shrink-0 items-center gap-1.5",
55
+ children: o
56
+ })]
57
+ }), a && /* @__PURE__ */ r("p", {
58
+ className: "mt-0.5 text-sm text-foreground-secondary",
59
+ children: a
60
+ })]
61
+ }),
62
+ c && /* @__PURE__ */ r("div", {
63
+ className: "shrink-0",
64
+ children: c
65
+ }),
66
+ s && /* @__PURE__ */ r("div", {
67
+ className: "flex shrink-0 items-center gap-2",
68
+ children: s
69
+ })
70
+ ]
71
+ })]
72
+ }));
73
+ o.displayName = "DetailHeader";
74
+ //#endregion
75
+ //#region src/react/layout/sub-nav.tsx
76
+ var s = t(({ items: t, onSelect: a, className: o, ...s }, c) => /* @__PURE__ */ r("nav", {
77
+ ref: c,
78
+ className: e("flex gap-1 overflow-x-auto pb-1", o),
79
+ "aria-label": "Section navigation",
80
+ role: "tablist",
81
+ ...s,
82
+ children: t.map((t) => {
83
+ let o = e("inline-flex shrink-0 items-center gap-1.5 rounded-lg border px-3 py-1.5 text-xs font-semibold transition-colors", t.active ? "border-primary/25 bg-primary/15 text-[hsl(var(--primary))]" : "border-transparent text-foreground-tertiary hover:bg-foreground/[0.05] hover:text-foreground-secondary"), s = /* @__PURE__ */ i(n, { children: [t.icon, t.label] });
84
+ return t.href ? /* @__PURE__ */ r("a", {
85
+ href: t.href,
86
+ role: "tab",
87
+ "aria-selected": t.active,
88
+ onClick: () => a?.(t.id),
89
+ className: o,
90
+ children: s
91
+ }, t.id) : /* @__PURE__ */ r("button", {
92
+ type: "button",
93
+ role: "tab",
94
+ "aria-selected": t.active,
95
+ onClick: () => a?.(t.id),
96
+ className: o,
97
+ children: s
98
+ }, t.id);
99
+ })
100
+ }));
101
+ s.displayName = "SubNav";
102
+ //#endregion
103
+ //#region src/react/layout/page-frame.tsx
104
+ var c = t(({ title: t, subtitle: n, actions: a, nav: o, className: s, children: c, ...l }, u) => /* @__PURE__ */ i("div", {
105
+ ref: u,
106
+ className: e("flex min-h-full flex-col", s),
107
+ ...l,
108
+ children: [/* @__PURE__ */ i("div", {
109
+ className: "border-b border-border-glass/50 px-6 pb-3 pt-5",
110
+ children: [/* @__PURE__ */ i("div", {
111
+ className: "flex flex-col gap-4 lg:flex-row lg:items-start lg:justify-between",
112
+ children: [/* @__PURE__ */ i("div", { children: [/* @__PURE__ */ r("h1", {
113
+ className: "text-xl font-bold tracking-tight text-foreground",
114
+ children: t
115
+ }), n && /* @__PURE__ */ r("p", {
116
+ className: "mt-0.5 text-xs text-foreground-tertiary",
117
+ children: n
118
+ })] }), a && /* @__PURE__ */ r("div", {
119
+ className: "flex shrink-0 items-center gap-2",
120
+ children: a
121
+ })]
122
+ }), o && /* @__PURE__ */ r("div", {
123
+ className: "mt-4",
124
+ children: o
125
+ })]
126
+ }), /* @__PURE__ */ r("main", {
127
+ className: "flex-1 space-y-4 px-4 py-4 lg:px-6",
128
+ children: c
129
+ })]
130
+ }));
131
+ c.displayName = "PageFrame";
132
+ //#endregion
133
+ export { a as i, s as n, o as r, c as t };
134
+
135
+ //# sourceMappingURL=layout-DJ2E8nU0.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layout-DJ2E8nU0.js","names":[],"sources":["../src/react/layout/browser-layout.tsx","../src/react/layout/detail-header.tsx","../src/react/layout/sub-nav.tsx","../src/react/layout/page-frame.tsx"],"sourcesContent":["import { forwardRef, type HTMLAttributes, type ReactNode } from 'react'\nimport { cn } from '../primitives/utils'\n\nexport interface BrowserLayoutProps extends HTMLAttributes<HTMLDivElement> {\n toolbar?: ReactNode\n sidebar?: ReactNode\n sidebarWidth?: string\n detail?: ReactNode\n detailWidth?: string\n children: ReactNode\n}\n\nconst BrowserLayout = forwardRef<HTMLDivElement, BrowserLayoutProps>(\n (\n {\n toolbar,\n sidebar,\n sidebarWidth = '240px',\n detail,\n detailWidth = '400px',\n className,\n children,\n ...props\n },\n ref\n ) => (\n <div ref={ref} className={cn('flex h-full flex-col', className)} {...props}>\n {toolbar && (\n <div className=\"shrink-0 border-b border-border-glass px-4 py-3\">{toolbar}</div>\n )}\n <div className=\"flex min-h-0 flex-1\">\n {sidebar && (\n <aside\n className=\"shrink-0 overflow-y-auto border-r border-border-glass p-3\"\n style={{ width: sidebarWidth }}\n >\n {sidebar}\n </aside>\n )}\n <div className=\"min-w-0 flex-1 overflow-y-auto\">{children}</div>\n {detail && (\n <aside\n className=\"shrink-0 overflow-y-auto border-l border-border-glass\"\n style={{ width: detailWidth }}\n >\n {detail}\n </aside>\n )}\n </div>\n </div>\n )\n)\nBrowserLayout.displayName = 'BrowserLayout'\nexport { BrowserLayout }\n","import { forwardRef, type HTMLAttributes, type ReactNode } from 'react'\nimport { cn } from '../primitives/utils'\n\nexport interface DetailHeaderProps extends Omit<HTMLAttributes<HTMLElement>, 'title'> {\n icon?: ReactNode\n title: ReactNode\n subtitle?: ReactNode\n badges?: ReactNode[]\n actions?: ReactNode\n trailing?: ReactNode\n backAction?: ReactNode\n}\n\nconst DetailHeader = forwardRef<HTMLElement, DetailHeaderProps>(\n ({ icon, title, subtitle, badges, actions, trailing, backAction, className, ...props }, ref) => (\n <header ref={ref} className={cn('flex flex-col gap-4 pb-4', className)} {...props}>\n {backAction && <div>{backAction}</div>}\n <div className=\"flex items-start gap-4\">\n {icon && (\n <div className=\"flex h-12 w-12 shrink-0 items-center justify-center rounded-xl bg-foreground/[0.06] text-foreground-secondary [&>svg]:size-6\">\n {icon}\n </div>\n )}\n <div className=\"min-w-0 flex-1\">\n <div className=\"flex items-center gap-3\">\n <h1 className=\"truncate text-xl font-bold tracking-tight text-foreground\">{title}</h1>\n {badges && badges.length > 0 && (\n <div className=\"flex shrink-0 items-center gap-1.5\">{badges}</div>\n )}\n </div>\n {subtitle && (\n <p className=\"mt-0.5 text-sm text-foreground-secondary\">{subtitle}</p>\n )}\n </div>\n {trailing && <div className=\"shrink-0\">{trailing}</div>}\n {actions && <div className=\"flex shrink-0 items-center gap-2\">{actions}</div>}\n </div>\n </header>\n )\n)\nDetailHeader.displayName = 'DetailHeader'\nexport { DetailHeader }\n","'use client'\n\nimport { forwardRef, type HTMLAttributes, type ReactNode } from 'react'\nimport { cn } from '../primitives/utils'\n\nexport interface SubNavItem {\n id: string\n label: string\n href?: string\n icon?: ReactNode\n active?: boolean\n}\n\nexport interface SubNavProps extends Omit<HTMLAttributes<HTMLElement>, 'onSelect'> {\n items: SubNavItem[]\n onSelect?: (id: string) => void\n}\n\nconst SubNav = forwardRef<HTMLElement, SubNavProps>(\n ({ items, onSelect, className, ...props }, ref) => (\n <nav\n ref={ref}\n className={cn('flex gap-1 overflow-x-auto pb-1', className)}\n aria-label=\"Section navigation\"\n role=\"tablist\"\n {...props}\n >\n {items.map(item => {\n const itemClassName = cn(\n 'inline-flex shrink-0 items-center gap-1.5 rounded-lg border px-3 py-1.5 text-xs font-semibold transition-colors',\n item.active\n ? 'border-primary/25 bg-primary/15 text-[hsl(var(--primary))]'\n : 'border-transparent text-foreground-tertiary hover:bg-foreground/[0.05] hover:text-foreground-secondary'\n )\n const content = (\n <>\n {item.icon}\n {item.label}\n </>\n )\n if (item.href) {\n return (\n <a\n key={item.id}\n href={item.href}\n role=\"tab\"\n aria-selected={item.active}\n onClick={() => onSelect?.(item.id)}\n className={itemClassName}\n >\n {content}\n </a>\n )\n }\n return (\n <button\n key={item.id}\n type=\"button\"\n role=\"tab\"\n aria-selected={item.active}\n onClick={() => onSelect?.(item.id)}\n className={itemClassName}\n >\n {content}\n </button>\n )\n })}\n </nav>\n )\n)\nSubNav.displayName = 'SubNav'\nexport { SubNav }\n","import { forwardRef, type HTMLAttributes, type ReactNode } from 'react'\nimport { cn } from '../primitives/utils'\n\nexport interface PageFrameProps extends Omit<HTMLAttributes<HTMLDivElement>, 'title'> {\n title: string\n subtitle?: string\n actions?: ReactNode\n nav?: ReactNode\n children: ReactNode\n}\n\nconst PageFrame = forwardRef<HTMLDivElement, PageFrameProps>(\n ({ title, subtitle, actions, nav, className, children, ...props }, ref) => (\n <div ref={ref} className={cn('flex min-h-full flex-col', className)} {...props}>\n <div className=\"border-b border-border-glass/50 px-6 pb-3 pt-5\">\n <div className=\"flex flex-col gap-4 lg:flex-row lg:items-start lg:justify-between\">\n <div>\n <h1 className=\"text-xl font-bold tracking-tight text-foreground\">{title}</h1>\n {subtitle && (\n <p className=\"mt-0.5 text-xs text-foreground-tertiary\">{subtitle}</p>\n )}\n </div>\n {actions && <div className=\"flex shrink-0 items-center gap-2\">{actions}</div>}\n </div>\n {nav && <div className=\"mt-4\">{nav}</div>}\n </div>\n <main className=\"flex-1 space-y-4 px-4 py-4 lg:px-6\">{children}</main>\n </div>\n )\n)\nPageFrame.displayName = 'PageFrame'\nexport { PageFrame }\n"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import { O as e } from "./chunk-GEFDOKGD-bXEkwPrJ.js";
2
- import { n as t, t as n } from "./path-Z-HG_8i_.js";
3
- import { t as r } from "./array-DPBIBG3p.js";
1
+ import { O as e } from "./chunk-GEFDOKGD-DGJJEGSm.js";
2
+ import { n as t, t as n } from "./path-y0uQCOMW.js";
3
+ import { t as r } from "./array-DXadUs1s.js";
4
4
  //#region node_modules/d3-shape/src/point.js
5
5
  function i(e) {
6
6
  return e[0];
@@ -33,4 +33,4 @@ function o(o, s) {
33
33
  //#endregion
34
34
  export { o as t };
35
35
 
36
- //# sourceMappingURL=line-xLJn8e8J.js.map
36
+ //# sourceMappingURL=line-Cq1AZT4f.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"line-xLJn8e8J.js","names":["constant","curveLinear","x","pointX","y","pointY","array"],"sources":["../node_modules/d3-shape/src/point.js","../node_modules/d3-shape/src/line.js"],"sourcesContent":["export function x(p) {\n return p[0];\n}\n\nexport function y(p) {\n return p[1];\n}\n","import array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport curveLinear from \"./curve/linear.js\";\nimport {withPath} from \"./path.js\";\nimport {x as pointX, y as pointY} from \"./point.js\";\n\nexport default function(x, y) {\n var defined = constant(true),\n context = null,\n curve = curveLinear,\n output = null,\n path = withPath(line);\n\n x = typeof x === \"function\" ? x : (x === undefined) ? pointX : constant(x);\n y = typeof y === \"function\" ? y : (y === undefined) ? pointY : constant(y);\n\n function line(data) {\n var i,\n n = (data = array(data)).length,\n d,\n defined0 = false,\n buffer;\n\n if (context == null) output = curve(buffer = path());\n\n for (i = 0; i <= n; ++i) {\n if (!(i < n && defined(d = data[i], i, data)) === defined0) {\n if (defined0 = !defined0) output.lineStart();\n else output.lineEnd();\n }\n if (defined0) output.point(+x(d, i, data), +y(d, i, data));\n }\n\n if (buffer) return output = null, buffer + \"\" || null;\n }\n\n line.x = function(_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), line) : x;\n };\n\n line.y = function(_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), line) : y;\n };\n\n line.defined = function(_) {\n return arguments.length ? (defined = typeof _ === \"function\" ? _ : constant(!!_), line) : defined;\n };\n\n line.curve = function(_) {\n return arguments.length ? (curve = _, context != null && (output = curve(context)), line) : curve;\n };\n\n line.context = function(_) {\n return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), line) : context;\n };\n\n return line;\n}\n"],"x_google_ignoreList":[0,1],"mappings":";;;;AAAA,SAAgB,EAAE,GAAG;AACnB,QAAO,EAAE;;AAGX,SAAgB,EAAE,GAAG;AACnB,QAAO,EAAE;;;;ACCX,SAAA,EAAwB,GAAG,GAAG;CAC5B,IAAI,IAAUA,EAAS,GAAK,EACxB,IAAU,MACV,IAAQC,GACR,IAAS,MACT,IAAO,EAAS,EAAK;AAGzB,CADA,IAAI,OAAOC,KAAM,aAAaA,IAAKA,MAAM,KAAA,IAAaC,IAASH,EAASE,EAAE,EAC1E,IAAI,OAAOE,KAAM,aAAaA,IAAKA,MAAM,KAAA,IAAaC,IAASL,EAASI,EAAE;CAE1E,SAAS,EAAK,GAAM;EAClB,IAAI,GACA,KAAK,IAAOE,EAAM,EAAK,EAAE,QACzB,GACA,IAAW,IACX;AAIJ,OAFI,MAAiB,IAAS,EAAM,IAAS,GAAM,CAAC,GAE/C,IAAI,GAAG,KAAK,GAAG,EAAE,EAKpB,CAJI,EAAE,IAAI,KAAK,EAAQ,IAAI,EAAK,IAAI,GAAG,EAAK,MAAM,OAC5C,IAAW,CAAC,KAAU,EAAO,WAAW,GACvC,EAAO,SAAS,GAEnB,KAAU,EAAO,MAAM,CAACJ,EAAE,GAAG,GAAG,EAAK,EAAE,CAACE,EAAE,GAAG,GAAG,EAAK,CAAC;AAG5D,MAAI,EAAQ,QAAO,IAAS,MAAM,IAAS,MAAM;;AAuBnD,QApBA,EAAK,IAAI,SAAS,GAAG;AACnB,SAAO,UAAU,UAAU,IAAI,OAAO,KAAM,aAAa,IAAIJ,EAAS,CAAC,EAAE,EAAE,KAAQE;IAGrF,EAAK,IAAI,SAAS,GAAG;AACnB,SAAO,UAAU,UAAU,IAAI,OAAO,KAAM,aAAa,IAAIF,EAAS,CAAC,EAAE,EAAE,KAAQI;IAGrF,EAAK,UAAU,SAAS,GAAG;AACzB,SAAO,UAAU,UAAU,IAAU,OAAO,KAAM,aAAa,IAAIJ,EAAS,CAAC,CAAC,EAAE,EAAE,KAAQ;IAG5F,EAAK,QAAQ,SAAS,GAAG;AACvB,SAAO,UAAU,UAAU,IAAQ,GAAG,KAAW,SAAS,IAAS,EAAM,EAAQ,GAAG,KAAQ;IAG9F,EAAK,UAAU,SAAS,GAAG;AACzB,SAAO,UAAU,UAAU,KAAK,OAAO,IAAU,IAAS,OAAO,IAAS,EAAM,IAAU,EAAE,EAAE,KAAQ;IAGjG"}
1
+ {"version":3,"file":"line-Cq1AZT4f.js","names":["constant","curveLinear","x","pointX","y","pointY","array"],"sources":["../node_modules/d3-shape/src/point.js","../node_modules/d3-shape/src/line.js"],"sourcesContent":["export function x(p) {\n return p[0];\n}\n\nexport function y(p) {\n return p[1];\n}\n","import array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport curveLinear from \"./curve/linear.js\";\nimport {withPath} from \"./path.js\";\nimport {x as pointX, y as pointY} from \"./point.js\";\n\nexport default function(x, y) {\n var defined = constant(true),\n context = null,\n curve = curveLinear,\n output = null,\n path = withPath(line);\n\n x = typeof x === \"function\" ? x : (x === undefined) ? pointX : constant(x);\n y = typeof y === \"function\" ? y : (y === undefined) ? pointY : constant(y);\n\n function line(data) {\n var i,\n n = (data = array(data)).length,\n d,\n defined0 = false,\n buffer;\n\n if (context == null) output = curve(buffer = path());\n\n for (i = 0; i <= n; ++i) {\n if (!(i < n && defined(d = data[i], i, data)) === defined0) {\n if (defined0 = !defined0) output.lineStart();\n else output.lineEnd();\n }\n if (defined0) output.point(+x(d, i, data), +y(d, i, data));\n }\n\n if (buffer) return output = null, buffer + \"\" || null;\n }\n\n line.x = function(_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), line) : x;\n };\n\n line.y = function(_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), line) : y;\n };\n\n line.defined = function(_) {\n return arguments.length ? (defined = typeof _ === \"function\" ? _ : constant(!!_), line) : defined;\n };\n\n line.curve = function(_) {\n return arguments.length ? (curve = _, context != null && (output = curve(context)), line) : curve;\n };\n\n line.context = function(_) {\n return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), line) : context;\n };\n\n return line;\n}\n"],"x_google_ignoreList":[0,1],"mappings":";;;;AAAA,SAAgB,EAAE,GAAG;AACnB,QAAO,EAAE;;AAGX,SAAgB,EAAE,GAAG;AACnB,QAAO,EAAE;;;;ACCX,SAAA,EAAwB,GAAG,GAAG;CAC5B,IAAI,IAAUA,EAAS,GAAK,EACxB,IAAU,MACV,IAAQC,GACR,IAAS,MACT,IAAO,EAAS,EAAK;AAGzB,CADA,IAAI,OAAOC,KAAM,aAAaA,IAAKA,MAAM,KAAA,IAAaC,IAASH,EAASE,EAAE,EAC1E,IAAI,OAAOE,KAAM,aAAaA,IAAKA,MAAM,KAAA,IAAaC,IAASL,EAASI,EAAE;CAE1E,SAAS,EAAK,GAAM;EAClB,IAAI,GACA,KAAK,IAAOE,EAAM,EAAK,EAAE,QACzB,GACA,IAAW,IACX;AAIJ,OAFI,MAAiB,IAAS,EAAM,IAAS,GAAM,CAAC,GAE/C,IAAI,GAAG,KAAK,GAAG,EAAE,EAKpB,CAJI,EAAE,IAAI,KAAK,EAAQ,IAAI,EAAK,IAAI,GAAG,EAAK,MAAM,OAC5C,IAAW,CAAC,KAAU,EAAO,WAAW,GACvC,EAAO,SAAS,GAEnB,KAAU,EAAO,MAAM,CAACJ,EAAE,GAAG,GAAG,EAAK,EAAE,CAACE,EAAE,GAAG,GAAG,EAAK,CAAC;AAG5D,MAAI,EAAQ,QAAO,IAAS,MAAM,IAAS,MAAM;;AAuBnD,QApBA,EAAK,IAAI,SAAS,GAAG;AACnB,SAAO,UAAU,UAAU,IAAI,OAAO,KAAM,aAAa,IAAIJ,EAAS,CAAC,EAAE,EAAE,KAAQE;IAGrF,EAAK,IAAI,SAAS,GAAG;AACnB,SAAO,UAAU,UAAU,IAAI,OAAO,KAAM,aAAa,IAAIF,EAAS,CAAC,EAAE,EAAE,KAAQI;IAGrF,EAAK,UAAU,SAAS,GAAG;AACzB,SAAO,UAAU,UAAU,IAAU,OAAO,KAAM,aAAa,IAAIJ,EAAS,CAAC,CAAC,EAAE,EAAE,KAAQ;IAG5F,EAAK,QAAQ,SAAS,GAAG;AACvB,SAAO,UAAU,UAAU,IAAQ,GAAG,KAAW,SAAS,IAAS,EAAM,EAAQ,GAAG,KAAQ;IAG9F,EAAK,UAAU,SAAS,GAAG;AACzB,SAAO,UAAU,UAAU,KAAK,OAAO,IAAU,IAAS,OAAO,IAAS,EAAM,IAAU,EAAE,EAAE,KAAQ;IAGjG"}
@@ -1,7 +1,7 @@
1
- import { o as e } from "./src-BEYP07TO.js";
2
- import { t } from "./value-CybtvyUg.js";
3
- import { i as n, n as r, r as i, t as a } from "./defaultLocale-Cql_qCPq.js";
4
- import { t as o } from "./init-Bdvvvy1Z.js";
1
+ import { o as e } from "./src-D1EMXotX.js";
2
+ import { t } from "./value-gSPnIECy.js";
3
+ import { i as n, n as r, r as i, t as a } from "./defaultLocale-PLHpRrsr.js";
4
+ import { t as o } from "./init-DcLTaNW1.js";
5
5
  //#region node_modules/d3-interpolate/src/round.js
6
6
  function s(e, t) {
7
7
  return e = +e, t = +t, function(n) {
@@ -241,4 +241,4 @@ function R() {
241
241
  //#endregion
242
242
  export { u as a, x as i, F as n, N as r, R as t };
243
243
 
244
- //# sourceMappingURL=linear-BePtLBEt.js.map
244
+ //# sourceMappingURL=linear-BnJD01Xn.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"linear-BePtLBEt.js","names":["number","number","exponent","exponent","exponent","constant","bisect","interpolateValue","interpolateNumber","interpolateRound","precisionPrefix","precisionRound","precisionFixed"],"sources":["../node_modules/d3-interpolate/src/round.js","../node_modules/d3-array/src/ascending.js","../node_modules/d3-array/src/descending.js","../node_modules/d3-array/src/bisector.js","../node_modules/d3-array/src/number.js","../node_modules/d3-array/src/bisect.js","../node_modules/d3-array/src/ticks.js","../node_modules/d3-format/src/precisionFixed.js","../node_modules/d3-format/src/precisionPrefix.js","../node_modules/d3-format/src/precisionRound.js","../node_modules/d3-scale/src/constant.js","../node_modules/d3-scale/src/number.js","../node_modules/d3-scale/src/continuous.js","../node_modules/d3-scale/src/tickFormat.js","../node_modules/d3-scale/src/linear.js"],"sourcesContent":["export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return Math.round(a * (1 - t) + b * t);\n };\n}\n","export default function ascending(a, b) {\n return a == null || b == null ? NaN : a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","export default function descending(a, b) {\n return a == null || b == null ? NaN\n : b < a ? -1\n : b > a ? 1\n : b >= a ? 0\n : NaN;\n}\n","import ascending from \"./ascending.js\";\nimport descending from \"./descending.js\";\n\nexport default function bisector(f) {\n let compare1, compare2, delta;\n\n // If an accessor is specified, promote it to a comparator. In this case we\n // can test whether the search value is (self-) comparable. We can’t do this\n // for a comparator (except for specific, known comparators) because we can’t\n // tell if the comparator is symmetric, and an asymmetric comparator can’t be\n // used to test whether a single value is comparable.\n if (f.length !== 2) {\n compare1 = ascending;\n compare2 = (d, x) => ascending(f(d), x);\n delta = (d, x) => f(d) - x;\n } else {\n compare1 = f === ascending || f === descending ? f : zero;\n compare2 = f;\n delta = f;\n }\n\n function left(a, x, lo = 0, hi = a.length) {\n if (lo < hi) {\n if (compare1(x, x) !== 0) return hi;\n do {\n const mid = (lo + hi) >>> 1;\n if (compare2(a[mid], x) < 0) lo = mid + 1;\n else hi = mid;\n } while (lo < hi);\n }\n return lo;\n }\n\n function right(a, x, lo = 0, hi = a.length) {\n if (lo < hi) {\n if (compare1(x, x) !== 0) return hi;\n do {\n const mid = (lo + hi) >>> 1;\n if (compare2(a[mid], x) <= 0) lo = mid + 1;\n else hi = mid;\n } while (lo < hi);\n }\n return lo;\n }\n\n function center(a, x, lo = 0, hi = a.length) {\n const i = left(a, x, lo, hi - 1);\n return i > lo && delta(a[i - 1], x) > -delta(a[i], x) ? i - 1 : i;\n }\n\n return {left, center, right};\n}\n\nfunction zero() {\n return 0;\n}\n","export default function number(x) {\n return x === null ? NaN : +x;\n}\n\nexport function* numbers(values, valueof) {\n if (valueof === undefined) {\n for (let value of values) {\n if (value != null && (value = +value) >= value) {\n yield value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) {\n yield value;\n }\n }\n }\n}\n","import ascending from \"./ascending.js\";\nimport bisector from \"./bisector.js\";\nimport number from \"./number.js\";\n\nconst ascendingBisect = bisector(ascending);\nexport const bisectRight = ascendingBisect.right;\nexport const bisectLeft = ascendingBisect.left;\nexport const bisectCenter = bisector(number).center;\nexport default bisectRight;\n","const e10 = Math.sqrt(50),\n e5 = Math.sqrt(10),\n e2 = Math.sqrt(2);\n\nfunction tickSpec(start, stop, count) {\n const step = (stop - start) / Math.max(0, count),\n power = Math.floor(Math.log10(step)),\n error = step / Math.pow(10, power),\n factor = error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1;\n let i1, i2, inc;\n if (power < 0) {\n inc = Math.pow(10, -power) / factor;\n i1 = Math.round(start * inc);\n i2 = Math.round(stop * inc);\n if (i1 / inc < start) ++i1;\n if (i2 / inc > stop) --i2;\n inc = -inc;\n } else {\n inc = Math.pow(10, power) * factor;\n i1 = Math.round(start / inc);\n i2 = Math.round(stop / inc);\n if (i1 * inc < start) ++i1;\n if (i2 * inc > stop) --i2;\n }\n if (i2 < i1 && 0.5 <= count && count < 2) return tickSpec(start, stop, count * 2);\n return [i1, i2, inc];\n}\n\nexport default function ticks(start, stop, count) {\n stop = +stop, start = +start, count = +count;\n if (!(count > 0)) return [];\n if (start === stop) return [start];\n const reverse = stop < start, [i1, i2, inc] = reverse ? tickSpec(stop, start, count) : tickSpec(start, stop, count);\n if (!(i2 >= i1)) return [];\n const n = i2 - i1 + 1, ticks = new Array(n);\n if (reverse) {\n if (inc < 0) for (let i = 0; i < n; ++i) ticks[i] = (i2 - i) / -inc;\n else for (let i = 0; i < n; ++i) ticks[i] = (i2 - i) * inc;\n } else {\n if (inc < 0) for (let i = 0; i < n; ++i) ticks[i] = (i1 + i) / -inc;\n else for (let i = 0; i < n; ++i) ticks[i] = (i1 + i) * inc;\n }\n return ticks;\n}\n\nexport function tickIncrement(start, stop, count) {\n stop = +stop, start = +start, count = +count;\n return tickSpec(start, stop, count)[2];\n}\n\nexport function tickStep(start, stop, count) {\n stop = +stop, start = +start, count = +count;\n const reverse = stop < start, inc = reverse ? tickIncrement(stop, start, count) : tickIncrement(start, stop, count);\n return (reverse ? -1 : 1) * (inc < 0 ? 1 / -inc : inc);\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step) {\n return Math.max(0, -exponent(Math.abs(step)));\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step, value) {\n return Math.max(0, Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3 - exponent(Math.abs(step)));\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step, max) {\n step = Math.abs(step), max = Math.abs(max) - step;\n return Math.max(0, exponent(max) - exponent(step)) + 1;\n}\n","export default function constants(x) {\n return function() {\n return x;\n };\n}\n","export default function number(x) {\n return +x;\n}\n","import {bisect} from \"d3-array\";\nimport {interpolate as interpolateValue, interpolateNumber, interpolateRound} from \"d3-interpolate\";\nimport constant from \"./constant.js\";\nimport number from \"./number.js\";\n\nvar unit = [0, 1];\n\nexport function identity(x) {\n return x;\n}\n\nfunction normalize(a, b) {\n return (b -= (a = +a))\n ? function(x) { return (x - a) / b; }\n : constant(isNaN(b) ? NaN : 0.5);\n}\n\nfunction clamper(a, b) {\n var t;\n if (a > b) t = a, a = b, b = t;\n return function(x) { return Math.max(a, Math.min(b, x)); };\n}\n\n// normalize(a, b)(x) takes a domain value x in [a,b] and returns the corresponding parameter t in [0,1].\n// interpolate(a, b)(t) takes a parameter t in [0,1] and returns the corresponding range value x in [a,b].\nfunction bimap(domain, range, interpolate) {\n var d0 = domain[0], d1 = domain[1], r0 = range[0], r1 = range[1];\n if (d1 < d0) d0 = normalize(d1, d0), r0 = interpolate(r1, r0);\n else d0 = normalize(d0, d1), r0 = interpolate(r0, r1);\n return function(x) { return r0(d0(x)); };\n}\n\nfunction polymap(domain, range, interpolate) {\n var j = Math.min(domain.length, range.length) - 1,\n d = new Array(j),\n r = new Array(j),\n i = -1;\n\n // Reverse descending domains.\n if (domain[j] < domain[0]) {\n domain = domain.slice().reverse();\n range = range.slice().reverse();\n }\n\n while (++i < j) {\n d[i] = normalize(domain[i], domain[i + 1]);\n r[i] = interpolate(range[i], range[i + 1]);\n }\n\n return function(x) {\n var i = bisect(domain, x, 1, j) - 1;\n return r[i](d[i](x));\n };\n}\n\nexport function copy(source, target) {\n return target\n .domain(source.domain())\n .range(source.range())\n .interpolate(source.interpolate())\n .clamp(source.clamp())\n .unknown(source.unknown());\n}\n\nexport function transformer() {\n var domain = unit,\n range = unit,\n interpolate = interpolateValue,\n transform,\n untransform,\n unknown,\n clamp = identity,\n piecewise,\n output,\n input;\n\n function rescale() {\n var n = Math.min(domain.length, range.length);\n if (clamp !== identity) clamp = clamper(domain[0], domain[n - 1]);\n piecewise = n > 2 ? polymap : bimap;\n output = input = null;\n return scale;\n }\n\n function scale(x) {\n return x == null || isNaN(x = +x) ? unknown : (output || (output = piecewise(domain.map(transform), range, interpolate)))(transform(clamp(x)));\n }\n\n scale.invert = function(y) {\n return clamp(untransform((input || (input = piecewise(range, domain.map(transform), interpolateNumber)))(y)));\n };\n\n scale.domain = function(_) {\n return arguments.length ? (domain = Array.from(_, number), rescale()) : domain.slice();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), rescale()) : range.slice();\n };\n\n scale.rangeRound = function(_) {\n return range = Array.from(_), interpolate = interpolateRound, rescale();\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = _ ? true : identity, rescale()) : clamp !== identity;\n };\n\n scale.interpolate = function(_) {\n return arguments.length ? (interpolate = _, rescale()) : interpolate;\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t, u) {\n transform = t, untransform = u;\n return rescale();\n };\n}\n\nexport default function continuous() {\n return transformer()(identity, identity);\n}\n","import {tickStep} from \"d3-array\";\nimport {format, formatPrefix, formatSpecifier, precisionFixed, precisionPrefix, precisionRound} from \"d3-format\";\n\nexport default function tickFormat(start, stop, count, specifier) {\n var step = tickStep(start, stop, count),\n precision;\n specifier = formatSpecifier(specifier == null ? \",f\" : specifier);\n switch (specifier.type) {\n case \"s\": {\n var value = Math.max(Math.abs(start), Math.abs(stop));\n if (specifier.precision == null && !isNaN(precision = precisionPrefix(step, value))) specifier.precision = precision;\n return formatPrefix(specifier, value);\n }\n case \"\":\n case \"e\":\n case \"g\":\n case \"p\":\n case \"r\": {\n if (specifier.precision == null && !isNaN(precision = precisionRound(step, Math.max(Math.abs(start), Math.abs(stop))))) specifier.precision = precision - (specifier.type === \"e\");\n break;\n }\n case \"f\":\n case \"%\": {\n if (specifier.precision == null && !isNaN(precision = precisionFixed(step))) specifier.precision = precision - (specifier.type === \"%\") * 2;\n break;\n }\n }\n return format(specifier);\n}\n","import {ticks, tickIncrement} from \"d3-array\";\nimport continuous, {copy} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\nimport tickFormat from \"./tickFormat.js\";\n\nexport function linearish(scale) {\n var domain = scale.domain;\n\n scale.ticks = function(count) {\n var d = domain();\n return ticks(d[0], d[d.length - 1], count == null ? 10 : count);\n };\n\n scale.tickFormat = function(count, specifier) {\n var d = domain();\n return tickFormat(d[0], d[d.length - 1], count == null ? 10 : count, specifier);\n };\n\n scale.nice = function(count) {\n if (count == null) count = 10;\n\n var d = domain();\n var i0 = 0;\n var i1 = d.length - 1;\n var start = d[i0];\n var stop = d[i1];\n var prestep;\n var step;\n var maxIter = 10;\n\n if (stop < start) {\n step = start, start = stop, stop = step;\n step = i0, i0 = i1, i1 = step;\n }\n \n while (maxIter-- > 0) {\n step = tickIncrement(start, stop, count);\n if (step === prestep) {\n d[i0] = start\n d[i1] = stop\n return domain(d);\n } else if (step > 0) {\n start = Math.floor(start / step) * step;\n stop = Math.ceil(stop / step) * step;\n } else if (step < 0) {\n start = Math.ceil(start * step) / step;\n stop = Math.floor(stop * step) / step;\n } else {\n break;\n }\n prestep = step;\n }\n\n return scale;\n };\n\n return scale;\n}\n\nexport default function linear() {\n var scale = continuous();\n\n scale.copy = function() {\n return copy(scale, linear());\n };\n\n initRange.apply(scale, arguments);\n\n return linearish(scale);\n}\n"],"x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14],"mappings":"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"}
1
+ {"version":3,"file":"linear-BnJD01Xn.js","names":["number","number","exponent","exponent","exponent","constant","bisect","interpolateValue","interpolateNumber","interpolateRound","precisionPrefix","precisionRound","precisionFixed"],"sources":["../node_modules/d3-interpolate/src/round.js","../node_modules/d3-array/src/ascending.js","../node_modules/d3-array/src/descending.js","../node_modules/d3-array/src/bisector.js","../node_modules/d3-array/src/number.js","../node_modules/d3-array/src/bisect.js","../node_modules/d3-array/src/ticks.js","../node_modules/d3-format/src/precisionFixed.js","../node_modules/d3-format/src/precisionPrefix.js","../node_modules/d3-format/src/precisionRound.js","../node_modules/d3-scale/src/constant.js","../node_modules/d3-scale/src/number.js","../node_modules/d3-scale/src/continuous.js","../node_modules/d3-scale/src/tickFormat.js","../node_modules/d3-scale/src/linear.js"],"sourcesContent":["export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return Math.round(a * (1 - t) + b * t);\n };\n}\n","export default function ascending(a, b) {\n return a == null || b == null ? NaN : a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","export default function descending(a, b) {\n return a == null || b == null ? NaN\n : b < a ? -1\n : b > a ? 1\n : b >= a ? 0\n : NaN;\n}\n","import ascending from \"./ascending.js\";\nimport descending from \"./descending.js\";\n\nexport default function bisector(f) {\n let compare1, compare2, delta;\n\n // If an accessor is specified, promote it to a comparator. In this case we\n // can test whether the search value is (self-) comparable. We can’t do this\n // for a comparator (except for specific, known comparators) because we can’t\n // tell if the comparator is symmetric, and an asymmetric comparator can’t be\n // used to test whether a single value is comparable.\n if (f.length !== 2) {\n compare1 = ascending;\n compare2 = (d, x) => ascending(f(d), x);\n delta = (d, x) => f(d) - x;\n } else {\n compare1 = f === ascending || f === descending ? f : zero;\n compare2 = f;\n delta = f;\n }\n\n function left(a, x, lo = 0, hi = a.length) {\n if (lo < hi) {\n if (compare1(x, x) !== 0) return hi;\n do {\n const mid = (lo + hi) >>> 1;\n if (compare2(a[mid], x) < 0) lo = mid + 1;\n else hi = mid;\n } while (lo < hi);\n }\n return lo;\n }\n\n function right(a, x, lo = 0, hi = a.length) {\n if (lo < hi) {\n if (compare1(x, x) !== 0) return hi;\n do {\n const mid = (lo + hi) >>> 1;\n if (compare2(a[mid], x) <= 0) lo = mid + 1;\n else hi = mid;\n } while (lo < hi);\n }\n return lo;\n }\n\n function center(a, x, lo = 0, hi = a.length) {\n const i = left(a, x, lo, hi - 1);\n return i > lo && delta(a[i - 1], x) > -delta(a[i], x) ? i - 1 : i;\n }\n\n return {left, center, right};\n}\n\nfunction zero() {\n return 0;\n}\n","export default function number(x) {\n return x === null ? NaN : +x;\n}\n\nexport function* numbers(values, valueof) {\n if (valueof === undefined) {\n for (let value of values) {\n if (value != null && (value = +value) >= value) {\n yield value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) {\n yield value;\n }\n }\n }\n}\n","import ascending from \"./ascending.js\";\nimport bisector from \"./bisector.js\";\nimport number from \"./number.js\";\n\nconst ascendingBisect = bisector(ascending);\nexport const bisectRight = ascendingBisect.right;\nexport const bisectLeft = ascendingBisect.left;\nexport const bisectCenter = bisector(number).center;\nexport default bisectRight;\n","const e10 = Math.sqrt(50),\n e5 = Math.sqrt(10),\n e2 = Math.sqrt(2);\n\nfunction tickSpec(start, stop, count) {\n const step = (stop - start) / Math.max(0, count),\n power = Math.floor(Math.log10(step)),\n error = step / Math.pow(10, power),\n factor = error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1;\n let i1, i2, inc;\n if (power < 0) {\n inc = Math.pow(10, -power) / factor;\n i1 = Math.round(start * inc);\n i2 = Math.round(stop * inc);\n if (i1 / inc < start) ++i1;\n if (i2 / inc > stop) --i2;\n inc = -inc;\n } else {\n inc = Math.pow(10, power) * factor;\n i1 = Math.round(start / inc);\n i2 = Math.round(stop / inc);\n if (i1 * inc < start) ++i1;\n if (i2 * inc > stop) --i2;\n }\n if (i2 < i1 && 0.5 <= count && count < 2) return tickSpec(start, stop, count * 2);\n return [i1, i2, inc];\n}\n\nexport default function ticks(start, stop, count) {\n stop = +stop, start = +start, count = +count;\n if (!(count > 0)) return [];\n if (start === stop) return [start];\n const reverse = stop < start, [i1, i2, inc] = reverse ? tickSpec(stop, start, count) : tickSpec(start, stop, count);\n if (!(i2 >= i1)) return [];\n const n = i2 - i1 + 1, ticks = new Array(n);\n if (reverse) {\n if (inc < 0) for (let i = 0; i < n; ++i) ticks[i] = (i2 - i) / -inc;\n else for (let i = 0; i < n; ++i) ticks[i] = (i2 - i) * inc;\n } else {\n if (inc < 0) for (let i = 0; i < n; ++i) ticks[i] = (i1 + i) / -inc;\n else for (let i = 0; i < n; ++i) ticks[i] = (i1 + i) * inc;\n }\n return ticks;\n}\n\nexport function tickIncrement(start, stop, count) {\n stop = +stop, start = +start, count = +count;\n return tickSpec(start, stop, count)[2];\n}\n\nexport function tickStep(start, stop, count) {\n stop = +stop, start = +start, count = +count;\n const reverse = stop < start, inc = reverse ? tickIncrement(stop, start, count) : tickIncrement(start, stop, count);\n return (reverse ? -1 : 1) * (inc < 0 ? 1 / -inc : inc);\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step) {\n return Math.max(0, -exponent(Math.abs(step)));\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step, value) {\n return Math.max(0, Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3 - exponent(Math.abs(step)));\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step, max) {\n step = Math.abs(step), max = Math.abs(max) - step;\n return Math.max(0, exponent(max) - exponent(step)) + 1;\n}\n","export default function constants(x) {\n return function() {\n return x;\n };\n}\n","export default function number(x) {\n return +x;\n}\n","import {bisect} from \"d3-array\";\nimport {interpolate as interpolateValue, interpolateNumber, interpolateRound} from \"d3-interpolate\";\nimport constant from \"./constant.js\";\nimport number from \"./number.js\";\n\nvar unit = [0, 1];\n\nexport function identity(x) {\n return x;\n}\n\nfunction normalize(a, b) {\n return (b -= (a = +a))\n ? function(x) { return (x - a) / b; }\n : constant(isNaN(b) ? NaN : 0.5);\n}\n\nfunction clamper(a, b) {\n var t;\n if (a > b) t = a, a = b, b = t;\n return function(x) { return Math.max(a, Math.min(b, x)); };\n}\n\n// normalize(a, b)(x) takes a domain value x in [a,b] and returns the corresponding parameter t in [0,1].\n// interpolate(a, b)(t) takes a parameter t in [0,1] and returns the corresponding range value x in [a,b].\nfunction bimap(domain, range, interpolate) {\n var d0 = domain[0], d1 = domain[1], r0 = range[0], r1 = range[1];\n if (d1 < d0) d0 = normalize(d1, d0), r0 = interpolate(r1, r0);\n else d0 = normalize(d0, d1), r0 = interpolate(r0, r1);\n return function(x) { return r0(d0(x)); };\n}\n\nfunction polymap(domain, range, interpolate) {\n var j = Math.min(domain.length, range.length) - 1,\n d = new Array(j),\n r = new Array(j),\n i = -1;\n\n // Reverse descending domains.\n if (domain[j] < domain[0]) {\n domain = domain.slice().reverse();\n range = range.slice().reverse();\n }\n\n while (++i < j) {\n d[i] = normalize(domain[i], domain[i + 1]);\n r[i] = interpolate(range[i], range[i + 1]);\n }\n\n return function(x) {\n var i = bisect(domain, x, 1, j) - 1;\n return r[i](d[i](x));\n };\n}\n\nexport function copy(source, target) {\n return target\n .domain(source.domain())\n .range(source.range())\n .interpolate(source.interpolate())\n .clamp(source.clamp())\n .unknown(source.unknown());\n}\n\nexport function transformer() {\n var domain = unit,\n range = unit,\n interpolate = interpolateValue,\n transform,\n untransform,\n unknown,\n clamp = identity,\n piecewise,\n output,\n input;\n\n function rescale() {\n var n = Math.min(domain.length, range.length);\n if (clamp !== identity) clamp = clamper(domain[0], domain[n - 1]);\n piecewise = n > 2 ? polymap : bimap;\n output = input = null;\n return scale;\n }\n\n function scale(x) {\n return x == null || isNaN(x = +x) ? unknown : (output || (output = piecewise(domain.map(transform), range, interpolate)))(transform(clamp(x)));\n }\n\n scale.invert = function(y) {\n return clamp(untransform((input || (input = piecewise(range, domain.map(transform), interpolateNumber)))(y)));\n };\n\n scale.domain = function(_) {\n return arguments.length ? (domain = Array.from(_, number), rescale()) : domain.slice();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), rescale()) : range.slice();\n };\n\n scale.rangeRound = function(_) {\n return range = Array.from(_), interpolate = interpolateRound, rescale();\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = _ ? true : identity, rescale()) : clamp !== identity;\n };\n\n scale.interpolate = function(_) {\n return arguments.length ? (interpolate = _, rescale()) : interpolate;\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t, u) {\n transform = t, untransform = u;\n return rescale();\n };\n}\n\nexport default function continuous() {\n return transformer()(identity, identity);\n}\n","import {tickStep} from \"d3-array\";\nimport {format, formatPrefix, formatSpecifier, precisionFixed, precisionPrefix, precisionRound} from \"d3-format\";\n\nexport default function tickFormat(start, stop, count, specifier) {\n var step = tickStep(start, stop, count),\n precision;\n specifier = formatSpecifier(specifier == null ? \",f\" : specifier);\n switch (specifier.type) {\n case \"s\": {\n var value = Math.max(Math.abs(start), Math.abs(stop));\n if (specifier.precision == null && !isNaN(precision = precisionPrefix(step, value))) specifier.precision = precision;\n return formatPrefix(specifier, value);\n }\n case \"\":\n case \"e\":\n case \"g\":\n case \"p\":\n case \"r\": {\n if (specifier.precision == null && !isNaN(precision = precisionRound(step, Math.max(Math.abs(start), Math.abs(stop))))) specifier.precision = precision - (specifier.type === \"e\");\n break;\n }\n case \"f\":\n case \"%\": {\n if (specifier.precision == null && !isNaN(precision = precisionFixed(step))) specifier.precision = precision - (specifier.type === \"%\") * 2;\n break;\n }\n }\n return format(specifier);\n}\n","import {ticks, tickIncrement} from \"d3-array\";\nimport continuous, {copy} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\nimport tickFormat from \"./tickFormat.js\";\n\nexport function linearish(scale) {\n var domain = scale.domain;\n\n scale.ticks = function(count) {\n var d = domain();\n return ticks(d[0], d[d.length - 1], count == null ? 10 : count);\n };\n\n scale.tickFormat = function(count, specifier) {\n var d = domain();\n return tickFormat(d[0], d[d.length - 1], count == null ? 10 : count, specifier);\n };\n\n scale.nice = function(count) {\n if (count == null) count = 10;\n\n var d = domain();\n var i0 = 0;\n var i1 = d.length - 1;\n var start = d[i0];\n var stop = d[i1];\n var prestep;\n var step;\n var maxIter = 10;\n\n if (stop < start) {\n step = start, start = stop, stop = step;\n step = i0, i0 = i1, i1 = step;\n }\n \n while (maxIter-- > 0) {\n step = tickIncrement(start, stop, count);\n if (step === prestep) {\n d[i0] = start\n d[i1] = stop\n return domain(d);\n } else if (step > 0) {\n start = Math.floor(start / step) * step;\n stop = Math.ceil(stop / step) * step;\n } else if (step < 0) {\n start = Math.ceil(start * step) / step;\n stop = Math.floor(stop * step) / step;\n } else {\n break;\n }\n prestep = step;\n }\n\n return scale;\n };\n\n return scale;\n}\n\nexport default function linear() {\n var scale = continuous();\n\n scale.copy = function() {\n return copy(scale, linear());\n };\n\n initRange.apply(scale, arguments);\n\n return linearish(scale);\n}\n"],"x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14],"mappings":"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"}
@@ -208,4 +208,4 @@ var N = {
208
208
  //#endregion
209
209
  export { a, N as i, M as n, i as o, j as r, P as t };
210
210
 
211
- //# sourceMappingURL=markdown-viewer-DrwjEcXp.js.map
211
+ //# sourceMappingURL=markdown-viewer-CBRQVRMp.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"markdown-viewer-DrwjEcXp.js","names":[],"sources":["../src/display/markdown-viewer/parser.ts","../src/display/markdown-viewer/index.ts"],"sourcesContent":["/**\n * Shared GFM Markdown Parser\n * GFM-compatible markdown-to-HTML conversion with optional Mermaid diagram support.\n * Handles: headings, links, images, blockquotes, lists, tables,\n * horizontal rules, strikethrough, task lists, code blocks with\n * language labels and copy buttons.\n */\n\n// ============ Types ============\n\ninterface CodeBlock {\n language: string\n code: string\n id: string\n}\n\nexport interface MarkdownParserOptions {\n supportMermaid?: boolean\n}\n\n// ============ State ============\n\nlet codeBlockCounter = 0\n\nexport function resetCodeBlockCounter(): void {\n codeBlockCounter = 0\n}\n\n// ============ Main Entry ============\n\n/**\n * Convert markdown text to HTML.\n * The input is assumed to already be HTML-escaped for XSS safety.\n * Code blocks, headings, links, etc. are converted to appropriate HTML.\n */\nexport function markdownToHtml(escapedText: string, options?: MarkdownParserOptions): string {\n const supportMermaid = options?.supportMermaid ?? false\n\n // Extract code blocks first to protect them from other transformations\n const codeBlocks: CodeBlock[] = []\n let html = extractCodeBlocks(escapedText, codeBlocks, supportMermaid)\n\n // Block-level transformations (order matters)\n html = transformHeadings(html)\n html = transformHorizontalRules(html)\n html = transformBlockquotes(html)\n html = transformTables(html)\n html = transformLists(html)\n\n // Inline transformations\n html = transformStrikethrough(html)\n html = transformBold(html)\n html = transformItalic(html)\n html = transformInlineCode(html)\n html = transformLinks(html)\n html = transformImages(html)\n html = transformTaskLists(html)\n\n // Line breaks (but not inside block elements)\n html = html.replace(/\\n/g, '<br>')\n\n // Restore code blocks\n html = restoreCodeBlocks(html, codeBlocks)\n\n return html\n}\n\n// ============ Code Block Extraction ============\n\nconst CODE_BLOCK_PLACEHOLDER_PREFIX = '\\x00CB'\nconst MERMAID_PLACEHOLDER_PREFIX = '\\x00MM'\n\nfunction extractCodeBlocks(text: string, blocks: CodeBlock[], supportMermaid: boolean): string {\n return text.replace(\n /```(\\w*)\\n([\\s\\S]*?)```/g,\n (_match: string, lang: string, code: string): string => {\n // Handle mermaid code blocks\n if (supportMermaid && lang === 'mermaid') {\n const decodedCode = decodeHtmlEntities(code)\n const encodedContent = base64Encode(decodedCode)\n codeBlockCounter += 1\n const placeholderId = `cmm-mermaid-ph-${String(codeBlockCounter)}`\n return `${MERMAID_PLACEHOLDER_PREFIX}${placeholderId}\\x01${encodedContent}\\x00`\n }\n\n codeBlockCounter += 1\n const id = `chat-code-${String(codeBlockCounter)}`\n\n // Decode HTML entities back for code content\n const decodedCode = decodeHtmlEntities(code)\n\n blocks.push({ language: lang, code: decodedCode, id })\n return `${CODE_BLOCK_PLACEHOLDER_PREFIX}${String(blocks.length - 1)}\\x00`\n }\n )\n}\n\nfunction restoreCodeBlocks(html: string, blocks: CodeBlock[]): string {\n // Restore mermaid placeholders\n html = html.replace(\n new RegExp(`${MERMAID_PLACEHOLDER_PREFIX}([^\\\\x01]+)\\\\x01([^\\\\x00]+)\\\\x00`, 'g'),\n (_match: string, placeholderId: string, encodedContent: string): string =>\n `<div id=\"${placeholderId}\" class=\"cmm-mermaid-placeholder\" data-mermaid-content=\"${encodedContent}\"></div>`\n )\n\n // Restore regular code blocks\n html = html.replace(\n new RegExp(`${CODE_BLOCK_PLACEHOLDER_PREFIX}(\\\\d+)\\x00`, 'g'),\n (_match: string, indexStr: string): string => {\n const index = Number.parseInt(indexStr, 10)\n const block = blocks[index]\n if (!block) return ''\n return renderCodeBlock(block)\n }\n )\n\n return html\n}\n\n// ============ Code Block Rendering ============\n\nfunction renderCodeBlock(block: CodeBlock): string {\n const langLabel =\n block.language.length > 0\n ? `<span class=\"chat-code__lang\">${escapeAttr(block.language)}</span>`\n : ''\n\n // Re-escape for display inside pre/code\n const displayCode = escapeForCodeBlock(block.code)\n\n return `<div class=\"chat-code-block\" id=\"${block.id}\" data-lang=\"${escapeAttr(block.language)}\">\n<div class=\"chat-code__header\">\n${langLabel}\n<button type=\"button\" class=\"chat-code__copy\" data-copy-code=\"${block.id}\" title=\"Copy code\">\n<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><rect width=\"14\" height=\"14\" x=\"8\" y=\"8\" rx=\"2\" ry=\"2\"/><path d=\"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2\"/></svg>\n<span class=\"chat-code__copy-label\">Copy</span>\n</button>\n</div>\n<pre><code class=\"language-${escapeAttr(block.language)}\">${displayCode}</code></pre>\n</div>`\n}\n\n// ============ Block Transformations ============\n\nfunction transformHeadings(text: string): string {\n // Match lines starting with # (1-6) followed by space and text\n return text.replace(\n /^(#{1,6})\\s+(.+)$/gm,\n (_match: string, hashes: string, content: string): string => {\n const level = hashes.length\n return `<h${String(level)} class=\"chat-md-heading chat-md-h${String(level)}\">${content}</h${String(level)}>`\n }\n )\n}\n\nfunction transformHorizontalRules(text: string): string {\n return text.replace(/^(?:---+|\\*\\*\\*+|___+)\\s*$/gm, '<hr class=\"chat-md-hr\">')\n}\n\nfunction transformBlockquotes(text: string): string {\n // Match consecutive lines starting with >\n const lines = text.split('\\n')\n const result: string[] = []\n let inBlockquote = false\n\n for (const line of lines) {\n const match = /^&gt;\\s?(.*)$/.exec(line)\n if (match) {\n if (!inBlockquote) {\n result.push('<blockquote class=\"chat-md-blockquote\">')\n inBlockquote = true\n }\n result.push(match[1] ?? '')\n } else {\n if (inBlockquote) {\n result.push('</blockquote>')\n inBlockquote = false\n }\n result.push(line)\n }\n }\n\n if (inBlockquote) {\n result.push('</blockquote>')\n }\n\n return result.join('\\n')\n}\n\nfunction transformTables(text: string): string {\n const lines = text.split('\\n')\n const result: string[] = []\n let i = 0\n\n while (i < lines.length) {\n const line = lines[i] ?? ''\n // Check if this line looks like a table row (starts and ends with |, or contains | between content)\n if (isTableRow(line) && i + 1 < lines.length && isTableSeparator(lines[i + 1] ?? '')) {\n // Found a table! Parse it\n const tableLines: string[] = [line]\n i++ // skip header row\n tableLines.push(lines[i] ?? '') // separator\n i++\n\n // Collect body rows\n while (i < lines.length && isTableRow(lines[i] ?? '')) {\n tableLines.push(lines[i] ?? '')\n i++\n }\n\n result.push(renderTable(tableLines))\n } else {\n result.push(line)\n i++\n }\n }\n\n return result.join('\\n')\n}\n\nfunction isTableRow(line: string): boolean {\n const trimmed = line.trim()\n return trimmed.includes('|') && !trimmed.startsWith('|--')\n}\n\nfunction isTableSeparator(line: string): boolean {\n const trimmed = line.trim()\n return /^\\|?[\\s:]*-{2,}[\\s:]*(\\|[\\s:]*-{2,}[\\s:]*)*\\|?\\s*$/.test(trimmed)\n}\n\nfunction renderTable(lines: string[]): string {\n if (lines.length < 2) return lines.join('\\n')\n\n const headerLine = lines[0] ?? ''\n const headerCells = parseTableRow(headerLine)\n\n const headerHtml = headerCells.map(cell => `<th>${cell.trim()}</th>`).join('')\n\n const bodyRows = lines.slice(2)\n const bodyHtml = bodyRows\n .map(row => {\n const cells = parseTableRow(row)\n return `<tr>${cells.map(cell => `<td>${cell.trim()}</td>`).join('')}</tr>`\n })\n .join('')\n\n return `<table class=\"chat-md-table\"><thead><tr>${headerHtml}</tr></thead><tbody>${bodyHtml}</tbody></table>`\n}\n\nfunction parseTableRow(line: string): string[] {\n let trimmed = line.trim()\n if (trimmed.startsWith('|')) trimmed = trimmed.slice(1)\n if (trimmed.endsWith('|')) trimmed = trimmed.slice(0, -1)\n return trimmed.split('|')\n}\n\nfunction transformLists(text: string): string {\n const lines = text.split('\\n')\n const result: string[] = []\n let inUl = false\n let inOl = false\n\n for (const line of lines) {\n const ulMatch = /^(\\s*)[-*+]\\s+(.+)$/.exec(line)\n const olMatch = /^(\\s*)\\d+\\.\\s+(.+)$/.exec(line)\n\n if (ulMatch) {\n if (inOl) {\n result.push('</ol>')\n inOl = false\n }\n if (!inUl) {\n result.push('<ul class=\"chat-md-list\">')\n inUl = true\n }\n result.push(`<li>${ulMatch[2] ?? ''}</li>`)\n } else if (olMatch) {\n if (inUl) {\n result.push('</ul>')\n inUl = false\n }\n if (!inOl) {\n result.push('<ol class=\"chat-md-list\">')\n inOl = true\n }\n result.push(`<li>${olMatch[2] ?? ''}</li>`)\n } else {\n if (inUl) {\n result.push('</ul>')\n inUl = false\n }\n if (inOl) {\n result.push('</ol>')\n inOl = false\n }\n result.push(line)\n }\n }\n\n if (inUl) result.push('</ul>')\n if (inOl) result.push('</ol>')\n\n return result.join('\\n')\n}\n\n// ============ Inline Transformations ============\n\nfunction transformStrikethrough(text: string): string {\n return text.replace(/~~([^~]+)~~/g, '<del>$1</del>')\n}\n\nfunction transformBold(text: string): string {\n return text.replace(/\\*\\*([^*]+)\\*\\*/g, '<strong>$1</strong>')\n}\n\nfunction transformItalic(text: string): string {\n return text.replace(/\\*([^*]+)\\*/g, '<em>$1</em>')\n}\n\nfunction transformInlineCode(text: string): string {\n return text.replace(/`([^`]+)`/g, '<code class=\"chat-md-inline-code\">$1</code>')\n}\n\nconst SAFE_URL_PATTERN = /^(?:https?:|mailto:|tel:|#|\\/)/i\n\nfunction transformLinks(text: string): string {\n // [text](url) - but not images (which start with !)\n return text.replace(\n /(?<!!)\\[([^\\]]+)\\]\\(([^)]+)\\)/g,\n (_match: string, linkText: string, url: string) => {\n const trimmedUrl = url.trim()\n if (SAFE_URL_PATTERN.test(trimmedUrl)) {\n return `<a href=\"${escapeAttr(trimmedUrl)}\" class=\"chat-md-link\" target=\"_blank\" rel=\"noopener noreferrer\">${escapeAttr(linkText)}</a>`\n }\n return `<a class=\"chat-md-link\">${escapeAttr(linkText)}</a>`\n }\n )\n}\n\nfunction transformImages(text: string): string {\n return text.replace(/!\\[([^\\]]*)\\]\\(([^)]+)\\)/g, (_match: string, alt: string, url: string) => {\n const trimmedUrl = url.trim()\n if (/^(?:https?:|data:image\\/|\\/)/i.test(trimmedUrl)) {\n return `<img src=\"${escapeAttr(trimmedUrl)}\" alt=\"${escapeAttr(alt)}\" class=\"chat-md-image\" loading=\"lazy\" />`\n }\n return `<span class=\"chat-md-image\" role=\"img\" aria-label=\"${escapeAttr(alt)}\">[Image: ${escapeAttr(alt)}]</span>`\n })\n}\n\nfunction transformTaskLists(text: string): string {\n // Transform task list items: - [ ] or - [x]\n return text\n .replace(\n /<li>\\[x\\]\\s*/gi,\n '<li class=\"chat-md-task chat-md-task--checked\"><input type=\"checkbox\" checked disabled /> '\n )\n .replace(/<li>\\[ \\]\\s*/g, '<li class=\"chat-md-task\"><input type=\"checkbox\" disabled /> ')\n}\n\n// ============ Utility Functions ============\n\nfunction decodeHtmlEntities(text: string): string {\n return text\n .replace(/&amp;/g, '&')\n .replace(/&lt;/g, '<')\n .replace(/&gt;/g, '>')\n .replace(/&quot;/g, '\"')\n .replace(/&#39;/g, \"'\")\n}\n\nfunction escapeForCodeBlock(text: string): string {\n return text.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;')\n}\n\n/** Escape a value for safe use in an HTML attribute */\nfunction escapeAttr(text: string): string {\n return text\n .replace(/&/g, '&amp;')\n .replace(/\"/g, '&quot;')\n .replace(/'/g, '&#039;')\n .replace(/</g, '&lt;')\n .replace(/>/g, '&gt;')\n}\n\n/** Base64 encode with proper Unicode handling */\nexport function base64Encode(str: string): string {\n const bytes = new TextEncoder().encode(str)\n let binary = ''\n for (const byte of bytes) {\n binary += String.fromCharCode(byte)\n }\n return btoa(binary)\n}\n\n/** Base64 decode with proper Unicode handling */\nexport function base64Decode(str: string): string {\n const binary = atob(str)\n const bytes = new Uint8Array(binary.length)\n for (let i = 0; i < binary.length; i++) {\n bytes[i] = binary.charCodeAt(i)\n }\n return new TextDecoder().decode(bytes)\n}\n\n// ============ Test / Public Exports ============\n\nexport const markdownParserUtils = {\n transformHeadings,\n transformHorizontalRules,\n transformBlockquotes,\n transformTables,\n transformLists,\n transformStrikethrough,\n transformBold,\n transformItalic,\n transformInlineCode,\n transformLinks,\n transformImages,\n transformTaskLists,\n renderCodeBlock,\n decodeHtmlEntities,\n escapeForCodeBlock,\n}\n","/**\n * MarkdownViewer - Full GFM markdown renderer with Mermaid diagram support\n * @countermeasure/web-components/display/markdown-viewer\n */\n\nimport { resolveContainer, uniqueId } from '../../primitives/utils'\nimport { escapeHtml } from '../../utils/sanitize'\nimport { type MarkdownViewerConfig } from './types'\nimport type { MermaidTheme } from '../../visualization/mermaid-diagram/types'\nimport type { MermaidDiagram } from '../../visualization/mermaid-diagram/index'\nimport { markdownToHtml, base64Decode } from './parser'\n\nexport type { MarkdownViewerConfig, MermaidTheme } from './types'\nexport {\n markdownToHtml,\n resetCodeBlockCounter,\n markdownParserUtils,\n base64Encode,\n base64Decode,\n} from './parser'\nexport type { MarkdownParserOptions } from './parser'\n\nexport class MarkdownViewer {\n public readonly el: HTMLDivElement\n\n private readonly viewerId: string\n private readonly mermaidTheme: MermaidTheme\n private readonly supportMermaid: boolean\n private currentContent: string\n private mermaidInstances: MermaidDiagram[] = []\n\n constructor(config: MarkdownViewerConfig) {\n this.viewerId = uniqueId('cmm-markdown')\n this.currentContent = config.content\n this.supportMermaid = config.renderMermaid ?? false\n this.mermaidTheme = config.mermaidTheme ?? 'auto'\n\n // Create root element\n this.el = document.createElement('div')\n this.el.id = this.viewerId\n this.el.className = 'cmm-markdown'\n\n if (config.className) {\n this.el.classList.add(config.className)\n }\n\n // Escape the content for XSS safety, then convert markdown to HTML\n const escaped = escapeHtml(this.currentContent)\n this.el.innerHTML = markdownToHtml(escaped, { supportMermaid: this.supportMermaid })\n\n // Mount if container provided\n if (config.container !== undefined) {\n const parent = resolveContainer(config.container)\n parent.appendChild(this.el)\n }\n\n // Auto-render mermaid diagrams if enabled\n if (this.supportMermaid) {\n void this.renderMermaidDiagrams()\n }\n }\n\n /** Update the markdown content and re-render */\n setContent(content: string): void {\n // Destroy existing mermaid instances\n this.destroyMermaidInstances()\n\n this.currentContent = content\n const escaped = escapeHtml(this.currentContent)\n this.el.innerHTML = markdownToHtml(escaped, { supportMermaid: this.supportMermaid })\n\n // Re-render mermaid diagrams if enabled\n if (this.supportMermaid) {\n void this.renderMermaidDiagrams()\n }\n }\n\n /**\n * Find all mermaid placeholder divs and render them as diagrams.\n * This method lazy-loads the MermaidDiagram component on first use.\n */\n async renderMermaidDiagrams(): Promise<void> {\n const placeholders = this.el.querySelectorAll<HTMLDivElement>('.cmm-mermaid-placeholder')\n\n if (placeholders.length === 0) {\n return\n }\n\n // Lazy-load the MermaidDiagram component\n const { MermaidDiagram } = await import('../../visualization/mermaid-diagram/index')\n\n for (const placeholder of placeholders) {\n const encodedContent = placeholder.dataset.mermaidContent\n if (encodedContent === undefined || encodedContent === '') {\n continue\n }\n\n try {\n const content = base64Decode(encodedContent)\n\n // Create MermaidDiagram instance\n const diagram = new MermaidDiagram({\n container: placeholder,\n content,\n theme: this.mermaidTheme,\n })\n\n // Remove the placeholder class and add rendered class\n placeholder.classList.remove('cmm-mermaid-placeholder')\n placeholder.classList.add('cmm-mermaid-rendered')\n\n this.mermaidInstances.push(diagram)\n } catch (error) {\n // Show error in placeholder\n placeholder.classList.add('cmm-mermaid-error')\n placeholder.innerHTML = `<div class=\"cmm-mermaid-diagram__error\">\n <div class=\"cmm-mermaid-diagram__error-title\">Failed to render diagram</div>\n <div class=\"cmm-mermaid-diagram__error-message\">${escapeHtml(String(error))}</div>\n </div>`\n }\n }\n }\n\n /** Destroy all mermaid diagram instances */\n private destroyMermaidInstances(): void {\n for (const instance of this.mermaidInstances) {\n instance.destroy()\n }\n this.mermaidInstances = []\n }\n\n /** Remove the viewer from the DOM */\n destroy(): void {\n this.destroyMermaidInstances()\n this.el.remove()\n }\n}\n"],"mappings":";;;AAsBA,IAAI,IAAmB;AAEvB,SAAgB,IAA8B;AAC5C,KAAmB;;AAUrB,SAAgB,EAAe,GAAqB,GAAyC;CAC3F,IAAM,IAAiB,GAAS,kBAAkB,IAG5C,IAA0B,EAAE,EAC9B,IAAO,EAAkB,GAAa,GAAY,EAAe;AAwBrE,QArBA,IAAO,EAAkB,EAAK,EAC9B,IAAO,EAAyB,EAAK,EACrC,IAAO,EAAqB,EAAK,EACjC,IAAO,EAAgB,EAAK,EAC5B,IAAO,EAAe,EAAK,EAG3B,IAAO,EAAuB,EAAK,EACnC,IAAO,EAAc,EAAK,EAC1B,IAAO,EAAgB,EAAK,EAC5B,IAAO,EAAoB,EAAK,EAChC,IAAO,EAAe,EAAK,EAC3B,IAAO,EAAgB,EAAK,EAC5B,IAAO,EAAmB,EAAK,EAG/B,IAAO,EAAK,QAAQ,OAAO,OAAO,EAGlC,IAAO,EAAkB,GAAM,EAAW,EAEnC;;AAKT,IAAM,IAAgC,QAChC,IAA6B;AAEnC,SAAS,EAAkB,GAAc,GAAqB,GAAiC;AAC7F,QAAO,EAAK,QACV,6BACC,GAAgB,GAAc,MAAyB;AAEtD,MAAI,KAAkB,MAAS,WAAW;GAExC,IAAM,IAAiB,EADH,EAAmB,EAAK,CACI;AAGhD,UAFA,KAAoB,GAEb,GAAG,IADY,kBAAkB,OAAO,EAAiB,GACX,MAAM,EAAe;;AAG5E,OAAoB;EACpB,IAAM,IAAK,aAAa,OAAO,EAAiB,IAG1C,IAAc,EAAmB,EAAK;AAG5C,SADA,EAAO,KAAK;GAAE,UAAU;GAAM,MAAM;GAAa;GAAI,CAAC,EAC/C,GAAG,IAAgC,OAAO,EAAO,SAAS,EAAE,CAAC;GAEvE;;AAGH,SAAS,EAAkB,GAAc,GAA6B;AAmBpE,QAjBA,IAAO,EAAK,QACN,OAAO,GAAG,EAA2B,mCAAmC,IAAI,GAC/E,GAAgB,GAAuB,MACtC,YAAY,EAAc,0DAA0D,EAAe,UACtG,EAGD,IAAO,EAAK,QACN,OAAO,GAAG,EAA8B,aAAa,IAAI,GAC5D,GAAgB,MAA6B;EAE5C,IAAM,IAAQ,EADA,OAAO,SAAS,GAAU,GAAG;AAG3C,SADK,IACE,EAAgB,EAAM,GADV;GAGtB,EAEM;;AAKT,SAAS,EAAgB,GAA0B;CACjD,IAAM,IACJ,EAAM,SAAS,SAAS,IACpB,iCAAiC,EAAW,EAAM,SAAS,CAAC,WAC5D,IAGA,IAAc,EAAmB,EAAM,KAAK;AAElD,QAAO,oCAAoC,EAAM,GAAG,eAAe,EAAW,EAAM,SAAS,CAAC;;EAE9F,EAAU;gEACoD,EAAM,GAAG;;;;;6BAK5C,EAAW,EAAM,SAAS,CAAC,IAAI,EAAY;;;AAMxE,SAAS,EAAkB,GAAsB;AAE/C,QAAO,EAAK,QACV,wBACC,GAAgB,GAAgB,MAA4B;EAC3D,IAAM,IAAQ,EAAO;AACrB,SAAO,KAAK,OAAO,EAAM,CAAC,mCAAmC,OAAO,EAAM,CAAC,IAAI,EAAQ,KAAK,OAAO,EAAM,CAAC;GAE7G;;AAGH,SAAS,EAAyB,GAAsB;AACtD,QAAO,EAAK,QAAQ,gCAAgC,4BAA0B;;AAGhF,SAAS,EAAqB,GAAsB;CAElD,IAAM,IAAQ,EAAK,MAAM,KAAK,EACxB,IAAmB,EAAE,EACvB,IAAe;AAEnB,MAAK,IAAM,KAAQ,GAAO;EACxB,IAAM,IAAQ,gBAAgB,KAAK,EAAK;AACxC,EAAI,KACF,AAEE,OADA,EAAO,KAAK,4CAA0C,EACvC,KAEjB,EAAO,KAAK,EAAM,MAAM,GAAG,KAE3B,AAEE,OADA,EAAO,KAAK,gBAAgB,EACb,KAEjB,EAAO,KAAK,EAAK;;AAQrB,QAJI,KACF,EAAO,KAAK,gBAAgB,EAGvB,EAAO,KAAK,KAAK;;AAG1B,SAAS,EAAgB,GAAsB;CAC7C,IAAM,IAAQ,EAAK,MAAM,KAAK,EACxB,IAAmB,EAAE,EACvB,IAAI;AAER,QAAO,IAAI,EAAM,SAAQ;EACvB,IAAM,IAAO,EAAM,MAAM;AAEzB,MAAI,EAAW,EAAK,IAAI,IAAI,IAAI,EAAM,UAAU,EAAiB,EAAM,IAAI,MAAM,GAAG,EAAE;GAEpF,IAAM,IAAuB,CAAC,EAAK;AAMnC,QALA,KACA,EAAW,KAAK,EAAM,MAAM,GAAG,EAC/B,KAGO,IAAI,EAAM,UAAU,EAAW,EAAM,MAAM,GAAG,EAEnD,CADA,EAAW,KAAK,EAAM,MAAM,GAAG,EAC/B;AAGF,KAAO,KAAK,EAAY,EAAW,CAAC;QAGpC,CADA,EAAO,KAAK,EAAK,EACjB;;AAIJ,QAAO,EAAO,KAAK,KAAK;;AAG1B,SAAS,EAAW,GAAuB;CACzC,IAAM,IAAU,EAAK,MAAM;AAC3B,QAAO,EAAQ,SAAS,IAAI,IAAI,CAAC,EAAQ,WAAW,MAAM;;AAG5D,SAAS,EAAiB,GAAuB;CAC/C,IAAM,IAAU,EAAK,MAAM;AAC3B,QAAO,qDAAqD,KAAK,EAAQ;;AAG3E,SAAS,EAAY,GAAyB;AAgB5C,QAfI,EAAM,SAAS,IAAU,EAAM,KAAK,KAAK,GAetC,2CAZa,EADD,EAAM,MAAM,GACc,CAEd,KAAI,MAAQ,OAAO,EAAK,MAAM,CAAC,OAAO,CAAC,KAAK,GAAG,CAUjB,sBAR5C,EAAM,MAAM,EAAE,CAE5B,KAAI,MAEI,OADO,EAAc,EAAI,CACZ,KAAI,MAAQ,OAAO,EAAK,MAAM,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,OACpE,CACD,KAAK,GAAG,CAEiF;;AAG9F,SAAS,EAAc,GAAwB;CAC7C,IAAI,IAAU,EAAK,MAAM;AAGzB,QAFI,EAAQ,WAAW,IAAI,KAAE,IAAU,EAAQ,MAAM,EAAE,GACnD,EAAQ,SAAS,IAAI,KAAE,IAAU,EAAQ,MAAM,GAAG,GAAG,GAClD,EAAQ,MAAM,IAAI;;AAG3B,SAAS,EAAe,GAAsB;CAC5C,IAAM,IAAQ,EAAK,MAAM,KAAK,EACxB,IAAmB,EAAE,EACvB,IAAO,IACP,IAAO;AAEX,MAAK,IAAM,KAAQ,GAAO;EACxB,IAAM,IAAU,sBAAsB,KAAK,EAAK,EAC1C,IAAU,sBAAsB,KAAK,EAAK;AAEhD,EAAI,KACF,AAEE,OADA,EAAO,KAAK,QAAQ,EACb,KAET,AAEE,OADA,EAAO,KAAK,8BAA4B,EACjC,KAET,EAAO,KAAK,OAAO,EAAQ,MAAM,GAAG,OAAO,IAClC,KACT,AAEE,OADA,EAAO,KAAK,QAAQ,EACb,KAET,AAEE,OADA,EAAO,KAAK,8BAA4B,EACjC,KAET,EAAO,KAAK,OAAO,EAAQ,MAAM,GAAG,OAAO,KAE3C,AAEE,OADA,EAAO,KAAK,QAAQ,EACb,KAET,AAEE,OADA,EAAO,KAAK,QAAQ,EACb,KAET,EAAO,KAAK,EAAK;;AAOrB,QAHI,KAAM,EAAO,KAAK,QAAQ,EAC1B,KAAM,EAAO,KAAK,QAAQ,EAEvB,EAAO,KAAK,KAAK;;AAK1B,SAAS,EAAuB,GAAsB;AACpD,QAAO,EAAK,QAAQ,gBAAgB,gBAAgB;;AAGtD,SAAS,EAAc,GAAsB;AAC3C,QAAO,EAAK,QAAQ,oBAAoB,sBAAsB;;AAGhE,SAAS,EAAgB,GAAsB;AAC7C,QAAO,EAAK,QAAQ,gBAAgB,cAAc;;AAGpD,SAAS,EAAoB,GAAsB;AACjD,QAAO,EAAK,QAAQ,cAAc,gDAA8C;;AAGlF,IAAM,IAAmB;AAEzB,SAAS,EAAe,GAAsB;AAE5C,QAAO,EAAK,QACV,mCACC,GAAgB,GAAkB,MAAgB;EACjD,IAAM,IAAa,EAAI,MAAM;AAI7B,SAHI,EAAiB,KAAK,EAAW,GAC5B,YAAY,EAAW,EAAW,CAAC,mEAAmE,EAAW,EAAS,CAAC,QAE7H,2BAA2B,EAAW,EAAS,CAAC;GAE1D;;AAGH,SAAS,EAAgB,GAAsB;AAC7C,QAAO,EAAK,QAAQ,8BAA8B,GAAgB,GAAa,MAAgB;EAC7F,IAAM,IAAa,EAAI,MAAM;AAI7B,SAHI,gCAAgC,KAAK,EAAW,GAC3C,aAAa,EAAW,EAAW,CAAC,SAAS,EAAW,EAAI,CAAC,6CAE/D,sDAAsD,EAAW,EAAI,CAAC,YAAY,EAAW,EAAI,CAAC;GACzG;;AAGJ,SAAS,EAAmB,GAAsB;AAEhD,QAAO,EACJ,QACC,kBACA,iGACD,CACA,QAAQ,iBAAiB,mEAA+D;;AAK7F,SAAS,EAAmB,GAAsB;AAChD,QAAO,EACJ,QAAQ,UAAU,IAAI,CACtB,QAAQ,SAAS,IAAI,CACrB,QAAQ,SAAS,IAAI,CACrB,QAAQ,WAAW,KAAI,CACvB,QAAQ,UAAU,IAAI;;AAG3B,SAAS,EAAmB,GAAsB;AAChD,QAAO,EAAK,QAAQ,MAAM,QAAQ,CAAC,QAAQ,MAAM,OAAO,CAAC,QAAQ,MAAM,OAAO;;AAIhF,SAAS,EAAW,GAAsB;AACxC,QAAO,EACJ,QAAQ,MAAM,QAAQ,CACtB,QAAQ,MAAM,SAAS,CACvB,QAAQ,MAAM,SAAS,CACvB,QAAQ,MAAM,OAAO,CACrB,QAAQ,MAAM,OAAO;;AAI1B,SAAgB,EAAa,GAAqB;CAChD,IAAM,IAAQ,IAAI,aAAa,CAAC,OAAO,EAAI,EACvC,IAAS;AACb,MAAK,IAAM,KAAQ,EACjB,MAAU,OAAO,aAAa,EAAK;AAErC,QAAO,KAAK,EAAO;;AAIrB,SAAgB,EAAa,GAAqB;CAChD,IAAM,IAAS,KAAK,EAAI,EAClB,IAAQ,IAAI,WAAW,EAAO,OAAO;AAC3C,MAAK,IAAI,IAAI,GAAG,IAAI,EAAO,QAAQ,IACjC,GAAM,KAAK,EAAO,WAAW,EAAE;AAEjC,QAAO,IAAI,aAAa,CAAC,OAAO,EAAM;;AAKxC,IAAa,IAAsB;CACjC;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACD,EChZY,IAAb,MAA4B;CAC1B;CAEA;CACA;CACA;CACA;CACA,mBAA6C,EAAE;CAE/C,YAAY,GAA8B;AAWxC,EAVA,KAAK,WAAW,EAAS,eAAe,EACxC,KAAK,iBAAiB,EAAO,SAC7B,KAAK,iBAAiB,EAAO,iBAAiB,IAC9C,KAAK,eAAe,EAAO,gBAAgB,QAG3C,KAAK,KAAK,SAAS,cAAc,MAAM,EACvC,KAAK,GAAG,KAAK,KAAK,UAClB,KAAK,GAAG,YAAY,gBAEhB,EAAO,aACT,KAAK,GAAG,UAAU,IAAI,EAAO,UAAU;EAIzC,IAAM,IAAU,EAAW,KAAK,eAAe;AAU/C,EATA,KAAK,GAAG,YAAY,EAAe,GAAS,EAAE,gBAAgB,KAAK,gBAAgB,CAAC,EAGhF,EAAO,cAAc,KAAA,KACR,EAAiB,EAAO,UAAU,CAC1C,YAAY,KAAK,GAAG,EAIzB,KAAK,kBACF,KAAK,uBAAuB;;CAKrC,WAAW,GAAuB;AAIhC,EAFA,KAAK,yBAAyB,EAE9B,KAAK,iBAAiB;EACtB,IAAM,IAAU,EAAW,KAAK,eAAe;AAI/C,EAHA,KAAK,GAAG,YAAY,EAAe,GAAS,EAAE,gBAAgB,KAAK,gBAAgB,CAAC,EAGhF,KAAK,kBACF,KAAK,uBAAuB;;CAQrC,MAAM,wBAAuC;EAC3C,IAAM,IAAe,KAAK,GAAG,iBAAiC,2BAA2B;AAEzF,MAAI,EAAa,WAAW,EAC1B;EAIF,IAAM,EAAE,sBAAmB,MAAM,OAAO;AAExC,OAAK,IAAM,KAAe,GAAc;GACtC,IAAM,IAAiB,EAAY,QAAQ;AACvC,eAAmB,KAAA,KAAa,MAAmB,IAIvD,KAAI;IAIF,IAAM,IAAU,IAAI,EAAe;KACjC,WAAW;KACX,SALc,EAAa,EAAe;KAM1C,OAAO,KAAK;KACb,CAAC;AAMF,IAHA,EAAY,UAAU,OAAO,0BAA0B,EACvD,EAAY,UAAU,IAAI,uBAAuB,EAEjD,KAAK,iBAAiB,KAAK,EAAQ;YAC5B,GAAO;AAGd,IADA,EAAY,UAAU,IAAI,oBAAoB,EAC9C,EAAY,YAAY;;4DAE4B,EAAW,OAAO,EAAM,CAAC,CAAC;;;;;CAOpF,0BAAwC;AACtC,OAAK,IAAM,KAAY,KAAK,iBAC1B,GAAS,SAAS;AAEpB,OAAK,mBAAmB,EAAE;;CAI5B,UAAgB;AAEd,EADA,KAAK,yBAAyB,EAC9B,KAAK,GAAG,QAAQ"}
1
+ {"version":3,"file":"markdown-viewer-CBRQVRMp.js","names":[],"sources":["../src/display/markdown-viewer/parser.ts","../src/display/markdown-viewer/index.ts"],"sourcesContent":["/**\n * Shared GFM Markdown Parser\n * GFM-compatible markdown-to-HTML conversion with optional Mermaid diagram support.\n * Handles: headings, links, images, blockquotes, lists, tables,\n * horizontal rules, strikethrough, task lists, code blocks with\n * language labels and copy buttons.\n */\n\n// ============ Types ============\n\ninterface CodeBlock {\n language: string\n code: string\n id: string\n}\n\nexport interface MarkdownParserOptions {\n supportMermaid?: boolean\n}\n\n// ============ State ============\n\nlet codeBlockCounter = 0\n\nexport function resetCodeBlockCounter(): void {\n codeBlockCounter = 0\n}\n\n// ============ Main Entry ============\n\n/**\n * Convert markdown text to HTML.\n * The input is assumed to already be HTML-escaped for XSS safety.\n * Code blocks, headings, links, etc. are converted to appropriate HTML.\n */\nexport function markdownToHtml(escapedText: string, options?: MarkdownParserOptions): string {\n const supportMermaid = options?.supportMermaid ?? false\n\n // Extract code blocks first to protect them from other transformations\n const codeBlocks: CodeBlock[] = []\n let html = extractCodeBlocks(escapedText, codeBlocks, supportMermaid)\n\n // Block-level transformations (order matters)\n html = transformHeadings(html)\n html = transformHorizontalRules(html)\n html = transformBlockquotes(html)\n html = transformTables(html)\n html = transformLists(html)\n\n // Inline transformations\n html = transformStrikethrough(html)\n html = transformBold(html)\n html = transformItalic(html)\n html = transformInlineCode(html)\n html = transformLinks(html)\n html = transformImages(html)\n html = transformTaskLists(html)\n\n // Line breaks (but not inside block elements)\n html = html.replace(/\\n/g, '<br>')\n\n // Restore code blocks\n html = restoreCodeBlocks(html, codeBlocks)\n\n return html\n}\n\n// ============ Code Block Extraction ============\n\nconst CODE_BLOCK_PLACEHOLDER_PREFIX = '\\x00CB'\nconst MERMAID_PLACEHOLDER_PREFIX = '\\x00MM'\n\nfunction extractCodeBlocks(text: string, blocks: CodeBlock[], supportMermaid: boolean): string {\n return text.replace(\n /```(\\w*)\\n([\\s\\S]*?)```/g,\n (_match: string, lang: string, code: string): string => {\n // Handle mermaid code blocks\n if (supportMermaid && lang === 'mermaid') {\n const decodedCode = decodeHtmlEntities(code)\n const encodedContent = base64Encode(decodedCode)\n codeBlockCounter += 1\n const placeholderId = `cmm-mermaid-ph-${String(codeBlockCounter)}`\n return `${MERMAID_PLACEHOLDER_PREFIX}${placeholderId}\\x01${encodedContent}\\x00`\n }\n\n codeBlockCounter += 1\n const id = `chat-code-${String(codeBlockCounter)}`\n\n // Decode HTML entities back for code content\n const decodedCode = decodeHtmlEntities(code)\n\n blocks.push({ language: lang, code: decodedCode, id })\n return `${CODE_BLOCK_PLACEHOLDER_PREFIX}${String(blocks.length - 1)}\\x00`\n }\n )\n}\n\nfunction restoreCodeBlocks(html: string, blocks: CodeBlock[]): string {\n // Restore mermaid placeholders\n html = html.replace(\n new RegExp(`${MERMAID_PLACEHOLDER_PREFIX}([^\\\\x01]+)\\\\x01([^\\\\x00]+)\\\\x00`, 'g'),\n (_match: string, placeholderId: string, encodedContent: string): string =>\n `<div id=\"${placeholderId}\" class=\"cmm-mermaid-placeholder\" data-mermaid-content=\"${encodedContent}\"></div>`\n )\n\n // Restore regular code blocks\n html = html.replace(\n new RegExp(`${CODE_BLOCK_PLACEHOLDER_PREFIX}(\\\\d+)\\x00`, 'g'),\n (_match: string, indexStr: string): string => {\n const index = Number.parseInt(indexStr, 10)\n const block = blocks[index]\n if (!block) return ''\n return renderCodeBlock(block)\n }\n )\n\n return html\n}\n\n// ============ Code Block Rendering ============\n\nfunction renderCodeBlock(block: CodeBlock): string {\n const langLabel =\n block.language.length > 0\n ? `<span class=\"chat-code__lang\">${escapeAttr(block.language)}</span>`\n : ''\n\n // Re-escape for display inside pre/code\n const displayCode = escapeForCodeBlock(block.code)\n\n return `<div class=\"chat-code-block\" id=\"${block.id}\" data-lang=\"${escapeAttr(block.language)}\">\n<div class=\"chat-code__header\">\n${langLabel}\n<button type=\"button\" class=\"chat-code__copy\" data-copy-code=\"${block.id}\" title=\"Copy code\">\n<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><rect width=\"14\" height=\"14\" x=\"8\" y=\"8\" rx=\"2\" ry=\"2\"/><path d=\"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2\"/></svg>\n<span class=\"chat-code__copy-label\">Copy</span>\n</button>\n</div>\n<pre><code class=\"language-${escapeAttr(block.language)}\">${displayCode}</code></pre>\n</div>`\n}\n\n// ============ Block Transformations ============\n\nfunction transformHeadings(text: string): string {\n // Match lines starting with # (1-6) followed by space and text\n return text.replace(\n /^(#{1,6})\\s+(.+)$/gm,\n (_match: string, hashes: string, content: string): string => {\n const level = hashes.length\n return `<h${String(level)} class=\"chat-md-heading chat-md-h${String(level)}\">${content}</h${String(level)}>`\n }\n )\n}\n\nfunction transformHorizontalRules(text: string): string {\n return text.replace(/^(?:---+|\\*\\*\\*+|___+)\\s*$/gm, '<hr class=\"chat-md-hr\">')\n}\n\nfunction transformBlockquotes(text: string): string {\n // Match consecutive lines starting with >\n const lines = text.split('\\n')\n const result: string[] = []\n let inBlockquote = false\n\n for (const line of lines) {\n const match = /^&gt;\\s?(.*)$/.exec(line)\n if (match) {\n if (!inBlockquote) {\n result.push('<blockquote class=\"chat-md-blockquote\">')\n inBlockquote = true\n }\n result.push(match[1] ?? '')\n } else {\n if (inBlockquote) {\n result.push('</blockquote>')\n inBlockquote = false\n }\n result.push(line)\n }\n }\n\n if (inBlockquote) {\n result.push('</blockquote>')\n }\n\n return result.join('\\n')\n}\n\nfunction transformTables(text: string): string {\n const lines = text.split('\\n')\n const result: string[] = []\n let i = 0\n\n while (i < lines.length) {\n const line = lines[i] ?? ''\n // Check if this line looks like a table row (starts and ends with |, or contains | between content)\n if (isTableRow(line) && i + 1 < lines.length && isTableSeparator(lines[i + 1] ?? '')) {\n // Found a table! Parse it\n const tableLines: string[] = [line]\n i++ // skip header row\n tableLines.push(lines[i] ?? '') // separator\n i++\n\n // Collect body rows\n while (i < lines.length && isTableRow(lines[i] ?? '')) {\n tableLines.push(lines[i] ?? '')\n i++\n }\n\n result.push(renderTable(tableLines))\n } else {\n result.push(line)\n i++\n }\n }\n\n return result.join('\\n')\n}\n\nfunction isTableRow(line: string): boolean {\n const trimmed = line.trim()\n return trimmed.includes('|') && !trimmed.startsWith('|--')\n}\n\nfunction isTableSeparator(line: string): boolean {\n const trimmed = line.trim()\n return /^\\|?[\\s:]*-{2,}[\\s:]*(\\|[\\s:]*-{2,}[\\s:]*)*\\|?\\s*$/.test(trimmed)\n}\n\nfunction renderTable(lines: string[]): string {\n if (lines.length < 2) return lines.join('\\n')\n\n const headerLine = lines[0] ?? ''\n const headerCells = parseTableRow(headerLine)\n\n const headerHtml = headerCells.map(cell => `<th>${cell.trim()}</th>`).join('')\n\n const bodyRows = lines.slice(2)\n const bodyHtml = bodyRows\n .map(row => {\n const cells = parseTableRow(row)\n return `<tr>${cells.map(cell => `<td>${cell.trim()}</td>`).join('')}</tr>`\n })\n .join('')\n\n return `<table class=\"chat-md-table\"><thead><tr>${headerHtml}</tr></thead><tbody>${bodyHtml}</tbody></table>`\n}\n\nfunction parseTableRow(line: string): string[] {\n let trimmed = line.trim()\n if (trimmed.startsWith('|')) trimmed = trimmed.slice(1)\n if (trimmed.endsWith('|')) trimmed = trimmed.slice(0, -1)\n return trimmed.split('|')\n}\n\nfunction transformLists(text: string): string {\n const lines = text.split('\\n')\n const result: string[] = []\n let inUl = false\n let inOl = false\n\n for (const line of lines) {\n const ulMatch = /^(\\s*)[-*+]\\s+(.+)$/.exec(line)\n const olMatch = /^(\\s*)\\d+\\.\\s+(.+)$/.exec(line)\n\n if (ulMatch) {\n if (inOl) {\n result.push('</ol>')\n inOl = false\n }\n if (!inUl) {\n result.push('<ul class=\"chat-md-list\">')\n inUl = true\n }\n result.push(`<li>${ulMatch[2] ?? ''}</li>`)\n } else if (olMatch) {\n if (inUl) {\n result.push('</ul>')\n inUl = false\n }\n if (!inOl) {\n result.push('<ol class=\"chat-md-list\">')\n inOl = true\n }\n result.push(`<li>${olMatch[2] ?? ''}</li>`)\n } else {\n if (inUl) {\n result.push('</ul>')\n inUl = false\n }\n if (inOl) {\n result.push('</ol>')\n inOl = false\n }\n result.push(line)\n }\n }\n\n if (inUl) result.push('</ul>')\n if (inOl) result.push('</ol>')\n\n return result.join('\\n')\n}\n\n// ============ Inline Transformations ============\n\nfunction transformStrikethrough(text: string): string {\n return text.replace(/~~([^~]+)~~/g, '<del>$1</del>')\n}\n\nfunction transformBold(text: string): string {\n return text.replace(/\\*\\*([^*]+)\\*\\*/g, '<strong>$1</strong>')\n}\n\nfunction transformItalic(text: string): string {\n return text.replace(/\\*([^*]+)\\*/g, '<em>$1</em>')\n}\n\nfunction transformInlineCode(text: string): string {\n return text.replace(/`([^`]+)`/g, '<code class=\"chat-md-inline-code\">$1</code>')\n}\n\nconst SAFE_URL_PATTERN = /^(?:https?:|mailto:|tel:|#|\\/)/i\n\nfunction transformLinks(text: string): string {\n // [text](url) - but not images (which start with !)\n return text.replace(\n /(?<!!)\\[([^\\]]+)\\]\\(([^)]+)\\)/g,\n (_match: string, linkText: string, url: string) => {\n const trimmedUrl = url.trim()\n if (SAFE_URL_PATTERN.test(trimmedUrl)) {\n return `<a href=\"${escapeAttr(trimmedUrl)}\" class=\"chat-md-link\" target=\"_blank\" rel=\"noopener noreferrer\">${escapeAttr(linkText)}</a>`\n }\n return `<a class=\"chat-md-link\">${escapeAttr(linkText)}</a>`\n }\n )\n}\n\nfunction transformImages(text: string): string {\n return text.replace(/!\\[([^\\]]*)\\]\\(([^)]+)\\)/g, (_match: string, alt: string, url: string) => {\n const trimmedUrl = url.trim()\n if (/^(?:https?:|data:image\\/|\\/)/i.test(trimmedUrl)) {\n return `<img src=\"${escapeAttr(trimmedUrl)}\" alt=\"${escapeAttr(alt)}\" class=\"chat-md-image\" loading=\"lazy\" />`\n }\n return `<span class=\"chat-md-image\" role=\"img\" aria-label=\"${escapeAttr(alt)}\">[Image: ${escapeAttr(alt)}]</span>`\n })\n}\n\nfunction transformTaskLists(text: string): string {\n // Transform task list items: - [ ] or - [x]\n return text\n .replace(\n /<li>\\[x\\]\\s*/gi,\n '<li class=\"chat-md-task chat-md-task--checked\"><input type=\"checkbox\" checked disabled /> '\n )\n .replace(/<li>\\[ \\]\\s*/g, '<li class=\"chat-md-task\"><input type=\"checkbox\" disabled /> ')\n}\n\n// ============ Utility Functions ============\n\nfunction decodeHtmlEntities(text: string): string {\n return text\n .replace(/&amp;/g, '&')\n .replace(/&lt;/g, '<')\n .replace(/&gt;/g, '>')\n .replace(/&quot;/g, '\"')\n .replace(/&#39;/g, \"'\")\n}\n\nfunction escapeForCodeBlock(text: string): string {\n return text.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;')\n}\n\n/** Escape a value for safe use in an HTML attribute */\nfunction escapeAttr(text: string): string {\n return text\n .replace(/&/g, '&amp;')\n .replace(/\"/g, '&quot;')\n .replace(/'/g, '&#039;')\n .replace(/</g, '&lt;')\n .replace(/>/g, '&gt;')\n}\n\n/** Base64 encode with proper Unicode handling */\nexport function base64Encode(str: string): string {\n const bytes = new TextEncoder().encode(str)\n let binary = ''\n for (const byte of bytes) {\n binary += String.fromCharCode(byte)\n }\n return btoa(binary)\n}\n\n/** Base64 decode with proper Unicode handling */\nexport function base64Decode(str: string): string {\n const binary = atob(str)\n const bytes = new Uint8Array(binary.length)\n for (let i = 0; i < binary.length; i++) {\n bytes[i] = binary.charCodeAt(i)\n }\n return new TextDecoder().decode(bytes)\n}\n\n// ============ Test / Public Exports ============\n\nexport const markdownParserUtils = {\n transformHeadings,\n transformHorizontalRules,\n transformBlockquotes,\n transformTables,\n transformLists,\n transformStrikethrough,\n transformBold,\n transformItalic,\n transformInlineCode,\n transformLinks,\n transformImages,\n transformTaskLists,\n renderCodeBlock,\n decodeHtmlEntities,\n escapeForCodeBlock,\n}\n","/**\n * MarkdownViewer - Full GFM markdown renderer with Mermaid diagram support\n * @countermeasure/web-components/display/markdown-viewer\n */\n\nimport { resolveContainer, uniqueId } from '../../primitives/utils'\nimport { escapeHtml } from '../../utils/sanitize'\nimport { type MarkdownViewerConfig } from './types'\nimport type { MermaidTheme } from '../../visualization/mermaid-diagram/types'\nimport type { MermaidDiagram } from '../../visualization/mermaid-diagram/index'\nimport { markdownToHtml, base64Decode } from './parser'\n\nexport type { MarkdownViewerConfig, MermaidTheme } from './types'\nexport {\n markdownToHtml,\n resetCodeBlockCounter,\n markdownParserUtils,\n base64Encode,\n base64Decode,\n} from './parser'\nexport type { MarkdownParserOptions } from './parser'\n\nexport class MarkdownViewer {\n public readonly el: HTMLDivElement\n\n private readonly viewerId: string\n private readonly mermaidTheme: MermaidTheme\n private readonly supportMermaid: boolean\n private currentContent: string\n private mermaidInstances: MermaidDiagram[] = []\n\n constructor(config: MarkdownViewerConfig) {\n this.viewerId = uniqueId('cmm-markdown')\n this.currentContent = config.content\n this.supportMermaid = config.renderMermaid ?? false\n this.mermaidTheme = config.mermaidTheme ?? 'auto'\n\n // Create root element\n this.el = document.createElement('div')\n this.el.id = this.viewerId\n this.el.className = 'cmm-markdown'\n\n if (config.className) {\n this.el.classList.add(config.className)\n }\n\n // Escape the content for XSS safety, then convert markdown to HTML\n const escaped = escapeHtml(this.currentContent)\n this.el.innerHTML = markdownToHtml(escaped, { supportMermaid: this.supportMermaid })\n\n // Mount if container provided\n if (config.container !== undefined) {\n const parent = resolveContainer(config.container)\n parent.appendChild(this.el)\n }\n\n // Auto-render mermaid diagrams if enabled\n if (this.supportMermaid) {\n void this.renderMermaidDiagrams()\n }\n }\n\n /** Update the markdown content and re-render */\n setContent(content: string): void {\n // Destroy existing mermaid instances\n this.destroyMermaidInstances()\n\n this.currentContent = content\n const escaped = escapeHtml(this.currentContent)\n this.el.innerHTML = markdownToHtml(escaped, { supportMermaid: this.supportMermaid })\n\n // Re-render mermaid diagrams if enabled\n if (this.supportMermaid) {\n void this.renderMermaidDiagrams()\n }\n }\n\n /**\n * Find all mermaid placeholder divs and render them as diagrams.\n * This method lazy-loads the MermaidDiagram component on first use.\n */\n async renderMermaidDiagrams(): Promise<void> {\n const placeholders = this.el.querySelectorAll<HTMLDivElement>('.cmm-mermaid-placeholder')\n\n if (placeholders.length === 0) {\n return\n }\n\n // Lazy-load the MermaidDiagram component\n const { MermaidDiagram } = await import('../../visualization/mermaid-diagram/index')\n\n for (const placeholder of placeholders) {\n const encodedContent = placeholder.dataset.mermaidContent\n if (encodedContent === undefined || encodedContent === '') {\n continue\n }\n\n try {\n const content = base64Decode(encodedContent)\n\n // Create MermaidDiagram instance\n const diagram = new MermaidDiagram({\n container: placeholder,\n content,\n theme: this.mermaidTheme,\n })\n\n // Remove the placeholder class and add rendered class\n placeholder.classList.remove('cmm-mermaid-placeholder')\n placeholder.classList.add('cmm-mermaid-rendered')\n\n this.mermaidInstances.push(diagram)\n } catch (error) {\n // Show error in placeholder\n placeholder.classList.add('cmm-mermaid-error')\n placeholder.innerHTML = `<div class=\"cmm-mermaid-diagram__error\">\n <div class=\"cmm-mermaid-diagram__error-title\">Failed to render diagram</div>\n <div class=\"cmm-mermaid-diagram__error-message\">${escapeHtml(String(error))}</div>\n </div>`\n }\n }\n }\n\n /** Destroy all mermaid diagram instances */\n private destroyMermaidInstances(): void {\n for (const instance of this.mermaidInstances) {\n instance.destroy()\n }\n this.mermaidInstances = []\n }\n\n /** Remove the viewer from the DOM */\n destroy(): void {\n this.destroyMermaidInstances()\n this.el.remove()\n }\n}\n"],"mappings":"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"}
@@ -9,4 +9,4 @@ function f(e) {
9
9
  //#endregion
10
10
  export { n as a, r as c, a as d, o as f, t as i, i as l, d as n, s as o, u as p, f as r, l as s, e as t, c as u };
11
11
 
12
- //# sourceMappingURL=math--xT1IZMK.js.map
12
+ //# sourceMappingURL=math-D4gdAuwG.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"math--xT1IZMK.js","names":[],"sources":["../node_modules/d3-shape/src/math.js"],"sourcesContent":["export const abs = Math.abs;\nexport const atan2 = Math.atan2;\nexport const cos = Math.cos;\nexport const max = Math.max;\nexport const min = Math.min;\nexport const sin = Math.sin;\nexport const sqrt = Math.sqrt;\n\nexport const epsilon = 1e-12;\nexport const pi = Math.PI;\nexport const halfPi = pi / 2;\nexport const tau = 2 * pi;\n\nexport function acos(x) {\n return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);\n}\n\nexport function asin(x) {\n return x >= 1 ? halfPi : x <= -1 ? -halfPi : Math.asin(x);\n}\n"],"x_google_ignoreList":[0],"mappings":";AAAA,IAAa,IAAM,KAAK,KACX,IAAQ,KAAK,OACb,IAAM,KAAK,KACX,IAAM,KAAK,KACX,IAAM,KAAK,KACX,IAAM,KAAK,KACX,IAAO,KAAK,MAEZ,IAAU,OACV,IAAK,KAAK,IACV,IAAS,IAAK,GACd,IAAM,IAAI;AAEvB,SAAgB,EAAK,GAAG;AACtB,QAAO,IAAI,IAAI,IAAI,IAAI,KAAK,IAAK,KAAK,KAAK,EAAE;;AAG/C,SAAgB,EAAK,GAAG;AACtB,QAAO,KAAK,IAAI,IAAS,KAAK,KAAK,CAAC,IAAS,KAAK,KAAK,EAAE"}
1
+ {"version":3,"file":"math-D4gdAuwG.js","names":[],"sources":["../node_modules/d3-shape/src/math.js"],"sourcesContent":["export const abs = Math.abs;\nexport const atan2 = Math.atan2;\nexport const cos = Math.cos;\nexport const max = Math.max;\nexport const min = Math.min;\nexport const sin = Math.sin;\nexport const sqrt = Math.sqrt;\n\nexport const epsilon = 1e-12;\nexport const pi = Math.PI;\nexport const halfPi = pi / 2;\nexport const tau = 2 * pi;\n\nexport function acos(x) {\n return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);\n}\n\nexport function asin(x) {\n return x >= 1 ? halfPi : x <= -1 ? -halfPi : Math.asin(x);\n}\n"],"x_google_ignoreList":[0],"mappings":";AAAA,IAAa,IAAM,KAAK,KACX,IAAQ,KAAK,OACb,IAAM,KAAK,KACX,IAAM,KAAK,KACX,IAAM,KAAK,KACX,IAAM,KAAK,KACX,IAAO,KAAK,MAEZ,IAAU,OACV,IAAK,KAAK,IACV,IAAS,IAAK,GACd,IAAM,IAAI;AAEvB,SAAgB,EAAK,GAAG;AACtB,QAAO,IAAI,IAAI,IAAI,IAAI,KAAK,IAAK,KAAK,KAAK,EAAE;;AAG/C,SAAgB,EAAK,GAAG;AACtB,QAAO,KAAK,IAAI,IAAS,KAAK,KAAK,CAAC,IAAS,KAAK,KAAK,EAAE"}
@@ -1,15 +1,15 @@
1
- import { t as e } from "./utils-B7XIe3qq.js";
2
- import { t } from "./createLucideIcon-wKpAnzBe.js";
3
- import { t as n } from "./check-CybgTpDT.js";
4
- import { t as r } from "./chevron-right-DuHRAn8w.js";
5
- import { n as i } from "./dist-CTlQcJNK.js";
6
- import { a, o, t as s } from "./dist-koa_pEtu.js";
7
- import { t as c } from "./dist-CpMqmV-i.js";
8
- import { t as l } from "./dist-C0wG5dwG.js";
9
- import { t as u } from "./dist-cMlzVrN6.js";
10
- import { t as d } from "./dist-CVCn7F_m.js";
11
- import { n as f, r as p, t as m } from "./dist-B1veE5DO.js";
12
- import { _ as h, a as g, c as _, d as v, f as ee, g as te, h as ne, i as re, l as ie, m as ae, n as oe, o as se, p as ce, r as le, s as ue, t as de, u as fe } from "./dist-Dq1IoZXt.js";
1
+ import { t as e } from "./utils-DcOSDVkb.js";
2
+ import { t } from "./createLucideIcon-Cfb5CZJx.js";
3
+ import { t as n } from "./check-cGnuDoWp.js";
4
+ import { t as r } from "./chevron-right-ByWVa5XY.js";
5
+ import { n as i } from "./dist-W53Bo1BJ.js";
6
+ import { a, o, t as s } from "./dist-CjZz16VT.js";
7
+ import { t as c } from "./dist-r_mYhsAH.js";
8
+ import { t as l } from "./dist-DYQiYO9a.js";
9
+ import { t as u } from "./dist-M-TigQUP.js";
10
+ import { t as d } from "./dist-CetkIu6m.js";
11
+ import { n as f, r as p, t as m } from "./dist-bUQfhez2.js";
12
+ import { _ as h, a as g, c as _, d as v, f as ee, g as te, h as ne, i as re, l as ie, m as ae, n as oe, o as se, p as ce, r as le, s as ue, t as de, u as fe } from "./dist-B-HCSak9.js";
13
13
  import * as y from "react";
14
14
  import { jsx as b, jsxs as x } from "react/jsx-runtime";
15
15
  var pe = t("circle", [["circle", {
@@ -435,4 +435,4 @@ function at({ className: t, ...n }) {
435
435
  //#endregion
436
436
  export { Ye as a, $ as c, et as d, tt as f, qe as g, it as h, nt as i, Ze as l, at as m, Xe as n, $e as o, rt as p, Je as r, Ke as s, Ge as t, Qe as u };
437
437
 
438
- //# sourceMappingURL=menubar-CZie7LCj.js.map
438
+ //# sourceMappingURL=menubar-lQZ-0ckw.js.map