@powerlines/plugin-alloy 0.25.30 → 0.25.32

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 (74) hide show
  1. package/dist/_virtual/_rolldown/runtime.mjs +3 -0
  2. package/dist/core/components/output.cjs +12 -7
  3. package/dist/core/components/output.mjs +12 -7
  4. package/dist/core/components/output.mjs.map +1 -1
  5. package/dist/core/components/single-line-comment.cjs +5 -8
  6. package/dist/core/components/single-line-comment.mjs +5 -8
  7. package/dist/core/components/single-line-comment.mjs.map +1 -1
  8. package/dist/core/components/source-file.cjs +8 -7
  9. package/dist/core/components/source-file.mjs +8 -7
  10. package/dist/core/components/source-file.mjs.map +1 -1
  11. package/dist/core/components/spacing.cjs +5 -6
  12. package/dist/core/components/spacing.mjs +5 -6
  13. package/dist/core/components/spacing.mjs.map +1 -1
  14. package/dist/markdown/components/front-matter.cjs +12 -9
  15. package/dist/markdown/components/front-matter.mjs +12 -9
  16. package/dist/markdown/components/front-matter.mjs.map +1 -1
  17. package/dist/markdown/components/markdown-file.cjs +57 -41
  18. package/dist/markdown/components/markdown-file.mjs +57 -41
  19. package/dist/markdown/components/markdown-file.mjs.map +1 -1
  20. package/dist/markdown/components/markdown-table.cjs +31 -20
  21. package/dist/markdown/components/markdown-table.mjs +31 -20
  22. package/dist/markdown/components/markdown-table.mjs.map +1 -1
  23. package/dist/render.cjs +10 -4
  24. package/dist/render.mjs +10 -4
  25. package/dist/render.mjs.map +1 -1
  26. package/dist/typescript/components/builtin-file.cjs +21 -9
  27. package/dist/typescript/components/builtin-file.mjs +21 -9
  28. package/dist/typescript/components/builtin-file.mjs.map +1 -1
  29. package/dist/typescript/components/class-declaration.cjs +112 -79
  30. package/dist/typescript/components/class-declaration.mjs +112 -79
  31. package/dist/typescript/components/class-declaration.mjs.map +1 -1
  32. package/dist/typescript/components/dynamic-import-statement.cjs +6 -1
  33. package/dist/typescript/components/dynamic-import-statement.mjs +6 -1
  34. package/dist/typescript/components/dynamic-import-statement.mjs.map +1 -1
  35. package/dist/typescript/components/entry-file.cjs +7 -3
  36. package/dist/typescript/components/entry-file.mjs +7 -3
  37. package/dist/typescript/components/entry-file.mjs.map +1 -1
  38. package/dist/typescript/components/infrastructure-file.cjs +7 -3
  39. package/dist/typescript/components/infrastructure-file.mjs +7 -3
  40. package/dist/typescript/components/infrastructure-file.mjs.map +1 -1
  41. package/dist/typescript/components/interface-declaration.cjs +83 -47
  42. package/dist/typescript/components/interface-declaration.mjs +83 -47
  43. package/dist/typescript/components/interface-declaration.mjs.map +1 -1
  44. package/dist/typescript/components/object-declaration.cjs +48 -36
  45. package/dist/typescript/components/object-declaration.mjs +48 -36
  46. package/dist/typescript/components/object-declaration.mjs.map +1 -1
  47. package/dist/typescript/components/property-name.cjs +2 -2
  48. package/dist/typescript/components/property-name.mjs +3 -3
  49. package/dist/typescript/components/property-name.mjs.map +1 -1
  50. package/dist/typescript/components/tsdoc-reflection.cjs +112 -54
  51. package/dist/typescript/components/tsdoc-reflection.mjs +112 -54
  52. package/dist/typescript/components/tsdoc-reflection.mjs.map +1 -1
  53. package/dist/typescript/components/tsdoc.cjs +211 -140
  54. package/dist/typescript/components/tsdoc.mjs +211 -140
  55. package/dist/typescript/components/tsdoc.mjs.map +1 -1
  56. package/dist/typescript/components/type-declaration.cjs +17 -9
  57. package/dist/typescript/components/type-declaration.mjs +17 -9
  58. package/dist/typescript/components/type-declaration.mjs.map +1 -1
  59. package/dist/typescript/components/type-parameters.cjs +33 -33
  60. package/dist/typescript/components/type-parameters.mjs +33 -33
  61. package/dist/typescript/components/type-parameters.mjs.map +1 -1
  62. package/dist/typescript/components/typescript-file.cjs +90 -65
  63. package/dist/typescript/components/typescript-file.mjs +90 -65
  64. package/dist/typescript/components/typescript-file.mjs.map +1 -1
  65. package/dist/typescript/contexts/lexical-scope.cjs +5 -1
  66. package/dist/typescript/contexts/lexical-scope.mjs +5 -1
  67. package/dist/typescript/contexts/lexical-scope.mjs.map +1 -1
  68. package/dist/typescript/contexts/member-scope.cjs +5 -2
  69. package/dist/typescript/contexts/member-scope.mjs +5 -2
  70. package/dist/typescript/contexts/member-scope.mjs.map +1 -1
  71. package/dist/yaml/components/yaml-file.cjs +58 -48
  72. package/dist/yaml/components/yaml-file.mjs +58 -48
  73. package/dist/yaml/components/yaml-file.mjs.map +1 -1
  74. package/package.json +6 -6
@@ -1,6 +1,7 @@
1
1
  import { usePowerlinesSafe } from "../../core/contexts/context.mjs";
2
2
  import { Spacing } from "../../core/components/spacing.mjs";
3
3
  import { For, List, Prose, Show, childrenArray, computed, splitProps } from "@alloy-js/core";
4
+ import { Fragment, jsx, jsxs } from "@alloy-js/core/jsx-runtime";
4
5
  import { stringifyDefaultValue } from "@powerlines/deepkit/utilities";
5
6
  import { isUndefined } from "@stryke/type-checks/is-undefined";
6
7
  import { isSetString } from "@stryke/type-checks/is-set-string";
@@ -11,48 +12,59 @@ import { isSetString } from "@stryke/type-checks/is-set-string";
11
12
  */
