@alloy-js/csharp 0.23.0-dev.5 → 0.23.0-dev.7

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 (211) hide show
  1. package/dist/dev/src/components/constructor/constructor.js +15 -6
  2. package/dist/dev/src/components/constructor/constructor.js.map +1 -1
  3. package/dist/dev/src/components/constructor/constructor.test.js +53 -4
  4. package/dist/dev/src/components/constructor/constructor.test.js.map +1 -1
  5. package/dist/dev/src/components/enum/declaration.js +14 -5
  6. package/dist/dev/src/components/enum/declaration.js.map +1 -1
  7. package/dist/dev/src/components/enum/declaration.test.js +40 -0
  8. package/dist/dev/src/components/enum/declaration.test.js.map +1 -1
  9. package/dist/dev/src/components/enum/member.js +13 -4
  10. package/dist/dev/src/components/enum/member.js.map +1 -1
  11. package/dist/dev/src/components/enum/member.test.js +42 -0
  12. package/dist/dev/src/components/enum/member.test.js.map +1 -1
  13. package/dist/dev/src/components/namespace/namespace.js +16 -22
  14. package/dist/dev/src/components/namespace/namespace.js.map +1 -1
  15. package/dist/dev/src/components/namespace/namespace.test.js +120 -33
  16. package/dist/dev/src/components/namespace/namespace.test.js.map +1 -1
  17. package/dist/dev/src/components/namespace-scopes.js +10 -3
  18. package/dist/dev/src/components/namespace-scopes.js.map +1 -1
  19. package/dist/dev/src/components/namespace.ref.test.js +69 -0
  20. package/dist/dev/src/components/namespace.ref.test.js.map +1 -1
  21. package/dist/src/components/constructor/constructor.d.ts +2 -0
  22. package/dist/src/components/constructor/constructor.d.ts.map +1 -1
  23. package/dist/src/components/constructor/constructor.js +6 -1
  24. package/dist/src/components/constructor/constructor.js.map +1 -1
  25. package/dist/src/components/constructor/constructor.test.js +33 -0
  26. package/dist/src/components/constructor/constructor.test.js.map +1 -1
  27. package/dist/src/components/enum/declaration.d.ts +2 -0
  28. package/dist/src/components/enum/declaration.d.ts.map +1 -1
  29. package/dist/src/components/enum/declaration.js +6 -1
  30. package/dist/src/components/enum/declaration.js.map +1 -1
  31. package/dist/src/components/enum/declaration.test.js +24 -0
  32. package/dist/src/components/enum/declaration.test.js.map +1 -1
  33. package/dist/src/components/enum/member.d.ts +4 -2
  34. package/dist/src/components/enum/member.d.ts.map +1 -1
  35. package/dist/src/components/enum/member.js +6 -1
  36. package/dist/src/components/enum/member.js.map +1 -1
  37. package/dist/src/components/enum/member.test.js +26 -0
  38. package/dist/src/components/enum/member.test.js.map +1 -1
  39. package/dist/src/components/namespace/namespace.d.ts.map +1 -1
  40. package/dist/src/components/namespace/namespace.js +11 -13
  41. package/dist/src/components/namespace/namespace.js.map +1 -1
  42. package/dist/src/components/namespace/namespace.test.js +61 -2
  43. package/dist/src/components/namespace/namespace.test.js.map +1 -1
  44. package/dist/src/components/namespace-scopes.d.ts +16 -0
  45. package/dist/src/components/namespace-scopes.d.ts.map +1 -1
  46. package/dist/src/components/namespace-scopes.js +8 -1
  47. package/dist/src/components/namespace-scopes.js.map +1 -1
  48. package/dist/src/components/namespace.ref.test.js +41 -0
  49. package/dist/src/components/namespace.ref.test.js.map +1 -1
  50. package/dist/tsconfig.tsbuildinfo +1 -1
  51. package/docs/api/components/AttributeList.md +34 -0
  52. package/docs/api/components/ClassDeclaration.md +104 -0
  53. package/docs/api/components/Constructor.md +55 -0
  54. package/docs/api/components/CsprojFile.md +34 -0
  55. package/docs/api/components/Declaration.md +32 -0
  56. package/docs/api/components/DocC.md +27 -0
  57. package/docs/api/components/DocCode.md +27 -0
  58. package/docs/api/components/DocComment.md +27 -0
  59. package/docs/api/components/DocDescription.md +27 -0
  60. package/docs/api/components/DocExample.md +27 -0
  61. package/docs/api/components/DocException.md +27 -0
  62. package/docs/api/components/DocFromMarkdown.md +27 -0
  63. package/docs/api/components/DocInclude.md +26 -0
  64. package/docs/api/components/DocList.md +26 -0
  65. package/docs/api/components/DocPara.md +27 -0
  66. package/docs/api/components/DocParam.md +28 -0
  67. package/docs/api/components/DocParamRef.md +25 -0
  68. package/docs/api/components/DocPermission.md +27 -0
  69. package/docs/api/components/DocRemarks.md +27 -0
  70. package/docs/api/components/DocReturns.md +27 -0
  71. package/docs/api/components/DocSee.md +30 -0
  72. package/docs/api/components/DocSeeAlso.md +29 -0
  73. package/docs/api/components/DocSummary.md +27 -0
  74. package/docs/api/components/DocTypeParam.md +28 -0
  75. package/docs/api/components/DocTypeParamRef.md +25 -0
  76. package/docs/api/components/DocValue.md +27 -0
  77. package/docs/api/components/DocWhen.md +27 -0
  78. package/docs/api/components/ElseClause.md +29 -0
  79. package/docs/api/components/ElseIfClause.md +30 -0
  80. package/docs/api/components/EnumDeclaration.md +76 -0
  81. package/docs/api/components/EnumMember.md +31 -0
  82. package/docs/api/components/Field.md +67 -0
  83. package/docs/api/components/IfStatement.md +30 -0
  84. package/docs/api/components/InterfaceDeclaration.md +82 -0
  85. package/docs/api/components/InterfaceMethod.md +68 -0
  86. package/docs/api/components/InterfaceProperty.md +78 -0
  87. package/docs/api/components/InvocationExpression.md +49 -0
  88. package/docs/api/components/LexicalScope.md +65 -0
  89. package/docs/api/components/Method.md +92 -0
  90. package/docs/api/components/MethodScope.md +65 -0
  91. package/docs/api/components/Name.md +19 -0
  92. package/docs/api/components/Namespace.md +35 -0
  93. package/docs/api/components/Parameter.md +58 -0
  94. package/docs/api/components/Parameters_2.md +27 -0
  95. package/docs/api/components/Property.md +110 -0
  96. package/docs/api/components/RecordDeclaration.md +84 -0
  97. package/docs/api/components/Reference.md +25 -0
  98. package/docs/api/components/Region.md +28 -0
  99. package/docs/api/components/SourceFile.md +45 -0
  100. package/docs/api/components/StructDeclaration.md +94 -0
  101. package/docs/api/components/UsingNamespaceDirective.md +25 -0
  102. package/docs/api/components/Usings.md +40 -0
  103. package/docs/api/components/VarDeclaration.md +74 -0
  104. package/docs/api/components/index.md +55 -0
  105. package/docs/api/functions/access.md +35 -0
  106. package/docs/api/functions/accessibilityFromProps.md +18 -0
  107. package/docs/api/functions/computeModifiersPrefix.md +20 -0
  108. package/docs/api/functions/createCSharpNamePolicy.md +17 -0
  109. package/docs/api/functions/createCSharpNamespaceScope.md +18 -0
  110. package/docs/api/functions/createClassScope.md +27 -0
  111. package/docs/api/functions/createFieldSymbol.md +43 -0
  112. package/docs/api/functions/createLibrary.md +19 -0
  113. package/docs/api/functions/createMethodScope.md +26 -0
  114. package/docs/api/functions/createMethodSymbol.md +34 -0
  115. package/docs/api/functions/createNamedTypeScope.md +27 -0
  116. package/docs/api/functions/createNamedTypeSymbol.md +35 -0
  117. package/docs/api/functions/createNamespaceSymbol.md +43 -0
  118. package/docs/api/functions/createParameterSymbol.md +45 -0
  119. package/docs/api/functions/createPropertySymbol.md +43 -0
  120. package/docs/api/functions/createTypeParameterSymbol.md +34 -0
  121. package/docs/api/functions/createVariableSymbol.md +43 -0
  122. package/docs/api/functions/getAccessModifier.md +18 -0
  123. package/docs/api/functions/getAsyncModifier.md +18 -0
  124. package/docs/api/functions/index.md +33 -0
  125. package/docs/api/functions/makeModifiers.md +18 -0
  126. package/docs/api/functions/nonAccessibilityFromProps.md +18 -0
  127. package/docs/api/functions/ref.md +18 -0
  128. package/docs/api/functions/useCSharpNamePolicy.md +17 -0
  129. package/docs/api/functions/useCSharpScope.md +17 -0
  130. package/docs/api/functions/useCsharpFormatOptions.md +18 -0
  131. package/docs/api/functions/useEnclosingNamespaceScope.md +17 -0
  132. package/docs/api/functions/useLexicalScope.md +17 -0
  133. package/docs/api/functions/useMethodScope.md +17 -0
  134. package/docs/api/functions/useNamedTypeScope.md +17 -0
  135. package/docs/api/functions/useNamespace.md +17 -0
  136. package/docs/api/functions/useSourceFileScope.md +17 -0
  137. package/docs/api/index.md +6 -0
  138. package/docs/api/types/AccessExpressionBuilder.md +11 -0
  139. package/docs/api/types/AccessExpressionPartProps.md +17 -0
  140. package/docs/api/types/AccessModifiers.md +13 -0
  141. package/docs/api/types/AttributeProps.md +8 -0
  142. package/docs/api/types/AttributesProp.md +5 -0
  143. package/docs/api/types/CSharpClassScope.md +9 -0
  144. package/docs/api/types/CSharpElements.md +5 -0
  145. package/docs/api/types/CSharpFormatOptions.md +5 -0
  146. package/docs/api/types/CSharpLexicalScope.md +10 -0
  147. package/docs/api/types/CSharpMethodScope.md +12 -0
  148. package/docs/api/types/CSharpNamedTypeScope.md +16 -0
  149. package/docs/api/types/CSharpNamespaceScope.md +10 -0
  150. package/docs/api/types/CSharpProjectSdk.md +5 -0
  151. package/docs/api/types/CSharpScope.md +12 -0
  152. package/docs/api/types/CSharpSourceFileScope.md +13 -0
  153. package/docs/api/types/CSharpSymbol.md +30 -0
  154. package/docs/api/types/CSharpSymbolKinds.md +5 -0
  155. package/docs/api/types/CSharpSymbolOptions.md +17 -0
  156. package/docs/api/types/ClassDescriptor.md +9 -0
  157. package/docs/api/types/ClassModifiers.md +10 -0
  158. package/docs/api/types/CreateMethodSymbolOptions.md +9 -0
  159. package/docs/api/types/CreateTypeParameterSymbolOptions.md +9 -0
  160. package/docs/api/types/DeclarationModifiers.md +8 -0
  161. package/docs/api/types/DeclaredAccessibility.md +5 -0
  162. package/docs/api/types/Descriptor.md +5 -0
  163. package/docs/api/types/DocCommentTagProps.md +7 -0
  164. package/docs/api/types/EnumDescriptor.md +9 -0
  165. package/docs/api/types/FieldDescriptor.md +9 -0
  166. package/docs/api/types/FieldModifiers.md +12 -0
  167. package/docs/api/types/GenericDescriptor.md +7 -0
  168. package/docs/api/types/InterfaceDescriptor.md +9 -0
  169. package/docs/api/types/InterfaceMethodModifiers.md +9 -0
  170. package/docs/api/types/InterfaceModifiers.md +7 -0
  171. package/docs/api/types/InterfacePropertyModifiers.md +9 -0
  172. package/docs/api/types/LexicalScopeProps.md +5 -0
  173. package/docs/api/types/LibraryFrom.md +7 -0
  174. package/docs/api/types/MemberDescriptor.md +16 -0
  175. package/docs/api/types/MethodDescriptor.md +10 -0
  176. package/docs/api/types/MethodKinds.md +5 -0
  177. package/docs/api/types/MethodModifiers.md +15 -0
  178. package/docs/api/types/MethodScopeProps.md +5 -0
  179. package/docs/api/types/MethodSymbol.md +13 -0
  180. package/docs/api/types/NamedTypeDescriptor.md +11 -0
  181. package/docs/api/types/NamedTypeSymbol.md +17 -0
  182. package/docs/api/types/NamedTypeSymbolKind.md +5 -0
  183. package/docs/api/types/NamedTypeTypeKind.md +5 -0
  184. package/docs/api/types/NamespaceDescriptor.md +8 -0
  185. package/docs/api/types/NamespaceSymbol.md +16 -0
  186. package/docs/api/types/NamespaceSymbolOptions.md +9 -0
  187. package/docs/api/types/NonAccessModifiers.md +13 -0
  188. package/docs/api/types/PropertyDescriptor_2.md +9 -0
  189. package/docs/api/types/PropertyModifiers.md +17 -0
  190. package/docs/api/types/RecordDescriptor.md +9 -0
  191. package/docs/api/types/RecordModifiers.md +7 -0
  192. package/docs/api/types/ResolveDescriptor.md +7 -0
  193. package/docs/api/types/StructDescriptor.md +9 -0
  194. package/docs/api/types/StructModifiers.md +10 -0
  195. package/docs/api/types/TypeParameterProps.md +11 -0
  196. package/docs/api/types/VarModifiers.md +8 -0
  197. package/docs/api/types/index.md +62 -0
  198. package/docs/api/variables/Attribute.md +21 -0
  199. package/docs/api/variables/index.md +3 -0
  200. package/package.json +5 -5
  201. package/src/components/constructor/constructor.test.tsx +27 -0
  202. package/src/components/constructor/constructor.tsx +5 -0
  203. package/src/components/enum/declaration.test.tsx +20 -0
  204. package/src/components/enum/declaration.tsx +4 -0
  205. package/src/components/enum/member.test.tsx +21 -0
  206. package/src/components/enum/member.tsx +5 -0
  207. package/src/components/namespace/namespace.test.tsx +42 -1
  208. package/src/components/namespace/namespace.tsx +16 -8
  209. package/src/components/namespace-scopes.tsx +25 -1
  210. package/src/components/namespace.ref.test.tsx +29 -0
  211. package/temp/api.json +85 -5
