blockparty 0.1.4 → 0.2.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.
package/README.md CHANGED
@@ -172,9 +172,9 @@ npm test
172
172
  npm version patch|minor|major
173
173
  ```
174
174
 
175
- 2. Push the version bump and new git tag:
175
+ 2. Push the new git tag:
176
176
  ```
177
- git push origin main --tags
177
+ git push --tags
178
178
  ```
179
179
 
180
180
  3. Publish to NPM:
@@ -3,6 +3,7 @@ export interface PropDefinition {
3
3
  type: string;
4
4
  optional: boolean;
5
5
  properties?: PropDefinition[];
6
+ parameters?: PropDefinition[];
6
7
  description?: string;
7
8
  }
8
9
  export declare function extractPropsFromSource(content: string, fileName?: string): PropDefinition[];
@@ -1 +1 @@
1
- {"version":3,"file":"extractProps.d.ts","sourceRoot":"","sources":["../src/extractProps.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,OAAO,CAAA;IACjB,UAAU,CAAC,EAAE,cAAc,EAAE,CAAA;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AA2MD,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAqB,GAAG,cAAc,EAAE,CAiEzG;AAwBD,wBAAsB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAQtF"}
1
+ {"version":3,"file":"extractProps.d.ts","sourceRoot":"","sources":["../src/extractProps.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,OAAO,CAAA;IACjB,UAAU,CAAC,EAAE,cAAc,EAAE,CAAA;IAC7B,UAAU,CAAC,EAAE,cAAc,EAAE,CAAA;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AA2QD,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAqB,GAAG,cAAc,EAAE,CAiEzG;AAwBD,wBAAsB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAQtF"}
@@ -9,8 +9,45 @@ function isFunctionType(typeNode) {
9
9
  if (ts.isParenthesizedTypeNode(typeNode)) {
10
10
  return isFunctionType(typeNode.type);
11
11
  }
12
+ // Check if it's a union type containing a function
13
+ if (ts.isUnionTypeNode(typeNode)) {
14
+ return typeNode.types.some(t => isFunctionType(t));
15
+ }
12
16
  return false;
13
17
  }
18
+ function extractFunctionParameters(typeNode, sourceFile) {
19
+ let functionNode;
20
+ if (ts.isFunctionTypeNode(typeNode)) {
21
+ functionNode = typeNode;
22
+ }
23
+ else if (ts.isParenthesizedTypeNode(typeNode) && ts.isFunctionTypeNode(typeNode.type)) {
24
+ functionNode = typeNode.type;
25
+ }
26
+ else if (ts.isUnionTypeNode(typeNode)) {
27
+ // For union types, find the first function type
28
+ for (const unionMember of typeNode.types) {
29
+ if (ts.isFunctionTypeNode(unionMember)) {
30
+ functionNode = unionMember;
31
+ break;
32
+ }
33
+ else if (ts.isParenthesizedTypeNode(unionMember) && ts.isFunctionTypeNode(unionMember.type)) {
34
+ functionNode = unionMember.type;
35
+ break;
36
+ }
37
+ }
38
+ }
39
+ if (!functionNode) {
40
+ return [];
41
+ }
42
+ const parameters = [];
43
+ for (const param of functionNode.parameters) {
44
+ const name = param.name.getText(sourceFile);
45
+ const type = param.type ? param.type.getText(sourceFile) : 'any';
46
+ const optional = !!param.questionToken;
47
+ parameters.push({ name, type, optional });
48
+ }
49
+ return parameters;
50
+ }
14
51
  function extractJSDocComment(node, sourceFile) {
15
52
  const fullText = sourceFile.getFullText();
16
53
  const commentRanges = ts.getLeadingCommentRanges(fullText, node.pos);
@@ -40,10 +77,6 @@ function extractPropertiesFromType(typeNode, sourceFile) {
40
77
  if (ts.isTypeLiteralNode(typeNode)) {
41
78
  for (const member of typeNode.members) {
42
79
  if (ts.isPropertySignature(member) && member.name) {
43
- // Skip function-typed properties
44
- if (isFunctionType(member.type)) {
45
- continue;
46
- }
47
80
  const name = member.name.getText(sourceFile);
48
81
  const optional = !!member.questionToken;
49
82
  const type = member.type ? member.type.getText(sourceFile) : 'any';
@@ -53,11 +86,19 @@ function extractPropertiesFromType(typeNode, sourceFile) {
53
86
  if (description) {
54
87
  propDef.description = description;
55
88
  }
56
- // If this property has a type, try to extract nested properties
89
+ // If this property has a type, check if it's a function or object type
57
90
  if (member.type) {
58
- const nestedProps = extractNestedProperties(member.type, sourceFile);
59
- if (nestedProps.length > 0) {
60
- propDef.properties = nestedProps;
91
+ if (isFunctionType(member.type)) {
92
+ // Extract function parameters
93
+ const params = extractFunctionParameters(member.type, sourceFile);
94
+ propDef.parameters = params;
95
+ }
96
+ else {
97
+ // Try to extract nested properties for object types
98
+ const nestedProps = extractNestedProperties(member.type, sourceFile);
99
+ if (nestedProps.length > 0) {
100
+ propDef.properties = nestedProps;
101
+ }
61
102
  }
62
103
  }
63
104
  props.push(propDef);
@@ -97,12 +138,24 @@ function extractNestedProperties(typeNode, sourceFile) {
97
138
  function extractPropertiesFromDeclaration(decl, sourceFile) {
98
139
  const props = [];
99
140
  if (ts.isInterfaceDeclaration(decl)) {
141
+ // First, extract properties from extended interfaces
142
+ if (decl.heritageClauses) {
143
+ for (const heritageClause of decl.heritageClauses) {
144
+ if (heritageClause.token === ts.SyntaxKind.ExtendsKeyword) {
145
+ for (const typeExpr of heritageClause.types) {
146
+ const typeName = typeExpr.expression.getText(sourceFile);
147
+ const baseDecl = findTypeDeclaration(sourceFile, typeName);
148
+ if (baseDecl) {
149
+ const inheritedProps = extractPropertiesFromDeclaration(baseDecl, sourceFile);
150
+ props.push(...inheritedProps);
151
+ }
152
+ }
153
+ }
154
+ }
155
+ }
156
+ // Then, extract properties directly declared on this interface
100
157
  for (const member of decl.members) {
101
158
  if (ts.isPropertySignature(member) && member.name) {
102
- // Skip function-typed properties
103
- if (isFunctionType(member.type)) {
104
- continue;
105
- }
106
159
  const name = member.name.getText(sourceFile);
107
160
  const optional = !!member.questionToken;
108
161
  const type = member.type ? member.type.getText(sourceFile) : 'any';
@@ -112,11 +165,19 @@ function extractPropertiesFromDeclaration(decl, sourceFile) {
112
165
  if (description) {
113
166
  propDef.description = description;
114
167
  }
115
- // Try to extract nested properties
168
+ // If this property has a type, check if it's a function or object type
116
169
  if (member.type) {
117
- const nestedProps = extractNestedProperties(member.type, sourceFile);
118
- if (nestedProps.length > 0) {
119
- propDef.properties = nestedProps;
170
+ if (isFunctionType(member.type)) {
171
+ // Extract function parameters
172
+ const params = extractFunctionParameters(member.type, sourceFile);
173
+ propDef.parameters = params;
174
+ }
175
+ else {
176
+ // Try to extract nested properties for object types
177
+ const nestedProps = extractNestedProperties(member.type, sourceFile);
178
+ if (nestedProps.length > 0) {
179
+ propDef.properties = nestedProps;
180
+ }
120
181
  }
121
182
  }
122
183
  props.push(propDef);
@@ -127,10 +188,6 @@ function extractPropertiesFromDeclaration(decl, sourceFile) {
127
188
  if (ts.isTypeLiteralNode(decl.type)) {
128
189
  for (const member of decl.type.members) {
129
190
  if (ts.isPropertySignature(member) && member.name) {
130
- // Skip function-typed properties
131
- if (isFunctionType(member.type)) {
132
- continue;
133
- }
134
191
  const name = member.name.getText(sourceFile);
135
192
  const optional = !!member.questionToken;
136
193
  const type = member.type ? member.type.getText(sourceFile) : 'any';
@@ -140,11 +197,19 @@ function extractPropertiesFromDeclaration(decl, sourceFile) {
140
197
  if (description) {
141
198
  propDef.description = description;
142
199
  }
143
- // Try to extract nested properties
200
+ // If this property has a type, check if it's a function or object type
144
201
  if (member.type) {
145
- const nestedProps = extractNestedProperties(member.type, sourceFile);
146
- if (nestedProps.length > 0) {
147
- propDef.properties = nestedProps;
202
+ if (isFunctionType(member.type)) {
203
+ // Extract function parameters
204
+ const params = extractFunctionParameters(member.type, sourceFile);
205
+ propDef.parameters = params;
206
+ }
207
+ else {
208
+ // Try to extract nested properties for object types
209
+ const nestedProps = extractNestedProperties(member.type, sourceFile);
210
+ if (nestedProps.length > 0) {
211
+ propDef.properties = nestedProps;
212
+ }
148
213
  }
149
214
  }
150
215
  props.push(propDef);
@@ -1 +1 @@
1
- {"version":3,"file":"extractProps.js","sourceRoot":"","sources":["../src/extractProps.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"extractProps.js","sourceRoot":"","sources":["../src/extractProps.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AACtC,OAAO,KAAK,EAAE,MAAM,YAAY,CAAA;AAWhC,SAAS,cAAc,CAAC,QAAiC;IACvD,IAAI,CAAC,QAAQ;QAAE,OAAO,KAAK,CAAA;IAC3B,IAAI,EAAE,CAAC,kBAAkB,CAAC,QAAQ,CAAC;QAAE,OAAO,IAAI,CAAA;IAEhD,wEAAwE;IACxE,IAAI,EAAE,CAAC,uBAAuB,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzC,OAAO,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;IACtC,CAAC;IAED,mDAAmD;IACnD,IAAI,EAAE,CAAC,eAAe,CAAC,QAAQ,CAAC,EAAE,CAAC;QACjC,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAA;IACpD,CAAC;IAED,OAAO,KAAK,CAAA;AACd,CAAC;AAED,SAAS,yBAAyB,CAAC,QAAqB,EAAE,UAAyB;IACjF,IAAI,YAA6C,CAAA;IAEjD,IAAI,EAAE,CAAC,kBAAkB,CAAC,QAAQ,CAAC,EAAE,CAAC;QACpC,YAAY,GAAG,QAAQ,CAAA;IACzB,CAAC;SAAM,IAAI,EAAE,CAAC,uBAAuB,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,kBAAkB,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACxF,YAAY,GAAG,QAAQ,CAAC,IAAI,CAAA;IAC9B,CAAC;SAAM,IAAI,EAAE,CAAC,eAAe,CAAC,QAAQ,CAAC,EAAE,CAAC;QACxC,gDAAgD;QAChD,KAAK,MAAM,WAAW,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;YACzC,IAAI,EAAE,CAAC,kBAAkB,CAAC,WAAW,CAAC,EAAE,CAAC;gBACvC,YAAY,GAAG,WAAW,CAAA;gBAC1B,MAAK;YACP,CAAC;iBAAM,IAAI,EAAE,CAAC,uBAAuB,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,kBAAkB,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC9F,YAAY,GAAG,WAAW,CAAC,IAAI,CAAA;gBAC/B,MAAK;YACP,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO,EAAE,CAAA;IACX,CAAC;IAED,MAAM,UAAU,GAAqB,EAAE,CAAA;IACvC,KAAK,MAAM,KAAK,IAAI,YAAY,CAAC,UAAU,EAAE,CAAC;QAC5C,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;QAC3C,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA;QAChE,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,aAAa,CAAA;QAEtC,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAA;IAC3C,CAAC;IAED,OAAO,UAAU,CAAA;AACnB,CAAC;AAED,SAAS,mBAAmB,CAAC,IAAa,EAAE,UAAyB;IACnE,MAAM,QAAQ,GAAG,UAAU,CAAC,WAAW,EAAE,CAAA;IACzC,MAAM,aAAa,GAAG,EAAE,CAAC,uBAAuB,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,CAAA;IAEpE,IAAI,CAAC,aAAa,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjD,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,8DAA8D;IAC9D,KAAK,IAAI,CAAC,GAAG,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACnD,MAAM,KAAK,GAAG,aAAa,CAAC,CAAC,CAAC,CAAA;QAC9B,MAAM,WAAW,GAAG,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAA;QAE5D,IAAI,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YAClC,sBAAsB;YACtB,OAAO,WAAW;iBACf,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,qBAAqB;iBAC5C,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAG,oBAAoB;iBAC3C,KAAK,CAAC,IAAI,CAAC;iBACX,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,kCAAkC;iBAChF,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,qBAAqB;iBACrD,IAAI,CAAC,GAAG,CAAC;iBACT,IAAI,EAAE,CAAA;QACX,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,SAAS,yBAAyB,CAAC,QAAqB,EAAE,UAAyB;IACjF,MAAM,KAAK,GAAqB,EAAE,CAAA;IAElC,IAAI,EAAE,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE,CAAC;QACnC,KAAK,MAAM,MAAM,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;YACtC,IAAI,EAAE,CAAC,mBAAmB,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;gBAClD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;gBAC5C,MAAM,QAAQ,GAAG,CAAC,CAAC,MAAM,CAAC,aAAa,CAAA;gBACvC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA;gBAElE,MAAM,OAAO,GAAmB,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAA;gBAExD,qCAAqC;gBACrC,MAAM,WAAW,GAAG,mBAAmB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;gBAC3D,IAAI,WAAW,EAAE,CAAC;oBAChB,OAAO,CAAC,WAAW,GAAG,WAAW,CAAA;gBACnC,CAAC;gBAED,uEAAuE;gBACvE,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;oBAChB,IAAI,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;wBAChC,8BAA8B;wBAC9B,MAAM,MAAM,GAAG,yBAAyB,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;wBACjE,OAAO,CAAC,UAAU,GAAG,MAAM,CAAA;oBAC7B,CAAC;yBAAM,CAAC;wBACN,oDAAoD;wBACpD,MAAM,WAAW,GAAG,uBAAuB,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;wBACpE,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;4BAC3B,OAAO,CAAC,UAAU,GAAG,WAAW,CAAA;wBAClC,CAAC;oBACH,CAAC;gBACH,CAAC;gBAED,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YACrB,CAAC;QACH,CAAC;IACH,CAAC;SAAM,IAAI,EAAE,CAAC,mBAAmB,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5C,kDAAkD;QAClD,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;QAEtD,4BAA4B;QAC5B,MAAM,QAAQ,GAAG,mBAAmB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;QAC1D,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO,gCAAgC,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAA;QAC/D,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAA;AACd,CAAC;AAED,SAAS,uBAAuB,CAAC,QAAqB,EAAE,UAAyB;IAC/E,4CAA4C;IAC5C,IAAI,EAAE,CAAC,eAAe,CAAC,QAAQ,CAAC,EAAE,CAAC;QACjC,OAAO,uBAAuB,CAAC,QAAQ,CAAC,WAAW,EAAE,UAAU,CAAC,CAAA;IAClE,CAAC;IAED,6BAA6B;IAC7B,IAAI,EAAE,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE,CAAC;QACnC,OAAO,yBAAyB,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAA;IACxD,CAAC;IAED,yBAAyB;IACzB,IAAI,EAAE,CAAC,mBAAmB,CAAC,QAAQ,CAAC,EAAE,CAAC;QACrC,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;QACtD,MAAM,QAAQ,GAAG,mBAAmB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;QAC1D,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO,gCAAgC,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAA;QAC/D,CAAC;IACH,CAAC;IAED,OAAO,EAAE,CAAA;AACX,CAAC;AAED,SAAS,gCAAgC,CACvC,IAAuD,EACvD,UAAyB;IAEzB,MAAM,KAAK,GAAqB,EAAE,CAAA;IAElC,IAAI,EAAE,CAAC,sBAAsB,CAAC,IAAI,CAAC,EAAE,CAAC;QACpC,qDAAqD;QACrD,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,KAAK,MAAM,cAAc,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;gBAClD,IAAI,cAAc,CAAC,KAAK,KAAK,EAAE,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC;oBAC1D,KAAK,MAAM,QAAQ,IAAI,cAAc,CAAC,KAAK,EAAE,CAAC;wBAC5C,MAAM,QAAQ,GAAG,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;wBACxD,MAAM,QAAQ,GAAG,mBAAmB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;wBAC1D,IAAI,QAAQ,EAAE,CAAC;4BACb,MAAM,cAAc,GAAG,gCAAgC,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAA;4BAC7E,KAAK,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,CAAA;wBAC/B,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,+DAA+D;QAC/D,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAClC,IAAI,EAAE,CAAC,mBAAmB,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;gBAClD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;gBAC5C,MAAM,QAAQ,GAAG,CAAC,CAAC,MAAM,CAAC,aAAa,CAAA;gBACvC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA;gBAElE,MAAM,OAAO,GAAmB,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAA;gBAExD,qCAAqC;gBACrC,MAAM,WAAW,GAAG,mBAAmB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;gBAC3D,IAAI,WAAW,EAAE,CAAC;oBAChB,OAAO,CAAC,WAAW,GAAG,WAAW,CAAA;gBACnC,CAAC;gBAED,uEAAuE;gBACvE,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;oBAChB,IAAI,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;wBAChC,8BAA8B;wBAC9B,MAAM,MAAM,GAAG,yBAAyB,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;wBACjE,OAAO,CAAC,UAAU,GAAG,MAAM,CAAA;oBAC7B,CAAC;yBAAM,CAAC;wBACN,oDAAoD;wBACpD,MAAM,WAAW,GAAG,uBAAuB,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;wBACpE,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;4BAC3B,OAAO,CAAC,UAAU,GAAG,WAAW,CAAA;wBAClC,CAAC;oBACH,CAAC;gBACH,CAAC;gBAED,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YACrB,CAAC;QACH,CAAC;IACH,CAAC;SAAM,IAAI,EAAE,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACxD,IAAI,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACpC,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACvC,IAAI,EAAE,CAAC,mBAAmB,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;oBAClD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;oBAC5C,MAAM,QAAQ,GAAG,CAAC,CAAC,MAAM,CAAC,aAAa,CAAA;oBACvC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA;oBAElE,MAAM,OAAO,GAAmB,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAA;oBAExD,qCAAqC;oBACrC,MAAM,WAAW,GAAG,mBAAmB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;oBAC3D,IAAI,WAAW,EAAE,CAAC;wBAChB,OAAO,CAAC,WAAW,GAAG,WAAW,CAAA;oBACnC,CAAC;oBAED,uEAAuE;oBACvE,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;wBAChB,IAAI,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;4BAChC,8BAA8B;4BAC9B,MAAM,MAAM,GAAG,yBAAyB,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;4BACjE,OAAO,CAAC,UAAU,GAAG,MAAM,CAAA;wBAC7B,CAAC;6BAAM,CAAC;4BACN,oDAAoD;4BACpD,MAAM,WAAW,GAAG,uBAAuB,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;4BACpE,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gCAC3B,OAAO,CAAC,UAAU,GAAG,WAAW,CAAA;4BAClC,CAAC;wBACH,CAAC;oBACH,CAAC;oBAED,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;gBACrB,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAA;AACd,CAAC;AAED,SAAS,mBAAmB,CAAC,UAAyB,EAAE,QAAgB;IACtE,IAAI,MAAM,GAA6D,IAAI,CAAA;IAE3E,SAAS,KAAK,CAAC,IAAa;QAC1B,IAAI,CAAC,EAAE,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACxG,MAAM,GAAG,IAAI,CAAA;QACf,CAAC;QACD,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;IAC9B,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,CAAA;IACjB,OAAO,MAAM,CAAA;AACf,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,OAAe,EAAE,WAAmB,YAAY;IACrF,MAAM,UAAU,GAAG,EAAE,CAAC,gBAAgB,CACpC,QAAQ,EACR,OAAO,EACP,EAAE,CAAC,YAAY,CAAC,MAAM,EACtB,IAAI,CACL,CAAA;IAED,0BAA0B;IAC1B,IAAI,aAAa,GAAwD,IAAI,CAAA;IAE7E,SAAS,KAAK,CAAC,IAAa;QAC1B,qBAAqB;QACrB,IAAI,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;YACxD,aAAa,GAAG,IAAI,CAAA;QACtB,CAAC;QACD,0DAA0D;aACrD,IAAI,EAAE,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE,CAAC;YACxC,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,CAAA;YACnF,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,CAAA;YACrF,IAAI,SAAS,IAAI,UAAU,EAAE,CAAC;gBAC5B,aAAa,GAAG,IAAI,CAAA;YACtB,CAAC;QACH,CAAC;QAED,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;IAC9B,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,CAAA;IAEjB,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,OAAO,EAAE,CAAA;IACX,CAAC;IAED,2CAA2C;IAC3C,IAAI,IAAI,GAA6E,IAAI,CAAA;IAEzF,IAAI,EAAE,CAAC,qBAAqB,CAAC,aAAa,CAAC,EAAE,CAAC;QAC5C,IAAI,GAAG,aAAa,CAAA;IACtB,CAAC;SAAM,CAAC;QACN,2BAA2B;QAC3B,MAAM,gBAAgB,GAAG,aAAoC,CAAA;QAC7D,MAAM,IAAI,GAAG,gBAAgB,CAAC,UAAU,CAAA;QACxC,IAAI,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9D,IAAI,GAAG,IAAI,CAAA;QACb,CAAC;aAAM,IAAI,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;YACjC,8DAA8D;YAC9D,MAAM,QAAQ,GAAG,uBAAuB,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;YAC/D,IAAI,QAAQ,EAAE,CAAC;gBACb,IAAI,GAAG,QAAQ,CAAA;YACjB,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9D,OAAO,EAAE,CAAA;IACX,CAAC;IAED,iCAAiC;IACjC,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;IACrC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;QACrB,OAAO,EAAE,CAAA;IACX,CAAC;IAED,OAAO,yBAAyB,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;AAC/D,CAAC;AAED,SAAS,uBAAuB,CAAC,UAAyB,EAAE,IAAY;IACtE,IAAI,MAAM,GAA6E,IAAI,CAAA;IAE3F,SAAS,KAAK,CAAC,IAAa;QAC1B,IAAI,EAAE,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,EAAE,CAAC;YAC/D,MAAM,GAAG,IAAI,CAAA;QACf,CAAC;aAAM,IAAI,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC;YACxC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE,CAAC;gBACrD,IAAI,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;oBAC9E,IAAI,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,oBAAoB,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;wBACtF,MAAM,GAAG,IAAI,CAAC,WAAW,CAAA;oBAC3B,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QACD,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;IAC9B,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,CAAA;IACjB,OAAO,MAAM,CAAA;AACf,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,QAAgB;IACzD,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;QACjD,OAAO,sBAAsB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;IAClD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,+BAA+B,QAAQ,GAAG,EAAE,KAAK,CAAC,CAAA;QAChE,OAAO,EAAE,CAAA;IACX,CAAC;AACH,CAAC"}
@@ -98,12 +98,17 @@ export interface Props {
98
98
  export default (props: Props) => <div>Complex</div>
99
99
  `;