12
13
  function TSDoc(props) {
13
14
  const [{ children, heading }] = splitProps(props, ["children", "heading"]);
14
- return <>
15
- /**
16
- <align string=" * ">
17
- <hbr />
18
- <Show when={!isUndefined(heading)}>{heading}</Show>
19
- <Show when={!isUndefined(children) && childrenArray(() => children).filter(Boolean).length > 0}>
20
- <Show when={!isUndefined(heading)}>
21
- <Spacing />
22
- </Show>
23
- <List>{childrenArray(() => children)}</List>
24
- </Show>
25
- </align>
26
- <hbr />
27
- {`*/`}
28
- <hbr />
29
- </>;
15
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
16
+ "/**",
17
+ /* @__PURE__ */ jsxs("align", {
18
+ string: " * ",
19
+ children: [
20
+ /* @__PURE__ */ jsx("hbr", {}),
21
+ /* @__PURE__ */ jsx(Show, {
22
+ when: !isUndefined(heading),
23
+ children: heading
24
+ }),
25
+ /* @__PURE__ */ jsxs(Show, {
26
+ when: !isUndefined(children) && childrenArray(() => children).filter(Boolean).length > 0,
27
+ children: [/* @__PURE__ */ jsx(Show, {
28
+ when: !isUndefined(heading),
29
+ children: /* @__PURE__ */ jsx(Spacing, {})
30
+ }), /* @__PURE__ */ jsx(List, { children: childrenArray(() => children) })]
31
+ })
32
+ ]
33
+ }),
34
+ /* @__PURE__ */ jsx("hbr", {}),
35
+ `*/`,
36
+ /* @__PURE__ */ jsx("hbr", {})
37
+ ] });
30
38
  }
31
39
  /**
32
40
  * Create a TSDoc `@<props.tag>` tag.
33
41
  */
34
42
  function TSDocTag(props) {
35
43
  const [{ children, tag }] = splitProps(props, ["children", "tag"]);
36
- return <>
37
- {`@${tag} `}
38
- <Show when={Boolean(children)}>
39
- <align width={2}>
40
- <Prose>{children}</Prose>
41
- </align>
42
- </Show>
43
- <sbr />
44
- </>;
44
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
45
+ `@${tag} `,
46
+ /* @__PURE__ */ jsx(Show, {
47
+ when: Boolean(children),
48
+ children: /* @__PURE__ */ jsx("align", {
49
+ width: 2,
50
+ children: /* @__PURE__ */ jsx(Prose, { children })
51
+ })
52
+ }),
53
+ /* @__PURE__ */ jsx("sbr", {})
54
+ ] });
45
55
  }
46
56
  /**
47
57
  * A component that creates a TSDoc block with `@param` tags for each parameter.
48
58
  */
49
59
  function TSDocParams(props) {
50
- const parameters = normalizeParametersForDoc(props.parameters);
51
- return <For each={parameters}>
52
- {(param) => <TSDocParam name={param.name} optional={param.optional}>
53
- {param.doc}
54
- </TSDocParam>}
55
- </For>;
60
+ return /* @__PURE__ */ jsx(For, {
61
+ each: normalizeParametersForDoc(props.parameters),
62
+ children: (param) => /* @__PURE__ */ jsx(TSDocParam, {
63
+ name: param.name,
64
+ optional: param.optional,
65
+ children: param.doc
66
+ })
67
+ });
56
68
  }
57
69
  function normalizeParametersForDoc(parameters) {
58
70
  if (parameters.some((p) => typeof p === "string")) return [];
@@ -63,66 +75,79 @@ function normalizeParametersForDoc(parameters) {
63
75
  */
64
76
  function TSDocTitle(props) {
65
77
  const [{ children }, rest] = splitProps(props, ["children"]);
66
- return <TSDocTag {...rest} tag="title">
67
- {children}
68
- </TSDocTag>;
78
+ return /* @__PURE__ */ jsx(TSDocTag, {
79
+ ...rest,
80
+ tag: "title",
81
+ children
82
+ });
69
83
  }
70
84
  /**
71
85
  * Create a TSDoc `@domain` tag.
72
86
  */
73
87
  function TSDocDomain(props) {
74
88
  const [{ children }, rest] = splitProps(props, ["children"]);
75
- return <TSDocTag {...rest} tag="domain">
76
- {children}
77
- </TSDocTag>;
89
+ return /* @__PURE__ */ jsx(TSDocTag, {
90
+ ...rest,
91
+ tag: "domain",
92
+ children
93
+ });
78
94
  }
79
95
  /**
80
96
  * Create a TSDoc `@alias` tag.
81
97
  */
82
98
  function TSDocAlias(props) {
83
99
  const [{ children }, rest] = splitProps(props, ["children"]);
84
- return <TSDocTag {...rest} tag="alias">
85
- {children}
86
- </TSDocTag>;
100
+ return /* @__PURE__ */ jsx(TSDocTag, {
101
+ ...rest,
102
+ tag: "alias",
103
+ children
104
+ });
87
105
  }
88
106
  /**
89
107
  * Create a TSDoc `@permission` tag.
90
108
  */
91
109
  function TSDocPermission(props) {
92
110
  const [{ children }, rest] = splitProps(props, ["children"]);
93
- return <TSDocTag {...rest} tag="permission">
94
- {children}
95
- </TSDocTag>;
111
+ return /* @__PURE__ */ jsx(TSDocTag, {
112
+ ...rest,
113
+ tag: "permission",
114
+ children
115
+ });
96
116
  }
97
117
  /**
98
118
  * Create a TSDoc `@defaultValue` tag.
99
119
  */
100
120
  function TSDocDefaultValue(props) {
101
121
  const [{ type, defaultValue }] = splitProps(props, ["type", "defaultValue"]);
102
- return <>
103
- {"@defaultValue "}
104
- <Show when={!isUndefined(defaultValue)}>
105
- <align width={2}>
106
- <Prose>{stringifyDefaultValue(type, defaultValue)}</Prose>
107
- </align>
108
- </Show>
109
- </>;
122
+ return /* @__PURE__ */ jsxs(Fragment, { children: ["@defaultValue ", /* @__PURE__ */ jsx(Show, {
123
+ when: !isUndefined(defaultValue),
124
+ children: /* @__PURE__ */ jsx("align", {
125
+ width: 2,
126
+ children: /* @__PURE__ */ jsx(Prose, { children: stringifyDefaultValue(type, defaultValue) })
127
+ })
128
+ })] });
110
129
  }
111
130
  /**
112
131
  * Create a TSDoc `@remarks` tag.
113
132
  */
114
133
  function TSDocRemarks(props) {
115
- return <>
116
- {"@remarks "}
117
- <hbr />
118
- <List hardline={true}>{childrenArray(() => props.children)}</List>
119
- </>;
134
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
135
+ "@remarks ",
136
+ /* @__PURE__ */ jsx("hbr", {}),
137
+ /* @__PURE__ */ jsx(List, {
138
+ hardline: true,
139
+ children: childrenArray(() => props.children)
140
+ })
141
+ ] });
120
142
  }
121
143
  /**
122
144
  * Create a TSDoc `@see` tag.
123
145
  */
124
146
  function TSDocLink(props) {
125
- return <TSDocTag {...props} tag="see" />;
147
+ return /* @__PURE__ */ jsx(TSDocTag, {
148
+ ...props,
149
+ tag: "see"
150
+ });
126
151
  }
127
152
  /**
128
153
  * Create a TSDoc `@example` tag.
@@ -134,43 +159,47 @@ function TSDocExample(props) {
134
159
  "language",
135
160
  "children"
136
161
  ]);
137
- return <>
138
- {"@example "}
139
- <hbr />
140
- <Show when={fenced}>
141
- ```{language || (tsx ? "tsx" : "ts")}
142
- <hbr />
143
- </Show>
144
- {children}
145
- <Show when={fenced}>
146
- <hbr />
147
- ```
148
- </Show>
149
- </>;
162
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
163
+ "@example ",
164
+ /* @__PURE__ */ jsx("hbr", {}),
165
+ /* @__PURE__ */ jsxs(Show, {
166
+ when: fenced,
167
+ children: [
168
+ "```",
169
+ language || (tsx ? "tsx" : "ts"),
170
+ /* @__PURE__ */ jsx("hbr", {})
171
+ ]
172
+ }),
173
+ children,
174
+ /* @__PURE__ */ jsxs(Show, {
175
+ when: fenced,
176
+ children: [/* @__PURE__ */ jsx("hbr", {}), "```"]
177
+ })
178
+ ] });
150
179
  }