@@ -1,9 +1,13 @@
1
1
  import { TestNamespace } from "#test/utils.jsx";
2
- import { Output } from "@alloy-js/core";
2
+ import { Output, refkey } from "@alloy-js/core";
3
3
  import { d } from "@alloy-js/core/testing";
4
4
  import { expect, it } from "vitest";
5
+ import { createCSharpNamePolicy } from "../../name-policy.js";
5
6
  import { ClassDeclaration } from "../class/declaration.jsx";
7
+ import { Constructor } from "../constructor/constructor.jsx";
8
+ import { Field } from "../field/field.jsx";
6
9
  import { SourceFile } from "../source-file/source-file.jsx";
10
+ import { StructDeclaration } from "../struct/declaration.jsx";
7
11
  import { Namespace } from "./namespace.jsx";
8
12
 
9
13
  it("defines multiple namespaces and source files with unique content", () => {
@@ -141,3 +145,40 @@ it("define nested namespace in sourcefile", () => {
141
145
  }
142
146
  `);
143
147
  });
148
+
149
+ it("contains a struct with a private field initialized by a constructor", () => {
150
+ const fieldRefkey = refkey();
151
+ const paramRefkey = refkey();
152
+
153
+ const tree = (
154
+ <Output namePolicy={createCSharpNamePolicy()}>
155
+ <SourceFile path="MyStruct.cs">
156
+ <Namespace name="TestNamespace.Test">
157
+ <StructDeclaration public name="MyStruct">
158
+ <Field private name="value" type="int" refkey={fieldRefkey} />
159
+ <hbr />
160
+ <Constructor
161
+ public
162
+ parameters={[{ name: "value", type: "int", refkey: paramRefkey }]}
163
+ >
164
+ {fieldRefkey} = {paramRefkey};
165
+ </Constructor>
166
+ </StructDeclaration>
167
+ </Namespace>
168
+ </SourceFile>
169
+ </Output>
170
+ );
171
+
172
+ expect(tree).toRenderTo(d`
173
+ namespace TestNamespace.Test {
174
+ public struct MyStruct
175
+ {
176
+ private int _value;
177
+ public MyStruct(int value)
178
+ {
179
+ _value = value;
180
+ }
181
+ }
182
+ }
183
+ `);
184
+ });
@@ -1,9 +1,12 @@
1
1
  import { Block, Namekey, Refkey } from "@alloy-js/core";
2
2
  import { Children } from "@alloy-js/core/jsx-runtime";
3
- import { NamespaceContext } from "../../contexts/namespace.js";
3
+ import {
4
+ NamespaceContext,
5
+ useNamespaceContext,
6
+ } from "../../contexts/namespace.js";
4
7
  import { useSourceFileScope } from "../../scopes/source-file.js";
5
8
  import { createNamespaceSymbol } from "../../symbols/factories.js";
6
- import { NamespaceScope } from "../namespace-scopes.jsx";
9
+ import { NamespaceScopes } from "../namespace-scopes.jsx";
7
10
  import { NamespaceName } from "./namespace-name.jsx";
8
11
 
9
12
  export interface NamespaceProps {
@@ -25,16 +28,21 @@ export function Namespace(props: NamespaceProps) {
25
28
  </NamespaceContext.Provider>
26
29
  );
27
30
  } else {
31
+ const nsContext = useNamespaceContext();
32
+ const hasOuterNamespace = nsContext && !nsContext.symbol.isGlobal;
33
+
28
34
  sfScope.hasBlockNamespace = true;
29
35
  return (
30
36
  <>
31
- namespace <NamespaceName symbol={namespaceSymbol} relative />{" "}
37
+ namespace{" "}
38
+ <NamespaceName
39
+ symbol={namespaceSymbol}
40
+ relative={!!hasOuterNamespace}
41
+ />{" "}
32
42
  <Block>
33
- <NamespaceContext.Provider value={{ symbol: namespaceSymbol }}>
34
- <NamespaceScope symbol={namespaceSymbol}>
35
- {props.children}
36
- </NamespaceScope>
37
- </NamespaceContext.Provider>
43
+ <NamespaceScopes symbol={namespaceSymbol} stopAt={nsContext?.symbol}>
44
+ {props.children}
45
+ </NamespaceScopes>
38
46
  </Block>
39
47
  </>
40
48
  );
@@ -19,17 +19,41 @@ export function NamespaceScope(props: NamespaceScopProps) {
19
19
  }
20
20
 
21
21
  export interface NamespaceScopesProps {
22
+ /**
23
+ * Target namespace whose scope chain should be established for `children`.
24
+ *
25
+ * For dotted namespaces, this is typically the most nested segment symbol.
26
+ */
22
27
  symbol: NamespaceSymbol;
28
+
29
+ /**
30
+ * Optional ancestor namespace that is already in scope.
31
+ *
32
+ * Wrapping stops before this symbol to avoid duplicating existing namespace
33
+ * scopes in the reference chain.
34
+ */
35
+ stopAt?: NamespaceSymbol;
23
36
  children: Children;
24
37
  }
25
38
 
39
+ /**
40
+ * Applies `NamespaceScope` wrappers from `symbol` up through its enclosing
41
+ * namespaces until the root (or `stopAt`, when provided).
42
+ */
26
43
  export function NamespaceScopes(props: NamespaceScopesProps) {
27
44
  function wrapWithScope(symbol: NamespaceSymbol, children: Children) {
45
+ if (symbol === props.stopAt) {
46
+ return children;
47
+ }
48
+
28
49
  const scopeChildren = (
29
50
  <NamespaceScope symbol={symbol}>{children}</NamespaceScope>
30
51
  );
31
52
 
32
- if (symbol.enclosingNamespace) {
53
+ if (
54
+ symbol.enclosingNamespace &&
55
+ symbol.enclosingNamespace !== props.stopAt
56
+ ) {
33
57
  return wrapWithScope(symbol.enclosingNamespace, scopeChildren);
34
58
  }
35
59
 
@@ -162,3 +162,32 @@ it("can be referenced by refkey", () => {
162
162
  TestClass;
163
163
  `);
164
164
  });
