@lincle/react-web-minimap 0.4.0-next.11 → 0.4.0-next.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,23 +1,23 @@
1
1
  <div align="center">
2
- <h1><code>@lincle/react-web-interactive</code>: An interactive <i>reactive</i> React node and edge generator</h1>
2
+ <h1><code>@lincle/react-web-interactive</code>: An interactive <i>reactive</i> React node and edge generator</h1>
3
3
  </div>
4
4
 
5
5
  <div align="center">
6
- <a href="https://www.npmjs.org/package/@lincle/react-web-interactive"><img alt="NPM Version" src="https://img.shields.io/npm/v/@lincle/react-web-interactive.svg" /></a>
7
- <a href="https://www.gnu.org/licenses/gpl-3.0.en.html"><img alt="License" src="https://img.shields.io/npm/l/@lincle/react-web-interactive.svg" /></a>
8
- <a href="https://app.fossa.io/projects/git%2Bhttps%3A%2F%2Fgitlab.com%2Flincle%2Flincle?ref=badge_shield"><img alt="FOSSA Status" src="https://app.fossa.io/api/projects/git%2Bhttps%3A%2F%2Fgitlab.com%2Flincle%2Flincle.svg?type=shield" /></a>
6
+ <a href="https://www.npmjs.org/package/@lincle/react-web-interactive"><img alt="NPM Version" src="https://img.shields.io/npm/v/@lincle/react-web-interactive.svg" /></a>
7
+ <a href="https://www.gnu.org/licenses/gpl-3.0.en.html"><img alt="License" src="https://img.shields.io/npm/l/@lincle/react-web-interactive.svg" /></a>
8
+ <a href="https://app.fossa.io/projects/git%2Bhttps%3A%2F%2Fgitlab.com%2Flincle%2Flincle?ref=badge_shield"><img alt="FOSSA Status" src="https://app.fossa.io/api/projects/git%2Bhttps%3A%2F%2Fgitlab.com%2Flincle%2Flincle.svg?type=shield" /></a>
9
9
  </div>
10
10
 
11
11
  <div align="center">
12
- <a href="https://github.com/gajus/canonical"><img alt="Canonical Code Style" src="https://img.shields.io/badge/code%20style-canonical-blue.svg" /></a>
13
- <a href="https://commitizen.github.io/cz-cli/"><img alt="Commitizen Friendly" src="https://img.shields.io/badge/commitizen-friendly-brightgreen.svg" /></a>
14
- <a href="https://github.com/semantic-release/semantic-release#readme"><img alt="Semantic Release" src="https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg" /></a>
12
+ <a href="https://github.com/gajus/canonical"><img alt="Canonical Code Style" src="https://img.shields.io/badge/code%20style-canonical-blue.svg" /></a>
13
+ <a href="https://commitizen.github.io/cz-cli/"><img alt="Commitizen Friendly" src="https://img.shields.io/badge/commitizen-friendly-brightgreen.svg" /></a>
14
+ <a href="https://github.com/semantic-release/semantic-release#readme"><img alt="Semantic Release" src="https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg" /></a>
15
15
  </div>
16
16
 
17
17
  <div align="center">
18
- <a href="https://gitlab.com/digested/lincle/commits/master"><img alt="Build Status" src="https://gitlab.com/digested/lincle/badges/master/pipeline.svg" /></a>
19
- <a href="https://lincle.gitlab.io/lincle/stats/base/coverage/lcov-report/"><img alt="Coverage Report" src="https://gitlab.com/digested/lincle/badges/master/coverage.svg" /></a>
20
- <a href="https://lincle.gitlab.io/lincle/stats/base/webpack/"><img alt="Build Analysis" src="https://img.shields.io/badge/webpack-stats-blue.svg" /></a>
18
+ <a href="https://gitlab.com/digested/lincle/commits/master"><img alt="Build Status" src="https://gitlab.com/digested/lincle/badges/master/pipeline.svg" /></a>
19
+ <a href="https://lincle.gitlab.io/lincle/stats/base/coverage/lcov-report/"><img alt="Coverage Report" src="https://gitlab.com/digested/lincle/badges/master/coverage.svg" /></a>
20
+ <a href="https://lincle.gitlab.io/lincle/stats/base/webpack/"><img alt="Build Analysis" src="https://img.shields.io/badge/webpack-stats-blue.svg" /></a>
21
21
  </div>
