@arkcit/engine 0.3.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.
Files changed (42) hide show
  1. package/README.md +68 -0
  2. package/dist/UIEngine.d.ts +6 -0
  3. package/dist/UIEngine.js +3235 -0
  4. package/dist/bindings.d.ts +8 -0
  5. package/dist/bindings.js +146 -0
  6. package/dist/components/index.d.ts +17 -0
  7. package/dist/components/index.js +143 -0
  8. package/dist/core/index.d.ts +4 -0
  9. package/dist/core/index.js +9 -0
  10. package/dist/form/engineFormValidation.d.ts +2 -0
  11. package/dist/form/engineFormValidation.js +241 -0
  12. package/dist/form.d.ts +67 -0
  13. package/dist/form.js +241 -0
  14. package/dist/index.d.ts +15 -0
  15. package/dist/index.js +3336 -0
  16. package/dist/layout.d.ts +6 -0
  17. package/dist/layout.js +82 -0
  18. package/dist/preview/index.d.ts +63 -0
  19. package/dist/preview/index.js +1514 -0
  20. package/dist/react-web/index.d.ts +8 -0
  21. package/dist/react-web/index.js +3246 -0
  22. package/dist/registry.d.ts +2 -0
  23. package/dist/registry.js +0 -0
  24. package/dist/render-layer/index.d.ts +1 -0
  25. package/dist/render-layer/index.js +13 -0
  26. package/dist/renderStudioForm-CPQEzvT7.d.ts +75 -0
  27. package/dist/renderers/index.d.ts +8 -0
  28. package/dist/renderers/index.js +1570 -0
  29. package/dist/runtime/index.d.ts +1 -0
  30. package/dist/runtime/index.js +0 -0
  31. package/dist/schema/index.d.ts +1 -0
  32. package/dist/schema/index.js +0 -0
  33. package/dist/studio-bridge/index.d.ts +501 -0
  34. package/dist/studio-bridge/index.js +2840 -0
  35. package/dist/studioProps.d.ts +8 -0
  36. package/dist/studioProps.js +97 -0
  37. package/dist/types-9TZ2lQDP.d.ts +60 -0
  38. package/dist/types-CyAE6ZLH.d.ts +19 -0
  39. package/dist/types.d.ts +16 -0
  40. package/dist/types.js +0 -0
  41. package/dist/wizardEditingHandlers-D50tR-6n.d.ts +163 -0
  42. package/package.json +160 -0
