kortext 2.2.3 → 3.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +175 -65
- package/agents/architect.md +85 -0
- package/agents/compliance-expert.md +36 -75
- package/agents/copywriter.md +36 -92
- package/agents/db-admin.md +43 -91
- package/agents/designer.md +40 -77
- package/agents/devops-engineer.md +37 -113
- package/agents/growth-expert.md +45 -88
- package/agents/product-manager.md +38 -83
- package/agents/qa-engineer.md +51 -99
- package/agents/security-engineer.md +47 -92
- package/bin/kortext.js +2 -0
- package/dist/app.js +829 -0
- package/dist/cli-spawn.js +137 -0
- package/dist/daemon.js +40 -0
- package/dist/db.js +78 -0
- package/dist/design-preview.js +533 -0
- package/dist/docs.js +701 -0
- package/dist/engines.js +225 -0
- package/dist/index.js +109 -0
- package/dist/pick-directory.js +38 -0
- package/dist/projects.js +189 -0
- package/dist/readiness.js +288 -0
- package/dist/runner.js +771 -0
- package/dist/update.js +55 -0
- package/docs/CHANGELOG.md +11 -0
- package/package.json +53 -13
- package/templates/AGENTS.md +62 -0
- package/templates/docs/API.md +67 -0
- package/templates/docs/ARCHITECTURE.md +31 -0
- package/templates/docs/BRIEF.md +27 -0
- package/templates/docs/CONTENT.md +66 -0
- package/templates/docs/DATABASE.md +63 -0
- package/templates/docs/DESIGN.md +124 -0
- package/templates/docs/ENGINEERING.md +66 -0
- package/templates/docs/ENVIRONMENT.md +102 -0
- package/templates/docs/GROWTH.md +44 -0
- package/templates/docs/LEGAL.md +48 -0
- package/templates/docs/PRODUCT.md +43 -0
- package/templates/docs/SECURITY.md +65 -0
- package/templates/docs/STACK.md +57 -0
- package/templates/docs/STRUCTURE.md +73 -0
- package/templates/docs/TEST.md +62 -0
- package/ui/dist/assets/abnfDiagram-VCTEODGH-Bm7Q2BML.js +1 -0
- package/ui/dist/assets/arc-BV9hs0Hu.js +1 -0
- package/ui/dist/assets/architecture-7GRP2DOG-RckR3gBI.js +1 -0
- package/ui/dist/assets/architectureDiagram-5GKGNRK7-CHiJ6JFT.js +36 -0
- package/ui/dist/assets/array-BifhSqXX.js +1 -0
- package/ui/dist/assets/blockDiagram-I7D4REHJ-qCbaKVhd.js +129 -0
- package/ui/dist/assets/c4Diagram-7LVT6UL2-DidCDJrv.js +38 -0
- package/ui/dist/assets/channel-CNUQ11ne.js +1 -0
- package/ui/dist/assets/chunk-2Q5K7J3B-C1jixKkw.js +1 -0
- package/ui/dist/assets/chunk-4HAMMTFA-CDGFjfVp.js +62 -0
- package/ui/dist/assets/chunk-5VM5RSS4-ZNzvKenW.js +15 -0
- package/ui/dist/assets/chunk-75Z2AOVW-CbNT4sDh.js +2 -0
- package/ui/dist/assets/chunk-DU6HZSFF-Cq2BVv26.js +127 -0
- package/ui/dist/assets/chunk-F27PBJKO-CE365m0v.js +1 -0
- package/ui/dist/assets/chunk-FOHPRMQF-DHwB1DNv.js +161 -0
- package/ui/dist/assets/chunk-GMAD6QVW-DxWL1VC-.js +72 -0
- package/ui/dist/assets/chunk-GVQU2GXP-aARV8YbK.js +1 -0
- package/ui/dist/assets/chunk-IMKFNOWR-CC790Kt2.js +231 -0
- package/ui/dist/assets/chunk-JWPE2WC7-DVXcaiue.js +1 -0
- package/ui/dist/assets/chunk-L3NEJ4N5-BfE4VE8J.js +1 -0
- package/ui/dist/assets/chunk-OSK3NFVY-BImQbSWH.js +10 -0
- package/ui/dist/assets/chunk-P2QGCYS3-CN3XD313.js +1 -0
- package/ui/dist/assets/chunk-POPQ4Y6H-Dqb6jOrX.js +1 -0
- package/ui/dist/assets/chunk-PWAF6VOD-DfXX6rBk.js +1 -0
- package/ui/dist/assets/chunk-SHT3W25Y-DATyyqPK.js +168 -0
- package/ui/dist/assets/chunk-SVP7TREG-r1chwRmg.js +88 -0
- package/ui/dist/assets/chunk-TICWLB2K-DL4atHUC.js +206 -0
- package/ui/dist/assets/chunk-XXDRQBXY-DXrM6jh7.js +1 -0
- package/ui/dist/assets/chunk-Y2CYZVJY-DsF7k-Jl.js +1 -0
- package/ui/dist/assets/classDiagram-ZZMXUADV-BpQxfIQ7.js +1 -0
- package/ui/dist/assets/classDiagram-v2-VYDZK3BY-BpQxfIQ7.js +1 -0
- package/ui/dist/assets/cose-bilkent-JH36ORCC-Bhe-ZBlS.js +1 -0
- package/ui/dist/assets/cynefin-OW5HDTMX-D1koLd-G.js +1 -0
- package/ui/dist/assets/cynefinDiagram-5FMLGOSQ-BMcw40hV.js +62 -0
- package/ui/dist/assets/cytoscape.esm-CGd-uY3x.js +321 -0
- package/ui/dist/assets/dagre-GXQ25YYZ-DBun-Rs2.js +4 -0
- package/ui/dist/assets/dagre-PrKaheQc.js +1 -0
- package/ui/dist/assets/defaultLocale-BFoDCU3G.js +1 -0
- package/ui/dist/assets/diagram-S7CK7UJ4-C1fUIGvo.js +30 -0
- package/ui/dist/assets/diagram-UQ7AKVKN-B5FDfkvB.js +41 -0
- package/ui/dist/assets/diagram-VSXAHHWV-CCIpOCNC.js +3 -0
- package/ui/dist/assets/diagram-VX7I27RA-DV0q2xo_.js +24 -0
- package/ui/dist/assets/diagram-Z3DM3KII-B3LCdNgI.js +24 -0
- package/ui/dist/assets/dist-EcW76Zvr.js +1 -0
- package/ui/dist/assets/ebnfDiagram-PWID7BFC-De_oRbYe.js +1 -0
- package/ui/dist/assets/erDiagram-RLTQ6QDP-B9NikMr1.js +99 -0
- package/ui/dist/assets/eventmodeling-NTZA5JFV-DZ4t581k.js +1 -0
- package/ui/dist/assets/flowDiagram-HODETNUW-DuTOJp1C.js +1 -0
- package/ui/dist/assets/ganttDiagram-EL5Y4UJY-BVTqqlPw.js +292 -0
- package/ui/dist/assets/gitGraph-4MIJSDKK-xRFaEJdZ.js +1 -0
- package/ui/dist/assets/gitGraphDiagram-WWUBYQGX-CK5_GCmX.js +106 -0
- package/ui/dist/assets/graphlib-DS17s2tU.js +1 -0
- package/ui/dist/assets/index-CjkpNftW.js +46 -0
- package/ui/dist/assets/index-DVIDTWin.css +1 -0
- package/ui/dist/assets/info-A6RAGUB7-Dg7z-CTI.js +1 -0
- package/ui/dist/assets/infoDiagram-27XIBGKW-YaqsOXh0.js +2 -0
- package/ui/dist/assets/init-C-OQMol4.js +1 -0
- package/ui/dist/assets/ishikawaDiagram-5VMMS53U-C-wtxZPa.js +70 -0
- package/ui/dist/assets/journeyDiagram-3NMN7TZE-DsXSXf16.js +139 -0
- package/ui/dist/assets/kanban-definition-UXKFOSKX-Ct59fuWk.js +89 -0
- package/ui/dist/assets/katex-CXMH3UgJ.js +257 -0
- package/ui/dist/assets/line-BUVw9Mhs.js +1 -0
- package/ui/dist/assets/linear-D8ncLO0X.js +1 -0
- package/ui/dist/assets/mermaid-parser.core-BDC4bG-O.js +7 -0
- package/ui/dist/assets/mermaid.core-DZY3WwzX.js +44 -0
- package/ui/dist/assets/mindmap-definition-YA3MSWOX-DtiuF6Ce.js +96 -0
- package/ui/dist/assets/ordinal-BDEzSJ7C.js +1 -0
- package/ui/dist/assets/packet-AYTQ26CC-BX2-w9rD.js +1 -0
- package/ui/dist/assets/path-fybaL0A-.js +1 -0
- package/ui/dist/assets/pegDiagram-XKGWAZYB-CotwuIHB.js +1 -0
- package/ui/dist/assets/pie-WAS4IAKB-Hth8ZVpm.js +1 -0
- package/ui/dist/assets/pieDiagram-E7YTZNPT-D9-INs8B.js +39 -0
- package/ui/dist/assets/quadrantDiagram-AXDQQJYC-CMtBXZGV.js +7 -0
- package/ui/dist/assets/radar-RG4KPBEZ-6UuwQPsw.js +1 -0
- package/ui/dist/assets/railroad-74A4TZTK-BF5TZgj0.js +1 -0
- package/ui/dist/assets/railroad-abnf-HS5TGJTU-3KYovtYT.js +1 -0
- package/ui/dist/assets/railroad-ebnf-LZEXJU2U-DeP4WedE.js +1 -0
- package/ui/dist/assets/railroad-peg-WCYAUIDC-i42N1-yk.js +1 -0
- package/ui/dist/assets/railroadDiagram-O6MQD6OU-BS6zkU3Z.js +1 -0
- package/ui/dist/assets/requirementDiagram-BXWQKSXE-J4IOB-kP.js +84 -0
- package/ui/dist/assets/rough.esm-Dy-Kn_BL.js +1 -0
- package/ui/dist/assets/sankeyDiagram-P5KCCOFB-jYTCuYzQ.js +40 -0
- package/ui/dist/assets/sequenceDiagram-WJ2MYXX4-Cd2r6PW-.js +162 -0
- package/ui/dist/assets/sizeCapture-INFHLROL-B0uUizjq.js +1 -0
- package/ui/dist/assets/src-7TsfZXRO.js +1 -0
- package/ui/dist/assets/stateDiagram-D77RDMKH-DXOdtOKe.js +1 -0
- package/ui/dist/assets/stateDiagram-v2-MP3YSRHH-9h7sIf3R.js +1 -0
- package/ui/dist/assets/swimlanes-42K2YHIH-BvJGmGs1.js +1 -0
- package/ui/dist/assets/swimlanesDiagram-VR7AAH4N-QA4gPi6a.js +8 -0
- package/ui/dist/assets/timeline-definition-24CTP7MA-CAaD6-yd.js +120 -0
- package/ui/dist/assets/treeView-Q6P3EWNA-4gDEXIyJ.js +1 -0
- package/ui/dist/assets/treemap-WGGIJYW6-CGel5TwW.js +1 -0
- package/ui/dist/assets/vennDiagram-4TSXK5OY-DpxsKboL.js +34 -0
- package/ui/dist/assets/wardley-WFR3VGLG-Ck38v5ns.js +1 -0
- package/ui/dist/assets/wardleyDiagram-VM6X3IG4-Ba0grrqs.js +78 -0
- package/ui/dist/assets/xychartDiagram-S5SC5T6Z-DH_gC96K.js +7 -0
- package/ui/dist/index.html +13 -0
- package/ui/dist/kortext-logo-dark.svg +41 -0
- package/ui/dist/kortext-logo.svg +41 -0
- package/workflows/existing-project-analysis.md +87 -0
- package/workflows/new-project-analysis.md +98 -0
- package/workflows/planning-pipeline.md +61 -0
- package/AGENTS.md +0 -28
- package/agents/backend-developer.md +0 -132
- package/agents/delivery-manager.md +0 -121
- package/agents/engineering-manager.md +0 -208
- package/agents/frontend-developer.md +0 -174
- package/agents/operation-manager.md +0 -122
- package/hooks/audit-logger.sh +0 -25
- package/hooks/auto-locker.sh +0 -74
- package/hooks/auto-unlocker.sh +0 -17
- package/hooks/backlog-sync-guard.sh +0 -12
- package/hooks/branch-guard.sh +0 -32
- package/hooks/commit-msg-guard.sh +0 -43
- package/hooks/git-pre-commit.sh +0 -76
- package/hooks/git-pre-push.sh +0 -17
- package/hooks/handover-guard.sh +0 -33
- package/hooks/kortext-init.sh +0 -194
- package/hooks/kortext-lib.sh +0 -151
- package/hooks/lint-guard.sh +0 -50
- package/hooks/secret-scanner.sh +0 -89
- package/hooks/size-guard.sh +0 -48
- package/hooks/snapshot-guard.sh +0 -39
- package/hooks/write-guard.sh +0 -77
- package/rules/behavior.md +0 -252
- package/rules/branching.md +0 -82
- package/rules/commands.md +0 -112
- package/rules/emergency.md +0 -160
- package/rules/mcp.md +0 -47
- package/rules/models.md +0 -93
- package/scripts/kortext-backlog-add.py +0 -123
- package/scripts/kortext-backlog-health.py +0 -112
- package/scripts/kortext-backlog-sync.py +0 -117
- package/scripts/kortext-bulk-plan.py +0 -63
- package/scripts/kortext-cli.py +0 -376
- package/scripts/kortext-consistency-check.py +0 -74
- package/scripts/kortext-context-check.py +0 -146
- package/scripts/kortext-handover.py +0 -107
- package/scripts/kortext-item-check.py +0 -61
- package/scripts/kortext-item-start.py +0 -70
- package/scripts/kortext-item-transition.py +0 -78
- package/scripts/kortext-lock.py +0 -174
- package/scripts/kortext-session-start.py +0 -127
- package/scripts/lock_kortext.sh +0 -34
- package/settings/.claude-settings.template.json +0 -48
- package/settings/CHANGELOG.md +0 -176
- package/settings/INTEGRATION-MAP.md +0 -276
- package/settings/README.md +0 -255
- package/settings/USER-GUIDE.md +0 -502
- package/settings/VERSION +0 -1
- package/settings/config.md +0 -8
- package/settings/runtime-adapters.md +0 -104
- package/skills/backend-developer/.gitkeep +0 -0
- package/skills/compliance-expert/.gitkeep +0 -0
- package/skills/copywriter/.gitkeep +0 -0
- package/skills/db-admin/.gitkeep +0 -0
- package/skills/delivery-manager/.gitkeep +0 -0
- package/skills/designer/.gitkeep +0 -0
- package/skills/devops-engineer/.gitkeep +0 -0
- package/skills/engineering-manager/.gitkeep +0 -0
- package/skills/frontend-developer/.gitkeep +0 -0
- package/skills/growth-expert/.gitkeep +0 -0
- package/skills/operation-manager/.gitkeep +0 -0
- package/skills/product-manager/.gitkeep +0 -0
- package/skills/qa-engineer/.gitkeep +0 -0
- package/skills/security-engineer/.gitkeep +0 -0
- package/workflows/00-kortext-setup.md +0 -53
- package/workflows/01a-analysis-pipeline.md +0 -117
- package/workflows/01b-onboarding-pipeline.md +0 -110
- package/workflows/02-planning-pipeline.md +0 -146
- package/workflows/02b-spike-workflow.md +0 -120
- package/workflows/03-environment-setup.md +0 -99
- package/workflows/04-development-cycle.md +0 -203
- package/workflows/05-test-cycle.md +0 -123
- package/workflows/06-deployment-cycle.md +0 -224
- package/workflows/07-rollback-pipeline.md +0 -203
- package/workflows/08-hotfix-pipeline.md +0 -196
- package/workflows/09-maintenance-cycle.md +0 -133
- package/workspace/archive/.gitkeep +0 -0
- package/workspace/backups/.gitkeep +0 -0
- package/workspace/memory/backlog/.gitkeep +0 -0
- package/workspace/memory/backlog/BXX-[bug-name].md +0 -2
- package/workspace/memory/backlog/DXX-[debt-name].md +0 -2
- package/workspace/memory/backlog/README.md +0 -31
- package/workspace/memory/backlog/TXX-[task-name].md +0 -2
- package/workspace/memory/backlog/debt-dashboard.md +0 -3
- package/workspace/memory/backlog/epic-dashboard.md +0 -10
- package/workspace/memory/backlog/version-dashboard.md +0 -7
- package/workspace/memory/context/.gitkeep +0 -0
- package/workspace/memory/context/README.md +0 -35
- package/workspace/memory/context/[agent-name]-active.md +0 -2
- package/workspace/memory/decisions.md +0 -17
- package/workspace/memory/handover.md +0 -40
- package/workspace/memory/learned.md +0 -21
- package/workspace/references/access.md +0 -47
- package/workspace/references/api-reference.md +0 -59
- package/workspace/references/blueprint.md +0 -29
- package/workspace/references/content-strategy.md +0 -39
- package/workspace/references/db-schema.md +0 -51
- package/workspace/references/design-system.md +0 -107
- package/workspace/references/dictionary.md +0 -42
- package/workspace/references/file-system.md +0 -42
- package/workspace/references/growth-strategy.md +0 -46
- package/workspace/references/legal-strategy.md +0 -35
- package/workspace/references/required-skills.md +0 -11
- package/workspace/references/security-rules.md +0 -34
- package/workspace/references/tech-stack.md +0 -49
- package/workspace/references/test-strategy.md +0 -48
- package/workspace/reports/analysis-reports.md +0 -40
- package/workspace/reports/content-reports.md +0 -29
- package/workspace/reports/delivery-reports.md +0 -26
- package/workspace/reports/growth-reports.md +0 -9
- package/workspace/reports/legal-reports.md +0 -29
- package/workspace/reports/product-requirements.md +0 -28
- package/workspace/reports/release-notes.md +0 -20
- package/workspace/reports/security-reports.md +0 -27
- package/workspace/reports/status-reports.md +0 -48
- package/workspace/reports/tech-requirements.md +0 -30
- package/workspace/reports/test-reports.md +0 -61
- package/workspace/templates/BXX-[bug-name].md +0 -34
- package/workspace/templates/DXX-[debt-name].md +0 -35
- package/workspace/templates/EXX-[epic-name].md +0 -48
- package/workspace/templates/HXX-[hotfix-name].md +0 -73
- package/workspace/templates/SXX-[spike-name].md +0 -51
- package/workspace/templates/TXX-[task-name].md +0 -34
- package/workspace/templates/[agent-name]-active.md +0 -4
- package/workspace/templates/[original-name]_[YYYY-MM-DD_HHMMSS].md +0 -5
- package/workspace/templates/adr-XXX.md +0 -66
- package/workspace/templates/debt-dashboard.md +0 -10
- package/workspace/templates/epic-dashboard.md +0 -10
- package/workspace/templates/version-dashboard.md +0 -10
|
@@ -0,0 +1 @@
|
|
|
1
|
+
:root{--gray-300:#e0e0e4;--gray-400:#c6c6cc;--bg:#fff;--bg-subtle:#fbfbfc;--bg-muted:#f5f5f6;--bg-inset:#f7f7f8;--bg-hover:#f2f2f4;--bg-active:#ececef;--border:#eaeaec;--border-strong:#dcdce0;--fg:#18181b;--fg-secondary:#51515a;--fg-muted:#76767f;--fg-faint:#a3a3ad;--accent:#18181b;--accent-hover:#000;--accent-fg:#fff;--accent-tint:#f4f4f5;--accent-tint-border:#e2e2e6;--accent-ring:#18181b29;--green:#157a52;--green-bg:#eaf5ef;--green-border:#cfe9dd;--amber:#9a6a16;--amber-bg:#faf2e2;--amber-border:#ecdcb8;--red:#c5392f;--red-bg:#fbeceb;--red-border:#f1cfcc;--blue:#2563c9;--blue-bg:#eaf1fc;--violet:#5b4bcc;--violet-bg:#efedfb;--violet-border:#dad5f4;--pink:#c02a72;--pink-bg:#fdebf3;--pink-border:#f6cede;--r-sm:4px;--r-md:6px;--r-lg:9px;--r-pill:999px;--control-h:30px;--fs-title:20px;--fs-section:18px;--fs-heading:16px;--fs-body:13px;--fs-ui:12px;--fs-label:11px;--fs-micro:10px;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:24px;--sp-6:32px;--border-hover:#c6c6cc;--font-sans:"Barlow", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono:"Overpass Mono", ui-monospace, "SF Mono", Menlo, monospace;--shadow-xs:0 1px 1px #18181b0a;--shadow-lg:0 12px 32px #18181b1f, 0 2px 6px #18181b0f;--speed:.13s;--ease:cubic-bezier(.2, 0, 0, 1);--bg-elev:var(--bg);--panel:var(--bg-subtle);--card:var(--bg);--hover:var(--bg-hover);--hover-strong:var(--bg-active);--fg-mid:var(--fg-secondary);--accent-hi:var(--accent-hover);--accent-soft:var(--accent-tint);--accent-line:var(--accent-tint-border);--col-bg:var(--bg-inset)}:root[data-theme=dark]{--border-hover:#3a3a40;--gray-300:#2c2c31;--gray-400:#3a3a40;--bg:#0a0a0b;--bg-subtle:#0e0e10;--bg-muted:#161618;--bg-inset:#121214;--bg-hover:#1a1a1d;--bg-active:#212126;--border:#2a2a30;--border-strong:#3a3a42;--fg:#ededef;--fg-secondary:#9c9ca5;--fg-muted:#6e6e77;--fg-faint:#54545c;--accent:#ededef;--accent-hover:#cfcfd4;--accent-fg:#0a0a0b;--accent-tint:#1c1c20;--accent-tint-border:#2a2a30;--accent-ring:#ededef29;--green:#46c08a;--green-bg:#10231b;--green-border:#1d3b2e;--amber:#d3a55e;--amber-bg:#241c0e;--amber-border:#3a2e16;--red:#e0726a;--red-bg:#26120f;--red-border:#3d201c;--blue:#5e9bf0;--blue-bg:#0f1c30;--violet:#8b7df0;--violet-bg:#171530;--violet-border:#272350;--pink:#ee7bb0;--pink-bg:#2b1220;--pink-border:#4a2038;--shadow-xs:0 1px 1px #0006;--shadow-lg:0 14px 36px #0009}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--border-hover:#3a3a40;--gray-300:#2c2c31;--gray-400:#3a3a40;--bg:#0a0a0b;--bg-subtle:#0e0e10;--bg-muted:#161618;--bg-inset:#121214;--bg-hover:#1a1a1d;--bg-active:#212126;--border:#2a2a30;--border-strong:#3a3a42;--fg:#ededef;--fg-secondary:#9c9ca5;--fg-muted:#6e6e77;--fg-faint:#54545c;--accent:#ededef;--accent-hover:#cfcfd4;--accent-fg:#0a0a0b;--accent-tint:#1c1c20;--accent-tint-border:#2a2a30;--accent-ring:#ededef29;--green:#46c08a;--green-bg:#10231b;--green-border:#1d3b2e;--amber:#d3a55e;--amber-bg:#241c0e;--amber-border:#3a2e16;--red:#e0726a;--red-bg:#26120f;--red-border:#3d201c;--blue:#5e9bf0;--blue-bg:#0f1c30;--violet:#8b7df0;--violet-bg:#171530;--violet-border:#272350;--pink:#ee7bb0;--pink-bg:#2b1220;--pink-border:#4a2038;--shadow-xs:0 1px 1px #0006;--shadow-lg:0 14px 36px #0009}}@theme inline{--font-sans: var(--font-sans); --font-mono: var(--font-mono);}*{box-sizing:border-box;border-color:var(--border);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--fg);font-family:var(--font-sans);font-size:var(--fs-body);font-feature-settings:"cv01", "ss01", "tnum";line-height:1.5}.mono{font-family:var(--font-mono);letter-spacing:0;font-feature-settings:"tnum" 1}::selection{background:var(--accent-tint)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--gray-300);border:3px solid var(--bg);background-clip:padding-box;border-radius:999px}::-webkit-scrollbar-thumb:hover{background:var(--gray-400);background-clip:padding-box}.logo{background:var(--accent);color:#fff;width:22px;height:22px;font-weight:600;font-size:var(--fs-ui);border-radius:6px;justify-content:center;align-items:center;display:flex;box-shadow:inset 0 0 0 1px #ffffff0f}#shell{z-index:1;flex:1;min-height:0;display:flex;position:relative}.nav{height:36px;color:var(--fg-muted);cursor:pointer;font-weight:450;font-size:var(--fs-body);border-radius:7px;align-items:center;gap:10px;margin:0 8px;padding:0 8px;transition:all .12s;display:flex;position:relative}.nav:hover{background:var(--hover);color:var(--fg-mid)}.nav.active{background:var(--hover-strong);color:var(--fg)}.nav.active:before{content:"";background:var(--accent);border-radius:0 2px 2px 0;width:2px;position:absolute;top:7px;bottom:7px;left:-8px}.nav svg{border:1px solid var(--border);background:var(--bg-muted);box-sizing:border-box;width:28px;height:28px;color:var(--fg-muted);border-radius:50%;flex-shrink:0;padding:4px;transition:all .12s}.nav:hover svg{color:var(--fg-mid);border-color:var(--border-strong)}.nav.active svg{background:var(--accent-soft);border-color:var(--accent-line);color:var(--accent-hi)}.nav .hint{font-size:var(--fs-micro);color:var(--fg-faint);margin-left:auto}#main{flex:1;min-width:0;display:flex;overflow:hidden}.pill{border:1px solid var(--border);height:24px;color:var(--fg-muted);font-size:var(--fs-ui);background:var(--bg);cursor:pointer;border-radius:6px;align-items:center;gap:5px;padding:0 9px;display:inline-flex}.pill:hover{border-color:var(--border-strong);color:var(--fg-mid)}.live{position:relative}.live:after{content:"";background:inherit;opacity:.25;border-radius:50%;animation:1.8s ease-out infinite ping;position:absolute;inset:-3px}@keyframes ping{0%{opacity:.3;transform:scale(1)}80%,to{opacity:0;transform:scale(2.4)}}@keyframes spin{to{transform:rotate(360deg)}}.spin{animation:.9s linear infinite spin}.ring{border-radius:50%;flex-shrink:0;width:36px;height:36px;position:relative}.work{border:1px solid var(--border);background:var(--card);border-radius:10px;overflow:hidden}.tag{border-radius:5px;flex-shrink:0;padding:1px 7px;font-size:10.5px;font-weight:500}.wg{font-size:var(--fs-micro);letter-spacing:.02em;height:14px;color:var(--fg-faint);background:var(--bg-muted);border-radius:3px;align-items:center;padding:0 4px;font-weight:600;display:inline-flex}.wg.done{color:var(--green);background:#4cb78221}.prog{background:var(--bg-active);border-radius:3px;height:4px;overflow:hidden}.prog>i{background:var(--accent);border-radius:3px;height:100%;display:block}.tl{border-left:1px solid var(--border);background:var(--panel);flex-direction:column;flex-shrink:0;width:360px;display:flex}.col{background:var(--col-bg);border:1px solid var(--border);border-radius:10px;flex-direction:column;flex-shrink:0;width:272px;padding:8px;display:flex}.gate{width:16px;height:15px;font-size:var(--fs-micro);color:var(--red);font-weight:600;font-family:var(--font-mono);background:#cc6b6b1a;border:1px solid #cc6b6b40;border-radius:4px;justify-content:center;align-items:center;display:flex}.gate.done{color:var(--green);background:#4cb78224;border-color:#4cb78240}.gate.na{color:var(--fg-muted);border-color:var(--border-strong);opacity:.6;background:0 0}.prov{border:1px solid var(--border);height:25px;color:var(--fg-mid);font-size:11.5px;font-family:var(--font-mono);border-radius:6px;align-items:center;gap:6px;padding:0 10px;display:inline-flex}.prov .d{border-radius:50%;width:6px;height:6px}.drawer-backdrop{z-index:60;opacity:0;pointer-events:none;background:#00000073;transition:opacity .2s;position:fixed;inset:0}.drawer-backdrop.open{opacity:1;pointer-events:auto}.drawer{background:var(--bg-elev);border-left:1px solid var(--border-strong);z-index:61;flex-direction:column;width:464px;max-width:94vw;transition:transform .26s cubic-bezier(.16,1,.3,1);display:flex;position:fixed;top:0;bottom:0;right:0;transform:translate(100%)}.drawer.open{transform:translate(0);box-shadow:-18px 0 50px #0006}.dr-head{border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:10px;min-height:52px;padding:0 18px;display:flex}.dr-body{flex:1;padding:20px 18px 28px;overflow-y:auto}.dr-title{font-size:var(--fs-section);letter-spacing:-.01em;margin-bottom:6px;font-weight:600;line-height:1.35}.dr-foot{border-top:1px solid var(--border);flex-shrink:0;gap:8px;padding:13px 18px;display:flex}.term{z-index:46;background:var(--bg-elev);border:1px solid var(--border-strong);border-radius:11px;flex-direction:column;width:486px;max-width:calc(100vw - 32px);height:344px;display:none;position:fixed;bottom:48px;right:16px;overflow:hidden;box-shadow:0 18px 50px #00000080}.term.open{display:flex}.t-line{white-space:pre-wrap;word-break:break-word}.footer{border-top:1px solid var(--border);background:var(--panel);height:34px;font-size:var(--fs-label);color:var(--fg-muted);z-index:5;flex-shrink:0;align-items:center;gap:12px;padding:0 12px;display:flex;position:relative}.input{background:var(--card);border:1px solid var(--border);width:100%;color:var(--fg);font-size:var(--fs-body);border-radius:6px;outline:none;padding:8px 11px;font-family:inherit;transition:all .12s}.input:hover{border-color:var(--border-strong)}.input:focus{border-color:var(--accent-line)}.input:disabled{opacity:.5;cursor:not-allowed}@media (width<=560px){.drawer{border-left:none;width:100%;max-width:100%}}.btn{height:var(--control-h);font-size:var(--fs-body);border-radius:var(--r-md);background:var(--bg);color:var(--fg);cursor:pointer;white-space:nowrap;-webkit-user-select:none;user-select:none;transition:background var(--speed) var(--ease), border-color var(--speed) var(--ease), box-shadow var(--speed) var(--ease), color var(--speed) var(--ease);border:1px solid #0000;justify-content:center;align-items:center;gap:6px;padding:0 11px;font-family:inherit;font-weight:500;line-height:1;display:inline-flex}.btn:focus-visible{box-shadow:0 0 0 3px var(--accent-ring);outline:none}.btn .ic{flex:none;width:14px;height:14px}a.btn{text-decoration:none}.dr-body-preview{padding:0;overflow:hidden}.dr-body-preview>:not(.kx-doc-preview){display:none}.kx-doc-preview{border:0;width:100%;height:100%;display:block}.btn:hover{background:0 0;border-color:#0000}.btn[disabled]{opacity:.45;pointer-events:none}.btn-primary{background:var(--accent);color:var(--accent-fg);border-color:var(--accent)}.btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.btn-secondary{background:var(--bg);color:var(--fg);border-color:var(--border-strong);box-shadow:var(--shadow-xs)}.btn-secondary:hover{background:var(--bg-active);border-color:var(--border-hover)}.btn-success{background:var(--green-bg);color:var(--green);border-color:var(--green-border)}.btn-success:hover{background:var(--green-bg);color:var(--green);border-color:var(--green)}.btn-danger{background:var(--red-bg);color:var(--red);border-color:var(--red-border)}.btn-danger:hover{background:var(--red-bg);color:var(--red);border-color:var(--red)}.btn-link-primary,.btn-link-success,.btn-link-danger{height:var(--control-h);border-radius:var(--r-sm);background:0 0;border-color:#0000;padding:0 12px}.btn-link-primary{color:var(--fg-secondary)}.btn-link-primary:hover{background:var(--bg-active);border-color:var(--border-strong);color:var(--fg)}.btn-link-success{color:var(--green)}.btn-link-success:hover{background:var(--green-bg);border-color:var(--green-border);color:var(--green)}.btn-link-danger{color:var(--red)}.btn-link-danger:hover{background:var(--red-bg);border-color:var(--red-border);color:var(--red)}.btn-x{height:auto;font-size:var(--fs-heading);color:var(--fg-faint);background:0 0;border-color:#0000;margin-left:auto;padding:0 4px}.btn-x:hover{color:var(--fg-secondary);background:0 0;border-color:#0000}.select{height:var(--control-h);font-family:inherit;font-size:var(--fs-ui);color:var(--fg);background-color:var(--bg);border:1px solid var(--border-strong);border-radius:var(--r-md);cursor:pointer;appearance:none;transition:background-color var(--speed) var(--ease), border-color var(--speed) var(--ease), box-shadow var(--speed) var(--ease);background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2371717a' stroke-width='2.25' stroke-linecap='round' stroke-linejoin='round'><path d='m6 9 6 6 6-6'/></svg>");background-position:right 8px center;background-repeat:no-repeat;padding:0 30px 0 12px;font-weight:500;line-height:1}.select:hover{background-color:var(--bg-active);border-color:var(--border-hover)}.select:focus-visible{box-shadow:0 0 0 3px var(--accent-ring);border-color:var(--accent);outline:none}.select[disabled]{opacity:.45;pointer-events:none}.seg{background:var(--bg-muted);border:1px solid var(--border);border-radius:var(--r-md);gap:2px;padding:2px;display:inline-flex}.seg button{height:calc(var(--control-h) - 6px);font-family:inherit;font-size:var(--fs-ui);color:var(--fg-muted);border-radius:calc(var(--r-md) - 2px);cursor:pointer;white-space:nowrap;transition:background var(--speed) var(--ease), color var(--speed) var(--ease);background:0 0;border:none;padding:0 10px;font-weight:500}.seg button:hover{color:var(--fg-secondary)}.seg button.on{background:var(--bg);color:var(--fg);box-shadow:var(--shadow-xs)}.badge{height:20px;font-size:var(--fs-ui);border-radius:var(--r-pill);border:1px solid var(--border);background:var(--bg-muted);color:var(--fg-secondary);white-space:nowrap;align-items:center;gap:5px;padding:0 8px;font-weight:500;line-height:1;display:inline-flex}@keyframes kx-pulse{0%,to{opacity:1}50%{opacity:.45}}.agent{font-family:var(--font-mono);font-size:var(--fs-ui);color:var(--fg-secondary);white-space:nowrap;align-items:center;gap:6px;font-weight:500;display:inline-flex}.input{height:var(--control-h);width:100%;font-size:var(--fs-body);color:var(--fg);background:var(--bg);border:1px solid var(--border-strong);border-radius:var(--r-md);transition:border-color var(--speed) var(--ease), box-shadow var(--speed) var(--ease);outline:none;padding:0 10px;font-family:inherit}.input::placeholder{color:var(--fg-faint)}.input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-ring)}.secondary{color:var(--fg-secondary)}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.hr{background:var(--border);border:0;height:1px;margin:0}.app{grid-template-rows:1fr auto;grid-template-columns:248px 1fr;height:100%;transition:grid-template-columns .26s cubic-bezier(.4,0,.2,1);display:grid}.content{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.pad{max-width:1180px;padding:22px 26px 40px}.full{flex-direction:column;flex:1;min-height:0;display:flex}.footer{border-top:1px solid var(--border);background:var(--bg-subtle);height:30px;font-size:var(--fs-label);color:var(--fg-muted);white-space:nowrap;flex:none;grid-column:2;align-items:center;gap:14px;padding:0 14px;display:flex}@media (width<=920px){.app{grid-template-columns:1fr}.footer{grid-column:1}}.card{background:var(--bg);border:1px solid var(--border);border-radius:var(--r-lg)}.progress{background:var(--bg-active);border-radius:999px;height:6px;overflow:hidden}.progress>span{background:var(--accent);border-radius:999px;height:100%;display:block}.progress.thin{height:4px}.detail{background:var(--bg);border-left:1px solid var(--border);width:480px;max-width:94vw;box-shadow:var(--shadow-lg);z-index:92;transition:transform .2s var(--ease);flex-direction:column;display:flex;position:fixed;top:0;bottom:0;right:0;transform:translate(100%)}.detail.show{transform:translate(0)}.board{gap:12px;height:calc(100vh - 180px);padding:2px 26px 26px;display:flex;overflow-x:auto}.gate{border:1px solid var(--border);width:18px;height:18px;font-family:var(--font-mono);font-size:var(--fs-micro);color:var(--fg-faint);background:0 0;border-radius:5px;justify-content:center;align-items:center;font-weight:600;display:inline-flex}.full>.board{flex:1;height:auto;min-height:0}.reader{grid-template-columns:280px 1fr;height:calc(100vh - 150px);display:grid;overflow:hidden}.full>.reader{flex:1;height:auto;min-height:0;margin:0 26px 22px}.ic.spin{animation:.8s linear infinite kx-spin}@keyframes kx-spin{to{transform:rotate(360deg)}}.kx-shell{background:var(--bg);min-height:100vh;color:var(--fg);flex-direction:column;display:flex}.kx-header{border-bottom:1px solid var(--border);align-items:baseline;gap:10px;padding:14px 22px;display:flex}.kx-logo{width:auto;height:20px;display:block}.kx-logo-dark,:root[data-theme=dark] .kx-logo-light{display:none}:root[data-theme=dark] .kx-logo-dark{display:block}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .kx-logo-light{display:none}:root:not([data-theme=light]) .kx-logo-dark{display:block}}.kx-main{flex-direction:column;gap:18px;width:100%;max-width:860px;margin:0 auto;padding:26px 22px;display:flex}.kx-main-nav{align-items:center;gap:14px;margin-bottom:8px;display:flex}.kx-nav-status{font-size:var(--fs-ui);color:var(--fg-muted);margin-left:auto}.kx-arm-warn{font-size:var(--fs-ui);color:var(--red)}.kx-danger-zone{justify-content:flex-end;align-items:center;gap:10px;margin-top:28px;display:flex}.kx-danger-sep{font-family:var(--font-mono);font-size:var(--fs-micro);color:var(--border-strong,var(--border));-webkit-user-select:none;user-select:none}.kx-statusbar{white-space:nowrap;border-top:1px solid var(--border);background:var(--bg-subtle);height:52px;font-size:var(--fs-label);color:var(--fg-muted);flex-shrink:0;align-items:center;gap:10px;margin-top:auto;padding:0 12px;display:flex}.kx-statusbar-lines{flex-direction:column;gap:4px;min-width:0;display:flex}.kx-statusbar-line{align-items:center;gap:10px;display:flex}.kx-statusbar-line:empty{min-height:1lh}.kx-report{align-items:center;gap:10px;display:inline-flex}.kx-report svg{flex:none;margin:0 -2px}.kx-made-trigger{font:inherit;color:var(--fg-faint);cursor:pointer;background:0 0;border:0;align-items:center;gap:5px;padding:0;display:inline-flex}.kx-made-trigger:hover{color:var(--fg-muted)}.kx-made-by{color:var(--fg-faint);align-items:center;gap:5px;display:inline-flex;position:relative}.kx-support{color:var(--fg-faint);align-items:center;gap:5px;display:inline-flex}.kx-support:hover{color:var(--fg-muted)}.kx-made-pop{z-index:20;border:1px solid var(--border);border-radius:var(--r-lg);background:var(--bg);white-space:nowrap;cursor:default;flex-direction:column;gap:7px;min-width:260px;padding:12px 14px;display:flex;position:absolute;bottom:calc(100% + 10px);right:0;box-shadow:0 10px 30px #0000001f}.kx-made-pop-head{color:var(--fg-faint)}.kx-made-pop-row{color:inherit;gap:10px;text-decoration:none;display:flex}.kx-made-pop-name{min-width:62px;color:var(--fg)}.kx-made-pop-what{color:var(--fg-muted)}.kx-made-pop-link{color:var(--fg-faint);margin-top:2px;text-decoration:none}.kx-made-pop-link:hover{color:var(--fg-muted)}.kx-statusbar-link{font:inherit;cursor:pointer;color:var(--fg-faint);background:0 0;border:0;padding:0;text-decoration:none}.kx-statusbar-link:hover{color:var(--fg-muted)}.kx-dot{border-radius:50%;flex:none;width:8px;height:8px}.kx-dot-up{background:var(--green)}.kx-dot-down{background:var(--red)}.kx-status-name{color:var(--fg-muted)}.kx-status-warn{color:var(--red);text-overflow:ellipsis;min-width:0;overflow:hidden}.kx-power{color:var(--fg-faint);cursor:pointer;background:0 0;border:0;align-items:center;padding:0;display:inline-flex}.kx-power:hover,.kx-power-armed{color:var(--red)}.kx-copy-cmd{border:1px solid var(--border);border-radius:var(--r-md);font-size:var(--fs-micro);color:inherit;cursor:pointer;background:0 0;align-items:center;gap:4px;padding:1px 7px;display:inline-flex}.kx-copy-cmd:hover{border-color:var(--red)}.kx-copy-cmd-hint{opacity:.7}.kx-proj-actions{align-items:center;gap:8px;display:flex}.kx-main-head{align-items:center;gap:14px;display:flex}.kx-main-head h1{font-size:var(--fs-title);letter-spacing:-.01em;margin-right:auto;font-weight:600}.kx-main-title{flex-direction:column;gap:3px;min-width:0;margin-right:auto;display:flex}.kx-main-title h1{margin:0;line-height:1.2}.kx-grid{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px;display:grid}.kx-card{border:1px solid var(--border);border-radius:var(--r-lg);background:var(--card);cursor:pointer;text-align:left;transition:border-color var(--speed) var(--ease), background var(--speed) var(--ease);flex-direction:column;align-items:flex-start;gap:6px;padding:14px 16px;display:flex}.kx-card:hover{border-color:var(--border-strong);background:var(--bg-hover)}.kx-card-head{align-items:center;gap:9px;min-width:0;display:flex}.kx-card-code{font-size:var(--fs-label);color:var(--fg-muted);border-right:1px solid var(--border-strong);padding-right:9px;font-weight:600}.kx-card-name{font-size:var(--fs-heading);font-weight:550}.kx-card-path{font-size:var(--fs-label);color:var(--fg-faint);text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.kx-card-counts{font-size:var(--fs-micro);color:var(--fg-muted)}.kx-card-counts.done{color:var(--green)}.kx-empty{border:1px dashed var(--border);border-radius:var(--r-lg);color:var(--fg-mid);font-size:var(--fs-body);text-align:center;padding:34px 22px}.kx-siblings{flex-direction:column;gap:10px;margin-top:34px;display:flex}.kx-siblings-head{font-size:var(--fs-label);color:var(--fg-faint);align-items:center;gap:10px;display:flex}.kx-siblings-close{color:var(--fg-faint);opacity:.45;cursor:pointer;background:0 0;border:0;padding:0;display:inline-flex}.kx-siblings-close:hover{opacity:1}.kx-siblings-close-armed{color:var(--red);opacity:1}.kx-slider{border:1px solid var(--border);border-radius:var(--r-lg);background:var(--bg-subtle);font-size:var(--fs-label);align-items:center;gap:10px;padding:8px 12px;display:flex}.kx-slide{min-width:0;color:inherit;flex:1;align-items:center;gap:10px;text-decoration:none;animation:.32s kx-slide-in;display:flex}@keyframes kx-slide-in{0%{opacity:0;transform:translate(12px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.kx-slide{animation:none}}.kx-slide-name{color:var(--fg)}.kx-slide-what{color:var(--fg-muted);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.kx-slide-dots{gap:5px;display:inline-flex}.kx-slide-dot{background:var(--border-strong);cursor:pointer;border:0;border-radius:50%;width:5px;height:5px;padding:0}.kx-slide-dot-on{background:var(--fg-muted)}.kx-sib-soon{font-size:var(--fs-micro);color:var(--fg-faint)}.kx-sib-card{border:1px solid var(--border);border-radius:var(--r-lg);background:var(--bg-subtle);flex-direction:column;gap:3px;padding:13px 15px;display:flex}.kx-sib-name{font-size:var(--fs-ui);color:var(--fg)}.kx-sib-what{font-size:var(--fs-label);color:var(--fg-muted);white-space:normal}.kx-sib-foot{justify-content:space-between;align-items:center;gap:10px;margin-top:auto;padding-top:10px;display:flex}.kx-sib-tag{font-size:var(--fs-micro);color:var(--fg-faint);align-items:center;gap:5px;display:inline-flex}.kx-sib-goes{color:var(--fg-faint);display:inline-flex}a.kx-sib-card:hover .kx-sib-goes{color:var(--fg)}a.kx-sib-card{text-decoration:none}a.kx-sib-card:hover{border-color:var(--border-strong);background:var(--bg-muted)}a.kx-made-pop-row:hover .kx-made-pop-name{text-underline-offset:3px;text-decoration:underline}.kx-error{border-radius:var(--r-md);color:var(--red);font-size:var(--fs-ui);background:#cc6b6b1a;margin:10px 22px 0;padding:8px 12px}.kx-form{border:1px solid var(--border);border-radius:var(--r-lg);background:var(--card);flex-direction:column;gap:10px;max-width:480px;padding:16px;display:flex}.kx-form-row{gap:8px;display:flex}.kx-input{height:var(--control-h);border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg);color:var(--fg);font-size:var(--fs-body);padding:0 10px;font-family:inherit}.kx-input:focus-visible{box-shadow:0 0 0 3px var(--accent-ring);border-color:var(--accent);outline:none}.kx-badge{background:var(--accent);min-width:16px;height:16px;color:var(--accent-fg);font-size:var(--fs-micro);font-weight:600;font-family:var(--font-mono);border-radius:8px;justify-content:center;align-items:center;margin-left:6px;padding:0 4px;display:inline-flex}.kx-cmd-card{border:1px solid var(--border);border-radius:var(--r-lg);background:var(--card);text-align:left;width:100%;font:inherit;color:inherit;cursor:pointer;transition:border-color var(--speed) var(--ease), background var(--speed) var(--ease);flex-direction:column;gap:8px;padding:14px 16px;display:flex}.kx-cmd-card:hover{border-color:var(--border-strong);background:var(--bg-hover)}.kx-cmd-card.copied{border-color:var(--green-border);background:var(--green-bg)}.kx-cmd-head{justify-content:space-between;align-items:center;gap:10px;display:flex}.kx-cmd-title{font-size:var(--fs-heading);font-weight:600}.kx-cmd-copy{font-size:var(--fs-label);color:var(--fg-faint);white-space:nowrap}.kx-cmd-card:hover .kx-cmd-copy{color:var(--fg-secondary)}.kx-cmd-card.copied .kx-cmd-copy{color:var(--green)}.kx-cmd{border-radius:var(--r-md);background:var(--bg-inset);border:1px solid var(--border);font-size:var(--fs-ui);color:var(--fg);white-space:pre-wrap;word-break:break-word;padding:10px 12px;display:block}.kx-cmd-hint{font-size:var(--fs-label);color:var(--fg-faint)}.kx-docs{flex-direction:column;gap:18px;display:flex}.kx-doc-group{font-size:var(--fs-label);text-transform:uppercase;letter-spacing:.06em;color:var(--fg-faint);margin-bottom:8px;font-weight:600}.kx-doc-details>summary.kx-doc-group{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;margin-bottom:4px;padding:6px 0;list-style:none;display:flex}.kx-doc-details>summary.kx-doc-group::-webkit-details-marker{display:none}.kx-doc-details>summary.kx-doc-group:before{content:"▸";font-size:var(--fs-micro);color:var(--fg-faint);transition:transform var(--speed) var(--ease);display:inline-block}.kx-doc-details[open]>summary.kx-doc-group:before{transform:rotate(90deg)}.kx-doc-count{font-size:var(--fs-label);text-transform:none;letter-spacing:0;margin-left:auto;font-weight:500}.kx-doc-row{border:1px solid var(--border);border-radius:var(--r-md);background:var(--card);cursor:pointer;text-align:left;width:100%;transition:border-color var(--speed) var(--ease);align-items:center;gap:10px;margin-bottom:5px;padding:9px 12px;font-family:inherit;display:flex}.kx-doc-row:hover{border-color:var(--border-strong);background:var(--bg-hover)}.kx-doc-name{font-size:var(--fs-body);color:var(--fg);font-weight:550}.kx-doc-author{font-size:var(--fs-micro);color:var(--fg-faint)}.kx-doc-spacer{flex:1}.kx-status{height:20px;font-size:var(--fs-ui);border-radius:var(--r-sm);border:1px solid var(--border);background:var(--bg-muted);color:var(--fg-secondary);white-space:nowrap;align-items:center;gap:5px;padding:0 8px;font-weight:500;line-height:1;display:inline-flex}.kx-status:before{content:"";background:currentColor;border-radius:999px;flex:none;width:6px;height:6px}.kx-status-writing,.kx-status-reading{background:var(--blue-bg);border-color:var(--blue-border,var(--blue-bg));color:var(--blue)}.kx-status-writing:before,.kx-status-reading:before{animation:1.4s ease-in-out infinite kx-pulse}.kx-status-paused{background:var(--amber-bg);border-color:var(--amber-border);color:var(--amber)}.kx-status-draft{background:var(--violet-bg);border-color:var(--violet-border);color:var(--violet)}.kx-status-approved{background:var(--green-bg);border-color:var(--green-border);color:var(--green)}.kx-status-failed{background:var(--red-bg);border-color:var(--red-border);color:var(--red)}.kx-status-waiting{background:var(--bg-muted);color:var(--fg-secondary)}.kx-status-not-applicable{color:var(--fg-muted);background:0 0}.kx-doc-changebar .kx-thread{background:var(--bg-surface,transparent);margin-top:8px}.kx-doc-readbar{margin:var(--sp-3) 0 8px;border-radius:var(--r-md);background:var(--blue-bg);color:var(--fg-secondary);font-size:var(--fs-ui);flex-direction:column;gap:4px;padding:8px 12px;display:flex}.kx-readbar-head{font-family:var(--font-mono);color:var(--blue);font-weight:600;font-size:var(--fs-micro);letter-spacing:.06em;text-transform:uppercase}.kx-doc-readbar .mono{color:var(--blue)}.kx-doc-readbar .kx-reader-unwritten{color:var(--fg-muted)}.kx-doc-dependbar{margin:var(--sp-3) 0 8px;border-radius:var(--r-md);border:1px solid var(--pink-border);color:var(--fg-secondary);font-size:var(--fs-ui);background:0 0;padding:8px 12px}.kx-doc-dependbar .mono{color:var(--pink)}.kx-badge{height:20px;font-family:var(--font-sans);font-size:var(--fs-ui);border-radius:var(--r-pill);border:1px solid #0000;align-items:center;margin-left:0;padding:0 8px;font-weight:500;line-height:1;display:inline-flex}.kx-badge-approve{color:var(--violet);border-color:var(--violet-border);background:var(--violet-bg)}.kx-badge-review{color:var(--pink);border-color:var(--pink-border);background:var(--pink-bg)}.kx-badge-recheck{color:var(--amber);border-color:var(--amber-border);background:var(--amber-bg)}.kx-badge-revision{color:var(--fg-muted);background:var(--bg-muted);border-color:var(--border)}.kx-badge-change{background:var(--pink-bg);color:var(--pink);border-color:var(--pink-border,transparent)}.dr-head{justify-content:space-between;align-items:flex-start;gap:var(--sp-3);padding:var(--sp-4) 18px;border-bottom:1px solid var(--border);display:flex}.dr-ident{flex-direction:column;gap:2px;min-width:0;display:flex}.dr-ident .kx-doc-author{font-size:var(--fs-label)}.dr-title{align-items:center;gap:var(--sp-2);min-width:0;font-size:var(--fs-title);flex-wrap:wrap;font-weight:650;display:flex}.dr-actions{flex-shrink:0;gap:6px;display:flex}.dr-body{flex:1;min-height:0;padding:18px;overflow-y:auto}.dr-foot{border-top:1px solid var(--border);background:var(--bg-subtle);flex-direction:column;flex:none;gap:8px;padding:12px 18px;display:flex}@media (width<=480px){.dr-head{flex-wrap:wrap}.dr-actions{margin-left:auto}}.kx-block:focus-visible{outline:2px solid var(--fg);outline-offset:2px}.kx-doc{font-size:var(--fs-body);flex-direction:column;gap:2px;line-height:1.55;display:flex}.kx-block{cursor:pointer;border-radius:5px;padding:3px 8px}.kx-qno{min-width:1.4em;margin-right:var(--sp-2);color:var(--fg-faint);font-size:var(--fs-label);display:inline-block}.kx-block:hover{background:var(--bg-hover)}.kx-block.selected{background:var(--bg-hover);box-shadow:inset 3px 0 0 var(--blue);border-radius:0}.kx-block.noted{color:var(--fg-faint)}.kx-h1{font-size:var(--fs-title);letter-spacing:-.01em;margin:8px 0 6px;font-weight:600}.kx-h2{font-size:var(--fs-section);margin:14px 0 2px;font-weight:600}.kx-h3{font-size:var(--fs-heading);margin:8px 0 2px;font-weight:600}.kx-h4{align-items:center;gap:var(--sp-2);font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:.06em;text-transform:uppercase;color:var(--fg-secondary);margin-top:10px;font-weight:600;display:flex}.kx-h4:after{content:"";border-top:1px solid var(--border);flex:1}.kx-quote{color:var(--fg-secondary);box-shadow:inset 2px 0 0 var(--border-strong);border-radius:0;margin-left:8px;padding-left:12px}.kx-bullet{text-indent:-16px;padding-left:24px}.kx-bullet:before{content:"–";text-indent:0;width:16px;color:var(--fg-faint);display:inline-block}.kx-ordered{flex-wrap:wrap;align-items:baseline;padding-left:8px;display:flex}.kx-ol-n{width:22px;font-size:var(--fs-label);color:var(--fg-muted);flex:none}.kx-ordered>.kx-removed-body{width:100%;padding-left:22px}.kx-block.kx-numbered{text-indent:0;padding-left:8px}.kx-block.kx-numbered:before{content:none}.kx-codewrap{background:var(--bg-inset);border:1px solid var(--border);border-radius:var(--r-md);padding:10px 12px;position:relative}.kx-codewrap pre{font-family:var(--font-mono);font-size:var(--fs-ui);white-space:pre;margin:0;line-height:1.55;overflow-x:auto}.kx-copy{border:1px solid var(--border);border-radius:var(--r-sm,5px);background:var(--bg);color:var(--fg-muted);font-size:var(--fs-label);cursor:pointer;opacity:0;align-items:center;gap:4px;padding:3px 7px;transition:opacity .12s;display:flex;position:absolute;top:6px;right:6px}.kx-codewrap:hover .kx-copy,.kx-copy:focus-visible{opacity:1}.kx-copy:hover{color:var(--fg);border-color:var(--border-strong)}.kx-copy-label{line-height:1}.kx-block code,.kx-req-text code{font-family:var(--font-mono);background:var(--bg-inset);border-radius:4px;padding:.12em .34em;font-size:.9em}.kx-codewrap pre code,.kx-alert-head code{background:0 0;padding:0}.kx-bullet+.kx-bullet,.kx-ordered+.kx-ordered{margin-top:2px}.kx-mermaid{border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg);padding:12px;overflow-x:auto}.kx-mermaid-svg{justify-content:center;display:flex}.kx-mermaid-svg svg{max-width:100%;height:auto}.kx-table table{border-collapse:collapse;font-size:var(--fs-ui);width:100%}.kx-table th,.kx-table td{text-align:left;vertical-align:top;border-bottom:1px solid var(--border);padding:6px 10px 6px 0}.kx-table th{font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:.06em;text-transform:uppercase;color:var(--fg-secondary);border-bottom-color:var(--border-strong);font-weight:600}.kx-blank{height:8px}.kx-editor{width:100%;min-height:60vh;font-size:var(--fs-ui);border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg);color:var(--fg);resize:vertical;padding:12px;line-height:1.6}.kx-editor::-webkit-resizer{background:var(--bg)}.kx-notes{flex-direction:column;flex:none;gap:5px;max-height:150px;display:flex;overflow-y:auto}.kx-note .btn-x{flex:none}.kx-notes-title{font-size:var(--fs-micro);letter-spacing:.06em;text-transform:uppercase;color:var(--fg-secondary);font-weight:600}.kx-note{align-items:center;gap:var(--sp-2);font-size:var(--fs-ui);padding:var(--sp-2) var(--sp-3);background:var(--card);border:1px solid var(--border);border-radius:var(--r-md);display:flex}.kx-note[role=button]{cursor:pointer}.kx-note[role=button]:hover{border-color:var(--border-strong)}.kx-note-body{flex:1;min-width:0}.kx-note-exc{font-size:var(--fs-label);color:var(--fg-muted);white-space:nowrap;text-transform:uppercase;letter-spacing:.04em;flex-shrink:0}button.kx-note-exc{cursor:pointer;background:0 0;border:0;padding:0}button.kx-note-exc:hover{color:var(--fg-base);text-decoration:underline}.kx-note-input{align-items:center;gap:var(--sp-2);justify-content:flex-end;display:flex}.kx-note-input .kx-input{flex:1}.kx-plan{flex-direction:column;gap:14px;display:flex}.kx-plan-row{border:1px solid var(--border);border-radius:var(--r-md);background:var(--card);align-items:center;gap:10px;padding:10px 12px;display:flex}.kx-form{max-width:640px}.kx-path{flex:1}.kx-brief{flex-direction:column;gap:6px;display:flex}.kx-brief-head .seg{flex:none}.kx-brief-head{gap:var(--sp-3);justify-content:space-between;align-items:center;display:flex}.kx-brief-text{min-height:180px;font-size:var(--fs-ui)}.kx-drop{border:1.5px dashed var(--border-strong);border-radius:var(--r-lg);background:var(--bg-subtle);min-height:120px;font-size:var(--fs-ui);color:var(--fg-mid);cursor:pointer;text-align:center;justify-content:center;align-items:center;padding:16px;display:flex;position:relative}.kx-drop:hover{background:var(--bg-hover);border-color:var(--gray-400)}.kx-drop input[type=file]{opacity:0;cursor:pointer;position:absolute;inset:0}.kx-theme{border-radius:var(--r-md);width:29px;height:29px;color:var(--fg-muted);cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;display:inline-flex}.kx-theme:hover{background:var(--bg-hover);color:var(--fg)}.kx-engine{font-size:var(--fs-ui);color:var(--fg-mid);align-items:center;gap:6px;display:inline-flex}.kx-engine-select{font-family:var(--font-mono)}.kx-update{border-radius:var(--r-md);border:1px solid var(--border);font-size:var(--fs-ui);align-items:center;gap:10px;margin:10px 22px 0;padding:8px 12px;display:flex}.kx-update-err{color:var(--red);font-size:var(--fs-label)}.kx-engine-warn{font-size:var(--fs-label);color:var(--red);border-radius:var(--r-md);background:#cc6b6b14;padding:4px 10px}.kx-engine-warn code{font-size:var(--fs-micro)}.kx-running{font-size:var(--fs-ui);color:var(--accent);animation:1.4s ease-in-out infinite kx-pulse}.kx-doc-row.failed{border-color:#cc6b6b80}.kx-doc-why{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:var(--fs-micro);color:var(--red);flex:1 1 0;overflow:hidden}.kx-doc-fail{font-size:var(--fs-micro);color:var(--red);background:#cc6b6b1a;border-radius:5px;padding:2px 7px}.kx-code-input{flex:none;width:130px}.kx-field{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.kx-code-field{flex:none}.kx-field .kx-input{width:100%}.kx-field-err{color:var(--red);font-size:var(--fs-label)}.kx-input-bad,.kx-input-bad:focus{border-color:var(--red)}.kx-explain{padding:var(--sp-3);border-left:2px solid var(--border);background:var(--bg-subtle);font-size:var(--fs-ui);flex-direction:column;gap:2px;margin:0;display:flex}.kx-explain-q{color:var(--fg);font-weight:600}.kx-explain-a{color:var(--fg-mid);white-space:pre-wrap;line-height:1.5}.kx-thread{margin:var(--sp-3) 8px var(--sp-4) 8px;gap:var(--sp-3);flex-direction:column;display:flex}.kx-thread-input{gap:var(--sp-3);flex-direction:column;display:flex}.kx-thread-actions{gap:var(--sp-2);justify-content:flex-end;display:flex}.kx-thread-text{height:auto;min-height:var(--control-h);resize:vertical;padding:var(--sp-2) var(--sp-3);font-family:inherit;line-height:1.5}.kx-explain-who{font-size:var(--fs-micro);color:var(--fg-faint);letter-spacing:.02em}.kx-thread-input .kx-input{height:30px;font-size:var(--fs-ui);flex:1}.kx-version{font-size:var(--fs-micro);color:var(--fg-muted)}.kx-card-action{margin-left:auto}.kx-doc-changebar{margin:var(--sp-3) 0 8px;border-radius:var(--r-md);background:var(--amber-bg);border:1px solid var(--amber-border);font-size:var(--fs-ui);flex-direction:column;gap:8px;padding:10px 12px;display:flex}.kx-changebar-title{color:var(--amber);font-weight:600;font-size:var(--fs-micro);letter-spacing:.06em;text-transform:uppercase}.kx-changebar-title+.kx-changebar-head{margin-top:-4px}.kx-changebar-head{color:var(--amber);font-weight:600}.kx-changebar-list{flex-direction:column;gap:10px;margin:0;padding-left:0;list-style:none;display:flex}.kx-changebar-list>li{column-gap:var(--sp-2);grid-template-columns:auto 1fr;align-items:baseline;display:grid}.kx-changebar-list>li>.kx-thread{grid-column:2}.kx-req-check{cursor:pointer;margin:0;position:relative;top:2px}.kx-req-check,.kx-task-box{appearance:none;border-radius:var(--r-sm);border:1px solid var(--border-strong);background:var(--bg);width:16px;height:16px;transition:background var(--speed) var(--ease), border-color var(--speed) var(--ease);flex:none}.kx-req-check:checked,.kx-task-box:checked{background-color:var(--accent);border-color:var(--accent);background-image:none}.kx-req-check:checked:after,.kx-task-box:checked:after{content:"";background:var(--accent-fg);width:100%;height:100%;display:block;-webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><path d='M20 6 9 17l-5-5'/></svg>") 50%/11px 11px no-repeat;mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><path d='M20 6 9 17l-5-5'/></svg>") 50%/11px 11px no-repeat}.kx-changebar-group{align-items:center;gap:var(--sp-2);font-size:var(--fs-micro);letter-spacing:.06em;text-transform:uppercase;color:var(--fg-secondary);font-weight:600;display:flex}.kx-changebar-group:after{content:"";border-top:1px solid var(--amber-border);flex:1}.kx-changebar-group+.kx-changebar-list{margin-top:-4px}.kx-req-state{font-size:var(--fs-micro);color:var(--fg-muted);margin-left:6px}.kx-changebar-actions{flex-wrap:wrap;align-items:center;gap:6px;margin-top:6px;display:flex}.kx-changebar-actions .kx-cmd-hint{margin-right:auto}.kx-changebar-summary{color:var(--fg-secondary);font-size:var(--fs-ui);margin-right:auto}.kx-outcome{font-size:var(--fs-micro);letter-spacing:.04em;text-transform:uppercase;margin-right:var(--sp-2);border:1px solid #0000;border-radius:999px;flex:none;align-self:baseline;padding:1px 6px;font-weight:600}.kx-outcome-outgoing{color:var(--fg-muted);background:var(--bg-muted);border-color:var(--border)}.kx-outcome-waiting{color:var(--amber);background:var(--amber-bg);border-color:var(--amber-border)}.kx-outcome-accepted{color:var(--green);background:var(--green-bg);border-color:var(--green-border,transparent)}.kx-outcome-denied{color:var(--red);background:var(--red-bg);border-color:var(--red-border)}.kx-block.kx-decision-request:before{content:none}.kx-block.kx-decision-request{text-indent:0;margin-top:6px;padding-left:8px}.kx-decision-why{color:var(--fg-secondary);margin-top:2px}.kx-decision-why-label{color:var(--fg-muted)}.kx-decision{font-weight:600}.kx-decision-accept{color:var(--green)}.kx-decision-deny{color:var(--red)}.kx-removed-toggle{margin-left:var(--sp-2);color:var(--green);font-size:var(--fs-label);background:0 0;border:0;padding:0}button.kx-removed-toggle{cursor:pointer}button.kx-removed-toggle:hover{text-decoration:underline}.kx-removed-body{text-indent:0;color:var(--fg-muted);font-size:var(--fs-label);white-space:pre-wrap;margin-top:4px}.kx-new-mark{margin-left:var(--sp-2);color:var(--fg-faint);font-size:var(--fs-label)}.kx-req-text{cursor:pointer}.kx-req-text:hover{text-decoration:underline;-webkit-text-decoration-color:var(--border-strong);text-decoration-color:var(--border-strong)}.kx-req-open>.kx-req-text{font-weight:600}.kx-doc-askbar{margin:var(--sp-4) 18px 0;padding:var(--sp-2) var(--sp-3);border-radius:var(--r-md);background:var(--amber-bg);border:1px solid var(--amber-border);color:var(--amber);font-size:var(--fs-ui)}.kx-block.open-q{background:0 0}.kx-block.kx-h2.open-q{background:0 0;font-weight:650}.kx-block.open-q+.kx-blank,.kx-block.open-q.noted{background:0 0}.kx-archive{margin:18px 22px 0}.kx-archive>.kx-doc-group{color:var(--fg-muted,inherit)}.kx-archive .kx-grid{margin-top:10px;padding:0}.kx-archive .kx-card{opacity:.72}.kx-gate{border-radius:var(--r-lg);background:var(--blue-bg);border:none;flex-direction:column;align-items:flex-start;gap:10px;padding:18px;display:flex}.kx-gate h3{font-size:var(--fs-heading);color:var(--blue);margin:0;font-weight:650}.kx-gate p{font-size:var(--fs-ui);color:var(--blue);opacity:.8;max-width:68ch;margin:0}.kx-gate-questions{font-size:var(--fs-body);flex-direction:column;gap:6px;margin:2px 0;padding-left:18px;display:flex}.kx-handshake{border-radius:var(--r-lg);background:#34925a0f;border:1px solid #34925a59;flex-direction:column;gap:14px;padding:18px;display:flex}.kx-handshake-head{flex-direction:column;gap:4px;display:flex}.kx-handshake-title{font-size:var(--fs-heading);color:var(--green,#2f7d4f);font-weight:650}.kx-handshake-count{font-size:var(--fs-label);color:var(--fg-secondary)}.kx-handshake-kopeng{align-items:center;gap:12px;display:flex}.kx-handshake-cards{flex-direction:column;gap:8px;display:flex}.kx-handshake-plan{border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg);flex-direction:column;gap:10px;padding:12px 14px;display:flex}.kx-diff-bar{align-items:center;gap:var(--sp-2);margin:var(--sp-3) 0 var(--sp-2);display:flex}.kx-diff-pick{font-size:var(--fs-label);color:var(--fg-secondary);border:1px solid var(--border);border-radius:var(--r-sm);background:0 0;padding:2px 6px}.kx-diff-pick:hover,.kx-diff-pick:focus{border-color:var(--border-strong)}.kx-diff{border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg);min-height:60vh;font-size:var(--fs-ui);padding:12px 0;line-height:1.6;overflow:auto}.kx-diff>div{gap:var(--sp-2);white-space:pre-wrap;min-height:1.6em;padding:0 12px;display:flex}.kx-diff-sign{opacity:.7;flex-shrink:0;width:1ch}.kx-diff-same{color:var(--fg)}.kx-diff-del{background:var(--red-bg);color:var(--red)}.kx-diff-add{background:var(--green-bg);color:var(--green)}.kx-task{gap:var(--sp-2);text-indent:0;align-items:baseline;padding-left:20px;display:flex}.kx-task:before{content:none}.kx-task-text{min-width:0}.kx-task-box{pointer-events:none;margin:0;position:relative;top:2px}.kx-alert{box-shadow:inset 2px 0 0 var(--kx-alert);border-radius:0;margin:4px 0 4px 8px;padding:2px 12px}.kx-alert-head{color:var(--kx-alert);font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:.06em;text-transform:uppercase;margin-bottom:2px;font-weight:600;display:block}.kx-alert-icon{display:none}.kx-alert-body{color:var(--fg);white-space:pre-wrap}.kx-alert-note{--kx-alert:var(--blue);--kx-alert-bg:var(--blue-bg)}.kx-alert-tip{--kx-alert:var(--green);--kx-alert-bg:var(--green-bg)}.kx-alert-important{--kx-alert:var(--violet);--kx-alert-bg:var(--violet-bg)}.kx-alert-warning{--kx-alert:var(--amber);--kx-alert-bg:var(--amber-bg)}.kx-alert-caution{--kx-alert:var(--red);--kx-alert-bg:var(--red-bg)}.hl-com{color:var(--fg-faint);font-style:italic}.hl-str{color:var(--green)}.hl-kw{color:var(--violet);font-weight:500}.hl-key{color:var(--blue)}.hl-num{color:var(--amber)}.hl-flag{color:var(--fg-muted)}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import"./chunk-FOHPRMQF-DHwB1DNv.js";import{w as e}from"./mermaid-parser.core-BDC4bG-O.js";export{e as createInfoServices};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{n as e}from"./mermaid-parser.core-BDC4bG-O.js";import{n as t}from"./chunk-Y2CYZVJY-DsF7k-Jl.js";import{m as n}from"./src-7TsfZXRO.js";import{c as r}from"./chunk-DU6HZSFF-Cq2BVv26.js";import{f as i}from"./mermaid.core-DZY3WwzX.js";var a={parse:t(async t=>{let r=await e(`info`,t);n.debug(r)},`parse`)},o={version:`11.17.2`},s={parser:a,db:{getVersion:t(()=>o.version,`getVersion`)},renderer:{draw:t((e,t,a)=>{n.debug(`rendering info diagram
|
|
2
|
+
`+e);let o=i(t);r(o,100,400,!0),o.append(`g`).append(`text`).attr(`x`,100).attr(`y`,40).attr(`class`,`version`).attr(`font-size`,32).style(`text-anchor`,`middle`).text(`v${a}`)},`draw`)}};export{s as diagram};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
function e(e,t){switch(arguments.length){case 0:break;case 1:this.range(e);break;default:this.range(t).domain(e)}return this}export{e as t};
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import{n as e}from"./chunk-Y2CYZVJY-DsF7k-Jl.js";import"./src-7TsfZXRO.js";import{H as t,K as n,U as r,a as i,c as a,s as o,v as s,w as c,x as l,y as u}from"./chunk-DU6HZSFF-Cq2BVv26.js";import{p as d}from"./chunk-75Z2AOVW-CbNT4sDh.js";import{t as f}from"./rough.esm-Dy-Kn_BL.js";import{f as p}from"./mermaid.core-DZY3WwzX.js";var m=(function(){var t=e(function(e,t,n,r){for(n||={},r=e.length;r--;n[e[r]]=t);return n},`o`),n=[1,4],r=[1,14],i=[1,12],a=[1,13],o=[6,7,8],s=[1,20],c=[1,18],l=[1,19],u=[6,7,11],d=[1,6,13,14],f=[1,23],p=[1,24],m=[1,6,7,11,13,14],h={trace:e(function(){},`trace`),yy:{},symbols_:{error:2,start:3,ishikawa:4,spaceLines:5,SPACELINE:6,NL:7,ISHIKAWA:8,document:9,stop:10,EOF:11,statement:12,SPACELIST:13,TEXT:14,$accept:0,$end:1},terminals_:{2:`error`,6:`SPACELINE`,7:`NL`,8:`ISHIKAWA`,11:`EOF`,13:`SPACELIST`,14:`TEXT`},productions_:[0,[3,1],[3,2],[5,1],[5,2],[5,2],[4,2],[4,3],[10,1],[10,1],[10,1],[10,2],[10,2],[9,3],[9,2],[12,2],[12,1],[12,1],[12,1]],performAction:e(function(e,t,n,r,i,a,o){var s=a.length-1;switch(i){case 6:case 7:return r;case 15:r.addNode(a[s-1].length,a[s].trim());break;case 16:r.addNode(0,a[s].trim())}},`anonymous`),table:[{3:1,4:2,5:3,6:[1,5],8:n},{1:[3]},{1:[2,1]},{4:6,6:[1,7],7:[1,8],8:n},{6:r,7:[1,10],9:9,12:11,13:i,14:a},t(o,[2,3]),{1:[2,2]},t(o,[2,4]),t(o,[2,5]),{1:[2,6],6:r,12:15,13:i,14:a},{6:r,9:16,12:11,13:i,14:a},{6:s,7:c,10:17,11:l},t(u,[2,18],{14:[1,21]}),t(u,[2,16]),t(u,[2,17]),{6:s,7:c,10:22,11:l},{1:[2,7],6:r,12:15,13:i,14:a},t(d,[2,14],{7:f,11:p}),t(m,[2,8]),t(m,[2,9]),t(m,[2,10]),t(u,[2,15]),t(d,[2,13],{7:f,11:p}),t(m,[2,11]),t(m,[2,12])],defaultActions:{2:[2,1],6:[2,2]},parseError:e(function(e,t){if(t.recoverable)this.trace(e);else{var n=Error(e);throw n.hash=t,n}},`parseError`),parse:e(function(t){var n=this,r=[0],i=[],a=[null],o=[],s=this.table,c=``,l=0,u=0,d=0,f=2,p=1,m=o.slice.call(arguments,1),h=Object.create(this.lexer),g={yy:{}};for(var _ in this.yy)Object.prototype.hasOwnProperty.call(this.yy,_)&&(g.yy[_]=this.yy[_]);h.setInput(t,g.yy),g.yy.lexer=h,g.yy.parser=this,h.yylloc===void 0&&(h.yylloc={});var v=h.yylloc;o.push(v);var y=h.options&&h.options.ranges;this.parseError=typeof g.yy.parseError==`function`?g.yy.parseError:Object.getPrototypeOf(this).parseError;function b(e){r.length-=2*e,a.length-=e,o.length-=e}e(b,`popStack`);function x(){var e=i.pop()||h.lex()||p;return typeof e!=`number`&&(e instanceof Array&&(i=e,e=i.pop()),e=n.symbols_[e]||e),e}e(x,`lex`);for(var S,C,w,T,E,D={},O,k,A,j;;){if(w=r[r.length-1],this.defaultActions[w]?T=this.defaultActions[w]:(S??=x(),T=s[w]&&s[w][S]),T===void 0||!T.length||!T[0]){var M=``;for(O in j=[],s[w])this.terminals_[O]&&O>f&&j.push(`'`+this.terminals_[O]+`'`);M=h.showPosition?`Parse error on line `+(l+1)+`:
|
|
2
|
+
`+h.showPosition()+`
|
|
3
|
+
Expecting `+j.join(`, `)+`, got '`+(this.terminals_[S]||S)+`'`:`Parse error on line `+(l+1)+`: Unexpected `+(S==p?`end of input`:`'`+(this.terminals_[S]||S)+`'`),this.parseError(M,{text:h.match,token:this.terminals_[S]||S,line:h.yylineno,loc:v,expected:j})}if(T[0]instanceof Array&&T.length>1)throw Error(`Parse Error: multiple actions possible at state: `+w+`, token: `+S);switch(T[0]){case 1:r.push(S),a.push(h.yytext),o.push(h.yylloc),r.push(T[1]),S=null,C?(S=C,C=null):(u=h.yyleng,c=h.yytext,l=h.yylineno,v=h.yylloc,d>0&&d--);break;case 2:if(k=this.productions_[T[1]][1],D.$=a[a.length-k],D._$={first_line:o[o.length-(k||1)].first_line,last_line:o[o.length-1].last_line,first_column:o[o.length-(k||1)].first_column,last_column:o[o.length-1].last_column},y&&(D._$.range=[o[o.length-(k||1)].range[0],o[o.length-1].range[1]]),E=this.performAction.apply(D,[c,u,l,g.yy,T[1],a,o].concat(m)),E!==void 0)return E;k&&(r=r.slice(0,-1*k*2),a=a.slice(0,-1*k),o=o.slice(0,-1*k)),r.push(this.productions_[T[1]][0]),a.push(D.$),o.push(D._$),A=s[r[r.length-2]][r[r.length-1]],r.push(A);break;case 3:return!0}}return!0},`parse`)};h.lexer=(function(){return{EOF:1,parseError:e(function(e,t){if(this.yy.parser)this.yy.parser.parseError(e,t);else throw Error(e)},`parseError`),setInput:e(function(e,t){return this.yy=t||this.yy||{},this._input=e,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match=``,this.conditionStack=[`INITIAL`],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},`setInput`),input:e(function(){var e=this._input[0];return this.yytext+=e,this.yyleng++,this.offset++,this.match+=e,this.matched+=e,e.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),e},`input`),unput:e(function(e){var t=e.length,n=e.split(/(?:\r\n?|\n)/g);this._input=e+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-t),this.offset-=t;var r=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),n.length-1&&(this.yylineno-=n.length-1);var i=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===r.length?this.yylloc.first_column:0)+r[r.length-n.length].length-n[0].length:this.yylloc.first_column-t},this.options.ranges&&(this.yylloc.range=[i[0],i[0]+this.yyleng-t]),this.yyleng=this.yytext.length,this},`unput`),more:e(function(){return this._more=!0,this},`more`),reject:e(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError(`Lexical error on line `+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).
|
|
4
|
+
`+this.showPosition(),{text:``,token:null,line:this.yylineno});return this},`reject`),less:e(function(e){this.unput(this.match.slice(e))},`less`),pastInput:e(function(){var e=this.matched.substr(0,this.matched.length-this.match.length);return(e.length>20?`...`:``)+e.substr(-20).replace(/\n/g,``)},`pastInput`),upcomingInput:e(function(){var e=this.match;return e.length<20&&(e+=this._input.substr(0,20-e.length)),(e.substr(0,20)+(e.length>20?`...`:``)).replace(/\n/g,``)},`upcomingInput`),showPosition:e(function(){var e=this.pastInput(),t=Array(e.length+1).join(`-`);return e+this.upcomingInput()+`
|
|
5
|
+
`+t+`^`},`showPosition`),test_match:e(function(e,t){var n,r,i;if(this.options.backtrack_lexer&&(i={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(i.yylloc.range=this.yylloc.range.slice(0))),r=e[0].match(/(?:\r\n?|\n).*/g),r&&(this.yylineno+=r.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:r?r[r.length-1].length-r[r.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+e[0].length},this.yytext+=e[0],this.match+=e[0],this.matches=e,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(e[0].length),this.matched+=e[0],n=this.performAction.call(this,this.yy,this,t,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),n)return n;if(this._backtrack){for(var a in i)this[a]=i[a];return!1}return!1},`test_match`),next:e(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var e,t,n,r;this._more||(this.yytext=``,this.match=``);for(var i=this._currentRules(),a=0;a<i.length;a++)if(n=this._input.match(this.rules[i[a]]),n&&(!t||n[0].length>t[0].length)){if(t=n,r=a,this.options.backtrack_lexer){if(e=this.test_match(n,i[a]),e!==!1)return e;if(this._backtrack){t=!1;continue}return!1}if(!this.options.flex)break}return t?(e=this.test_match(t,i[r]),e!==!1&&e):this._input===``?this.EOF:this.parseError(`Lexical error on line `+(this.yylineno+1)+`. Unrecognized text.
|
|
6
|
+
`+this.showPosition(),{text:``,token:null,line:this.yylineno})},`next`),lex:e(function(){return this.next()||this.lex()},`lex`),begin:e(function(e){this.conditionStack.push(e)},`begin`),popState:e(function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},`popState`),_currentRules:e(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},`_currentRules`),topState:e(function(e){return e=this.conditionStack.length-1-Math.abs(e||0),e>=0?this.conditionStack[e]:`INITIAL`},`topState`),pushState:e(function(e){this.begin(e)},`pushState`),stateStackSize:e(function(){return this.conditionStack.length},`stateStackSize`),options:{"case-insensitive":!0},performAction:e(function(e,t,n,r){switch(n){case 0:return 6;case 1:return 8;case 2:return 8;case 3:return 6;case 4:return 7;case 5:return 13;case 6:return 14;case 7:return 11}},`anonymous`),rules:[/^(?:\s*%%.*)/i,/^(?:ishikawa-beta\b)/i,/^(?:ishikawa\b)/i,/^(?:[\s]+[\n])/i,/^(?:[\n]+)/i,/^(?:[\s]+)/i,/^(?:[^\n]+)/i,/^(?:$)/i],conditions:{INITIAL:{rules:[0,1,2,3,4,5,6,7],inclusive:!0}}}})();function g(){this.yy={}}return e(g,`Parser`),g.prototype=h,h.Parser=g,new g})();m.parser=m;var h=m,g=class{constructor(){this.stack=[],this.clear=this.clear.bind(this),this.addNode=this.addNode.bind(this),this.getRoot=this.getRoot.bind(this)}static{e(this,`IshikawaDB`)}clear(){this.root=void 0,this.stack=[],this.baseLevel=void 0,i()}getRoot(){return this.root}addNode(e,t){let r=o.sanitizeText(t,l());if(!this.root){this.root={text:r,children:[]},this.stack=[{level:0,node:this.root}],n(r);return}this.baseLevel??=e;let i=e-this.baseLevel+1;for(i<=0&&(i=1);this.stack.length>1&&this.stack[this.stack.length-1].level>=i;)this.stack.pop();let a=this.stack[this.stack.length-1].node,s={text:r,children:[]};a.children.push(s),this.stack.push({level:i,node:s})}getAccTitle(){return u()}setAccTitle(e){r(e)}getAccDescription(){return s()}setAccDescription(e){t(e)}getDiagramTitle(){return c()}setDiagramTitle(e){n(e)}},_=14,v=250,y=30,b=60,x=5,S=82*Math.PI/180,C=Math.cos(S),w=Math.sin(S),T=e((e,t,n)=>{let r=e.node().getBBox(),i=r.width+t*2,o=r.height+t*2;a(e,o,i,n),e.attr(`viewBox`,`${r.x-t} ${r.y-t} ${i} ${o}`)},`applyPaddedViewBox`),E=e((e,t,n,r)=>{let i=r.db.getRoot();if(!i)return;let a=l(),{look:o,handDrawnSeed:s,themeVariables:c}=a,u=d(a.fontSize)[0]??_,m=o===`handDrawn`,h=i.children??[],g=a.ishikawa?.diagramPadding??20,y=a.ishikawa?.useMaxWidth??!1,b=p(t),x=b.append(`g`).attr(`class`,`ishikawa`),S=m?f.svg(b.node()):void 0,C=S?{roughSvg:S,seed:s??0,lineColor:c?.lineColor??`#333`,fillColor:c?.mainBkg??`#fff`}:void 0,w=`ishikawa-arrow-${t}`;m||x.append(`defs`).append(`marker`).attr(`id`,w).attr(`viewBox`,`0 0 10 10`).attr(`refX`,0).attr(`refY`,5).attr(`markerWidth`,6).attr(`markerHeight`,6).attr(`orient`,`auto`).append(`path`).attr(`d`,`M 10 0 L 0 5 L 10 10 Z`).attr(`class`,`ishikawa-arrow`);let E=0,k=v,A=m?void 0:L(x,E,k,E,k,`ishikawa-spine`);if(O(x,E,k,i.text,u,C),!h.length){m&&L(x,E,k,E,k,`ishikawa-spine`,C),T(b,g,y);return}E-=20;let j=h.filter((e,t)=>t%2==0),N=h.filter((e,t)=>t%2==1),P=D(j),F=D(N),I=P.total+F.total,R=v,z=v;if(I>0){let e=v*2,t=v*.3;R=Math.max(t,e*(P.total/I)),z=Math.max(t,e*(F.total/I))}let B=u*2;R=Math.max(R,P.max*B),z=Math.max(z,F.max*B),k=Math.max(R,v),A&&A.attr(`y1`,k).attr(`y2`,k),x.select(`.ishikawa-head-group`).attr(`transform`,`translate(0,${k})`);let V=Math.ceil(h.length/2);for(let e=0;e<V;e++){let t=x.append(`g`).attr(`class`,`ishikawa-pair`);for(let[n,r,i]of[[h[e*2],-1,R],[h[e*2+1],1,z]])n&&M(t,n,E,k,r,i,u,C);E=t.selectAll(`text`).nodes().reduce((e,t)=>Math.min(e,t.getBBox().x),1/0)}if(m)L(x,E,k,0,k,`ishikawa-spine`,C);else{A.attr(`x1`,E);let e=`url(#${w})`;x.selectAll(`line.ishikawa-branch, line.ishikawa-sub-branch`).attr(`marker-start`,e)}T(b,g,y)},`draw`),D=e(t=>{let n=e(e=>e.children.reduce((e,t)=>e+1+n(t),0),`countDescendants`);return t.reduce((e,t)=>{let r=n(t);return e.total+=r,e.max=Math.max(e.max,r),e},{total:0,max:0})},`sideStats`),O=e((e,t,n,r,i,a)=>{let o=Math.max(6,Math.floor(110/(i*.6))),s=e.append(`g`).attr(`class`,`ishikawa-head-group`).attr(`transform`,`translate(${t},${n})`),c=F(s,P(r,o),0,0,`ishikawa-head-label`,`start`,i),l=c.node().getBBox(),u=Math.max(60,l.width+6),d=Math.max(40,l.height*2+40),f=`M 0 ${-d/2} L 0 ${d/2} Q ${u*2.4} 0 0 ${-d/2} Z`;if(a){let e=a.roughSvg.path(f,{roughness:1.5,seed:a.seed,fill:a.fillColor,fillStyle:`hachure`,fillWeight:2.5,hachureGap:5,stroke:a.lineColor,strokeWidth:2});s.insert(()=>e,`:first-child`).attr(`class`,`ishikawa-head`)}else s.insert(`path`,`:first-child`).attr(`class`,`ishikawa-head`).attr(`d`,f);c.attr(`transform`,`translate(${(u-l.width)/2-l.x+3},${-l.y-l.height/2})`)},`drawHead`),k=e((t,n)=>{let r=[],i=[],a=e((e,t,o)=>{let s=n===-1?[...e].reverse():e;for(let e of s){let n=r.length,s=e.children??[];r.push({depth:o,text:P(e.text,15),parentIndex:t,childCount:s.length}),o%2==0?(i.push(n),s.length&&a(s,n,o+1)):(s.length&&a(s,n,o+1),i.push(n))}},`walk`);return a(t,-1,2),{entries:r,yOrder:i}},`flattenTree`),A=e((e,t,n,r,i,a,o)=>{let s=e.append(`g`).attr(`class`,`ishikawa-label-group`),c=F(s,t,n,r+11*i,`ishikawa-label cause`,`middle`,a).node().getBBox();if(o){let e=o.roughSvg.rectangle(c.x-20,c.y-2,c.width+40,c.height+4,{roughness:1.5,seed:o.seed,fill:o.fillColor,fillStyle:`hachure`,fillWeight:2.5,hachureGap:5,stroke:o.lineColor,strokeWidth:2});s.insert(()=>e,`:first-child`).attr(`class`,`ishikawa-label-box`)}else s.insert(`rect`,`:first-child`).attr(`class`,`ishikawa-label-box`).attr(`x`,c.x-20).attr(`y`,c.y-2).attr(`width`,c.width+40).attr(`height`,c.height+4)},`drawCauseLabel`),j=e((e,t,n,r,i,a)=>{let o=Math.sqrt(r*r+i*i);if(o===0)return;let s=r/o,c=i/o,l=-c*6,u=s*6,d=t,f=n,p=`M ${d} ${f} L ${d-s*6*2+l} ${f-c*6*2+u} L ${d-s*6*2-l} ${f-c*6*2-u} Z`,m=a.roughSvg.path(p,{roughness:1,seed:a.seed,fill:a.lineColor,fillStyle:`solid`,stroke:a.lineColor,strokeWidth:1});e.append(()=>m)},`drawArrowMarker`),M=e((e,t,n,r,i,a,o,s)=>{let c=t.children??[],l=a*(c.length?1:.2),u=-C*l,d=w*l*i,f=n+u,p=r+d;if(L(e,n,r,f,p,`ishikawa-branch`,s),s&&j(e,n,r,n-f,r-p,s),A(e,t.text,f,p,i,o,s),!c.length)return;let{entries:m,yOrder:h}=k(c,i),g=m.length,_=Array(g);for(let[e,t]of h.entries())_[t]=r+d*((e+1)/(g+1));let v=new Map;v.set(-1,{x0:n,y0:r,x1:f,y1:p,childCount:c.length,childrenDrawn:0});let S=-C,T=w*i,E=i<0?`ishikawa-label up`:`ishikawa-label down`;for(let[t,n]of m.entries()){let r=_[t],i=v.get(n.parentIndex),a=e.append(`g`).attr(`class`,`ishikawa-sub-group`),c=0,l=0,u=0;if(n.depth%2==0){let e=i.y1-i.y0;c=I(i.x0,i.x1,e?(r-i.y0)/e:.5),l=r,u=c-(n.childCount>0?b+n.childCount*x:y),L(a,c,r,u,r,`ishikawa-sub-branch`,s),s&&j(a,c,r,1,0,s),F(a,n.text,u,r,`ishikawa-label align`,`end`,o)}else{let e=i.childrenDrawn++;c=I(i.x0,i.x1,(i.childCount-e)/(i.childCount+1)),l=i.y0,u=c+S*((r-l)/T),L(a,c,l,u,r,`ishikawa-sub-branch`,s),s&&j(a,c,l,c-u,l-r,s),F(a,n.text,u,r,E,`end`,o)}n.childCount>0&&v.set(t,{x0:c,y0:l,x1:u,y1:r,childCount:n.childCount,childrenDrawn:0})}},`drawBranch`),N=e(e=>e.split(/<br\s*\/?>|\n/),`splitLines`),P=e((e,t)=>{if(e.length<=t)return e;let n=[];for(let r of e.split(/\s+/)){let e=n.length-1;e>=0&&n[e].length+1+r.length<=t?n[e]+=` `+r:n.push(r)}return n.join(`
|
|
7
|
+
`)},`wrapText`),F=e((e,t,n,r,i,a,o)=>{let s=N(t),c=o*1.05,l=e.append(`text`).attr(`class`,i).attr(`text-anchor`,a).attr(`x`,n).attr(`y`,r-(s.length-1)*c/2);for(let[e,t]of s.entries())l.append(`tspan`).attr(`x`,n).attr(`dy`,e===0?0:c).text(t);return l},`drawMultilineText`),I=e((e,t,n)=>e+(t-e)*n,`lerp`),L=e((e,t,n,r,i,a,o)=>{if(o){let s=o.roughSvg.line(t,n,r,i,{roughness:1.5,seed:o.seed,stroke:o.lineColor,strokeWidth:2});e.append(()=>s).attr(`class`,a);return}return e.append(`line`).attr(`class`,a).attr(`x1`,t).attr(`y1`,n).attr(`x2`,r).attr(`y2`,i)},`drawLine`),R={parser:h,get db(){return new g},renderer:{draw:E},styles:e(e=>`
|
|
8
|
+
.ishikawa .ishikawa-spine,
|
|
9
|
+
.ishikawa .ishikawa-branch,
|
|
10
|
+
.ishikawa .ishikawa-sub-branch {
|
|
11
|
+
stroke: ${e.lineColor};
|
|
12
|
+
stroke-width: 2;
|
|
13
|
+
fill: none;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
.ishikawa .ishikawa-sub-branch {
|
|
17
|
+
stroke-width: 1;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
.ishikawa .ishikawa-arrow {
|
|
21
|
+
fill: ${e.lineColor};
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
.ishikawa .ishikawa-head {
|
|
25
|
+
fill: ${e.mainBkg};
|
|
26
|
+
stroke: ${e.lineColor};
|
|
27
|
+
stroke-width: 2;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
.ishikawa .ishikawa-label-box {
|
|
31
|
+
fill: ${e.mainBkg};
|
|
32
|
+
stroke: ${e.lineColor};
|
|
33
|
+
stroke-width: 2;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
.ishikawa text {
|
|
37
|
+
font-family: ${e.fontFamily};
|
|
38
|
+
font-size: ${e.fontSize};
|
|
39
|
+
fill: ${e.textColor};
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
.ishikawa .ishikawa-head-label {
|
|
43
|
+
font-weight: 600;
|
|
44
|
+
text-anchor: middle;
|
|
45
|
+
dominant-baseline: middle;
|
|
46
|
+
font-size: 14px;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
.ishikawa .ishikawa-label {
|
|
50
|
+
text-anchor: end;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
.ishikawa .ishikawa-label.cause {
|
|
54
|
+
text-anchor: middle;
|
|
55
|
+
dominant-baseline: middle;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
.ishikawa .ishikawa-label.align {
|
|
59
|
+
text-anchor: end;
|
|
60
|
+
dominant-baseline: middle;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
.ishikawa .ishikawa-label.up {
|
|
64
|
+
dominant-baseline: baseline;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
.ishikawa .ishikawa-label.down {
|
|
68
|
+
dominant-baseline: hanging;
|
|
69
|
+
}
|
|
70
|
+
`,`getStyles`)};export{R as diagram};
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
import{n as e}from"./chunk-Y2CYZVJY-DsF7k-Jl.js";import{p as t}from"./src-7TsfZXRO.js";import{H as n,K as r,U as i,a,c as o,v as s,w as c,x as l,y as u}from"./chunk-DU6HZSFF-Cq2BVv26.js";import{t as d}from"./arc-BV9hs0Hu.js";import{t as f}from"./chunk-5VM5RSS4-ZNzvKenW.js";import{a as p,n as m,o as h,s as g}from"./chunk-F27PBJKO-CE365m0v.js";var _=(function(){var t=e(function(e,t,n,r){for(n||={},r=e.length;r--;n[e[r]]=t);return n},`o`),n=[6,8,10,11,12,14,16,17,18],r=[1,9],i=[1,10],a=[1,11],o=[1,12],s=[1,13],c=[1,14],l={trace:e(function(){},`trace`),yy:{},symbols_:{error:2,start:3,journey:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NEWLINE:10,title:11,acc_title:12,acc_title_value:13,acc_descr:14,acc_descr_value:15,acc_descr_multiline_value:16,section:17,taskName:18,taskData:19,$accept:0,$end:1},terminals_:{2:`error`,4:`journey`,6:`EOF`,8:`SPACE`,10:`NEWLINE`,11:`title`,12:`acc_title`,13:`acc_title_value`,14:`acc_descr`,15:`acc_descr_value`,16:`acc_descr_multiline_value`,17:`section`,18:`taskName`,19:`taskData`},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[9,1],[9,2],[9,2],[9,1],[9,1],[9,2]],performAction:e(function(e,t,n,r,i,a,o){var s=a.length-1;switch(i){case 1:return a[s-1];case 2:this.$=[];break;case 3:a[s-1].push(a[s]),this.$=a[s-1];break;case 4:case 5:this.$=a[s];break;case 6:case 7:this.$=[];break;case 8:r.setDiagramTitle(a[s].substr(6)),this.$=a[s].substr(6);break;case 9:this.$=a[s].trim(),r.setAccTitle(this.$);break;case 10:case 11:this.$=a[s].trim(),r.setAccDescription(this.$);break;case 12:r.addSection(a[s].substr(8)),this.$=a[s].substr(8);break;case 13:r.addTask(a[s-1],a[s]),this.$=`task`}},`anonymous`),table:[{3:1,4:[1,2]},{1:[3]},t(n,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:r,12:i,14:a,16:o,17:s,18:c},t(n,[2,7],{1:[2,1]}),t(n,[2,3]),{9:15,11:r,12:i,14:a,16:o,17:s,18:c},t(n,[2,5]),t(n,[2,6]),t(n,[2,8]),{13:[1,16]},{15:[1,17]},t(n,[2,11]),t(n,[2,12]),{19:[1,18]},t(n,[2,4]),t(n,[2,9]),t(n,[2,10]),t(n,[2,13])],defaultActions:{},parseError:e(function(e,t){if(t.recoverable)this.trace(e);else{var n=Error(e);throw n.hash=t,n}},`parseError`),parse:e(function(t){var n=this,r=[0],i=[],a=[null],o=[],s=this.table,c=``,l=0,u=0,d=0,f=2,p=1,m=o.slice.call(arguments,1),h=Object.create(this.lexer),g={yy:{}};for(var _ in this.yy)Object.prototype.hasOwnProperty.call(this.yy,_)&&(g.yy[_]=this.yy[_]);h.setInput(t,g.yy),g.yy.lexer=h,g.yy.parser=this,h.yylloc===void 0&&(h.yylloc={});var v=h.yylloc;o.push(v);var y=h.options&&h.options.ranges;this.parseError=typeof g.yy.parseError==`function`?g.yy.parseError:Object.getPrototypeOf(this).parseError;function b(e){r.length-=2*e,a.length-=e,o.length-=e}e(b,`popStack`);function x(){var e=i.pop()||h.lex()||p;return typeof e!=`number`&&(e instanceof Array&&(i=e,e=i.pop()),e=n.symbols_[e]||e),e}e(x,`lex`);for(var S,C,w,T,E,D={},O,k,A,j;;){if(w=r[r.length-1],this.defaultActions[w]?T=this.defaultActions[w]:(S??=x(),T=s[w]&&s[w][S]),T===void 0||!T.length||!T[0]){var M=``;for(O in j=[],s[w])this.terminals_[O]&&O>f&&j.push(`'`+this.terminals_[O]+`'`);M=h.showPosition?`Parse error on line `+(l+1)+`:
|
|
2
|
+
`+h.showPosition()+`
|
|
3
|
+
Expecting `+j.join(`, `)+`, got '`+(this.terminals_[S]||S)+`'`:`Parse error on line `+(l+1)+`: Unexpected `+(S==p?`end of input`:`'`+(this.terminals_[S]||S)+`'`),this.parseError(M,{text:h.match,token:this.terminals_[S]||S,line:h.yylineno,loc:v,expected:j})}if(T[0]instanceof Array&&T.length>1)throw Error(`Parse Error: multiple actions possible at state: `+w+`, token: `+S);switch(T[0]){case 1:r.push(S),a.push(h.yytext),o.push(h.yylloc),r.push(T[1]),S=null,C?(S=C,C=null):(u=h.yyleng,c=h.yytext,l=h.yylineno,v=h.yylloc,d>0&&d--);break;case 2:if(k=this.productions_[T[1]][1],D.$=a[a.length-k],D._$={first_line:o[o.length-(k||1)].first_line,last_line:o[o.length-1].last_line,first_column:o[o.length-(k||1)].first_column,last_column:o[o.length-1].last_column},y&&(D._$.range=[o[o.length-(k||1)].range[0],o[o.length-1].range[1]]),E=this.performAction.apply(D,[c,u,l,g.yy,T[1],a,o].concat(m)),E!==void 0)return E;k&&(r=r.slice(0,-1*k*2),a=a.slice(0,-1*k),o=o.slice(0,-1*k)),r.push(this.productions_[T[1]][0]),a.push(D.$),o.push(D._$),A=s[r[r.length-2]][r[r.length-1]],r.push(A);break;case 3:return!0}}return!0},`parse`)};l.lexer=(function(){return{EOF:1,parseError:e(function(e,t){if(this.yy.parser)this.yy.parser.parseError(e,t);else throw Error(e)},`parseError`),setInput:e(function(e,t){return this.yy=t||this.yy||{},this._input=e,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match=``,this.conditionStack=[`INITIAL`],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},`setInput`),input:e(function(){var e=this._input[0];return this.yytext+=e,this.yyleng++,this.offset++,this.match+=e,this.matched+=e,e.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),e},`input`),unput:e(function(e){var t=e.length,n=e.split(/(?:\r\n?|\n)/g);this._input=e+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-t),this.offset-=t;var r=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),n.length-1&&(this.yylineno-=n.length-1);var i=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===r.length?this.yylloc.first_column:0)+r[r.length-n.length].length-n[0].length:this.yylloc.first_column-t},this.options.ranges&&(this.yylloc.range=[i[0],i[0]+this.yyleng-t]),this.yyleng=this.yytext.length,this},`unput`),more:e(function(){return this._more=!0,this},`more`),reject:e(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError(`Lexical error on line `+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).
|
|
4
|
+
`+this.showPosition(),{text:``,token:null,line:this.yylineno});return this},`reject`),less:e(function(e){this.unput(this.match.slice(e))},`less`),pastInput:e(function(){var e=this.matched.substr(0,this.matched.length-this.match.length);return(e.length>20?`...`:``)+e.substr(-20).replace(/\n/g,``)},`pastInput`),upcomingInput:e(function(){var e=this.match;return e.length<20&&(e+=this._input.substr(0,20-e.length)),(e.substr(0,20)+(e.length>20?`...`:``)).replace(/\n/g,``)},`upcomingInput`),showPosition:e(function(){var e=this.pastInput(),t=Array(e.length+1).join(`-`);return e+this.upcomingInput()+`
|
|
5
|
+
`+t+`^`},`showPosition`),test_match:e(function(e,t){var n,r,i;if(this.options.backtrack_lexer&&(i={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(i.yylloc.range=this.yylloc.range.slice(0))),r=e[0].match(/(?:\r\n?|\n).*/g),r&&(this.yylineno+=r.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:r?r[r.length-1].length-r[r.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+e[0].length},this.yytext+=e[0],this.match+=e[0],this.matches=e,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(e[0].length),this.matched+=e[0],n=this.performAction.call(this,this.yy,this,t,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),n)return n;if(this._backtrack){for(var a in i)this[a]=i[a];return!1}return!1},`test_match`),next:e(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var e,t,n,r;this._more||(this.yytext=``,this.match=``);for(var i=this._currentRules(),a=0;a<i.length;a++)if(n=this._input.match(this.rules[i[a]]),n&&(!t||n[0].length>t[0].length)){if(t=n,r=a,this.options.backtrack_lexer){if(e=this.test_match(n,i[a]),e!==!1)return e;if(this._backtrack){t=!1;continue}return!1}if(!this.options.flex)break}return t?(e=this.test_match(t,i[r]),e!==!1&&e):this._input===``?this.EOF:this.parseError(`Lexical error on line `+(this.yylineno+1)+`. Unrecognized text.
|
|
6
|
+
`+this.showPosition(),{text:``,token:null,line:this.yylineno})},`next`),lex:e(function(){return this.next()||this.lex()},`lex`),begin:e(function(e){this.conditionStack.push(e)},`begin`),popState:e(function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},`popState`),_currentRules:e(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},`_currentRules`),topState:e(function(e){return e=this.conditionStack.length-1-Math.abs(e||0),e>=0?this.conditionStack[e]:`INITIAL`},`topState`),pushState:e(function(e){this.begin(e)},`pushState`),stateStackSize:e(function(){return this.conditionStack.length},`stateStackSize`),options:{"case-insensitive":!0},performAction:e(function(e,t,n,r){switch(n){case 0:break;case 1:break;case 2:return 10;case 3:break;case 4:break;case 5:return 4;case 6:return 11;case 7:return this.begin(`acc_title`),12;case 8:return this.popState(),`acc_title_value`;case 9:return this.begin(`acc_descr`),14;case 10:return this.popState(),`acc_descr_value`;case 11:this.begin(`acc_descr_multiline`);break;case 12:this.popState();break;case 13:return`acc_descr_multiline_value`;case 14:return 17;case 15:return 18;case 16:return 19;case 17:return`:`;case 18:return 6;case 19:return`INVALID`}},`anonymous`),rules:[/^(?:%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:journey\b)/i,/^(?:title\s[^#\n;]+)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:section\s[^#:\n;]+)/i,/^(?:[^#:\n;]+)/i,/^(?::[^#\n;]+)/i,/^(?::)/i,/^(?:$)/i,/^(?:.)/i],conditions:{acc_descr_multiline:{rules:[12,13],inclusive:!1},acc_descr:{rules:[10],inclusive:!1},acc_title:{rules:[8],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7,9,11,14,15,16,17,18,19],inclusive:!0}}}})();function u(){this.yy={}}return e(u,`Parser`),u.prototype=l,l.Parser=u,new u})();_.parser=_;var v=_,y=``,b=[],x=[],S=[],C=e(function(){b.length=0,x.length=0,y=``,S.length=0,a()},`clear`),w=e(function(e){y=e,b.push(e)},`addSection`),T=e(function(){return b},`getSections`),E=e(function(){let e=A(),t=0;for(;!e&&t<100;)e=A(),t++;return x.push(...S),x},`getTasks`),D=e(function(){let e=[];return x.forEach(t=>{t.people&&e.push(...t.people)}),[...new Set(e)].sort()},`updateActors`),O=e(function(e,t){let n=t.substr(1).split(`:`),r=0,i=[];n.length===1?(r=Number(n[0]),i=[]):(r=Number(n[0]),i=n[1].split(`,`));let a=i.map(e=>e.trim()),o={section:y,type:y,people:a,task:e,score:r};S.push(o)},`addTask`),k=e(function(e){let t={section:y,type:y,description:e,task:e,classes:[]};x.push(t)},`addTaskOrg`),A=e(function(){let t=e(function(e){return S[e].processed},`compileTask`),n=!0;for(let[e,r]of S.entries())t(e),n&&=r.processed;return n},`compileTasks`),j={getConfig:e(()=>l().journey,`getConfig`),clear:C,setDiagramTitle:r,getDiagramTitle:c,setAccTitle:i,getAccTitle:u,setAccDescription:n,getAccDescription:s,addSection:w,getSections:T,getTasks:E,addTask:O,addTaskOrg:k,getActors:e(function(){return D()},`getActors`)},M=e(e=>`.label {
|
|
7
|
+
font-family: ${e.fontFamily};
|
|
8
|
+
color: ${e.textColor};
|
|
9
|
+
}
|
|
10
|
+
.mouth {
|
|
11
|
+
stroke: #666;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
line {
|
|
15
|
+
stroke: ${e.textColor}
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
.legend {
|
|
19
|
+
fill: ${e.textColor};
|
|
20
|
+
font-family: ${e.fontFamily};
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
.label text {
|
|
24
|
+
fill: #333;
|
|
25
|
+
}
|
|
26
|
+
.label {
|
|
27
|
+
color: ${e.textColor}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
.face {
|
|
31
|
+
${e.faceColor?`fill: ${e.faceColor}`:`fill: #FFF8DC`};
|
|
32
|
+
stroke: #999;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
.node rect,
|
|
36
|
+
.node circle,
|
|
37
|
+
.node ellipse,
|
|
38
|
+
.node polygon,
|
|
39
|
+
.node path {
|
|
40
|
+
fill: ${e.mainBkg};
|
|
41
|
+
stroke: ${e.nodeBorder};
|
|
42
|
+
stroke-width: 1px;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
.node .label {
|
|
46
|
+
text-align: center;
|
|
47
|
+
}
|
|
48
|
+
.node.clickable {
|
|
49
|
+
cursor: pointer;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
.arrowheadPath {
|
|
53
|
+
fill: ${e.arrowheadColor};
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
.edgePaths .path {
|
|
57
|
+
stroke: ${e.lineColor};
|
|
58
|
+
stroke-width: 1.5px;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
.flowchart-link {
|
|
62
|
+
stroke: ${e.lineColor};
|
|
63
|
+
fill: none;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
.edgeLabel {
|
|
67
|
+
background-color: ${e.edgeLabelBackground};
|
|
68
|
+
rect {
|
|
69
|
+
opacity: 0.5;
|
|
70
|
+
}
|
|
71
|
+
text-align: center;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
.cluster rect {
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
.cluster text {
|
|
78
|
+
fill: ${e.titleColor};
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
div.mermaidTooltip {
|
|
82
|
+
position: absolute;
|
|
83
|
+
text-align: center;
|
|
84
|
+
max-width: 200px;
|
|
85
|
+
padding: 2px;
|
|
86
|
+
font-family: ${e.fontFamily};
|
|
87
|
+
font-size: 12px;
|
|
88
|
+
background: ${e.tertiaryColor};
|
|
89
|
+
border: 1px solid ${e.border2};
|
|
90
|
+
border-radius: 2px;
|
|
91
|
+
pointer-events: none;
|
|
92
|
+
z-index: 100;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
.task-type-0, .section-type-0 {
|
|
96
|
+
${e.fillType0?`fill: ${e.fillType0}`:``};
|
|
97
|
+
}
|
|
98
|
+
.task-type-1, .section-type-1 {
|
|
99
|
+
${e.fillType0?`fill: ${e.fillType1}`:``};
|
|
100
|
+
}
|
|
101
|
+
.task-type-2, .section-type-2 {
|
|
102
|
+
${e.fillType0?`fill: ${e.fillType2}`:``};
|
|
103
|
+
}
|
|
104
|
+
.task-type-3, .section-type-3 {
|
|
105
|
+
${e.fillType0?`fill: ${e.fillType3}`:``};
|
|
106
|
+
}
|
|
107
|
+
.task-type-4, .section-type-4 {
|
|
108
|
+
${e.fillType0?`fill: ${e.fillType4}`:``};
|
|
109
|
+
}
|
|
110
|
+
.task-type-5, .section-type-5 {
|
|
111
|
+
${e.fillType0?`fill: ${e.fillType5}`:``};
|
|
112
|
+
}
|
|
113
|
+
.task-type-6, .section-type-6 {
|
|
114
|
+
${e.fillType0?`fill: ${e.fillType6}`:``};
|
|
115
|
+
}
|
|
116
|
+
.task-type-7, .section-type-7 {
|
|
117
|
+
${e.fillType0?`fill: ${e.fillType7}`:``};
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
.actor-0 {
|
|
121
|
+
${e.actor0?`fill: ${e.actor0}`:``};
|
|
122
|
+
}
|
|
123
|
+
.actor-1 {
|
|
124
|
+
${e.actor1?`fill: ${e.actor1}`:``};
|
|
125
|
+
}
|
|
126
|
+
.actor-2 {
|
|
127
|
+
${e.actor2?`fill: ${e.actor2}`:``};
|
|
128
|
+
}
|
|
129
|
+
.actor-3 {
|
|
130
|
+
${e.actor3?`fill: ${e.actor3}`:``};
|
|
131
|
+
}
|
|
132
|
+
.actor-4 {
|
|
133
|
+
${e.actor4?`fill: ${e.actor4}`:``};
|
|
134
|
+
}
|
|
135
|
+
.actor-5 {
|
|
136
|
+
${e.actor5?`fill: ${e.actor5}`:``};
|
|
137
|
+
}
|
|
138
|
+
${f()}
|
|
139
|
+
`,`getStyles`),N=e(function(e,t){return p(e,t)},`drawRect`),P=e(function(t,n){let r=t.append(`circle`).attr(`cx`,n.cx).attr(`cy`,n.cy).attr(`class`,`face`).attr(`r`,15).attr(`stroke-width`,2).attr(`overflow`,`visible`),i=t.append(`g`);i.append(`circle`).attr(`cx`,n.cx-5).attr(`cy`,n.cy-5).attr(`r`,1.5).attr(`stroke-width`,2).attr(`fill`,`#666`).attr(`stroke`,`#666`),i.append(`circle`).attr(`cx`,n.cx+5).attr(`cy`,n.cy-5).attr(`r`,1.5).attr(`stroke-width`,2).attr(`fill`,`#666`).attr(`stroke`,`#666`);function a(e){let t=d().startAngle(Math.PI/2).endAngle(Math.PI/2*3).innerRadius(15/2).outerRadius(15/2.2);e.append(`path`).attr(`class`,`mouth`).attr(`d`,t).attr(`transform`,`translate(`+n.cx+`,`+(n.cy+2)+`)`)}e(a,`smile`);function o(e){let t=d().startAngle(3*Math.PI/2).endAngle(Math.PI/2*5).innerRadius(15/2).outerRadius(15/2.2);e.append(`path`).attr(`class`,`mouth`).attr(`d`,t).attr(`transform`,`translate(`+n.cx+`,`+(n.cy+7)+`)`)}e(o,`sad`);function s(e){e.append(`line`).attr(`class`,`mouth`).attr(`stroke`,2).attr(`x1`,n.cx-5).attr(`y1`,n.cy+7).attr(`x2`,n.cx+5).attr(`y2`,n.cy+7).attr(`class`,`mouth`).attr(`stroke-width`,`1px`).attr(`stroke`,`#666`)}return e(s,`ambivalent`),n.score>3?a(i):n.score<3?o(i):s(i),r},`drawFace`),F=e(function(e,t){let n=e.append(`circle`);return n.attr(`cx`,t.cx),n.attr(`cy`,t.cy),n.attr(`class`,`actor-`+t.pos),n.attr(`fill`,t.fill),n.attr(`stroke`,t.stroke),n.attr(`r`,t.r),n.class!==void 0&&n.attr(`class`,n.class),t.title!==void 0&&n.append(`title`).text(t.title),n},`drawCircle`),I=e(function(e,t){return h(e,t)},`drawText`),L=e(function(t,n){function r(e,t,n,r,i){return e+`,`+t+` `+(e+n)+`,`+t+` `+(e+n)+`,`+(t+r-i)+` `+(e+n-i*1.2)+`,`+(t+r)+` `+e+`,`+(t+r)}e(r,`genPoints`);let i=t.append(`polygon`);i.attr(`points`,r(n.x,n.y,50,20,7)),i.attr(`class`,`labelBox`),n.y+=n.labelMargin,n.x+=.5*n.labelMargin,I(t,n)},`drawLabel`),R=e(function(e,t,n){let r=e.append(`g`),i=g();i.x=t.x,i.y=t.y,i.fill=t.fill,i.width=n.width*t.taskCount+n.diagramMarginX*(t.taskCount-1),i.height=n.height,i.class=`journey-section section-type-`+t.num,i.rx=3,i.ry=3,N(r,i),H(n)(t.text,r,i.x,i.y,i.width,i.height,{class:`journey-section section-type-`+t.num},n,t.colour)},`drawSection`),z=-1,B=e(function(e,t,n,r){let i=t.x+n.width/2,a=e.append(`g`);z++,a.append(`line`).attr(`id`,r+`-task`+z).attr(`x1`,i).attr(`y1`,t.y).attr(`x2`,i).attr(`y2`,450).attr(`class`,`task-line`).attr(`stroke-width`,`1px`).attr(`stroke-dasharray`,`4 2`).attr(`stroke`,`#666`),P(a,{cx:i,cy:300+(5-t.score)*30,score:t.score});let o=g();o.x=t.x,o.y=t.y,o.fill=t.fill,o.width=n.width,o.height=n.height,o.class=`task task-type-`+t.num,o.rx=3,o.ry=3,N(a,o);let s=t.x+14;t.people.forEach(e=>{let n=t.actors[e].color,r={cx:s,cy:t.y,r:7,fill:n,stroke:`#000`,title:e,pos:t.actors[e].position};F(a,r),s+=10}),H(n)(t.task,a,o.x,o.y,o.width,o.height,{class:`task`},n,t.colour)},`drawTask`),V=e(function(e,t){m(e,t)},`drawBackgroundRect`),H=(function(){function t(e,t,n,r,a,o,s,c){i(t.append(`text`).attr(`x`,n+a/2).attr(`y`,r+o/2+5).style(`font-color`,c).style(`text-anchor`,`middle`).text(e),s)}e(t,`byText`);function n(e,t,n,r,a,o,s,c,l){let{taskFontSize:u,taskFontFamily:d}=c,f=e.split(/<br\s*\/?>/gi);for(let e=0;e<f.length;e++){let c=e*u-u*(f.length-1)/2,p=t.append(`text`).attr(`x`,n+a/2).attr(`y`,r).attr(`fill`,l).style(`text-anchor`,`middle`).style(`font-size`,u).style(`font-family`,d);p.append(`tspan`).attr(`x`,n+a/2).attr(`dy`,c).text(f[e]),p.attr(`y`,r+o/2).attr(`dominant-baseline`,`central`).attr(`alignment-baseline`,`central`),i(p,s)}}e(n,`byTspan`);function r(e,t,r,a,o,s,c,l){let u=t.append(`switch`),d=u.append(`foreignObject`).attr(`x`,r).attr(`y`,a).attr(`width`,o).attr(`height`,s).attr(`position`,`fixed`).append(`xhtml:div`).style(`display`,`table`).style(`height`,`100%`).style(`width`,`100%`);d.append(`div`).attr(`class`,`label`).style(`display`,`table-cell`).style(`text-align`,`center`).style(`vertical-align`,`middle`).text(e),n(e,u,r,a,o,s,c,l),i(d,c)}e(r,`byFo`);function i(e,t){for(let n in t)n in t&&e.attr(n,t[n])}return e(i,`_setTextAttrs`),function(e){return e.textPlacement===`fo`?r:e.textPlacement===`old`?t:n}})(),U={drawRect:N,drawCircle:F,drawSection:R,drawText:I,drawLabel:L,drawTask:B,drawBackgroundRect:V,initGraphics:e(function(e,t){z=-1,e.append(`defs`).append(`marker`).attr(`id`,t+`-arrowhead`).attr(`refX`,5).attr(`refY`,2).attr(`markerWidth`,6).attr(`markerHeight`,4).attr(`orient`,`auto`).append(`path`).attr(`d`,`M 0,0 V 4 L6,2 Z`)},`initGraphics`)},W=e(function(e){Object.keys(e).forEach(function(t){J[t]=e[t]})},`setConf`),G={},K=0;function q(e){let t=l().journey,n=t.maxLabelWidth;K=0;let r=60;Object.keys(G).forEach(i=>{let a=G[i].color,o={cx:20,cy:r,r:7,fill:a,stroke:`#000`,pos:G[i].position};U.drawCircle(e,o);let s=e.append(`text`).attr(`visibility`,`hidden`).text(i),c=s.node().getBoundingClientRect().width;s.remove();let l=[];if(c<=n)l=[i];else{let t=i.split(` `),r=``;s=e.append(`text`).attr(`visibility`,`hidden`),t.forEach(e=>{let t=r?`${r} ${e}`:e;if(s.text(t),s.node().getBoundingClientRect().width>n){if(r&&l.push(r),r=e,s.text(e),s.node().getBoundingClientRect().width>n){let t=``;for(let r of e)t+=r,s.text(t+`-`),s.node().getBoundingClientRect().width>n&&(l.push(t.slice(0,-1)+`-`),t=r);r=t}}else r=t}),r&&l.push(r),s.remove()}l.forEach((n,i)=>{let a={x:40,y:r+7+i*20,fill:`#666`,text:n,textMargin:t.boxTextMargin??5},o=U.drawText(e,a).node().getBoundingClientRect().width;o>K&&o>t.leftMargin-o&&(K=o)}),r+=Math.max(20,l.length*20)})}e(q,`drawActorLegend`);var J=l().journey,Y=0,ee=e(function(e,n,r,i){let a=l(),s=a.journey.titleColor,c=a.journey.titleFontSize,u=a.journey.titleFontFamily,d=a.securityLevel,f;d===`sandbox`&&(f=t(`#i`+n));let p=t(d===`sandbox`?f.nodes()[0].contentDocument.body:`body`);X.init();let m=p.select(`#`+n);U.initGraphics(m,n);let h=i.db.getTasks(),g=i.db.getDiagramTitle(),_=i.db.getActors();for(let e in G)delete G[e];let v=0;_.forEach(e=>{G[e]={color:J.actorColours[v%J.actorColours.length],position:v},v++}),q(m),Y=J.leftMargin+K,X.insert(0,0,Y,Object.keys(G).length*50),te(m,h,0,n);let y=X.getBounds();g&&m.append(`text`).text(g).attr(`x`,Y).attr(`font-size`,c).attr(`font-weight`,`bold`).attr(`y`,25).attr(`fill`,s).attr(`font-family`,u);let b=y.stopy-y.starty+2*J.diagramMarginY,x=Y+y.stopx+2*J.diagramMarginX;o(m,b,x,J.useMaxWidth),m.append(`line`).attr(`x1`,Y).attr(`y1`,J.height*4).attr(`x2`,x-Y-4).attr(`y2`,J.height*4).attr(`stroke-width`,4).attr(`stroke`,`black`).attr(`marker-end`,`url(#`+n+`-arrowhead)`);let S=g?70:0;m.attr(`viewBox`,`${y.startx} -25 ${x} ${b+S}`),m.attr(`preserveAspectRatio`,`xMinYMin meet`),m.attr(`height`,b+S+25)},`draw`),X={data:{startx:void 0,stopx:void 0,starty:void 0,stopy:void 0},verticalPos:0,sequenceItems:[],init:e(function(){this.sequenceItems=[],this.data={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0},this.verticalPos=0},`init`),updateVal:e(function(e,t,n,r){e[t]=e[t]===void 0?n:r(n,e[t])},`updateVal`),updateBounds:e(function(t,n,r,i){let a=l().journey,o=this,s=0;function c(c){return e(function(e){s++;let l=o.sequenceItems.length-s+1;o.updateVal(e,`starty`,n-l*a.boxMargin,Math.min),o.updateVal(e,`stopy`,i+l*a.boxMargin,Math.max),o.updateVal(X.data,`startx`,t-l*a.boxMargin,Math.min),o.updateVal(X.data,`stopx`,r+l*a.boxMargin,Math.max),c!==`activation`&&(o.updateVal(e,`startx`,t-l*a.boxMargin,Math.min),o.updateVal(e,`stopx`,r+l*a.boxMargin,Math.max),o.updateVal(X.data,`starty`,n-l*a.boxMargin,Math.min),o.updateVal(X.data,`stopy`,i+l*a.boxMargin,Math.max))},`updateItemBounds`)}e(c,`updateFn`),this.sequenceItems.forEach(c())},`updateBounds`),insert:e(function(e,t,n,r){let i=Math.min(e,n),a=Math.max(e,n),o=Math.min(t,r),s=Math.max(t,r);this.updateVal(X.data,`startx`,i,Math.min),this.updateVal(X.data,`starty`,o,Math.min),this.updateVal(X.data,`stopx`,a,Math.max),this.updateVal(X.data,`stopy`,s,Math.max),this.updateBounds(i,o,a,s)},`insert`),bumpVerticalPos:e(function(e){this.verticalPos+=e,this.data.stopy=this.verticalPos},`bumpVerticalPos`),getVerticalPos:e(function(){return this.verticalPos},`getVerticalPos`),getBounds:e(function(){return this.data},`getBounds`)},Z=J.sectionFills,Q=J.sectionColours,te=e(function(e,t,n,r){let i=l().journey,a=``,o=n+(i.height*2+i.diagramMarginY),s=0,c=`#CCC`,u=`black`,d=0;for(let[n,l]of t.entries()){if(a!==l.section){c=Z[s%Z.length],d=s%Z.length,u=Q[s%Q.length];let r=0,o=l.section;for(let e=n;e<t.length&&t[e].section==o;e++)r+=1;let f={x:n*i.taskMargin+n*i.width+Y,y:50,text:l.section,fill:c,num:d,colour:u,taskCount:r};U.drawSection(e,f,i),a=l.section,s++}let f=l.people.reduce((e,t)=>(G[t]&&(e[t]=G[t]),e),{});l.x=n*i.taskMargin+n*i.width+Y,l.y=o,l.width=i.diagramMarginX,l.height=i.diagramMarginY,l.colour=u,l.fill=c,l.num=d,l.actors=f,U.drawTask(e,l,i,r),X.insert(l.x,l.y,l.x+l.width+i.taskMargin,450)}},`drawTasks`),$={setConf:W,draw:ee},ne={parser:v,db:j,renderer:$,styles:M,init:e(e=>{$.setConf(e.journey),j.clear()},`init`)};export{ne as diagram};
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import{n as e}from"./chunk-Y2CYZVJY-DsF7k-Jl.js";import{m as t}from"./src-7TsfZXRO.js";import{J as n,et as r,f as i,rt as a,tt as o,x as s,z as c}from"./chunk-DU6HZSFF-Cq2BVv26.js";import"./chunk-75Z2AOVW-CbNT4sDh.js";import"./chunk-PWAF6VOD-DfXX6rBk.js";import"./chunk-GMAD6QVW-DxWL1VC-.js";import{t as l}from"./chunk-5VM5RSS4-ZNzvKenW.js";import"./chunk-P2QGCYS3-CN3XD313.js";import"./chunk-4HAMMTFA-CDGFjfVp.js";import{i as u,r as d}from"./chunk-GVQU2GXP-aARV8YbK.js";import{n as f}from"./chunk-L3NEJ4N5-BfE4VE8J.js";import{f as p,n as m,t as h}from"./mermaid.core-DZY3WwzX.js";var g=(function(){var t=e(function(e,t,n,r){for(n||={},r=e.length;r--;n[e[r]]=t);return n},`o`),n=[1,4],r=[1,13],i=[1,12],a=[1,15],o=[1,16],s=[1,20],c=[1,19],l=[6,7,8],u=[1,26],d=[1,24],f=[1,25],p=[6,7,11],m=[1,31],h=[6,7,11,24],g=[1,6,13,16,17,20,23],_=[1,35],v=[1,36],y=[1,6,7,11,13,16,17,20,23],b=[1,38],x={trace:e(function(){},`trace`),yy:{},symbols_:{error:2,start:3,mindMap:4,spaceLines:5,SPACELINE:6,NL:7,KANBAN:8,document:9,stop:10,EOF:11,statement:12,SPACELIST:13,node:14,shapeData:15,ICON:16,CLASS:17,nodeWithId:18,nodeWithoutId:19,NODE_DSTART:20,NODE_DESCR:21,NODE_DEND:22,NODE_ID:23,SHAPE_DATA:24,$accept:0,$end:1},terminals_:{2:`error`,6:`SPACELINE`,7:`NL`,8:`KANBAN`,11:`EOF`,13:`SPACELIST`,16:`ICON`,17:`CLASS`,20:`NODE_DSTART`,21:`NODE_DESCR`,22:`NODE_DEND`,23:`NODE_ID`,24:`SHAPE_DATA`},productions_:[0,[3,1],[3,2],[5,1],[5,2],[5,2],[4,2],[4,3],[10,1],[10,1],[10,1],[10,2],[10,2],[9,3],[9,2],[12,3],[12,2],[12,2],[12,2],[12,1],[12,2],[12,1],[12,1],[12,1],[12,1],[14,1],[14,1],[19,3],[18,1],[18,4],[15,2],[15,1]],performAction:e(function(e,t,n,r,i,a,o){var s=a.length-1;switch(i){case 6:case 7:return r;case 8:r.getLogger().trace(`Stop NL `);break;case 9:r.getLogger().trace(`Stop EOF `);break;case 11:r.getLogger().trace(`Stop NL2 `);break;case 12:r.getLogger().trace(`Stop EOF2 `);break;case 15:r.getLogger().info(`Node: `,a[s-1].id),r.addNode(a[s-2].length,a[s-1].id,a[s-1].descr,a[s-1].type,a[s]);break;case 16:r.getLogger().info(`Node: `,a[s].id),r.addNode(a[s-1].length,a[s].id,a[s].descr,a[s].type);break;case 17:r.getLogger().trace(`Icon: `,a[s]),r.decorateNode({icon:a[s]});break;case 18:case 23:r.decorateNode({class:a[s]});break;case 19:r.getLogger().trace(`SPACELIST`);break;case 20:r.getLogger().trace(`Node: `,a[s-1].id),r.addNode(0,a[s-1].id,a[s-1].descr,a[s-1].type,a[s]);break;case 21:r.getLogger().trace(`Node: `,a[s].id),r.addNode(0,a[s].id,a[s].descr,a[s].type);break;case 22:r.decorateNode({icon:a[s]});break;case 27:r.getLogger().trace(`node found ..`,a[s-2]),this.$={id:a[s-1],descr:a[s-1],type:r.getType(a[s-2],a[s])};break;case 28:this.$={id:a[s],descr:a[s],type:0};break;case 29:r.getLogger().trace(`node found ..`,a[s-3]),this.$={id:a[s-3],descr:a[s-1],type:r.getType(a[s-2],a[s])};break;case 30:this.$=a[s-1]+a[s];break;case 31:this.$=a[s]}},`anonymous`),table:[{3:1,4:2,5:3,6:[1,5],8:n},{1:[3]},{1:[2,1]},{4:6,6:[1,7],7:[1,8],8:n},{6:r,7:[1,10],9:9,12:11,13:i,14:14,16:a,17:o,18:17,19:18,20:s,23:c},t(l,[2,3]),{1:[2,2]},t(l,[2,4]),t(l,[2,5]),{1:[2,6],6:r,12:21,13:i,14:14,16:a,17:o,18:17,19:18,20:s,23:c},{6:r,9:22,12:11,13:i,14:14,16:a,17:o,18:17,19:18,20:s,23:c},{6:u,7:d,10:23,11:f},t(p,[2,24],{18:17,19:18,14:27,16:[1,28],17:[1,29],20:s,23:c}),t(p,[2,19]),t(p,[2,21],{15:30,24:m}),t(p,[2,22]),t(p,[2,23]),t(h,[2,25]),t(h,[2,26]),t(h,[2,28],{20:[1,32]}),{21:[1,33]},{6:u,7:d,10:34,11:f},{1:[2,7],6:r,12:21,13:i,14:14,16:a,17:o,18:17,19:18,20:s,23:c},t(g,[2,14],{7:_,11:v}),t(y,[2,8]),t(y,[2,9]),t(y,[2,10]),t(p,[2,16],{15:37,24:m}),t(p,[2,17]),t(p,[2,18]),t(p,[2,20],{24:b}),t(h,[2,31]),{21:[1,39]},{22:[1,40]},t(g,[2,13],{7:_,11:v}),t(y,[2,11]),t(y,[2,12]),t(p,[2,15],{24:b}),t(h,[2,30]),{22:[1,41]},t(h,[2,27]),t(h,[2,29])],defaultActions:{2:[2,1],6:[2,2]},parseError:e(function(e,t){if(t.recoverable)this.trace(e);else{var n=Error(e);throw n.hash=t,n}},`parseError`),parse:e(function(t){var n=this,r=[0],i=[],a=[null],o=[],s=this.table,c=``,l=0,u=0,d=0,f=2,p=1,m=o.slice.call(arguments,1),h=Object.create(this.lexer),g={yy:{}};for(var _ in this.yy)Object.prototype.hasOwnProperty.call(this.yy,_)&&(g.yy[_]=this.yy[_]);h.setInput(t,g.yy),g.yy.lexer=h,g.yy.parser=this,h.yylloc===void 0&&(h.yylloc={});var v=h.yylloc;o.push(v);var y=h.options&&h.options.ranges;this.parseError=typeof g.yy.parseError==`function`?g.yy.parseError:Object.getPrototypeOf(this).parseError;function b(e){r.length-=2*e,a.length-=e,o.length-=e}e(b,`popStack`);function x(){var e=i.pop()||h.lex()||p;return typeof e!=`number`&&(e instanceof Array&&(i=e,e=i.pop()),e=n.symbols_[e]||e),e}e(x,`lex`);for(var S,C,w,T,E,D={},O,k,A,j;;){if(w=r[r.length-1],this.defaultActions[w]?T=this.defaultActions[w]:(S??=x(),T=s[w]&&s[w][S]),T===void 0||!T.length||!T[0]){var M=``;for(O in j=[],s[w])this.terminals_[O]&&O>f&&j.push(`'`+this.terminals_[O]+`'`);M=h.showPosition?`Parse error on line `+(l+1)+`:
|
|
2
|
+
`+h.showPosition()+`
|
|
3
|
+
Expecting `+j.join(`, `)+`, got '`+(this.terminals_[S]||S)+`'`:`Parse error on line `+(l+1)+`: Unexpected `+(S==p?`end of input`:`'`+(this.terminals_[S]||S)+`'`),this.parseError(M,{text:h.match,token:this.terminals_[S]||S,line:h.yylineno,loc:v,expected:j})}if(T[0]instanceof Array&&T.length>1)throw Error(`Parse Error: multiple actions possible at state: `+w+`, token: `+S);switch(T[0]){case 1:r.push(S),a.push(h.yytext),o.push(h.yylloc),r.push(T[1]),S=null,C?(S=C,C=null):(u=h.yyleng,c=h.yytext,l=h.yylineno,v=h.yylloc,d>0&&d--);break;case 2:if(k=this.productions_[T[1]][1],D.$=a[a.length-k],D._$={first_line:o[o.length-(k||1)].first_line,last_line:o[o.length-1].last_line,first_column:o[o.length-(k||1)].first_column,last_column:o[o.length-1].last_column},y&&(D._$.range=[o[o.length-(k||1)].range[0],o[o.length-1].range[1]]),E=this.performAction.apply(D,[c,u,l,g.yy,T[1],a,o].concat(m)),E!==void 0)return E;k&&(r=r.slice(0,-1*k*2),a=a.slice(0,-1*k),o=o.slice(0,-1*k)),r.push(this.productions_[T[1]][0]),a.push(D.$),o.push(D._$),A=s[r[r.length-2]][r[r.length-1]],r.push(A);break;case 3:return!0}}return!0},`parse`)};x.lexer=(function(){return{EOF:1,parseError:e(function(e,t){if(this.yy.parser)this.yy.parser.parseError(e,t);else throw Error(e)},`parseError`),setInput:e(function(e,t){return this.yy=t||this.yy||{},this._input=e,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match=``,this.conditionStack=[`INITIAL`],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},`setInput`),input:e(function(){var e=this._input[0];return this.yytext+=e,this.yyleng++,this.offset++,this.match+=e,this.matched+=e,e.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),e},`input`),unput:e(function(e){var t=e.length,n=e.split(/(?:\r\n?|\n)/g);this._input=e+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-t),this.offset-=t;var r=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),n.length-1&&(this.yylineno-=n.length-1);var i=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===r.length?this.yylloc.first_column:0)+r[r.length-n.length].length-n[0].length:this.yylloc.first_column-t},this.options.ranges&&(this.yylloc.range=[i[0],i[0]+this.yyleng-t]),this.yyleng=this.yytext.length,this},`unput`),more:e(function(){return this._more=!0,this},`more`),reject:e(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError(`Lexical error on line `+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).
|
|
4
|
+
`+this.showPosition(),{text:``,token:null,line:this.yylineno});return this},`reject`),less:e(function(e){this.unput(this.match.slice(e))},`less`),pastInput:e(function(){var e=this.matched.substr(0,this.matched.length-this.match.length);return(e.length>20?`...`:``)+e.substr(-20).replace(/\n/g,``)},`pastInput`),upcomingInput:e(function(){var e=this.match;return e.length<20&&(e+=this._input.substr(0,20-e.length)),(e.substr(0,20)+(e.length>20?`...`:``)).replace(/\n/g,``)},`upcomingInput`),showPosition:e(function(){var e=this.pastInput(),t=Array(e.length+1).join(`-`);return e+this.upcomingInput()+`
|
|
5
|
+
`+t+`^`},`showPosition`),test_match:e(function(e,t){var n,r,i;if(this.options.backtrack_lexer&&(i={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(i.yylloc.range=this.yylloc.range.slice(0))),r=e[0].match(/(?:\r\n?|\n).*/g),r&&(this.yylineno+=r.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:r?r[r.length-1].length-r[r.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+e[0].length},this.yytext+=e[0],this.match+=e[0],this.matches=e,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(e[0].length),this.matched+=e[0],n=this.performAction.call(this,this.yy,this,t,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),n)return n;if(this._backtrack){for(var a in i)this[a]=i[a];return!1}return!1},`test_match`),next:e(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var e,t,n,r;this._more||(this.yytext=``,this.match=``);for(var i=this._currentRules(),a=0;a<i.length;a++)if(n=this._input.match(this.rules[i[a]]),n&&(!t||n[0].length>t[0].length)){if(t=n,r=a,this.options.backtrack_lexer){if(e=this.test_match(n,i[a]),e!==!1)return e;if(this._backtrack){t=!1;continue}return!1}if(!this.options.flex)break}return t?(e=this.test_match(t,i[r]),e!==!1&&e):this._input===``?this.EOF:this.parseError(`Lexical error on line `+(this.yylineno+1)+`. Unrecognized text.
|
|
6
|
+
`+this.showPosition(),{text:``,token:null,line:this.yylineno})},`next`),lex:e(function(){return this.next()||this.lex()},`lex`),begin:e(function(e){this.conditionStack.push(e)},`begin`),popState:e(function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},`popState`),_currentRules:e(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},`_currentRules`),topState:e(function(e){return e=this.conditionStack.length-1-Math.abs(e||0),e>=0?this.conditionStack[e]:`INITIAL`},`topState`),pushState:e(function(e){this.begin(e)},`pushState`),stateStackSize:e(function(){return this.conditionStack.length},`stateStackSize`),options:{"case-insensitive":!0},performAction:e(function(e,t,n,r){switch(n){case 0:return this.pushState(`shapeData`),t.yytext=``,24;case 1:return this.pushState(`shapeDataStr`),24;case 2:return this.popState(),24;case 3:return t.yytext=t.yytext.replace(/\n\s*/g,`<br/>`),24;case 4:return 24;case 5:this.popState();break;case 6:return e.getLogger().trace(`Found comment`,t.yytext),6;case 7:return 8;case 8:this.begin(`CLASS`);break;case 9:return this.popState(),17;case 10:this.popState();break;case 11:e.getLogger().trace(`Begin icon`),this.begin(`ICON`);break;case 12:return e.getLogger().trace(`SPACELINE`),6;case 13:return 7;case 14:return 16;case 15:e.getLogger().trace(`end icon`),this.popState();break;case 16:return e.getLogger().trace(`Exploding node`),this.begin(`NODE`),20;case 17:return e.getLogger().trace(`Cloud`),this.begin(`NODE`),20;case 18:return e.getLogger().trace(`Explosion Bang`),this.begin(`NODE`),20;case 19:return e.getLogger().trace(`Cloud Bang`),this.begin(`NODE`),20;case 20:return this.begin(`NODE`),20;case 21:return this.begin(`NODE`),20;case 22:return this.begin(`NODE`),20;case 23:return this.begin(`NODE`),20;case 24:return 13;case 25:return 23;case 26:return 11;case 27:this.begin(`NSTR2`);break;case 28:return`NODE_DESCR`;case 29:this.popState();break;case 30:e.getLogger().trace(`Starting NSTR`),this.begin(`NSTR`);break;case 31:return e.getLogger().trace(`description:`,t.yytext),`NODE_DESCR`;case 32:this.popState();break;case 33:return this.popState(),e.getLogger().trace(`node end ))`),`NODE_DEND`;case 34:return this.popState(),e.getLogger().trace(`node end )`),`NODE_DEND`;case 35:return this.popState(),e.getLogger().trace(`node end ...`,t.yytext),`NODE_DEND`;case 36:return this.popState(),e.getLogger().trace(`node end ((`),`NODE_DEND`;case 37:return this.popState(),e.getLogger().trace(`node end (-`),`NODE_DEND`;case 38:return this.popState(),e.getLogger().trace(`node end (-`),`NODE_DEND`;case 39:return this.popState(),e.getLogger().trace(`node end ((`),`NODE_DEND`;case 40:return this.popState(),e.getLogger().trace(`node end ((`),`NODE_DEND`;case 41:return e.getLogger().trace(`Long description:`,t.yytext),21;case 42:return e.getLogger().trace(`Long description:`,t.yytext),21}},`anonymous`),rules:[/^(?:@\{)/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^\"]+)/i,/^(?:[^}^"]+)/i,/^(?:\})/i,/^(?:\s*%%.*)/i,/^(?:kanban\b)/i,/^(?::::)/i,/^(?:.+)/i,/^(?:\n)/i,/^(?:::icon\()/i,/^(?:[\s]+[\n])/i,/^(?:[\n]+)/i,/^(?:[^\)]+)/i,/^(?:\))/i,/^(?:-\))/i,/^(?:\(-)/i,/^(?:\)\))/i,/^(?:\))/i,/^(?:\(\()/i,/^(?:\{\{)/i,/^(?:\()/i,/^(?:\[)/i,/^(?:[\s]+)/i,/^(?:[^\(\[\n\)\{\}@]+)/i,/^(?:$)/i,/^(?:["][`])/i,/^(?:[^`"]+)/i,/^(?:[`]["])/i,/^(?:["])/i,/^(?:[^"]+)/i,/^(?:["])/i,/^(?:[\)]\))/i,/^(?:[\)])/i,/^(?:[\]])/i,/^(?:\}\})/i,/^(?:\(-)/i,/^(?:-\))/i,/^(?:\(\()/i,/^(?:\()/i,/^(?:[^\)\]\(\}]+)/i,/^(?:.+(?!\(\())/i],conditions:{shapeDataEndBracket:{rules:[],inclusive:!1},shapeDataStr:{rules:[2,3],inclusive:!1},shapeData:{rules:[1,4,5],inclusive:!1},CLASS:{rules:[9,10],inclusive:!1},ICON:{rules:[14,15],inclusive:!1},NSTR2:{rules:[28,29],inclusive:!1},NSTR:{rules:[31,32],inclusive:!1},NODE:{rules:[27,30,33,34,35,36,37,38,39,40,41,42],inclusive:!1},INITIAL:{rules:[0,6,7,8,11,12,13,16,17,18,19,20,21,22,23,24,25,26],inclusive:!0}}}})();function S(){this.yy={}}return e(S,`Parser`),S.prototype=x,x.Parser=S,new S})();g.parser=g;var _=g,v=[],y=[],b=0,x={},S=e(()=>{v=[],y=[],b=0,x={}},`clear`),C=e(e=>{if(v.length===0)return null;let t=v[0].level,n=null;for(let e=v.length-1;e>=0;e--)if(v[e].level===t&&!n&&(n=v[e]),v[e].level<t)throw Error(`Items without section detected, found section ("`+v[e].label+`")`);return e===n?.level?null:n},`getSection`),w=e(function(){return y},`getSections`),T=e(function(){let e=[],t=[],n=w(),r=s();for(let e of n){let n={id:e.id,label:c(e.label??``,r),labelType:`markdown`,isGroup:!0,ticket:e.ticket,shape:`kanbanSection`,level:e.level,look:r.look};t.push(n);let i=v.filter(t=>t.parentId===e.id);for(let n of i){let i={id:n.id,parentId:e.id,label:c(n.label??``,r),labelType:`markdown`,isGroup:!1,ticket:n?.ticket,priority:n?.priority,assigned:n?.assigned,icon:n?.icon,shape:`kanbanItem`,level:n.level,rx:5,ry:5,cssStyles:[`text-align: left`]};t.push(i)}}return{nodes:t,edges:e,other:{},config:s()}},`getData`),E=e((e,t,n,r,a)=>{let o=s(),l=o.mindmap?.padding??i.mindmap.padding;switch(r){case D.ROUNDED_RECT:case D.RECT:case D.HEXAGON:l*=2}let u={id:c(t,o)||`kbn`+b++,level:e,label:c(n,o),width:o.mindmap?.maxNodeWidth??i.mindmap.maxNodeWidth,padding:l,isGroup:!1};if(a!==void 0){let e;e=a.includes(`
|
|
7
|
+
`)?a+`
|
|
8
|
+
`:`{
|
|
9
|
+
`+a+`
|
|
10
|
+
}`;let t=m(e,{schema:h});if(t.shape&&(t.shape!==t.shape.toLowerCase()||t.shape.includes(`_`)))throw Error(`No such shape: ${t.shape}. Shape names should be lowercase.`);t?.shape&&t.shape===`kanbanItem`&&(u.shape=t?.shape),t?.label&&(u.label=t?.label),t?.icon&&(u.icon=t?.icon.toString()),t?.assigned&&(u.assigned=t?.assigned.toString()),t?.ticket&&(u.ticket=t?.ticket.toString()),t?.priority&&(u.priority=t?.priority)}let d=C(e);d?u.parentId=d.id||`kbn`+b++:y.push(u),v.push(u)},`addNode`),D={DEFAULT:0,NO_BORDER:0,ROUNDED_RECT:1,RECT:2,CIRCLE:3,CLOUD:4,BANG:5,HEXAGON:6},O={clear:S,addNode:E,getSections:w,getData:T,nodeType:D,getType:e((e,n)=>{switch(t.debug(`In get type`,e,n),e){case`[`:return D.RECT;case`(`:return n===`)`?D.ROUNDED_RECT:D.CLOUD;case`((`:return D.CIRCLE;case`)`:return D.CLOUD;case`))`:return D.BANG;case`{{`:return D.HEXAGON;default:return D.DEFAULT}},`getType`),setElementForId:e((e,t)=>{x[e]=t},`setElementForId`),decorateNode:e(e=>{if(!e)return;let t=s(),n=v[v.length-1];e.icon&&(n.icon=c(e.icon,t)),e.class&&(n.cssClasses=c(e.class,t))},`decorateNode`),type2Str:e(e=>{switch(e){case D.DEFAULT:return`no-border`;case D.RECT:return`rect`;case D.ROUNDED_RECT:return`rounded-rect`;case D.CIRCLE:return`circle`;case D.CLOUD:return`cloud`;case D.BANG:return`bang`;case D.HEXAGON:return`hexgon`;default:return`no-border`}},`type2Str`),getLogger:e(()=>t,`getLogger`),getElementById:e(e=>x[e],`getElementById`)},k={draw:e(async(e,r,a,o)=>{t.debug(`Rendering kanban diagram
|
|
11
|
+
`+e);let c=o.db.getData(),l=s();l.htmlLabels=!1;let m=p(r);for(let e of c.nodes)e.domId=`${r}-${e.id}`;let h=m.append(`g`);h.attr(`class`,`sections`);let g=m.append(`g`);g.attr(`class`,`items`);let _=c.nodes.filter(e=>e.isGroup),v=0,y=[],b=25;for(let e of _){let t=l?.kanban?.sectionWidth||200;v+=1,e.x=t*v+(v-1)*10/2,e.width=t,e.y=0,e.height=t*3,e.rx=5,e.ry=5,e.cssClasses=e.cssClasses+` section-`+v;let n=await f(h,e);b=Math.max(b,n?.labelBBox?.height),y.push(n)}let x=0;for(let e of _){let t=y[x];x+=1;let n=l?.kanban?.sectionWidth||200,r=-n*3/2+b,i=r,a=c.nodes.filter(t=>t.parentId===e.id);for(let t of a){if(t.isGroup)throw Error(`Groups within groups are not allowed in Kanban diagrams`);t.x=e.x,t.width=n-15;let r=(await d(g,t,{config:l})).node().getBBox();t.y=i+r.height/2,await u(t),i=t.y+r.height/2+5}let o=t.cluster.select(`rect`),s=Math.max(i-r+30,50)+(b-25);o.attr(`height`,s)}n(void 0,m,l.mindmap?.padding??i.kanban.padding,l.mindmap?.useMaxWidth??i.kanban.useMaxWidth)},`draw`)},A=e(t=>{let n=``;for(let e=0;e<t.THEME_COLOR_LIMIT;e++)t[`lineColor`+e]=t[`lineColor`+e]||t[`cScaleInv`+e],a(t[`lineColor`+e])?t[`lineColor`+e]=o(t[`lineColor`+e],20):t[`lineColor`+e]=r(t[`lineColor`+e],20);let i=e((e,n)=>t.darkMode?r(e,n):o(e,n),`adjuster`);for(let e=0;e<t.THEME_COLOR_LIMIT;e++){let r=``+(17-3*e);n+=`
|
|
12
|
+
.section-${e-1} rect, .section-${e-1} path, .section-${e-1} circle, .section-${e-1} polygon, .section-${e-1} path {
|
|
13
|
+
fill: ${i(t[`cScale`+e],10)};
|
|
14
|
+
stroke: ${i(t[`cScale`+e],10)};
|
|
15
|
+
|
|
16
|
+
}
|
|
17
|
+
.section-${e-1} text {
|
|
18
|
+
fill: ${t[`cScaleLabel`+e]};
|
|
19
|
+
}
|
|
20
|
+
.node-icon-${e-1} {
|
|
21
|
+
font-size: 40px;
|
|
22
|
+
color: ${t[`cScaleLabel`+e]};
|
|
23
|
+
}
|
|
24
|
+
.section-edge-${e-1}{
|
|
25
|
+
stroke: ${t[`cScale`+e]};
|
|
26
|
+
}
|
|
27
|
+
.edge-depth-${e-1}{
|
|
28
|
+
stroke-width: ${r};
|
|
29
|
+
}
|
|
30
|
+
.section-${e-1} line {
|
|
31
|
+
stroke: ${t[`cScaleInv`+e]} ;
|
|
32
|
+
stroke-width: 3;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
.disabled, .disabled circle, .disabled text {
|
|
36
|
+
fill: lightgray;
|
|
37
|
+
}
|
|
38
|
+
.disabled text {
|
|
39
|
+
fill: #efefef;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
.node rect,
|
|
43
|
+
.node circle,
|
|
44
|
+
.node ellipse,
|
|
45
|
+
.node polygon,
|
|
46
|
+
.node path {
|
|
47
|
+
fill: ${t.background};
|
|
48
|
+
stroke: ${t.nodeBorder};
|
|
49
|
+
stroke-width: 1px;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
.kanban-ticket-link {
|
|
53
|
+
fill: ${t.background};
|
|
54
|
+
stroke: ${t.nodeBorder};
|
|
55
|
+
text-decoration: underline;
|
|
56
|
+
}
|
|
57
|
+
`}return n},`genSections`),j={db:O,renderer:k,parser:_,styles:e(e=>`
|
|
58
|
+
.edge {
|
|
59
|
+
stroke-width: 3;
|
|
60
|
+
}
|
|
61
|
+
${A(e)}
|
|
62
|
+
.section-root rect, .section-root path, .section-root circle, .section-root polygon {
|
|
63
|
+
fill: ${e.git0};
|
|
64
|
+
}
|
|
65
|
+
.section-root text {
|
|
66
|
+
fill: ${e.gitBranchLabel0};
|
|
67
|
+
}
|
|
68
|
+
.icon-container {
|
|
69
|
+
height:100%;
|
|
70
|
+
display: flex;
|
|
71
|
+
justify-content: center;
|
|
72
|
+
align-items: center;
|
|
73
|
+
}
|
|
74
|
+
.edge {
|
|
75
|
+
fill: none;
|
|
76
|
+
}
|
|
77
|
+
.cluster-label, .label {
|
|
78
|
+
color: ${e.textColor};
|
|
79
|
+
fill: ${e.textColor};
|
|
80
|
+
}
|
|
81
|
+
.kanban-label {
|
|
82
|
+
dy: 1em;
|
|
83
|
+
alignment-baseline: middle;
|
|
84
|
+
text-anchor: middle;
|
|
85
|
+
dominant-baseline: middle;
|
|
86
|
+
text-align: center;
|
|
87
|
+
}
|
|
88
|
+
${l()}
|
|
89
|
+
`,`getStyles`)};export{j as diagram};
|