@rotorjs/jpl-react 0.0.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.
@@ -0,0 +1,3 @@
1
+ import { JPLDashboardLayoutNode } from '@rotorjs/jpl';
2
+ import { PropsWithChildren } from 'react';
3
+ export declare function JPLLayout({ src, children, }: PropsWithChildren<JPLDashboardLayoutNode>): import("react/jsx-runtime").JSX.Element | null;
@@ -0,0 +1,2 @@
1
+ import { JPLDashboardTileNode } from '@rotorjs/jpl';
2
+ export declare function JPLTile({ src }: JPLDashboardTileNode): import("react/jsx-runtime").JSX.Element;
package/dist/main.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ export * from './JPLLayout';
2
+ export * from './JPLTile';
3
+ export * from './nodes';
package/dist/main.js ADDED
@@ -0,0 +1,134 @@
1
+ import { createContext as e, createElement as t, useContext as n, useEffect as r, useMemo as i, useState as a } from "react";
2
+ import { Fragment as o, jsx as s } from "react/jsx-runtime";
3
+ //#region node_modules/@rotorjs/react/dist/main.js
4
+ var c = [];
5
+ for (let e = 0; e < 256; ++e) c.push((e + 256).toString(16).slice(1));
6
+ var l = [];
7
+ for (let e = 0; e < 256; ++e) l.push((e + 256).toString(16).slice(1));
8
+ function u(e, t = 0) {
9
+ return (l[e[t + 0]] + l[e[t + 1]] + l[e[t + 2]] + l[e[t + 3]] + "-" + l[e[t + 4]] + l[e[t + 5]] + "-" + l[e[t + 6]] + l[e[t + 7]] + "-" + l[e[t + 8]] + l[e[t + 9]] + "-" + l[e[t + 10]] + l[e[t + 11]] + l[e[t + 12]] + l[e[t + 13]] + l[e[t + 14]] + l[e[t + 15]]).toLowerCase();
10
+ }
11
+ var d = new Uint8Array(16);
12
+ function f() {
13
+ return crypto.getRandomValues(d);
14
+ }
15
+ var p = {};
16
+ function m(e, t, n) {
17
+ let r;
18
+ if (e) r = g(e.random ?? e.rng?.() ?? f(), e.msecs, e.seq, t, n);
19
+ else {
20
+ let e = Date.now(), i = f();
21
+ h(p, e, i), r = g(i, p.msecs, p.seq, t, n);
22
+ }
23
+ return t ?? u(r);
24
+ }
25
+ function h(e, t, n) {
26
+ return e.msecs ??= -Infinity, e.seq ??= 0, t > e.msecs ? (e.seq = n[6] << 23 | n[7] << 16 | n[8] << 8 | n[9], e.msecs = t) : (e.seq = e.seq + 1 | 0, e.seq === 0 && e.msecs++), e;
27
+ }
28
+ function g(e, t, n, r, i = 0) {
29
+ if (e.length < 16) throw Error("Random bytes length must be >= 16");
30
+ if (!r) r = new Uint8Array(16), i = 0;
31
+ else if (i < 0 || i + 16 > r.length) throw RangeError(`UUID byte range ${i}:${i + 15} is out of buffer bounds`);
32
+ return t ??= Date.now(), n ??= e[6] * 127 << 24 | e[7] << 16 | e[8] << 8 | e[9], r[i++] = t / 1099511627776 & 255, r[i++] = t / 4294967296 & 255, r[i++] = t / 16777216 & 255, r[i++] = t / 65536 & 255, r[i++] = t / 256 & 255, r[i++] = t & 255, r[i++] = 112 | n >>> 28 & 15, r[i++] = n >>> 20 & 255, r[i++] = 128 | n >>> 14 & 63, r[i++] = n >>> 6 & 255, r[i++] = n << 2 & 255 | e[10] & 3, r[i++] = e[11], r[i++] = e[12], r[i++] = e[13], r[i++] = e[14], r[i++] = e[15], r;
33
+ }
34
+ var _ = e(void 0);
35
+ function v({ error: e }) {
36
+ throw e;
37
+ }
38
+ function y(e, t = 0) {
39
+ return `${encodeURIComponent(e.type)}:${e.id ? `id:${encodeURIComponent(e.id)}` : `idx:${t}`}`;
40
+ }
41
+ function b({ layout: e, children: r }) {
42
+ let { layouts: a, defaultLayout: o } = n(_), s = i(() => ({
43
+ error: v,
44
+ ...a
45
+ }), [a]), c = e ?? o;
46
+ if (!c) return null;
47
+ let l = s[c.type];
48
+ if (!l) {
49
+ let e = s.error, n = {
50
+ type: "error",
51
+ error: `Invalid layout type "${c.type}"`
52
+ };
53
+ return /* @__PURE__ */ t(e, {
54
+ ...n,
55
+ key: y(n)
56
+ });
57
+ }
58
+ return /* @__PURE__ */ t(l, {
59
+ ...c,
60
+ key: y(c)
61
+ }, r);
62
+ }
63
+ function x({ content: e }) {
64
+ let { tiles: r } = n(_), a = i(() => ({
65
+ error: v,
66
+ ...r
67
+ }), [r]);
68
+ return /* @__PURE__ */ s(o, { children: e.map((e, n) => {
69
+ if (!e) return null;
70
+ let r = a[e.type];
71
+ if (!r) {
72
+ let r = a.error;
73
+ return /* @__PURE__ */ t(r, {
74
+ type: "error",
75
+ error: `Invalid tile type "${e.type}"`,
76
+ key: y(e, n)
77
+ });
78
+ }
79
+ return /* @__PURE__ */ t(r, {
80
+ ...e,
81
+ key: y(e, n)
82
+ });
83
+ }) });
84
+ }
85
+ function S(e, t = []) {
86
+ let { engine: i } = n(_), [o, s] = a(t);
87
+ return r(() => {
88
+ let t = m(), n = new AbortController(), r = n.signal;
89
+ return i.addEventListener("state", (e) => {
90
+ e.id === t && s(e.state);
91
+ }, { signal: r }), i.registerReducer(t, e), () => {
92
+ n.abort(), i.removeReducer(t);
93
+ };
94
+ }, [e, i]), o;
95
+ }
96
+ //#endregion
97
+ //#region lib/JPLLayout.tsx
98
+ var C = [];
99
+ function w({ src: e, children: r }) {
100
+ let { layouts: a } = n(_), o = S(i(() => ({
101
+ src: e ?? "",
102
+ initialState: C
103
+ }), [e]), C);
104
+ if (!o.length) return null;
105
+ if (o.length > 1) {
106
+ let e = a.error ?? v, n = {
107
+ type: "error",
108
+ error: "JPL reducer returned more than one layout node"
109
+ };
110
+ return /* @__PURE__ */ t(e, {
111
+ ...n,
112
+ key: y(n)
113
+ });
114
+ }
115
+ let [c] = o;
116
+ return /* @__PURE__ */ s(b, {
117
+ layout: c,
118
+ children: r
119
+ });
120
+ }
121
+ //#endregion
122
+ //#region lib/JPLTile.tsx
123
+ var T = [];
124
+ function E({ src: e }) {
125
+ return /* @__PURE__ */ s(x, { content: S(i(() => ({
126
+ src: e ?? "",
127
+ initialState: T
128
+ }), [e]), T) });
129
+ }
130
+ //#endregion
131
+ //#region lib/nodes.ts
132
+ var D = { jpl: w }, O = { jpl: E };
133
+ //#endregion
134
+ export { w as JPLLayout, E as JPLTile, D as jplLayouts, O as jplTiles };
@@ -0,0 +1,3 @@
1
+ import { DashboardLayoutMap, DashboardTileMap } from '@rotorjs/react';
2
+ export declare const jplLayouts: DashboardLayoutMap;
3
+ export declare const jplTiles: DashboardTileMap;
package/package.json ADDED
@@ -0,0 +1,75 @@
1
+ {
2
+ "name": "@rotorjs/jpl-react",
3
+ "version": "0.0.0",
4
+ "description": "Rotor",
5
+ "author": {
6
+ "name": "Aaron Burmeister"
7
+ },
8
+ "repository": {
9
+ "type": "git",
10
+ "url": "git+https://github.com/rotorjs/jpl-react.git"
11
+ },
12
+ "bugs": {
13
+ "url": "https://github.com/rotorjs/jpl-react/issues"
14
+ },
15
+ "homepage": "https://github.com/rotorjs/",
16
+ "type": "module",
17
+ "keywords": [
18
+ "state",
19
+ "dashboards",
20
+ "jpl",
21
+ "react"
22
+ ],
23
+ "files": [
24
+ "dist"
25
+ ],
26
+ "main": "./dist/main.js",
27
+ "types": "./dist/main.d.ts",
28
+ "exports": {
29
+ ".": {
30
+ "import": {
31
+ "types": "./dist/main.d.ts",
32
+ "default": "./dist/main.js"
33
+ }
34
+ }
35
+ },
36
+ "scripts": {
37
+ "dev": "vite",
38
+ "build": "tsc -b ./tsconfig-build.json && vite build",
39
+ "lint": "eslint . --max-warnings 0",
40
+ "lint:fix": "npm run lint -- --fix",
41
+ "prettify": "prettier . --write",
42
+ "preview": "vite preview",
43
+ "postversion": "git commit -am$npm_package_version",
44
+ "prepublishOnly": "npm run build"
45
+ },
46
+ "devDependencies": {
47
+ "@eslint/js": "^10.0.1",
48
+ "@rotorjs/core": "^0.5.1",
49
+ "@rotorjs/dashboards": "^0.12.0",
50
+ "@rotorjs/jpl": "^0.2.0",
51
+ "@rotorjs/react": "^0.1.0",
52
+ "@types/react": "^19.1.12",
53
+ "@types/react-dom": "^19.1.9",
54
+ "@vitejs/plugin-react": "^6.0.1",
55
+ "eslint": "^10.3.0",
56
+ "eslint-config-prettier": "^10.1.8",
57
+ "eslint-import-resolver-typescript": "^4.4.4",
58
+ "eslint-plugin-import-x": "^4.16.2",
59
+ "eslint-plugin-prettier": "^5.5.4",
60
+ "eslint-plugin-react-hooks": "^7.1.1",
61
+ "eslint-plugin-react-refresh": "^0.5.2",
62
+ "globals": "^17.6.0",
63
+ "prettier": "^3.8.3",
64
+ "react": "^19.2.6",
65
+ "react-dom": "^19.2.6",
66
+ "typescript": "^6.0.3",
67
+ "typescript-eslint": "^8.59.3",
68
+ "unplugin-dts": "^1.0.0",
69
+ "vite": "^8.0.12"
70
+ },
71
+ "peerDependencies": {
72
+ "@rotorjs/jpl": "^0.2.0",
73
+ "@rotorjs/react": "^0.1.0"
74
+ }
75
+ }