165
+
166
+ it("references types across sibling namespaces under the same parent", () => {
167
+ const classRef = refkey();
168
+
169
+ const tree = (
170
+ <Output>
171
+ <SourceFile path="test.cs">
172
+ <Namespace name="Parent">
173
+ <Namespace name="Models">
174
+ <ClassDeclaration name="User" refkey={classRef} />
175
+ </Namespace>
176
+ <hbr />
177
+ <Namespace name="Services">{classRef};</Namespace>
178
+ </Namespace>
179
+ </SourceFile>
180
+ </Output>
181
+ );
182
+
183
+ expect(tree).toRenderTo(`
184
+ namespace Parent {
185
+ namespace Models {
186
+ class User;
187
+ }
188
+ namespace Services {
189
+ Models.User;
190
+ }
191
+ }
192
+ `);
193
+ });
package/temp/api.json CHANGED
@@ -2333,6 +2333,34 @@
2333
2333
  "endIndex": 2
2334
2334
  }
2335
2335
  },
2336
+ {
2337
+ "kind": "PropertySignature",
2338
+ "canonicalReference": "@alloy-js/csharp!ConstructorProps#doc:member",
2339
+ "docComment": "/**\n * Doc comment\n */\n",
2340
+ "excerptTokens": [
2341
+ {
2342
+ "kind": "Content",
2343
+ "text": "doc?: "
2344
+ },
2345
+ {
2346
+ "kind": "Reference",
2347
+ "text": "Children",
2348
+ "canonicalReference": "@alloy-js/core!Children:type"
2349
+ },
2350
+ {
2351
+ "kind": "Content",
2352
+ "text": ";"
2353
+ }
2354
+ ],
2355
+ "isReadonly": false,
2356
+ "isOptional": true,
2357
+ "releaseTag": "Public",
2358
+ "name": "doc",
2359
+ "propertyTypeTokenRange": {
2360
+ "startIndex": 1,
2361
+ "endIndex": 2
2362
+ }
2363
+ },
2336
2364
  {
2337
2365
  "kind": "PropertySignature",
2338
2366
  "canonicalReference": "@alloy-js/csharp!ConstructorProps#parameters:member",
@@ -8184,6 +8212,34 @@
8184
8212
  "endIndex": 2
8185
8213
  }
