@weasel-js/devtools 0.0.0-stage → 1.11.1

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.
Files changed (56) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +49 -2
  3. package/dist/DevtoolsPanel.d.ts +20 -0
  4. package/dist/DevtoolsPanel.d.ts.map +1 -0
  5. package/dist/RootPicker.d.ts +10 -0
  6. package/dist/RootPicker.d.ts.map +1 -0
  7. package/dist/client.d.ts +50 -0
  8. package/dist/client.d.ts.map +1 -0
  9. package/dist/history.d.ts +13 -0
  10. package/dist/history.d.ts.map +1 -0
  11. package/dist/hooks.d.ts +22 -0
  12. package/dist/hooks.d.ts.map +1 -0
  13. package/dist/inPageTransport.d.ts +9 -0
  14. package/dist/inPageTransport.d.ts.map +1 -0
  15. package/dist/index.d.ts +19 -0
  16. package/dist/index.d.ts.map +1 -0
  17. package/dist/index.js +2006 -0
  18. package/dist/index.js.map +1 -0
  19. package/dist/style.css +632 -0
  20. package/dist/tabs.d.ts +17 -0
  21. package/dist/tabs.d.ts.map +1 -0
  22. package/dist/trace.d.ts +19 -0
  23. package/dist/trace.d.ts.map +1 -0
  24. package/dist/views/Bindings.d.ts +7 -0
  25. package/dist/views/Bindings.d.ts.map +1 -0
  26. package/dist/views/CoordTable.d.ts +24 -0
  27. package/dist/views/CoordTable.d.ts.map +1 -0
  28. package/dist/views/DecisionPath.d.ts +7 -0
  29. package/dist/views/DecisionPath.d.ts.map +1 -0
  30. package/dist/views/DispatchView.d.ts +11 -0
  31. package/dist/views/DispatchView.d.ts.map +1 -0
  32. package/dist/views/FrameView.d.ts +9 -0
  33. package/dist/views/FrameView.d.ts.map +1 -0
  34. package/dist/views/HistoryTable.d.ts +8 -0
  35. package/dist/views/HistoryTable.d.ts.map +1 -0
  36. package/dist/views/HistoryView.d.ts +9 -0
  37. package/dist/views/HistoryView.d.ts.map +1 -0
  38. package/dist/views/NodeDetail.d.ts +12 -0
  39. package/dist/views/NodeDetail.d.ts.map +1 -0
  40. package/dist/views/RegistryEntryDetail.d.ts +12 -0
  41. package/dist/views/RegistryEntryDetail.d.ts.map +1 -0
  42. package/dist/views/RegistryView.d.ts +10 -0
  43. package/dist/views/RegistryView.d.ts.map +1 -0
  44. package/dist/views/SceneView.d.ts +5 -0
  45. package/dist/views/SceneView.d.ts.map +1 -0
  46. package/dist/views/StateView.d.ts +5 -0
  47. package/dist/views/StateView.d.ts.map +1 -0
  48. package/dist/views/TraceTable.d.ts +17 -0
  49. package/dist/views/TraceTable.d.ts.map +1 -0
  50. package/dist/views/ValueView.d.ts +11 -0
  51. package/dist/views/ValueView.d.ts.map +1 -0
  52. package/dist/views/formatAge.d.ts +3 -0
  53. package/dist/views/formatAge.d.ts.map +1 -0
  54. package/dist/views/useSceneTree.d.ts +12 -0
  55. package/dist/views/useSceneTree.d.ts.map +1 -0
  56. package/package.json +53 -4
