@aiquants/markdown 8.0.0 → 8.1.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 (120) hide show
  1. package/README.md +6 -5
  2. package/dist/{abnfDiagram-VRR7QNED-RXKSzAok.cjs → abnfDiagram-VRR7QNED-714qd8by.cjs} +1 -1
  3. package/dist/{abnfDiagram-VRR7QNED-CBM41EC-.js → abnfDiagram-VRR7QNED-ClsV3o7-.js} +3 -3
  4. package/dist/{arc-BgmWispZ.cjs → arc-Bs2N0CEE.cjs} +1 -1
  5. package/dist/{arc-Bih4TvC8.js → arc-Eb0BfUPO.js} +1 -1
  6. package/dist/{architectureDiagram-ZJ3FMSHR-G8H1xynt.cjs → architectureDiagram-ZJ3FMSHR-SPtbaJq1.cjs} +1 -1
  7. package/dist/{architectureDiagram-ZJ3FMSHR-D5xVqWe2.js → architectureDiagram-ZJ3FMSHR-l2Kn8D2e.js} +2 -2
  8. package/dist/{blockDiagram-677ZJIJ3-ChRokBD8.cjs → blockDiagram-677ZJIJ3-C01MGcBZ.cjs} +1 -1
  9. package/dist/{blockDiagram-677ZJIJ3-D2McEwPe.js → blockDiagram-677ZJIJ3-CbCSQo90.js} +3 -3
  10. package/dist/{c4Diagram-LMCZKHZV-pbn9ZNfc.js → c4Diagram-LMCZKHZV-CdXSplj6.js} +2 -2
  11. package/dist/{c4Diagram-LMCZKHZV-BbuZbR8I.cjs → c4Diagram-LMCZKHZV-TuT3uTkj.cjs} +1 -1
  12. package/dist/{channel-Bsz6w6My.cjs → channel-DZlQOicJ.cjs} +1 -1
  13. package/dist/{channel-BSzyMwb9.js → channel-inzdTBsL.js} +1 -1
  14. package/dist/{chunk-2Q5K7J3B-BTLV8fQR.js → chunk-2Q5K7J3B-BlcbsuzR.js} +1 -1
  15. package/dist/{chunk-2Q5K7J3B-JZcIC-fN.cjs → chunk-2Q5K7J3B-D2t88W5_.cjs} +1 -1
  16. package/dist/{chunk-32BRIVSS-DVNzMr7e.js → chunk-32BRIVSS-8XP7uEWL.js} +1 -1
  17. package/dist/{chunk-32BRIVSS-CE9TqZq-.cjs → chunk-32BRIVSS-DPtab14v.cjs} +1 -1
  18. package/dist/{chunk-5VM5RSS4-r0VjpGpm.cjs → chunk-5VM5RSS4-BjciIcJB.cjs} +1 -1
  19. package/dist/{chunk-5VM5RSS4-Cs47jzo-.js → chunk-5VM5RSS4-D03FahtZ.js} +1 -1
  20. package/dist/{chunk-EX3LRPZG-BY25xTq7.cjs → chunk-EX3LRPZG-CwaWU3NG.cjs} +1 -1
  21. package/dist/{chunk-EX3LRPZG-B_5Ggj5W.js → chunk-EX3LRPZG-Cz4_aUcx.js} +4 -4
  22. package/dist/{chunk-JWPE2WC7-C27eOtyn.cjs → chunk-JWPE2WC7-BhnZoEDO.cjs} +1 -1
  23. package/dist/{chunk-JWPE2WC7-CNmttOZb.js → chunk-JWPE2WC7-CZnRHc3B.js} +1 -1
  24. package/dist/{chunk-MOJQB5TN-sLs8lWY5.cjs → chunk-MOJQB5TN-Bln4G16L.cjs} +1 -1
  25. package/dist/{chunk-MOJQB5TN-CEUtU-PA.js → chunk-MOJQB5TN-CAgrBpGK.js} +1 -1
  26. package/dist/{chunk-PUDLZKDR-kE8IVbnR.js → chunk-PUDLZKDR-Chc4If4v.js} +6 -6
  27. package/dist/{chunk-PUDLZKDR-CKqKzHIr.cjs → chunk-PUDLZKDR-ZSUOxhwQ.cjs} +1 -1
  28. package/dist/{chunk-RYQCIY6F-DvGyCn1K.js → chunk-RYQCIY6F-BWJMA-CG.js} +1 -1
  29. package/dist/{chunk-RYQCIY6F-DFx9Fm0p.cjs → chunk-RYQCIY6F-CmqX9MNK.cjs} +1 -1
  30. package/dist/{chunk-V7JOEXUC-CDO6Uw3c.cjs → chunk-V7JOEXUC-B13vGPTt.cjs} +1 -1
  31. package/dist/{chunk-V7JOEXUC-Ct7hq70I.js → chunk-V7JOEXUC-DxTIfD2Z.js} +5 -5
  32. package/dist/{chunk-VR4S4FIN-BHCUd_x_.cjs → chunk-VR4S4FIN-C67CWetO.cjs} +1 -1
  33. package/dist/{chunk-VR4S4FIN-BfeSjNNr.js → chunk-VR4S4FIN-CbzSMdlG.js} +1 -1
  34. package/dist/{chunk-XXDRQBXY-DcTILS1N.cjs → chunk-XXDRQBXY-D00l-azL.cjs} +1 -1
  35. package/dist/{chunk-XXDRQBXY-HnJRRkBi.js → chunk-XXDRQBXY-DF5XNYDF.js} +1 -1
  36. package/dist/{classDiagram-v2-EOCWNBFH-aidSJ9xs.js → classDiagram-OUVF2IWQ-BVXrsjAy.js} +2 -2
  37. package/dist/{classDiagram-OUVF2IWQ-D2U1rWVc.cjs → classDiagram-OUVF2IWQ-kTYC0DeX.cjs} +1 -1
  38. package/dist/{classDiagram-OUVF2IWQ-aidSJ9xs.js → classDiagram-v2-EOCWNBFH-BVXrsjAy.js} +2 -2
  39. package/dist/{classDiagram-v2-EOCWNBFH-D2U1rWVc.cjs → classDiagram-v2-EOCWNBFH-kTYC0DeX.cjs} +1 -1
  40. package/dist/converter.wasm +0 -0
  41. package/dist/{cose-bilkent-JH36ORCC-Dwf9bYva.cjs → cose-bilkent-JH36ORCC-CbeyXphF.cjs} +1 -1
  42. package/dist/{cose-bilkent-JH36ORCC-BRo-F7tL.js → cose-bilkent-JH36ORCC-lZuyWql7.js} +1 -1
  43. package/dist/{cynefinDiagram-TSTJHNR4-zinokqe_.cjs → cynefinDiagram-TSTJHNR4-Cuqne60m.cjs} +1 -1
  44. package/dist/{cynefinDiagram-TSTJHNR4-C-GL5fqa.js → cynefinDiagram-TSTJHNR4-DKAvatlk.js} +2 -2
  45. package/dist/{dagre-VKFMJZFB-DuneW1hp.cjs → dagre-VKFMJZFB-D9B4A3vP.cjs} +1 -1
  46. package/dist/{dagre-VKFMJZFB-BffjLC2e.js → dagre-VKFMJZFB-DOl32ZLj.js} +2 -2
  47. package/dist/{diagram-FQU43EPY-zo5gKmtP.cjs → diagram-FQU43EPY-CyKNQRDz.cjs} +1 -1
  48. package/dist/{diagram-FQU43EPY-Dzgvcg1I.js → diagram-FQU43EPY-DW9s8x-t.js} +2 -2
  49. package/dist/{diagram-G47NLZAW-IhAHXHlI.cjs → diagram-G47NLZAW-Bd402kCS.cjs} +1 -1
  50. package/dist/{diagram-G47NLZAW-CzcPjsD-.js → diagram-G47NLZAW-JWyg9BAf.js} +3 -3
  51. package/dist/{diagram-NH7WQ7WH-DHiaRk6y.js → diagram-NH7WQ7WH-CBVjs5Qb.js} +2 -2
  52. package/dist/{diagram-NH7WQ7WH-CJ5N1ivv.cjs → diagram-NH7WQ7WH-O9D369xQ.cjs} +1 -1
  53. package/dist/{diagram-OA4YK3LP-DgT93Vwf.cjs → diagram-OA4YK3LP-CGFLIsXt.cjs} +1 -1
  54. package/dist/{diagram-OA4YK3LP-ByjYRYdV.js → diagram-OA4YK3LP-DwedHmnV.js} +3 -3
  55. package/dist/{diagram-WEI45ONY-BAxzHZgz.js → diagram-WEI45ONY-BgJvkrqe.js} +2 -2
  56. package/dist/{diagram-WEI45ONY-QLDnHl3R.cjs → diagram-WEI45ONY-CEsljMQV.cjs} +1 -1
  57. package/dist/{ebnfDiagram-CCIWWBDH-DgSrRJ63.js → ebnfDiagram-CCIWWBDH-C7QZ4wXM.js} +3 -3
  58. package/dist/{ebnfDiagram-CCIWWBDH-CMtypcXn.cjs → ebnfDiagram-CCIWWBDH-e9oWuIhA.cjs} +1 -1
  59. package/dist/{erDiagram-Q63AITRT-CQ9Q6fWy.cjs → erDiagram-Q63AITRT-BdP8JBuN.cjs} +1 -1
  60. package/dist/{erDiagram-Q63AITRT-CyJyuZ4T.js → erDiagram-Q63AITRT-OUarWTK1.js} +4 -4
  61. package/dist/{extractHeadings-z3AodVn3.js → extractHeadings-CUTXOBTa.js} +3289 -3310
  62. package/dist/{extractHeadings-Bu1mM2zB.cjs → extractHeadings-agc-00bD.cjs} +57 -57
  63. package/dist/flowDiagram-23GEKE2U-BZYdQMwk.js +7 -0
  64. package/dist/flowDiagram-23GEKE2U-DDjpVH-X.cjs +1 -0
  65. package/dist/{ganttDiagram-NO4QXBWP-DhRS80ms.js → ganttDiagram-NO4QXBWP-7q1R_3-p.js} +2 -2
  66. package/dist/{ganttDiagram-NO4QXBWP-CxK0RSqW.cjs → ganttDiagram-NO4QXBWP-DjqYneGy.cjs} +1 -1
  67. package/dist/{gitGraphDiagram-IHSO6WYX-2Va5zqby.js → gitGraphDiagram-IHSO6WYX-B5gb3Rqu.js} +3 -3
  68. package/dist/{gitGraphDiagram-IHSO6WYX-CN12KReP.cjs → gitGraphDiagram-IHSO6WYX-BjogZ4FH.cjs} +1 -1
  69. package/dist/index.cjs +1 -1
  70. package/dist/index.client.cjs +1 -1
  71. package/dist/index.client.js +1 -1
  72. package/dist/index.js +1 -1
  73. package/dist/{infoDiagram-FWYZ7A6U--V_yHphS.js → infoDiagram-FWYZ7A6U-BaKyN9IA.js} +1 -1
  74. package/dist/{infoDiagram-FWYZ7A6U-k83LxwrO.cjs → infoDiagram-FWYZ7A6U-BkG_Sltp.cjs} +1 -1
  75. package/dist/{ishikawaDiagram-FXEZZL3T-Bd4kOAap.js → ishikawaDiagram-FXEZZL3T-CSv6cDIC.js} +1 -1
  76. package/dist/{ishikawaDiagram-FXEZZL3T-694D7LFH.cjs → ishikawaDiagram-FXEZZL3T-CiyiRY0n.cjs} +1 -1
  77. package/dist/{journeyDiagram-5HDEW3XC-Czr00oZx.js → journeyDiagram-5HDEW3XC-BSe4iQ8y.js} +4 -4
  78. package/dist/{journeyDiagram-5HDEW3XC-CbcL76rx.cjs → journeyDiagram-5HDEW3XC-CidOpS4e.cjs} +1 -1
  79. package/dist/{kanban-definition-HUTT4EX6-BNO2VHFH.cjs → kanban-definition-HUTT4EX6-E7S0-2B0.cjs} +1 -1
  80. package/dist/{kanban-definition-HUTT4EX6-DYscvXvj.js → kanban-definition-HUTT4EX6-NcWyJMi_.js} +2 -2
  81. package/dist/{linear-DHAx74C6.js → linear-DBHjPQ2a.js} +1 -1
  82. package/dist/{linear-DZLxJhtt.cjs → linear-DVrRITf5.cjs} +1 -1
  83. package/dist/{mindmap-definition-LN4V7U3C-CEitacUY.cjs → mindmap-definition-LN4V7U3C-CPgaG7JV.cjs} +1 -1
  84. package/dist/{mindmap-definition-LN4V7U3C-DoqEgdhu.js → mindmap-definition-LN4V7U3C-ddxMumCY.js} +3 -3
  85. package/dist/{pegDiagram-2B236MQR-B8G9cHi4.cjs → pegDiagram-2B236MQR-CA_DeqqA.cjs} +1 -1
  86. package/dist/{pegDiagram-2B236MQR-C7BDICCf.js → pegDiagram-2B236MQR-CLzXETR3.js} +3 -3
  87. package/dist/{pieDiagram-ENE6RG2P-Bg4RGsL0.cjs → pieDiagram-ENE6RG2P-Dg04F48S.cjs} +1 -1
  88. package/dist/{pieDiagram-ENE6RG2P-J6aMzjsp.js → pieDiagram-ENE6RG2P-WVn8XJGb.js} +3 -3
  89. package/dist/{quadrantDiagram-ABIIQ3AL-B3io0Zj4.cjs → quadrantDiagram-ABIIQ3AL-BsckSYJt.cjs} +1 -1
  90. package/dist/{quadrantDiagram-ABIIQ3AL-DZMEnLkj.js → quadrantDiagram-ABIIQ3AL-DyWlNOhT.js} +2 -2
  91. package/dist/{railroadDiagram-RFXS5EU6-b6ccE5L3.js → railroadDiagram-RFXS5EU6-D3VxK11o.js} +3 -3
  92. package/dist/{railroadDiagram-RFXS5EU6-CHPuNJfr.cjs → railroadDiagram-RFXS5EU6-DCnQVXco.cjs} +1 -1
  93. package/dist/{requirementDiagram-TGXJPOKE-DyI3IxhA.js → requirementDiagram-TGXJPOKE-BMaGXiNU.js} +3 -3
  94. package/dist/{requirementDiagram-TGXJPOKE-4iI6cUK1.cjs → requirementDiagram-TGXJPOKE-DXCyNSis.cjs} +1 -1
  95. package/dist/{sankeyDiagram-HTMAVEWB-C4kn0m5M.js → sankeyDiagram-HTMAVEWB-BX6vKeUm.js} +1 -1
  96. package/dist/{sankeyDiagram-HTMAVEWB-Cu9APNc7.cjs → sankeyDiagram-HTMAVEWB-D1m7iBLQ.cjs} +1 -1
  97. package/dist/{sequenceDiagram-DBY2YBRQ-Cw7yhFCq.js → sequenceDiagram-DBY2YBRQ-0mMExPO7.js} +3 -3
  98. package/dist/{sequenceDiagram-DBY2YBRQ-4nhGxKJK.cjs → sequenceDiagram-DBY2YBRQ-BOZ4f_Hs.cjs} +1 -1
  99. package/dist/{sizeCapture-X5ZJPWSS-xbVXdoFv.cjs → sizeCapture-X5ZJPWSS-0Q0rI-PZ.cjs} +1 -1
  100. package/dist/{sizeCapture-X5ZJPWSS-B-QK7YKx.js → sizeCapture-X5ZJPWSS-CFgV5LdI.js} +1 -1
  101. package/dist/{stateDiagram-2N3HPSRC-Bzh1K0Rc.js → stateDiagram-2N3HPSRC-BbQVKPdF.js} +2 -2
  102. package/dist/{stateDiagram-2N3HPSRC-Ds2EuiOJ.cjs → stateDiagram-2N3HPSRC-Co2cQg3S.cjs} +1 -1
  103. package/dist/{stateDiagram-v2-6OUMAXLB-DRUVmXUz.cjs → stateDiagram-v2-6OUMAXLB-Boy-ppxx.cjs} +1 -1
  104. package/dist/{stateDiagram-v2-6OUMAXLB-BlfKLpe-.js → stateDiagram-v2-6OUMAXLB-QePyEJnH.js} +2 -2
  105. package/dist/styles/markdown.standalone.css +1 -1
  106. package/dist/{swimlanes-5IMT3BWC-BIWoRJar.cjs → swimlanes-5IMT3BWC-Cqs5VVSm.cjs} +1 -1
  107. package/dist/{swimlanes-5IMT3BWC-DUDhAFXh.js → swimlanes-5IMT3BWC-D4n1siHn.js} +3 -3
  108. package/dist/{swimlanesDiagram-G3AALYLV-BKJ-xuX7.cjs → swimlanesDiagram-G3AALYLV-DVHw2s5w.cjs} +1 -1
  109. package/dist/{swimlanesDiagram-G3AALYLV-Cw5EI2_0.js → swimlanesDiagram-G3AALYLV-Da8ZZAJn.js} +2 -2
  110. package/dist/{timeline-definition-FHXFAJF6-BFvyhmFu.js → timeline-definition-FHXFAJF6-BGK-KyNC.js} +2 -2
  111. package/dist/{timeline-definition-FHXFAJF6-BZUlhY1Z.cjs → timeline-definition-FHXFAJF6-D25i6kkS.cjs} +1 -1
  112. package/dist/{vennDiagram-L72KCM5P-CySpaALH.cjs → vennDiagram-L72KCM5P-8XQ-KXbG.cjs} +1 -1
  113. package/dist/{vennDiagram-L72KCM5P-0cC3-YkU.js → vennDiagram-L72KCM5P-CLkAwtsq.js} +1 -1
  114. package/dist/{wardleyDiagram-EHGQE667-CttMnmMH.js → wardleyDiagram-EHGQE667-C0S3P_7H.js} +2 -2
  115. package/dist/{wardleyDiagram-EHGQE667-CTzDdsPw.cjs → wardleyDiagram-EHGQE667-DPCJNwRB.cjs} +1 -1
  116. package/dist/{xychartDiagram-FW5EYKEG-CDQbUs0H.cjs → xychartDiagram-FW5EYKEG-BTE5ffMN.cjs} +1 -1
  117. package/dist/{xychartDiagram-FW5EYKEG-Dy4JEmdB.js → xychartDiagram-FW5EYKEG-DAacRCtv.js} +2 -2
  118. package/package.json +7 -7
  119. package/dist/flowDiagram-23GEKE2U-CF3VxB6X.js +0 -7
  120. package/dist/flowDiagram-23GEKE2U-D3VUCGjn.cjs +0 -1
