@memberjunction/interactive-component-types 2.132.0 → 3.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,67 @@
1
+ import { ComponentEvent, ComponentProperty } from "./component-props-events";
2
+ import { ComponentDataRequirements } from "./data-requirements";
3
+ /**
4
+ * Represents a child component within a component hierarchy
5
+ */
6
+ export interface ComponentChildSpec {
7
+ /**
8
+ * The programmatic name of the component
9
+ */
10
+ componentName: string;
11
+ /**
12
+ * Example of the component being used in JSX format. This is used to provide a clear example on the properties and
13
+ * event handling that the component supports. This is used to teach the next AI exactly what we want it to generate for the
14
+ * child component.
15
+ */
16
+ exampleUsage: string;
17
+ /**
18
+ * The code for the child component. This is generated LATER by a separate process after the parent
19
+ * component generation is complete. When the parent component generates this is undefined.
20
+ */
21
+ componentCode?: string;
22
+ /**
23
+ * A summary of what this child component does that a user would understand.
24
+ * This should be a high-level, user-friendly description suitable for end users.
25
+ */
26
+ description: string;
27
+ /**
28
+ * Functional requirements for this child component.
29
+ * This should be in markdown format and describe what the component should do from a functional perspective.
30
+ * Includes:
31
+ * - Component-specific functionality
32
+ * - How it integrates with the parent component
33
+ * - User interactions within this component
34
+ * - Business rules specific to this component
35
+ */
36
+ functionalRequirements?: string;
37
+ /**
38
+ * Data requirements for this child component. This section defines where a child component
39
+ * will **directly** access data as required using utilities methods like `rv.runView` and `rq.runQuery`
40
+ */
41
+ dataRequirements?: ComponentDataRequirements;
42
+ /**
43
+ * An optional array of properties that the component uses. The names and descriptions
44
+ * allow consumers of the component to understand what is accepted by the component and the
45
+ * component. This can be used for shared data shared between components or for configuration
46
+ * settings.
47
+ */
48
+ properties?: ComponentProperty[];
49
+ /**
50
+ * An optional array of events that the component emits.
51
+ * This allows consumers of the component to understand what events they can listen to.
52
+ */
53
+ events?: ComponentEvent[];
54
+ /**
55
+ * Technical design details for this child component.
56
+ * This should be in markdown format and describe the implementation approach.
57
+ * Includes:
58
+ * - How the component is structured
59
+ * - Properites/events
60
+ */
61
+ technicalDesign?: string;
62
+ /**
63
+ * An array of sub-components
64
+ */
65
+ components: ComponentChildSpec[];
66
+ }
67
+ //# sourceMappingURL=child-spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"child-spec.d.ts","sourceRoot":"","sources":["../src/child-spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7E,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAEhE;;GAEG;AACH,MAAM,WAAW,kBAAkB;IAC/B;;OAEG;IACH,aAAa,EAAE,MAAM,CAAC;IAEtB;;;;OAIG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;;OAGG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;;;;;;;OAQG;IACH,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAEhC;;;OAGG;IACH,gBAAgB,CAAC,EAAE,yBAAyB,CAAC;IAE7C;;;;;OAKG;IACH,UAAU,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAEjC;;;OAGG;IACH,MAAM,CAAC,EAAE,cAAc,EAAE,CAAC;IAE1B;;;;;;OAMG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB;;OAEG;IACH,UAAU,EAAE,kBAAkB,EAAE,CAAC;CACpC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=child-spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"child-spec.js","sourceRoot":"","sources":["../src/child-spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,72 @@
1
+ import { ComponentChildSpec } from "./child-spec";
2
+ import { ComponentDataRequirements } from "./data-requirements";
3
+ /**
4
+ * Represents a complete specification for a generated Skip component, including its structure,
5
+ * requirements, code, and nested component hierarchy
6
+ */
7
+ export type ComponentRootSpec = {
8
+ /**
9
+ * A description of what the component should do from a functional perspective.
10
+ * This should be in markdown format and include:
11
+ * - Core functionality
12
+ * - Business rules
13
+ * - Expected outcomes
14
+ * - UX considerations
15
+ */
16
+ functionalRequirements: string;
17
+ /**
18
+ * Detailed data requirements, including how the component accesses and uses data.
19
+ */
20
+ dataRequirements?: ComponentDataRequirements;
21
+ /**
22
+ * A technical description of how the component is designed and implemented.
23
+ * This should be in markdown format and include:
24
+ * - Architecture and design patterns
25
+ * - Key technical decisions
26
+ * - Component structure
27
+ * - State management
28
+ * - Integration points with parent/child components
29
+ */
30
+ technicalDesign: string;
31
+ /**
32
+ * The code for the main component.
33
+ */
34
+ componentCode: string;
35
+ /**
36
+ * Name of the component
37
+ */
38
+ componentName: string;
39
+ /**
40
+ * The type of component: report, dashboard, form, or other.
41
+ */
42
+ componentType: "report" | "dashboard" | "form" | "other";
43
+ /**
44
+ * A summary of what the component does that a user would understand.
45
+ */
46
+ description: string;
47
+ /**
48
+ * The callback strategy used by this component (e.g., "hybrid", "direct", "none")
49
+ */
50
+ callbackStrategy: string;
51
+ /**
52
+ * Describes the state structure managed by this component
53
+ */
54
+ stateStructure: Record<string, string>;
55
+ /**
56
+ * An array of child component specifications
57
+ */
58
+ childComponents: ComponentChildSpec[];
59
+ /**
60
+ * User-friendly name
61
+ */
62
+ title: string;
63
+ /**
64
+ * A user-friendly explanation of what the component does
65
+ */
66
+ userExplanation: string;
67
+ /**
68
+ * Summary of technical design
69
+ */
70
+ techExplanation: string;
71
+ };
72
+ //# sourceMappingURL=root-spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"root-spec.d.ts","sourceRoot":"","sources":["../src/root-spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAEhE;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC5B;;;;;;;OAOG;IACH,sBAAsB,EAAE,MAAM,CAAC;IAE/B;;OAEG;IACH,gBAAgB,CAAC,EAAE,yBAAyB,CAAC;IAE7C;;;;;;;;OAQG;IACH,eAAe,EAAE,MAAM,CAAC;IAExB;;OAEG;IACH,aAAa,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,aAAa,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,aAAa,EAAE,QAAQ,GAAG,WAAW,GAAG,MAAM,GAAG,OAAO,CAAC;IAEzD;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,gBAAgB,EAAE,MAAM,CAAC;IAEzB;;OAEG;IACH,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEvC;;OAEG;IACH,eAAe,EAAE,kBAAkB,EAAE,CAAC;IAEtC;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,eAAe,EAAE,MAAM,CAAC;IAExB;;OAEG;IACH,eAAe,EAAE,MAAM,CAAC;CAC3B,CAAC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=root-spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"root-spec.js","sourceRoot":"","sources":["../src/root-spec.ts"],"names":[],"mappings":""}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@memberjunction/interactive-component-types",
3
- "version": "2.132.0",
3
+ "version": "3.0.0",
4
4
  "description": "MemberJunction: Interactive Component - Type specifications for MJ Interactive UI Componentry",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -19,8 +19,8 @@
19
19
  "typescript": "^5.4.5"
20
20
  },
21
21
  "dependencies": {
22
- "@memberjunction/core": "2.132.0",
23
- "@memberjunction/ai-vectors-memory": "2.132.0"
22
+ "@memberjunction/core": "3.0.0",
23
+ "@memberjunction/ai-vectors-memory": "3.0.0"
24
24
  },
25
25
  "repository": {
26
26
  "type": "git",