schematex 0.2.2 → 0.2.3

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 (163) hide show
  1. package/dist/ai/ai-sdk.cjs +85 -0
  2. package/dist/ai/ai-sdk.cjs.map +1 -0
  3. package/dist/ai/ai-sdk.d.cts +30 -0
  4. package/dist/ai/ai-sdk.d.ts +30 -0
  5. package/dist/ai/ai-sdk.js +83 -0
  6. package/dist/ai/ai-sdk.js.map +1 -0
  7. package/dist/ai/index.cjs +60 -0
  8. package/dist/ai/index.cjs.map +1 -0
  9. package/dist/ai/index.d.cts +155 -0
  10. package/dist/ai/index.d.ts +155 -0
  11. package/dist/ai/index.js +23 -0
  12. package/dist/ai/index.js.map +1 -0
  13. package/dist/browser.cjs +16 -15
  14. package/dist/browser.cjs.map +1 -1
  15. package/dist/browser.js +14 -13
  16. package/dist/browser.js.map +1 -1
  17. package/dist/{chunk-YN467EEQ.js → chunk-2BM3HJSK.js} +544 -100
  18. package/dist/chunk-2BM3HJSK.js.map +1 -0
  19. package/dist/{chunk-ZO77FHBF.cjs → chunk-2JDVJRR3.cjs} +14 -6
  20. package/dist/chunk-2JDVJRR3.cjs.map +1 -0
  21. package/dist/{chunk-QR7VTCI4.cjs → chunk-3YZ6FPQW.cjs} +13 -7
  22. package/dist/chunk-3YZ6FPQW.cjs.map +1 -0
  23. package/dist/{chunk-GEPBET4L.js → chunk-45KP67RR.js} +14 -6
  24. package/dist/chunk-45KP67RR.js.map +1 -0
  25. package/dist/chunk-4QP37LD3.js +1112 -0
  26. package/dist/chunk-4QP37LD3.js.map +1 -0
  27. package/dist/{chunk-LKOBOVNL.cjs → chunk-5AEN2PLB.cjs} +14 -6
  28. package/dist/chunk-5AEN2PLB.cjs.map +1 -0
  29. package/dist/{chunk-Z63XPA2V.cjs → chunk-6LZJTAA3.cjs} +543 -99
  30. package/dist/chunk-6LZJTAA3.cjs.map +1 -0
  31. package/dist/{chunk-7IRT3LOY.cjs → chunk-A5D2IMOX.cjs} +16 -8
  32. package/dist/chunk-A5D2IMOX.cjs.map +1 -0
  33. package/dist/{chunk-XVCAOGFL.cjs → chunk-B37IKTI7.cjs} +221 -44
  34. package/dist/chunk-B37IKTI7.cjs.map +1 -0
  35. package/dist/{chunk-ISACNVFE.cjs → chunk-B6INLQBU.cjs} +15 -9
  36. package/dist/chunk-B6INLQBU.cjs.map +1 -0
  37. package/dist/{chunk-YXIIWLLB.cjs → chunk-COLTVQWR.cjs} +174 -6
  38. package/dist/chunk-COLTVQWR.cjs.map +1 -0
  39. package/dist/chunk-DNZFOCV7.js +796 -0
  40. package/dist/chunk-DNZFOCV7.js.map +1 -0
  41. package/dist/{chunk-XHZ7GXP2.cjs → chunk-E65ITQXV.cjs} +178 -22
  42. package/dist/chunk-E65ITQXV.cjs.map +1 -0
  43. package/dist/{chunk-LCR3KOJV.js → chunk-FCGHV6ZK.js} +16 -8
  44. package/dist/chunk-FCGHV6ZK.js.map +1 -0
  45. package/dist/{chunk-X2BQKXMA.js → chunk-FE6GAUNW.js} +13 -7
  46. package/dist/chunk-FE6GAUNW.js.map +1 -0
  47. package/dist/{chunk-CJ2A3UEQ.js → chunk-LR4X4ZRG.js} +179 -23
  48. package/dist/chunk-LR4X4ZRG.js.map +1 -0
  49. package/dist/{chunk-LXNFVHDT.cjs → chunk-MCFQAUQV.cjs} +21 -13
  50. package/dist/chunk-MCFQAUQV.cjs.map +1 -0
  51. package/dist/chunk-MOU5QRZY.cjs +1121 -0
  52. package/dist/chunk-MOU5QRZY.cjs.map +1 -0
  53. package/dist/{chunk-4KYW63IK.js → chunk-OC22GGQN.js} +222 -45
  54. package/dist/chunk-OC22GGQN.js.map +1 -0
  55. package/dist/{chunk-7HKXU7J2.cjs → chunk-QXIGHMH2.cjs} +65 -38
  56. package/dist/chunk-QXIGHMH2.cjs.map +1 -0
  57. package/dist/{chunk-5UV5VQ7J.js → chunk-RP5UATRA.js} +174 -6
  58. package/dist/chunk-RP5UATRA.js.map +1 -0
  59. package/dist/{chunk-UUPYTUGR.js → chunk-S3RBKJM5.js} +54 -27
  60. package/dist/chunk-S3RBKJM5.js.map +1 -0
  61. package/dist/{chunk-Z3WOHHG3.js → chunk-SN7NTZI6.js} +8 -6
  62. package/dist/chunk-SN7NTZI6.js.map +1 -0
  63. package/dist/{chunk-ZNZIL244.js → chunk-U6L3FAML.js} +15 -9
  64. package/dist/chunk-U6L3FAML.js.map +1 -0
  65. package/dist/{chunk-5SH5NUDW.js → chunk-UGCUNADI.js} +21 -13
  66. package/dist/chunk-UGCUNADI.js.map +1 -0
  67. package/dist/chunk-ULYRO2KY.cjs +800 -0
  68. package/dist/chunk-ULYRO2KY.cjs.map +1 -0
  69. package/dist/{chunk-CXHPP5BL.cjs → chunk-Z3DE6S64.cjs} +8 -6
  70. package/dist/chunk-Z3DE6S64.cjs.map +1 -0
  71. package/dist/{chunk-6YMQSTFF.js → chunk-ZNDIGQJD.js} +14 -6
  72. package/dist/chunk-ZNDIGQJD.js.map +1 -0
  73. package/dist/diagrams/blockdiagram/index.cjs +5 -5
  74. package/dist/diagrams/blockdiagram/index.d.cts +1 -1
  75. package/dist/diagrams/blockdiagram/index.d.ts +1 -1
  76. package/dist/diagrams/blockdiagram/index.js +1 -1
  77. package/dist/diagrams/circuit/index.d.cts +1 -1
  78. package/dist/diagrams/circuit/index.d.ts +1 -1
  79. package/dist/diagrams/ecomap/index.cjs +7 -6
  80. package/dist/diagrams/ecomap/index.d.cts +2 -2
  81. package/dist/diagrams/ecomap/index.d.ts +2 -2
  82. package/dist/diagrams/ecomap/index.js +2 -1
  83. package/dist/diagrams/entity/index.d.cts +1 -1
  84. package/dist/diagrams/entity/index.d.ts +1 -1
  85. package/dist/diagrams/fishbone/index.cjs +7 -7
  86. package/dist/diagrams/fishbone/index.d.cts +1 -1
  87. package/dist/diagrams/fishbone/index.d.ts +1 -1
  88. package/dist/diagrams/fishbone/index.js +1 -1
  89. package/dist/diagrams/flowchart/index.cjs +7 -7
  90. package/dist/diagrams/flowchart/index.d.cts +2 -2
  91. package/dist/diagrams/flowchart/index.d.ts +2 -2
  92. package/dist/diagrams/flowchart/index.js +1 -1
  93. package/dist/diagrams/genogram/index.cjs +9 -8
  94. package/dist/diagrams/genogram/index.d.cts +1 -1
  95. package/dist/diagrams/genogram/index.d.ts +1 -1
  96. package/dist/diagrams/genogram/index.js +2 -1
  97. package/dist/diagrams/ladder/index.cjs +5 -5
  98. package/dist/diagrams/ladder/index.d.cts +1 -1
  99. package/dist/diagrams/ladder/index.d.ts +1 -1
  100. package/dist/diagrams/ladder/index.js +1 -1
  101. package/dist/diagrams/logic/index.d.cts +1 -1
  102. package/dist/diagrams/logic/index.d.ts +1 -1
  103. package/dist/diagrams/orgchart/index.cjs +6 -6
  104. package/dist/diagrams/orgchart/index.d.cts +5 -2
  105. package/dist/diagrams/orgchart/index.d.ts +5 -2
  106. package/dist/diagrams/orgchart/index.js +1 -1
  107. package/dist/diagrams/pedigree/index.cjs +7 -6
  108. package/dist/diagrams/pedigree/index.d.cts +1 -1
  109. package/dist/diagrams/pedigree/index.d.ts +1 -1
  110. package/dist/diagrams/pedigree/index.js +2 -1
  111. package/dist/diagrams/phylo/index.d.cts +1 -1
  112. package/dist/diagrams/phylo/index.d.ts +1 -1
  113. package/dist/diagrams/sld/index.cjs +5 -5
  114. package/dist/diagrams/sld/index.d.cts +1 -1
  115. package/dist/diagrams/sld/index.d.ts +1 -1
  116. package/dist/diagrams/sld/index.js +1 -1
  117. package/dist/diagrams/sociogram/index.cjs +6 -5
  118. package/dist/diagrams/sociogram/index.d.cts +2 -1
  119. package/dist/diagrams/sociogram/index.d.ts +2 -1
  120. package/dist/diagrams/sociogram/index.js +2 -1
  121. package/dist/diagrams/timing/index.cjs +4 -4
  122. package/dist/diagrams/timing/index.d.cts +1 -1
  123. package/dist/diagrams/timing/index.d.ts +1 -1
  124. package/dist/diagrams/timing/index.js +1 -1
  125. package/dist/diagrams/venn/index.d.cts +1 -1
  126. package/dist/diagrams/venn/index.d.ts +1 -1
  127. package/dist/{index-ga04CTBI.d.ts → index-C97K-kuw.d.ts} +1 -1
  128. package/dist/{index-SSGpCggE.d.cts → index-lsSaw3E0.d.cts} +1 -1
  129. package/dist/index.cjs +28 -27
  130. package/dist/index.d.cts +2 -2
  131. package/dist/index.d.ts +2 -2
  132. package/dist/index.js +13 -12
  133. package/dist/react.cjs +14 -13
  134. package/dist/react.cjs.map +1 -1
  135. package/dist/react.js +13 -12
  136. package/dist/react.js.map +1 -1
  137. package/dist/{types-BcPhMdHd.d.ts → types-C4LnMEcB.d.cts} +58 -4
  138. package/dist/{types-BcPhMdHd.d.cts → types-C4LnMEcB.d.ts} +58 -4
  139. package/package.json +27 -5
  140. package/dist/chunk-4KYW63IK.js.map +0 -1
  141. package/dist/chunk-5SH5NUDW.js.map +0 -1
  142. package/dist/chunk-5UV5VQ7J.js.map +0 -1
  143. package/dist/chunk-6YMQSTFF.js.map +0 -1
  144. package/dist/chunk-7HKXU7J2.cjs.map +0 -1
  145. package/dist/chunk-7IRT3LOY.cjs.map +0 -1
  146. package/dist/chunk-CJ2A3UEQ.js.map +0 -1
  147. package/dist/chunk-CXHPP5BL.cjs.map +0 -1
  148. package/dist/chunk-GEPBET4L.js.map +0 -1
  149. package/dist/chunk-ISACNVFE.cjs.map +0 -1
  150. package/dist/chunk-LCR3KOJV.js.map +0 -1
  151. package/dist/chunk-LKOBOVNL.cjs.map +0 -1
  152. package/dist/chunk-LXNFVHDT.cjs.map +0 -1
  153. package/dist/chunk-QR7VTCI4.cjs.map +0 -1
  154. package/dist/chunk-UUPYTUGR.js.map +0 -1
  155. package/dist/chunk-X2BQKXMA.js.map +0 -1
  156. package/dist/chunk-XHZ7GXP2.cjs.map +0 -1
  157. package/dist/chunk-XVCAOGFL.cjs.map +0 -1
  158. package/dist/chunk-YN467EEQ.js.map +0 -1
  159. package/dist/chunk-YXIIWLLB.cjs.map +0 -1
  160. package/dist/chunk-Z3WOHHG3.js.map +0 -1
  161. package/dist/chunk-Z63XPA2V.cjs.map +0 -1
  162. package/dist/chunk-ZNZIL244.js.map +0 -1
  163. package/dist/chunk-ZO77FHBF.cjs.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/core/legend-parser.ts","../src/core/legend.ts"],"names":["line","text","group","circle","polygon","rect","path","el"],"mappings":"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","file":"chunk-ULYRO2KY.cjs","sourcesContent":["/**\n * Shared DSL directive parser for the unified Legend system.\n *\n * Diagram parsers call `parseLegendDirective(line, overrides)` for each\n * non-content line. If the line is a `legend.*` directive, it is consumed\n * (overrides mutated in place) and the function returns true. Otherwise it\n * returns false and the caller continues normal parsing.\n *\n * Recognized forms (see docs/reference/LEGEND-SYSTEM.md):\n *\n * legend: on | off | <position> | on <position>\n * legend.title: \"...\"\n * legend.position: <position>\n * legend.columns: <n>\n * legend.label <key>: \"...\"\n * legend.hide: a, b, c\n * legend.section <id>: \"...\"\n * legend.section <id>.hide: true|false\n * legend.item <id>: \"...\" (kind: ..., color: ..., pattern: ..., shape: ..., marker: ..., section: ...)\n */\n\nimport type {\n LegendItem,\n LegendItemKind,\n LegendLinePattern,\n LegendOverrides,\n LegendPosition,\n} from \"./types\";\n\nconst VALID_POSITIONS: ReadonlySet<LegendPosition> = new Set<LegendPosition>([\n \"top-left\",\n \"top-right\",\n \"bottom-left\",\n \"bottom-right\",\n \"outside-right\",\n \"outside-bottom\",\n \"right\",\n \"bottom-center\",\n \"none\",\n]);\n\nconst VALID_KINDS: ReadonlySet<LegendItemKind> = new Set<LegendItemKind>([\n \"shape\",\n \"fill\",\n \"fill-pattern\",\n \"line\",\n \"marker\",\n \"edge\",\n]);\n\nconst VALID_PATTERNS: ReadonlySet<LegendLinePattern> = new Set<LegendLinePattern>([\n \"solid\",\n \"dashed\",\n \"dotted\",\n \"double\",\n \"wavy\",\n \"zigzag\",\n \"broken\",\n]);\n\nexport function parseLegendDirective(\n rawLine: string,\n overrides: LegendOverrides\n): boolean {\n const line = rawLine.trim();\n if (!line.toLowerCase().startsWith(\"legend\")) return false;\n\n // `legend: ...` shorthand (toggle / position keyword)\n const masterMatch = line.match(/^legend\\s*:\\s*(.+)$/i);\n if (masterMatch && !line.toLowerCase().startsWith(\"legend.\")) {\n return applyMaster(masterMatch[1].trim(), overrides);\n }\n\n // `legend.title: \"...\"`\n const titleMatch = line.match(/^legend\\.title\\s*:\\s*(.+)$/i);\n if (titleMatch) {\n overrides.title = unquote(titleMatch[1].trim());\n return true;\n }\n\n // `legend.position: <pos>`\n const posMatch = line.match(/^legend\\.position\\s*:\\s*(.+)$/i);\n if (posMatch) {\n const pos = posMatch[1].trim().toLowerCase();\n if (VALID_POSITIONS.has(pos as LegendPosition)) {\n overrides.position = pos as LegendPosition;\n return true;\n }\n return false;\n }\n\n // `legend.columns: N`\n const colsMatch = line.match(/^legend\\.columns\\s*:\\s*(\\d+)\\s*$/i);\n if (colsMatch) {\n overrides.columns = Number.parseInt(colsMatch[1], 10);\n return true;\n }\n\n // `legend.label <key>: \"...\"`\n const labelMatch = line.match(/^legend\\.label\\s+([^\\s:]+)\\s*:\\s*(.+)$/i);\n if (labelMatch) {\n overrides.labels ??= {};\n overrides.labels[labelMatch[1]] = unquote(labelMatch[2].trim());\n return true;\n }\n\n // `legend.hide: a, b, c`\n const hideMatch = line.match(/^legend\\.hide\\s*:\\s*(.+)$/i);\n if (hideMatch) {\n const keys = hideMatch[1]\n .split(\",\")\n .map((s) => s.trim())\n .filter(Boolean);\n overrides.hide = (overrides.hide ?? []).concat(keys);\n return true;\n }\n\n // `legend.section <id>.hide: true|false`\n const sectionHideMatch = line.match(\n /^legend\\.section\\s+([^\\s.]+)\\.hide\\s*:\\s*(true|false)\\s*$/i\n );\n if (sectionHideMatch) {\n const id = sectionHideMatch[1];\n const flag = sectionHideMatch[2].toLowerCase() === \"true\";\n overrides.sections ??= {};\n overrides.sections[id] = { ...(overrides.sections[id] ?? {}), hidden: flag };\n return true;\n }\n\n // `legend.section <id>: \"...\"` (rename)\n const sectionMatch = line.match(/^legend\\.section\\s+([^\\s:]+)\\s*:\\s*(.+)$/i);\n if (sectionMatch) {\n const id = sectionMatch[1];\n overrides.sections ??= {};\n overrides.sections[id] = {\n ...(overrides.sections[id] ?? {}),\n title: unquote(sectionMatch[2].trim()),\n };\n return true;\n }\n\n // `legend.item <id>: \"label\" (kind: X, color: Y, ...)`\n const itemMatch = line.match(\n /^legend\\.item\\s+([^\\s:]+)\\s*:\\s*\"([^\"]*)\"\\s*(?:\\(([^)]*)\\))?\\s*$/i\n );\n if (itemMatch) {\n const item = buildItem(itemMatch[1], itemMatch[2], itemMatch[3]);\n if (item) {\n overrides.added ??= [];\n overrides.added.push(item);\n return true;\n }\n }\n\n return false;\n}\n\nfunction applyMaster(value: string, overrides: LegendOverrides): boolean {\n const parts = value.split(/\\s+/).filter(Boolean);\n let consumed = false;\n for (const tok of parts) {\n const t = tok.toLowerCase();\n if (t === \"on\" || t === \"off\" || t === \"auto\") {\n overrides.mode = t;\n consumed = true;\n } else if (VALID_POSITIONS.has(t as LegendPosition)) {\n overrides.position = t as LegendPosition;\n // A position keyword implies on (unless explicitly off)\n if (overrides.mode !== \"off\") overrides.mode = \"on\";\n consumed = true;\n } else {\n return false;\n }\n }\n return consumed;\n}\n\nfunction buildItem(\n id: string,\n label: string,\n attrsRaw: string | undefined\n): LegendItem | null {\n const item: LegendItem = { key: id, label, kind: \"fill\" };\n if (!attrsRaw) return item;\n\n for (const part of attrsRaw.split(\",\")) {\n const eq = part.indexOf(\":\");\n if (eq < 0) continue;\n const k = part.slice(0, eq).trim().toLowerCase();\n const v = part.slice(eq + 1).trim();\n switch (k) {\n case \"kind\":\n if (VALID_KINDS.has(v as LegendItemKind)) item.kind = v as LegendItemKind;\n else return null;\n break;\n case \"color\":\n item.color = v;\n break;\n case \"color2\":\n item.color2 = v;\n break;\n case \"pattern\":\n if (VALID_PATTERNS.has(v as LegendLinePattern))\n item.pattern = v as LegendLinePattern;\n break;\n case \"shape\":\n item.shape = v;\n break;\n case \"marker\":\n item.marker = v;\n break;\n case \"section\":\n item.section = v;\n break;\n case \"stroke-width\":\n case \"strokewidth\": {\n const n = Number.parseFloat(v);\n if (Number.isFinite(n)) item.strokeWidth = n;\n break;\n }\n default:\n // Unknown attribute — ignore silently to keep DSL forward-compatible.\n break;\n }\n }\n return item;\n}\n\nfunction unquote(s: string): string {\n const m = s.match(/^\"(.*)\"$/);\n return m ? m[1] : s;\n}\n","/**\n * Shared legend renderer.\n *\n * Pipeline:\n * buildXxxLegend(ast, theme) → auto LegendSpec\n * applyLegendOverrides(spec, o) → final LegendSpec\n * renderLegend(spec, ...) → { svg, bbox }\n *\n * Standard positions (others are silently aliased):\n * - \"bottom-inline\" (default) horizontal strip below the diagram, no box.\n * - \"bottom-right\" compact overlay anchored at bottom-right corner.\n * - \"none\" not rendered.\n */\n\nimport type { BaseTheme } from \"./theme\";\nimport type {\n LegendItem,\n LegendLinePattern,\n LegendOverrides,\n LegendPosition,\n LegendSection,\n LegendSpec,\n} from \"./types\";\nimport {\n el,\n group,\n rect,\n circle,\n line as lineEl,\n path as pathEl,\n polygon,\n text as textEl,\n} from \"./svg\";\n\n// ─── Public API ──────────────────────────────────────────────\n\nexport function applyLegendOverrides(\n auto: LegendSpec,\n overrides: LegendOverrides | undefined\n): LegendSpec {\n if (!overrides) return resolveAuto(auto);\n\n const sections = auto.sections.map((s) => {\n const o = overrides.sections?.[s.id];\n if (!o) return s;\n return { ...s, title: o.title ?? s.title, hidden: o.hidden ?? s.hidden };\n });\n\n const hideSet = new Set<string>(overrides.hide ?? []);\n const hiddenSectionIds = new Set<string>(\n sections.filter((s) => s.hidden).map((s) => s.id)\n );\n\n const baseItems = auto.items.filter((it) => {\n if (hideSet.has(it.key)) return false;\n if (it.section && hiddenSectionIds.has(it.section)) return false;\n return true;\n });\n\n const renamedBase = baseItems.map((it) => {\n const newLabel = overrides.labels?.[it.key];\n return newLabel === undefined ? it : { ...it, label: newLabel };\n });\n\n const added = (overrides.added ?? []).map((it) => ({\n ...it,\n section: it.section ?? \"custom\",\n }));\n\n let finalSections = sections;\n if (added.some((it) => it.section === \"custom\") &&\n !finalSections.some((s) => s.id === \"custom\")) {\n finalSections = [...finalSections, { id: \"custom\", title: \"Custom\" }];\n }\n\n const items = [...renamedBase, ...added];\n\n let mode = overrides.mode ?? auto.mode;\n if (mode === \"auto\") mode = items.length > 0 ? \"on\" : \"off\";\n\n return {\n mode,\n title: overrides.title ?? auto.title,\n position: overrides.position ?? auto.position,\n columns: overrides.columns ?? auto.columns,\n sections: finalSections,\n items,\n };\n}\n\nfunction resolveAuto(spec: LegendSpec): LegendSpec {\n if (spec.mode !== \"auto\") return spec;\n return { ...spec, mode: spec.items.length > 0 ? \"on\" : \"off\" };\n}\n\nexport interface LegendRenderResult {\n svg: string;\n bbox: { x: number; y: number; w: number; h: number };\n}\n\nexport interface LegendAnchor {\n canvasWidth: number;\n canvasHeight: number;\n /** Side margin from the canvas edge. Default 16. */\n padding?: number;\n /** Top offset reserved for diagram title (used by bottom-right anchoring). */\n titleHeight?: number;\n}\n\nexport interface LegendRenderConfig {\n fontFamily: string;\n fontSize: number;\n}\n\nconst ZERO_BBOX = { x: 0, y: 0, w: 0, h: 0 } as const;\n\n// Standardize legacy positions onto one of the 3 supported placements.\nfunction normalizePosition(p: LegendPosition): \"bottom-inline\" | \"bottom-right\" | \"none\" {\n switch (p) {\n case \"bottom-inline\":\n case \"outside-bottom\":\n case \"bottom-left\":\n case \"bottom-center\":\n return \"bottom-inline\";\n case \"bottom-right\":\n case \"outside-right\":\n case \"right\":\n case \"top-right\":\n case \"top-left\":\n return \"bottom-right\";\n case \"none\":\n default:\n return p === \"none\" ? \"none\" : \"bottom-inline\";\n }\n}\n\nconst FONT_SIZE = 11;\nconst SECTION_FONT_SIZE = 9;\nconst TITLE_FONT_SIZE = 12;\nconst SWATCH_W = 22;\nconst SWATCH_H = 12;\nconst SWATCH_LABEL_GAP = 8;\nconst ITEM_GAP = 18;\nconst SECTION_LABEL_GAP = 14;\nconst ROW_H = 18;\nconst INLINE_TOP_GAP = 14;\nconst INLINE_BOTTOM_PAD = 8;\nconst CARD_PAD = 4;\n// Width estimates per character (account for measured rendering, not just font-size).\nconst CHAR_W = FONT_SIZE * 0.6;\n// Section labels are uppercase with 0.6px letter-spacing → bigger glyph footprint.\nconst SECTION_CHAR_W = SECTION_FONT_SIZE * 0.85;\nconst TITLE_CHAR_W = TITLE_FONT_SIZE * 0.65;\n// Minimum effective canvas width for bottom-inline layout. If the diagram is\n// narrower, the legend (and the SVG viewBox) is widened to this value to avoid\n// excessive wrapping into 5+ rows.\nconst MIN_INLINE_WIDTH = 480;\n\nexport function renderLegend(\n spec: LegendSpec,\n anchor: LegendAnchor,\n theme: BaseTheme,\n config: LegendRenderConfig\n): LegendRenderResult {\n if (spec.mode === \"off\" || spec.position === \"none\" || spec.items.length === 0) {\n return { svg: \"\", bbox: { ...ZERO_BBOX } };\n }\n\n const padding = anchor.padding ?? 16;\n const layout = normalizePosition(spec.position);\n\n // Group items by section, preserving order.\n const itemsBySection = new Map<string, LegendItem[]>();\n for (const it of spec.items) {\n const sid = it.section ?? \"_default\";\n const arr = itemsBySection.get(sid) ?? [];\n arr.push(it);\n itemsBySection.set(sid, arr);\n }\n\n const declared = spec.sections.length\n ? spec.sections.filter(\n (s) => !s.hidden && (itemsBySection.get(s.id)?.length ?? 0) > 0\n )\n : [{ id: \"_default\", title: \"\" } as LegendSection];\n\n const declaredIds = new Set(declared.map((s) => s.id));\n const orderedSections: LegendSection[] = [...declared];\n for (const [sid] of itemsBySection) {\n if (!declaredIds.has(sid) && (itemsBySection.get(sid)?.length ?? 0) > 0) {\n orderedSections.push({ id: sid, title: capitalize(sid) });\n }\n }\n\n const showTitle = !!spec.title && spec.title !== \"Legend\";\n\n if (layout === \"bottom-inline\") {\n return renderBottomInline(\n spec,\n orderedSections,\n itemsBySection,\n anchor,\n theme,\n config,\n padding,\n showTitle\n );\n }\n return renderBottomRight(\n spec,\n orderedSections,\n itemsBySection,\n anchor,\n theme,\n config,\n padding,\n showTitle\n );\n}\n\n// ─── bottom-inline: horizontal flow strip below canvas ───────\n//\n// Layout rules:\n// - Each section gets its own row (or rows). Sections never share a row.\n// - All sections share a fixed left \"label column\" so swatches line up.\n// - Items wrap within a section if they don't fit in one row; the\n// continuation row is indented past the label column.\n// - Optional title (when explicitly set by user) is rendered as its own\n// leading row, also left-aligned in the label column.\n// - If canvas is narrower than MIN_INLINE_WIDTH, the legend is rendered\n// at MIN_INLINE_WIDTH and the bbox reflects this — caller grows viewBox.\n\nfunction renderBottomInline(\n spec: LegendSpec,\n sections: LegendSection[],\n bySection: Map<string, LegendItem[]>,\n anchor: LegendAnchor,\n theme: BaseTheme,\n config: LegendRenderConfig,\n padding: number,\n showTitle: boolean\n): LegendRenderResult {\n const effectiveCanvasW = Math.max(anchor.canvasWidth, MIN_INLINE_WIDTH);\n const startX = padding;\n const endX = effectiveCanvasW - padding;\n const availW = Math.max(120, endX - startX);\n const startY = anchor.canvasHeight + INLINE_TOP_GAP;\n\n // Determine label-column width: max of all section label widths (uppercase).\n let labelColW = 0;\n for (const s of sections) {\n if (!s.title || s.id === \"_default\") continue;\n const items = bySection.get(s.id) ?? [];\n if (items.length === 0) continue;\n const lw = SECTION_CHAR_W * s.title.length;\n if (lw > labelColW) labelColW = lw;\n }\n if (showTitle) {\n const tw = TITLE_CHAR_W * spec.title.length;\n if (tw > labelColW) labelColW = tw;\n }\n // Add right-side gap between label column and items.\n const itemColX = labelColW > 0 ? labelColW + SECTION_LABEL_GAP : 0;\n const itemAvailW = Math.max(80, availW - itemColX);\n\n function itemWidth(it: LegendItem): number {\n return SWATCH_W + SWATCH_LABEL_GAP + Math.ceil(it.label.length * CHAR_W);\n }\n\n // For each section, pack its items into rows that fit in itemAvailW.\n type SectionRows = {\n label: string | null;\n rows: { item: LegendItem; x: number }[][];\n };\n const sectionRows: SectionRows[] = [];\n\n if (showTitle) {\n sectionRows.push({ label: spec.title, rows: [[]] }); // title-only row\n // Title is rendered without items; we'll treat the title text via labelCol.\n }\n\n for (const s of sections) {\n const items = bySection.get(s.id) ?? [];\n if (items.length === 0) continue;\n const rows: { item: LegendItem; x: number }[][] = [];\n let row: { item: LegendItem; x: number }[] = [];\n let cursor = 0;\n for (const it of items) {\n const w = itemWidth(it);\n const gap = row.length > 0 ? ITEM_GAP : 0;\n if (cursor > 0 && cursor + gap + w > itemAvailW) {\n rows.push(row);\n row = [];\n cursor = 0;\n }\n const x = cursor + (cursor > 0 ? gap : 0);\n row.push({ item: it, x });\n cursor = x + w;\n }\n if (row.length > 0) rows.push(row);\n const label = s.title && s.id !== \"_default\" ? s.title.toUpperCase() : null;\n sectionRows.push({ label, rows });\n }\n\n // Build SVG.\n const out: string[] = [];\n out.push(buildStyleBlock(theme, config.fontFamily));\n\n let cursorY = startY;\n let usedRight = 0;\n\n for (let si = 0; si < sectionRows.length; si++) {\n const sec = sectionRows[si];\n const isTitleRow = showTitle && si === 0;\n for (let ri = 0; ri < sec.rows.length; ri++) {\n const yMid = cursorY + ROW_H / 2;\n const labelBaseline = yMid + FONT_SIZE / 2 - 2;\n const sectionBaseline = yMid + SECTION_FONT_SIZE / 2 - 1;\n const titleBaseline = yMid + TITLE_FONT_SIZE / 2 - 2;\n\n // Section/title label only on the first row of the section.\n if (ri === 0) {\n if (isTitleRow && sec.label) {\n out.push(\n textEl(\n { x: startX, y: titleBaseline, class: \"schematex-legend-title\" },\n sec.label\n )\n );\n const w = TITLE_CHAR_W * sec.label.length;\n if (startX + w > usedRight) usedRight = startX + w;\n } else if (sec.label) {\n out.push(\n textEl(\n { x: startX, y: sectionBaseline, class: \"schematex-legend-section\" },\n sec.label\n )\n );\n }\n }\n\n for (const cell of sec.rows[ri]) {\n const cx = startX + itemColX + cell.x;\n const swatchY = yMid - SWATCH_H / 2;\n const swatch = renderSwatch(cell.item, cx, swatchY, SWATCH_W, SWATCH_H, theme);\n const label = textEl(\n {\n x: cx + SWATCH_W + SWATCH_LABEL_GAP,\n y: labelBaseline,\n class: \"schematex-legend-label\",\n },\n cell.item.label\n );\n out.push(\n group(\n {\n class: \"schematex-legend-row\",\n \"data-legend-key\": cell.item.key,\n \"data-legend-section\": cell.item.section ?? \"\",\n },\n [swatch, label]\n )\n );\n const right = cx + itemWidth(cell.item);\n if (right > usedRight) usedRight = right;\n }\n\n cursorY += ROW_H;\n }\n }\n\n const totalRows = sectionRows.reduce(\n (sum, sec) => sum + Math.max(1, sec.rows.length),\n 0\n );\n\n // Force right edge to at least the effective canvas right padding so the\n // caller's viewBox grows to include any min-width expansion.\n const minRight = effectiveCanvasW - padding;\n if (minRight > usedRight) usedRight = minRight;\n\n const svg = group({ class: \"schematex-legend\" }, out);\n const bbox = {\n x: startX,\n y: startY,\n w: usedRight - startX,\n h: totalRows * ROW_H + INLINE_BOTTOM_PAD,\n };\n return { svg, bbox };\n}\n\n// ─── bottom-right: compact overlay card (no box) ─────────────\n\nfunction renderBottomRight(\n spec: LegendSpec,\n sections: LegendSection[],\n bySection: Map<string, LegendItem[]>,\n anchor: LegendAnchor,\n theme: BaseTheme,\n config: LegendRenderConfig,\n padding: number,\n showTitle: boolean\n): LegendRenderResult {\n // Measure box width.\n let maxRowW = 0;\n if (showTitle) {\n maxRowW = Math.max(maxRowW, TITLE_CHAR_W * spec.title.length);\n }\n for (const s of sections) {\n const items = bySection.get(s.id) ?? [];\n if (items.length === 0) continue;\n if (s.title && s.id !== \"_default\") {\n maxRowW = Math.max(maxRowW, SECTION_CHAR_W * s.title.length);\n }\n for (const it of items) {\n const w = SWATCH_W + SWATCH_LABEL_GAP + Math.ceil(it.label.length * CHAR_W);\n if (w > maxRowW) maxRowW = w;\n }\n }\n const boxW = maxRowW + CARD_PAD * 2;\n\n // Measure rows.\n let rowCount = 0;\n if (showTitle) rowCount++;\n for (const s of sections) {\n const items = bySection.get(s.id) ?? [];\n if (items.length === 0) continue;\n if (s.title && s.id !== \"_default\") rowCount++;\n rowCount += items.length;\n }\n const boxH = rowCount * ROW_H + CARD_PAD * 2;\n\n const x = anchor.canvasWidth - boxW - padding;\n const y = anchor.canvasHeight - boxH - padding;\n\n const out: string[] = [];\n out.push(buildStyleBlock(theme, config.fontFamily));\n\n let cursorY = y + CARD_PAD;\n if (showTitle) {\n cursorY += ROW_H / 2;\n out.push(\n textEl(\n {\n x: x + CARD_PAD,\n y: cursorY + TITLE_FONT_SIZE / 2 - 2,\n class: \"schematex-legend-title\",\n },\n spec.title\n )\n );\n cursorY += ROW_H / 2;\n }\n for (const s of sections) {\n const items = bySection.get(s.id) ?? [];\n if (items.length === 0) continue;\n if (s.title && s.id !== \"_default\") {\n cursorY += ROW_H / 2;\n out.push(\n textEl(\n {\n x: x + CARD_PAD,\n y: cursorY + SECTION_FONT_SIZE / 2 - 1,\n class: \"schematex-legend-section\",\n },\n s.title.toUpperCase()\n )\n );\n cursorY += ROW_H / 2;\n }\n for (const it of items) {\n const yMid = cursorY + ROW_H / 2;\n const swatchY = yMid - SWATCH_H / 2;\n const swatch = renderSwatch(it, x + CARD_PAD, swatchY, SWATCH_W, SWATCH_H, theme);\n const label = textEl(\n {\n x: x + CARD_PAD + SWATCH_W + SWATCH_LABEL_GAP,\n y: yMid + FONT_SIZE / 2 - 2,\n class: \"schematex-legend-label\",\n },\n it.label\n );\n out.push(\n group(\n {\n class: \"schematex-legend-row\",\n \"data-legend-key\": it.key,\n \"data-legend-section\": it.section ?? \"\",\n },\n [swatch, label]\n )\n );\n cursorY += ROW_H;\n }\n }\n\n const svg = group({ class: \"schematex-legend\" }, out);\n return { svg, bbox: { x, y, w: boxW, h: boxH } };\n}\n\n// ─── Swatch primitives ───────────────────────────────────────\n\nfunction renderSwatch(\n item: LegendItem,\n x: number,\n y: number,\n w: number,\n h: number,\n theme: BaseTheme\n): string {\n switch (item.kind) {\n case \"shape\":\n return renderShapeSwatch(item, x, y, w, h, theme);\n case \"fill\":\n return renderFillSwatch(item, x, y, w, h, theme);\n case \"fill-pattern\":\n return renderFillPatternSwatch(item, x, y, w, h, theme);\n case \"line\":\n return renderLineSwatch(item, x, y, w, h, theme);\n case \"marker\":\n return renderMarkerSwatch(item, x, y, w, h, theme);\n case \"edge\":\n return renderEdgeSwatch(item, x, y, w, h, theme);\n default:\n return renderFillSwatch(item, x, y, w, h, theme);\n }\n}\n\nfunction renderShapeSwatch(\n item: LegendItem,\n x: number,\n y: number,\n w: number,\n h: number,\n theme: BaseTheme\n): string {\n const shape = item.shape ?? \"square\";\n const cx = x + w / 2;\n const cy = y + h / 2;\n // Resolution rule:\n // - if item.fill is set: it wins for fill, item.color (if any) is stroke, else theme.stroke.\n // - else: item.color (if any) is fill, theme.stroke is stroke.\n const usedFill = item.fill ?? item.color ?? theme.fill;\n const usedStroke = item.fill !== undefined ? (item.color ?? theme.stroke) : theme.stroke;\n const innerR = Math.min(w, h) / 2 - 1;\n switch (shape) {\n case \"circle\":\n return circle({ cx, cy, r: innerR, fill: usedFill, stroke: usedStroke });\n case \"diamond\": {\n return polygon({\n points: `${cx},${cy - innerR} ${cx + innerR},${cy} ${cx},${cy + innerR} ${cx - innerR},${cy}`,\n fill: usedFill,\n stroke: usedStroke,\n });\n }\n case \"triangle\": {\n return polygon({\n points: `${cx},${cy - innerR} ${cx + innerR},${cy + innerR * 0.8} ${cx - innerR},${cy + innerR * 0.8}`,\n fill: usedFill,\n stroke: usedStroke,\n });\n }\n case \"concentric-square\": {\n const inner = rect({\n x: x + 3,\n y: y + 3,\n width: w - 6,\n height: h - 6,\n fill: usedFill,\n stroke: usedStroke,\n });\n const outer = rect({\n x: x + 1,\n y: y + 1,\n width: w - 2,\n height: h - 2,\n fill: \"none\",\n stroke: usedStroke,\n \"stroke-width\": 1.2,\n });\n return inner + outer;\n }\n case \"concentric-circle\": {\n const innerC = circle({\n cx,\n cy,\n r: innerR - 2,\n fill: usedFill,\n stroke: usedStroke,\n });\n const outerC = circle({\n cx,\n cy,\n r: innerR,\n fill: \"none\",\n stroke: usedStroke,\n \"stroke-width\": 1.2,\n });\n return innerC + outerC;\n }\n case \"square\":\n default:\n return rect({\n x: x + 1,\n y: y + 1,\n width: w - 2,\n height: h - 2,\n fill: usedFill,\n stroke: usedStroke,\n });\n }\n}\n\nfunction renderFillSwatch(\n item: LegendItem,\n x: number,\n y: number,\n w: number,\n h: number,\n theme: BaseTheme\n): string {\n return rect({\n x: x + 1,\n y: y + 1,\n width: w - 2,\n height: h - 2,\n fill: item.color ?? theme.fill,\n stroke: theme.stroke,\n });\n}\n\nfunction renderFillPatternSwatch(\n item: LegendItem,\n x: number,\n y: number,\n w: number,\n h: number,\n theme: BaseTheme\n): string {\n const pattern = item.shape ?? \"full\";\n const innerX = x + 1;\n const innerY = y + 1;\n const innerW = w - 2;\n const innerH = h - 2;\n const color = item.color ?? theme.fill;\n const color2 = item.color2 ?? \"transparent\";\n const stroke = theme.stroke;\n\n const baseRect = rect({\n x: innerX,\n y: innerY,\n width: innerW,\n height: innerH,\n fill: color2,\n stroke,\n });\n\n switch (pattern) {\n case \"half-left\":\n return baseRect + rect({ x: innerX, y: innerY, width: innerW / 2, height: innerH, fill: color });\n case \"half-right\":\n return baseRect + rect({ x: innerX + innerW / 2, y: innerY, width: innerW / 2, height: innerH, fill: color });\n case \"half-top\":\n return baseRect + rect({ x: innerX, y: innerY, width: innerW, height: innerH / 2, fill: color });\n case \"half-bottom\":\n return baseRect + rect({ x: innerX, y: innerY + innerH / 2, width: innerW, height: innerH / 2, fill: color });\n case \"quad-tl\":\n return baseRect + rect({ x: innerX, y: innerY, width: innerW / 2, height: innerH / 2, fill: color });\n case \"quad-tr\":\n return baseRect + rect({ x: innerX + innerW / 2, y: innerY, width: innerW / 2, height: innerH / 2, fill: color });\n case \"quad-bl\":\n return baseRect + rect({ x: innerX, y: innerY + innerH / 2, width: innerW / 2, height: innerH / 2, fill: color });\n case \"quad-br\":\n return baseRect + rect({ x: innerX + innerW / 2, y: innerY + innerH / 2, width: innerW / 2, height: innerH / 2, fill: color });\n case \"striped\":\n case \"carrier\": {\n const stripes: string[] = [baseRect];\n const stripeW = 2;\n for (let sx = innerX; sx < innerX + innerW; sx += stripeW * 2) {\n stripes.push(rect({\n x: sx,\n y: innerY,\n width: Math.min(stripeW, innerX + innerW - sx),\n height: innerH,\n fill: color,\n }));\n }\n return stripes.join(\"\");\n }\n case \"dotted\": {\n const dots: string[] = [baseRect];\n const cy = innerY + innerH / 2;\n for (let dx = innerX + 3; dx < innerX + innerW - 1; dx += 4) {\n dots.push(circle({ cx: dx, cy, r: 1, fill: color }));\n }\n return dots.join(\"\");\n }\n case \"full\":\n default:\n return rect({\n x: innerX,\n y: innerY,\n width: innerW,\n height: innerH,\n fill: color,\n stroke,\n });\n }\n}\n\nfunction renderLineSwatch(\n item: LegendItem,\n x: number,\n y: number,\n w: number,\n h: number,\n theme: BaseTheme\n): string {\n const cy = y + h / 2;\n const x1 = x + 1;\n const x2 = x + w - 1;\n const stroke = item.color ?? theme.stroke;\n const sw = item.strokeWidth ?? 2;\n const dash = patternDasharray(item.pattern);\n\n if (item.pattern === \"double\") {\n const off = Math.max(2, sw);\n return (\n lineEl({ x1, y1: cy - off, x2, y2: cy - off, stroke, \"stroke-width\": sw }) +\n lineEl({ x1, y1: cy + off, x2, y2: cy + off, stroke, \"stroke-width\": sw })\n );\n }\n\n if (item.pattern === \"wavy\") {\n const amp = Math.min(h / 3, 3);\n const period = 6;\n const segs: string[] = [`M ${x1} ${cy}`];\n let sx = x1;\n let up = true;\n while (sx < x2) {\n const nx = Math.min(sx + period, x2);\n segs.push(`Q ${sx + period / 2} ${cy + (up ? -amp : amp)} ${nx} ${cy}`);\n sx = nx;\n up = !up;\n }\n return pathEl({ d: segs.join(\" \"), fill: \"none\", stroke, \"stroke-width\": sw });\n }\n\n const attrs: Record<string, string | number> = {\n x1,\n y1: cy,\n x2,\n y2: cy,\n stroke,\n \"stroke-width\": sw,\n \"stroke-linecap\": \"round\",\n };\n if (dash) attrs[\"stroke-dasharray\"] = dash;\n return lineEl(attrs);\n}\n\nfunction renderMarkerSwatch(\n item: LegendItem,\n x: number,\n y: number,\n w: number,\n h: number,\n theme: BaseTheme\n): string {\n const cx = x + w / 2;\n const cy = y + h / 2;\n const color = item.color ?? theme.text;\n const marker = item.marker ?? \"dot\";\n switch (marker) {\n case \"X\":\n case \"x\": {\n const r = Math.min(w, h) / 3;\n return (\n lineEl({ x1: cx - r, y1: cy - r, x2: cx + r, y2: cy + r, stroke: color, \"stroke-width\": 1.6, \"stroke-linecap\": \"round\" }) +\n lineEl({ x1: cx + r, y1: cy - r, x2: cx - r, y2: cy + r, stroke: color, \"stroke-width\": 1.6, \"stroke-linecap\": \"round\" })\n );\n }\n case \"arrow\": {\n const x1 = x + 2;\n const x2 = x + w - 4;\n return (\n lineEl({ x1, y1: cy, x2, y2: cy, stroke: color, \"stroke-width\": 1.6, \"stroke-linecap\": \"round\" }) +\n polygon({ points: `${x2},${cy - 3} ${x + w - 1},${cy} ${x2},${cy + 3}`, fill: color })\n );\n }\n case \"star\":\n return textEl(\n { x: cx, y: cy + 4, \"text-anchor\": \"middle\", \"font-size\": 14, fill: color },\n \"★\"\n );\n case \"slash\":\n return lineEl({\n x1: cx - 4, y1: cy + 5,\n x2: cx + 4, y2: cy - 5,\n stroke: color, \"stroke-width\": 1.6,\n });\n case \"P\":\n case \"C\":\n case \"E\":\n return textEl(\n { x: cx, y: cy + 4, \"text-anchor\": \"middle\", \"font-size\": 11, \"font-weight\": \"bold\", fill: color },\n marker\n );\n case \"dot\":\n default:\n return circle({ cx, cy, r: 3, fill: color });\n }\n}\n\nfunction renderEdgeSwatch(\n item: LegendItem,\n x: number,\n y: number,\n w: number,\n h: number,\n theme: BaseTheme\n): string {\n const linePart = renderLineSwatch(item, x, y, w, h, theme);\n if (!item.marker) return linePart;\n return linePart + renderMarkerSwatch(item, x + w - 8, y, 12, h, theme);\n}\n\nfunction patternDasharray(p: LegendLinePattern | undefined): string | null {\n switch (p) {\n case \"dashed\":\n return \"5,3\";\n case \"dotted\":\n return \"1.5,3\";\n case \"broken\":\n return \"2,8\";\n case \"zigzag\":\n return \"8,3,2,3\";\n case \"solid\":\n case undefined:\n return null;\n default:\n return null;\n }\n}\n\n// ─── Style block ─────────────────────────────────────────────\n\nfunction buildStyleBlock(theme: BaseTheme, fontFamily: string): string {\n const css = `\n.schematex-legend { font-family: ${fontFamily}; }\n.schematex-legend-title { font-size: ${TITLE_FONT_SIZE}px; font-weight: 700; fill: ${theme.text}; }\n.schematex-legend-section { font-size: ${SECTION_FONT_SIZE}px; font-weight: 600; fill: ${theme.textMuted}; letter-spacing: 0.6px; }\n.schematex-legend-label { font-size: ${FONT_SIZE}px; fill: ${theme.text}; dominant-baseline: alphabetic; }\n`;\n return el(\"style\", {}, css);\n}\n\nfunction capitalize(s: string): string {\n if (!s) return s;\n return s.charAt(0).toUpperCase() + s.slice(1);\n}\n"]}