package/README.md CHANGED
@@ -474,7 +474,7 @@ A block rendered without such a sheet shows plain inherited text: the components
474
474
  - **Contrast**: every token reaches at least 7:1 (WCAG AAA) on its block and on the tinted lines of a diff, in None, GitHub and Zenn, light and dark (the lowest measured in a browser is 7.01 for None and GitHub in the light scheme, 8.16 in the dark one; 7.15 for Zenn in the light scheme, 7.19 in the dark one).
475
475
  - **Palette**: a theme colour that falls below 7:1 on any of those backgrounds is replaced by one with the same hue and chroma (chroma is lowered only to stay inside sRGB), moved in lightness only as far as 7:1 needs. The tints keep the hue of a translucent green and red and take the luminance of the block, so a tint never lowers a token's contrast.
476
476
  - **Hooks** are data attributes, not classes: `data-aqmd-code-block` on the block's root, `data-aqmd-code-filename` on the file name's tab, `data-aqmd-code-copy` on the copy button (the copy button of a display-math block carries it too) and `data-aqmd-diff="add"` or `"remove"` on a changed line, which sets no inline background.
477
- - **Copy button and file name**: `markdown.css` colours them (`#1f2937` on `#e5e7eb`, `#d1d5db` on hover; in the dark scheme, `.dark` or `[data-theme="dark"]` on an ancestor, `#f3f4f6` on `#374151`, `#4a5361` on hover), every pair at 7:1 or more. Under `(pointer: coarse)` the copy buttons are at least 44 × 44 px.
477
+ - **Copy button and file name**: `markdown.css` colours them (`#1f2937` on `#e5e7eb`, `#d1d5db` on hover; in the dark scheme, `.dark` or `[data-theme="dark"]` on an ancestor, `#f3f4f6` on `#374151`, `#4a5361` on hover), every pair at 7:1 or more. The copy buttons are at least 44 × 44 px under every pointer.
478
478
 