8186
8214
  },
8215
+ {
8216
+ "kind": "PropertySignature",
8217
+ "canonicalReference": "@alloy-js/csharp!EnumDeclarationProps#doc:member",
8218
+ "docComment": "/**\n * Doc comment\n */\n",
8219
+ "excerptTokens": [
8220
+ {
8221
+ "kind": "Content",
8222
+ "text": "doc?: "
8223
+ },
8224
+ {
8225
+ "kind": "Reference",
8226
+ "text": "Children",
8227
+ "canonicalReference": "@alloy-js/core!Children:type"
8228
+ },
8229
+ {
8230
+ "kind": "Content",
8231
+ "text": ";"
8232
+ }
8233
+ ],
8234
+ "isReadonly": false,
8235
+ "isOptional": true,
8236
+ "releaseTag": "Public",
8237
+ "name": "doc",
8238
+ "propertyTypeTokenRange": {
8239
+ "startIndex": 1,
8240
+ "endIndex": 2
8241
+ }
8242
+ },
8187
8243
  {
8188
8244
  "kind": "PropertySignature",
8189
8245
  "canonicalReference": "@alloy-js/csharp!EnumDeclarationProps#name:member",
@@ -8359,10 +8415,6 @@
8359
8415
  "kind": "Content",
8360
8416
  "text": "): "
8361
8417
  },