100
100
  const props = extractPropsFromSource(source);
101
- // callback is filtered out because it's a function type
102
- assert.strictEqual(props.length, 2);
101
+ assert.strictEqual(props.length, 3);
103
102
  assert.strictEqual(props[0].name, 'items');
104
103
  assert.strictEqual(props[0].type, 'string[]');
105
- assert.strictEqual(props[1].name, 'config');
106
- assert.strictEqual(props[1].type, '{ key: string }');
104
+ assert.strictEqual(props[1].name, 'callback');
105
+ assert.strictEqual(props[1].type, '(x: number) => void');
106
+ assert.strictEqual(props[1].parameters?.[0].name, 'x');
107
+ assert.strictEqual(props[1].parameters?.[0].type, 'number');
108
+ assert.strictEqual(props[2].name, 'config');
109
+ assert.strictEqual(props[2].type, '{ key: string }');
110
+ assert.strictEqual(props[2].properties?.[0].name, 'key');
111
+ assert.strictEqual(props[2].properties?.[0].type, 'string');
107
112
  });
108
113
  test('extracts props from default export parameter type (multiple types exported)', () => {
109
114
  const source = `
@@ -137,10 +142,10 @@ export default function Button({ label, onClick, disabled }: ButtonProps) {
137
142
  }
138
143
  `;
139
144
  const props = extractPropsFromSource(source);
140
- // onClick is filtered out because it's a function type
141
- assert.strictEqual(props.length, 2);
145
+ assert.strictEqual(props.length, 3);
142
146
  assert.deepStrictEqual(props[0], { name: 'label', type: 'string', optional: false });
143
- assert.deepStrictEqual(props[1], { name: 'disabled', type: 'boolean', optional: true });
147
+ assert.deepStrictEqual(props[1], { name: 'onClick', type: '() => void', parameters: [], optional: false });
148
+ assert.deepStrictEqual(props[2], { name: 'disabled', type: 'boolean', optional: true });
144
149
  });