479
479
  ### Mermaid diagrams
480
480
 
@@ -482,10 +482,11 @@ A fenced code block in the `mermaid` language renders as `MermaidDiagram`, a blo
482
482
  Each drawing gets its own drawing host, `[data-aqmd-mermaid-host]`: a hidden element (`visibility: hidden`, `aria-hidden`, absolutely positioned just outside the start edge, `contain: strict`) appended to the main document's `<body>`, with its width set to the measured width in px.
483
483
  Mermaid draws in that element and the component shows the result in the slot, so a gantt chart, whose width Mermaid takes from where it is drawn, is exactly as wide as the slot. Because Mermaid looks its drawing up through the main document, the host lives in the main document's light DOM, and a diagram in a slot inside a shadow root is drawn the same way.
484
484
 
485
- - The component removes a drawing host when its drawing settles (shown, failed, or discarded as stale) and when the component unmounts or its text changes, so none is left behind, not even the error drawing Mermaid leaves for a text it cannot parse.
485
+ - Every diagram on the page hands its drawings to Mermaid through one lane, one at a time and in the order they were requested. A drawing that is stale when its turn comes (a newer drawing of the same diagram was requested, its text changed, or the component unmounted) never reaches Mermaid and gets no drawing host.
486
+ - The component removes a drawing host when Mermaid settles its drawing (shown, failed, or discarded as stale) and never earlier, also after the text changed or the component unmounted: Mermaid keeps drawing in the element it found, and in an element outside the document every measurement is 0, which gives a flowchart's labelled edges `translate(undefined, NaN)`. No host is left behind, not even the error drawing Mermaid leaves for a text it cannot parse.
486
487
  - Nothing is drawn while the slot has no width (inside a closed `<details>` the browser does not lay out, or a hidden panel): the loading text stays until the slot gets a width. A drawing already under way when the slot loses its width finishes at the width it was given.