151
180
  /**
152
181
  * Create a TSDoc `@readonly` tag.
153
182
  */
154
183
  function TSDocReadonly() {
155
- return <TSDocTag tag="readonly" />;
184
+ return /* @__PURE__ */ jsx(TSDocTag, { tag: "readonly" });
156
185
  }
157
186
  /**
158
187
  * Create a TSDoc `@internal` tag.
159
188
  */
160
189
  function TSDocInternal() {
161
- return <TSDocTag tag="internal" />;
190
+ return /* @__PURE__ */ jsx(TSDocTag, { tag: "internal" });
162
191
  }
163
192
  /**
164
193
  * Create a TSDoc `@ignore` tag.
165
194
  */
166
195
  function TSDocIgnore() {
167
- return <TSDocTag tag="ignore" />;
196
+ return /* @__PURE__ */ jsx(TSDocTag, { tag: "ignore" });
168
197
  }
169
198
  /**
170
199
  * Create a TSDoc `@hidden` tag.
171
200
  */
172
201
  function TSDocHidden() {
173
- return <TSDocTag tag="hidden" />;
202
+ return /* @__PURE__ */ jsx(TSDocTag, { tag: "hidden" });
174
203
  }
175
204
  /**
176
205
  * Generates a TypeScript interface property for the given reflection class.
@@ -188,77 +217,111 @@ function TSDocAttributesTags(props) {
188
217
  ]);
189
218
  const title = computed(() => props.title?.trim() || "");
190
219
  const domain = computed(() => props.domain?.trim() || "");
191
- return <>
192
- <Show when={isSetString(title.value)}>
193
- <TSDocTitle>{title.value}</TSDocTitle>
194
- </Show>
195
- <Show when={!isUndefined(alias) && alias.length > 0 && alias.some((a) => isSetString(a?.trim()))}>
196
- <For each={alias?.filter((a) => isSetString(a?.trim())) ?? []}>
197
- {(alias) => <TSDocAlias>{alias}</TSDocAlias>}
198
- </For>
199
- </Show>
200
- <Show when={isSetString(domain.value)}>
201
- <TSDocDomain>{domain.value}</TSDocDomain>
202
- </Show>
203
- <Show when={!isUndefined(permission) && permission.length > 0 && permission.some((p) => isSetString(p?.trim()))}>
204
- <For each={permission?.filter((p) => isSetString(p?.trim())) ?? []}>
205
- {(permission) => <TSDocPermission>{permission}</TSDocPermission>}
206
- </For>
207
- </Show>
208
- <Show when={readonly === true}>
209
- <TSDocReadonly />
210
- </Show>
211
- <Show when={internal === true}>
212
- <TSDocInternal />
213
- </Show>
214
- <Show when={ignore === true}>
215
- <TSDocIgnore />
216
- </Show>
217
- <Show when={hidden === true}>
218
- <TSDocHidden />
219
- </Show>
220
- <Show when={!isUndefined(type) && !isUndefined(defaultValue)}>
221
- <TSDocDefaultValue type={type} defaultValue={defaultValue} />
222
- </Show>
223
- </>;
220
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
221
+ /* @__PURE__ */ jsx(Show, {
222
+ when: isSetString(title.value),
223
+ children: /* @__PURE__ */ jsx(TSDocTitle, { children: title.value })
224
+ }),
225
+ /* @__PURE__ */ jsx(Show, {
226
+ when: !isUndefined(alias) && alias.length > 0 && alias.some((a) => isSetString(a?.trim())),
227
+ children: /* @__PURE__ */ jsx(For, {
228
+ each: alias?.filter((a) => isSetString(a?.trim())) ?? [],
229
+ children: (alias) => /* @__PURE__ */ jsx(TSDocAlias, { children: alias })
230
+ })
231
+ }),
232
+ /* @__PURE__ */ jsx(Show, {
233
+ when: isSetString(domain.value),
234
+ children: /* @__PURE__ */ jsx(TSDocDomain, { children: domain.value })
235
+ }),
236
+ /* @__PURE__ */ jsx(Show, {
237
+ when: !isUndefined(permission) && permission.length > 0 && permission.some((p) => isSetString(p?.trim())),
238
+ children: /* @__PURE__ */ jsx(For, {
239
+ each: permission?.filter((p) => isSetString(p?.trim())) ?? [],
240
+ children: (permission) => /* @__PURE__ */ jsx(TSDocPermission, { children: permission })
241
+ })
242
+ }),
243
+ /* @__PURE__ */ jsx(Show, {
244
+ when: readonly === true,
245
+ children: /* @__PURE__ */ jsx(TSDocReadonly, {})
246
+ }),
247
+ /* @__PURE__ */ jsx(Show, {
248
+ when: internal === true,
249
+ children: /* @__PURE__ */ jsx(TSDocInternal, {})
250
+ }),
251
+ /* @__PURE__ */ jsx(Show, {
252
+ when: ignore === true,
253
+ children: /* @__PURE__ */ jsx(TSDocIgnore, {})
254
+ }),
255
+ /* @__PURE__ */ jsx(Show, {
256
+ when: hidden === true,
257
+ children: /* @__PURE__ */ jsx(TSDocHidden, {})
258
+ }),
259
+ /* @__PURE__ */ jsx(Show, {
260
+ when: !isUndefined(type) && !isUndefined(defaultValue),
261
+ children: /* @__PURE__ */ jsx(TSDocDefaultValue, {
262
+ type,
263
+ defaultValue
264
+ })
265
+ })
266
+ ] });
224
267
  }
225
268
  /**
226
269
  * Create a TSDoc parameter set off with `@param`.
227
270
  */
228
271
  function TSDocParam(props) {
229
- return <>
230
- {"@param "}
231
- <TSDocParamName name={props.name} optional={props.optional} defaultValue={props.defaultValue} />
232
- <TSDocParamDescription children={props.children} />
233
- </>;
272
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
273
+ "@param ",
274
+ /* @__PURE__ */ jsx(TSDocParamName, {
275
+ name: props.name,
276
+ optional: props.optional,
277
+ defaultValue: props.defaultValue
278
+ }),
279
+ /* @__PURE__ */ jsx(TSDocParamDescription, { children: props.children })
280
+ ] });
234
281
  }