@@ -0,0 +1,7 @@
1
+ /** The path one input took, as a powerline: the input, the binding's owner, the action that fired, and whether it was handled. */
2
+ import type { ReactElement } from 'react';
3
+ import type { DispatchRecord } from '@weasel-js/core/routing';
4
+ export declare function DecisionPath({ record }: {
5
+ record: DispatchRecord;
6
+ }): ReactElement;
7
+ //# sourceMappingURL=DecisionPath.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DecisionPath.d.ts","sourceRoot":"","sources":["../../src/views/DecisionPath.tsx"],"names":[],"mappings":"AAAA,kIAAkI;AAClI,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAQ9D,wBAAgB,YAAY,CAAC,EAAE,MAAM,EAAE,EAAE;IAAE,MAAM,EAAE,cAAc,CAAA;CAAE,GAAG,YAAY,CAejF"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * The Dispatch tab: the root's trace of resolved inputs and mode switches,
3
+ * what a press at the pointer would do now, and, behind a toggle, the
4
+ * `clientToWorld` conversions. Read through cursors, so each read carries only
5
+ * what is new; polled while open, because the live prediction moves with the
6
+ * pointer and no notice reports that.
7
+ */
8
+ import { type ReactElement } from 'react';
9
+ import type { DevtoolsViewProps } from '../tabs';
10
+ export declare function DispatchView({ client, rootId }: DevtoolsViewProps): ReactElement;
11
+ //# sourceMappingURL=DispatchView.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DispatchView.d.ts","sourceRoot":"","sources":["../../src/views/DispatchView.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAgC,KAAK,YAAY,EAAE,MAAM,OAAO,CAAC;AAMxE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAYjD,wBAAgB,YAAY,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,iBAAiB,GAAG,YAAY,CAkEhF"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * The Frame tab: what the last paint cost, overall and per render layer. The
3
+ * canvas measures only while its `fps` overlay is on and announces nothing, so
4
+ * this polls, and only while the tab is open and the overlay on.
5
+ */
6
+ import { type ReactElement } from 'react';
7
+ import type { DevtoolsViewProps } from '../tabs';
8
+ export declare function FrameView({ client, rootId }: DevtoolsViewProps): ReactElement;
9
+ //# sourceMappingURL=FrameView.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FrameView.d.ts","sourceRoot":"","sources":["../../src/views/FrameView.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAY,KAAK,YAAY,EAAE,MAAM,OAAO,CAAC;AAOpD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAmBjD,wBAAgB,SAAS,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,iBAAiB,GAAG,YAAY,CAgC7E"}
@@ -0,0 +1,8 @@
1
+ /** History steps as rows, newest first; a row opens to the entries it touched and each entry's ops. */
2
+ import { type ReactElement } from 'react';
3
+ import type { DevtoolsHistoryRecord } from '@weasel-js/core/devtools-protocol';
4
+ export declare function HistoryTable({ steps, now }: {
5
+ steps: readonly DevtoolsHistoryRecord[];
6
+ now: number;
7
+ }): ReactElement;
8
+ //# sourceMappingURL=HistoryTable.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HistoryTable.d.ts","sourceRoot":"","sources":["../../src/views/HistoryTable.tsx"],"names":[],"mappings":"AAAA,uGAAuG;AACvG,OAAO,EAAY,KAAK,YAAY,EAAE,MAAM,OAAO,CAAC;AACpD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAqC/E,wBAAgB,YAAY,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;IAAE,KAAK,EAAE,SAAS,qBAAqB,EAAE,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG,YAAY,CAkCnH"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * The History tab: each step the scene's history took, newest first, read
3
+ * through its cursor whenever a notice reports one; where the history stands;
4
+ * and, on request, every entry on its stacks.
5
+ */
6
+ import { type ReactElement } from 'react';
7
+ import type { DevtoolsViewProps } from '../tabs';
8
+ export declare function HistoryView({ client, rootId }: DevtoolsViewProps): ReactElement;
9
+ //# sourceMappingURL=HistoryView.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HistoryView.d.ts","sourceRoot":"","sources":["../../src/views/HistoryView.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAgC,KAAK,YAAY,EAAE,MAAM,OAAO,CAAC;AAKxE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAQjD,wBAAgB,WAAW,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,iBAAiB,GAAG,YAAY,CAmE/E"}
@@ -0,0 +1,12 @@
1
+ /** One node as `get-node` describes it, re-read whenever the scene changes. */
2
+ import type { ReactElement } from 'react';
3
+ import type { DevtoolsClient } from '../client';
4
+ export interface NodeDetailProps {
5
+ client: DevtoolsClient;
6
+ rootId: string;
7
+ nodeId: string;
8
+ /** Show another node: the parent, when its id is pressed. */
9
+ onPick(nodeId: string): void;
10
+ }
11
+ export declare function NodeDetail({ client, rootId, nodeId, onPick }: NodeDetailProps): ReactElement;
12
+ //# sourceMappingURL=NodeDetail.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NodeDetail.d.ts","sourceRoot":"","sources":["../../src/views/NodeDetail.tsx"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAI1C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAKhD,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,cAAc,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,6DAA6D;IAC7D,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAID,wBAAgB,UAAU,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,eAAe,GAAG,YAAY,CAsC5F"}
@@ -0,0 +1,12 @@
1
+ /** One registry entry in full: a tool, an action, or a dep. */
2
+ import type { ReactElement } from 'react';
3
+ import type { DevtoolsRegistry } from '@weasel-js/core/devtools-protocol';
4
+ export interface RegistryPick {
5
+ category: 'tools' | 'actions' | 'deps';
6
+ id: string;
7
+ }
8
+ export declare function RegistryEntryDetail({ registry, pick }: {
9
+ registry: DevtoolsRegistry;
10
+ pick: RegistryPick;
11
+ }): ReactElement;
12
+ //# sourceMappingURL=RegistryEntryDetail.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RegistryEntryDetail.d.ts","sourceRoot":"","sources":["../../src/views/RegistryEntryDetail.tsx"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,OAAO,KAAK,EAAE,YAAY,EAAa,MAAM,OAAO,CAAC;AACrD,OAAO,KAAK,EAAyC,gBAAgB,EAAqB,MAAM,mCAAmC,CAAC;AAOpI,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;IACvC,EAAE,EAAE,MAAM,CAAC;CACZ;AAsED,wBAAgB,mBAAmB,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE;IAAE,QAAQ,EAAE,gBAAgB,CAAC;IAAC,IAAI,EAAE,YAAY,CAAA;CAAE,GAAG,YAAY,CAaxH"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * The Registry tab: what the canvas has registered, filtered by name, beside
3
+ * the entry picked. Re-read when the registry changes, and on selection and
4
+ * scene changes too, since an action's `enabled` and `active` move with them
5
+ * and no notice reports that.
6
+ */
7
+ import { type ReactElement } from 'react';
8
+ import type { DevtoolsViewProps } from '../tabs';
9
+ export declare function RegistryView({ client, rootId }: DevtoolsViewProps): ReactElement;
10
+ //# sourceMappingURL=RegistryView.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RegistryView.d.ts","sourceRoot":"","sources":["../../src/views/RegistryView.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAY,KAAK,YAAY,EAAE,MAAM,OAAO,CAAC;AAKpD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AA2CjD,wBAAgB,YAAY,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,iBAAiB,GAAG,YAAY,CAqChF"}
@@ -0,0 +1,5 @@
1
+ /** The Scene tab: a root's node tree beside the node picked in it. */
2
+ import { type ReactElement } from 'react';
3
+ import type { DevtoolsViewProps } from '../tabs';
4
+ export declare function SceneView({ client, rootId }: DevtoolsViewProps): ReactElement;
5
+ //# sourceMappingURL=SceneView.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SceneView.d.ts","sourceRoot":"","sources":["../../src/views/SceneView.tsx"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,OAAO,EAAuC,KAAK,YAAY,EAAE,MAAM,OAAO,CAAC;AAG/E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAiCjD,wBAAgB,SAAS,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,iBAAiB,GAAG,YAAY,CAoC7E"}
@@ -0,0 +1,5 @@
1
+ /** The State tab: selection, view, the active tool and the overlay flags, with the two the panel may steer. */
2
+ import type { ReactElement } from 'react';
3
+ import type { DevtoolsViewProps } from '../tabs';
4
+ export declare function StateView({ client, rootId }: DevtoolsViewProps): ReactElement;
5
+ //# sourceMappingURL=StateView.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StateView.d.ts","sourceRoot":"","sources":["../../src/views/StateView.tsx"],"names":[],"mappings":"AAAA,+GAA+G;AAC/G,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAM1C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAOjD,wBAAgB,SAAS,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,iBAAiB,GAAG,YAAY,CAgE7E"}
@@ -0,0 +1,17 @@
1
+ /** The trace as rows, newest first under the live prediction; a dispatch row opens to the path it took and every stage behind it. */
2
+ import { type ReactElement, type ReactNode } from 'react';
3
+ import type { DispatchRecord, TraceLogEntry } from '@weasel-js/core/routing';
4
+ export interface TraceTableProps {
5
+ entries: readonly TraceLogEntry[];
6
+ /** A press at the pointer, predicted, pinned above the log. */
7
+ live: DispatchRecord | null;
8
+ /** The clock each row's age is measured against. */
9
+ now: number;
10
+ /** Inputs an action handled, with mode switches. */
11
+ showHandled: boolean;
12
+ showUnhandled: boolean;
13
+ /** Shown in place of rows when the filters leave none. */
14
+ empty: ReactNode;
15
+ }
16
+ export declare function TraceTable({ entries, live, now, showHandled, showUnhandled, empty }: TraceTableProps): ReactElement;
17
+ //# sourceMappingURL=TraceTable.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TraceTable.d.ts","sourceRoot":"","sources":["../../src/views/TraceTable.tsx"],"names":[],"mappings":"AAAA,qIAAqI;AACrI,OAAO,EAAY,KAAK,YAAY,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AACpE,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAU7E,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,SAAS,aAAa,EAAE,CAAC;IAClC,+DAA+D;IAC/D,IAAI,EAAE,cAAc,GAAG,IAAI,CAAC;IAC5B,oDAAoD;IACpD,GAAG,EAAE,MAAM,CAAC;IACZ,oDAAoD;IACpD,WAAW,EAAE,OAAO,CAAC;IACrB,aAAa,EAAE,OAAO,CAAC;IACvB,0DAA0D;IAC1D,KAAK,EAAE,SAAS,CAAC;CAClB;AA4BD,wBAAgB,UAAU,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,aAAa,EAAE,KAAK,EAAE,EAAE,eAAe,GAAG,YAAY,CAiDnH"}
@@ -0,0 +1,11 @@
1
+ /** A serialized value as a reader expects to see it: tagged maps, sets and typed arrays named, functions and cycles marked. */
2
+ import { type ReactElement } from 'react';
3
+ import type { SerializedValue } from '@weasel-js/core/devtools-protocol';
4
+ export interface ValueViewProps {
5
+ value: SerializedValue;
6
+ /** Names the value for a screen reader. */
7
+ label: string;
8
+ }
9
+ /** `value` as nested rows, its containers folding; the top level lists its entries directly. */
10
+ export declare function ValueView({ value, label }: ValueViewProps): ReactElement;
11
+ //# sourceMappingURL=ValueView.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ValueView.d.ts","sourceRoot":"","sources":["../../src/views/ValueView.tsx"],"names":[],"mappings":"AAAA,+HAA+H;AAC/H,OAAO,EAAY,KAAK,YAAY,EAAkB,MAAM,OAAO,CAAC;AACpE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AAyEzE,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,eAAe,CAAC;IACvB,2CAA2C;IAC3C,KAAK,EAAE,MAAM,CAAC;CACf;AAED,gGAAgG;AAChG,wBAAgB,SAAS,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,cAAc,GAAG,YAAY,CASxE"}
@@ -0,0 +1,3 @@
1
+ /** How long ago something happened, in the shortest unit that reads well: `840ms`, `12.3s`, `4m07s`. */
2
+ export declare function formatAge(ms: number): string;
3
+ //# sourceMappingURL=formatAge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formatAge.d.ts","sourceRoot":"","sources":["../../src/views/formatAge.ts"],"names":[],"mappings":"AAAA,wGAAwG;AACxG,wBAAgB,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAM5C"}
@@ -0,0 +1,12 @@
1
+ import type { DevtoolsNodeSummary } from '@weasel-js/core/devtools-protocol';
2
+ import type { DevtoolsClient } from '../client';
3
+ export interface SceneTree {
4
+ /** Each loaded level, by parent id; the top level under `''`. */
5
+ levels: ReadonlyMap<string, readonly DevtoolsNodeSummary[]>;
6
+ expanded: ReadonlySet<string>;
7
+ setExpanded(ids: Set<string>): void;
8
+ /** Why the top level could not be read, such as a scene not mounted yet. */
9
+ error: string | null;
10
+ }
11
+ export declare function useSceneTree(client: DevtoolsClient, rootId: string): SceneTree;
12
+ //# sourceMappingURL=useSceneTree.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useSceneTree.d.ts","sourceRoot":"","sources":["../../src/views/useSceneTree.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAE7E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAKhD,MAAM,WAAW,SAAS;IACxB,iEAAiE;IACjE,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,mBAAmB,EAAE,CAAC,CAAC;IAC5D,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC9B,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;IACpC,4EAA4E;IAC5E,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS,CA8C9E"}
package/package.json CHANGED
@@ -1,6 +1,55 @@
1
1
  {
2
2
  "name": "@weasel-js/devtools",
3
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
6
- }
3
+ "version": "1.11.1",
4
+ "description": "A devtools panel for weasel canvases: each canvas's scene tree, state, dispatch trace and frame stats, read and steered over the devtools hook's protocol.",
5
+ "license": "MIT",
6
+ "type": "module",
7
+ "sideEffects": [
8
+ "*.css"
9
+ ],
10
+ "main": "./dist/index.js",
11
+ "module": "./dist/index.js",
12
+ "types": "./dist/index.d.ts",
13
+ "exports": {
14
+ ".": {
15
+ "types": "./dist/index.d.ts",
16
+ "import": "./dist/index.js"
17
+ },
18
+ "./style.css": "./dist/style.css",
19
+ "./package.json": "./package.json"
20
+ },
21
+ "author": "orochi235",
22
+ "homepage": "https://orochi235.github.io/weasel/",
23
+ "repository": {
24
+ "type": "git",
25
+ "url": "git+https://github.com/orochi235/weasel.git",
26
+ "directory": "packages/devtools"
27
+ },
28
+ "bugs": {
29
+ "url": "https://github.com/orochi235/weasel/issues"
30
+ },
31
+ "engines": {
32
+ "node": ">=22"
33
+ },
34
+ "files": [
35
+ "dist",
36
+ "README.md",
37
+ "LICENSE"
38
+ ],
39
+ "scripts": {
40
+ "build": "vite build && tsc -p tsconfig.build.json"
41
+ },
42
+ "dependencies": {
43
+ "@weasel-js/react": "1.11.1",
44
+ "@weasel-js/ui": "1.11.1"
45
+ },
46
+ "peerDependencies": {
47
+ "@weasel-js/core": "1.11.1",
48
+ "react": ">=18",
49
+ "react-dom": ">=18"
50
+ },
51
+ "publishConfig": {
52
+ "access": "public",
53
+ "provenance": true
54
+ }
55
+ }