487
488
  - When the width of a slot showing a gantt chart changes (a splitter drag, a window resize), the chart is drawn again at the new width 200 ms after the last change, unless the slot then has no width or the width of the latest drawing. The shown chart stays until the new one replaces it, and the new one starts at the initial zoom and pan. Other diagram types take their size from their text and are never drawn again for a width change.
488
- - A drawing that finishes after a newer one started, after the diagram's text changed or after the component unmounted is discarded.
489
+ - A drawing that finishes after a newer one was requested, after the diagram's text changed or after the component unmounted is discarded.
489
490
  - **Touch and pen**: the default mode, `both-shift`, is the same for every pointer, and Shift gates only the mouse. A finger or pen pans the drawing only while the drawing overflows its frame (zoomed in, or capped, see below); at fit it scrolls the page over the diagram as anywhere else. The component writes `touch-action` on the diagram's `<svg>` and on its frame to match, rewrites it whenever the zoom or pan changes, the mode changes or the frame resizes, and removes it (with the other styles Panzoom wrote) when it tears its Panzoom instance down:
490
491
 
491
492
  | Mode | Drawing fits its frame | Drawing overflows its frame |
@@ -503,7 +504,7 @@ Mermaid draws in that element and the component shows the result in the slot, so
503
504
  - **Keyboard**: the frame takes focus (`tabindex="0"`, `role="group"`) and is named by the `diagram` label, which a hidden element carries with its own `lang`, so the drawing's text is not marked with it. On the frame itself, not on a link inside it and not with Ctrl, Meta or Alt held, the arrow keys pan the view by 25.9 % of the frame (only when the view can move; otherwise the page scrolls), `+` and `=` zoom in, `-` zooms out and `0` resets.