235
282
  function TSDocParamName(props) {
236
- return <>
237
- <Show when={props.optional}>{"["}</Show>
238
- {props.name}
239
- <Show when={Boolean(props.defaultValue)}>={props.defaultValue}</Show>
240
- <Show when={props.optional}>{"]"}</Show>
241
- </>;
283
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
284
+ /* @__PURE__ */ jsx(Show, {
285
+ when: props.optional,
286
+ children: "["
287
+ }),
288
+ props.name,
289
+ /* @__PURE__ */ jsxs(Show, {
290
+ when: Boolean(props.defaultValue),
291
+ children: ["=", props.defaultValue]
292
+ }),
293
+ /* @__PURE__ */ jsx(Show, {
294
+ when: props.optional,
295
+ children: "]"
296
+ })
297
+ ] });
242
298
  }
243
299
  function TSDocParamDescription(props) {
244
- return <Show when={Boolean(props.children)}>
245
- {" - "}
246
- <align width={2}>
247
- <Prose>{props.children}</Prose>
248
- </align>
249
- </Show>;
300
+ return /* @__PURE__ */ jsxs(Show, {
301
+ when: Boolean(props.children),
302
+ children: [" - ", /* @__PURE__ */ jsx("align", {
303
+ width: 2,
304
+ children: /* @__PURE__ */ jsx(Prose, { children: props.children })
305
+ })]
306
+ });
250
307
  }
251
308
  /**
252
309
  * Create a TSDoc `@returns` tag.
253
310
  */
254
311
  function TSDocReturns(props) {
255
- return <TSDocTag {...props} tag="returns" />;
312
+ return /* @__PURE__ */ jsx(TSDocTag, {
313
+ ...props,
314
+ tag: "returns"
315
+ });
256
316
  }
257
317
  /**
258
318
  * Create a TSDoc `@throws` tag.
259
319
  */
260
320
  function TSDocThrows(props) {
261
- return <TSDocTag {...props} tag="throws" />;
321
+ return /* @__PURE__ */ jsx(TSDocTag, {
322
+ ...props,
323
+ tag: "throws"
324
+ });
262
325
  }
