mirror of
https://github.com/mermaid-js/mermaid.git
synced 2025-08-29 13:16:40 +02:00
Compare commits
29 Commits
6623-add-i
...
develop
Author | SHA1 | Date | |
---|---|---|---|
![]() |
82800a2c84 | ||
![]() |
27e700debd | ||
![]() |
01e47333d5 | ||
![]() |
d47ba7c2d1 | ||
![]() |
b1c4eb3f5c | ||
![]() |
310fcd2292 | ||
![]() |
04b6fc1280 | ||
![]() |
f46a151075 | ||
![]() |
b7e9d02b7c | ||
![]() |
00f5700320 | ||
![]() |
e32dc8513f | ||
![]() |
50127f3ffe | ||
![]() |
29bb0e3dca | ||
![]() |
1221de4c2d | ||
![]() |
c41e08cb7a | ||
![]() |
4760ed8893 | ||
![]() |
31ecf31c2e | ||
![]() |
b52766653c | ||
![]() |
6d9fad01a9 | ||
![]() |
8322a63598 | ||
![]() |
075e1b5e1f | ||
![]() |
3c9bd7be29 | ||
![]() |
93467a6fce | ||
![]() |
e438e035bc | ||
![]() |
2bc5b6d2fa | ||
![]() |
c0e2d4a23b | ||
![]() |
f7a0844a31 | ||
![]() |
2817383714 | ||
![]() |
80c6faf4d5 |
@@ -1,5 +0,0 @@
|
|||||||
---
|
|
||||||
'mermaid': minor
|
|
||||||
---
|
|
||||||
|
|
||||||
feat: Add custom images and icons support for sequence diagram actors
|
|
3
.github/workflows/e2e-applitools.yml
vendored
3
.github/workflows/e2e-applitools.yml
vendored
@@ -23,9 +23,6 @@ env:
|
|||||||
jobs:
|
jobs:
|
||||||
e2e-applitools:
|
e2e-applitools:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
container:
|
|
||||||
image: cypress/browsers:node-20.11.0-chrome-121.0.6167.85-1-ff-120.0-edge-121.0.2277.83-1
|
|
||||||
options: --user 1001
|
|
||||||
steps:
|
steps:
|
||||||
- if: ${{ ! env.USE_APPLI }}
|
- if: ${{ ! env.USE_APPLI }}
|
||||||
name: Warn if not using Applitools
|
name: Warn if not using Applitools
|
||||||
|
2
.github/workflows/e2e-timings.yml
vendored
2
.github/workflows/e2e-timings.yml
vendored
@@ -58,7 +58,7 @@ jobs:
|
|||||||
echo "EOF" >> $GITHUB_OUTPUT
|
echo "EOF" >> $GITHUB_OUTPUT
|
||||||
|
|
||||||
- name: Commit and create pull request
|
- name: Commit and create pull request
|
||||||
uses: peter-evans/create-pull-request@cb4d3bfce175d44325c6b7697f81e0afe8a79bdf
|
uses: peter-evans/create-pull-request@18e469570b1cf0dfc11d60ec121099f8ff3e617a
|
||||||
with:
|
with:
|
||||||
add-paths: |
|
add-paths: |
|
||||||
cypress/timings.json
|
cypress/timings.json
|
||||||
|
@@ -1,118 +0,0 @@
|
|||||||
import { imgSnapshotTest } from '../../helpers/util';
|
|
||||||
|
|
||||||
const looks = ['classic'] as const;
|
|
||||||
|
|
||||||
looks.forEach((look) => {
|
|
||||||
describe(`SequenceDiagram icon participants in ${look} look`, () => {
|
|
||||||
it(`single participant with icon`, () => {
|
|
||||||
const diagram = `
|
|
||||||
sequenceDiagram
|
|
||||||
participant Bob@{ type: "icon", icon: "fa:bell" }
|
|
||||||
Note over Bob: Icon participant`;
|
|
||||||
imgSnapshotTest(diagram, { look });
|
|
||||||
});
|
|
||||||
|
|
||||||
it(`two participants, one icon and one normal`, () => {
|
|
||||||
const diagram = `
|
|
||||||
sequenceDiagram
|
|
||||||
participant Bob@{ type: "icon", icon: "fa:bell" }
|
|
||||||
participant Alice
|
|
||||||
Bob->>Alice: Hello`;
|
|
||||||
imgSnapshotTest(diagram, { look });
|
|
||||||
});
|
|
||||||
|
|
||||||
it(`two icon participants`, () => {
|
|
||||||
const diagram = `
|
|
||||||
sequenceDiagram
|
|
||||||
participant Bob@{ type: "icon", icon: "fa:bell" }
|
|
||||||
participant Alice@{ type: "icon", icon: "fa:user" }
|
|
||||||
Bob->>Alice: Hello
|
|
||||||
Alice-->>Bob: Hi`;
|
|
||||||
imgSnapshotTest(diagram, { look });
|
|
||||||
});
|
|
||||||
|
|
||||||
it(`with markdown htmlLabels:true content`, () => {
|
|
||||||
// html/markdown in messages/notes (participants themselves don't support label/form/w/h)
|
|
||||||
const diagram = `
|
|
||||||
sequenceDiagram
|
|
||||||
participant Bob@{ type: "icon", icon: "fa:bell" }
|
|
||||||
participant Alice
|
|
||||||
Bob->>Alice: This is **bold** </br>and <strong>strong</strong>
|
|
||||||
Note over Bob,Alice: Mixed <em>HTML</em> and **markdown**`;
|
|
||||||
imgSnapshotTest(diagram, { look });
|
|
||||||
});
|
|
||||||
|
|
||||||
it(`with markdown htmlLabels:false content`, () => {
|
|
||||||
const diagram = `
|
|
||||||
sequenceDiagram
|
|
||||||
participant Bob@{ type: "icon", icon: "fa:bell" }
|
|
||||||
participant Alice
|
|
||||||
Bob->>Alice: This is **bold** </br>and <strong>strong</strong>`;
|
|
||||||
imgSnapshotTest(diagram, {
|
|
||||||
look,
|
|
||||||
htmlLabels: false,
|
|
||||||
flowchart: { htmlLabels: false },
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
it(`with styles applied to participant`, () => {
|
|
||||||
// style by participant id
|
|
||||||
const diagram = `
|
|
||||||
sequenceDiagram
|
|
||||||
participant Bob@{ type: "icon", icon: "fa:bell" }
|
|
||||||
participant Alice
|
|
||||||
Bob->>Alice: Styled participant
|
|
||||||
`;
|
|
||||||
imgSnapshotTest(diagram, { look });
|
|
||||||
});
|
|
||||||
|
|
||||||
it(`with classDef and class application`, () => {
|
|
||||||
const diagram = `
|
|
||||||
sequenceDiagram
|
|
||||||
participant Bob@{ type: "icon", icon: "fa:bell" }
|
|
||||||
participant Alice
|
|
||||||
Bob->>Alice: Classed participant
|
|
||||||
`;
|
|
||||||
imgSnapshotTest(diagram, { look });
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
// Colored emoji icon tests (analogous to the flowchart colored icon tests), no direction line.
|
|
||||||
describe('SequenceDiagram colored icon participant', () => {
|
|
||||||
it('colored emoji icon without styles', () => {
|
|
||||||
const icon = 'fluent-emoji:tropical-fish';
|
|
||||||
const diagram = `
|
|
||||||
sequenceDiagram
|
|
||||||
participant Bob@{ type: "icon", icon: "${icon}" }
|
|
||||||
Note over Bob: colored emoji icon
|
|
||||||
`;
|
|
||||||
imgSnapshotTest(diagram);
|
|
||||||
});
|
|
||||||
|
|
||||||
it('colored emoji icon with styles', () => {
|
|
||||||
const icon = 'fluent-emoji:tropical-fish';
|
|
||||||
const diagram = `
|
|
||||||
sequenceDiagram
|
|
||||||
participant Bob@{ type: "icon", icon: "${icon}" }
|
|
||||||
`;
|
|
||||||
imgSnapshotTest(diagram);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
// Mixed scenario: multiple interactions, still no direction line.
|
|
||||||
describe('SequenceDiagram icon participant with multiple interactions', () => {
|
|
||||||
const icon = 'fa:bell-slash';
|
|
||||||
it('icon participant interacts with two normal participants', () => {
|
|
||||||
const diagram = `
|
|
||||||
sequenceDiagram
|
|
||||||
participant Bob@{ type: "icon", icon: "${icon}" }
|
|
||||||
participant Alice
|
|
||||||
participant Carol
|
|
||||||
Bob->>Alice: Ping
|
|
||||||
Alice-->>Bob: Pong
|
|
||||||
Bob->>Carol: Notify
|
|
||||||
Note right of Bob: Icon side note`;
|
|
||||||
imgSnapshotTest(diagram);
|
|
||||||
});
|
|
||||||
});
|
|
@@ -1,94 +0,0 @@
|
|||||||
import { imgSnapshotTest } from '../../helpers/util';
|
|
||||||
|
|
||||||
const looks = ['classic'] as const;
|
|
||||||
|
|
||||||
looks.forEach((look) => {
|
|
||||||
describe(`SequenceDiagram image participants in ${look} look`, () => {
|
|
||||||
it(`single participant with image`, () => {
|
|
||||||
const diagram = `
|
|
||||||
sequenceDiagram
|
|
||||||
participant Bob@{ type: "image", "image": "https://cdn.pixabay.com/photo/2020/02/22/18/49/paper-4871356_1280.jpg" }
|
|
||||||
Note over Bob: Image participant`;
|
|
||||||
imgSnapshotTest(diagram, { look });
|
|
||||||
});
|
|
||||||
|
|
||||||
it(`two participants, one image and one normal`, () => {
|
|
||||||
const diagram = `
|
|
||||||
sequenceDiagram
|
|
||||||
participant Bob@{ type: "image", "image": "https://cdn.pixabay.com/photo/2020/02/22/18/49/paper-4871356_1280.jpg" }
|
|
||||||
participant Alice
|
|
||||||
Bob->>Alice: Hello`;
|
|
||||||
imgSnapshotTest(diagram, { look });
|
|
||||||
});
|
|
||||||
|
|
||||||
it(`two image participants`, () => {
|
|
||||||
const diagram = `
|
|
||||||
sequenceDiagram
|
|
||||||
participant Bob@{ type: "image", "image": "https://cdn.pixabay.com/photo/2020/02/22/18/49/paper-4871356_1280.jpg" }
|
|
||||||
participant Alice@{ type: "image", "image": "https://cdn.pixabay.com/photo/2020/02/22/18/49/paper-4871356_1280.jpg" }
|
|
||||||
Bob->>Alice: Hello
|
|
||||||
Alice-->>Bob: Hi`;
|
|
||||||
imgSnapshotTest(diagram, { look });
|
|
||||||
});
|
|
||||||
|
|
||||||
it(`with markdown htmlLabels:true content`, () => {
|
|
||||||
const diagram = `
|
|
||||||
sequenceDiagram
|
|
||||||
participant Bob@{ type: "image", "image": "https://cdn.pixabay.com/photo/2020/02/22/18/49/paper-4871356_1280.jpg" }
|
|
||||||
participant Alice
|
|
||||||
Bob->>Alice: This is **bold** </br>and <strong>strong</strong>
|
|
||||||
Note over Bob,Alice: Mixed <em>HTML</em> and **markdown**`;
|
|
||||||
imgSnapshotTest(diagram, { look });
|
|
||||||
});
|
|
||||||
|
|
||||||
it(`with markdown htmlLabels:false content`, () => {
|
|
||||||
const diagram = `
|
|
||||||
sequenceDiagram
|
|
||||||
participant Bob@{ type: "image", "image": "https://cdn.pixabay.com/photo/2020/02/22/18/49/paper-4871356_1280.jpg" }
|
|
||||||
participant Alice
|
|
||||||
Bob->>Alice: This is **bold** </br>and <strong>strong</strong>`;
|
|
||||||
imgSnapshotTest(diagram, {
|
|
||||||
look,
|
|
||||||
htmlLabels: false,
|
|
||||||
flowchart: { htmlLabels: false },
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
it(`with styles applied to participant`, () => {
|
|
||||||
const diagram = `
|
|
||||||
sequenceDiagram
|
|
||||||
participant Bob@{ type: "image", "image": "https://cdn.pixabay.com/photo/2020/02/22/18/49/paper-4871356_1280.jpg" }
|
|
||||||
participant Alice
|
|
||||||
Bob->>Alice: Styled participant
|
|
||||||
`;
|
|
||||||
imgSnapshotTest(diagram, { look });
|
|
||||||
});
|
|
||||||
|
|
||||||
it(`with classDef and class application`, () => {
|
|
||||||
const diagram = `
|
|
||||||
sequenceDiagram
|
|
||||||
participant Bob@{ type: "image", "image": "https://cdn.pixabay.com/photo/2020/02/22/18/49/paper-4871356_1280.jpg" }
|
|
||||||
participant Alice
|
|
||||||
Bob->>Alice: Classed participant
|
|
||||||
`;
|
|
||||||
imgSnapshotTest(diagram, { look });
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
// Mixed scenario: multiple interactions, still no direction line.
|
|
||||||
describe('SequenceDiagram image participant with multiple interactions', () => {
|
|
||||||
const imageUrl = 'https://cdn.pixabay.com/photo/2020/02/22/18/49/paper-4871356_1280.jpg';
|
|
||||||
it('image participant interacts with two normal participants', () => {
|
|
||||||
const diagram = `
|
|
||||||
sequenceDiagram
|
|
||||||
participant Bob@{ type: "image", "image": "${imageUrl}" }
|
|
||||||
participant Alice
|
|
||||||
participant Carol
|
|
||||||
Bob->>Alice: Ping
|
|
||||||
Alice-->>Bob: Pong
|
|
||||||
Bob->>Carol: Notify
|
|
||||||
Note right of Bob: Image side note`;
|
|
||||||
imgSnapshotTest(diagram);
|
|
||||||
});
|
|
||||||
});
|
|
@@ -2,219 +2,223 @@
|
|||||||
"durations": [
|
"durations": [
|
||||||
{
|
{
|
||||||
"spec": "cypress/integration/other/configuration.spec.js",
|
"spec": "cypress/integration/other/configuration.spec.js",
|
||||||
"duration": 6297
|
"duration": 6162
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"spec": "cypress/integration/other/external-diagrams.spec.js",
|
"spec": "cypress/integration/other/external-diagrams.spec.js",
|
||||||
"duration": 2187
|
"duration": 2148
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"spec": "cypress/integration/other/ghsa.spec.js",
|
"spec": "cypress/integration/other/ghsa.spec.js",
|
||||||
"duration": 3509
|
"duration": 3585
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"spec": "cypress/integration/other/iife.spec.js",
|
"spec": "cypress/integration/other/iife.spec.js",
|
||||||
"duration": 2218
|
"duration": 2099
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"spec": "cypress/integration/other/interaction.spec.js",
|
"spec": "cypress/integration/other/interaction.spec.js",
|
||||||
"duration": 12104
|
"duration": 12119
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"spec": "cypress/integration/other/rerender.spec.js",
|
"spec": "cypress/integration/other/rerender.spec.js",
|
||||||
"duration": 2151
|
"duration": 2063
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"spec": "cypress/integration/other/xss.spec.js",
|
"spec": "cypress/integration/other/xss.spec.js",
|
||||||
"duration": 33064
|
"duration": 31921
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"spec": "cypress/integration/rendering/appli.spec.js",
|
"spec": "cypress/integration/rendering/appli.spec.js",
|
||||||
"duration": 3488
|
"duration": 3385
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"spec": "cypress/integration/rendering/architecture.spec.ts",
|
"spec": "cypress/integration/rendering/architecture.spec.ts",
|
||||||
"duration": 106
|
"duration": 108
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"spec": "cypress/integration/rendering/block.spec.js",
|
"spec": "cypress/integration/rendering/block.spec.js",
|
||||||
"duration": 18317
|
"duration": 18063
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"spec": "cypress/integration/rendering/c4.spec.js",
|
"spec": "cypress/integration/rendering/c4.spec.js",
|
||||||
"duration": 5592
|
"duration": 5519
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"spec": "cypress/integration/rendering/classDiagram-elk-v3.spec.js",
|
"spec": "cypress/integration/rendering/classDiagram-elk-v3.spec.js",
|
||||||
"duration": 39358
|
"duration": 40040
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"spec": "cypress/integration/rendering/classDiagram-handDrawn-v3.spec.js",
|
"spec": "cypress/integration/rendering/classDiagram-handDrawn-v3.spec.js",
|
||||||
"duration": 37160
|
"duration": 38665
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"spec": "cypress/integration/rendering/classDiagram-v2.spec.js",
|
"spec": "cypress/integration/rendering/classDiagram-v2.spec.js",
|
||||||
"duration": 23660
|
"duration": 22836
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"spec": "cypress/integration/rendering/classDiagram-v3.spec.js",
|
"spec": "cypress/integration/rendering/classDiagram-v3.spec.js",
|
||||||
"duration": 36866
|
"duration": 37096
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"spec": "cypress/integration/rendering/classDiagram.spec.js",
|
"spec": "cypress/integration/rendering/classDiagram.spec.js",
|
||||||
"duration": 17334
|
"duration": 16452
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"spec": "cypress/integration/rendering/conf-and-directives.spec.js",
|
"spec": "cypress/integration/rendering/conf-and-directives.spec.js",
|
||||||
"duration": 9871
|
"duration": 10387
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"spec": "cypress/integration/rendering/current.spec.js",
|
"spec": "cypress/integration/rendering/current.spec.js",
|
||||||
"duration": 2833
|
"duration": 2803
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"spec": "cypress/integration/rendering/erDiagram-unified.spec.js",
|
"spec": "cypress/integration/rendering/erDiagram-unified.spec.js",
|
||||||
"duration": 85321
|
"duration": 86891
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"spec": "cypress/integration/rendering/erDiagram.spec.js",
|
"spec": "cypress/integration/rendering/erDiagram.spec.js",
|
||||||
"duration": 15673
|
"duration": 15206
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"spec": "cypress/integration/rendering/errorDiagram.spec.js",
|
"spec": "cypress/integration/rendering/errorDiagram.spec.js",
|
||||||
"duration": 3724
|
"duration": 3540
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"spec": "cypress/integration/rendering/flowchart-elk.spec.js",
|
"spec": "cypress/integration/rendering/flowchart-elk.spec.js",
|
||||||
"duration": 41178
|
"duration": 41975
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"spec": "cypress/integration/rendering/flowchart-handDrawn.spec.js",
|
"spec": "cypress/integration/rendering/flowchart-handDrawn.spec.js",
|
||||||
"duration": 29966
|
"duration": 30909
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"spec": "cypress/integration/rendering/flowchart-icon.spec.js",
|
"spec": "cypress/integration/rendering/flowchart-icon.spec.js",
|
||||||
"duration": 7689
|
"duration": 7881
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"spec": "cypress/integration/rendering/flowchart-shape-alias.spec.ts",
|
"spec": "cypress/integration/rendering/flowchart-shape-alias.spec.ts",
|
||||||
"duration": 24709
|
"duration": 24294
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"spec": "cypress/integration/rendering/flowchart-v2.spec.js",
|
"spec": "cypress/integration/rendering/flowchart-v2.spec.js",
|
||||||
"duration": 45565
|
"duration": 47652
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"spec": "cypress/integration/rendering/flowchart.spec.js",
|
"spec": "cypress/integration/rendering/flowchart.spec.js",
|
||||||
"duration": 31144
|
"duration": 32049
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"spec": "cypress/integration/rendering/gantt.spec.js",
|
"spec": "cypress/integration/rendering/gantt.spec.js",
|
||||||
"duration": 20808
|
"duration": 20248
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"spec": "cypress/integration/rendering/gitGraph.spec.js",
|
"spec": "cypress/integration/rendering/gitGraph.spec.js",
|
||||||
"duration": 49985
|
"duration": 51202
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"spec": "cypress/integration/rendering/iconShape.spec.ts",
|
"spec": "cypress/integration/rendering/iconShape.spec.ts",
|
||||||
"duration": 273272
|
"duration": 283546
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"spec": "cypress/integration/rendering/imageShape.spec.ts",
|
"spec": "cypress/integration/rendering/imageShape.spec.ts",
|
||||||
"duration": 55880
|
"duration": 57257
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"spec": "cypress/integration/rendering/info.spec.ts",
|
"spec": "cypress/integration/rendering/info.spec.ts",
|
||||||
"duration": 3271
|
"duration": 3352
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"spec": "cypress/integration/rendering/journey.spec.js",
|
"spec": "cypress/integration/rendering/journey.spec.js",
|
||||||
"duration": 7293
|
"duration": 7423
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"spec": "cypress/integration/rendering/kanban.spec.ts",
|
"spec": "cypress/integration/rendering/kanban.spec.ts",
|
||||||
"duration": 7861
|
"duration": 7804
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"spec": "cypress/integration/rendering/katex.spec.js",
|
"spec": "cypress/integration/rendering/katex.spec.js",
|
||||||
"duration": 3922
|
"duration": 3847
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"spec": "cypress/integration/rendering/marker_unique_id.spec.js",
|
"spec": "cypress/integration/rendering/marker_unique_id.spec.js",
|
||||||
"duration": 2726
|
"duration": 2637
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"spec": "cypress/integration/rendering/mindmap.spec.ts",
|
"spec": "cypress/integration/rendering/mindmap.spec.ts",
|
||||||
"duration": 11670
|
"duration": 11658
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"spec": "cypress/integration/rendering/newShapes.spec.ts",
|
"spec": "cypress/integration/rendering/newShapes.spec.ts",
|
||||||
"duration": 146020
|
"duration": 149500
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"spec": "cypress/integration/rendering/oldShapes.spec.ts",
|
"spec": "cypress/integration/rendering/oldShapes.spec.ts",
|
||||||
"duration": 114244
|
"duration": 115427
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"spec": "cypress/integration/rendering/packet.spec.ts",
|
"spec": "cypress/integration/rendering/packet.spec.ts",
|
||||||
"duration": 5036
|
"duration": 4801
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"spec": "cypress/integration/rendering/pie.spec.ts",
|
"spec": "cypress/integration/rendering/pie.spec.ts",
|
||||||
"duration": 6545
|
"duration": 6786
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"spec": "cypress/integration/rendering/quadrantChart.spec.js",
|
"spec": "cypress/integration/rendering/quadrantChart.spec.js",
|
||||||
"duration": 9097
|
"duration": 9422
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"spec": "cypress/integration/rendering/radar.spec.js",
|
"spec": "cypress/integration/rendering/radar.spec.js",
|
||||||
"duration": 5676
|
"duration": 5652
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"spec": "cypress/integration/rendering/requirement.spec.js",
|
"spec": "cypress/integration/rendering/requirement.spec.js",
|
||||||
"duration": 2795
|
"duration": 2787
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"spec": "cypress/integration/rendering/requirementDiagram-unified.spec.js",
|
"spec": "cypress/integration/rendering/requirementDiagram-unified.spec.js",
|
||||||
"duration": 51660
|
"duration": 53631
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"spec": "cypress/integration/rendering/sankey.spec.ts",
|
"spec": "cypress/integration/rendering/sankey.spec.ts",
|
||||||
"duration": 6957
|
"duration": 7075
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"spec": "cypress/integration/rendering/sequencediagram-v2.spec.js",
|
||||||
|
"duration": 20446
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"spec": "cypress/integration/rendering/sequencediagram.spec.js",
|
"spec": "cypress/integration/rendering/sequencediagram.spec.js",
|
||||||
"duration": 36026
|
"duration": 37326
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"spec": "cypress/integration/rendering/stateDiagram-v2.spec.js",
|
"spec": "cypress/integration/rendering/stateDiagram-v2.spec.js",
|
||||||
"duration": 29551
|
"duration": 29208
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"spec": "cypress/integration/rendering/stateDiagram.spec.js",
|
"spec": "cypress/integration/rendering/stateDiagram.spec.js",
|
||||||
"duration": 17364
|
"duration": 16328
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"spec": "cypress/integration/rendering/theme.spec.js",
|
"spec": "cypress/integration/rendering/theme.spec.js",
|
||||||
"duration": 30209
|
"duration": 30541
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"spec": "cypress/integration/rendering/timeline.spec.ts",
|
"spec": "cypress/integration/rendering/timeline.spec.ts",
|
||||||
"duration": 8699
|
"duration": 8611
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"spec": "cypress/integration/rendering/treemap.spec.ts",
|
"spec": "cypress/integration/rendering/treemap.spec.ts",
|
||||||
"duration": 12168
|
"duration": 11878
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"spec": "cypress/integration/rendering/xyChart.spec.js",
|
"spec": "cypress/integration/rendering/xyChart.spec.js",
|
||||||
"duration": 21453
|
"duration": 20400
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"spec": "cypress/integration/rendering/zenuml.spec.js",
|
"spec": "cypress/integration/rendering/zenuml.spec.js",
|
||||||
"duration": 3577
|
"duration": 3528
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
@@ -19,6 +19,7 @@
|
|||||||
- [addDirective](functions/addDirective.md)
|
- [addDirective](functions/addDirective.md)
|
||||||
- [getConfig](functions/getConfig.md)
|
- [getConfig](functions/getConfig.md)
|
||||||
- [getSiteConfig](functions/getSiteConfig.md)
|
- [getSiteConfig](functions/getSiteConfig.md)
|
||||||
|
- [getUserDefinedConfig](functions/getUserDefinedConfig.md)
|
||||||
- [reset](functions/reset.md)
|
- [reset](functions/reset.md)
|
||||||
- [sanitize](functions/sanitize.md)
|
- [sanitize](functions/sanitize.md)
|
||||||
- [saveConfigFromInitialize](functions/saveConfigFromInitialize.md)
|
- [saveConfigFromInitialize](functions/saveConfigFromInitialize.md)
|
||||||
|
19
docs/config/setup/config/functions/getUserDefinedConfig.md
Normal file
19
docs/config/setup/config/functions/getUserDefinedConfig.md
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
> **Warning**
|
||||||
|
>
|
||||||
|
> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT.
|
||||||
|
>
|
||||||
|
> ## Please edit the corresponding file in [/packages/mermaid/src/docs/config/setup/config/functions/getUserDefinedConfig.md](../../../../../packages/mermaid/src/docs/config/setup/config/functions/getUserDefinedConfig.md).
|
||||||
|
|
||||||
|
[**mermaid**](../../README.md)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# Function: getUserDefinedConfig()
|
||||||
|
|
||||||
|
> **getUserDefinedConfig**(): [`MermaidConfig`](../../mermaid/interfaces/MermaidConfig.md)
|
||||||
|
|
||||||
|
Defined in: [packages/mermaid/src/config.ts:252](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L252)
|
||||||
|
|
||||||
|
## Returns
|
||||||
|
|
||||||
|
[`MermaidConfig`](../../mermaid/interfaces/MermaidConfig.md)
|
@@ -10,7 +10,7 @@
|
|||||||
|
|
||||||
# Interface: ParseOptions
|
# Interface: ParseOptions
|
||||||
|
|
||||||
Defined in: [packages/mermaid/src/types.ts:72](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/types.ts#L72)
|
Defined in: [packages/mermaid/src/types.ts:84](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/types.ts#L84)
|
||||||
|
|
||||||
## Properties
|
## Properties
|
||||||
|
|
||||||
@@ -18,7 +18,7 @@ Defined in: [packages/mermaid/src/types.ts:72](https://github.com/mermaid-js/mer
|
|||||||
|
|
||||||
> `optional` **suppressErrors**: `boolean`
|
> `optional` **suppressErrors**: `boolean`
|
||||||
|
|
||||||
Defined in: [packages/mermaid/src/types.ts:77](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/types.ts#L77)
|
Defined in: [packages/mermaid/src/types.ts:89](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/types.ts#L89)
|
||||||
|
|
||||||
If `true`, parse will return `false` instead of throwing error when the diagram is invalid.
|
If `true`, parse will return `false` instead of throwing error when the diagram is invalid.
|
||||||
The `parseError` function will not be called.
|
The `parseError` function will not be called.
|
||||||
|
@@ -10,7 +10,7 @@
|
|||||||
|
|
||||||
# Interface: ParseResult
|
# Interface: ParseResult
|
||||||
|
|
||||||
Defined in: [packages/mermaid/src/types.ts:80](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/types.ts#L80)
|
Defined in: [packages/mermaid/src/types.ts:92](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/types.ts#L92)
|
||||||
|
|
||||||
## Properties
|
## Properties
|
||||||
|
|
||||||
@@ -18,7 +18,7 @@ Defined in: [packages/mermaid/src/types.ts:80](https://github.com/mermaid-js/mer
|
|||||||
|
|
||||||
> **config**: [`MermaidConfig`](MermaidConfig.md)
|
> **config**: [`MermaidConfig`](MermaidConfig.md)
|
||||||
|
|
||||||
Defined in: [packages/mermaid/src/types.ts:88](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/types.ts#L88)
|
Defined in: [packages/mermaid/src/types.ts:100](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/types.ts#L100)
|
||||||
|
|
||||||
The config passed as YAML frontmatter or directives
|
The config passed as YAML frontmatter or directives
|
||||||
|
|
||||||
@@ -28,6 +28,6 @@ The config passed as YAML frontmatter or directives
|
|||||||
|
|
||||||
> **diagramType**: `string`
|
> **diagramType**: `string`
|
||||||
|
|
||||||
Defined in: [packages/mermaid/src/types.ts:84](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/types.ts#L84)
|
Defined in: [packages/mermaid/src/types.ts:96](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/types.ts#L96)
|
||||||
|
|
||||||
The diagram type, e.g. 'flowchart', 'sequence', etc.
|
The diagram type, e.g. 'flowchart', 'sequence', etc.
|
||||||
|
@@ -10,7 +10,7 @@
|
|||||||
|
|
||||||
# Interface: RenderResult
|
# Interface: RenderResult
|
||||||
|
|
||||||
Defined in: [packages/mermaid/src/types.ts:98](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/types.ts#L98)
|
Defined in: [packages/mermaid/src/types.ts:110](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/types.ts#L110)
|
||||||
|
|
||||||
## Properties
|
## Properties
|
||||||
|
|
||||||
@@ -18,7 +18,7 @@ Defined in: [packages/mermaid/src/types.ts:98](https://github.com/mermaid-js/mer
|
|||||||
|
|
||||||
> `optional` **bindFunctions**: (`element`) => `void`
|
> `optional` **bindFunctions**: (`element`) => `void`
|
||||||
|
|
||||||
Defined in: [packages/mermaid/src/types.ts:116](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/types.ts#L116)
|
Defined in: [packages/mermaid/src/types.ts:128](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/types.ts#L128)
|
||||||
|
|
||||||
Bind function to be called after the svg has been inserted into the DOM.
|
Bind function to be called after the svg has been inserted into the DOM.
|
||||||
This is necessary for adding event listeners to the elements in the svg.
|
This is necessary for adding event listeners to the elements in the svg.
|
||||||
@@ -45,7 +45,7 @@ bindFunctions?.(div); // To call bindFunctions only if it's present.
|
|||||||
|
|
||||||
> **diagramType**: `string`
|
> **diagramType**: `string`
|
||||||
|
|
||||||
Defined in: [packages/mermaid/src/types.ts:106](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/types.ts#L106)
|
Defined in: [packages/mermaid/src/types.ts:118](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/types.ts#L118)
|
||||||
|
|
||||||
The diagram type, e.g. 'flowchart', 'sequence', etc.
|
The diagram type, e.g. 'flowchart', 'sequence', etc.
|
||||||
|
|
||||||
@@ -55,6 +55,6 @@ The diagram type, e.g. 'flowchart', 'sequence', etc.
|
|||||||
|
|
||||||
> **svg**: `string`
|
> **svg**: `string`
|
||||||
|
|
||||||
Defined in: [packages/mermaid/src/types.ts:102](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/types.ts#L102)
|
Defined in: [packages/mermaid/src/types.ts:114](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/types.ts#L114)
|
||||||
|
|
||||||
The svg code for the rendered graph.
|
The svg code for the rendered graph.
|
||||||
|
@@ -983,11 +983,23 @@ flowchart TD
|
|||||||
- `b`
|
- `b`
|
||||||
- **w**: The width of the image. If not defined, this will default to the natural width of the image.
|
- **w**: The width of the image. If not defined, this will default to the natural width of the image.
|
||||||
- **h**: The height of the image. If not defined, this will default to the natural height of the image.
|
- **h**: The height of the image. If not defined, this will default to the natural height of the image.
|
||||||
- **constraint**: Determines if the image should constrain the node size. This setting also ensures the image maintains its original aspect ratio, adjusting the height (`h`) accordingly to the width (`w`). If not defined, this will default to `off` Possible values are:
|
- **constraint**: Determines if the image should constrain the node size. This setting also ensures the image maintains its original aspect ratio, adjusting the width (`w`) accordingly to the height (`h`). If not defined, this will default to `off` Possible values are:
|
||||||
- `on`
|
- `on`
|
||||||
- `off`
|
- `off`
|
||||||
|
|
||||||
These new shapes provide additional flexibility and visual appeal to your flowcharts, making them more informative and engaging.
|
If you want to resize an image, but keep the same aspect ratio, set `h`, and set `constraint: on` to constrain the aspect ratio. E.g.
|
||||||
|
|
||||||
|
```mermaid-example
|
||||||
|
flowchart TD
|
||||||
|
%% My image with a constrained aspect ratio
|
||||||
|
A@{ img: "https://mermaid.js.org/favicon.svg", label: "My example image label", pos: "t", h: 60, constraint: "on" }
|
||||||
|
```
|
||||||
|
|
||||||
|
```mermaid
|
||||||
|
flowchart TD
|
||||||
|
%% My image with a constrained aspect ratio
|
||||||
|
A@{ img: "https://mermaid.js.org/favicon.svg", label: "My example image label", pos: "t", h: 60, constraint: "on" }
|
||||||
|
```
|
||||||
|
|
||||||
## Links between nodes
|
## Links between nodes
|
||||||
|
|
||||||
|
@@ -194,46 +194,6 @@ sequenceDiagram
|
|||||||
Bob->>Alice: Queue response
|
Bob->>Alice: Queue response
|
||||||
```
|
```
|
||||||
|
|
||||||
### Icon
|
|
||||||
|
|
||||||
If you want to use a custom icon for a participant, use the JSON configuration syntax as shown below. The `icon` value can be a FontAwesome icon name, emoji, or other supported icon identifier.
|
|
||||||
|
|
||||||
```mermaid-example
|
|
||||||
sequenceDiagram
|
|
||||||
participant Alice@{ "type" : "icon", "icon": "fa:bell" }
|
|
||||||
participant Bob
|
|
||||||
Alice->>Bob: Icon participant
|
|
||||||
Bob->>Alice: Response to icon
|
|
||||||
```
|
|
||||||
|
|
||||||
```mermaid
|
|
||||||
sequenceDiagram
|
|
||||||
participant Alice@{ "type" : "icon", "icon": "fa:bell" }
|
|
||||||
participant Bob
|
|
||||||
Alice->>Bob: Icon participant
|
|
||||||
Bob->>Alice: Response to icon
|
|
||||||
```
|
|
||||||
|
|
||||||
### Image
|
|
||||||
|
|
||||||
If you want to use a custom image for a participant, use the JSON configuration syntax as shown below. The `image` value should be a valid image URL.
|
|
||||||
|
|
||||||
```mermaid-example
|
|
||||||
sequenceDiagram
|
|
||||||
participant Alice@{ "type" : "image", "image": "https://cdn.pixabay.com/photo/2020/02/22/18/49/paper-4871356_1280.jpg" }
|
|
||||||
participant Bob
|
|
||||||
Alice->>Bob: Image participant
|
|
||||||
Bob->>Alice: Response to image
|
|
||||||
```
|
|
||||||
|
|
||||||
```mermaid
|
|
||||||
sequenceDiagram
|
|
||||||
participant Alice@{ "type" : "image", "image": "https://cdn.pixabay.com/photo/2020/02/22/18/49/paper-4871356_1280.jpg" }
|
|
||||||
participant Bob
|
|
||||||
Alice->>Bob: Image participant
|
|
||||||
Bob->>Alice: Response to image
|
|
||||||
```
|
|
||||||
|
|
||||||
### Aliases
|
### Aliases
|
||||||
|
|
||||||
The actor can have a convenient identifier and a descriptive label.
|
The actor can have a convenient identifier and a descriptive label.
|
||||||
|
@@ -68,7 +68,7 @@
|
|||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@braintree/sanitize-url": "^7.0.4",
|
"@braintree/sanitize-url": "^7.0.4",
|
||||||
"@iconify/utils": "^2.1.33",
|
"@iconify/utils": "^3.0.1",
|
||||||
"@mermaid-js/parser": "workspace:^",
|
"@mermaid-js/parser": "workspace:^",
|
||||||
"@types/d3": "^7.4.3",
|
"@types/d3": "^7.4.3",
|
||||||
"cytoscape": "^3.29.3",
|
"cytoscape": "^3.29.3",
|
||||||
|
@@ -78,3 +78,187 @@ describe('when working with site config', () => {
|
|||||||
expect(config_4.altFontFamily).toBeUndefined();
|
expect(config_4.altFontFamily).toBeUndefined();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
describe('getUserDefinedConfig', () => {
|
||||||
|
beforeEach(() => {
|
||||||
|
configApi.reset();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should return empty object when no user config is defined', () => {
|
||||||
|
const userConfig = configApi.getUserDefinedConfig();
|
||||||
|
expect(userConfig).toEqual({});
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should return config from initialize only', () => {
|
||||||
|
const initConfig: MermaidConfig = { theme: 'dark', fontFamily: 'Arial' };
|
||||||
|
configApi.saveConfigFromInitialize(initConfig);
|
||||||
|
|
||||||
|
const userConfig = configApi.getUserDefinedConfig();
|
||||||
|
expect(userConfig).toEqual(initConfig);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should return config from directives only', () => {
|
||||||
|
const directive1: MermaidConfig = { layout: 'elk', fontSize: 14 };
|
||||||
|
const directive2: MermaidConfig = { theme: 'forest' };
|
||||||
|
|
||||||
|
configApi.addDirective(directive1);
|
||||||
|
configApi.addDirective(directive2);
|
||||||
|
|
||||||
|
expect(configApi.getUserDefinedConfig()).toMatchInlineSnapshot(`
|
||||||
|
{
|
||||||
|
"fontFamily": "Arial",
|
||||||
|
"fontSize": 14,
|
||||||
|
"layout": "elk",
|
||||||
|
"theme": "forest",
|
||||||
|
}
|
||||||
|
`);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should combine initialize config and directives', () => {
|
||||||
|
const initConfig: MermaidConfig = { theme: 'dark', fontFamily: 'Arial', layout: 'dagre' };
|
||||||
|
const directive1: MermaidConfig = { layout: 'elk', fontSize: 14 };
|
||||||
|
const directive2: MermaidConfig = { theme: 'forest' };
|
||||||
|
|
||||||
|
configApi.saveConfigFromInitialize(initConfig);
|
||||||
|
configApi.addDirective(directive1);
|
||||||
|
configApi.addDirective(directive2);
|
||||||
|
|
||||||
|
const userConfig = configApi.getUserDefinedConfig();
|
||||||
|
expect(userConfig).toMatchInlineSnapshot(`
|
||||||
|
{
|
||||||
|
"fontFamily": "Arial",
|
||||||
|
"fontSize": 14,
|
||||||
|
"layout": "elk",
|
||||||
|
"theme": "forest",
|
||||||
|
}
|
||||||
|
`);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should handle nested config objects properly', () => {
|
||||||
|
const initConfig: MermaidConfig = {
|
||||||
|
flowchart: { nodeSpacing: 50, rankSpacing: 100 },
|
||||||
|
theme: 'default',
|
||||||
|
};
|
||||||
|
const directive: MermaidConfig = {
|
||||||
|
flowchart: { nodeSpacing: 75, curve: 'basis' },
|
||||||
|
mindmap: { padding: 20 },
|
||||||
|
};
|
||||||
|
|
||||||
|
configApi.saveConfigFromInitialize(initConfig);
|
||||||
|
configApi.addDirective(directive);
|
||||||
|
|
||||||
|
const userConfig = configApi.getUserDefinedConfig();
|
||||||
|
expect(userConfig).toMatchInlineSnapshot(`
|
||||||
|
{
|
||||||
|
"flowchart": {
|
||||||
|
"curve": "basis",
|
||||||
|
"nodeSpacing": 75,
|
||||||
|
"rankSpacing": 100,
|
||||||
|
},
|
||||||
|
"mindmap": {
|
||||||
|
"padding": 20,
|
||||||
|
},
|
||||||
|
"theme": "default",
|
||||||
|
}
|
||||||
|
`);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should handle complex nested overrides', () => {
|
||||||
|
const initConfig: MermaidConfig = {
|
||||||
|
flowchart: {
|
||||||
|
nodeSpacing: 50,
|
||||||
|
rankSpacing: 100,
|
||||||
|
curve: 'linear',
|
||||||
|
},
|
||||||
|
theme: 'default',
|
||||||
|
};
|
||||||
|
const directive1: MermaidConfig = {
|
||||||
|
flowchart: {
|
||||||
|
nodeSpacing: 75,
|
||||||
|
},
|
||||||
|
fontSize: 12,
|
||||||
|
};
|
||||||
|
const directive2: MermaidConfig = {
|
||||||
|
flowchart: {
|
||||||
|
curve: 'basis',
|
||||||
|
nodeSpacing: 100,
|
||||||
|
},
|
||||||
|
mindmap: {
|
||||||
|
padding: 15,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
configApi.saveConfigFromInitialize(initConfig);
|
||||||
|
configApi.addDirective(directive1);
|
||||||
|
configApi.addDirective(directive2);
|
||||||
|
|
||||||
|
const userConfig = configApi.getUserDefinedConfig();
|
||||||
|
expect(userConfig).toMatchInlineSnapshot(`
|
||||||
|
{
|
||||||
|
"flowchart": {
|
||||||
|
"curve": "basis",
|
||||||
|
"nodeSpacing": 100,
|
||||||
|
"rankSpacing": 100,
|
||||||
|
},
|
||||||
|
"fontSize": 12,
|
||||||
|
"mindmap": {
|
||||||
|
"padding": 15,
|
||||||
|
},
|
||||||
|
"theme": "default",
|
||||||
|
}
|
||||||
|
`);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should return independent copies (not references)', () => {
|
||||||
|
const initConfig: MermaidConfig = { theme: 'dark', flowchart: { nodeSpacing: 50 } };
|
||||||
|
configApi.saveConfigFromInitialize(initConfig);
|
||||||
|
|
||||||
|
const userConfig1 = configApi.getUserDefinedConfig();
|
||||||
|
const userConfig2 = configApi.getUserDefinedConfig();
|
||||||
|
|
||||||
|
userConfig1.theme = 'neutral';
|
||||||
|
userConfig1.flowchart!.nodeSpacing = 999;
|
||||||
|
|
||||||
|
expect(userConfig2).toMatchInlineSnapshot(`
|
||||||
|
{
|
||||||
|
"flowchart": {
|
||||||
|
"nodeSpacing": 50,
|
||||||
|
},
|
||||||
|
"theme": "dark",
|
||||||
|
}
|
||||||
|
`);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should handle edge cases with undefined values', () => {
|
||||||
|
const initConfig: MermaidConfig = { theme: 'dark', layout: undefined };
|
||||||
|
const directive: MermaidConfig = { fontSize: 14, fontFamily: undefined };
|
||||||
|
|
||||||
|
configApi.saveConfigFromInitialize(initConfig);
|
||||||
|
configApi.addDirective(directive);
|
||||||
|
|
||||||
|
expect(configApi.getUserDefinedConfig()).toMatchInlineSnapshot(`
|
||||||
|
{
|
||||||
|
"fontSize": 14,
|
||||||
|
"layout": undefined,
|
||||||
|
"theme": "dark",
|
||||||
|
}
|
||||||
|
`);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should retain config from initialize after reset', () => {
|
||||||
|
const initConfig: MermaidConfig = { theme: 'dark' };
|
||||||
|
const directive: MermaidConfig = { layout: 'elk' };
|
||||||
|
|
||||||
|
configApi.saveConfigFromInitialize(initConfig);
|
||||||
|
configApi.addDirective(directive);
|
||||||
|
|
||||||
|
expect(configApi.getUserDefinedConfig()).toMatchInlineSnapshot(`
|
||||||
|
{
|
||||||
|
"layout": "elk",
|
||||||
|
"theme": "dark",
|
||||||
|
}
|
||||||
|
`);
|
||||||
|
|
||||||
|
configApi.reset();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
@@ -248,3 +248,17 @@ const checkConfig = (config: MermaidConfig) => {
|
|||||||
issueWarning('LAZY_LOAD_DEPRECATED');
|
issueWarning('LAZY_LOAD_DEPRECATED');
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
export const getUserDefinedConfig = (): MermaidConfig => {
|
||||||
|
let userConfig: MermaidConfig = {};
|
||||||
|
|
||||||
|
if (configFromInitialize) {
|
||||||
|
userConfig = assignWithDepth(userConfig, configFromInitialize);
|
||||||
|
}
|
||||||
|
|
||||||
|
for (const d of directives) {
|
||||||
|
userConfig = assignWithDepth(userConfig, d);
|
||||||
|
}
|
||||||
|
|
||||||
|
return userConfig;
|
||||||
|
};
|
||||||
|
@@ -13,7 +13,8 @@ import {
|
|||||||
setAccTitle,
|
setAccTitle,
|
||||||
setDiagramTitle,
|
setDiagramTitle,
|
||||||
} from '../common/commonDb.js';
|
} from '../common/commonDb.js';
|
||||||
import type { Actor, AddMessageParams, Box, Message, Note, ParticipantMetaData } from './types.js';
|
import type { Actor, AddMessageParams, Box, Message, Note } from './types.js';
|
||||||
|
import type { ParticipantMetaData } from '../../types.js';
|
||||||
|
|
||||||
interface SequenceState {
|
interface SequenceState {
|
||||||
prevActor?: string;
|
prevActor?: string;
|
||||||
@@ -85,8 +86,6 @@ export const PARTICIPANT_TYPE = {
|
|||||||
ENTITY: 'entity',
|
ENTITY: 'entity',
|
||||||
PARTICIPANT: 'participant',
|
PARTICIPANT: 'participant',
|
||||||
QUEUE: 'queue',
|
QUEUE: 'queue',
|
||||||
ICON: 'icon',
|
|
||||||
IMAGE: 'image',
|
|
||||||
} as const;
|
} as const;
|
||||||
|
|
||||||
export class SequenceDB implements DiagramDB {
|
export class SequenceDB implements DiagramDB {
|
||||||
@@ -187,7 +186,6 @@ export class SequenceDB implements DiagramDB {
|
|||||||
actorCnt: null,
|
actorCnt: null,
|
||||||
rectData: null,
|
rectData: null,
|
||||||
type: type ?? 'participant',
|
type: type ?? 'participant',
|
||||||
doc: doc,
|
|
||||||
});
|
});
|
||||||
if (this.state.records.prevActor) {
|
if (this.state.records.prevActor) {
|
||||||
const prevActorInRecords = this.state.records.actors.get(this.state.records.prevActor);
|
const prevActorInRecords = this.state.records.actors.get(this.state.records.prevActor);
|
||||||
|
@@ -2326,73 +2326,4 @@ Bob->>Alice:Got it!
|
|||||||
expect(actors.get('E').description).toBe('E');
|
expect(actors.get('E').description).toBe('E');
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('image and icon participant parsing', () => {
|
|
||||||
it('should parse image participant with image URL', async () => {
|
|
||||||
const diagram = await Diagram.fromText(`
|
|
||||||
sequenceDiagram
|
|
||||||
participant Bob@{ "type": "image", "image": "https://cdn.pixabay.com/photo/2020/02/22/18/49/paper-4871356_1280.jpg" }
|
|
||||||
Bob->>Bob: test
|
|
||||||
`);
|
|
||||||
const actors = diagram.db.getActors();
|
|
||||||
expect(actors.get('Bob').type).toBe('image');
|
|
||||||
expect(actors.get('Bob').doc.image).toBe(
|
|
||||||
'https://cdn.pixabay.com/photo/2020/02/22/18/49/paper-4871356_1280.jpg'
|
|
||||||
);
|
|
||||||
});
|
|
||||||
|
|
||||||
it('should parse icon participant with icon name', async () => {
|
|
||||||
const diagram = await Diagram.fromText(`
|
|
||||||
sequenceDiagram
|
|
||||||
participant Alice@{ "type": "icon", "icon": "fa:bell" }
|
|
||||||
Alice->>Alice: test
|
|
||||||
`);
|
|
||||||
const actors = diagram.db.getActors();
|
|
||||||
expect(actors.get('Alice').type).toBe('icon');
|
|
||||||
expect(actors.get('Alice').doc.icon).toBe('fa:bell');
|
|
||||||
});
|
|
||||||
|
|
||||||
it('should parse two image participants', async () => {
|
|
||||||
const diagram = await Diagram.fromText(`
|
|
||||||
sequenceDiagram
|
|
||||||
participant Bob@{ "type": "image", "image": "https://cdn.pixabay.com/photo/2020/02/22/18/49/paper-4871356_1280.jpg" }
|
|
||||||
participant Alice@{ "type": "image", "image": "https://cdn.pixabay.com/photo/2016/11/29/09/32/animal-1867121_1280.jpg" }
|
|
||||||
Bob->>Alice: Hello
|
|
||||||
Alice-->>Bob: Hi
|
|
||||||
`);
|
|
||||||
const actors = diagram.db.getActors();
|
|
||||||
expect(actors.get('Bob').type).toBe('image');
|
|
||||||
expect(actors.get('Bob').doc.image).toBe(
|
|
||||||
'https://cdn.pixabay.com/photo/2020/02/22/18/49/paper-4871356_1280.jpg'
|
|
||||||
);
|
|
||||||
expect(actors.get('Alice').type).toBe('image');
|
|
||||||
expect(actors.get('Alice').doc.image).toBe(
|
|
||||||
'https://cdn.pixabay.com/photo/2016/11/29/09/32/animal-1867121_1280.jpg'
|
|
||||||
);
|
|
||||||
});
|
|
||||||
|
|
||||||
it('should parse image participant with normal participant', async () => {
|
|
||||||
const diagram = await Diagram.fromText(`
|
|
||||||
sequenceDiagram
|
|
||||||
participant Bob@{ "type": "image", "image": "https://cdn.pixabay.com/photo/2020/02/22/18/49/paper-4871356_1280.jpg" }
|
|
||||||
participant Alice
|
|
||||||
Bob->>Alice: Hello
|
|
||||||
`);
|
|
||||||
const actors = diagram.db.getActors();
|
|
||||||
expect(actors.get('Bob').type).toBe('image');
|
|
||||||
expect(actors.get('Alice').type).toBe('participant');
|
|
||||||
});
|
|
||||||
|
|
||||||
it('should parse icon participant with normal participant', async () => {
|
|
||||||
const diagram = await Diagram.fromText(`
|
|
||||||
sequenceDiagram
|
|
||||||
participant Bob@{ "type": "icon", "icon": "fa:bell" }
|
|
||||||
participant Alice
|
|
||||||
Bob->>Alice: Hello
|
|
||||||
`);
|
|
||||||
const actors = diagram.db.getActors();
|
|
||||||
expect(actors.get('Bob').type).toBe('icon');
|
|
||||||
expect(actors.get('Alice').type).toBe('participant');
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
|
@@ -752,8 +752,6 @@ function adjustCreatedDestroyedData(
|
|||||||
PARTICIPANT_TYPE.CONTROL,
|
PARTICIPANT_TYPE.CONTROL,
|
||||||
PARTICIPANT_TYPE.ENTITY,
|
PARTICIPANT_TYPE.ENTITY,
|
||||||
PARTICIPANT_TYPE.DATABASE,
|
PARTICIPANT_TYPE.DATABASE,
|
||||||
PARTICIPANT_TYPE.ICON,
|
|
||||||
PARTICIPANT_TYPE.IMAGE,
|
|
||||||
];
|
];
|
||||||
|
|
||||||
// if it is a create message
|
// if it is a create message
|
||||||
|
@@ -1,6 +1,5 @@
|
|||||||
import { sanitizeUrl } from '@braintree/sanitize-url';
|
import { sanitizeUrl } from '@braintree/sanitize-url';
|
||||||
import * as configApi from '../../config.js';
|
import * as configApi from '../../config.js';
|
||||||
import { getIconSVG } from '../../rendering-util/icons.js';
|
|
||||||
import { ZERO_WIDTH_SPACE, parseFontSize } from '../../utils.js';
|
import { ZERO_WIDTH_SPACE, parseFontSize } from '../../utils.js';
|
||||||
import common, {
|
import common, {
|
||||||
calculateMathMLDimensions,
|
calculateMathMLDimensions,
|
||||||
@@ -323,89 +322,6 @@ export const fixLifeLineHeights = (diagram, actors, actorKeys, conf) => {
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
const drawActorTypeIcon = async function (elem, actor, conf, isFooter) {
|
|
||||||
const actorY = isFooter ? actor.stopy : actor.starty;
|
|
||||||
const center = actor.x + actor.width / 2;
|
|
||||||
const centerY = actorY + actor.height / 2;
|
|
||||||
|
|
||||||
const line = elem.append('g').lower();
|
|
||||||
if (!isFooter) {
|
|
||||||
actorCnt++;
|
|
||||||
line
|
|
||||||
.append('line')
|
|
||||||
.attr('id', 'actor' + actorCnt)
|
|
||||||
.attr('x1', center)
|
|
||||||
.attr('y1', centerY + 25)
|
|
||||||
.attr('x2', center)
|
|
||||||
.attr('y2', 2000)
|
|
||||||
.attr('class', 'actor-line')
|
|
||||||
.attr('stroke-width', '0.5px')
|
|
||||||
.attr('stroke', '#999')
|
|
||||||
.attr('name', actor.name);
|
|
||||||
actor.actorCnt = actorCnt;
|
|
||||||
}
|
|
||||||
|
|
||||||
const actElem = elem.append('g');
|
|
||||||
let cssClass = 'actor-icon';
|
|
||||||
if (isFooter) {
|
|
||||||
cssClass += ` ${BOTTOM_ACTOR_CLASS}`;
|
|
||||||
} else {
|
|
||||||
cssClass += ` ${TOP_ACTOR_CLASS}`;
|
|
||||||
}
|
|
||||||
|
|
||||||
actElem.attr('class', cssClass);
|
|
||||||
actElem.attr('name', actor.name);
|
|
||||||
|
|
||||||
// Define the size of the square and icon
|
|
||||||
const iconSize = actor.width / 5;
|
|
||||||
const squareX = center - iconSize / 2;
|
|
||||||
const squareY = !isFooter ? actorY + 10 : actorY;
|
|
||||||
|
|
||||||
// Draw a square rectangle for the actor icon background
|
|
||||||
|
|
||||||
actElem
|
|
||||||
.append('rect')
|
|
||||||
.attr('x', squareX)
|
|
||||||
.attr('y', squareY)
|
|
||||||
.attr('width', iconSize)
|
|
||||||
.attr('height', iconSize)
|
|
||||||
.attr('rx', 3) // rounded corners, optional
|
|
||||||
.attr('ry', 3)
|
|
||||||
.attr('fill', 'none'); // light gray background or customize as needed
|
|
||||||
|
|
||||||
// Render icon SVG inside the rectangle
|
|
||||||
const iconGroup = actElem.append('g').attr('transform', `translate(${squareX}, ${squareY})`);
|
|
||||||
|
|
||||||
iconGroup
|
|
||||||
.append('svg')
|
|
||||||
.attr('width', iconSize)
|
|
||||||
.attr('height', iconSize)
|
|
||||||
.html(
|
|
||||||
`<g>${await getIconSVG(actor.doc.icon, {
|
|
||||||
height: iconSize,
|
|
||||||
width: iconSize,
|
|
||||||
fallbackPrefix: '',
|
|
||||||
})}</g>`
|
|
||||||
);
|
|
||||||
|
|
||||||
// Add text label below icon
|
|
||||||
_drawTextCandidateFunc(conf, hasKatex(actor.description))(
|
|
||||||
actor.description,
|
|
||||||
actElem,
|
|
||||||
actor.x,
|
|
||||||
actorY + (!isFooter ? 40 : 30), // positioning below the square icon
|
|
||||||
actor.width,
|
|
||||||
20,
|
|
||||||
{ class: 'actor-icon-text' },
|
|
||||||
conf
|
|
||||||
);
|
|
||||||
|
|
||||||
const bounds = actElem.node().getBBox();
|
|
||||||
actor.height = bounds.height + (conf.sequence?.labelBoxHeight ?? 0);
|
|
||||||
|
|
||||||
return actor.height;
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Draws an actor in the diagram with the attached line
|
* Draws an actor in the diagram with the attached line
|
||||||
*
|
*
|
||||||
@@ -498,174 +414,6 @@ const drawActorTypeParticipant = function (elem, actor, conf, isFooter) {
|
|||||||
|
|
||||||
return height;
|
return height;
|
||||||
};
|
};
|
||||||
const drawActorTypeImage = async function (elem, actor, conf, isFooter) {
|
|
||||||
const img = new Image();
|
|
||||||
img.src = actor.doc.image ?? '';
|
|
||||||
await img.decode();
|
|
||||||
|
|
||||||
const imageNaturalWidth = Number(img.naturalWidth.toString().replace('px', ''));
|
|
||||||
const imageNaturalHeight = Number(img.naturalHeight.toString().replace('px', ''));
|
|
||||||
|
|
||||||
actor.doc.imageAspectRatio = imageNaturalWidth / imageNaturalHeight;
|
|
||||||
|
|
||||||
// Calculate image dimensions with proper sizing logic
|
|
||||||
let imageWidth, imageHeight;
|
|
||||||
|
|
||||||
// Check if custom dimensions are provided and valid
|
|
||||||
const hasValidCustomDimensions =
|
|
||||||
actor.doc.height && actor.doc.height > 10 && actor.doc.width && actor.doc.width > 10;
|
|
||||||
|
|
||||||
if (hasValidCustomDimensions) {
|
|
||||||
if (actor.doc.constraint === 'on') {
|
|
||||||
// Maintain aspect ratio with constraint
|
|
||||||
const customAspectRatio = imageNaturalWidth / imageNaturalHeight;
|
|
||||||
|
|
||||||
if (customAspectRatio > actor.doc.imageAspectRatio) {
|
|
||||||
// Width is the limiting factor
|
|
||||||
imageHeight = actor.doc.height;
|
|
||||||
imageWidth = actor.doc.height * actor.doc.imageAspectRatio;
|
|
||||||
} else {
|
|
||||||
// Height is the limiting factor
|
|
||||||
imageWidth = actor.doc.width;
|
|
||||||
imageHeight = actor.doc.width / actor.doc.imageAspectRatio;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
// Use custom dimensions without maintaining aspect ratio
|
|
||||||
imageWidth = actor.doc.width;
|
|
||||||
imageHeight = actor.doc.height;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
// Use default sizing based on actor width
|
|
||||||
const defaultImageSize = actor.width / 3.5;
|
|
||||||
|
|
||||||
// Ensure minimum and maximum sizes
|
|
||||||
const minSize = 30;
|
|
||||||
const maxSize = actor.width * 0.8;
|
|
||||||
|
|
||||||
if (actor.doc.imageAspectRatio >= 1) {
|
|
||||||
// Landscape or square image
|
|
||||||
imageWidth = Math.min(Math.max(defaultImageSize, minSize), maxSize);
|
|
||||||
imageHeight = imageWidth / actor.doc.imageAspectRatio;
|
|
||||||
} else {
|
|
||||||
// Portrait image
|
|
||||||
imageHeight = Math.min(Math.max(defaultImageSize, minSize), maxSize);
|
|
||||||
imageWidth = imageHeight * actor.doc.imageAspectRatio;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Ensure the image doesn't exceed actor bounds
|
|
||||||
if (imageWidth > actor.width * 0.9) {
|
|
||||||
imageWidth = actor.width * 0.9;
|
|
||||||
imageHeight = imageWidth / actor.doc.imageAspectRatio;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
const actorY = isFooter ? actor.stopy : actor.starty;
|
|
||||||
const center = actor.x + actor.width / 2;
|
|
||||||
const centerY = actorY + imageHeight;
|
|
||||||
|
|
||||||
// Calculate positioning
|
|
||||||
const squareX = center - imageWidth / 2;
|
|
||||||
let squareY;
|
|
||||||
|
|
||||||
if (isFooter) {
|
|
||||||
squareY = actorY + (imageHeight - imageHeight * 1);
|
|
||||||
} else {
|
|
||||||
squareY = actorY + 5;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Calculate text position based on image position and size
|
|
||||||
const textY = !isFooter ? squareY + imageHeight : actorY + imageHeight; // Place text below image for header
|
|
||||||
|
|
||||||
// Draw actor line for non-footer elements
|
|
||||||
const x = center;
|
|
||||||
const y = centerY + (isFooter ? 0 : imageHeight / 2); // Adjust line start based on image height
|
|
||||||
const line = elem.append('g').lower();
|
|
||||||
if (!isFooter) {
|
|
||||||
actorCnt++;
|
|
||||||
line
|
|
||||||
.append('line')
|
|
||||||
.attr('id', 'actor' + actorCnt)
|
|
||||||
.attr('x1', x)
|
|
||||||
.attr('y1', y) // Adjust line start based on image height
|
|
||||||
.attr('x2', center)
|
|
||||||
.attr('y2', 2000)
|
|
||||||
.attr('class', 'actor-line')
|
|
||||||
.attr('stroke-width', '0.5px')
|
|
||||||
.attr('stroke', '#999')
|
|
||||||
.attr('name', actor.name);
|
|
||||||
actor.actorCnt = actorCnt;
|
|
||||||
}
|
|
||||||
|
|
||||||
const actElem = elem.append('g');
|
|
||||||
let cssClass = 'actor-image';
|
|
||||||
if (isFooter) {
|
|
||||||
cssClass += ` ${BOTTOM_ACTOR_CLASS}`;
|
|
||||||
} else {
|
|
||||||
cssClass += ` ${TOP_ACTOR_CLASS}`;
|
|
||||||
}
|
|
||||||
|
|
||||||
actElem.attr('class', cssClass);
|
|
||||||
actElem.attr('name', actor.name);
|
|
||||||
|
|
||||||
// Draw background rectangle for the actor image
|
|
||||||
actElem
|
|
||||||
.append('rect')
|
|
||||||
.attr('x', squareX)
|
|
||||||
.attr('y', squareY)
|
|
||||||
.attr('width', imageWidth)
|
|
||||||
.attr('height', imageHeight)
|
|
||||||
.attr('rx', 3)
|
|
||||||
.attr('ry', 3)
|
|
||||||
.attr('fill', 'white')
|
|
||||||
.attr('stroke', '#ddd')
|
|
||||||
.attr('stroke-width', '1px');
|
|
||||||
|
|
||||||
// Create clipping path for the image
|
|
||||||
const clipId = `clip-actor-${actorCnt || 'footer'}-${Math.random().toString(36).substr(2, 9)}`;
|
|
||||||
actElem
|
|
||||||
.append('defs')
|
|
||||||
.append('clipPath')
|
|
||||||
.attr('id', clipId)
|
|
||||||
.append('rect')
|
|
||||||
.attr('x', squareX)
|
|
||||||
.attr('y', squareY)
|
|
||||||
.attr('width', imageWidth)
|
|
||||||
.attr('height', imageHeight)
|
|
||||||
.attr('rx', 3)
|
|
||||||
.attr('ry', 3);
|
|
||||||
|
|
||||||
// Render image inside the rectangle
|
|
||||||
const imageGroup = actElem.append('g');
|
|
||||||
|
|
||||||
if (actor.doc.image) {
|
|
||||||
imageGroup
|
|
||||||
.append('image')
|
|
||||||
.attr('x', squareX)
|
|
||||||
.attr('y', squareY)
|
|
||||||
.attr('width', imageWidth)
|
|
||||||
.attr('height', imageHeight)
|
|
||||||
.attr('href', img.src)
|
|
||||||
.attr('preserveAspectRatio', actor.doc.constraint === 'on' ? 'xMidYMid meet' : 'none');
|
|
||||||
}
|
|
||||||
|
|
||||||
// Add text label
|
|
||||||
_drawTextCandidateFunc(conf, hasKatex(actor.description))(
|
|
||||||
actor.description,
|
|
||||||
actElem,
|
|
||||||
actor.x,
|
|
||||||
textY,
|
|
||||||
actor.width,
|
|
||||||
20,
|
|
||||||
{ class: 'actor-image-text' },
|
|
||||||
conf
|
|
||||||
);
|
|
||||||
|
|
||||||
// Calculate final bounds and update actor height
|
|
||||||
const bounds = actElem.node().getBBox();
|
|
||||||
actor.height = bounds.height + (conf.sequence?.labelBoxHeight ?? 0);
|
|
||||||
|
|
||||||
return actor.height;
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Draws an actor in the diagram with the attached line
|
* Draws an actor in the diagram with the attached line
|
||||||
@@ -1374,10 +1122,6 @@ export const drawActor = async function (elem, actor, conf, isFooter) {
|
|||||||
return await drawActorTypeCollections(elem, actor, conf, isFooter);
|
return await drawActorTypeCollections(elem, actor, conf, isFooter);
|
||||||
case 'queue':
|
case 'queue':
|
||||||
return await drawActorTypeQueue(elem, actor, conf, isFooter);
|
return await drawActorTypeQueue(elem, actor, conf, isFooter);
|
||||||
case 'icon':
|
|
||||||
return await drawActorTypeIcon(elem, actor, conf, isFooter);
|
|
||||||
case 'image':
|
|
||||||
return await drawActorTypeImage(elem, actor, conf, isFooter);
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -17,9 +17,6 @@ export interface Actor {
|
|||||||
actorCnt: number | null;
|
actorCnt: number | null;
|
||||||
rectData: unknown;
|
rectData: unknown;
|
||||||
type: string;
|
type: string;
|
||||||
doc?: ParticipantMetaData; // For documentation
|
|
||||||
iconName?: string; // For icon type
|
|
||||||
imgSrc?: string; // For img type
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface Message {
|
export interface Message {
|
||||||
@@ -93,20 +90,3 @@ export interface Note {
|
|||||||
message: string;
|
message: string;
|
||||||
wrap: boolean;
|
wrap: boolean;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface ParticipantMetaData {
|
|
||||||
type?:
|
|
||||||
| 'actor'
|
|
||||||
| 'participant'
|
|
||||||
| 'boundary'
|
|
||||||
| 'control'
|
|
||||||
| 'entity'
|
|
||||||
| 'database'
|
|
||||||
| 'collections'
|
|
||||||
| 'queue'
|
|
||||||
| 'icon'
|
|
||||||
| 'img';
|
|
||||||
icon?: string;
|
|
||||||
img?: string;
|
|
||||||
form?: string;
|
|
||||||
}
|
|
||||||
|
@@ -31,7 +31,7 @@
|
|||||||
"fast-glob": "^3.3.3",
|
"fast-glob": "^3.3.3",
|
||||||
"https-localhost": "^4.7.1",
|
"https-localhost": "^4.7.1",
|
||||||
"pathe": "^2.0.3",
|
"pathe": "^2.0.3",
|
||||||
"unocss": "^66.0.0",
|
"unocss": "^66.4.2",
|
||||||
"unplugin-vue-components": "^28.4.0",
|
"unplugin-vue-components": "^28.4.0",
|
||||||
"vite": "^6.1.1",
|
"vite": "^6.1.1",
|
||||||
"vite-plugin-pwa": "^1.0.0",
|
"vite-plugin-pwa": "^1.0.0",
|
||||||
|
@@ -590,11 +590,17 @@ flowchart TD
|
|||||||
- `b`
|
- `b`
|
||||||
- **w**: The width of the image. If not defined, this will default to the natural width of the image.
|
- **w**: The width of the image. If not defined, this will default to the natural width of the image.
|
||||||
- **h**: The height of the image. If not defined, this will default to the natural height of the image.
|
- **h**: The height of the image. If not defined, this will default to the natural height of the image.
|
||||||
- **constraint**: Determines if the image should constrain the node size. This setting also ensures the image maintains its original aspect ratio, adjusting the height (`h`) accordingly to the width (`w`). If not defined, this will default to `off` Possible values are:
|
- **constraint**: Determines if the image should constrain the node size. This setting also ensures the image maintains its original aspect ratio, adjusting the width (`w`) accordingly to the height (`h`). If not defined, this will default to `off` Possible values are:
|
||||||
- `on`
|
- `on`
|
||||||
- `off`
|
- `off`
|
||||||
|
|
||||||
These new shapes provide additional flexibility and visual appeal to your flowcharts, making them more informative and engaging.
|
If you want to resize an image, but keep the same aspect ratio, set `h`, and set `constraint: on` to constrain the aspect ratio. E.g.
|
||||||
|
|
||||||
|
```mermaid
|
||||||
|
flowchart TD
|
||||||
|
%% My image with a constrained aspect ratio
|
||||||
|
A@{ img: "https://mermaid.js.org/favicon.svg", label: "My example image label", pos: "t", h: 60, constraint: "on" }
|
||||||
|
```
|
||||||
|
|
||||||
## Links between nodes
|
## Links between nodes
|
||||||
|
|
||||||
|
@@ -118,30 +118,6 @@ sequenceDiagram
|
|||||||
Bob->>Alice: Queue response
|
Bob->>Alice: Queue response
|
||||||
```
|
```
|
||||||
|
|
||||||
### Icon
|
|
||||||
|
|
||||||
If you want to use a custom icon for a participant, use the JSON configuration syntax as shown below. The `icon` value can be a FontAwesome icon name, emoji, or other supported icon identifier.
|
|
||||||
|
|
||||||
```mermaid-example
|
|
||||||
sequenceDiagram
|
|
||||||
participant Alice@{ "type" : "icon", "icon": "fa:bell" }
|
|
||||||
participant Bob
|
|
||||||
Alice->>Bob: Icon participant
|
|
||||||
Bob->>Alice: Response to icon
|
|
||||||
```
|
|
||||||
|
|
||||||
### Image
|
|
||||||
|
|
||||||
If you want to use a custom image for a participant, use the JSON configuration syntax as shown below. The `image` value should be a valid image URL.
|
|
||||||
|
|
||||||
```mermaid-example
|
|
||||||
sequenceDiagram
|
|
||||||
participant Alice@{ "type" : "image", "image": "https://cdn.pixabay.com/photo/2020/02/22/18/49/paper-4871356_1280.jpg" }
|
|
||||||
participant Bob
|
|
||||||
Alice->>Bob: Image participant
|
|
||||||
Bob->>Alice: Response to image
|
|
||||||
```
|
|
||||||
|
|
||||||
### Aliases
|
### Aliases
|
||||||
|
|
||||||
The actor can have a convenient identifier and a descriptive label.
|
The actor can have a convenient identifier and a descriptive label.
|
||||||
|
@@ -41,7 +41,6 @@ import { decodeEntities, encodeEntities } from './utils.js';
|
|||||||
import { toBase64 } from './utils/base64.js';
|
import { toBase64 } from './utils/base64.js';
|
||||||
import { StateDB } from './diagrams/state/stateDb.js';
|
import { StateDB } from './diagrams/state/stateDb.js';
|
||||||
import { ensureNodeFromSelector, jsdomIt } from './tests/util.js';
|
import { ensureNodeFromSelector, jsdomIt } from './tests/util.js';
|
||||||
import { select } from 'd3';
|
|
||||||
import { JSDOM } from 'jsdom';
|
import { JSDOM } from 'jsdom';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -50,7 +49,6 @@ import { JSDOM } from 'jsdom';
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
// -------------------------------------------------------------------------------------
|
// -------------------------------------------------------------------------------------
|
||||||
|
|
||||||
describe('mermaidAPI', () => {
|
describe('mermaidAPI', () => {
|
||||||
describe('encodeEntities', () => {
|
describe('encodeEntities', () => {
|
||||||
it('removes the ending ; from style [text1]:[optional word]#[text2]; with ', () => {
|
it('removes the ending ; from style [text1]:[optional word]#[text2]; with ', () => {
|
||||||
@@ -913,4 +911,241 @@ graph TD;A--x|text including URL space|B;`)
|
|||||||
expect(sequenceDiagram1.db.getActors()).not.toEqual(sequenceDiagram2.db.getActors());
|
expect(sequenceDiagram1.db.getActors()).not.toEqual(sequenceDiagram2.db.getActors());
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
describe('mermaidAPI config precedence', () => {
|
||||||
|
const id = 'mermaid-config-test';
|
||||||
|
|
||||||
|
beforeEach(() => {
|
||||||
|
mermaidAPI.globalReset();
|
||||||
|
});
|
||||||
|
|
||||||
|
jsdomIt('renders with YAML config taking precedence over initialize config', async () => {
|
||||||
|
mermaid.initialize({
|
||||||
|
theme: 'forest',
|
||||||
|
fontFamily: 'Arial',
|
||||||
|
themeVariables: { fontFamily: 'Arial', fontSize: '16px' },
|
||||||
|
flowchart: { htmlLabels: false },
|
||||||
|
});
|
||||||
|
|
||||||
|
const diagramText = `---
|
||||||
|
config:
|
||||||
|
theme: base
|
||||||
|
fontFamily: Courier
|
||||||
|
themeVariables:
|
||||||
|
fontFamily: "Courier New"
|
||||||
|
fontSize: "20px"
|
||||||
|
flowchart:
|
||||||
|
htmlLabels: true
|
||||||
|
---
|
||||||
|
flowchart TD
|
||||||
|
A --> B
|
||||||
|
`;
|
||||||
|
|
||||||
|
const { svg } = await mermaidAPI.render('yaml-over-init', diagramText);
|
||||||
|
|
||||||
|
const config = mermaidAPI.getConfig();
|
||||||
|
expect(config.theme).toBe('base');
|
||||||
|
expect(config.fontFamily).toBe('Courier');
|
||||||
|
expect(config.themeVariables.fontFamily).toBe('Courier New');
|
||||||
|
expect(config.themeVariables.fontSize).toBe('20px');
|
||||||
|
expect(config.flowchart?.htmlLabels).toBe(true);
|
||||||
|
|
||||||
|
const svgNode = ensureNodeFromSelector('svg', new JSDOM(svg).window.document);
|
||||||
|
expect(svgNode).not.toBeNull();
|
||||||
|
});
|
||||||
|
|
||||||
|
jsdomIt(
|
||||||
|
'renders with YAML themeVariables fully overriding initialize themeVariables',
|
||||||
|
async () => {
|
||||||
|
mermaid.initialize({
|
||||||
|
themeVariables: { fontFamily: 'Arial', fontSize: '16px' },
|
||||||
|
});
|
||||||
|
|
||||||
|
const diagramText = `---
|
||||||
|
config:
|
||||||
|
themeVariables:
|
||||||
|
fontFamily: "Courier New"
|
||||||
|
fontSize: "20px"
|
||||||
|
---
|
||||||
|
flowchart TD
|
||||||
|
A --> B
|
||||||
|
`;
|
||||||
|
|
||||||
|
const { svg } = await mermaidAPI.render(id, diagramText);
|
||||||
|
const config = mermaidAPI.getConfig();
|
||||||
|
|
||||||
|
expect(config.themeVariables.fontFamily).toBe('Courier New');
|
||||||
|
expect(config.themeVariables.fontSize).toBe('20px');
|
||||||
|
expect(config.themeVariables.fontFamily).not.toBe('Arial');
|
||||||
|
expect(config.themeVariables.fontSize).not.toBe('16px');
|
||||||
|
|
||||||
|
const svgNode = ensureNodeFromSelector('svg', new JSDOM(svg).window.document);
|
||||||
|
expect(svgNode).not.toBeNull();
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
jsdomIt(
|
||||||
|
'renders with YAML themeVariables overriding only provided keys and keeping others from initialize',
|
||||||
|
async () => {
|
||||||
|
mermaid.initialize({
|
||||||
|
theme: 'forest',
|
||||||
|
fontFamily: 'Arial',
|
||||||
|
themeVariables: { fontFamily: 'Arial', fontSize: '16px', colorPrimary: '#ff0000' },
|
||||||
|
});
|
||||||
|
|
||||||
|
const diagramText = `---
|
||||||
|
config:
|
||||||
|
themeVariables:
|
||||||
|
fontFamily: "Courier New"
|
||||||
|
---
|
||||||
|
flowchart TD
|
||||||
|
A --> B
|
||||||
|
`;
|
||||||
|
|
||||||
|
const { svg } = await mermaidAPI.render(id, diagramText);
|
||||||
|
|
||||||
|
const config = mermaidAPI.getConfig();
|
||||||
|
expect(config.themeVariables.fontFamily).toBe('Courier New');
|
||||||
|
expect(config.themeVariables.fontSize).toBe('16px');
|
||||||
|
expect(config.themeVariables.colorPrimary).toBe('#ff0000');
|
||||||
|
|
||||||
|
const svgNode = ensureNodeFromSelector('svg', new JSDOM(svg).window.document);
|
||||||
|
expect(svgNode).not.toBeNull();
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
jsdomIt(
|
||||||
|
'renders with YAML config (no themeVariables) and falls back to initialize themeVariables',
|
||||||
|
async () => {
|
||||||
|
mermaid.initialize({
|
||||||
|
themeVariables: { fontFamily: 'Arial', fontSize: '16px' },
|
||||||
|
});
|
||||||
|
|
||||||
|
const diagramText = `---
|
||||||
|
config:
|
||||||
|
theme: base
|
||||||
|
---
|
||||||
|
flowchart TD
|
||||||
|
A --> B
|
||||||
|
`;
|
||||||
|
|
||||||
|
const { svg } = await mermaidAPI.render(id, diagramText);
|
||||||
|
|
||||||
|
const config = mermaidAPI.getConfig();
|
||||||
|
expect(config.themeVariables.fontFamily).toBe('Arial');
|
||||||
|
expect(config.themeVariables.fontSize).toBe('16px');
|
||||||
|
expect(config.theme).toBe('base');
|
||||||
|
|
||||||
|
const svgNode = ensureNodeFromSelector('svg', new JSDOM(svg).window.document);
|
||||||
|
expect(svgNode).not.toBeNull();
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
jsdomIt(
|
||||||
|
'renders with full YAML config block taking full precedence over initialize config',
|
||||||
|
async () => {
|
||||||
|
mermaid.initialize({
|
||||||
|
theme: 'forest',
|
||||||
|
fontFamily: 'Arial',
|
||||||
|
themeVariables: { fontFamily: 'Arial', fontSize: '16px' },
|
||||||
|
flowchart: { htmlLabels: false },
|
||||||
|
});
|
||||||
|
|
||||||
|
const diagramText = `---
|
||||||
|
config:
|
||||||
|
theme: base
|
||||||
|
fontFamily: Courier
|
||||||
|
themeVariables:
|
||||||
|
fontFamily: "Courier New"
|
||||||
|
fontSize: "20px"
|
||||||
|
flowchart:
|
||||||
|
htmlLabels: true
|
||||||
|
---
|
||||||
|
flowchart TD
|
||||||
|
A --> B
|
||||||
|
`;
|
||||||
|
|
||||||
|
const { svg } = await mermaidAPI.render('yaml-over-init', diagramText);
|
||||||
|
|
||||||
|
const config = mermaidAPI.getConfig();
|
||||||
|
expect(config.theme).toBe('base');
|
||||||
|
expect(config.fontFamily).toBe('Courier');
|
||||||
|
expect(config.themeVariables.fontFamily).toBe('Courier New');
|
||||||
|
expect(config.themeVariables.fontSize).toBe('20px');
|
||||||
|
expect(config.flowchart?.htmlLabels).toBe(true);
|
||||||
|
|
||||||
|
const svgNode = ensureNodeFromSelector('svg', new JSDOM(svg).window.document);
|
||||||
|
expect(svgNode).not.toBeNull();
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
jsdomIt(
|
||||||
|
'renders with YAML config (no themeVariables) and falls back to initialize themeVariables (duplicate scenario)',
|
||||||
|
async () => {
|
||||||
|
mermaid.initialize({
|
||||||
|
themeVariables: { fontFamily: 'Arial', fontSize: '16px' },
|
||||||
|
});
|
||||||
|
|
||||||
|
const diagramText = `---
|
||||||
|
config:
|
||||||
|
theme: base
|
||||||
|
---
|
||||||
|
flowchart TD
|
||||||
|
A --> B
|
||||||
|
`;
|
||||||
|
|
||||||
|
await mermaidAPI.render(id, diagramText);
|
||||||
|
|
||||||
|
const config = mermaidAPI.getConfig();
|
||||||
|
expect(config.themeVariables.fontFamily).toBe('Arial');
|
||||||
|
expect(config.themeVariables.fontSize).toBe('16px');
|
||||||
|
expect(config.theme).toBe('base');
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
jsdomIt('renders with no YAML config so initialize config is fully applied', async () => {
|
||||||
|
mermaid.initialize({
|
||||||
|
theme: 'forest',
|
||||||
|
fontFamily: 'Arial',
|
||||||
|
themeVariables: { fontFamily: 'Arial', fontSize: '16px' },
|
||||||
|
});
|
||||||
|
|
||||||
|
const diagramText = `
|
||||||
|
flowchart TD
|
||||||
|
A --> B
|
||||||
|
`;
|
||||||
|
|
||||||
|
await mermaidAPI.render(id, diagramText);
|
||||||
|
|
||||||
|
const config = mermaidAPI.getConfig();
|
||||||
|
expect(config.theme).toBe('forest');
|
||||||
|
expect(config.fontFamily).toBe('Arial');
|
||||||
|
expect(config.themeVariables.fontFamily).toBe('Arial');
|
||||||
|
expect(config.themeVariables.fontSize).toBe('16px');
|
||||||
|
});
|
||||||
|
|
||||||
|
jsdomIt(
|
||||||
|
'renders with empty YAML config block and falls back to initialize config',
|
||||||
|
async () => {
|
||||||
|
mermaid.initialize({
|
||||||
|
theme: 'dark',
|
||||||
|
themeVariables: { fontFamily: 'Times', fontSize: '14px' },
|
||||||
|
});
|
||||||
|
|
||||||
|
const diagramText = `---
|
||||||
|
config: {}
|
||||||
|
---
|
||||||
|
flowchart TD
|
||||||
|
A --> B
|
||||||
|
`;
|
||||||
|
|
||||||
|
await mermaidAPI.render(id, diagramText);
|
||||||
|
|
||||||
|
const config = mermaidAPI.getConfig();
|
||||||
|
expect(config.theme).toBe('dark');
|
||||||
|
expect(config.themeVariables.fontFamily).toBe('Times');
|
||||||
|
expect(config.themeVariables.fontSize).toBe('14px');
|
||||||
|
}
|
||||||
|
);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
@@ -13,6 +13,18 @@ export interface NodeMetaData {
|
|||||||
ticket?: string;
|
ticket?: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export interface ParticipantMetaData {
|
||||||
|
type?:
|
||||||
|
| 'actor'
|
||||||
|
| 'participant'
|
||||||
|
| 'boundary'
|
||||||
|
| 'control'
|
||||||
|
| 'entity'
|
||||||
|
| 'database'
|
||||||
|
| 'collections'
|
||||||
|
| 'queue';
|
||||||
|
}
|
||||||
|
|
||||||
export interface EdgeMetaData {
|
export interface EdgeMetaData {
|
||||||
animation?: 'fast' | 'slow';
|
animation?: 'fast' | 'slow';
|
||||||
animate?: boolean;
|
animate?: boolean;
|
||||||
|
440
pnpm-lock.yaml
generated
440
pnpm-lock.yaml
generated
@@ -227,8 +227,8 @@ importers:
|
|||||||
specifier: ^7.0.4
|
specifier: ^7.0.4
|
||||||
version: 7.1.0
|
version: 7.1.0
|
||||||
'@iconify/utils':
|
'@iconify/utils':
|
||||||
specifier: ^2.1.33
|
specifier: ^3.0.1
|
||||||
version: 2.3.0
|
version: 3.0.1
|
||||||
'@mermaid-js/parser':
|
'@mermaid-js/parser':
|
||||||
specifier: workspace:^
|
specifier: workspace:^
|
||||||
version: link:../parser
|
version: link:../parser
|
||||||
@@ -499,8 +499,8 @@ importers:
|
|||||||
specifier: ^2.0.3
|
specifier: ^2.0.3
|
||||||
version: 2.0.3
|
version: 2.0.3
|
||||||
unocss:
|
unocss:
|
||||||
specifier: ^66.0.0
|
specifier: ^66.4.2
|
||||||
version: 66.0.0(postcss@8.5.6)(vite@6.1.1(@types/node@22.13.5)(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.8.0))(vue@3.5.13(typescript@5.7.3))
|
version: 66.4.2(postcss@8.5.6)(vite@6.1.1(@types/node@22.13.5)(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.8.0))
|
||||||
unplugin-vue-components:
|
unplugin-vue-components:
|
||||||
specifier: ^28.4.0
|
specifier: ^28.4.0
|
||||||
version: 28.4.0(@babel/parser@7.28.0)(vue@3.5.13(typescript@5.7.3))
|
version: 28.4.0(@babel/parser@7.28.0)(vue@3.5.13(typescript@5.7.3))
|
||||||
@@ -647,11 +647,11 @@ packages:
|
|||||||
resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==}
|
resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==}
|
||||||
engines: {node: '>=6.0.0'}
|
engines: {node: '>=6.0.0'}
|
||||||
|
|
||||||
'@antfu/install-pkg@1.0.0':
|
'@antfu/install-pkg@1.1.0':
|
||||||
resolution: {integrity: sha512-xvX6P/lo1B3ej0OsaErAjqgFYzYVcJpamjLAFLYh9vRJngBrMoUG7aVnrGTeqM7yxbyTD5p3F2+0/QUEh8Vzhw==}
|
resolution: {integrity: sha512-MGQsmw10ZyI+EJo45CdSER4zEb+p31LpDAFp2Z3gkSd1yqVZGi0Ebx++YTEMonJy4oChEMLsxZ64j8FH6sSqtQ==}
|
||||||
|
|
||||||
'@antfu/utils@8.1.1':
|
'@antfu/utils@9.2.0':
|
||||||
resolution: {integrity: sha512-Mex9nXf9vR6AhcXmMrlz/HVgYYZpVGJ6YlPgwl7UnaFpnshXs6EK/oa5Gpf3CzENMjkvEx2tQtntGnb7UtSTOQ==}
|
resolution: {integrity: sha512-Oq1d9BGZakE/FyoEtcNeSwM7MpDO2vUBi11RWBZXf75zPsbUVWmUs03EqkRFrcgbXyKTas0BdZWC1wcuSoqSAw==}
|
||||||
|
|
||||||
'@apideck/better-ajv-errors@0.3.6':
|
'@apideck/better-ajv-errors@0.3.6':
|
||||||
resolution: {integrity: sha512-P+ZygBLZtkp0qqOAJJVX4oX/sFo5JR3eBWwwuqHHhK0GIgQOKWrAfiAaWX0aArHkRWHMuggFEgAZNxVPwPZYaA==}
|
resolution: {integrity: sha512-P+ZygBLZtkp0qqOAJJVX4oX/sFo5JR3eBWwwuqHHhK0GIgQOKWrAfiAaWX0aArHkRWHMuggFEgAZNxVPwPZYaA==}
|
||||||
@@ -2460,8 +2460,8 @@ packages:
|
|||||||
'@iconify/types@2.0.0':
|
'@iconify/types@2.0.0':
|
||||||
resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==}
|
resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==}
|
||||||
|
|
||||||
'@iconify/utils@2.3.0':
|
'@iconify/utils@3.0.1':
|
||||||
resolution: {integrity: sha512-GmQ78prtwYW6EtzXRU1rY+KwOKfz32PD7iJh6Iyqw68GiKuoZ2A6pRtzWONz5VQJbp50mEjXh/7NkumtrAgRKA==}
|
resolution: {integrity: sha512-A78CUEnFGX8I/WlILxJCuIJXloL0j/OJ9PSchPAfCargEIKmUBWvvEMmKWB5oONwiUqlNt+5eRufdkLxeHIWYw==}
|
||||||
|
|
||||||
'@img/sharp-darwin-arm64@0.33.5':
|
'@img/sharp-darwin-arm64@0.33.5':
|
||||||
resolution: {integrity: sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ==}
|
resolution: {integrity: sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ==}
|
||||||
@@ -2740,6 +2740,9 @@ packages:
|
|||||||
'@polka/url@1.0.0-next.28':
|
'@polka/url@1.0.0-next.28':
|
||||||
resolution: {integrity: sha512-8LduaNlMZGwdZ6qWrKlfa+2M4gahzFkprZiAt2TF8uS0qQgBizKXpXURqvTJ4WtmupWxaLqjRb2UCTe72mu+Aw==}
|
resolution: {integrity: sha512-8LduaNlMZGwdZ6qWrKlfa+2M4gahzFkprZiAt2TF8uS0qQgBizKXpXURqvTJ4WtmupWxaLqjRb2UCTe72mu+Aw==}
|
||||||
|
|
||||||
|
'@quansync/fs@0.1.4':
|
||||||
|
resolution: {integrity: sha512-vy/41FCdnIalPTQCb2Wl0ic1caMdzGus4ktDp+gpZesQNydXcx8nhh8qB3qMPbGkictOTaXgXEUUfQEm8DQYoA==}
|
||||||
|
|
||||||
'@react-aria/focus@3.21.0':
|
'@react-aria/focus@3.21.0':
|
||||||
resolution: {integrity: sha512-7NEGtTPsBy52EZ/ToVKCu0HSelE3kq9qeis+2eEq90XSuJOMaDHUQrA7RC2Y89tlEwQB31bud/kKRi9Qme1dkA==}
|
resolution: {integrity: sha512-7NEGtTPsBy52EZ/ToVKCu0HSelE3kq9qeis+2eEq90XSuJOMaDHUQrA7RC2Y89tlEwQB31bud/kKRi9Qme1dkA==}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
@@ -3538,88 +3541,94 @@ packages:
|
|||||||
'@ungap/structured-clone@1.3.0':
|
'@ungap/structured-clone@1.3.0':
|
||||||
resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==}
|
resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==}
|
||||||
|
|
||||||
'@unocss/astro@66.0.0':
|
'@unocss/astro@66.4.2':
|
||||||
resolution: {integrity: sha512-GBhXT6JPqXjDXoJZTXhySk83NgOt0UigChqrUUdG4x7Z+DVYkDBION8vZUJjw0OdIaxNQ4euGWu4GDsMF6gQQg==}
|
resolution: {integrity: sha512-En3AKHwkiPxtZT95vkVrNiRYrB+DFVCikew6/dMMCWDWVKK0+5tEVUTzR1ak3+YnzAXl0NpWj8D4zHb0PxOs/A==}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0 || ^6.0.0-0
|
vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0 || ^6.0.0-0 || ^7.0.0-0
|
||||||
peerDependenciesMeta:
|
peerDependenciesMeta:
|
||||||
vite:
|
vite:
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@unocss/cli@66.0.0':
|
'@unocss/cli@66.4.2':
|
||||||
resolution: {integrity: sha512-KVQiskoOjVkLVpNaG6WpLa4grPplrZROYZJVIUYSTqZyZRFNSvjttHcsCwpoWUEUdEombPtVZl8FrXePjY5IiQ==}
|
resolution: {integrity: sha512-WsXzrB0SHbSt2nOHtD5QM91VN8j38+wObqyGcoIhtBSugqzsc+t7AdPkxV/ZaYgtPAz87bR0WFEVKcbiBRnmJw==}
|
||||||
engines: {node: '>=14'}
|
engines: {node: '>=14'}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
|
|
||||||
'@unocss/config@66.0.0':
|
'@unocss/config@66.4.2':
|
||||||
resolution: {integrity: sha512-nFRGop/guBa4jLkrgXjaRDm5JPz4x3YpP10m5IQkHpHwlnHUVn1L9smyPl04ohYWhYn9ZcAHgR28Ih2jwta8hw==}
|
resolution: {integrity: sha512-plji1gNGSzlWjuV2Uh0q6Dt5ZlNkOKCHpgxekW9J458WghGAMBeXgB9uNpWg6flilqP1g0GJQv+XvJcSkYRGpQ==}
|
||||||
engines: {node: '>=14'}
|
engines: {node: '>=14'}
|
||||||
|
|
||||||
'@unocss/core@66.0.0':
|
'@unocss/core@66.4.2':
|
||||||
resolution: {integrity: sha512-PdVbSMHNDDkr++9nkqzsZRAkaU84gxMTEgYbqI7dt2p1DXp/5tomVtmMsr2/whXGYKRiUc0xZ3p4Pzraz8TcXA==}
|
resolution: {integrity: sha512-cYgMQrLhB9nRekv5c+yPDDa+5dzlMkA2UMQRil0s5D9Lb5n7NsCMcr6+nfxkcSYVLy92SbwDV45c6T7vIxFTOA==}
|
||||||
|
|
||||||
'@unocss/extractor-arbitrary-variants@66.0.0':
|
'@unocss/extractor-arbitrary-variants@66.4.2':
|
||||||
resolution: {integrity: sha512-vlkOIOuwBfaFBJcN6o7+obXjigjOlzVFN/jT6pG1WXbQDTRZ021jeF3i9INdb9D/0cQHSeDvNgi1TJ5oUxfiow==}
|
resolution: {integrity: sha512-T/eSeodfAp7HaWnQGqVLOsW4PbKUAvuybNRyvFWThMneM2qo+dOo3kFnA5my9ULAmRSFsAlyB1DnupD3qv5Klg==}
|
||||||
|
|
||||||
'@unocss/inspector@66.0.0':
|
'@unocss/inspector@66.4.2':
|
||||||
resolution: {integrity: sha512-mkIxieVm0kMOKw+E4ABpIerihYMdjgq9A92RD5h2+W/ebpxTEw5lTTK1xcMLiAlmOrVYMQKjpgPeu3vQmDyGZQ==}
|
resolution: {integrity: sha512-ugcJK8r2ypM4eIdgetVn8RhfKrbA3AF3OQ/RohK5PPk2UPDAScqabzYpfdNW4eYQsBOZOgoiqWtnfc8weqo8LQ==}
|
||||||
|
|
||||||
'@unocss/postcss@66.0.0':
|
'@unocss/postcss@66.4.2':
|
||||||
resolution: {integrity: sha512-6bi+ujzh8I1PJwtmHX71LH8z/H9+vPxeYD4XgFihyU1k4Y6MVhjr7giGjLX4yP27IP+NsVyotD22V7by/dBVEA==}
|
resolution: {integrity: sha512-tu4lnh6K27pIAuaQHlFlhXin8korwC0r1kQl00YMmF3THiX7orXkTP6xWGcQwnkbx4uQz1dw+tBimYxeaAMrhA==}
|
||||||
engines: {node: '>=14'}
|
engines: {node: '>=14'}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
postcss: ^8.4.21
|
postcss: ^8.4.21
|
||||||
|
|
||||||
'@unocss/preset-attributify@66.0.0':
|
'@unocss/preset-attributify@66.4.2':
|
||||||
resolution: {integrity: sha512-eYsOgmcDoiIgGAepIwRX+DKGYxc/wm0r4JnDuZdz29AB+A6oY/FGHS1BVt4rq9ny4B5PofP4p6Rty+vwD9rigw==}
|
resolution: {integrity: sha512-DwFJJkkawmHpjo3pGQE8FyoPsvhbxh+QMvvaAdYpo+iZ5HRkeDml9SOj7u6SGTcmbNyI+QR61s0KM8fxx6HcVQ==}
|
||||||
|
|
||||||
'@unocss/preset-icons@66.0.0':
|
'@unocss/preset-icons@66.4.2':
|
||||||
resolution: {integrity: sha512-6ObwTvEGuPBbKWRoMMiDioHtwwQTFI5oojFLJ32Y8tW6TdXvBLkO88d7qpgQxEjgVt4nJrqF1WEfR4niRgBm0Q==}
|
resolution: {integrity: sha512-qJx9gmesrvrmoTe9Mqoidihad8hm2MSD4QAezhfDSAyllioJOgyT0Bev/IEWAbehe9jtqYIh8v1oCerBPbGn6Q==}
|
||||||
|
|
||||||
'@unocss/preset-mini@66.0.0':
|
'@unocss/preset-mini@66.4.2':
|
||||||
resolution: {integrity: sha512-d62eACnuKtR0dwCFOQXgvw5VLh5YSyK56xCzpHkh0j0GstgfDLfKTys0T/XVAAvdSvAy/8A8vhSNJ4PlIc9V2A==}
|
resolution: {integrity: sha512-Ry+5hM+XLmT8HrEb182mUfcZuyrZ8xR+TBe72DBcliJ1DhOV3K67TCxwQucfb0zHbGV71HNWdPmHsLKxPDgweQ==}
|
||||||
|
|
||||||
'@unocss/preset-tagify@66.0.0':
|
'@unocss/preset-tagify@66.4.2':
|
||||||
resolution: {integrity: sha512-GGYGyWxaevh0jN0NoATVO1Qe7DFXM3ykLxchlXmG6/zy963pZxItg/njrKnxE9la4seCdxpFH7wQBa68imwwdA==}
|
resolution: {integrity: sha512-dECS09LqWJY4sYpgPUH2OAUftWU/tiZPR2XDRoTngeGU37GxSN+1sWtSmB7vwDm3C7opsdVUN20he8F1LUNubw==}
|
||||||
|
|
||||||
'@unocss/preset-typography@66.0.0':
|
'@unocss/preset-typography@66.4.2':
|
||||||
resolution: {integrity: sha512-apjckP5nPU5mtaHTCzz5u/dK9KJWwJ2kOFCVk0+a/KhUWmnqnzmjRYZlEuWxxr5QxTdCW+9cIoRDSA0lYZS5tg==}
|
resolution: {integrity: sha512-ZOKRuR5+V0r30QTVq04/6ZoIw75me3V25v2dU2YWJXIzwpMKmQ9TUN/M1yeiEUFfXjOaruWX6Ad6CvAw2MlCew==}
|
||||||
|
|
||||||
'@unocss/preset-uno@66.0.0':
|
'@unocss/preset-uno@66.4.2':
|
||||||
resolution: {integrity: sha512-qgoZ/hzTI32bQvcyjcwvv1X/dbPlmQNehzgjUaL7QFT0q0/CN/SRpysfzoQ8DLl2se9T+YCOS9POx3KrpIiYSQ==}
|
resolution: {integrity: sha512-1MFtPivGcpqRQFWdjtP40Enop1y3XDb3tlZXoMQUX0IGLG8HJOT+lfQx/Xl9t73ShJ8aAJ/l6qTxC43ZGNACzA==}
|
||||||
|
|
||||||
'@unocss/preset-web-fonts@66.0.0':
|
'@unocss/preset-web-fonts@66.4.2':
|
||||||
resolution: {integrity: sha512-9MzfDc6AJILN4Kq7Z91FfFbizBOYgw3lJd2UwqIs3PDYWG5iH5Zv5zhx6jelZVqEW5uWcIARYEEg2m4stZO1ZA==}
|
resolution: {integrity: sha512-4FYmleeRoM8r2DqGl6dfIjnX57tepcfZCvVfeCqYnk7475Yddmv1OYkoMjkWMnkK9MzdSxsFwHMU6CIUTmFTzQ==}
|
||||||
|
|
||||||
'@unocss/preset-wind3@66.0.0':
|
'@unocss/preset-wind3@66.4.2':
|
||||||
resolution: {integrity: sha512-WAGRmpi1sb2skvYn9DBQUvhfqrJ+VmQmn5ZGsT2ewvsk7HFCvVLAMzZeKrrTQepeNBRhg6HzFDDi8yg6yB5c9g==}
|
resolution: {integrity: sha512-0Aye/PaT08M/cQhPnGKn93iEVoRJbym0/1eomMvXoL+8oc7DVry35ws06r5CLu5h1sXI6UmS6sejoePFlSkLJQ==}
|
||||||
|
|
||||||
'@unocss/preset-wind@66.0.0':
|
'@unocss/preset-wind4@66.4.2':
|
||||||
resolution: {integrity: sha512-FtvGpHnGC7FiyKJavPnn5y9lsaoWRhXlujCqlT5Bw63kKhMNr0ogKySBpenUhJOhWhVM0OQXn2nZ3GZRxW2qpw==}
|
resolution: {integrity: sha512-F4RZsDqIpnSevD9hY353+Tw5gxpJuHA5HwdKjLnC/TnT9VKKVmV7qUEZ6M0jEuAk1kz2x3/ngnQ9Ftw+C2L84A==}
|
||||||
|
|
||||||
|
'@unocss/preset-wind@66.4.2':
|
||||||
|
resolution: {integrity: sha512-z/rFYFINNqmBtl3Dh+7UCKpPnPkxM7IIUGszMnvdntky9uhLauJ11dt/Puir73sM2cAfywfgvnHyZ00m0pg7rA==}
|
||||||
|
|
||||||
'@unocss/reset@66.0.0':
|
'@unocss/reset@66.0.0':
|
||||||
resolution: {integrity: sha512-YLFz/5yT7mFJC8JSmIUA5+bS3CBCJbtztOw+8rWzjQr/BEVSGuihWUUpI2Df6VVxXIXxKanZR6mIl59yvf+GEA==}
|
resolution: {integrity: sha512-YLFz/5yT7mFJC8JSmIUA5+bS3CBCJbtztOw+8rWzjQr/BEVSGuihWUUpI2Df6VVxXIXxKanZR6mIl59yvf+GEA==}
|
||||||
|
|
||||||
'@unocss/rule-utils@66.0.0':
|
'@unocss/reset@66.4.2':
|
||||||
resolution: {integrity: sha512-UJ51YHbwxYTGyj35ugsPlOT4gaa7tCbXdywZ3m5Nn0JgywwIqGmBFyiN9ZjHBHfJuDxmmPd6lxojoBscih/WMQ==}
|
resolution: {integrity: sha512-s3Kq4Q6a/d3/jYe6HTCfXUx7zYAYufetId5n66DZHzQxpeu6CoBS83+b37STTKsw27SOgV28cPJlJtZ6/D6Bhw==}
|
||||||
|
|
||||||
|
'@unocss/rule-utils@66.4.2':
|
||||||
|
resolution: {integrity: sha512-7z3IuajwXhy2cx3E0IGOFXIiuKC79/jzm4Tt56TC68nXLh/etlH0fKhxVwkZ/HbcQRpVwWyDRNcbh29pmA3DwQ==}
|
||||||
engines: {node: '>=14'}
|
engines: {node: '>=14'}
|
||||||
|
|
||||||
'@unocss/transformer-attributify-jsx@66.0.0':
|
'@unocss/transformer-attributify-jsx@66.4.2':
|
||||||
resolution: {integrity: sha512-jS7szFXXC6RjTv9wo0NACskf618w981bkbyQ5izRO7Ha47sNpHhHDpaltnG7SR9qV4cCtGalOw4onVMHsRKwRg==}
|
resolution: {integrity: sha512-de6LzoyW1tkdOftlCrj6z8wEb4j6l1sqmOU1nYKkYHw7luLFGxRUELC7iujlI9KmylbM02bcKfLETAfJy/je2w==}
|
||||||
|
|
||||||
'@unocss/transformer-compile-class@66.0.0':
|
'@unocss/transformer-compile-class@66.4.2':
|
||||||
resolution: {integrity: sha512-ytUIE0nAcHRMACuTXkHp8auZ483DXrOZw99jk3FJ+aFjpD/pVSFmX14AWJ7bqPFObxb4SLFs6KhQma30ESC22A==}
|
resolution: {integrity: sha512-+oiIrV8c3T7qiJdICr6YsEWik5sjbWirXF0mlpcBvZu2HyV559hvHjzuWKr/fl7xYYZKDL9FvddbqWo3DOXh3Q==}
|
||||||
|
|
||||||
'@unocss/transformer-directives@66.0.0':
|
'@unocss/transformer-directives@66.4.2':
|
||||||
resolution: {integrity: sha512-utcg7m2Foi7uHrU5WHadNuJ0a3qWG8tZNkQMi+m0DQpX6KWfuDtDn0zDZ1X+z5lmiB3WGSJERRrsvZbj1q50Mw==}
|
resolution: {integrity: sha512-7m/dTrCUkBkZeSRKPxPEo65Rav239orQSLq6sztwZhoA4x/6H8r58xCkAK0qC9VEalyerpCpyarU3sKN4+ehNg==}
|
||||||
|
|
||||||
'@unocss/transformer-variant-group@66.0.0':
|
'@unocss/transformer-variant-group@66.4.2':
|
||||||
resolution: {integrity: sha512-1BLjNWtAnR1JAcQGw0TS+nGrVoB9aznzvVZRoTx23dtRr3btvgKPHb8LrD48eD/p8Dtw9j3WfuxMDKXKegKDLg==}
|
resolution: {integrity: sha512-SbPDbZUrhQyL4CpvnpvUfrr1DFq8AKf8ofPGbMJDm5S2TInQ34vFaIrhNroGR0szntMZRH5Zlkq6LtVUKDRs5g==}
|
||||||
|
|
||||||
'@unocss/vite@66.0.0':
|
'@unocss/vite@66.4.2':
|
||||||
resolution: {integrity: sha512-IVcPX8xL+2edyXKt4tp9yu5A6gcbPVCsspfcL0XgziCr01kS+4qSoZ90F3IUs3hXc/AyO5eCpRtGFMPLpOjXQg==}
|
resolution: {integrity: sha512-7eON9iPF3qWzuI+M6u0kq7K3y9nEbimZlLj01nGoqrgSGxEsyJpP01QQQsmT7FPRiZzRMJv7BiKMEyDQSuRRCA==}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0 || ^6.0.0-0
|
vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0 || ^6.0.0-0 || ^7.0.0-0
|
||||||
|
|
||||||
'@unrs/resolver-binding-android-arm-eabi@1.11.1':
|
'@unrs/resolver-binding-android-arm-eabi@1.11.1':
|
||||||
resolution: {integrity: sha512-ppLRUgHVaGRWUx0R0Ut06Mjo9gBaBkg3v/8AxusGLhsIotbBLuRk51rAzqLC8gq6NyyAojEXglNjzf6R948DNw==}
|
resolution: {integrity: sha512-ppLRUgHVaGRWUx0R0Ut06Mjo9gBaBkg3v/8AxusGLhsIotbBLuRk51rAzqLC8gq6NyyAojEXglNjzf6R948DNw==}
|
||||||
@@ -4779,12 +4788,15 @@ packages:
|
|||||||
confbox@0.1.8:
|
confbox@0.1.8:
|
||||||
resolution: {integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==}
|
resolution: {integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==}
|
||||||
|
|
||||||
|
confbox@0.2.2:
|
||||||
|
resolution: {integrity: sha512-1NB+BKqhtNipMsov4xI/NnhCKp9XG9NamYp5PVm9klAT0fsrNPjaFICsCFhNhwZJKNh7zB/3q8qXz0E9oaMNtQ==}
|
||||||
|
|
||||||
connect-history-api-fallback@2.0.0:
|
connect-history-api-fallback@2.0.0:
|
||||||
resolution: {integrity: sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==}
|
resolution: {integrity: sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==}
|
||||||
engines: {node: '>=0.8'}
|
engines: {node: '>=0.8'}
|
||||||
|
|
||||||
consola@3.4.0:
|
consola@3.4.2:
|
||||||
resolution: {integrity: sha512-EiPU8G6dQG0GFHNR8ljnZFki/8a+cQwEQ+7wpxdChl02Q8HXlwEZWD5lqAF8vC2sEC3Tehr8hy7vErz88LHyUA==}
|
resolution: {integrity: sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==}
|
||||||
engines: {node: ^14.18.0 || >=16.10.0}
|
engines: {node: ^14.18.0 || >=16.10.0}
|
||||||
|
|
||||||
console.table@0.10.0:
|
console.table@0.10.0:
|
||||||
@@ -5852,6 +5864,9 @@ packages:
|
|||||||
resolution: {integrity: sha512-DT9ck5YIRU+8GYzzU5kT3eHGA5iL+1Zd0EutOmTE9Dtk+Tvuzd23VBU+ec7HPNSTxXYO55gPV/hq4pSBJDjFpA==}
|
resolution: {integrity: sha512-DT9ck5YIRU+8GYzzU5kT3eHGA5iL+1Zd0EutOmTE9Dtk+Tvuzd23VBU+ec7HPNSTxXYO55gPV/hq4pSBJDjFpA==}
|
||||||
engines: {node: '>= 18'}
|
engines: {node: '>= 18'}
|
||||||
|
|
||||||
|
exsolve@1.0.7:
|
||||||
|
resolution: {integrity: sha512-VO5fQUzZtI6C+vx4w/4BWJpg3s/5l+6pRQEHzFRM8WFi4XffSP1Z+4qi7GbjWbvRQEbdIco5mIMq+zX4rPuLrw==}
|
||||||
|
|
||||||
extend@3.0.2:
|
extend@3.0.2:
|
||||||
resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==}
|
resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==}
|
||||||
|
|
||||||
@@ -7276,6 +7291,10 @@ packages:
|
|||||||
resolution: {integrity: sha512-bbgPw/wmroJsil/GgL4qjDzs5YLTBMQ99weRsok1XCDccQeehbHA/I1oRvk2NPtr7KGZgT/Y5tPRnAtMqeG2Kg==}
|
resolution: {integrity: sha512-bbgPw/wmroJsil/GgL4qjDzs5YLTBMQ99weRsok1XCDccQeehbHA/I1oRvk2NPtr7KGZgT/Y5tPRnAtMqeG2Kg==}
|
||||||
engines: {node: '>=14'}
|
engines: {node: '>=14'}
|
||||||
|
|
||||||
|
local-pkg@1.1.1:
|
||||||
|
resolution: {integrity: sha512-WunYko2W1NcdfAFpuLUoucsgULmgDBRkdxHxWQ7mK0cQqwPiy8E1enjuRBrhLtZkB5iScJ1XIPdhVEFK8aOLSg==}
|
||||||
|
engines: {node: '>=14'}
|
||||||
|
|
||||||
locate-path@3.0.0:
|
locate-path@3.0.0:
|
||||||
resolution: {integrity: sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==}
|
resolution: {integrity: sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==}
|
||||||
engines: {node: '>=6'}
|
engines: {node: '>=6'}
|
||||||
@@ -8040,6 +8059,9 @@ packages:
|
|||||||
package-manager-detector@0.2.9:
|
package-manager-detector@0.2.9:
|
||||||
resolution: {integrity: sha512-+vYvA/Y31l8Zk8dwxHhL3JfTuHPm6tlxM2A3GeQyl7ovYnSp1+mzAxClxaOr0qO1TtPxbQxetI7v5XqKLJZk7Q==}
|
resolution: {integrity: sha512-+vYvA/Y31l8Zk8dwxHhL3JfTuHPm6tlxM2A3GeQyl7ovYnSp1+mzAxClxaOr0qO1TtPxbQxetI7v5XqKLJZk7Q==}
|
||||||
|
|
||||||
|
package-manager-detector@1.3.0:
|
||||||
|
resolution: {integrity: sha512-ZsEbbZORsyHuO00lY1kV3/t72yp6Ysay6Pd17ZAlNGuGwmWDLCJxFpRs0IzfXfj1o4icJOkUEioexFHzyPurSQ==}
|
||||||
|
|
||||||
pako@1.0.11:
|
pako@1.0.11:
|
||||||
resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==}
|
resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==}
|
||||||
|
|
||||||
@@ -8223,6 +8245,9 @@ packages:
|
|||||||
pkg-types@1.3.1:
|
pkg-types@1.3.1:
|
||||||
resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==}
|
resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==}
|
||||||
|
|
||||||
|
pkg-types@2.2.0:
|
||||||
|
resolution: {integrity: sha512-2SM/GZGAEkPp3KWORxQZns4M+WSeXbC2HEvmOIJe3Cmiv6ieAJvdVhDldtHqM5J1Y7MrR1XhkBT/rMlhh9FdqQ==}
|
||||||
|
|
||||||
plist@3.1.0:
|
plist@3.1.0:
|
||||||
resolution: {integrity: sha512-uysumyrvkUX0rX/dEVqt8gC3sTBzd4zoWfLeS29nb53imdaXVvLINYXTI2GNqzaMuvacNx4uJQ8+b3zXR0pkgQ==}
|
resolution: {integrity: sha512-uysumyrvkUX0rX/dEVqt8gC3sTBzd4zoWfLeS29nb53imdaXVvLINYXTI2GNqzaMuvacNx4uJQ8+b3zXR0pkgQ==}
|
||||||
engines: {node: '>=10.4.0'}
|
engines: {node: '>=10.4.0'}
|
||||||
@@ -8405,6 +8430,9 @@ packages:
|
|||||||
resolution: {integrity: sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==}
|
resolution: {integrity: sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==}
|
||||||
engines: {node: '>=0.6'}
|
engines: {node: '>=0.6'}
|
||||||
|
|
||||||
|
quansync@0.2.10:
|
||||||
|
resolution: {integrity: sha512-t41VRkMYbkHyCYmOvx/6URnN80H7k4X0lLdBMGsz+maAwrJQYB1djpV6vHrQIBE0WBSGqhtEHrK9U3DWWH8v7A==}
|
||||||
|
|
||||||
queue-microtask@1.2.3:
|
queue-microtask@1.2.3:
|
||||||
resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
|
resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
|
||||||
|
|
||||||
@@ -8996,6 +9024,7 @@ packages:
|
|||||||
source-map@0.8.0-beta.0:
|
source-map@0.8.0-beta.0:
|
||||||
resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==}
|
resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==}
|
||||||
engines: {node: '>= 8'}
|
engines: {node: '>= 8'}
|
||||||
|
deprecated: The work that was done in this beta branch won't be included in future versions
|
||||||
|
|
||||||
sourcemap-codec@1.4.8:
|
sourcemap-codec@1.4.8:
|
||||||
resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==}
|
resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==}
|
||||||
@@ -9327,6 +9356,9 @@ packages:
|
|||||||
tinyexec@0.3.2:
|
tinyexec@0.3.2:
|
||||||
resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==}
|
resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==}
|
||||||
|
|
||||||
|
tinyexec@1.0.1:
|
||||||
|
resolution: {integrity: sha512-5uC6DDlmeqiOwCPmK9jMSdOuZTh8bU39Ys6yidB+UTt5hfZUPGAypSgFRiEp+jbi9qH40BLDvy85jIU88wKSqw==}
|
||||||
|
|
||||||
tinyglobby@0.2.12:
|
tinyglobby@0.2.12:
|
||||||
resolution: {integrity: sha512-qkf4trmKSIiMTs/E63cxH+ojC2unam7rJ0WrauAzpT3ECNTxGRMlaXxVbfxMUC/w0LaYk6jQ4y/nGR9uBO3tww==}
|
resolution: {integrity: sha512-qkf4trmKSIiMTs/E63cxH+ojC2unam7rJ0WrauAzpT3ECNTxGRMlaXxVbfxMUC/w0LaYk6jQ4y/nGR9uBO3tww==}
|
||||||
engines: {node: '>=12.0.0'}
|
engines: {node: '>=12.0.0'}
|
||||||
@@ -9547,8 +9579,8 @@ packages:
|
|||||||
resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==}
|
resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==}
|
||||||
engines: {node: '>= 0.4'}
|
engines: {node: '>= 0.4'}
|
||||||
|
|
||||||
unconfig@7.0.0:
|
unconfig@7.3.2:
|
||||||
resolution: {integrity: sha512-G5CJSoG6ZTxgzCJblEfgpdRK2tos9+UdD2WtecDUVfImzQ0hFjwpH5RVvGMhP4pRpC9ML7NrC4qBsBl0Ttj35A==}
|
resolution: {integrity: sha512-nqG5NNL2wFVGZ0NA/aCFw0oJ2pxSf1lwg4Z5ill8wd7K4KX/rQbHlwbh+bjctXL5Ly1xtzHenHGOK0b+lG6JVg==}
|
||||||
|
|
||||||
underscore@1.1.7:
|
underscore@1.1.7:
|
||||||
resolution: {integrity: sha512-w4QtCHoLBXw1mjofIDoMyexaEdWGMedWNDhlWTtT1V1lCRqi65Pnoygkh6+WRdr+Bm8ldkBNkNeCsXGMlQS9HQ==}
|
resolution: {integrity: sha512-w4QtCHoLBXw1mjofIDoMyexaEdWGMedWNDhlWTtT1V1lCRqi65Pnoygkh6+WRdr+Bm8ldkBNkNeCsXGMlQS9HQ==}
|
||||||
@@ -9625,12 +9657,12 @@ packages:
|
|||||||
resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==}
|
resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==}
|
||||||
engines: {node: '>= 10.0.0'}
|
engines: {node: '>= 10.0.0'}
|
||||||
|
|
||||||
unocss@66.0.0:
|
unocss@66.4.2:
|
||||||
resolution: {integrity: sha512-SHstiv1s7zGPSjzOsADzlwRhQM+6817+OqQE3Fv+N/nn2QLNx1bi3WXybFfz5tWkzBtyTZlwdPmeecsIs1yOCA==}
|
resolution: {integrity: sha512-PsZ+4XF/ekiParR7PZEM7AchvHJ78EIfOXlqTPflTOXCYgZ77kG9NaIaIf4lHRevY+rRTyrHrjxdg1Ern2j8qw==}
|
||||||
engines: {node: '>=14'}
|
engines: {node: '>=14'}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
'@unocss/webpack': 66.0.0
|
'@unocss/webpack': 66.4.2
|
||||||
vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0 || ^6.0.0-0
|
vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0 || ^6.0.0-0 || ^7.0.0-0
|
||||||
peerDependenciesMeta:
|
peerDependenciesMeta:
|
||||||
'@unocss/webpack':
|
'@unocss/webpack':
|
||||||
optional: true
|
optional: true
|
||||||
@@ -9974,10 +10006,8 @@ packages:
|
|||||||
vscode-uri@3.1.0:
|
vscode-uri@3.1.0:
|
||||||
resolution: {integrity: sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ==}
|
resolution: {integrity: sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ==}
|
||||||
|
|
||||||
vue-flow-layout@0.1.1:
|
vue-flow-layout@0.2.0:
|
||||||
resolution: {integrity: sha512-JdgRRUVrN0Y2GosA0M68DEbKlXMqJ7FQgsK8CjQD2vxvNSqAU6PZEpi4cfcTVtfM2GVOMjHo7GKKLbXxOBqDqA==}
|
resolution: {integrity: sha512-zKgsWWkXq0xrus7H4Mc+uFs1ESrmdTXlO0YNbR6wMdPaFvosL3fMB8N7uTV308UhGy9UvTrGhIY7mVz9eN+L0Q==}
|
||||||
peerDependencies:
|
|
||||||
vue: ^3.4.37
|
|
||||||
|
|
||||||
vue@3.5.13:
|
vue@3.5.13:
|
||||||
resolution: {integrity: sha512-wmeiSMxkZCSc+PM2w2VRsOYAZC8GdipNFRTsLSfodVqI9mbejKeXEGr8SckuLnrQPGe3oJN5c3K0vpoU9q/wCQ==}
|
resolution: {integrity: sha512-wmeiSMxkZCSc+PM2w2VRsOYAZC8GdipNFRTsLSfodVqI9mbejKeXEGr8SckuLnrQPGe3oJN5c3K0vpoU9q/wCQ==}
|
||||||
@@ -10498,12 +10528,12 @@ snapshots:
|
|||||||
'@jridgewell/gen-mapping': 0.3.8
|
'@jridgewell/gen-mapping': 0.3.8
|
||||||
'@jridgewell/trace-mapping': 0.3.25
|
'@jridgewell/trace-mapping': 0.3.25
|
||||||
|
|
||||||
'@antfu/install-pkg@1.0.0':
|
'@antfu/install-pkg@1.1.0':
|
||||||
dependencies:
|
dependencies:
|
||||||
package-manager-detector: 0.2.9
|
package-manager-detector: 1.3.0
|
||||||
tinyexec: 0.3.2
|
tinyexec: 1.0.1
|
||||||
|
|
||||||
'@antfu/utils@8.1.1': {}
|
'@antfu/utils@9.2.0': {}
|
||||||
|
|
||||||
'@apideck/better-ajv-errors@0.3.6(ajv@8.17.1)':
|
'@apideck/better-ajv-errors@0.3.6(ajv@8.17.1)':
|
||||||
dependencies:
|
dependencies:
|
||||||
@@ -10856,7 +10886,7 @@ snapshots:
|
|||||||
|
|
||||||
'@babel/generator@7.27.1':
|
'@babel/generator@7.27.1':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@babel/parser': 7.27.2
|
'@babel/parser': 7.28.0
|
||||||
'@babel/types': 7.27.1
|
'@babel/types': 7.27.1
|
||||||
'@jridgewell/gen-mapping': 0.3.8
|
'@jridgewell/gen-mapping': 0.3.8
|
||||||
'@jridgewell/trace-mapping': 0.3.25
|
'@jridgewell/trace-mapping': 0.3.25
|
||||||
@@ -10955,7 +10985,7 @@ snapshots:
|
|||||||
|
|
||||||
'@babel/helper-module-imports@7.27.1':
|
'@babel/helper-module-imports@7.27.1':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@babel/traverse': 7.27.1
|
'@babel/traverse': 7.28.0
|
||||||
'@babel/types': 7.27.1
|
'@babel/types': 7.27.1
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
@@ -10965,7 +10995,7 @@ snapshots:
|
|||||||
'@babel/core': 7.27.1
|
'@babel/core': 7.27.1
|
||||||
'@babel/helper-module-imports': 7.27.1
|
'@babel/helper-module-imports': 7.27.1
|
||||||
'@babel/helper-validator-identifier': 7.27.1
|
'@babel/helper-validator-identifier': 7.27.1
|
||||||
'@babel/traverse': 7.27.1
|
'@babel/traverse': 7.28.0
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
@@ -12080,14 +12110,14 @@ snapshots:
|
|||||||
'@babel/template@7.27.2':
|
'@babel/template@7.27.2':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@babel/code-frame': 7.27.1
|
'@babel/code-frame': 7.27.1
|
||||||
'@babel/parser': 7.27.2
|
'@babel/parser': 7.28.0
|
||||||
'@babel/types': 7.27.1
|
'@babel/types': 7.27.1
|
||||||
|
|
||||||
'@babel/traverse@7.27.1':
|
'@babel/traverse@7.27.1':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@babel/code-frame': 7.27.1
|
'@babel/code-frame': 7.27.1
|
||||||
'@babel/generator': 7.27.1
|
'@babel/generator': 7.27.1
|
||||||
'@babel/parser': 7.27.2
|
'@babel/parser': 7.28.0
|
||||||
'@babel/template': 7.27.2
|
'@babel/template': 7.27.2
|
||||||
'@babel/types': 7.27.1
|
'@babel/types': 7.27.1
|
||||||
debug: 4.4.1(supports-color@8.1.1)
|
debug: 4.4.1(supports-color@8.1.1)
|
||||||
@@ -12673,7 +12703,7 @@ snapshots:
|
|||||||
'@babel/preset-env': 7.27.2(@babel/core@7.27.1)
|
'@babel/preset-env': 7.27.2(@babel/core@7.27.1)
|
||||||
babel-loader: 9.2.1(@babel/core@7.27.1)(webpack@5.95.0(esbuild@0.25.0))
|
babel-loader: 9.2.1(@babel/core@7.27.1)(webpack@5.95.0(esbuild@0.25.0))
|
||||||
bluebird: 3.7.1
|
bluebird: 3.7.1
|
||||||
debug: 4.4.0
|
debug: 4.4.1(supports-color@8.1.1)
|
||||||
lodash: 4.17.21
|
lodash: 4.17.21
|
||||||
webpack: 5.95.0(esbuild@0.25.0)
|
webpack: 5.95.0(esbuild@0.25.0)
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
@@ -13111,15 +13141,15 @@ snapshots:
|
|||||||
|
|
||||||
'@iconify/types@2.0.0': {}
|
'@iconify/types@2.0.0': {}
|
||||||
|
|
||||||
'@iconify/utils@2.3.0':
|
'@iconify/utils@3.0.1':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@antfu/install-pkg': 1.0.0
|
'@antfu/install-pkg': 1.1.0
|
||||||
'@antfu/utils': 8.1.1
|
'@antfu/utils': 9.2.0
|
||||||
'@iconify/types': 2.0.0
|
'@iconify/types': 2.0.0
|
||||||
debug: 4.4.0
|
debug: 4.4.1(supports-color@8.1.1)
|
||||||
globals: 15.15.0
|
globals: 15.15.0
|
||||||
kolorist: 1.8.0
|
kolorist: 1.8.0
|
||||||
local-pkg: 1.0.0
|
local-pkg: 1.1.1
|
||||||
mlly: 1.7.4
|
mlly: 1.7.4
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
@@ -13501,6 +13531,10 @@ snapshots:
|
|||||||
|
|
||||||
'@polka/url@1.0.0-next.28': {}
|
'@polka/url@1.0.0-next.28': {}
|
||||||
|
|
||||||
|
'@quansync/fs@0.1.4':
|
||||||
|
dependencies:
|
||||||
|
quansync: 0.2.10
|
||||||
|
|
||||||
'@react-aria/focus@3.21.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
|
'@react-aria/focus@3.21.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@react-aria/interactions': 3.25.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
|
'@react-aria/interactions': 3.25.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
|
||||||
@@ -13840,7 +13874,7 @@ snapshots:
|
|||||||
|
|
||||||
'@types/babel__core@7.20.5':
|
'@types/babel__core@7.20.5':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@babel/parser': 7.27.2
|
'@babel/parser': 7.28.0
|
||||||
'@babel/types': 7.27.1
|
'@babel/types': 7.27.1
|
||||||
'@types/babel__generator': 7.6.8
|
'@types/babel__generator': 7.6.8
|
||||||
'@types/babel__template': 7.4.4
|
'@types/babel__template': 7.4.4
|
||||||
@@ -13852,7 +13886,7 @@ snapshots:
|
|||||||
|
|
||||||
'@types/babel__template@7.4.4':
|
'@types/babel__template@7.4.4':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@babel/parser': 7.27.2
|
'@babel/parser': 7.28.0
|
||||||
'@babel/types': 7.27.1
|
'@babel/types': 7.27.1
|
||||||
|
|
||||||
'@types/babel__traverse@7.20.6':
|
'@types/babel__traverse@7.20.6':
|
||||||
@@ -14358,150 +14392,157 @@ snapshots:
|
|||||||
|
|
||||||
'@ungap/structured-clone@1.3.0': {}
|
'@ungap/structured-clone@1.3.0': {}
|
||||||
|
|
||||||
'@unocss/astro@66.0.0(vite@6.1.1(@types/node@22.13.5)(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.8.0))(vue@3.5.13(typescript@5.7.3))':
|
'@unocss/astro@66.4.2(vite@6.1.1(@types/node@22.13.5)(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.8.0))':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@unocss/core': 66.0.0
|
'@unocss/core': 66.4.2
|
||||||
'@unocss/reset': 66.0.0
|
'@unocss/reset': 66.4.2
|
||||||
'@unocss/vite': 66.0.0(vite@6.1.1(@types/node@22.13.5)(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.8.0))(vue@3.5.13(typescript@5.7.3))
|
'@unocss/vite': 66.4.2(vite@6.1.1(@types/node@22.13.5)(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.8.0))
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
vite: 6.1.1(@types/node@22.13.5)(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.8.0)
|
vite: 6.1.1(@types/node@22.13.5)(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.8.0)
|
||||||
transitivePeerDependencies:
|
|
||||||
- vue
|
|
||||||
|
|
||||||
'@unocss/cli@66.0.0':
|
'@unocss/cli@66.4.2':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@ampproject/remapping': 2.3.0
|
'@ampproject/remapping': 2.3.0
|
||||||
'@unocss/config': 66.0.0
|
'@unocss/config': 66.4.2
|
||||||
'@unocss/core': 66.0.0
|
'@unocss/core': 66.4.2
|
||||||
'@unocss/preset-uno': 66.0.0
|
'@unocss/preset-uno': 66.4.2
|
||||||
cac: 6.7.14
|
cac: 6.7.14
|
||||||
chokidar: 3.6.0
|
chokidar: 3.6.0
|
||||||
colorette: 2.0.20
|
colorette: 2.0.20
|
||||||
consola: 3.4.0
|
consola: 3.4.2
|
||||||
magic-string: 0.30.17
|
magic-string: 0.30.17
|
||||||
pathe: 2.0.3
|
pathe: 2.0.3
|
||||||
perfect-debounce: 1.0.0
|
perfect-debounce: 1.0.0
|
||||||
tinyglobby: 0.2.12
|
tinyglobby: 0.2.14
|
||||||
unplugin-utils: 0.2.4
|
unplugin-utils: 0.2.4
|
||||||
|
|
||||||
'@unocss/config@66.0.0':
|
'@unocss/config@66.4.2':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@unocss/core': 66.0.0
|
'@unocss/core': 66.4.2
|
||||||
unconfig: 7.0.0
|
unconfig: 7.3.2
|
||||||
|
|
||||||
'@unocss/core@66.0.0': {}
|
'@unocss/core@66.4.2': {}
|
||||||
|
|
||||||
'@unocss/extractor-arbitrary-variants@66.0.0':
|
'@unocss/extractor-arbitrary-variants@66.4.2':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@unocss/core': 66.0.0
|
'@unocss/core': 66.4.2
|
||||||
|
|
||||||
'@unocss/inspector@66.0.0(vue@3.5.13(typescript@5.7.3))':
|
'@unocss/inspector@66.4.2':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@unocss/core': 66.0.0
|
'@unocss/core': 66.4.2
|
||||||
'@unocss/rule-utils': 66.0.0
|
'@unocss/rule-utils': 66.4.2
|
||||||
colorette: 2.0.20
|
colorette: 2.0.20
|
||||||
gzip-size: 6.0.0
|
gzip-size: 6.0.0
|
||||||
sirv: 3.0.1
|
sirv: 3.0.1
|
||||||
vue-flow-layout: 0.1.1(vue@3.5.13(typescript@5.7.3))
|
vue-flow-layout: 0.2.0
|
||||||
transitivePeerDependencies:
|
|
||||||
- vue
|
|
||||||
|
|
||||||
'@unocss/postcss@66.0.0(postcss@8.5.6)':
|
'@unocss/postcss@66.4.2(postcss@8.5.6)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@unocss/config': 66.0.0
|
'@unocss/config': 66.4.2
|
||||||
'@unocss/core': 66.0.0
|
'@unocss/core': 66.4.2
|
||||||
'@unocss/rule-utils': 66.0.0
|
'@unocss/rule-utils': 66.4.2
|
||||||
css-tree: 3.1.0
|
css-tree: 3.1.0
|
||||||
postcss: 8.5.6
|
postcss: 8.5.6
|
||||||
tinyglobby: 0.2.12
|
tinyglobby: 0.2.14
|
||||||
|
|
||||||
'@unocss/preset-attributify@66.0.0':
|
'@unocss/preset-attributify@66.4.2':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@unocss/core': 66.0.0
|
'@unocss/core': 66.4.2
|
||||||
|
|
||||||
'@unocss/preset-icons@66.0.0':
|
'@unocss/preset-icons@66.4.2':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@iconify/utils': 2.3.0
|
'@iconify/utils': 3.0.1
|
||||||
'@unocss/core': 66.0.0
|
'@unocss/core': 66.4.2
|
||||||
ofetch: 1.4.1
|
ofetch: 1.4.1
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
'@unocss/preset-mini@66.0.0':
|
'@unocss/preset-mini@66.4.2':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@unocss/core': 66.0.0
|
'@unocss/core': 66.4.2
|
||||||
'@unocss/extractor-arbitrary-variants': 66.0.0
|
'@unocss/extractor-arbitrary-variants': 66.4.2
|
||||||
'@unocss/rule-utils': 66.0.0
|
'@unocss/rule-utils': 66.4.2
|
||||||
|
|
||||||
'@unocss/preset-tagify@66.0.0':
|
'@unocss/preset-tagify@66.4.2':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@unocss/core': 66.0.0
|
'@unocss/core': 66.4.2
|
||||||
|
|
||||||
'@unocss/preset-typography@66.0.0':
|
'@unocss/preset-typography@66.4.2':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@unocss/core': 66.0.0
|
'@unocss/core': 66.4.2
|
||||||
'@unocss/preset-mini': 66.0.0
|
'@unocss/preset-mini': 66.4.2
|
||||||
'@unocss/rule-utils': 66.0.0
|
'@unocss/rule-utils': 66.4.2
|
||||||
|
|
||||||
'@unocss/preset-uno@66.0.0':
|
'@unocss/preset-uno@66.4.2':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@unocss/core': 66.0.0
|
'@unocss/core': 66.4.2
|
||||||
'@unocss/preset-wind3': 66.0.0
|
'@unocss/preset-wind3': 66.4.2
|
||||||
|
|
||||||
'@unocss/preset-web-fonts@66.0.0':
|
'@unocss/preset-web-fonts@66.4.2':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@unocss/core': 66.0.0
|
'@unocss/core': 66.4.2
|
||||||
ofetch: 1.4.1
|
ofetch: 1.4.1
|
||||||
|
|
||||||
'@unocss/preset-wind3@66.0.0':
|
'@unocss/preset-wind3@66.4.2':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@unocss/core': 66.0.0
|
'@unocss/core': 66.4.2
|
||||||
'@unocss/preset-mini': 66.0.0
|
'@unocss/preset-mini': 66.4.2
|
||||||
'@unocss/rule-utils': 66.0.0
|
'@unocss/rule-utils': 66.4.2
|
||||||
|
|
||||||
'@unocss/preset-wind@66.0.0':
|
'@unocss/preset-wind4@66.4.2':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@unocss/core': 66.0.0
|
'@unocss/core': 66.4.2
|
||||||
'@unocss/preset-wind3': 66.0.0
|
'@unocss/extractor-arbitrary-variants': 66.4.2
|
||||||
|
'@unocss/rule-utils': 66.4.2
|
||||||
|
|
||||||
|
'@unocss/preset-wind@66.4.2':
|
||||||
|
dependencies:
|
||||||
|
'@unocss/core': 66.4.2
|
||||||
|
'@unocss/preset-wind3': 66.4.2
|
||||||
|
|
||||||
'@unocss/reset@66.0.0': {}
|
'@unocss/reset@66.0.0': {}
|
||||||
|
|
||||||
'@unocss/rule-utils@66.0.0':
|
'@unocss/reset@66.4.2': {}
|
||||||
|
|
||||||
|
'@unocss/rule-utils@66.4.2':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@unocss/core': 66.0.0
|
'@unocss/core': 66.4.2
|
||||||
magic-string: 0.30.17
|
magic-string: 0.30.17
|
||||||
|
|
||||||
'@unocss/transformer-attributify-jsx@66.0.0':
|
'@unocss/transformer-attributify-jsx@66.4.2':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@unocss/core': 66.0.0
|
'@babel/parser': 7.28.0
|
||||||
|
'@babel/traverse': 7.28.0
|
||||||
|
'@unocss/core': 66.4.2
|
||||||
|
transitivePeerDependencies:
|
||||||
|
- supports-color
|
||||||
|
|
||||||
'@unocss/transformer-compile-class@66.0.0':
|
'@unocss/transformer-compile-class@66.4.2':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@unocss/core': 66.0.0
|
'@unocss/core': 66.4.2
|
||||||
|
|
||||||
'@unocss/transformer-directives@66.0.0':
|
'@unocss/transformer-directives@66.4.2':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@unocss/core': 66.0.0
|
'@unocss/core': 66.4.2
|
||||||
'@unocss/rule-utils': 66.0.0
|
'@unocss/rule-utils': 66.4.2
|
||||||
css-tree: 3.1.0
|
css-tree: 3.1.0
|
||||||
|
|
||||||
'@unocss/transformer-variant-group@66.0.0':
|
'@unocss/transformer-variant-group@66.4.2':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@unocss/core': 66.0.0
|
'@unocss/core': 66.4.2
|
||||||
|
|
||||||
'@unocss/vite@66.0.0(vite@6.1.1(@types/node@22.13.5)(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.8.0))(vue@3.5.13(typescript@5.7.3))':
|
'@unocss/vite@66.4.2(vite@6.1.1(@types/node@22.13.5)(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.8.0))':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@ampproject/remapping': 2.3.0
|
'@ampproject/remapping': 2.3.0
|
||||||
'@unocss/config': 66.0.0
|
'@unocss/config': 66.4.2
|
||||||
'@unocss/core': 66.0.0
|
'@unocss/core': 66.4.2
|
||||||
'@unocss/inspector': 66.0.0(vue@3.5.13(typescript@5.7.3))
|
'@unocss/inspector': 66.4.2
|
||||||
chokidar: 3.6.0
|
chokidar: 3.6.0
|
||||||
magic-string: 0.30.17
|
magic-string: 0.30.17
|
||||||
tinyglobby: 0.2.12
|
pathe: 2.0.3
|
||||||
|
tinyglobby: 0.2.14
|
||||||
unplugin-utils: 0.2.4
|
unplugin-utils: 0.2.4
|
||||||
vite: 6.1.1(@types/node@22.13.5)(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.8.0)
|
vite: 6.1.1(@types/node@22.13.5)(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.8.0)
|
||||||
transitivePeerDependencies:
|
|
||||||
- vue
|
|
||||||
|
|
||||||
'@unrs/resolver-binding-android-arm-eabi@1.11.1':
|
'@unrs/resolver-binding-android-arm-eabi@1.11.1':
|
||||||
optional: true
|
optional: true
|
||||||
@@ -15771,9 +15812,11 @@ snapshots:
|
|||||||
|
|
||||||
confbox@0.1.8: {}
|
confbox@0.1.8: {}
|
||||||
|
|
||||||
|
confbox@0.2.2: {}
|
||||||
|
|
||||||
connect-history-api-fallback@2.0.0: {}
|
connect-history-api-fallback@2.0.0: {}
|
||||||
|
|
||||||
consola@3.4.0: {}
|
consola@3.4.2: {}
|
||||||
|
|
||||||
console.table@0.10.0:
|
console.table@0.10.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
@@ -17197,6 +17240,8 @@ snapshots:
|
|||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
|
exsolve@1.0.7: {}
|
||||||
|
|
||||||
extend@3.0.2: {}
|
extend@3.0.2: {}
|
||||||
|
|
||||||
extendable-error@0.1.7: {}
|
extendable-error@0.1.7: {}
|
||||||
@@ -17402,7 +17447,7 @@ snapshots:
|
|||||||
'@actions/core': 1.11.1
|
'@actions/core': 1.11.1
|
||||||
arg: 5.0.2
|
arg: 5.0.2
|
||||||
console.table: 0.10.0
|
console.table: 0.10.0
|
||||||
debug: 4.4.0
|
debug: 4.4.1(supports-color@8.1.1)
|
||||||
find-test-names: 1.29.5(@babel/core@7.27.1)
|
find-test-names: 1.29.5(@babel/core@7.27.1)
|
||||||
globby: 11.1.0
|
globby: 11.1.0
|
||||||
minimatch: 3.1.2
|
minimatch: 3.1.2
|
||||||
@@ -18303,7 +18348,7 @@ snapshots:
|
|||||||
istanbul-lib-source-maps@5.0.6:
|
istanbul-lib-source-maps@5.0.6:
|
||||||
dependencies:
|
dependencies:
|
||||||
'@jridgewell/trace-mapping': 0.3.25
|
'@jridgewell/trace-mapping': 0.3.25
|
||||||
debug: 4.4.0
|
debug: 4.4.1(supports-color@8.1.1)
|
||||||
istanbul-lib-coverage: 3.2.2
|
istanbul-lib-coverage: 3.2.2
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
@@ -18936,6 +18981,12 @@ snapshots:
|
|||||||
mlly: 1.7.4
|
mlly: 1.7.4
|
||||||
pkg-types: 1.3.1
|
pkg-types: 1.3.1
|
||||||
|
|
||||||
|
local-pkg@1.1.1:
|
||||||
|
dependencies:
|
||||||
|
mlly: 1.7.4
|
||||||
|
pkg-types: 2.2.0
|
||||||
|
quansync: 0.2.10
|
||||||
|
|
||||||
locate-path@3.0.0:
|
locate-path@3.0.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
p-locate: 3.0.0
|
p-locate: 3.0.0
|
||||||
@@ -19615,7 +19666,7 @@ snapshots:
|
|||||||
|
|
||||||
node-source-walk@7.0.0:
|
node-source-walk@7.0.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
'@babel/parser': 7.27.2
|
'@babel/parser': 7.28.0
|
||||||
|
|
||||||
nomnom@1.5.2:
|
nomnom@1.5.2:
|
||||||
dependencies:
|
dependencies:
|
||||||
@@ -19873,6 +19924,8 @@ snapshots:
|
|||||||
|
|
||||||
package-manager-detector@0.2.9: {}
|
package-manager-detector@0.2.9: {}
|
||||||
|
|
||||||
|
package-manager-detector@1.3.0: {}
|
||||||
|
|
||||||
pako@1.0.11: {}
|
pako@1.0.11: {}
|
||||||
|
|
||||||
pako@2.1.0: {}
|
pako@2.1.0: {}
|
||||||
@@ -20047,6 +20100,12 @@ snapshots:
|
|||||||
mlly: 1.7.4
|
mlly: 1.7.4
|
||||||
pathe: 2.0.3
|
pathe: 2.0.3
|
||||||
|
|
||||||
|
pkg-types@2.2.0:
|
||||||
|
dependencies:
|
||||||
|
confbox: 0.2.2
|
||||||
|
exsolve: 1.0.7
|
||||||
|
pathe: 2.0.3
|
||||||
|
|
||||||
plist@3.1.0:
|
plist@3.1.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
'@xmldom/xmldom': 0.8.10
|
'@xmldom/xmldom': 0.8.10
|
||||||
@@ -20228,6 +20287,8 @@ snapshots:
|
|||||||
dependencies:
|
dependencies:
|
||||||
side-channel: 1.1.0
|
side-channel: 1.1.0
|
||||||
|
|
||||||
|
quansync@0.2.10: {}
|
||||||
|
|
||||||
queue-microtask@1.2.3: {}
|
queue-microtask@1.2.3: {}
|
||||||
|
|
||||||
quick-format-unescaped@4.0.4: {}
|
quick-format-unescaped@4.0.4: {}
|
||||||
@@ -21017,7 +21078,7 @@ snapshots:
|
|||||||
|
|
||||||
spdy@4.0.2:
|
spdy@4.0.2:
|
||||||
dependencies:
|
dependencies:
|
||||||
debug: 4.4.0
|
debug: 4.4.1(supports-color@8.1.1)
|
||||||
handle-thing: 2.0.1
|
handle-thing: 2.0.1
|
||||||
http-deceiver: 1.2.7
|
http-deceiver: 1.2.7
|
||||||
select-hose: 2.0.0
|
select-hose: 2.0.0
|
||||||
@@ -21397,6 +21458,8 @@ snapshots:
|
|||||||
|
|
||||||
tinyexec@0.3.2: {}
|
tinyexec@0.3.2: {}
|
||||||
|
|
||||||
|
tinyexec@1.0.1: {}
|
||||||
|
|
||||||
tinyglobby@0.2.12:
|
tinyglobby@0.2.12:
|
||||||
dependencies:
|
dependencies:
|
||||||
fdir: 6.4.3(picomatch@4.0.2)
|
fdir: 6.4.3(picomatch@4.0.2)
|
||||||
@@ -21599,11 +21662,12 @@ snapshots:
|
|||||||
has-symbols: 1.1.0
|
has-symbols: 1.1.0
|
||||||
which-boxed-primitive: 1.1.1
|
which-boxed-primitive: 1.1.1
|
||||||
|
|
||||||
unconfig@7.0.0:
|
unconfig@7.3.2:
|
||||||
dependencies:
|
dependencies:
|
||||||
'@antfu/utils': 8.1.1
|
'@quansync/fs': 0.1.4
|
||||||
defu: 6.1.4
|
defu: 6.1.4
|
||||||
jiti: 2.4.2
|
jiti: 2.4.2
|
||||||
|
quansync: 0.2.10
|
||||||
|
|
||||||
underscore@1.1.7: {}
|
underscore@1.1.7: {}
|
||||||
|
|
||||||
@@ -21689,32 +21753,32 @@ snapshots:
|
|||||||
|
|
||||||
universalify@2.0.1: {}
|
universalify@2.0.1: {}
|
||||||
|
|
||||||
unocss@66.0.0(postcss@8.5.6)(vite@6.1.1(@types/node@22.13.5)(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.8.0))(vue@3.5.13(typescript@5.7.3)):
|
unocss@66.4.2(postcss@8.5.6)(vite@6.1.1(@types/node@22.13.5)(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.8.0)):
|
||||||
dependencies:
|
dependencies:
|
||||||
'@unocss/astro': 66.0.0(vite@6.1.1(@types/node@22.13.5)(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.8.0))(vue@3.5.13(typescript@5.7.3))
|
'@unocss/astro': 66.4.2(vite@6.1.1(@types/node@22.13.5)(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.8.0))
|
||||||
'@unocss/cli': 66.0.0
|
'@unocss/cli': 66.4.2
|
||||||
'@unocss/core': 66.0.0
|
'@unocss/core': 66.4.2
|
||||||
'@unocss/postcss': 66.0.0(postcss@8.5.6)
|
'@unocss/postcss': 66.4.2(postcss@8.5.6)
|
||||||
'@unocss/preset-attributify': 66.0.0
|
'@unocss/preset-attributify': 66.4.2
|
||||||
'@unocss/preset-icons': 66.0.0
|
'@unocss/preset-icons': 66.4.2
|
||||||
'@unocss/preset-mini': 66.0.0
|
'@unocss/preset-mini': 66.4.2
|
||||||
'@unocss/preset-tagify': 66.0.0
|
'@unocss/preset-tagify': 66.4.2
|
||||||
'@unocss/preset-typography': 66.0.0
|
'@unocss/preset-typography': 66.4.2
|
||||||
'@unocss/preset-uno': 66.0.0
|
'@unocss/preset-uno': 66.4.2
|
||||||
'@unocss/preset-web-fonts': 66.0.0
|
'@unocss/preset-web-fonts': 66.4.2
|
||||||
'@unocss/preset-wind': 66.0.0
|
'@unocss/preset-wind': 66.4.2
|
||||||
'@unocss/preset-wind3': 66.0.0
|
'@unocss/preset-wind3': 66.4.2
|
||||||
'@unocss/transformer-attributify-jsx': 66.0.0
|
'@unocss/preset-wind4': 66.4.2
|
||||||
'@unocss/transformer-compile-class': 66.0.0
|
'@unocss/transformer-attributify-jsx': 66.4.2
|
||||||
'@unocss/transformer-directives': 66.0.0
|
'@unocss/transformer-compile-class': 66.4.2
|
||||||
'@unocss/transformer-variant-group': 66.0.0
|
'@unocss/transformer-directives': 66.4.2
|
||||||
'@unocss/vite': 66.0.0(vite@6.1.1(@types/node@22.13.5)(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.8.0))(vue@3.5.13(typescript@5.7.3))
|
'@unocss/transformer-variant-group': 66.4.2
|
||||||
|
'@unocss/vite': 66.4.2(vite@6.1.1(@types/node@22.13.5)(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.8.0))
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
vite: 6.1.1(@types/node@22.13.5)(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.8.0)
|
vite: 6.1.1(@types/node@22.13.5)(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.8.0)
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- postcss
|
- postcss
|
||||||
- supports-color
|
- supports-color
|
||||||
- vue
|
|
||||||
|
|
||||||
unpipe@1.0.0: {}
|
unpipe@1.0.0: {}
|
||||||
|
|
||||||
@@ -22051,9 +22115,7 @@ snapshots:
|
|||||||
|
|
||||||
vscode-uri@3.1.0: {}
|
vscode-uri@3.1.0: {}
|
||||||
|
|
||||||
vue-flow-layout@0.1.1(vue@3.5.13(typescript@5.7.3)):
|
vue-flow-layout@0.2.0: {}
|
||||||
dependencies:
|
|
||||||
vue: 3.5.13(typescript@5.7.3)
|
|
||||||
|
|
||||||
vue@3.5.13(typescript@5.7.3):
|
vue@3.5.13(typescript@5.7.3):
|
||||||
dependencies:
|
dependencies:
|
||||||
|
Reference in New Issue
Block a user