504
505
  When an element inside the drawing takes the focus (a node's link, by Tab), the view pans by the least distance that brings the element's box inside the frame, because the clipping frame is no scroll container the browser could scroll to it.
505
506
  - **Pan buttons**: four buttons (`pan-left`, `pan-up`, `pan-down`, `pan-right`) are shown in the toolbar only while the drawing overflows its frame, so panning never needs a drag (WCAG 2.5.7); at fit they keep their slots hidden (`visibility: hidden`: not focusable, not exposed), so zooming never adds a toolbar row or moves the frame; each moves the view by the same step as the arrow keys.
506
- - **Sizes**: under a coarse pointer (`(pointer: coarse)`, a touch screen) every control is 44 × 44 px and each menu item at least 44 px tall; under a fine pointer the controls are 32 × 32 px (the reset button 36 × 32). A coarse pointer also turns the toolbar into a wrapping row above the frame, which never covers the drawing, and opens the menu from the button's left edge; a fine pointer keeps the toolbar over the frame's top-right corner.
507
+ - **Sizes**: under every pointer (a mouse, a pen or a finger) every control is 44 × 44 px and each menu item and the retry button at least 44 px tall (WCAG 2.2 enhanced target size). The toolbar is a wrapping row above the frame, so the controls never cover the drawing, and the menu opens from the button's left edge.
507
508
  - **Tall diagrams**: under a coarse pointer the frame is at most `calc(100svh - 2 * 2.75rem)` tall, so two 44 px bands of the page stay outside it wherever it sits and a finger can scroll the page past the diagram; the clipped drawing then overflows and pans by finger.
508
509
  - **Touch menu**: under a coarse pointer the menu button is named by `interactionModeTouch` and the menu lists four items, `none`, `zoom`, `pan` and `both`, worded for touch (see [Labels and languages](#labels-and-languages)); the checked item is the touch counterpart of the mode in force (`pan-shift` shows `pan`, `both-shift` shows `both`), and choosing an item sets that mode. Escape closes a menu and returns the focus to its button.
509
510
  - **Colours and focus ring**: the controls, the menu items, the checked item, the error message and the retry button reach 7:1 against their surfaces in both schemes (dark when `.dark` or `[data-theme="dark"]` is on an ancestor). The focus ring of the frame, the toolbar controls and the retry button is a 2 px `#003abc` outline with a white 4 px halo, 9:1 apart, so some part of it stands out on any background (WCAG 2.4.13, 1.4.11); the menu items draw it inset. The ring's rules sit outside every cascade layer, so the controls' `shadow` utility cannot replace the halo.
@@ -537,7 +538,7 @@ The bound is the popover's border box (the popover is `box-sizing: border-box` w
537
538
 
538
539
  An open, unpinned popover closes on Escape while the focus is inside its menu, returns the focus to its button and calls `preventDefault()` on that keydown, so an outer Escape handler can skip a key the viewer consumed. Escape is not consumed while no popover is open.
539
540
  It also closes on a pointer press outside its menu. A touch press that closes it consumes the click it produces (on the document's capture phase, within 800 ms and 16 px of the press), so the tap that dismisses the popover does not also follow a link or press a heading under the finger; a press that turns into a scroll produces no click, and once the browser cancels its pointer the next tap is not consumed; a press on the toolbar itself (another menu's button) is not consumed, and a mouse press's click goes through.
540
- Under a coarse pointer the toolbar's buttons, the popovers' pin buttons, the style and alignment items and the table of contents' entries are 44 px targets (WCAG 2.2 enhanced target size; a `TableOfContents` entry is padded above and below by half of what its line box lacks of 44 px, `max(0px, (2.75rem - 1lh) / 2)`, so it holds at any font size, and the entries stack edge to edge); a popover's heading and the table of contents' links keep 7:1 against the popover in both themes.
541
+ Under every pointer the toolbar's buttons, the popovers' pin buttons, the style and alignment items and the table of contents' entries are 44 px targets (WCAG 2.2 enhanced target size; a `TableOfContents` entry is padded above and below by half of what its line box lacks of 44 px, `max(0px, (2.75rem - 1lh) / 2)`, so it holds at any font size, and the entries stack edge to edge); a popover's heading and the table of contents' links keep 7:1 against the popover in both themes.
541
542
 
542
543
  ### Host scroll bar
543
544
 
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("./chunk-MOJQB5TN-sLs8lWY5.cjs"),u=require("./chunk-JWPE2WC7-C27eOtyn.cjs"),n=require("./extractHeadings-Bu1mM2zB.cjs"),i=require("./cynefin-VYW2F7L2-MpAliYy9.cjs");var p=i.createRailroadAbnfServices().RailroadAbnf.parser.LangiumParser,o=n.__name(e=>{const r=e.alternatives.map(c);return r.length===1?r[0]:{type:"choice",alternatives:r}},"transformAlternation"),c=n.__name(e=>{const r=e.elements.map(d);return r.length===1?r[0]:{type:"sequence",elements:r}},"transformConcatenation"),f=n.__name(e=>{if(e.includes("*")){const[t,s]=e.split("*"),l=t?parseInt(t,10):0,m=s?parseInt(s,10):1/0;return{min:l,max:m}}const r=parseInt(e,10);return{min:r,max:r}},"parseRepeat"),d=n.__name(e=>{const r=b(e.primary);if(!e.repeat)return r;const{min:t,max:s}=f(e.repeat);return t===0&&s===1?{type:"optional",element:r}:{type:"repetition",element:r,min:t,max:s}},"transformElement"),b=n.__name(e=>{switch(e.$type){case"AbnfStringLiteral":return{type:"terminal",value:e.value};case"AbnfNumVal":return{type:"terminal",value:e.value};case"AbnfRuleName":return{type:"nonterminal",name:e.name};case"AbnfGroup":return o(e.element);case"AbnfOptionalGroup":return{type:"optional",element:o(e.element)};default:throw new Error(`Unsupported ABNF primary node: ${e.$type}`)}},"transformPrimary"),g=n.__name(e=>({name:e.name,definition:o(e.definition)}),"transformRule"),v=n.__name(e=>{u.populateCommonDb(e,a.db),e.title&&a.db.setTitle(e.title),e.rules.map(r=>a.db.addRule(g(r)))},"populateDb"),y={parse:n.__name(e=>{a.db.clear(),n.log.debug("[ABNF Parser] Starting Langium parse");const r=p.parse(e);if(r.lexerErrors.length>0||r.parserErrors.length>0)throw new i.MermaidParseError(r);const t=r.value;n.log.debug("[ABNF Parser] Parsed rules:",t.rules.length),v(t),n.log.debug("[ABNF Parser] Parse complete")},"parse"),parser:{yy:a.db}},_={parser:y,db:a.db,renderer:a.renderer,styles:a.getStyles};exports.diagram=_;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("./chunk-MOJQB5TN-Bln4G16L.cjs"),u=require("./chunk-JWPE2WC7-BhnZoEDO.cjs"),n=require("./extractHeadings-agc-00bD.cjs"),i=require("./cynefin-VYW2F7L2-MpAliYy9.cjs");var p=i.createRailroadAbnfServices().RailroadAbnf.parser.LangiumParser,o=n.__name(e=>{const r=e.alternatives.map(c);return r.length===1?r[0]:{type:"choice",alternatives:r}},"transformAlternation"),c=n.__name(e=>{const r=e.elements.map(d);return r.length===1?r[0]:{type:"sequence",elements:r}},"transformConcatenation"),f=n.__name(e=>{if(e.includes("*")){const[t,s]=e.split("*"),l=t?parseInt(t,10):0,m=s?parseInt(s,10):1/0;return{min:l,max:m}}const r=parseInt(e,10);return{min:r,max:r}},"parseRepeat"),d=n.__name(e=>{const r=b(e.primary);if(!e.repeat)return r;const{min:t,max:s}=f(e.repeat);return t===0&&s===1?{type:"optional",element:r}:{type:"repetition",element:r,min:t,max:s}},"transformElement"),b=n.__name(e=>{switch(e.$type){case"AbnfStringLiteral":return{type:"terminal",value:e.value};case"AbnfNumVal":return{type:"terminal",value:e.value};case"AbnfRuleName":return{type:"nonterminal",name:e.name};case"AbnfGroup":return o(e.element);case"AbnfOptionalGroup":return{type:"optional",element:o(e.element)};default:throw new Error(`Unsupported ABNF primary node: ${e.$type}`)}},"transformPrimary"),g=n.__name(e=>({name:e.name,definition:o(e.definition)}),"transformRule"),v=n.__name(e=>{u.populateCommonDb(e,a.db),e.title&&a.db.setTitle(e.title),e.rules.map(r=>a.db.addRule(g(r)))},"populateDb"),y={parse:n.__name(e=>{a.db.clear(),n.log.debug("[ABNF Parser] Starting Langium parse");const r=p.parse(e);if(r.lexerErrors.length>0||r.parserErrors.length>0)throw new i.MermaidParseError(r);const t=r.value;n.log.debug("[ABNF Parser] Parsed rules:",t.rules.length),v(t),n.log.debug("[ABNF Parser] Parse complete")},"parse"),parser:{yy:a.db}},_={parser:y,db:a.db,renderer:a.renderer,styles:a.getStyles};exports.diagram=_;
@@ -1,6 +1,6 @@
1
- import { g as p, r as u, d as a } from "./chunk-MOJQB5TN-CEUtU-PA.js";
2
- import { p as f } from "./chunk-JWPE2WC7-CNmttOZb.js";
3
- import { _ as n, Q as o } from "./extractHeadings-z3AodVn3.js";
1
+ import { g as p, r as u, d as a } from "./chunk-MOJQB5TN-CAgrBpGK.js";
2
+ import { p as f } from "./chunk-JWPE2WC7-CZnRHc3B.js";
3
+ import { _ as n, Q as o } from "./extractHeadings-CUTXOBTa.js";
4
4
  import { M as c, b as d } from "./cynefin-VYW2F7L2-Bkk-F_Js.js";
5
5
  var v = d().RailroadAbnf.parser.LangiumParser, i = /* @__PURE__ */ n((e) => {
6
6
  const r = e.alternatives.map(g);
@@ -1 +1 @@
1
- "use strict";const n=require("./extractHeadings-Bu1mM2zB.cjs");function $(o){return o.innerRadius}function b(o){return o.outerRadius}function k(o){return o.startAngle}function _(o){return o.endAngle}function nn(o){return o&&o.padAngle}function en(o,x,D,P,h,v,S,s){var E=D-o,r=P-x,e=S-h,p=s-v,i=p*E-e*r;if(!(i*i<n.epsilon))return i=(e*(x-v)-p*(o-h))/i,[o+i*E,x+i*r]}function M(o,x,D,P,h,v,S){var s=o-D,E=x-P,r=(S?v:-v)/n.sqrt(s*s+E*E),e=r*E,p=-r*s,i=o+e,u=x+p,c=D+e,f=P+p,j=(i+c)/2,l=(u+f)/2,y=c-i,g=f-u,A=y*y+g*g,R=h-v,T=i*f-c*u,H=(g<0?-1:1)*n.sqrt(n.max(0,R*R*A-T*T)),I=(T*g-y*H)/A,O=(-T*y-g*H)/A,q=(T*g+y*H)/A,d=(-T*y+g*H)/A,m=I-j,a=O-l,t=q-j,z=d-l;return m*m+a*a>t*t+z*z&&(I=q,O=d),{cx:I,cy:O,x01:-e,y01:-p,x11:I*(h/R-1),y11:O*(h/R-1)}}function an(){var o=$,x=b,D=n.constant(0),P=null,h=k,v=_,S=nn,s=null,E=n.withPath(r);function r(){var e,p,i=+o.apply(this,arguments),u=+x.apply(this,arguments),c=h.apply(this,arguments)-n.halfPi,f=v.apply(this,arguments)-n.halfPi,j=n.abs(f-c),l=f>c;if(s||(s=e=E()),u<i&&(p=u,u=i,i=p),!(u>n.epsilon))s.moveTo(0,0);else if(j>n.tau-n.epsilon)s.moveTo(u*n.cos(c),u*n.sin(c)),s.arc(0,0,u,c,f,!l),i>n.epsilon&&(s.moveTo(i*n.cos(f),i*n.sin(f)),s.arc(0,0,i,f,c,l));else{var y=c,g=f,A=c,R=f,T=j,H=j,I=S.apply(this,arguments)/2,O=I>n.epsilon&&(P?+P.apply(this,arguments):n.sqrt(i*i+u*u)),q=n.min(n.abs(u-i)/2,+D.apply(this,arguments)),d=q,m=q,a,t;if(O>n.epsilon){var z=n.asin(O/i*n.sin(I)),F=n.asin(O/u*n.sin(I));(T-=z*2)>n.epsilon?(z*=l?1:-1,A+=z,R-=z):(T=0,A=R=(c+f)/2),(H-=F*2)>n.epsilon?(F*=l?1:-1,y+=F,g-=F):(H=0,y=g=(c+f)/2)}var B=u*n.cos(y),C=u*n.sin(y),G=i*n.cos(R),J=i*n.sin(R);if(q>n.epsilon){var K=u*n.cos(g),L=u*n.sin(g),N=i*n.cos(A),Q=i*n.sin(A),w;if(j<n.pi)if(w=en(B,C,N,Q,K,L,G,J)){var U=B-w[0],V=C-w[1],W=K-w[0],X=L-w[1],Y=1/n.sin(n.acos((U*W+V*X)/(n.sqrt(U*U+V*V)*n.sqrt(W*W+X*X)))/2),Z=n.sqrt(w[0]*w[0]+w[1]*w[1]);d=n.min(q,(i-Z)/(Y-1)),m=n.min(q,(u-Z)/(Y+1))}else d=m=0}H>n.epsilon?m>n.epsilon?(a=M(N,Q,B,C,u,m,l),t=M(K,L,G,J,u,m,l),s.moveTo(a.cx+a.x01,a.cy+a.y01),m<q?s.arc(a.cx,a.cy,m,n.atan2(a.y01,a.x01),n.atan2(t.y01,t.x01),!l):(s.arc(a.cx,a.cy,m,n.atan2(a.y01,a.x01),n.atan2(a.y11,a.x11),!l),s.arc(0,0,u,n.atan2(a.cy+a.y11,a.cx+a.x11),n.atan2(t.cy+t.y11,t.cx+t.x11),!l),s.arc(t.cx,t.cy,m,n.atan2(t.y11,t.x11),n.atan2(t.y01,t.x01),!l))):(s.moveTo(B,C),s.arc(0,0,u,y,g,!l)):s.moveTo(B,C),!(i>n.epsilon)||!(T>n.epsilon)?s.lineTo(G,J):d>n.epsilon?(a=M(G,J,K,L,i,-d,l),t=M(B,C,N,Q,i,-d,l),s.lineTo(a.cx+a.x01,a.cy+a.y01),d<q?s.arc(a.cx,a.cy,d,n.atan2(a.y01,a.x01),n.atan2(t.y01,t.x01),!l):(s.arc(a.cx,a.cy,d,n.atan2(a.y01,a.x01),n.atan2(a.y11,a.x11),!l),s.arc(0,0,i,n.atan2(a.cy+a.y11,a.cx+a.x11),n.atan2(t.cy+t.y11,t.cx+t.x11),l),s.arc(t.cx,t.cy,d,n.atan2(t.y11,t.x11),n.atan2(t.y01,t.x01),!l))):s.arc(0,0,i,R,A,l)}if(s.closePath(),e)return s=null,e+""||null}return r.centroid=function(){var e=(+o.apply(this,arguments)+ +x.apply(this,arguments))/2,p=(+h.apply(this,arguments)+ +v.apply(this,arguments))/2-n.pi/2;return[n.cos(p)*e,n.sin(p)*e]},r.innerRadius=function(e){return arguments.length?(o=typeof e=="function"?e:n.constant(+e),r):o},r.outerRadius=function(e){return arguments.length?(x=typeof e=="function"?e:n.constant(+e),r):x},r.cornerRadius=function(e){return arguments.length?(D=typeof e=="function"?e:n.constant(+e),r):D},r.padRadius=function(e){return arguments.length?(P=e==null?null:typeof e=="function"?e:n.constant(+e),r):P},r.startAngle=function(e){return arguments.length?(h=typeof e=="function"?e:n.constant(+e),r):h},r.endAngle=function(e){return arguments.length?(v=typeof e=="function"?e:n.constant(+e),r):v},r.padAngle=function(e){return arguments.length?(S=typeof e=="function"?e:n.constant(+e),r):S},r.context=function(e){return arguments.length?(s=e??null,r):s},r}exports.d3arc=an;
1
+ "use strict";const n=require("./extractHeadings-agc-00bD.cjs");function $(o){return o.innerRadius}function b(o){return o.outerRadius}function k(o){return o.startAngle}function _(o){return o.endAngle}function nn(o){return o&&o.padAngle}function en(o,x,D,P,h,v,S,s){var E=D-o,r=P-x,e=S-h,p=s-v,i=p*E-e*r;if(!(i*i<n.epsilon))return i=(e*(x-v)-p*(o-h))/i,[o+i*E,x+i*r]}function M(o,x,D,P,h,v,S){var s=o-D,E=x-P,r=(S?v:-v)/n.sqrt(s*s+E*E),e=r*E,p=-r*s,i=o+e,u=x+p,c=D+e,f=P+p,j=(i+c)/2,l=(u+f)/2,y=c-i,g=f-u,A=y*y+g*g,R=h-v,T=i*f-c*u,H=(g<0?-1:1)*n.sqrt(n.max(0,R*R*A-T*T)),I=(T*g-y*H)/A,O=(-T*y-g*H)/A,q=(T*g+y*H)/A,d=(-T*y+g*H)/A,m=I-j,a=O-l,t=q-j,z=d-l;return m*m+a*a>t*t+z*z&&(I=q,O=d),{cx:I,cy:O,x01:-e,y01:-p,x11:I*(h/R-1),y11:O*(h/R-1)}}function an(){var o=$,x=b,D=n.constant(0),P=null,h=k,v=_,S=nn,s=null,E=n.withPath(r);function r(){var e,p,i=+o.apply(this,arguments),u=+x.apply(this,arguments),c=h.apply(this,arguments)-n.halfPi,f=v.apply(this,arguments)-n.halfPi,j=n.abs(f-c),l=f>c;if(s||(s=e=E()),u<i&&(p=u,u=i,i=p),!(u>n.epsilon))s.moveTo(0,0);else if(j>n.tau-n.epsilon)s.moveTo(u*n.cos(c),u*n.sin(c)),s.arc(0,0,u,c,f,!l),i>n.epsilon&&(s.moveTo(i*n.cos(f),i*n.sin(f)),s.arc(0,0,i,f,c,l));else{var y=c,g=f,A=c,R=f,T=j,H=j,I=S.apply(this,arguments)/2,O=I>n.epsilon&&(P?+P.apply(this,arguments):n.sqrt(i*i+u*u)),q=n.min(n.abs(u-i)/2,+D.apply(this,arguments)),d=q,m=q,a,t;if(O>n.epsilon){var z=n.asin(O/i*n.sin(I)),F=n.asin(O/u*n.sin(I));(T-=z*2)>n.epsilon?(z*=l?1:-1,A+=z,R-=z):(T=0,A=R=(c+f)/2),(H-=F*2)>n.epsilon?(F*=l?1:-1,y+=F,g-=F):(H=0,y=g=(c+f)/2)}var B=u*n.cos(y),C=u*n.sin(y),G=i*n.cos(R),J=i*n.sin(R);if(q>n.epsilon){var K=u*n.cos(g),L=u*n.sin(g),N=i*n.cos(A),Q=i*n.sin(A),w;if(j<n.pi)if(w=en(B,C,N,Q,K,L,G,J)){var U=B-w[0],V=C-w[1],W=K-w[0],X=L-w[1],Y=1/n.sin(n.acos((U*W+V*X)/(n.sqrt(U*U+V*V)*n.sqrt(W*W+X*X)))/2),Z=n.sqrt(w[0]*w[0]+w[1]*w[1]);d=n.min(q,(i-Z)/(Y-1)),m=n.min(q,(u-Z)/(Y+1))}else d=m=0}H>n.epsilon?m>n.epsilon?(a=M(N,Q,B,C,u,m,l),t=M(K,L,G,J,u,m,l),s.moveTo(a.cx+a.x01,a.cy+a.y01),m<q?s.arc(a.cx,a.cy,m,n.atan2(a.y01,a.x01),n.atan2(t.y01,t.x01),!l):(s.arc(a.cx,a.cy,m,n.atan2(a.y01,a.x01),n.atan2(a.y11,a.x11),!l),s.arc(0,0,u,n.atan2(a.cy+a.y11,a.cx+a.x11),n.atan2(t.cy+t.y11,t.cx+t.x11),!l),s.arc(t.cx,t.cy,m,n.atan2(t.y11,t.x11),n.atan2(t.y01,t.x01),!l))):(s.moveTo(B,C),s.arc(0,0,u,y,g,!l)):s.moveTo(B,C),!(i>n.epsilon)||!(T>n.epsilon)?s.lineTo(G,J):d>n.epsilon?(a=M(G,J,K,L,i,-d,l),t=M(B,C,N,Q,i,-d,l),s.lineTo(a.cx+a.x01,a.cy+a.y01),d<q?s.arc(a.cx,a.cy,d,n.atan2(a.y01,a.x01),n.atan2(t.y01,t.x01),!l):(s.arc(a.cx,a.cy,d,n.atan2(a.y01,a.x01),n.atan2(a.y11,a.x11),!l),s.arc(0,0,i,n.atan2(a.cy+a.y11,a.cx+a.x11),n.atan2(t.cy+t.y11,t.cx+t.x11),l),s.arc(t.cx,t.cy,d,n.atan2(t.y11,t.x11),n.atan2(t.y01,t.x01),!l))):s.arc(0,0,i,R,A,l)}if(s.closePath(),e)return s=null,e+""||null}return r.centroid=function(){var e=(+o.apply(this,arguments)+ +x.apply(this,arguments))/2,p=(+h.apply(this,arguments)+ +v.apply(this,arguments))/2-n.pi/2;return[n.cos(p)*e,n.sin(p)*e]},r.innerRadius=function(e){return arguments.length?(o=typeof e=="function"?e:n.constant(+e),r):o},r.outerRadius=function(e){return arguments.length?(x=typeof e=="function"?e:n.constant(+e),r):x},r.cornerRadius=function(e){return arguments.length?(D=typeof e=="function"?e:n.constant(+e),r):D},r.padRadius=function(e){return arguments.length?(P=e==null?null:typeof e=="function"?e:n.constant(+e),r):P},r.startAngle=function(e){return arguments.length?(h=typeof e=="function"?e:n.constant(+e),r):h},r.endAngle=function(e){return arguments.length?(v=typeof e=="function"?e:n.constant(+e),r):v},r.padAngle=function(e){return arguments.length?(S=typeof e=="function"?e:n.constant(+e),r):S},r.context=function(e){return arguments.length?(s=e??null,r):s},r}exports.d3arc=an;
@@ -1,4 +1,4 @@
1
- import { aD as ln, aE as an, aF as y, aG as tn, aH as N, aI as D, aJ as _, aK as un, aL as rn, aM as j, aN as o, aO as J, aP as sn, aQ as on, aR as fn } from "./extractHeadings-z3AodVn3.js";
1
+ import { aD as ln, aE as an, aF as y, aG as tn, aH as N, aI as D, aJ as _, aK as un, aL as rn, aM as j, aN as o, aO as J, aP as sn, aQ as on, aR as fn } from "./extractHeadings-CUTXOBTa.js";
2
2
  function cn(l) {
3
3
  return l.innerRadius;
4
4
  }