@@ -5,14 +5,16 @@ var chunkHDKDQAEQ_cjs = require('./chunk-HDKDQAEQ.cjs');
5
5
 
6
6
  // src/diagrams/flowchart/parser.ts
7
7
  var FlowchartParseError = class extends Error {
8
- constructor(message, line2, col) {
9
- super(`[line ${line2}:${col}] ${message}`);
8
+ constructor(message, line2, column, source) {
9
+ super(`[line ${line2}:${column}] ${message}`);
10
10
  this.line = line2;
11
- this.col = col;
11
+ this.column = column;
12
+ this.source = source;
12
13
  this.name = "FlowchartParseError";
13
14
  }
14
15
  line;
15
- col;
16
+ column;
17
+ source;
16
18
  };
17
19
  var DIRECTIONS = /* @__PURE__ */ new Set(["TB", "TD", "BT", "LR", "RL"]);
18
20
  function parseShapeSuffix(line2, pos) {
@@ -1876,5 +1878,5 @@ exports.layoutFlowchart = layoutFlowchart;
1876
1878
  exports.parseFlowchart = parseFlowchart;
1877
1879
  exports.renderFlowchart = renderFlowchart;
1878
1880
  exports.renderFlowchartAST = renderFlowchartAST;
1879
- //# sourceMappingURL=chunk-CXHPP5BL.cjs.map
1880
- //# sourceMappingURL=chunk-CXHPP5BL.cjs.map
1881
+ //# sourceMappingURL=chunk-Z3DE6S64.cjs.map
1882
+ //# sourceMappingURL=chunk-Z3DE6S64.cjs.map