@rotorjs/react 0.7.0 → 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Dashboard.d.ts +1 -1
- package/dist/DashboardLayout.d.ts +1 -1
- package/dist/DashboardLayoutError.d.ts +1 -1
- package/dist/DashboardTileContainer.d.ts +1 -1
- package/dist/DashboardTileError.d.ts +1 -1
- package/dist/DashboardTiles.d.ts +1 -1
- package/dist/main.d.ts +1 -0
- package/dist/main.js +71 -65
- package/dist/useNumberFormatter.d.ts +5 -0
- package/package.json +14 -14
package/dist/Dashboard.d.ts
CHANGED
|
@@ -20,4 +20,4 @@ export type DashboardProps = {
|
|
|
20
20
|
};
|
|
21
21
|
children?: ReactNode;
|
|
22
22
|
};
|
|
23
|
-
export declare function Dashboard({ engine, initialVars: rawInitialVars, initialFacts: rawInitialFacts, layouts, defaultLayout, tiles, layout, content, onAction, allowedNavigateOrigins: rawAllowedNavigateOrigins, children, }: DashboardProps): import("react
|
|
23
|
+
export declare function Dashboard({ engine, initialVars: rawInitialVars, initialFacts: rawInitialFacts, layouts, defaultLayout, tiles, layout, content, onAction, allowedNavigateOrigins: rawAllowedNavigateOrigins, children, }: DashboardProps): import("react").JSX.Element;
|
|
@@ -4,4 +4,4 @@ export type DashboardLayoutProps = {
|
|
|
4
4
|
layout?: DashboardLayoutNode;
|
|
5
5
|
children: ReactNode;
|
|
6
6
|
};
|
|
7
|
-
export declare function DashboardLayout({ layout, children }: DashboardLayoutProps): import("react
|
|
7
|
+
export declare function DashboardLayout({ layout, children }: DashboardLayoutProps): import("react").JSX.Element | null;
|
|
@@ -7,4 +7,4 @@ export type DashboardTileContainerProps = {
|
|
|
7
7
|
style?: CSSProperties;
|
|
8
8
|
}) => ReactNode;
|
|
9
9
|
};
|
|
10
|
-
export declare function DashboardTileContainer({ layout, children, }: DashboardTileContainerProps): string | number | bigint | boolean | Iterable<ReactNode> | Promise<string | number | bigint | boolean | import('react').ReactPortal | import('react').ReactElement<unknown, string | import('react').JSXElementConstructor<any>> | Iterable<ReactNode> | null | undefined> | import("react
|
|
10
|
+
export declare function DashboardTileContainer({ layout, children, }: DashboardTileContainerProps): string | number | bigint | boolean | Iterable<ReactNode> | Promise<string | number | bigint | boolean | import('react').ReactPortal | import('react').ReactElement<unknown, string | import('react').JSXElementConstructor<any>> | Iterable<ReactNode> | null | undefined> | import("react").JSX.Element | null | undefined;
|
package/dist/DashboardTiles.d.ts
CHANGED
|
@@ -2,4 +2,4 @@ import { DashboardTileNode } from '@rotorjs/dashboard';
|
|
|
2
2
|
export type DashboardTilesProps = {
|
|
3
3
|
content: DashboardTileNode[];
|
|
4
4
|
};
|
|
5
|
-
export declare function DashboardTiles({ content }: DashboardTilesProps): import("react
|
|
5
|
+
export declare function DashboardTiles({ content }: DashboardTilesProps): import("react").JSX.Element;
|
package/dist/main.d.ts
CHANGED
package/dist/main.js
CHANGED
|
@@ -1,122 +1,122 @@
|
|
|
1
1
|
import { ActionEvent as e } from "@rotorjs/state";
|
|
2
2
|
import t from "fast-deep-equal";
|
|
3
|
-
import { createContext as n, createElement as r,
|
|
4
|
-
import { v7 as
|
|
5
|
-
import { Fragment as
|
|
6
|
-
import { DashboardStateConsumer as
|
|
3
|
+
import { createContext as n, createElement as r, useCallback as i, useContext as a, useEffect as o, useMemo as s, useState as c } from "react";
|
|
4
|
+
import { v7 as l } from "uuid";
|
|
5
|
+
import { Fragment as u, jsx as d, jsxs as f } from "react/jsx-runtime";
|
|
6
|
+
import { DashboardStateConsumer as p, NumberFormatter as m } from "@rotorjs/dashboard";
|
|
7
7
|
//#region lib/DashboardContext.ts
|
|
8
|
-
var
|
|
8
|
+
var h = n(void 0);
|
|
9
9
|
//#endregion
|
|
10
10
|
//#region lib/DashboardError.tsx
|
|
11
|
-
function
|
|
11
|
+
function g({ error: e }) {
|
|
12
12
|
throw e;
|
|
13
13
|
}
|
|
14
14
|
//#endregion
|
|
15
15
|
//#region lib/DashboardLayoutContext.ts
|
|
16
|
-
var
|
|
16
|
+
var _ = n(void 0);
|
|
17
17
|
//#endregion
|
|
18
18
|
//#region lib/getNodeKey.ts
|
|
19
|
-
function
|
|
19
|
+
function v(e, t = 0) {
|
|
20
20
|
return `${encodeURIComponent(e.type)}:${e.id ? `id:${encodeURIComponent(e.id)}` : `idx:${t}`}`;
|
|
21
21
|
}
|
|
22
22
|
//#endregion
|
|
23
23
|
//#region lib/DashboardLayoutError.tsx
|
|
24
|
-
var
|
|
25
|
-
function
|
|
26
|
-
let { layouts:
|
|
24
|
+
var y = { type: "error" };
|
|
25
|
+
function b({ id: e, error: t, children: n }) {
|
|
26
|
+
let { layouts: i } = a(h), o = i.error ?? g, s = {
|
|
27
27
|
type: "error",
|
|
28
28
|
id: e,
|
|
29
29
|
error: t
|
|
30
30
|
};
|
|
31
|
-
return /* @__PURE__ */
|
|
32
|
-
value:
|
|
31
|
+
return /* @__PURE__ */ d(_.Provider, {
|
|
32
|
+
value: y,
|
|
33
33
|
children: /* @__PURE__ */ r(o, {
|
|
34
34
|
...s,
|
|
35
|
-
key:
|
|
35
|
+
key: v(s)
|
|
36
36
|
}, n)
|
|
37
37
|
});
|
|
38
38
|
}
|
|
39
39
|
//#endregion
|
|
40
40
|
//#region lib/DashboardLayout.tsx
|
|
41
|
-
function
|
|
42
|
-
let { layouts: n, defaultLayout:
|
|
43
|
-
error:
|
|
41
|
+
function x({ layout: e, children: t }) {
|
|
42
|
+
let { layouts: n, defaultLayout: i } = a(h), o = s(() => ({
|
|
43
|
+
error: g,
|
|
44
44
|
...n
|
|
45
|
-
}), [n]), c = e ??
|
|
45
|
+
}), [n]), c = e ?? i, l = c?.type, u = s(() => ({ type: l }), [l]);
|
|
46
46
|
if (!c?.type) return null;
|
|
47
|
-
let f =
|
|
48
|
-
return f ? /* @__PURE__ */
|
|
49
|
-
value:
|
|
47
|
+
let f = o[c.type];
|
|
48
|
+
return f ? /* @__PURE__ */ d(_.Provider, {
|
|
49
|
+
value: u,
|
|
50
50
|
children: /* @__PURE__ */ r(f, {
|
|
51
51
|
...c,
|
|
52
|
-
key:
|
|
52
|
+
key: v(c)
|
|
53
53
|
}, t)
|
|
54
|
-
}) : /* @__PURE__ */
|
|
54
|
+
}) : /* @__PURE__ */ d(b, {
|
|
55
55
|
error: `Invalid layout type "${c.type}"`,
|
|
56
56
|
children: t
|
|
57
57
|
});
|
|
58
58
|
}
|
|
59
59
|
//#endregion
|
|
60
60
|
//#region lib/DashboardTileError.tsx
|
|
61
|
-
function
|
|
62
|
-
let { tiles: n } =
|
|
61
|
+
function S({ id: e, error: t }) {
|
|
62
|
+
let { tiles: n } = a(h), i = n.error ?? g, o = {
|
|
63
63
|
type: "error",
|
|
64
64
|
id: e,
|
|
65
65
|
error: t
|
|
66
66
|
};
|
|
67
|
-
return /* @__PURE__ */ r(
|
|
67
|
+
return /* @__PURE__ */ r(i, {
|
|
68
68
|
...o,
|
|
69
|
-
key:
|
|
69
|
+
key: v(o)
|
|
70
70
|
});
|
|
71
71
|
}
|
|
72
72
|
//#endregion
|
|
73
73
|
//#region lib/DashboardTiles.tsx
|
|
74
|
-
function
|
|
75
|
-
let { tiles: t } =
|
|
76
|
-
error:
|
|
74
|
+
function C({ content: e }) {
|
|
75
|
+
let { tiles: t } = a(h), n = s(() => ({
|
|
76
|
+
error: g,
|
|
77
77
|
...t
|
|
78
78
|
}), [t]);
|
|
79
|
-
return /* @__PURE__ */ u
|
|
79
|
+
return /* @__PURE__ */ d(u, { children: e.map((e, t) => {
|
|
80
80
|
if (!e?.type) return null;
|
|
81
81
|
let i = n[e.type];
|
|
82
82
|
return i ? /* @__PURE__ */ r(i, {
|
|
83
83
|
...e,
|
|
84
|
-
key:
|
|
85
|
-
}) : /* @__PURE__ */
|
|
84
|
+
key: v(e, t)
|
|
85
|
+
}) : /* @__PURE__ */ d(S, { error: `Invalid tile type "${e.type}"` }, v({ type: "error" }, t));
|
|
86
86
|
}) });
|
|
87
87
|
}
|
|
88
88
|
//#endregion
|
|
89
89
|
//#region lib/Dashboard.tsx
|
|
90
|
-
var
|
|
91
|
-
function
|
|
92
|
-
let [
|
|
93
|
-
t(E, v) || D(v),
|
|
94
|
-
Object.entries(
|
|
90
|
+
var w = { [window.location.origin]: !0 };
|
|
91
|
+
function T({ engine: n, initialVars: r, initialFacts: i, layouts: a, defaultLayout: u, tiles: p, layout: m, content: g, onAction: _, allowedNavigateOrigins: v = w, children: y }) {
|
|
92
|
+
let [b] = c(() => l()), [S] = c(r ?? {}), [T] = c(i ?? {}), [E, D] = c(v), [O, k] = c(S), [A, j] = c(T);
|
|
93
|
+
t(E, v) || D(v), o(() => {
|
|
94
|
+
Object.entries(S).forEach(([t, { value: r, exposed: i }]) => {
|
|
95
95
|
let a = new e({
|
|
96
96
|
type: "var",
|
|
97
97
|
name: t,
|
|
98
98
|
value: r,
|
|
99
99
|
exposed: i
|
|
100
100
|
});
|
|
101
|
-
a.emitter =
|
|
101
|
+
a.emitter = b, n.dispatchEvent(a);
|
|
102
102
|
}), Object.entries(T).forEach(([t, { value: r }]) => {
|
|
103
103
|
let i = new e({
|
|
104
104
|
type: "fact",
|
|
105
105
|
name: t,
|
|
106
106
|
value: r
|
|
107
107
|
});
|
|
108
|
-
i.emitter =
|
|
108
|
+
i.emitter = b, n.dispatchEvent(i);
|
|
109
109
|
});
|
|
110
110
|
}, [
|
|
111
|
-
|
|
111
|
+
b,
|
|
112
112
|
n,
|
|
113
|
-
|
|
113
|
+
S,
|
|
114
114
|
T
|
|
115
|
-
]),
|
|
115
|
+
]), o(() => {
|
|
116
116
|
let e = new AbortController(), t = e.signal;
|
|
117
117
|
return n.addEventListener("action", (e) => {
|
|
118
118
|
let t = e.action;
|
|
119
|
-
if (e.emitter !==
|
|
119
|
+
if (e.emitter !== b) switch (t.type) {
|
|
120
120
|
case "var":
|
|
121
121
|
k((e) => {
|
|
122
122
|
let n = e[t.name];
|
|
@@ -154,55 +154,61 @@ function C({ engine: n, initialVars: r, initialFacts: i, layouts: l, defaultLayo
|
|
|
154
154
|
e.abort();
|
|
155
155
|
};
|
|
156
156
|
}, [
|
|
157
|
-
|
|
157
|
+
b,
|
|
158
158
|
n,
|
|
159
159
|
_,
|
|
160
160
|
E
|
|
161
161
|
]);
|
|
162
|
-
let M =
|
|
162
|
+
let M = s(() => ({
|
|
163
163
|
engine: n,
|
|
164
164
|
vars: O,
|
|
165
165
|
facts: A,
|
|
166
|
-
layouts:
|
|
167
|
-
defaultLayout:
|
|
168
|
-
tiles:
|
|
166
|
+
layouts: a,
|
|
167
|
+
defaultLayout: u,
|
|
168
|
+
tiles: p
|
|
169
169
|
}), [
|
|
170
170
|
n,
|
|
171
171
|
O,
|
|
172
172
|
A,
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
173
|
+
a,
|
|
174
|
+
u,
|
|
175
|
+
p
|
|
176
176
|
]);
|
|
177
|
-
return /* @__PURE__ */
|
|
177
|
+
return /* @__PURE__ */ d(h.Provider, {
|
|
178
178
|
value: M,
|
|
179
|
-
children: /* @__PURE__ */
|
|
180
|
-
layout:
|
|
181
|
-
children: [/* @__PURE__ */
|
|
179
|
+
children: /* @__PURE__ */ f(x, {
|
|
180
|
+
layout: m,
|
|
181
|
+
children: [/* @__PURE__ */ d(C, { content: g }), y]
|
|
182
182
|
})
|
|
183
183
|
});
|
|
184
184
|
}
|
|
185
185
|
//#endregion
|
|
186
186
|
//#region lib/DashboardTileContainer.tsx
|
|
187
|
-
function
|
|
188
|
-
let { tileContainer: n } =
|
|
189
|
-
return n ? /* @__PURE__ */
|
|
187
|
+
function E({ layout: e, children: t }) {
|
|
188
|
+
let { tileContainer: n } = a(_);
|
|
189
|
+
return n ? /* @__PURE__ */ d(n, {
|
|
190
190
|
layout: e,
|
|
191
191
|
children: t
|
|
192
192
|
}) : t({});
|
|
193
193
|
}
|
|
194
194
|
//#endregion
|
|
195
195
|
//#region lib/useDashboardState.ts
|
|
196
|
-
function
|
|
197
|
-
let { engine: r } =
|
|
198
|
-
return t(
|
|
199
|
-
let e = new
|
|
196
|
+
function D(e, n = []) {
|
|
197
|
+
let { engine: r } = a(h), [i, s] = c(e), [l, u] = c(n);
|
|
198
|
+
return t(i, e) || s(e), o(() => {
|
|
199
|
+
let e = new p(r, i, (e) => {
|
|
200
200
|
u((n) => t(e, n) ? n : e);
|
|
201
201
|
});
|
|
202
202
|
return () => {
|
|
203
203
|
e.stop();
|
|
204
204
|
};
|
|
205
|
-
}, [r,
|
|
205
|
+
}, [r, i]), l;
|
|
206
|
+
}
|
|
207
|
+
//#endregion
|
|
208
|
+
//#region lib/useNumberFormatter.ts
|
|
209
|
+
function O(e) {
|
|
210
|
+
let { locale: t } = e ?? {}, n = s(() => new m({ locale: t }), [t]);
|
|
211
|
+
return i((e, t) => n.format(e, t), [n]);
|
|
206
212
|
}
|
|
207
213
|
//#endregion
|
|
208
|
-
export {
|
|
214
|
+
export { T as Dashboard, h as DashboardContext, g as DashboardError, x as DashboardLayout, _ as DashboardLayoutContext, b as DashboardLayoutError, E as DashboardTileContainer, S as DashboardTileError, C as DashboardTiles, v as getNodeKey, D as useDashboardState, O as useNumberFormatter };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rotorjs/react",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.9.0",
|
|
4
4
|
"description": "Rotor",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Aaron Burmeister"
|
|
@@ -44,32 +44,32 @@
|
|
|
44
44
|
},
|
|
45
45
|
"devDependencies": {
|
|
46
46
|
"@eslint/js": "^10.0.1",
|
|
47
|
-
"@rotorjs/dashboard": "^0.1
|
|
48
|
-
"@types/react": "^19.
|
|
47
|
+
"@rotorjs/dashboard": "^0.3.1",
|
|
48
|
+
"@types/react": "^19.2.17",
|
|
49
49
|
"@types/react-dom": "^19.1.9",
|
|
50
50
|
"@vitejs/plugin-react": "^6.0.2",
|
|
51
|
-
"eslint": "^10.4.
|
|
51
|
+
"eslint": "^10.4.1",
|
|
52
52
|
"eslint-config-prettier": "^10.1.8",
|
|
53
|
-
"eslint-import-resolver-typescript": "^4.4.
|
|
53
|
+
"eslint-import-resolver-typescript": "^4.4.5",
|
|
54
54
|
"eslint-plugin-import-x": "^4.16.2",
|
|
55
|
-
"eslint-plugin-prettier": "^5.5.
|
|
55
|
+
"eslint-plugin-prettier": "^5.5.6",
|
|
56
56
|
"eslint-plugin-react-hooks": "^7.1.1",
|
|
57
57
|
"eslint-plugin-react-refresh": "^0.5.2",
|
|
58
58
|
"globals": "^17.6.0",
|
|
59
|
-
"prettier": "^3.8.
|
|
60
|
-
"react": "^19.2.
|
|
61
|
-
"react-dom": "^19.2.
|
|
59
|
+
"prettier": "^3.8.4",
|
|
60
|
+
"react": "^19.2.7",
|
|
61
|
+
"react-dom": "^19.2.7",
|
|
62
62
|
"typescript": "^6.0.3",
|
|
63
|
-
"typescript-eslint": "^8.
|
|
64
|
-
"unplugin-dts": "^1.0.
|
|
65
|
-
"vite": "^8.0.
|
|
63
|
+
"typescript-eslint": "^8.61.0",
|
|
64
|
+
"unplugin-dts": "^1.0.2",
|
|
65
|
+
"vite": "^8.0.16"
|
|
66
66
|
},
|
|
67
67
|
"peerDependencies": {
|
|
68
|
-
"@rotorjs/dashboard": "^0.1
|
|
68
|
+
"@rotorjs/dashboard": "^0.3.1",
|
|
69
69
|
"react": "^19.0.0"
|
|
70
70
|
},
|
|
71
71
|
"dependencies": {
|
|
72
|
-
"@rotorjs/state": "^0.
|
|
72
|
+
"@rotorjs/state": "^0.6.1",
|
|
73
73
|
"fast-deep-equal": "^3.1.3",
|
|
74
74
|
"uuid": "^14.0.0"
|
|
75
75
|
}
|