263
326
  /**
264
327
  * Generates a TSDoc `@module` tag for the given module name.
@@ -270,20 +333,28 @@ function TSDocModule(props) {
270
333
  "prefix"
271
334
  ]);
272
335
  const context = usePowerlinesSafe();
273
- return <>
274
- /**
275
- <align string=" * ">
276
- <hbr />
277
- <Show when={Boolean(children)}>
278
- <List hardline={true}>{childrenArray(() => children)}</List>
279
- <Spacing />
280
- </Show>
281
- {"@module "}
282
- {prefix || context?.config?.framework || "powerlines"}:{name}
283
- </align>
284
- <hbr />
285
- {` */`}
286
- </>;
336
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
337
+ "/**",
338
+ /* @__PURE__ */ jsxs("align", {
339
+ string: " * ",
340
+ children: [
341
+ /* @__PURE__ */ jsx("hbr", {}),
342
+ /* @__PURE__ */ jsxs(Show, {
343
+ when: Boolean(children),
344
+ children: [/* @__PURE__ */ jsx(List, {
345
+ hardline: true,
346
+ children: childrenArray(() => children)
347
+ }), /* @__PURE__ */ jsx(Spacing, {})]
348
+ }),
349
+ "@module ",
350
+ prefix || context?.config?.framework || "powerlines",
351
+ ":",
352
+ name
353
+ ]
354
+ }),
355
+ /* @__PURE__ */ jsx("hbr", {}),
356
+ ` */`
357
+ ] });
287
358
  }
288
359
 
289
360
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"tsdoc.mjs","names":[],"sources":["../../../src/typescript/components/tsdoc.tsx"],"sourcesContent":["/* -------------------------------------------------------------------\n\n ⚡ Storm Software - Powerlines\n\n This code was released as part of the Powerlines project. Powerlines\n is maintained by Storm Software under the Apache-2.0 license, and is\n free for commercial and private use. For more information, please visit\n our licensing page at https://stormsoftware.com/licenses/projects/powerlines.\n\n Website: https://stormsoftware.com\n Repository: https://github.com/storm-software/powerlines\n Documentation: https://docs.stormsoftware.com/projects/powerlines\n Contact: https://stormsoftware.com/contact\n\n SPDX-License-Identifier: Apache-2.0\n\n ------------------------------------------------------------------- */\n\nimport {\n Children,\n childrenArray,\n computed,\n For,\n List,\n Prose,\n Show,\n splitProps\n} from \"@alloy-js/core\";\nimport { JSDocExampleProps, ParameterDescriptor } from \"@alloy-js/typescript\";\nimport { stringifyDefaultValue } from \"@powerlines/deepkit/utilities\";\nimport {\n ReflectionKind,\n ReflectionParameter,\n ReflectionProperty\n} from \"@powerlines/deepkit/vendor/type\";\nimport { isSetString } from \"@stryke/type-checks/is-set-string\";\nimport { isUndefined } from \"@stryke/type-checks/is-undefined\";\nimport { Spacing } from \"../../core/components/spacing\";\nimport { usePowerlinesSafe } from \"../../core/contexts/context\";\nimport { ComponentProps } from \"../../types/components\";\n\nexport interface TSDocProps extends ComponentProps {\n heading?: Children;\n}\n\n/**\n * Generates a TypeScript interface for the given reflection class.\n */\nexport function TSDoc(props: TSDocProps) {\n const [{ children, heading }] = splitProps(props, [\"children\", \"heading\"]);\n\n return (\n <>\n /**\n <align string=\" * \">\n <hbr />\n <Show when={!isUndefined(heading)}>{heading}</Show>\n <Show\n when={\n !isUndefined(children) &&\n childrenArray(() => children).filter(Boolean).length > 0\n }>\n <Show when={!isUndefined(heading)}>\n <Spacing />\n </Show>\n <List>{childrenArray(() => children)}</List>\n </Show>\n </align>\n <hbr />\n {`*/`}\n <hbr />\n </>\n );\n}\n\nexport interface TSDocTagProps extends ComponentProps {\n tag: string;\n}\n\n/**\n * Create a TSDoc `@<props.tag>` tag.\n */\nexport function TSDocTag(props: TSDocTagProps) {\n const [{ children, tag }] = splitProps(props, [\"children\", \"tag\"]);\n\n return (\n <>\n {`@${tag} `}\n <Show when={Boolean(children)}>\n <align width={2}>\n <Prose>{children}</Prose>\n </align>\n </Show>\n <sbr />\n </>\n );\n}\n\nexport interface TSDocParamsProps {\n parameters: ParameterDescriptor[] | string[];\n}\n\n/**\n * A component that creates a TSDoc block with `@param` tags for each parameter.\n */\nexport function TSDocParams(props: TSDocParamsProps) {\n const parameters = normalizeParametersForDoc(props.parameters);\n\n return (\n <For each={parameters}>\n {param => (\n <TSDocParam name={param.name} optional={param.optional}>\n {param.doc}\n </TSDocParam>\n )}\n </For>\n );\n}\n\nfunction normalizeParametersForDoc(\n parameters: ParameterDescriptor[] | string[]\n): ParameterDescriptor[] {\n if (parameters.some(p => typeof p === \"string\")) {\n return [];\n }\n\n return parameters as ParameterDescriptor[];\n}\n\n/**\n * Create a TSDoc `@title` tag.\n */\nexport function TSDocTitle(props: ComponentProps) {\n const [{ children }, rest] = splitProps(props, [\"children\"]);\n\n return (\n <TSDocTag {...rest} tag=\"title\">\n {children}\n </TSDocTag>\n );\n}\n\n/**\n * Create a TSDoc `@domain` tag.\n */\nexport function TSDocDomain(props: ComponentProps) {\n const [{ children }, rest] = splitProps(props, [\"children\"]);\n\n return (\n <TSDocTag {...rest} tag=\"domain\">\n {children}\n </TSDocTag>\n );\n}\n\n/**\n * Create a TSDoc `@alias` tag.\n */\nexport function TSDocAlias(props: ComponentProps) {\n const [{ children }, rest] = splitProps(props, [\"children\"]);\n\n return (\n <TSDocTag {...rest} tag=\"alias\">\n {children}\n </TSDocTag>\n );\n}\n\n/**\n * Create a TSDoc `@permission` tag.\n */\nexport function TSDocPermission(props: ComponentProps) {\n const [{ children }, rest] = splitProps(props, [\"children\"]);\n\n return (\n <TSDocTag {...rest} tag=\"permission\">\n {children}\n </TSDocTag>\n );\n}\n\nexport interface TSDocDefaultValueProps extends ComponentProps {\n type: ReflectionKind | ReflectionProperty | ReflectionParameter;\n defaultValue: any;\n}\n\n/**\n * Create a TSDoc `@defaultValue` tag.\n */\nexport function TSDocDefaultValue(props: TSDocDefaultValueProps) {\n const [{ type, defaultValue }] = splitProps(props, [\"type\", \"defaultValue\"]);\n\n return (\n <>\n {\"@defaultValue \"}\n <Show when={!isUndefined(defaultValue)}>\n <align width={2}>\n <Prose>{stringifyDefaultValue(type, defaultValue)}</Prose>\n </align>\n </Show>\n </>\n );\n}\n\n/**\n * Create a TSDoc `@remarks` tag.\n */\nexport function TSDocRemarks(props: ComponentProps) {\n return (\n <>\n {\"@remarks \"}\n <hbr />\n <List hardline={true}>{childrenArray(() => props.children)}</List>\n </>\n );\n}\n\n/**\n * Create a TSDoc `@see` tag.\n */\nexport function TSDocLink(props: ComponentProps) {\n return <TSDocTag {...props} tag=\"see\" />;\n}\n\nexport interface TSDocExampleProps extends JSDocExampleProps {\n /**\n * Whether the file is a TSX file.\n *\n * @defaultValue false\n */\n tsx?: boolean;\n}\n\n/**\n * Create a TSDoc `@example` tag.\n */\nexport function TSDocExample(props: TSDocExampleProps) {\n const [{ tsx, fenced = true, language, children }] = splitProps(props, [\n \"tsx\",\n \"fenced\",\n \"language\",\n \"children\"\n ]);\n\n return (\n <>\n {\"@example \"}\n <hbr />\n <Show when={fenced}>\n ```{language || (tsx ? \"tsx\" : \"ts\")}\n <hbr />\n </Show>\n {children}\n <Show when={fenced}>\n <hbr />\n ```\n </Show>\n </>\n );\n}\n\n/**\n * Create a TSDoc `@readonly` tag.\n */\nexport function TSDocReadonly() {\n return <TSDocTag tag=\"readonly\" />;\n}\n\n/**\n * Create a TSDoc `@internal` tag.\n */\nexport function TSDocInternal() {\n return <TSDocTag tag=\"internal\" />;\n}\n\n/**\n * Create a TSDoc `@ignore` tag.\n */\nexport function TSDocIgnore() {\n return <TSDocTag tag=\"ignore\" />;\n}\n\n/**\n * Create a TSDoc `@hidden` tag.\n */\nexport function TSDocHidden() {\n return <TSDocTag tag=\"hidden\" />;\n}\n\nexport interface TSDocAttributesTagsProps {\n type?: ReflectionKind | ReflectionProperty | ReflectionParameter;\n title?: string;\n alias?: string[];\n permission?: string[];\n domain?: string;\n readonly?: boolean;\n internal?: boolean;\n ignore?: boolean;\n hidden?: boolean;\n defaultValue?: any;\n}\n\n/**\n * Generates a TypeScript interface property for the given reflection class.\n */\nexport function TSDocAttributesTags(props: TSDocAttributesTagsProps) {\n const [\n {\n type,\n alias,\n permission,\n readonly,\n internal,\n ignore,\n hidden,\n defaultValue\n }\n ] = splitProps(props, [\n \"type\",\n \"alias\",\n \"permission\",\n \"readonly\",\n \"internal\",\n \"ignore\",\n \"hidden\",\n \"defaultValue\"\n ]);\n\n const title = computed(() => props.title?.trim() || \"\");\n const domain = computed(() => props.domain?.trim() || \"\");\n\n return (\n <>\n <Show when={isSetString(title.value)}>\n <TSDocTitle>{title.value}</TSDocTitle>\n </Show>\n <Show\n when={\n !isUndefined(alias) &&\n alias.length > 0 &&\n alias.some(a => isSetString(a?.trim()))\n }>\n <For each={alias?.filter(a => isSetString(a?.trim())) ?? []}>\n {alias => <TSDocAlias>{alias}</TSDocAlias>}\n </For>\n </Show>\n <Show when={isSetString(domain.value)}>\n <TSDocDomain>{domain.value}</TSDocDomain>\n </Show>\n <Show\n when={\n !isUndefined(permission) &&\n permission.length > 0 &&\n permission.some(p => isSetString(p?.trim()))\n }>\n <For each={permission?.filter(p => isSetString(p?.trim())) ?? []}>\n {permission => <TSDocPermission>{permission}</TSDocPermission>}\n </For>\n </Show>\n <Show when={readonly === true}>\n <TSDocReadonly />\n </Show>\n <Show when={internal === true}>\n <TSDocInternal />\n </Show>\n <Show when={ignore === true}>\n <TSDocIgnore />\n </Show>\n <Show when={hidden === true}>\n <TSDocHidden />\n </Show>\n <Show when={!isUndefined(type) && !isUndefined(defaultValue)}>\n <TSDocDefaultValue\n type={\n type as ReflectionKind | ReflectionProperty | ReflectionParameter\n }\n defaultValue={defaultValue}\n />\n </Show>\n </>\n );\n}\n\nexport interface TSDocParamProps {\n name: Children;\n children?: Children;\n optional?: boolean;\n defaultValue?: Children;\n}\n\n/**\n * Create a TSDoc parameter set off with `@param`.\n */\nexport function TSDocParam(props: TSDocParamProps) {\n return (\n <>\n {\"@param \"}\n <TSDocParamName\n name={props.name}\n optional={props.optional}\n defaultValue={props.defaultValue}\n />\n <TSDocParamDescription children={props.children} />\n </>\n );\n}\n\ninterface TSDocParamNameProps {\n name: Children;\n optional?: boolean;\n defaultValue?: Children;\n}\n\nfunction TSDocParamName(props: TSDocParamNameProps) {\n return (\n <>\n <Show when={props.optional}>{\"[\"}</Show>\n {props.name}\n <Show when={Boolean(props.defaultValue)}>={props.defaultValue}</Show>\n <Show when={props.optional}>{\"]\"}</Show>\n </>\n );\n}\n\ninterface TSDocParamDescriptionProps {\n children?: Children;\n}\n\nfunction TSDocParamDescription(props: TSDocParamDescriptionProps) {\n return (\n <Show when={Boolean(props.children)}>\n {\" - \"}\n <align width={2}>\n <Prose>{props.children}</Prose>\n </align>\n </Show>\n );\n}\n\n/**\n * Create a TSDoc `@returns` tag.\n */\nexport function TSDocReturns(props: ComponentProps) {\n return <TSDocTag {...props} tag=\"returns\" />;\n}\n\n/**\n * Create a TSDoc `@throws` tag.\n */\nexport function TSDocThrows(props: ComponentProps) {\n return <TSDocTag {...props} tag=\"throws\" />;\n}\n\nexport interface TSDocModuleProps extends ComponentProps {\n /**\n * The prefix for the builtin module name\n *\n * @remarks\n * This value is populated from the Powerlines configuration output builtin prefix by default.\n *\n * @example\n * ```ts\n * /**\n * @module powerlines:my-module\n * \\/\n * ```\n */\n prefix?: string;\n\n /**\n * The name of the module\n *\n * @remarks\n * This will be used in the `@module` tag as well as the import path for the module, e.g. `storm:<name>`.\n *\n * @example\n * ```ts\n * import { MyModule } from \"powerlines:my-module\";\n * ```\n */\n name: Children;\n}\n\n/**\n * Generates a TSDoc `@module` tag for the given module name.\n */\nexport function TSDocModule(props: TSDocModuleProps) {\n const [{ children, name, prefix }] = splitProps(props, [\n \"children\",\n \"name\",\n \"prefix\"\n ]);\n\n const context = usePowerlinesSafe();\n\n return (\n <>\n /**\n <align string=\" * \">\n <hbr />\n <Show when={Boolean(children)}>\n <List hardline={true}>{childrenArray(() => children)}</List>\n <Spacing />\n </Show>\n {\"@module \"}\n {prefix || context?.config?.framework || \"powerlines\"}:{name}\n </align>\n <hbr />\n {` */`}\n </>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"tsdoc.mjs","names":[],"sources":["../../../src/typescript/components/tsdoc.tsx"],"sourcesContent":["/* -------------------------------------------------------------------\n\n ⚡ Storm Software - Powerlines\n\n This code was released as part of the Powerlines project. Powerlines\n is maintained by Storm Software under the Apache-2.0 license, and is\n free for commercial and private use. For more information, please visit\n our licensing page at https://stormsoftware.com/licenses/projects/powerlines.\n\n Website: https://stormsoftware.com\n Repository: https://github.com/storm-software/powerlines\n Documentation: https://docs.stormsoftware.com/projects/powerlines\n Contact: https://stormsoftware.com/contact\n\n SPDX-License-Identifier: Apache-2.0\n\n ------------------------------------------------------------------- */\n\nimport {\n Children,\n childrenArray,\n computed,\n For,\n List,\n Prose,\n Show,\n splitProps\n} from \"@alloy-js/core\";\nimport { JSDocExampleProps, ParameterDescriptor } from \"@alloy-js/typescript\";\nimport { stringifyDefaultValue } from \"@powerlines/deepkit/utilities\";\nimport {\n ReflectionKind,\n ReflectionParameter,\n ReflectionProperty\n} from \"@powerlines/deepkit/vendor/type\";\nimport { isSetString } from \"@stryke/type-checks/is-set-string\";\nimport { isUndefined } from \"@stryke/type-checks/is-undefined\";\nimport { Spacing } from \"../../core/components/spacing\";\nimport { usePowerlinesSafe } from \"../../core/contexts/context\";\nimport { ComponentProps } from \"../../types/components\";\n\nexport interface TSDocProps extends ComponentProps {\n heading?: Children;\n}\n\n/**\n * Generates a TypeScript interface for the given reflection class.\n */\nexport function TSDoc(props: TSDocProps) {\n const [{ children, heading }] = splitProps(props, [\"children\", \"heading\"]);\n\n return (\n <>\n /**\n <align string=\" * \">\n <hbr />\n <Show when={!isUndefined(heading)}>{heading}</Show>\n <Show\n when={\n !isUndefined(children) &&\n childrenArray(() => children).filter(Boolean).length > 0\n }>\n <Show when={!isUndefined(heading)}>\n <Spacing />\n </Show>\n <List>{childrenArray(() => children)}</List>\n </Show>\n </align>\n <hbr />\n {`*/`}\n <hbr />\n </>\n );\n}\n\nexport interface TSDocTagProps extends ComponentProps {\n tag: string;\n}\n\n/**\n * Create a TSDoc `@<props.tag>` tag.\n */\nexport function TSDocTag(props: TSDocTagProps) {\n const [{ children, tag }] = splitProps(props, [\"children\", \"tag\"]);\n\n return (\n <>\n {`@${tag} `}\n <Show when={Boolean(children)}>\n <align width={2}>\n <Prose>{children}</Prose>\n </align>\n </Show>\n <sbr />\n </>\n );\n}\n\nexport interface TSDocParamsProps {\n parameters: ParameterDescriptor[] | string[];\n}\n\n/**\n * A component that creates a TSDoc block with `@param` tags for each parameter.\n */\nexport function TSDocParams(props: TSDocParamsProps) {\n const parameters = normalizeParametersForDoc(props.parameters);\n\n return (\n <For each={parameters}>\n {param => (\n <TSDocParam name={param.name} optional={param.optional}>\n {param.doc}\n </TSDocParam>\n )}\n </For>\n );\n}\n\nfunction normalizeParametersForDoc(\n parameters: ParameterDescriptor[] | string[]\n): ParameterDescriptor[] {\n if (parameters.some(p => typeof p === \"string\")) {\n return [];\n }\n\n return parameters as ParameterDescriptor[];\n}\n\n/**\n * Create a TSDoc `@title` tag.\n */\nexport function TSDocTitle(props: ComponentProps) {\n const [{ children }, rest] = splitProps(props, [\"children\"]);\n\n return (\n <TSDocTag {...rest} tag=\"title\">\n {children}\n </TSDocTag>\n );\n}\n\n/**\n * Create a TSDoc `@domain` tag.\n */\nexport function TSDocDomain(props: ComponentProps) {\n const [{ children }, rest] = splitProps(props, [\"children\"]);\n\n return (\n <TSDocTag {...rest} tag=\"domain\">\n {children}\n </TSDocTag>\n );\n}\n\n/**\n * Create a TSDoc `@alias` tag.\n */\nexport function TSDocAlias(props: ComponentProps) {\n const [{ children }, rest] = splitProps(props, [\"children\"]);\n\n return (\n <TSDocTag {...rest} tag=\"alias\">\n {children}\n </TSDocTag>\n );\n}\n\n/**\n * Create a TSDoc `@permission` tag.\n */\nexport function TSDocPermission(props: ComponentProps) {\n const [{ children }, rest] = splitProps(props, [\"children\"]);\n\n return (\n <TSDocTag {...rest} tag=\"permission\">\n {children}\n </TSDocTag>\n );\n}\n\nexport interface TSDocDefaultValueProps extends ComponentProps {\n type: ReflectionKind | ReflectionProperty | ReflectionParameter;\n defaultValue: any;\n}\n\n/**\n * Create a TSDoc `@defaultValue` tag.\n */\nexport function TSDocDefaultValue(props: TSDocDefaultValueProps) {\n const [{ type, defaultValue }] = splitProps(props, [\"type\", \"defaultValue\"]);\n\n return (\n <>\n {\"@defaultValue \"}\n <Show when={!isUndefined(defaultValue)}>\n <align width={2}>\n <Prose>{stringifyDefaultValue(type, defaultValue)}</Prose>\n </align>\n </Show>\n </>\n );\n}\n\n/**\n * Create a TSDoc `@remarks` tag.\n */\nexport function TSDocRemarks(props: ComponentProps) {\n return (\n <>\n {\"@remarks \"}\n <hbr />\n <List hardline={true}>{childrenArray(() => props.children)}</List>\n </>\n );\n}\n\n/**\n * Create a TSDoc `@see` tag.\n */\nexport function TSDocLink(props: ComponentProps) {\n return <TSDocTag {...props} tag=\"see\" />;\n}\n\nexport interface TSDocExampleProps extends JSDocExampleProps {\n /**\n * Whether the file is a TSX file.\n *\n * @defaultValue false\n */\n tsx?: boolean;\n}\n\n/**\n * Create a TSDoc `@example` tag.\n */\nexport function TSDocExample(props: TSDocExampleProps) {\n const [{ tsx, fenced = true, language, children }] = splitProps(props, [\n \"tsx\",\n \"fenced\",\n \"language\",\n \"children\"\n ]);\n\n return (\n <>\n {\"@example \"}\n <hbr />\n <Show when={fenced}>\n ```{language || (tsx ? \"tsx\" : \"ts\")}\n <hbr />\n </Show>\n {children}\n <Show when={fenced}>\n <hbr />\n ```\n </Show>\n </>\n );\n}\n\n/**\n * Create a TSDoc `@readonly` tag.\n */\nexport function TSDocReadonly() {\n return <TSDocTag tag=\"readonly\" />;\n}\n\n/**\n * Create a TSDoc `@internal` tag.\n */\nexport function TSDocInternal() {\n return <TSDocTag tag=\"internal\" />;\n}\n\n/**\n * Create a TSDoc `@ignore` tag.\n */\nexport function TSDocIgnore() {\n return <TSDocTag tag=\"ignore\" />;\n}\n\n/**\n * Create a TSDoc `@hidden` tag.\n */\nexport function TSDocHidden() {\n return <TSDocTag tag=\"hidden\" />;\n}\n\nexport interface TSDocAttributesTagsProps {\n type?: ReflectionKind | ReflectionProperty | ReflectionParameter;\n title?: string;\n alias?: string[];\n permission?: string[];\n domain?: string;\n readonly?: boolean;\n internal?: boolean;\n ignore?: boolean;\n hidden?: boolean;\n defaultValue?: any;\n}\n\n/**\n * Generates a TypeScript interface property for the given reflection class.\n */\nexport function TSDocAttributesTags(props: TSDocAttributesTagsProps) {\n const [\n {\n type,\n alias,\n permission,\n readonly,\n internal,\n ignore,\n hidden,\n defaultValue\n }\n ] = splitProps(props, [\n \"type\",\n \"alias\",\n \"permission\",\n \"readonly\",\n \"internal\",\n \"ignore\",\n \"hidden\",\n \"defaultValue\"\n ]);\n\n const title = computed(() => props.title?.trim() || \"\");\n const domain = computed(() => props.domain?.trim() || \"\");\n\n return (\n <>\n <Show when={isSetString(title.value)}>\n <TSDocTitle>{title.value}</TSDocTitle>\n </Show>\n <Show\n when={\n !isUndefined(alias) &&\n alias.length > 0 &&\n alias.some(a => isSetString(a?.trim()))\n }>\n <For each={alias?.filter(a => isSetString(a?.trim())) ?? []}>\n {alias => <TSDocAlias>{alias}</TSDocAlias>}\n </For>\n </Show>\n <Show when={isSetString(domain.value)}>\n <TSDocDomain>{domain.value}</TSDocDomain>\n </Show>\n <Show\n when={\n !isUndefined(permission) &&\n permission.length > 0 &&\n permission.some(p => isSetString(p?.trim()))\n }>\n <For each={permission?.filter(p => isSetString(p?.trim())) ?? []}>\n {permission => <TSDocPermission>{permission}</TSDocPermission>}\n </For>\n </Show>\n <Show when={readonly === true}>\n <TSDocReadonly />\n </Show>\n <Show when={internal === true}>\n <TSDocInternal />\n </Show>\n <Show when={ignore === true}>\n <TSDocIgnore />\n </Show>\n <Show when={hidden === true}>\n <TSDocHidden />\n </Show>\n <Show when={!isUndefined(type) && !isUndefined(defaultValue)}>\n <TSDocDefaultValue\n type={\n type as ReflectionKind | ReflectionProperty | ReflectionParameter\n }\n defaultValue={defaultValue}\n />\n </Show>\n </>\n );\n}\n\nexport interface TSDocParamProps {\n name: Children;\n children?: Children;\n optional?: boolean;\n defaultValue?: Children;\n}\n\n/**\n * Create a TSDoc parameter set off with `@param`.\n */\nexport function TSDocParam(props: TSDocParamProps) {\n return (\n <>\n {\"@param \"}\n <TSDocParamName\n name={props.name}\n optional={props.optional}\n defaultValue={props.defaultValue}\n />\n <TSDocParamDescription children={props.children} />\n </>\n );\n}\n\ninterface TSDocParamNameProps {\n name: Children;\n optional?: boolean;\n defaultValue?: Children;\n}\n\nfunction TSDocParamName(props: TSDocParamNameProps) {\n return (\n <>\n <Show when={props.optional}>{\"[\"}</Show>\n {props.name}\n <Show when={Boolean(props.defaultValue)}>={props.defaultValue}</Show>\n <Show when={props.optional}>{\"]\"}</Show>\n </>\n );\n}\n\ninterface TSDocParamDescriptionProps {\n children?: Children;\n}\n\nfunction TSDocParamDescription(props: TSDocParamDescriptionProps) {\n return (\n <Show when={Boolean(props.children)}>\n {\" - \"}\n <align width={2}>\n <Prose>{props.children}</Prose>\n </align>\n </Show>\n );\n}\n\n/**\n * Create a TSDoc `@returns` tag.\n */\nexport function TSDocReturns(props: ComponentProps) {\n return <TSDocTag {...props} tag=\"returns\" />;\n}\n\n/**\n * Create a TSDoc `@throws` tag.\n */\nexport function TSDocThrows(props: ComponentProps) {\n return <TSDocTag {...props} tag=\"throws\" />;\n}\n\nexport interface TSDocModuleProps extends ComponentProps {\n /**\n * The prefix for the builtin module name\n *\n * @remarks\n * This value is populated from the Powerlines configuration output builtin prefix by default.\n *\n * @example\n * ```ts\n * /**\n * @module powerlines:my-module\n * \\/\n * ```\n */\n prefix?: string;\n\n /**\n * The name of the module\n *\n * @remarks\n * This will be used in the `@module` tag as well as the import path for the module, e.g. `storm:<name>`.\n *\n * @example\n * ```ts\n * import { MyModule } from \"powerlines:my-module\";\n * ```\n */\n name: Children;\n}\n\n/**\n * Generates a TSDoc `@module` tag for the given module name.\n */\nexport function TSDocModule(props: TSDocModuleProps) {\n const [{ children, name, prefix }] = splitProps(props, [\n \"children\",\n \"name\",\n \"prefix\"\n ]);\n\n const context = usePowerlinesSafe();\n\n return (\n <>\n /**\n <align string=\" * \">\n <hbr />\n <Show when={Boolean(children)}>\n <List hardline={true}>{childrenArray(() => children)}</List>\n <Spacing />\n </Show>\n {\"@module \"}\n {prefix || context?.config?.framework || \"powerlines\"}:{name}\n </align>\n <hbr />\n {` */`}\n </>\n );\n}\n"],"mappings":"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"}
@@ -3,6 +3,7 @@ const require_runtime = require('../../_virtual/_rolldown/runtime.cjs');
3
3
  const require_typescript_components_tsdoc = require('./tsdoc.cjs');