145
150
  test('extracts JSDoc comments from interface props', () => {
146
151
  const source = `
@@ -245,7 +250,7 @@ export default ({ commented }: Props) => <div>{commented}</div>
245
250
  assert.strictEqual(props[0].description, 'Has a comment');
246
251
  assert.strictEqual(props[1].description, undefined);
247
252
  });
248
- test('filters out function-typed props', () => {
253
+ test('does not filter out function-typed props', () => {
249
254
  const source = `
250
255
  export interface Props {
251
256
  /**
@@ -253,11 +258,11 @@ export interface Props {
253
258
  */
254
259
  name: string
255
260
  /**
256
- * A function prop (should be filtered)
261
+ * A function prop
257
262
  */
258
263
  onClick: () => void
259
264
  /**
260
- * Another function (should be filtered)
265
+ * Another function
261
266
  */
262
267
  onHover: (x: number) => void
263
268
  }
@@ -265,9 +270,16 @@ export interface Props {
265
270
  export default ({ name }: Props) => <div>{name}</div>
266
271
  `;
267
272
  const props = extractPropsFromSource(source);
268
- assert.strictEqual(props.length, 1);
273
+ assert.strictEqual(props.length, 3);
269
274
  assert.strictEqual(props[0].name, 'name');
270
275
  assert.strictEqual(props[0].description, 'A regular string prop');
276
+ assert.strictEqual(props[1].name, 'onClick');
277
+ assert.strictEqual(props[1].description, 'A function prop');
278
+ assert.strictEqual(props[1].parameters?.length, 0);
279
+ assert.strictEqual(props[2].name, 'onHover');
280
+ assert.strictEqual(props[2].description, 'Another function');
281
+ assert.strictEqual(props[2].parameters?.[0].name, 'x');
282
+ assert.strictEqual(props[2].parameters?.[0].type, 'number');
271
283
  });
272
284
  test('extracts nested properties with descriptions', () => {
273
285
  const source = `
@@ -301,5 +313,50 @@ export default ({ config }: Props) => <div>{config.apiKey}</div>
301
313
  assert.strictEqual(props[0].properties?.[1].name, 'timeout');
302
314
  assert.strictEqual(props[0].properties?.[1].description, 'Timeout in milliseconds');
303
315
  });
316
+ test('extracts inherited props when interface extends base interface', () => {
317
+ const source = `
318
+ export interface BaseProps {
319
+ /**
320
+ * Base property: ID
321
+ */
322
+ id: string
323
+ /**
324
+ * Base property: Name
325
+ */
326
+ name: string
327
+ }
328
+
329
+ export interface Props extends BaseProps {
330
+ /**
331
+ * Extended property: Title
332
+ */
333
+ title: string
334
+ /**
335
+ * Extended property: Count
336
+ */
337
+ count?: number
338
+ }
339
+
340
+ export default ({ id, name, title }: Props) => <div>{title}</div>
341
+ `;
342
+ const props = extractPropsFromSource(source);
343
+ assert.strictEqual(props.length, 4);
344
+ assert.strictEqual(props[0].name, 'id');
345
+ assert.strictEqual(props[0].type, 'string');
346
+ assert.strictEqual(props[0].optional, false);
347
+ assert.strictEqual(props[0].description, 'Base property: ID');
348
+ assert.strictEqual(props[1].name, 'name');
349
+ assert.strictEqual(props[1].type, 'string');
350
+ assert.strictEqual(props[1].optional, false);
351
+ assert.strictEqual(props[1].description, 'Base property: Name');
352
+ assert.strictEqual(props[2].name, 'title');
353
+ assert.strictEqual(props[2].type, 'string');
354
+ assert.strictEqual(props[2].optional, false);
355
+ assert.strictEqual(props[2].description, 'Extended property: Title');
356
+ assert.strictEqual(props[3].name, 'count');
357
+ assert.strictEqual(props[3].type, 'number');
358
+ assert.strictEqual(props[3].optional, true);
359
+ assert.strictEqual(props[3].description, 'Extended property: Count');
360
+ });
304
361
  });