8362
- {
8363
- "kind": "Content",
8364
- "text": "import(\"@alloy-js/core\")."
8365
- },
8366
8418
  {
8367
8419
  "kind": "Reference",
8368
8420
  "text": "Children",
@@ -8376,7 +8428,7 @@
8376
8428
  "fileUrlPath": "src/components/enum/member.tsx",
8377
8429
  "returnTypeTokenRange": {
8378
8430
  "startIndex": 3,
8379
- "endIndex": 5
8431
+ "endIndex": 4
8380
8432
  },
8381
8433
  "releaseTag": "Public",
8382
8434
  "overloadIndex": 1,
@@ -8407,6 +8459,34 @@
8407
8459
  "name": "EnumMemberProps",
8408
8460
  "preserveMemberOrder": false,
8409
8461
  "members": [
8462
+ {
8463
+ "kind": "PropertySignature",
8464
+ "canonicalReference": "@alloy-js/csharp!EnumMemberProps#doc:member",
8465
+ "docComment": "/**\n * Doc comment\n */\n",
8466
+ "excerptTokens": [
8467
+ {
8468
+ "kind": "Content",
8469
+ "text": "doc?: "
8470
+ },
8471
+ {
8472
+ "kind": "Reference",
8473
+ "text": "Children",
8474
+ "canonicalReference": "@alloy-js/core!Children:type"
8475
+ },
8476
+ {
8477
+ "kind": "Content",
8478
+ "text": ";"
8479
+ }
8480
+ ],
8481
+ "isReadonly": false,
8482
+ "isOptional": true,
8483
+ "releaseTag": "Public",
8484
+ "name": "doc",
8485
+ "propertyTypeTokenRange": {
8486
+ "startIndex": 1,
8487
+ "endIndex": 2
8488
+ }
8489
+ },
8410
8490
  {
8411
8491
  "kind": "PropertySignature",
8412
8492
  "canonicalReference": "@alloy-js/csharp!EnumMemberProps#name:member",