4
4
  const require_typescript_components_type_parameters = require('./type-parameters.cjs');
5
5
  let _alloy_js_core = require("@alloy-js/core");
6
+ let _alloy_js_core_jsx_runtime = require("@alloy-js/core/jsx-runtime");
6
7
  let _alloy_js_typescript = require("@alloy-js/typescript");
7
8
 
8
9
  //#region src/typescript/components/type-declaration.tsx
@@ -11,15 +12,22 @@ let _alloy_js_typescript = require("@alloy-js/typescript");
11
12
  */
12
13
  const TypeDeclaration = (0, _alloy_js_typescript.ensureTypeRefContext)(function TypeDeclaration(props) {
13
14
  const { children, doc, typeParameters, ...rest } = props;
14
- return <>
15
- <_alloy_js_core.Show when={Boolean(doc)}>
16
- <require_typescript_components_tsdoc.TSDoc heading={doc} />
17
- </_alloy_js_core.Show>
18
- <_alloy_js_typescript.Declaration {...rest} kind="type" nameKind="type">
19
- type <_alloy_js_core.Name />
20
- {typeParameters && <require_typescript_components_type_parameters.TypeParameters parameters={typeParameters} />} = {children};
21
- </_alloy_js_typescript.Declaration>
22
- </>;
15
+ return /* @__PURE__ */ (0, _alloy_js_core_jsx_runtime.jsxs)(_alloy_js_core_jsx_runtime.Fragment, { children: [/* @__PURE__ */ (0, _alloy_js_core_jsx_runtime.jsx)(_alloy_js_core.Show, {
16
+ when: Boolean(doc),
17
+ children: /* @__PURE__ */ (0, _alloy_js_core_jsx_runtime.jsx)(require_typescript_components_tsdoc.TSDoc, { heading: doc })
18
+ }), /* @__PURE__ */ (0, _alloy_js_core_jsx_runtime.jsxs)(_alloy_js_typescript.Declaration, {
19
+ ...rest,
20
+ kind: "type",
21
+ nameKind: "type",
22
+ children: [
23
+ "type ",
24
+ /* @__PURE__ */ (0, _alloy_js_core_jsx_runtime.jsx)(_alloy_js_core.Name, {}),
25
+ typeParameters && /* @__PURE__ */ (0, _alloy_js_core_jsx_runtime.jsx)(require_typescript_components_type_parameters.TypeParameters, { parameters: typeParameters }),
26
+ " = ",
27
+ children,
28
+ ";"
29
+ ]
30
+ })] });
23
31
  });