22
22
 
23
23
  **`@lincle/react-web-interactive`** generates a reactive, composable graph/diagram. `@lincle/react-web-interactive` is built on [`@lincle/base`](https://www.npmjs.com/package/@lincle/base) diagram generating capabilities adding interactive functionality.
@@ -51,107 +51,107 @@ import '@lincle/react-web-interactive/dist/main.min.css';
51
51
  The following example will generate this diagram:
52
52
 
53
53
  <div align="center">
54
- <a href="https://gitlab.com/digested/lincle/-/raw/master/static/react-yad-example.png">
55
- <img src="https://gitlab.com/digested/lincle/-/raw/master/static/react-yad-example.png" alt="resulting screenshot of simple example" style="max-width:100%;">
56
- </a>
54
+ <a href="https://gitlab.com/digested/lincle/-/raw/master/static/react-yad-example.png">
55
+ <img src="https://gitlab.com/digested/lincle/-/raw/master/static/react-yad-example.png" alt="resulting screenshot of simple example" style="max-width:100%;">
56
+ </a>
57
57
  </div>
58
58
 
59
59
  > [<h3>CodeSandbox</h3>](https://codesandbox.io/s/react-yad-simple-example-cus8v)
60
60
 
61
61
  ```css
62
62
  .node {
63
- display: flex;
64
- align-items: center;
65
- justify-content: center;
66
- width: calc(100% - 2px);
67
- height: calc(100% - 2px);
68
- cursor: grab;
69
- border: 1px solid black;
70
- background-color: white;
71
- box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16), 0 3px 6px rgba(0, 0, 0, 0.23);
63
+ display: flex;
64
+ align-items: center;
65
+ justify-content: center;
66
+ width: calc(100% - 2px);
67
+ height: calc(100% - 2px);
68
+ cursor: grab;
69
+ border: 1px solid black;
70
+ background-color: white;
71
+ box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16), 0 3px 6px rgba(0, 0, 0, 0.23);
72
72
  }
73
73
 
74
74
  .node:active {
75
- cursor: grabbing;
75
+ cursor: grabbing;
76
76
  }
77
77
 
78
78
  .node-oval {
79
- border-radius: 50%;
79
+ border-radius: 50%;
80
80
  }
81
81
  ```
82
82
 
83
83
  ```ts
84
84
  <Graph
85
- id='YetAnotherDiagram'
86
- key='1'
87
- nodeHeight={50}
88
- nodeWidth={50}
89
- onEdgeDrop={handleEdgeDrop}
85
+ id='YetAnotherDiagram'
86
+ key='1'
87
+ nodeHeight={50}
88
+ nodeWidth={50}
89
+ onEdgeDrop={handleEdgeDrop}
90
90
  >
91
- <Nodes>
92
- <Node
93
- id={1}
94
- key={1}
95
- x={50}
96
- y={50}
97
- >
98
- <div styleName='node'>
99
- Node 1
100
- </div>
101
- </Node>
102
- <Node
103
- height={100}
104
- id={2}
105
- key={2}
106
- line='direct'
107
- shape='oval'
108
- width={200}
109
- x={100}
110
- y={150}
111
- >
112
- <div styleName='node node-oval'>
113
- Node 2
114
- </div>
115
- </Node>
116
- <Node
117
- id={3}
118
- key={3}
119
- line='curve'
120
- shape='oval'
121
- x={150}
122
- y={350}
123
- >
124
- <div styleName='node node-oval'>
125
- Node 3
126
- </div>
127
- </Node>
128
- </Nodes>
129
- <Edges>
130
- <Edge
131
- id={1}
132
- key={1}
133
- sourceId={1}
134
- targetId={2}
135
- >
136
- <circle
137
- fill='white'
138
- r='3'
139
- stroke='black'
140
- strokeWidth={2}
141
- >
142
- <title>
143
- Bridge
144
- </title>
145
- </circle>
146
- </Edge>
147
- <Edge
148
- id={2}
149
- key={2}
150
- line='direct'
151
- sourceId={2}
152
- targetId={3}
153
- />
154
- </Edges>
91
+ <Nodes>
92
+ <Node
93
+ id={1}
94
+ key={1}
95
+ x={50}
96
+ y={50}
97
+ >
98
+ <div styleName='node'>
99
+ Node 1
100
+ </div>
101
+ </Node>
102
+ <Node
103
+ height={100}
104
+ id={2}
105
+ key={2}
106
+ line='direct'
107
+ shape='oval'
108
+ width={200}
109
+ x={100}
110
+ y={150}
111
+ >
112
+ <div styleName='node node-oval'>
113
+ Node 2
114
+ </div>
115
+ </Node>
116
+ <Node
117
+ id={3}
118
+ key={3}
119
+ line='curve'
120
+ shape='oval'
121
+ x={150}
122
+ y={350}
123
+ >
124
+ <div styleName='node node-oval'>
125
+ Node 3
126
+ </div>
127
+ </Node>
128
+ </Nodes>
129
+ <Edges>
130
+ <Edge
131
+ id={1}
132
+ key={1}
133
+ sourceId={1}
134
+ targetId={2}
135
+ >
136
+ <circle
137
+ fill='white'
138
+ r='3'
139
+ stroke='black'
140
+ strokeWidth={2}
141
+ >
142
+ <title>
143
+ Bridge
144
+ </title>
145
+ </circle>
146
+ </Edge>
147
+ <Edge
148
+ id={2}
149
+ key={2}
150
+ line='direct'
151
+ sourceId={2}
152
+ targetId={3}
153
+ />
154
+ </Edges>
155
155
  </Graph>
156
156
  ```
157
157
 
@@ -256,23 +256,23 @@ Instead of using the `@lincle/react-web-interactive` provided edges (`curve`, `l
256
256
 
257
257
  ```ts
258
258
  (
259
- source: {
260
- height: number,
261
- id: string | number,
262
- shape: 'oval' | 'rectangle',
263
- width: number,
264
- x: number,
265
- y: number
266
- },
267
- target: {
268
- height: number,
269
- id: string | number,
270
- shape: 'oval' | 'rectangle',
271
- width: number,
272
- x: number,
273
- y: number
274
- },
275
- children?: ReactNode
259
+ source: {
260
+ height: number,
261
+ id: string | number,
262
+ shape: 'oval' | 'rectangle',
263
+ width: number,
264
+ x: number,
265
+ y: number
266
+ },
267
+ target: {
268
+ height: number,
269
+ id: string | number,
270
+ shape: 'oval' | 'rectangle',
271
+ width: number,
272
+ x: number,
273
+ y: number
274
+ },
275
+ children?: ReactNode
276
276
  ) => Component<SVG type>
277
277
  ```
278
278
 
@@ -9,8 +9,8 @@ const Rectangle_1 = __importDefault(require("./Rectangle"));
9
9
  const react_1 = require("react");
10
10
  const MiniMapNode = ({ height, shape, width, x, y }) => {
11
11
  return (shape === 'oval' ?
12
- ((0, jsx_runtime_1.jsx)(Ellipse_1.default, { height: height, width: width, x: x, y: y })) :
13
- ((0, jsx_runtime_1.jsx)(Rectangle_1.default, { height: height, width: width, x: x, y: y })));
12
+ (0, jsx_runtime_1.jsx)(Ellipse_1.default, { height: height, width: width, x: x, y: y }) :
13
+ (0, jsx_runtime_1.jsx)(Rectangle_1.default, { height: height, width: width, x: x, y: y }));
14
14
  };
15
15
  MiniMapNode.displayName = 'LincleMiniMapNode';
16
16
  exports.default = (0, react_1.memo)(MiniMapNode);
@@ -119,11 +119,14 @@ const MiniMapPlain = ({ className, gutter: givenGutter = 8, height: givenMapHeig
119
119
  const Nodes = nodes ?
120
120
  Object.keys(nodes).map((nodeId) => {
121
121
  const node = nodes[nodeId];
122
- return node ?
123
- (nodeFunction ?
122
+ if (node) {
123
+ return nodeFunction ?
124
124
  nodeFunction(node) :
125
- ((0, jsx_runtime_1.jsx)(MiniMapNode_1.default, { height: node.height, shape: node.shape, width: node.width, x: node.x, y: node.y }, node.id))) :
126
- null;
125
+ ((0, jsx_runtime_1.jsx)(MiniMapNode_1.default, { height: node.height, shape: node.shape, width: node.width, x: node.x, y: node.y }, node.id));
126
+ }
127
+ else {
128
+ return null;
129
+ }
127
130
  }) :
128
131
  null;
129
132
  const d = (0, react_1.useMemo)(() => {
@@ -140,7 +143,7 @@ const MiniMapPlain = ({ className, gutter: givenGutter = 8, height: givenMapHeig
140
143
  return lincleWidth === 0 ||
141
144
  lincleHeight === 0 ?
142
145
  null :
143
- ((0, jsx_runtime_1.jsxs)("svg", { className: `${className} lincle-minimap-svg`, height: map.height, style: givenStyle, viewBox: viewBox, width: map.width, children: [Nodes, (0, jsx_runtime_1.jsx)("path", { d: d, fill: 'rgba(238, 238, 238, 0.65)', fillRule: 'evenodd' })] }));
146
+ (0, jsx_runtime_1.jsxs)("svg", { className: `${className} lincle-minimap-svg`, height: map.height, style: givenStyle, viewBox: viewBox, width: map.width, children: [Nodes, (0, jsx_runtime_1.jsx)("path", { d: d, fill: 'rgba(238, 238, 238, 0.65)', fillRule: 'evenodd' })] });
144
147
  };
145
148
  MiniMapPlain.displayName = displayName;
146
149
  exports.default = (0, react_1.memo)(MiniMapPlain);
package/dist/styles.g.css CHANGED
@@ -1,34 +1,34 @@
1
1
  .lincle-minimap {
2
- width: 100%;
3
- height: 100%;
4
- user-select: none;
2
+ width: 100%;
3
+ height: 100%;
4
+ user-select: none;
5
5
  }
6
6
 
7
7
  .lincle-minimap-container {
8
- position: absolute;
9
- right: 16px;
10
- bottom: 16px;
8
+ position: absolute;
9
+ right: 16px;
10
+ bottom: 16px;
11
11
  }
12
12
 
13
13
  .lincle-minimap-pad {
14
- position: relative;
14
+ position: relative;
15
15
  }
16
16
 
17
17
  .lincle-minimap-node {
18
- position: absolute;
19
- border: 1px solid black;
18
+ position: absolute;
19
+ border: 1px solid black;
20
20
  }
21
21
 
22
22
  .lincle-minimap-view {
23
- position: absolute;
24
- border: 1px solid black;
23
+ position: absolute;
24
+ border: 1px solid black;
25
25
  }
26
26
 
27
27
  .lincle-minimap-svg {
28
- display: flex;
29
- align-items: center;
30
- background-color: rgba(255 255 255 / 0.95%);
31
- cursor: pointer;
32
- pointer-events: auto;
33
- backdrop-filter: blur(8px);
28
+ display: flex;
29
+ align-items: center;
30
+ background-color: rgba(255 255 255 / 0.95%);
31
+ cursor: pointer;
32
+ pointer-events: auto;
33
+ backdrop-filter: blur(8px);
34
34
  }
package/dist/types.d.ts CHANGED
@@ -1,5 +1,17 @@
1
1
  import { type Dimensions, type Shape } from '@lincle/react-shared';
2
2
  import { type CSSProperties, type ReactElement } from 'react';
3
+ export type MiniMapNodeProps = {
4
+ readonly height: number;
5
+ readonly shape?: Shape;
6
+ readonly width: number;
7
+ readonly x: number;
8
+ readonly y: number;
9
+ };
10
+ export type MiniMapPlainProps = MiniMapProps & {
11
+ readonly className: string;
12
+ readonly lincleHeight: number;
13
+ readonly lincleWidth: number;
14
+ };
3
15
  export type MiniMapProps = {
4
16
  readonly className?: string;
5
17
  readonly gutter?: number;
@@ -8,15 +20,3 @@ export type MiniMapProps = {
8
20
  readonly style?: CSSProperties;
9
21
  readonly width?: number;
10
22
  };
11
- export type MiniMapPlainProps = MiniMapProps & {
12
- readonly className: string;
13
- readonly lincleHeight: number;
14
- readonly lincleWidth: number;
15
- };
16
- export type MiniMapNodeProps = {
17
- readonly height: number;
18
- readonly shape?: Shape;
19
- readonly width: number;
20
- readonly x: number;
21
- readonly y: number;
22
- };
package/package.json CHANGED
@@ -1,95 +1,95 @@
1
1
  {
2
- "name": "@lincle/react-web-minimap",
3
- "title": "lincle react web minimap",
4
- "license": "LGPL-3.0-or-later",
5
- "version": "0.4.0-next.11",
6
- "private": false,
7
- "description": "A 'reactive' React node and edge generator",
8
- "author": "wallzero @wallzeroblog (http://wallzero.com)",
9
- "contributors": [
10
- {
11
- "name": "Connor Schlesiger",
12
- "email": "connor@schlesiger.ca",
13
- "position": "Initial and Lead Developer"
14
- }
15
- ],
16
- "main": "dist/index.js",
17
- "types": "dist/index.d.ts",
18
- "files": [
19
- "dist/",
20
- "COPYING.md",
21
- "COPYING.LESSER.md"
22
- ],
23
- "homepage": "https://gitlab.com/digested/lincle/tree/master/packages/react-web-minimap/",
24
- "repository": {
25
- "type": "git",
26
- "url": "https://gitlab.com/digested/lincle.git"
27
- },
28
- "bugs": {
29
- "url": "https://gitlab.com/digested/lincle/issues"
30
- },
31
- "scripts": {
32
- "build": "run-s clean:dist build:prod build:styles",
33
- "build:prod": "tsc -p ./tsconfig.json",
34
- "build:watch": "run-s clean:dist build:prod build:styles build:watch:tsc",
35
- "build:watch:tsc": "tsc -p ./tsconfig.json --watch --pretty --preserveWatchOutput",
36
- "build:styles": "ncp src/styles.g.css dist/styles.g.css",
37
- "----------------------------------------------------------------": "",
38
- "build:prod:config": "",
39
- "---------------------------------------------------------------": "",
40
- "lint": "run-p lint:es",
41
- "lint:es": "eslint --resolve-plugins-relative-to . 'src/**/*.[jt]s?(x)' --ignore-pattern 'src/**/*.(d.ts|json)'",
42
- "clean": "run-s clean:dist clean:node_modules",
43
- "clean:node_modules": "rimraf node_modules yarn.lock package-lock.json",
44
- "clean:dist": "rimraf dist"
45
- },
46
- "devDependencies": {
47
- "@digest/eslint-config-jest": "^4.4.3",
48
- "@digest/eslint-config-react": "^4.4.3",
49
- "@digest/eslint-config-typescript": "^4.4.3",
50
- "@digest/jest-junit": "^4.4.3",
51
- "@digest/jest-react": "^4.4.3",
52
- "@digest/jest-typescript": "^4.4.3",
53
- "@digest/stylelint-config": "^4.4.3",
54
- "@digest/typescript": "^4.4.3",
55
- "@types/jest": "^29.5.12",
56
- "@types/node": "^22.1.0",
57
- "@types/react": "^18.3.3",
58
- "@types/react-dom": "^18.3.0",
59
- "@types/react-test-renderer": "^18.3.0",
60
- "cross-env": "^7.0.3",
61
- "jest-environment-jsdom": "^29.7.0",
62
- "jest-environment-jsdom-global": "^4.0.0",
63
- "ncp": "^2.0.0",
64
- "npm-run-all": "^4.1.5",
65
- "react": "^18.3.1",
66
- "react-dom": "^18.3.1",
67
- "react-test-renderer": "^18.3.1",
68
- "rimraf": "^6.0.1"
69
- },
70
- "dependencies": {
71
- "@lincle/react-shared": "^0.4.0-next.11",
72
- "@lincle/react-web-interactive": "^0.4.0-next.11",
73
- "react-resize-detector": "^11.0.1"
74
- },
75
- "peerDependencies": {
76
- "react": "^16.0.0 || ^17.0.0 || ^18.0.0",
77
- "react-dom": "^16.0.0 || ^17.0.0 || ^18.0.0"
78
- },
79
- "keywords": [
80
- "library",
81
- "lincle",
82
- "typescript",
83
- "react",
84
- "reactjs",
85
- "react-dom",
86
- "react-web",
87
- "reactive",
88
- "graph",
89
- "diagram",
90
- "dag",
91
- "acyclical graph",
92
- "cyclical graph"
93
- ],
94
- "gitHead": "9dd90674f5195c828749f2b171eee3dda0cc85b6"
2
+ "name": "@lincle/react-web-minimap",
3
+ "title": "lincle react web minimap",
4
+ "license": "LGPL-3.0-or-later",
5
+ "version": "0.4.0-next.13",
6
+ "private": false,
7
+ "description": "A 'reactive' React node and edge generator",
8
+ "author": "wallzero @wallzeroblog (http://wallzero.com)",
9
+ "contributors": [
10
+ {
11
+ "name": "Connor Schlesiger",
12
+ "email": "connor@schlesiger.ca",
13
+ "position": "Initial and Lead Developer"
14
+ }
15
+ ],
16
+ "main": "dist/index.js",
17
+ "types": "dist/index.d.ts",
18
+ "files": [
19
+ "dist/",
20
+ "COPYING.md",
21
+ "COPYING.LESSER.md"
22
+ ],
23
+ "homepage": "https://gitlab.com/digested/lincle/tree/master/packages/react-web-minimap/",
24
+ "repository": {
25
+ "type": "git",
26
+ "url": "https://gitlab.com/digested/lincle.git"
27
+ },
28
+ "bugs": {
29
+ "url": "https://gitlab.com/digested/lincle/issues"
30
+ },
31
+ "scripts": {
32
+ "build": "run-s clean:dist build:prod build:styles",
33
+ "build:prod": "tsc -p ./tsconfig.json",
34
+ "build:watch": "run-s clean:dist build:prod build:styles build:watch:tsc",
35
+ "build:watch:tsc": "tsc -p ./tsconfig.json --watch --pretty --preserveWatchOutput",
36
+ "build:styles": "ncp src/styles.g.css dist/styles.g.css",
37
+ "----------------------------------------------------------------": "",
38
+ "build:prod:config": "",
39
+ "---------------------------------------------------------------": "",
40
+ "lint": "run-p lint:es",
41
+ "lint:es": "eslint",
42
+ "clean": "run-s clean:dist clean:node_modules",
43
+ "clean:node_modules": "rimraf node_modules yarn.lock package-lock.json",
44
+ "clean:dist": "rimraf dist"
45
+ },
46
+ "devDependencies": {
47
+ "@digest/eslint-config-jest": "^4.13.0",
48
+ "@digest/eslint-config-react": "^4.13.0",
49
+ "@digest/eslint-config-typescript": "^4.13.0",
50
+ "@digest/jest-junit": "^4.13.0",
51
+ "@digest/jest-react": "^4.13.0",
52
+ "@digest/jest-typescript": "^4.13.0",
53
+ "@digest/stylelint-config": "^4.13.0",
54
+ "@digest/typescript": "^4.13.0",
55
+ "@types/jest": "^29.5.14",
56
+ "@types/node": "^22.10.1",
57
+ "@types/react": "^18.3.12",
58
+ "@types/react-dom": "^18.3.1",
59
+ "@types/react-test-renderer": "^18.3.0",
60
+ "cross-env": "^7.0.3",
61
+ "jest-environment-jsdom": "^29.7.0",
62
+ "jest-environment-jsdom-global": "^4.0.0",
63
+ "ncp": "^2.0.0",
64
+ "npm-run-all": "^4.1.5",
65
+ "react": "^18.3.1",
66
+ "react-dom": "^18.3.1",
67
+ "react-test-renderer": "^18.3.1",
68
+ "rimraf": "^6.0.1"
69
+ },
70
+ "dependencies": {
71
+ "@lincle/react-shared": "^0.4.0-next.13",
72
+ "@lincle/react-web-interactive": "^0.4.0-next.13",
73
+ "react-resize-detector": "^11.0.1"
74
+ },
75
+ "peerDependencies": {
76
+ "react": "^18.0.0",
77
+ "react-dom": "^18.0.0"
78
+ },
79
+ "keywords": [
80
+ "library",
81
+ "lincle",
82
+ "typescript",
83
+ "react",
84
+ "reactjs",
85
+ "react-dom",
86
+ "react-web",
87
+ "reactive",
88
+ "graph",
89
+ "diagram",
90
+ "dag",
91
+ "acyclical graph",
92
+ "cyclical graph"
93
+ ],
94
+ "gitHead": "84d45ca98dd0d6589c697cc7457a897fa777340f"
95
95
  }