@@ -0,0 +1,8 @@
1
+ type UnknownRecord = Record<string, unknown>;
2
+ declare const RENDER_BINDING_PROP_NAMES: Set<string>;
3
+ declare const STUDIO_INTERNAL_PROP_NAMES: Set<string>;
4
+ declare const getRenderBindingProps: (props: unknown) => UnknownRecord;
5
+ declare const getStudioProps: (props: unknown) => UnknownRecord;
6
+ declare const omitStudioProps: (props: UnknownRecord) => UnknownRecord;
7
+
8
+ export { RENDER_BINDING_PROP_NAMES, STUDIO_INTERNAL_PROP_NAMES, getRenderBindingProps, getStudioProps, omitStudioProps };
@@ -0,0 +1,97 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
3
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
4
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
5
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
6
+ var __spreadValues = (a, b) => {
7
+ for (var prop in b || (b = {}))
8
+ if (__hasOwnProp.call(b, prop))
9
+ __defNormalProp(a, prop, b[prop]);
10
+ if (__getOwnPropSymbols)
11
+ for (var prop of __getOwnPropSymbols(b)) {
12
+ if (__propIsEnum.call(b, prop))
13
+ __defNormalProp(a, prop, b[prop]);
14
+ }
15
+ return a;
16
+ };
17
+
18
+ // src/render-layer/renderDirectives.ts
19
+ var RENDER_BINDING_PROP_NAMES = /* @__PURE__ */ new Set([
20
+ "bindingEnabled",
21
+ "valueBindingKey",
22
+ "optionsBindingKey",
23
+ "useBindingData",
24
+ "entitiesBindingKey",
25
+ "videoBindingKey",
26
+ "mapBindingKey",
27
+ "productBindingKey",
28
+ "useTranslationKeys",
29
+ "tagContentTranslationKey",
30
+ "tagContentTranslationValue",
31
+ "hrefTranslationKey",
32
+ "hrefTranslationValue",
33
+ "mediaSource",
34
+ "mediaSrc",
35
+ "mediaAlt",
36
+ "rowsBindingKey",
37
+ "columnsBindingKey"
38
+ ]);
39
+ var STUDIO_INTERNAL_PROP_NAMES = /* @__PURE__ */ new Set([
40
+ ...RENDER_BINDING_PROP_NAMES
41
+ ]);
42
+ var getRenderBindingProps = (props) => {
43
+ if (!props || typeof props !== "object" || Array.isArray(props)) {
44
+ return {};
45
+ }
46
+ const source = props;
47
+ const embedded = source.__studio && typeof source.__studio === "object" && !Array.isArray(source.__studio) ? source.__studio : {};
48
+ const legacy = Array.from(RENDER_BINDING_PROP_NAMES).reduce(
49
+ (accumulator, key) => {
50
+ if (source[key] !== void 0) {
51
+ accumulator[key] = source[key];
52
+ }
53
+ return accumulator;
54
+ },
55
+ {}
56
+ );
57
+ return Array.from(RENDER_BINDING_PROP_NAMES).reduce((accumulator, key) => {
58
+ if (legacy[key] !== void 0) {
59
+ accumulator[key] = legacy[key];
60
+ } else if (embedded[key] !== void 0) {
61
+ accumulator[key] = embedded[key];
62
+ }
63
+ return accumulator;
64
+ }, {});
65
+ };
66
+ var getStudioProps = (props) => {
67
+ if (!props || typeof props !== "object" || Array.isArray(props)) {
68
+ return {};
69
+ }
70
+ const source = props;
71
+ const embedded = source.__studio && typeof source.__studio === "object" && !Array.isArray(source.__studio) ? source.__studio : {};
72
+ const legacy = Array.from(STUDIO_INTERNAL_PROP_NAMES).reduce(
73
+ (accumulator, key) => {
74
+ if (source[key] !== void 0) {
75
+ accumulator[key] = source[key];
76
+ }
77
+ return accumulator;
78
+ },
79
+ {}
80
+ );
81
+ return __spreadValues(__spreadValues({}, legacy), embedded);
82
+ };
83
+ var omitStudioProps = (props) => {
84
+ const next = __spreadValues({}, props);
85
+ delete next.__studio;
86
+ for (const propName of STUDIO_INTERNAL_PROP_NAMES) {
87
+ delete next[propName];
88
+ }
89
+ return next;
90
+ };
91
+ export {
92
+ RENDER_BINDING_PROP_NAMES,
93
+ STUDIO_INTERNAL_PROP_NAMES,
94
+ getRenderBindingProps,
95
+ getStudioProps,
96
+ omitStudioProps
97
+ };
@@ -0,0 +1,60 @@
1
+ interface FieldOption {
2
+ value: string | number;
3
+ label: string;
4
+ description?: string;
5
+ disabled?: boolean;
6
+ }
7
+ type DeclarativeValidatorType = "required" | "minLength" | "maxLength" | "email" | "pattern";
8
+ type DeclarativeValidatorConfig = {
9
+ id: string;
10
+ type: DeclarativeValidatorType;
11
+ enabled?: boolean;
12
+ params?: Record<string, unknown>;
13
+ message?: string;
14
+ messageKey?: string;
15
+ stopOnFailure?: boolean;
16
+ };
17
+ interface FieldConfig {
18
+ name: string;
19
+ label: string;
20
+ labelKey?: string;
21
+ placeholder?: string;
22
+ placeholderKey?: string;
23
+ pattern?: string;
24
+ validators?: DeclarativeValidatorConfig[];
25
+ type?: string;
26
+ options?: FieldOption[];
27
+ orientation?: "vertical" | "horizontal";
28
+ multiple?: boolean;
29
+ min?: number;
30
+ max?: number;
31
+ step?: number;
32
+ accept?: string;
33
+ maxFiles?: number;
34
+ maxSizeBytes?: number;
35
+ required?: boolean;
36
+ }
37
+ type Field = string | number | boolean | null | undefined | string[] | File[];
38
+ type FormValues = Record<string, unknown>;
39
+ type FormErrors = Record<string, string | undefined>;
40
+ type FormTouched = Record<string, boolean | undefined>;
41
+ type ValidationIssue = {
42
+ field: string;
43
+ validatorId?: string;
44
+ code?: string;
45
+ message?: string;
46
+ messageKey?: string;
47
+ params?: Record<string, unknown>;
48
+ };
49
+ type FormState = {
50
+ values: FormValues;
51
+ errors: FormErrors;
52
+ touched: FormTouched;
53
+ dirty: boolean;
54
+ isValid: boolean;
55
+ isSubmitting: boolean;
56
+ submitCount: number;
57
+ issues: ValidationIssue[];
58
+ };
59
+
60
+ export type { DeclarativeValidatorConfig as D, FieldConfig as F, ValidationIssue as V, Field as a, DeclarativeValidatorType as b, FieldOption as c, FormErrors as d, FormState as e, FormTouched as f, FormValues as g };
@@ -0,0 +1,19 @@
1
+ import React__default from 'react';
2
+
3
+ type UIInlineEditorMode = "primitive" | "json" | "translation";
4
+ type UIInlineEditorState = {
5
+ nodeId: string;
6
+ propName: string;
7
+ value: string;
8
+ multiline: boolean;
9
+ mode: UIInlineEditorMode;
10
+ editorStyle?: React__default.CSSProperties;
11
+ };
12
+ type UIInlineTextEditorProps = {
13
+ editing: UIInlineEditorState;
14
+ onChange: (value: string) => void;
15
+ onCancel: () => void;
16
+ onCommit: () => void;
17
+ };
18
+
19
+ export type { UIInlineEditorMode as U, UIInlineEditorState as a, UIInlineTextEditorProps as b };
@@ -0,0 +1,16 @@
1
+ import { UISchemaNodeMeta as UISchemaNodeMeta$1 } from '@arkcit/engine-schema';
2
+ export { UIExprValue, UII18nValue, UINode, UINodeEventName, UINodeLayout, UINodeProps, UIRefValue, UIRenderBindingMeta, UISchema, UISchemaNodeMeta, UIValue } from '@arkcit/engine-schema';
3
+ export { UIActionRef, UIRuntime, UIRuntimeAdapter } from '@arkcit/engine-runtime';
4
+ export { U as UIInlineEditingMode, a as UIInlineEditingState, U as UIInlineEditorMode, a as UIInlineEditorState, b as UIInlineTextEditorProps } from './types-CyAE6ZLH.js';
5
+ export { ResolvedEngineNode, ResolvedNode, ResolvedNodeBase, ResolvedNodeChildDescriptor, ResolvedNodeContentDescriptor } from '@arkcit/engine-render-layer';
6
+ export { ComponentRegistry, ComponentRegistryEntry, ReactWebRendererProps, RuntimeRenderInput, SchemaRenderInput, StudioAuthoringProps, UIEngineProps, UINodeDropPreview, UINodeDropState, UINodeDropTarget, UINodeSize, UINodeWrapperProps } from '@arkcit/engine-core';
7
+ import 'react';
8
+
9
+ type UISchemaNodeMeta = UISchemaNodeMeta$1;
10
+ type UIAuthoringMeta = {
11
+ [key: string]: unknown;
12
+ };
13
+ type UIInternalNodeMeta = UISchemaNodeMeta & UIAuthoringMeta;
14
+ type UIStudioNodeMeta = UIInternalNodeMeta;
15
+
16
+ export type { UIAuthoringMeta, UIInternalNodeMeta, UIStudioNodeMeta };
package/dist/types.js ADDED
File without changes
@@ -0,0 +1,163 @@
1
+ import React__default, { Dispatch, SetStateAction } from 'react';
2
+ import { F as FieldConfig } from './types-9TZ2lQDP.js';
3
+ import { UINode } from '@arkcit/engine-schema';
4
+ import { UIRuntime } from '@arkcit/engine-runtime';
5
+
6
+ declare const resolveStudioFormNextValues: ({ formValues, fieldName, nextValue, }: {
7
+ formValues: Record<string, unknown>;
8
+ fieldName: string;
9
+ nextValue: unknown;
10
+ }) => Record<string, unknown>;
11
+ declare const resolveStudioFormResetValues: (normalizedFormFields: Array<FieldConfig & Record<string, unknown>>) => Record<string, unknown>;
12
+ declare const patchStudioFormFieldNode: ({ child, formValues, formErrors, formDict, formLoaderType, fieldOnChange, }: {
13
+ child: UINode;
14
+ formValues: Record<string, unknown>;
15
+ formErrors: Record<string, unknown>;
16
+ formDict: Record<string, string>;
17
+ formLoaderType: unknown;
18
+ fieldOnChange: (event: React__default.ChangeEvent<HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement>) => void;
19
+ }) => {
20
+ patchedFieldNode: UINode;
21
+ fieldBasis: string;
22
+ };
23
+
24
+ type ResolvedStudioFormStructure = {
25
+ normalizedChildren: UINode[];
26
+ titleNode?: UINode;
27
+ fieldNodes: UINode[];
28
+ submitNode?: UINode;
29
+ resetNode?: UINode;
30
+ externalChildren: UINode[];
31
+ normalizedFormFields: Array<FieldConfig & Record<string, unknown>>;
32
+ formValues: Record<string, unknown>;
33
+ formErrors: Record<string, unknown>;
34
+ formDict: Record<string, string>;
35
+ formLoaderType: unknown;
36
+ };
37
+ declare const resolveStudioFormStructure: ({ componentProps, visibleChildren, }: {
38
+ componentProps: Record<string, unknown>;
39
+ visibleChildren: UINode[];
40
+ }) => ResolvedStudioFormStructure;
41
+
42
+ type ResolvedStudioAccordionState = {
43
+ validItemIds: Set<string>;
44
+ effectiveOpenIds: string[];
45
+ };
46
+ declare const resolveStudioAccordionState: ({ nodeId, accordionChildren, itemIds, selectedNodeId, accordionOpenIdsByNodeId, allowMultiple, }: {
47
+ nodeId: string;
48
+ accordionChildren: UINode[];
49
+ itemIds: string[];
50
+ selectedNodeId: string | null;
51
+ accordionOpenIdsByNodeId: Record<string, string[]>;
52
+ allowMultiple: boolean;
53
+ }) => ResolvedStudioAccordionState;
54
+ declare const resolveStudioExpandablePanelState: ({ nodeId, expandablePanelOpenByNodeId, }: {
55
+ nodeId: string;
56
+ expandablePanelOpenByNodeId: Record<string, boolean>;
57
+ }) => {
58
+ controlledOpen: boolean;
59
+ defaultOpen: true;
60
+ disableAnimation: true;
61
+ };
62
+
63
+ declare const normalizeStudioTabsProps: (props: Record<string, unknown>) => Record<string, unknown>;
64
+ declare const resolveStudioTabsContent: ({ tabItems, rawChildren, runtime, renderChild, normalizeRenderableChild, }: {
65
+ tabItems: Array<Record<string, unknown>>;
66
+ rawChildren: UINode[];
67
+ runtime: UIRuntime;
68
+ renderChild: (node: UINode) => unknown;
69
+ normalizeRenderableChild: (value: unknown) => unknown;
70
+ }) => {
71
+ id: string;
72
+ title: {};
73
+ label: {};
74
+ content: unknown;
75
+ }[];
76
+ declare const resolveStudioTabsProps: ({ componentProps, tabItems, rawChildren, runtime, renderChild, normalizeRenderableChild, }: {
77
+ componentProps: Record<string, unknown>;
78
+ tabItems: Array<Record<string, unknown>>;
79
+ rawChildren: UINode[];
80
+ runtime: UIRuntime;
81
+ renderChild: (node: UINode) => unknown;
82
+ normalizeRenderableChild: (value: unknown) => unknown;
83
+ }) => {
84
+ normalizedProps: Record<string, unknown>;
85
+ resolvedTabs: {
86
+ id: string;
87
+ title: {};
88
+ label: {};
89
+ content: unknown;
90
+ }[];
91
+ };
92
+
93
+ declare const resolveStudioWizardNextValues: ({ rawWizardValues, fieldName, nextValue, }: {
94
+ rawWizardValues: Record<string, unknown>;
95
+ fieldName: string;
96
+ nextValue: unknown;
97
+ }) => Record<string, unknown>;
98
+ declare const resolveStudioWizardActiveStepFields: ({ stepId, stepIdToNode, }: {
99
+ stepId: string;
100
+ stepIdToNode: Record<string, UINode>;
101
+ }) => Array<FieldConfig & Record<string, unknown>>;
102
+ declare const resolveStudioWizardNextErrors: ({ currentWizardErrors, activeStepFields, nextValues, runtime, }: {
103
+ currentWizardErrors: Record<string, unknown>;
104
+ activeStepFields: Array<FieldConfig & Record<string, unknown>>;
105
+ nextValues: Record<string, unknown>;
106
+ runtime: UIRuntime;
107
+ }) => Record<string, unknown>;
108
+ declare const patchStudioWizardFieldNode: ({ nested, rawWizardValues, currentWizardErrors, fieldOnChange, }: {
109
+ nested: UINode;
110
+ rawWizardValues: Record<string, unknown>;
111
+ currentWizardErrors: Record<string, unknown>;
112
+ fieldOnChange: (event: React__default.ChangeEvent<HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement>) => void;
113
+ }) => {
114
+ patchedNode: UINode;
115
+ fieldBasis: string;
116
+ };
117
+
118
+ type ResolvedStudioWizardStep = {
119
+ id: string;
120
+ title: unknown;
121
+ description: unknown;
122
+ titleNode?: UINode;
123
+ descriptionNode?: UINode;
124
+ contentNode?: UINode;
125
+ isValid: boolean;
126
+ contentType: "content" | "form";
127
+ stepRenderableContent: UINode[];
128
+ contentValue: unknown;
129
+ };
130
+ type ResolvedStudioWizardStructure = {
131
+ stepChildren: UINode[];
132
+ stepIdToNode: Record<string, UINode>;
133
+ selectedStepId: string | null;
134
+ currentSteps: ResolvedStudioWizardStep[];
135
+ normalizedFieldsByStep: Record<string, unknown[]>;
136
+ resolvedActiveStepId: string;
137
+ existingFormConfig: Record<string, unknown>;
138
+ existingStudioConfig: Record<string, unknown>;
139
+ };
140
+ declare const resolveStudioWizardStructure: ({ node, componentProps, selectedNodeId, wizardActiveStepByNodeId, runtime, internalStudioNodeTypes, }: {
141
+ node: UINode;
142
+ componentProps: Record<string, unknown>;
143
+ selectedNodeId: string | null;
144
+ wizardActiveStepByNodeId: Record<string, string>;
145
+ runtime: UIRuntime;
146
+ internalStudioNodeTypes: Set<string>;
147
+ }) => ResolvedStudioWizardStructure;
148
+
149
+ declare const createStudioWizardOnStepChange: ({ nodeId, stepIdToNode, setWizardActiveStepByNodeId, existingOnStepChange, onNodeClick, }: {
150
+ nodeId: string;
151
+ stepIdToNode: Record<string, UINode>;
152
+ setWizardActiveStepByNodeId: Dispatch<SetStateAction<Record<string, string>>>;
153
+ existingOnStepChange: unknown;
154
+ onNodeClick?: (nodeId: string) => void;
155
+ }) => (stepId: string) => void;
156
+ declare const attachStudioWizardEditingHandlers: ({ studioConfig, node, stepIdToNode, openInlineEditorForNodeProp, }: {
157
+ studioConfig: Record<string, unknown>;
158
+ node: UINode;
159
+ stepIdToNode: Record<string, UINode>;
160
+ openInlineEditorForNodeProp: (targetNodeId: string, propName: string, rawValue: unknown) => void;
161
+ }) => Record<string, unknown>;
162
+
163
+ export { type ResolvedStudioWizardStep as R, attachStudioWizardEditingHandlers as a, patchStudioWizardFieldNode as b, createStudioWizardOnStepChange as c, resolveStudioExpandablePanelState as d, resolveStudioFormNextValues as e, resolveStudioFormResetValues as f, resolveStudioFormStructure as g, resolveStudioTabsContent as h, resolveStudioTabsProps as i, resolveStudioWizardActiveStepFields as j, resolveStudioWizardNextErrors as k, resolveStudioWizardNextValues as l, resolveStudioWizardStructure as m, normalizeStudioTabsProps as n, type ResolvedStudioAccordionState as o, patchStudioFormFieldNode as p, type ResolvedStudioFormStructure as q, resolveStudioAccordionState as r, type ResolvedStudioWizardStructure as s };
package/package.json ADDED
@@ -0,0 +1,160 @@
1
+ {
2
+ "name": "@arkcit/engine",
3
+ "version": "0.3.0",
4
+ "type": "module",
5
+ "sideEffects": false,
6
+ "description": "Shared web adapter-layer package for the Arkcit engine platform, hosting the web integration path around extracted concrete renderers.",
7
+ "license": "UNLICENSED",
8
+ "keywords": [
9
+ "arkcit",
10
+ "engine",
11
+ "ui-engine",
12
+ "renderer",
13
+ "web"
14
+ ],
15
+ "repository": {
16
+ "type": "git",
17
+ "url": "https://github.com/Arkcit/engine.git"
18
+ },
19
+ "homepage": "https://github.com/Arkcit/engine",
20
+ "bugs": {
21
+ "url": "https://github.com/Arkcit/engine/issues"
22
+ },
23
+ "engines": {
24
+ "node": ">=20.0.0"
25
+ },
26
+ "main": "./dist/index.js",
27
+ "module": "./dist/index.js",
28
+ "types": "./dist/index.d.ts",
29
+ "files": [
30
+ "dist"
31
+ ],
32
+ "publishConfig": {
33
+ "access": "public"
34
+ },
35
+ "exports": {
36
+ ".": {
37
+ "types": "./dist/index.d.ts",
38
+ "import": "./dist/index.js",
39
+ "default": "./dist/index.js"
40
+ },
41
+ "./UIEngine": {
42
+ "types": "./dist/UIEngine.d.ts",
43
+ "import": "./dist/UIEngine.js",
44
+ "default": "./dist/UIEngine.js"
45
+ },
46
+ "./bindings": {
47
+ "types": "./dist/bindings.d.ts",
48
+ "import": "./dist/bindings.js",
49
+ "default": "./dist/bindings.js"
50
+ },
51
+ "./core": {
52
+ "types": "./dist/core/index.d.ts",
53
+ "import": "./dist/core/index.js",
54
+ "default": "./dist/core/index.js"
55
+ },
56
+ "./form": {
57
+ "types": "./dist/form.d.ts",
58
+ "import": "./dist/form.js",
59
+ "default": "./dist/form.js"
60
+ },
61
+ "./form/engineFormValidation": {
62
+ "types": "./dist/form/engineFormValidation.d.ts",
63
+ "import": "./dist/form/engineFormValidation.js",
64
+ "default": "./dist/form/engineFormValidation.js"
65
+ },
66
+ "./registry": {
67
+ "types": "./dist/registry.d.ts",
68
+ "import": "./dist/registry.js",
69
+ "default": "./dist/registry.js"
70
+ },
71
+ "./components": {
72
+ "types": "./dist/components/index.d.ts",
73
+ "import": "./dist/components/index.js",
74
+ "default": "./dist/components/index.js"
75
+ },
76
+ "./renderers": {
77
+ "types": "./dist/renderers/index.d.ts",
78
+ "import": "./dist/renderers/index.js",
79
+ "default": "./dist/renderers/index.js"
80
+ },
81
+ "./layout": {
82
+ "types": "./dist/layout.d.ts",
83
+ "import": "./dist/layout.js",
84
+ "default": "./dist/layout.js"
85
+ },
86
+ "./preview": {
87
+ "types": "./dist/preview/index.d.ts",
88
+ "import": "./dist/preview/index.js",
89
+ "default": "./dist/preview/index.js"
90
+ },
91
+ "./render-layer": {
92
+ "types": "./dist/render-layer/index.d.ts",
93
+ "import": "./dist/render-layer/index.js",
94
+ "default": "./dist/render-layer/index.js"
95
+ },
96
+ "./react-web": {
97
+ "types": "./dist/react-web/index.d.ts",
98
+ "import": "./dist/react-web/index.js",
99
+ "default": "./dist/react-web/index.js"
100
+ },
101
+ "./studio-props": {
102
+ "types": "./dist/studioProps.d.ts",
103
+ "import": "./dist/studioProps.js",
104
+ "default": "./dist/studioProps.js"
105
+ },
106
+ "./runtime": {
107
+ "types": "./dist/runtime/index.d.ts",
108
+ "import": "./dist/runtime/index.js",
109
+ "default": "./dist/runtime/index.js"
110
+ },
111
+ "./schema": {
112
+ "types": "./dist/schema/index.d.ts",
113
+ "import": "./dist/schema/index.js",
114
+ "default": "./dist/schema/index.js"
115
+ },
116
+ "./types": {
117
+ "types": "./dist/types.d.ts",
118
+ "import": "./dist/types.js",
119
+ "default": "./dist/types.js"
120
+ },
121
+ "./studio-bridge": {
122
+ "types": "./dist/studio-bridge/index.d.ts",
123
+ "import": "./dist/studio-bridge/index.js",
124
+ "default": "./dist/studio-bridge/index.js"
125
+ }
126
+ },
127
+ "scripts": {
128
+ "build": "tsup --config tsup.config.ts",
129
+ "typecheck": "tsc --noEmit -p tsconfig.json",
130
+ "test:smoke": "tsx src/__tests__/public-entrypoints.test.ts",
131
+ "test:node": "tsx src/__tests__/run-all.ts",
132
+ "test:react": "vitest --configLoader runner run src/utils/__tests__/contentStudio.test.tsx src/utils/__tests__/overlayStudio.test.ts src/utils/__tests__/navigationStudio.test.tsx src/utils/__tests__/renderChildren.test.tsx src/utils/__tests__/nodeWrapperStudio.test.tsx src/renderers/renderStudioForm.test.tsx src/renderers/configureStudioNavigation.test.tsx src/renderers/configureStudioLink.test.ts src/renderers/configureStudioFormWizard.test.tsx src/renderers/renderBoundTable.test.tsx src/components/InlineTextEditor.test.tsx src/components/NodeErrorBoundary.test.tsx src/UIEngine.test.tsx",
133
+ "test": "npm run test:smoke && npm run test:node && npm run test:react"
134
+ },
135
+ "peerDependencies": {
136
+ "react": "^19.1.0",
137
+ "react-dom": "^19.1.0"
138
+ },
139
+ "dependencies": {
140
+ "@arkcit/engine-core": "^0.3.0",
141
+ "@arkcit/engine-react": "^0.3.0",
142
+ "@arkcit/engine-render-layer": "^0.3.0",
143
+ "@arkcit/engine-runtime": "^0.3.0",
144
+ "@arkcit/engine-schema": "^0.3.0"
145
+ },
146
+ "devDependencies": {
147
+ "@testing-library/jest-dom": "^6.9.1",
148
+ "@testing-library/react": "^16.3.2",
149
+ "@types/node": "^24.10.1",
150
+ "@types/react": "^19.2.5",
151
+ "@types/react-dom": "^19.2.3",
152
+ "@vitest/coverage-v8": "^4.1.0",
153
+ "c8": "^11.0.0",
154
+ "jsdom": "^28.1.0",
155
+ "tsx": "^4.21.0",
156
+ "tsup": "^8.5.1",
157
+ "typescript": "~5.9.3",
158
+ "vitest": "^4.1.0"
159
+ }
160
+ }