305
362
  //# sourceMappingURL=extractProps.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"extractProps.test.js","sourceRoot":"","sources":["../src/extractProps.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"extractProps.test.js","sourceRoot":"","sources":["../src/extractProps.test.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,8 @@ interface PropDefinition {
7
7
  name: string
8
8
  type: string
9
9
  optional: boolean
10
+ parameters?: PropDefinition[]
11
+ properties?: PropDefinition[]
10
12
  }
11
13
 
12
14
  const STORAGE_KEY = 'blockparty-state'
@@ -37,7 +39,28 @@ const getDefaultValue = (type: string, optional: boolean) => {
37
39
  return ''
38
40
  }
39
41
 
40
- const parseValue = (value: string, type: string, propDefs: PropDefinition[]) => {
42
+ const parseValue = (value: string, type: string, propDefs: PropDefinition[], propDef?: PropDefinition) => {
43
+ // For function types, create a function from the body string (even if empty)
44
+ if (propDef?.parameters) {
45
+ if (!value) {
46
+ // Return empty function for empty value
47
+ return () => {}
48
+ }
49
+ try {
50
+ // Extract parameter names
51
+ const paramNames = propDef.parameters.map(p => p.name).join(', ')
52
+ // Create function from the body string
53
+ // eslint-disable-next-line no-new-func
54
+ const fn = new Function(paramNames, `return ${value}`)
55
+ console.log('Created function for', propDef.name, 'with body:', value, 'result:', fn)
56
+ return fn
57
+ } catch (error) {
58
+ console.error('Failed to create function:', error)
59
+ return () => {}
60
+ }
61
+ }
62
+
63
+ // After handling functions, check for empty values
41
64
  if (!value) return value
42
65
 
43
66
  // For React.ReactNode, parse and render the block(s) - always an array
@@ -56,7 +79,7 @@ const parseValue = (value: string, type: string, propDefs: PropDefinition[]) =>
56
79
  const parsedBlockProps = Object.fromEntries(
57
80
  Object.entries(blockProps).map(([key, val]) => {
58
81
  const propDef = block.propDefinitions.find((p: PropDefinition) => p.name === key)
59
- return [key, propDef ? parseValue(val as string, propDef.type, block.propDefinitions) : val]
82
+ return [key, propDef ? parseValue(val as string, propDef.type, block.propDefinitions, propDef) : val]
60
83
  })
61
84
  )
62
85
  return <block.Component key={index} {...parsedBlockProps} />
@@ -72,11 +95,35 @@ const parseValue = (value: string, type: string, propDefs: PropDefinition[]) =>
72
95
 
73
96
  // For complex types, try to parse as JSON
74
97
  if (isComplexType(type)) {
75
- try {
76
- return JSON.parse(value)
77
- } catch {
78
- return value
98
+ let parsed: any
99
+
100
+ // Handle both string JSON and already-parsed objects
101
+ if (typeof value === 'string') {
102
+ try {
103
+ parsed = JSON.parse(value)
104
+ } catch {
105
+ return value
106
+ }
107
+ } else {
108
+ parsed = value
109
+ }
110
+
111
+ // If we have property definitions and the parsed value is an object,
112
+ // recursively parse nested properties (including function types)
113
+ if (propDef?.properties && parsed && typeof parsed === 'object' && !Array.isArray(parsed)) {
114
+ const result: Record<string, any> = {}
115
+ for (const [key, val] of Object.entries(parsed)) {
116
+ const nestedPropDef = propDef.properties.find(p => p.name === key)
117
+ if (nestedPropDef) {
118
+ result[key] = parseValue(val as string, nestedPropDef.type, propDefs, nestedPropDef)
119
+ } else {
120
+ result[key] = val
121
+ }
122
+ }
123
+ return result
79
124
  }
125
+
126
+ return parsed
80
127
  }
81
128
 
82
129
  // For simple number type, parse as number
@@ -164,7 +211,7 @@ export function App() {
164
211
  const parsedProps = Object.fromEntries(
165
212
  Object.entries(props).map(([key, value]) => {
166
213
  const propDef = propDefinitions.find((p: PropDefinition) => p.name === key)
167
- return [key, propDef ? parseValue(value as string, propDef.type, propDefinitions) : value]
214
+ return [key, propDef ? parseValue(value as string, propDef.type, propDefinitions, propDef) : value]
168
215
  })
169
216
  )
170
217
 
@@ -10,6 +10,7 @@ interface PropDefinition {
10
10
  type: string
11
11
  optional: boolean
12
12
  properties?: PropDefinition[]
13
+ parameters?: PropDefinition[]
13
14
  description?: string
14
15
  }
15
16
 
@@ -27,11 +28,19 @@ interface PropsEditorProps {
27
28
  availableBlocks?: RuntimeBlockInfo[]
28
29
  }
29
30
 
31
+ const isFunctionType = (type: string): boolean => {
32
+ return type.includes('=>') || type.startsWith('(') && type.includes(')')
33
+ }
34
+
30
35
  const isComplexType = (type: string) => {
31
36
  // String unions like "foo" | "bar" are not complex, they get a dropdown
32
37
  if (isStringUnion(type)) {
33
38
  return false
34
39
  }
40
+ // Function types are not complex either - they get a special editor
41
+ if (isFunctionType(type)) {
42
+ return false
43
+ }
35
44
  return type.includes('[') || type.includes('{') || type.includes('|')
36
45
  }
37
46
 
@@ -558,6 +567,52 @@ function ReactNodeEditor({ value, onChange, optional, availableBlocks }: ReactNo
558
567
  )
559
568
  }
560
569
 
570
+ interface FunctionEditorProps {
571
+ parameters: PropDefinition[]
572
+ value: string
573
+ onChange: (value: string) => void
574
+ }
575
+
576
+ function FunctionEditor({ parameters, value, onChange }: FunctionEditorProps) {
577
+ // Build the function signature from parameters
578
+ const paramSignature = parameters.map(p =>
579
+ `${p.name}${p.optional ? '?' : ''}: ${p.type}`
580
+ ).join(', ')
581
+
582
+ return (
583
+ <div>
584
+ <div style={{
585
+ fontSize: '11px',
586
+ fontFamily: 'monospace',
587
+ color: '#666',
588
+ marginBottom: '4px',
589
+ padding: '4px 8px',
590
+ background: '#f5f5f5',
591
+ borderRadius: '3px',
592
+ border: '1px solid #e0e0e0'
593
+ }}>
594
+ ({paramSignature}) =&gt;
595
+ </div>
596
+ <textarea
597
+ value={value || ''}
598
+ onChange={(e) => onChange(e.target.value)}
599
+ placeholder="Enter function body (without braces)"
600
+ style={{
601
+ width: '100%',
602
+ padding: '6px 8px',
603
+ border: '1px solid #ddd',
604
+ borderRadius: '4px',
605
+ fontSize: '12px',
606
+ fontFamily: 'monospace',
607
+ boxSizing: 'border-box',
608
+ minHeight: '60px',
609
+ resize: 'vertical'
610
+ }}
611
+ />
612
+ </div>
613
+ )
614
+ }
615
+
561
616
  interface ItemEditorProps {
562
617
  propDef: PropDefinition
563
618
  value: any
@@ -565,7 +620,18 @@ interface ItemEditorProps {
565
620
  availableBlocks?: RuntimeBlockInfo[]
566
621
  }
567
622
 
568
- function ItemEditor({ value, onChange, propDef: { type, properties, optional}, availableBlocks = [] }: ItemEditorProps) {
623
+ function ItemEditor({ value, onChange, propDef: { type, properties, parameters, optional}, availableBlocks = [] }: ItemEditorProps) {
624
+ // For function types, show function editor
625
+ if (parameters && parameters.length >= 0) {
626
+ return (
627
+ <FunctionEditor
628
+ parameters={parameters}
629
+ value={value || ''}
630
+ onChange={onChange}
631
+ />
632
+ )
633
+ }
634
+
569
635
  // For React.ReactNode, show block selector
570
636
  if (type === 'React.ReactNode' || type === 'ReactNode') {
571
637
  return (
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "blockparty",
3
- "version": "0.1.4",
3
+ "version": "0.2.1",
4
4
  "description": "Easy, zero-config, convention-based React components.",
5
5
  "repository": "github:chkn/blockparty",
6
6
  "type": "module",