24
32
 
25
33
  //#endregion
@@ -1,6 +1,7 @@
1
1
  import { TSDoc } from "./tsdoc.mjs";
2
2
  import { TypeParameters } from "./type-parameters.mjs";
3
3
  import { Name, Show } from "@alloy-js/core";
4
+ import { Fragment, jsx, jsxs } from "@alloy-js/core/jsx-runtime";
4
5
  import { Declaration as Declaration$1, ensureTypeRefContext } from "@alloy-js/typescript";
5
6
 
6
7
  //#region src/typescript/components/type-declaration.tsx
@@ -9,15 +10,22 @@ import { Declaration as Declaration$1, ensureTypeRefContext } from "@alloy-js/ty
9
10
  */
10
11
  const TypeDeclaration = ensureTypeRefContext(function TypeDeclaration(props) {
11
12
  const { children, doc, typeParameters, ...rest } = props;
12
- return <>
13
- <Show when={Boolean(doc)}>
14
- <TSDoc heading={doc} />
15
- </Show>
16
- <Declaration$1 {...rest} kind="type" nameKind="type">
17
- type <Name />
18
- {typeParameters && <TypeParameters parameters={typeParameters} />} = {children};
19
- </Declaration$1>
20
- </>;
13
+ return /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(Show, {
14
+ when: Boolean(doc),
15
+ children: /* @__PURE__ */ jsx(TSDoc, { heading: doc })
16
+ }), /* @__PURE__ */ jsxs(Declaration$1, {
17
+ ...rest,
18
+ kind: "type",
19
+ nameKind: "type",
20
+ children: [
21
+ "type ",
22
+ /* @__PURE__ */ jsx(Name, {}),
23
+ typeParameters && /* @__PURE__ */ jsx(TypeParameters, { parameters: typeParameters }),
24
+ " = ",
25
+ children,
26
+ ";"
27
+ ]
28
+ })] });
21
29
  });
22
30
 
23
31
  //#endregion