@powerlines/plugin-alloy 0.23.40 → 0.24.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.
Files changed (60) hide show
  1. package/dist/core/components/output.d.cts +2 -2
  2. package/dist/core/components/single-line-comment.d.cts +2 -2
  3. package/dist/core/components/single-line-comment.d.mts +2 -2
  4. package/dist/core/components/source-file.d.cts +2 -2
  5. package/dist/core/components/spacing.d.cts +2 -2
  6. package/dist/core/components/spacing.d.mts +2 -2
  7. package/dist/core/contexts/reflection.d.cts.map +1 -1
  8. package/dist/markdown/components/front-matter.d.cts +2 -2
  9. package/dist/markdown/components/front-matter.d.mts +2 -2
  10. package/dist/markdown/components/markdown-file.d.cts +3 -3
  11. package/dist/markdown/components/markdown-file.d.cts.map +1 -1
  12. package/dist/markdown/components/markdown-file.d.mts +3 -3
  13. package/dist/markdown/components/markdown-table.d.cts +4 -4
  14. package/dist/typescript/components/builtin-file.d.cts +2 -2
  15. package/dist/typescript/components/builtin-file.d.mts +2 -2
  16. package/dist/typescript/components/dynamic-import-statement.d.cts +2 -2
  17. package/dist/typescript/components/dynamic-import-statement.d.mts +2 -2
  18. package/dist/typescript/components/entry-file.d.cts +2 -2
  19. package/dist/typescript/components/entry-file.d.mts +2 -2
  20. package/dist/typescript/components/index.cjs +3 -0
  21. package/dist/typescript/components/index.d.cts +2 -2
  22. package/dist/typescript/components/index.d.mts +2 -2
  23. package/dist/typescript/components/index.mjs +2 -2
  24. package/dist/typescript/components/interface-declaration.cjs +6 -3
  25. package/dist/typescript/components/interface-declaration.d.cts +6 -2
  26. package/dist/typescript/components/interface-declaration.d.cts.map +1 -1
  27. package/dist/typescript/components/interface-declaration.d.mts +6 -2
  28. package/dist/typescript/components/interface-declaration.d.mts.map +1 -1
  29. package/dist/typescript/components/interface-declaration.mjs +7 -4
  30. package/dist/typescript/components/interface-declaration.mjs.map +1 -1
  31. package/dist/typescript/components/object-declaration.cjs +4 -2
  32. package/dist/typescript/components/object-declaration.d.cts +3 -3
  33. package/dist/typescript/components/object-declaration.d.mts +3 -3
  34. package/dist/typescript/components/object-declaration.d.mts.map +1 -1
  35. package/dist/typescript/components/object-declaration.mjs +4 -2
  36. package/dist/typescript/components/object-declaration.mjs.map +1 -1
  37. package/dist/typescript/components/property-name.d.cts +2 -2
  38. package/dist/typescript/components/property-name.d.mts +2 -2
  39. package/dist/typescript/components/tsdoc-reflection.cjs +220 -89
  40. package/dist/typescript/components/tsdoc-reflection.d.cts +33 -8
  41. package/dist/typescript/components/tsdoc-reflection.d.cts.map +1 -1
  42. package/dist/typescript/components/tsdoc-reflection.d.mts +32 -7
  43. package/dist/typescript/components/tsdoc-reflection.d.mts.map +1 -1
  44. package/dist/typescript/components/tsdoc-reflection.mjs +221 -93
  45. package/dist/typescript/components/tsdoc-reflection.mjs.map +1 -1
  46. package/dist/typescript/components/tsdoc.cjs +11 -7
  47. package/dist/typescript/components/tsdoc.d.cts.map +1 -1
  48. package/dist/typescript/components/tsdoc.d.mts.map +1 -1
  49. package/dist/typescript/components/tsdoc.mjs +12 -8
  50. package/dist/typescript/components/tsdoc.mjs.map +1 -1
  51. package/dist/typescript/components/type-declaration.d.cts +2 -2
  52. package/dist/typescript/components/type-declaration.d.mts +2 -2
  53. package/dist/typescript/contexts/lexical-scope.d.cts +2 -2
  54. package/dist/typescript/contexts/lexical-scope.d.mts +2 -2
  55. package/dist/typescript/contexts/lexical-scope.d.mts.map +1 -1
  56. package/dist/typescript/index.cjs +3 -0
  57. package/dist/typescript/index.d.cts +2 -2
  58. package/dist/typescript/index.d.mts +2 -2
  59. package/dist/typescript/index.mjs +2 -2
  60. package/package.json +17 -17
@@ -1,19 +1,44 @@
1
1
  import { TSDocProps } from "./tsdoc.cjs";
2
- import * as _alloy_js_core0 from "@alloy-js/core";
2
+ import * as _alloy_js_core9 from "@alloy-js/core";
3
+ import { ReflectionClass, ReflectionMethod, ReflectionProperty } from "@powerlines/deepkit/vendor/type";
3
4
 
4
5
  //#region src/typescript/components/tsdoc-reflection.d.ts
6
+ interface TSDocReflectionClassProps<T extends Record<string, any> = Record<string, any>> extends TSDocProps {
7
+ reflection: ReflectionClass<T>;
8
+ }
5
9
  /**
6
- * Generates a TypeScript interface property for the given reflection class.
10
+ * Generates a TSDoc documentation block for the given reflection class. This component will render the description of the reflection as the main content of the documentation block, and will render any additional attributes (such as title, alias, domain, permission, etc.) as tags in the documentation block. If there are child elements provided, they will be rendered as a list below the main content of the documentation block. This is useful for rendering additional details about the reflection that may not be included in the description, such as information about properties or methods of a class.
7
11
  */
8
- declare function TSDocReflectionClass<T extends Record<string, any> = Record<string, any>>(props: TSDocProps): _alloy_js_core0.Children;
12
+ declare function TSDocReflectionClass<T extends Record<string, any> = Record<string, any>>(props: TSDocReflectionClassProps<T>): _alloy_js_core9.Children;
9
13
  /**
10
- * Generates a TypeScript interface property for the given reflection class.
14
+ * Uses the `useReflectionClass` hook to retrieve the reflection class from the context, and then renders a `TSDocReflectionClass` component with the retrieved reflection class. This is a convenience component that allows you to easily render a TSDoc documentation block for the current reflection class without having to manually retrieve the reflection class from the context.
11
15
  */
12
- declare function TSDocReflectionProperty(props: TSDocProps): _alloy_js_core0.Children;
16
+ declare function TSDocContextClass<T extends Record<string, any> = Record<string, any>>(props: TSDocProps): _alloy_js_core9.Children;
17
+ interface TSDocReflectionPropertyProps extends TSDocProps {
18
+ reflection: ReflectionProperty;
19
+ }
13
20
  /**
14
- * Generates a TypeScript interface property for the given reflection class.
21
+ * Generates a TSDoc documentation block for the given reflection property. This component will render the description of the reflection as the main content of the documentation block, and will render any additional attributes (such as title, alias, domain, permission, etc.) as tags in the documentation block. If there are child elements provided, they will be rendered as a list below the main content of the documentation block. This is useful for rendering additional details about the reflection that may not be included in the description, such as information about parameters of a method or properties of a class.
15
22
  */
16
- declare function TSDocReflectionMethod(props: TSDocProps): _alloy_js_core0.Children;
23
+ declare function TSDocReflectionProperty(props: TSDocReflectionPropertyProps): _alloy_js_core9.Children;
24
+ /**
25
+ * Uses the `useReflectionProperty` hook to retrieve the reflection property from the context, and then renders a `TSDocReflectionProperty` component with the retrieved reflection property. This is a convenience component that allows you to easily render a TSDoc documentation block for the current reflection property without having to manually retrieve the reflection property from the context.
26
+ */
27
+ declare function TSDocContextProperty(props: TSDocProps): _alloy_js_core9.Children;
28
+ interface TSDocReflectionMethodProps extends TSDocProps {
29
+ reflection: ReflectionMethod;
30
+ }
31
+ /**
32
+ * Generates a TSDoc documentation block for the given reflection method. This component will render the description of the reflection as the main content of the documentation block, and will render any additional attributes (such as title, alias, domain, permission, etc.) as tags in the documentation block. If there are child elements provided, they will be rendered as a list below the main content of the documentation block. Additionally, this component will render information about the parameters and return type of the method, if available.
33
+ */
34
+ declare function TSDocReflectionMethod(props: TSDocReflectionMethodProps): _alloy_js_core9.Children;
35
+ /**
36
+ * Uses the `useReflectionMethod` hook to retrieve the reflection method from the context, and then renders a `TSDocReflectionMethod` component with the retrieved reflection method. This is a convenience component that allows you to easily render a TSDoc documentation block for the current reflection method without having to manually retrieve the reflection method from the context.
37
+ */
38
+ declare function TSDocContextMethod(props: TSDocProps): _alloy_js_core9.Children;
39
+ declare type __ΩTSDocReflectionClassProps = any[];
40
+ declare type __ΩTSDocReflectionPropertyProps = any[];
41
+ declare type __ΩTSDocReflectionMethodProps = any[];
17
42
  //#endregion
18
- export { TSDocReflectionClass, TSDocReflectionMethod, TSDocReflectionProperty };
43
+ export { TSDocContextClass, TSDocContextMethod, TSDocContextProperty, TSDocReflectionClass, TSDocReflectionClassProps, TSDocReflectionMethod, TSDocReflectionMethodProps, TSDocReflectionProperty, TSDocReflectionPropertyProps, __ΩTSDocReflectionClassProps, __ΩTSDocReflectionMethodProps, __ΩTSDocReflectionPropertyProps };
19
44
  //# sourceMappingURL=tsdoc-reflection.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tsdoc-reflection.d.cts","names":[],"sources":["../../../src/typescript/components/tsdoc-reflection.tsx"],"sourcesContent":[],"mappings":";;;;;;;AAwCgB,iBAAA,oBAAoB,CAAA,UACxB,MADwB,CAAA,MAAA,EAAA,GAAA,CAAA,GACF,MADE,CAAA,MAAA,EAAA,GAAA,CAAA,CAAA,CAAA,KAAA,EAE3B,UAF2B,CAAA,EAEjB,eAAA,CAAA,QAFiB;;;;AAEjB,iBAyEH,uBAAA,CAzEG,KAAA,EAyE4B,UAzE5B,CAAA,EAyEsC,eAAA,CAAA,QAzEtC;;AAyEnB;AA8BA;iBAAgB,qBAAA,QAA6B,aAAU,eAAA,CAAA"}
1
+ {"version":3,"file":"tsdoc-reflection.d.cts","names":[],"sources":["../../../src/typescript/components/tsdoc-reflection.tsx"],"sourcesContent":[],"mappings":";;;;;UAqDiB,oCACL,sBAAsB,6BACxB;cACI,gBAAgB;;AAH9B;;;AAG8B,iBAMd,oBANc,CAAA,UAOlB,MAPkB,CAAA,MAAA,EAAA,GAAA,CAAA,GAOI,MAPJ,CAAA,MAAA,EAAA,GAAA,CAAA,CAAA,CAAA,KAAA,EAQrB,yBARqB,CAQK,CARL,CAAA,CAAA,EAQI,eAAA,CAAG,QARP;;;;AAMd,iBAoFA,iBApFoB,CAAA,UAqFxB,MArFwB,CAAA,MAAA,EAAA,GAAA,CAAA,GAqFF,MArFE,CAAA,MAAA,EAAA,GAAA,CAAA,CAAA,CAAA,KAAA,EAsF3B,UAtF2B,CAAA,EAsFjB,eAAA,CAAA,QAtFiB;AACxB,UAkGK,4BAAA,SAAqC,UAlG1C,CAAA;EAAsB,UAAA,EAmGpB,kBAnGoB;;;;;AAmFlB,iBAsBA,uBAAA,CAtBiB,KAAA,EAsBc,4BAtBd,CAAA,EAsB0C,eAAA,CAAA,QAtB1C;;;;AAEd,iBA8EH,oBAAA,CA9EG,KAAA,EA8EyB,UA9EzB,CAAA,EA8EmC,eAAA,CAAA,QA9EnC;AAAA,UAwFF,0BAAA,SAAmC,UAxFjC,CAAA;EAaF,UAAA,EA4EH,gBA5EG;AAOjB;AA0DA;AAUA;AAOA;AAoEgB,iBApEA,qBAAA,CAoE0B,KAAU,EApEP,0BAoEO,CAAA,EApEmB,eAAA,CAAA,QAoEnB;;;;iBAApC,kBAAA,QAA0B,aAAU,eAAA,CAAA"}
@@ -1,19 +1,44 @@
1
1
  import { TSDocProps } from "./tsdoc.mjs";
2
2
  import * as _alloy_js_core11 from "@alloy-js/core";
3
+ import { ReflectionClass, ReflectionMethod, ReflectionProperty } from "@powerlines/deepkit/vendor/type";
3
4
 
4
5
  //#region src/typescript/components/tsdoc-reflection.d.ts
6
+ interface TSDocReflectionClassProps<T extends Record<string, any> = Record<string, any>> extends TSDocProps {
7
+ reflection: ReflectionClass<T>;
8
+ }
5
9
  /**
6
- * Generates a TypeScript interface property for the given reflection class.
10
+ * Generates a TSDoc documentation block for the given reflection class. This component will render the description of the reflection as the main content of the documentation block, and will render any additional attributes (such as title, alias, domain, permission, etc.) as tags in the documentation block. If there are child elements provided, they will be rendered as a list below the main content of the documentation block. This is useful for rendering additional details about the reflection that may not be included in the description, such as information about properties or methods of a class.
7
11
  */
8
- declare function TSDocReflectionClass<T extends Record<string, any> = Record<string, any>>(props: TSDocProps): _alloy_js_core11.Children;
12
+ declare function TSDocReflectionClass<T extends Record<string, any> = Record<string, any>>(props: TSDocReflectionClassProps<T>): _alloy_js_core11.Children;
9
13
  /**
10
- * Generates a TypeScript interface property for the given reflection class.
14
+ * Uses the `useReflectionClass` hook to retrieve the reflection class from the context, and then renders a `TSDocReflectionClass` component with the retrieved reflection class. This is a convenience component that allows you to easily render a TSDoc documentation block for the current reflection class without having to manually retrieve the reflection class from the context.
11
15
  */
12
- declare function TSDocReflectionProperty(props: TSDocProps): _alloy_js_core11.Children;
16
+ declare function TSDocContextClass<T extends Record<string, any> = Record<string, any>>(props: TSDocProps): _alloy_js_core11.Children;
17
+ interface TSDocReflectionPropertyProps extends TSDocProps {
18
+ reflection: ReflectionProperty;
19
+ }
13
20
  /**
14
- * Generates a TypeScript interface property for the given reflection class.
21
+ * Generates a TSDoc documentation block for the given reflection property. This component will render the description of the reflection as the main content of the documentation block, and will render any additional attributes (such as title, alias, domain, permission, etc.) as tags in the documentation block. If there are child elements provided, they will be rendered as a list below the main content of the documentation block. This is useful for rendering additional details about the reflection that may not be included in the description, such as information about parameters of a method or properties of a class.
15
22
  */
16
- declare function TSDocReflectionMethod(props: TSDocProps): _alloy_js_core11.Children;
23
+ declare function TSDocReflectionProperty(props: TSDocReflectionPropertyProps): _alloy_js_core11.Children;
24
+ /**
25
+ * Uses the `useReflectionProperty` hook to retrieve the reflection property from the context, and then renders a `TSDocReflectionProperty` component with the retrieved reflection property. This is a convenience component that allows you to easily render a TSDoc documentation block for the current reflection property without having to manually retrieve the reflection property from the context.
26
+ */
27
+ declare function TSDocContextProperty(props: TSDocProps): _alloy_js_core11.Children;
28
+ interface TSDocReflectionMethodProps extends TSDocProps {
29
+ reflection: ReflectionMethod;
30
+ }
31
+ /**
32
+ * Generates a TSDoc documentation block for the given reflection method. This component will render the description of the reflection as the main content of the documentation block, and will render any additional attributes (such as title, alias, domain, permission, etc.) as tags in the documentation block. If there are child elements provided, they will be rendered as a list below the main content of the documentation block. Additionally, this component will render information about the parameters and return type of the method, if available.
33
+ */
34
+ declare function TSDocReflectionMethod(props: TSDocReflectionMethodProps): _alloy_js_core11.Children;
35
+ /**
36
+ * Uses the `useReflectionMethod` hook to retrieve the reflection method from the context, and then renders a `TSDocReflectionMethod` component with the retrieved reflection method. This is a convenience component that allows you to easily render a TSDoc documentation block for the current reflection method without having to manually retrieve the reflection method from the context.
37
+ */
38
+ declare function TSDocContextMethod(props: TSDocProps): _alloy_js_core11.Children;
39
+ declare type __ΩTSDocReflectionClassProps = any[];
40
+ declare type __ΩTSDocReflectionPropertyProps = any[];
41
+ declare type __ΩTSDocReflectionMethodProps = any[];
17
42
  //#endregion
18
- export { TSDocReflectionClass, TSDocReflectionMethod, TSDocReflectionProperty };
43
+ export { TSDocContextClass, TSDocContextMethod, TSDocContextProperty, TSDocReflectionClass, TSDocReflectionClassProps, TSDocReflectionMethod, TSDocReflectionMethodProps, TSDocReflectionProperty, TSDocReflectionPropertyProps, __ΩTSDocReflectionClassProps, __ΩTSDocReflectionMethodProps, __ΩTSDocReflectionPropertyProps };
19
44
  //# sourceMappingURL=tsdoc-reflection.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tsdoc-reflection.d.mts","names":[],"sources":["../../../src/typescript/components/tsdoc-reflection.tsx"],"sourcesContent":[],"mappings":";;;;;;;AAwCgB,iBAAA,oBAAoB,CAAA,UACxB,MADwB,CAAA,MAAA,EAAA,GAAA,CAAA,GACF,MADE,CAAA,MAAA,EAAA,GAAA,CAAA,CAAA,CAAA,KAAA,EAE3B,UAF2B,CAAA,EAEjB,gBAAA,CAAA,QAFiB;;;;AAEjB,iBAyEH,uBAAA,CAzEG,KAAA,EAyE4B,UAzE5B,CAAA,EAyEsC,gBAAA,CAAA,QAzEtC;;AAyEnB;AA8BA;iBAAgB,qBAAA,QAA6B,aAAU,gBAAA,CAAA"}
1
+ {"version":3,"file":"tsdoc-reflection.d.mts","names":[],"sources":["../../../src/typescript/components/tsdoc-reflection.tsx"],"sourcesContent":[],"mappings":";;;;;UAqDiB,oCACL,sBAAsB,6BACxB;cACI,gBAAgB;;AAH9B;;;AAG8B,iBAMd,oBANc,CAAA,UAOlB,MAPkB,CAAA,MAAA,EAAA,GAAA,CAAA,GAOI,MAPJ,CAAA,MAAA,EAAA,GAAA,CAAA,CAAA,CAAA,KAAA,EAQrB,yBARqB,CAQK,CARL,CAAA,CAAA,EAQI,gBAAA,CAAG,QARP;;;;AAMd,iBAoFA,iBApFoB,CAAA,UAqFxB,MArFwB,CAAA,MAAA,EAAA,GAAA,CAAA,GAqFF,MArFE,CAAA,MAAA,EAAA,GAAA,CAAA,CAAA,CAAA,KAAA,EAsF3B,UAtF2B,CAAA,EAsFjB,gBAAA,CAAA,QAtFiB;AACxB,UAkGK,4BAAA,SAAqC,UAlG1C,CAAA;EAAsB,UAAA,EAmGpB,kBAnGoB;;;;;AAmFlB,iBAsBA,uBAAA,CAtBiB,KAAA,EAsBc,4BAtBd,CAAA,EAsB0C,gBAAA,CAAA,QAtB1C;;;;AAEd,iBA8EH,oBAAA,CA9EG,KAAA,EA8EyB,UA9EzB,CAAA,EA8EmC,gBAAA,CAAA,QA9EnC;AAAA,UAwFF,0BAAA,SAAmC,UAxFjC,CAAA;EAaF,UAAA,EA4EH,gBA5EG;AAOjB;AA0DA;AAUA;AAOA;AAoEgB,iBApEA,qBAAA,CAoE0B,KAAU,EApEP,0BAoEO,CAAA,EApEmB,gBAAA,CAAA,QAoEnB;;;;iBAApC,kBAAA,QAA0B,aAAU,gBAAA,CAAA"}
@@ -1,29 +1,37 @@
1
1
  import { useReflectionClass, useReflectionMethod, useReflectionProperty } from "../../core/contexts/reflection.mjs";
2
- import { TSDoc, TSDocAttributesTags } from "./tsdoc.mjs";
3
- import { createComponent, memo, mergeProps } from "@alloy-js/core/jsx-runtime";
4
- import { List, Show, childrenArray, code, computed, splitProps } from "@alloy-js/core";
2
+ import { Spacing } from "../../core/components/spacing.mjs";
3
+ import { TSDoc, TSDocAttributesTags, TSDocParam, TSDocReturns } from "./tsdoc.mjs";
4
+ import { createComponent, createIntrinsic, memo, mergeProps } from "@alloy-js/core/jsx-runtime";
5
+ import { For, List, Show, childrenArray, code, computed, splitProps } from "@alloy-js/core";
5
6
  import { titleCase } from "@stryke/string-format/title-case";
6
7
  import { isUndefined } from "@stryke/type-checks/is-undefined";
8
+ import { ReflectionKind, stringifyType } from "@powerlines/deepkit/vendor/type";
7
9
  import { isString } from "@stryke/type-checks/is-string";
10
+ import { isSetObject } from "@stryke/type-checks";
8
11
  import { isSetString } from "@stryke/type-checks/is-set-string";
9
12
 
10
13
  //#region src/typescript/components/tsdoc-reflection.tsx
11
14
  /**
12
- * Generates a TypeScript interface property for the given reflection class.
15
+ * Generates a TSDoc documentation block for the given reflection class. This component will render the description of the reflection as the main content of the documentation block, and will render any additional attributes (such as title, alias, domain, permission, etc.) as tags in the documentation block. If there are child elements provided, they will be rendered as a list below the main content of the documentation block. This is useful for rendering additional details about the reflection that may not be included in the description, such as information about properties or methods of a class.
13
16
  */
14
17
  function TSDocReflectionClass(props) {
15
- const [{ children, heading }, rest] = splitProps(props, ["heading", "children"]);
16
- const reflectionClass = useReflectionClass();
17
- const title = computed(() => reflectionClass.reflection.getTitle() || titleCase(reflectionClass.reflection.getName()));
18
- const computedHeading = computed(() => heading || reflectionClass.reflection.getDescription() || title.value);
19
- const alias = computed(() => reflectionClass.reflection.getAlias());
20
- const domain = computed(() => reflectionClass.reflection.getDomain());
21
- const permission = computed(() => reflectionClass.reflection.getPermission());
22
- const readonly = computed(() => reflectionClass.reflection.isReadonly());
23
- const internal = computed(() => reflectionClass.reflection.isInternal());
24
- const ignore = computed(() => reflectionClass.reflection.isIgnored());
25
- const hidden = computed(() => reflectionClass.reflection.isHidden());
18
+ const [{ children, heading, reflection }, rest] = splitProps(props, [
19
+ "heading",
20
+ "children",
21
+ "reflection"
22
+ ]);
23
+ if (!isSetObject(reflection)) return null;
24
+ const title = computed(() => reflection.getTitle() || titleCase(reflection.getName()));
25
+ const computedHeading = computed(() => heading || reflection.getDescription() || title.value);
26
+ const alias = computed(() => reflection.getAlias());
27
+ const domain = computed(() => reflection.getDomain());
28
+ const permission = computed(() => reflection.getPermission());
29
+ const readonly = computed(() => reflection.isReadonly());
30
+ const internal = computed(() => reflection.isInternal());
31
+ const ignore = computed(() => reflection.isIgnored());
32
+ const hidden = computed(() => reflection.isHidden());
26
33
  if (!computedHeading.value || isSetString(computedHeading.value) && computedHeading.value.trim() === "") return null;
34
+ const hasAttributes = computed(() => isSetString(title.value) || !isUndefined(alias.value) && alias.value.length > 0 || !isUndefined(permission.value) && permission.value.length > 0 || isSetString(domain.value) || !isUndefined(readonly.value) || !isUndefined(internal.value) || !isUndefined(ignore.value) || !isUndefined(hidden.value));
27
35
  return createComponent(TSDoc, mergeProps(rest, {
28
36
  get heading() {
29
37
  return memo(() => !!isSetString(computedHeading.value))() ? computedHeading.value.trim() : computedHeading.value;
@@ -31,7 +39,7 @@ function TSDocReflectionClass(props) {
31
39
  get children() {
32
40
  return [createComponent(Show, {
33
41
  get when() {
34
- return isSetString(title.value) || !isUndefined(alias.value) && alias.value.length > 0 || !isUndefined(permission.value) && permission.value.length > 0 || isSetString(domain.value) || !isUndefined(readonly.value) || !isUndefined(internal.value) || !isUndefined(ignore.value) || !isUndefined(hidden.value);
42
+ return hasAttributes.value;
35
43
  },
36
44
  get children() {
37
45
  return createComponent(TSDocAttributesTags, {
@@ -63,114 +71,234 @@ function TSDocReflectionClass(props) {
63
71
  }
64
72
  }), createComponent(Show, {
65
73
  get when() {
66
- return memo(() => !!Boolean(children))() && childrenArray(() => children).length > 0;
74
+ return memo(() => !!!isUndefined(children))() && childrenArray(() => children).filter(Boolean).length > 0;
67
75
  },
68
76
  get children() {
69
- return createComponent(List, { get children() {
77
+ return [createComponent(Show, {
78
+ get when() {
79
+ return hasAttributes.value;
80
+ },
81
+ get children() {
82
+ return createComponent(Spacing, {});
83
+ }
84
+ }), createComponent(List, { get children() {
70
85
  return childrenArray(() => children);
71
- } });
86
+ } })];
72
87
  }
73
88
  })];
74
89
  }
75
90
  }));
76
91
  }
77
92
  /**
78
- * Generates a TypeScript interface property for the given reflection class.
93
+ * Uses the `useReflectionClass` hook to retrieve the reflection class from the context, and then renders a `TSDocReflectionClass` component with the retrieved reflection class. This is a convenience component that allows you to easily render a TSDoc documentation block for the current reflection class without having to manually retrieve the reflection class from the context.
94
+ */
95
+ function TSDocContextClass(props) {
96
+ const reflectionClass = useReflectionClass();
97
+ return createComponent(Show, {
98
+ get when() {
99
+ return isSetObject(reflectionClass.reflection);
100
+ },
101
+ get children() {
102
+ return createComponent(TSDocReflectionClass, mergeProps(props, { get reflection() {
103
+ return reflectionClass.reflection;
104
+ } }));
105
+ }
106
+ });
107
+ }
108
+ /**
109
+ * Generates a TSDoc documentation block for the given reflection property. This component will render the description of the reflection as the main content of the documentation block, and will render any additional attributes (such as title, alias, domain, permission, etc.) as tags in the documentation block. If there are child elements provided, they will be rendered as a list below the main content of the documentation block. This is useful for rendering additional details about the reflection that may not be included in the description, such as information about parameters of a method or properties of a class.
79
110
  */
80
111
  function TSDocReflectionProperty(props) {
81
- const [{ children }, rest] = splitProps(props, ["children"]);
82
- const context = useReflectionProperty();
112
+ const [{ children, reflection }, rest] = splitProps(props, ["children", "reflection"]);
113
+ if (!isSetObject(reflection)) return null;
114
+ const hasAttributes = computed(() => isSetString(reflection.getTitle()) || !isUndefined(reflection.getAlias()) && reflection.getAlias().length > 0 || !isUndefined(reflection.getPermission()) && reflection.getPermission().length > 0 || isSetString(reflection.getDomain()) || !isUndefined(reflection.isReadonly()) || !isUndefined(reflection.isInternal()) || !isUndefined(reflection.isIgnored()) || !isUndefined(reflection.isHidden()) || reflection.hasDefault() && !isUndefined(reflection.getDefaultValue()));
83
115
  return createComponent(TSDoc, mergeProps({ get heading() {
84
- return context.getDescription();
116
+ return reflection.getDescription();
85
117
  } }, rest, { get children() {
86
- return [createComponent(TSDocAttributesTags, {
87
- type: context,
88
- get title() {
89
- return context.getTitle();
90
- },
91
- get alias() {
92
- return context.getAlias();
93
- },
94
- get domain() {
95
- return context.getDomain();
96
- },
97
- get permission() {
98
- return context.getPermission();
99
- },
100
- get readonly() {
101
- return context.isReadonly();
102
- },
103
- get internal() {
104
- return context.isInternal();
105
- },
106
- get ignore() {
107
- return context.isIgnored();
108
- },
109
- get hidden() {
110
- return context.isHidden();
118
+ return [createComponent(Show, {
119
+ get when() {
120
+ return hasAttributes.value;
111
121
  },
112
- get defaultValue() {
113
- return context.getDefaultValue();
122
+ get children() {
123
+ return createComponent(TSDocAttributesTags, {
124
+ type: reflection,
125
+ get title() {
126
+ return reflection.getTitle();
127
+ },
128
+ get alias() {
129
+ return reflection.getAlias();
130
+ },
131
+ get domain() {
132
+ return reflection.getDomain();
133
+ },
134
+ get permission() {
135
+ return reflection.getPermission();
136
+ },
137
+ get readonly() {
138
+ return reflection.isReadonly();
139
+ },
140
+ get internal() {
141
+ return reflection.isInternal();
142
+ },
143
+ get ignore() {
144
+ return reflection.isIgnored();
145
+ },
146
+ get hidden() {
147
+ return reflection.isHidden();
148
+ },
149
+ get defaultValue() {
150
+ return reflection.getDefaultValue();
151
+ }
152
+ });
114
153
  }
115
154
  }), createComponent(Show, {
116
155
  get when() {
117
- return memo(() => !!Boolean(children))() && childrenArray(() => children).length > 0;
156
+ return memo(() => !!!isUndefined(children))() && childrenArray(() => children).filter(Boolean).length > 0;
118
157
  },
119
158
  get children() {
120
- return createComponent(List, { get children() {
159
+ return [createComponent(Show, {
160
+ get when() {
161
+ return hasAttributes.value;
162
+ },
163
+ get children() {
164
+ return createComponent(Spacing, {});
165
+ }
166
+ }), createComponent(List, { get children() {
121
167
  return childrenArray(() => children);
122
- } });
168
+ } })];
123
169
  }
124
170
  })];
125
171
  } }));
126
172
  }
127
173
  /**
128
- * Generates a TypeScript interface property for the given reflection class.
174
+ * Uses the `useReflectionProperty` hook to retrieve the reflection property from the context, and then renders a `TSDocReflectionProperty` component with the retrieved reflection property. This is a convenience component that allows you to easily render a TSDoc documentation block for the current reflection property without having to manually retrieve the reflection property from the context.
175
+ */
176
+ function TSDocContextProperty(props) {
177
+ const reflection = useReflectionProperty();
178
+ return createComponent(Show, {
179
+ get when() {
180
+ return isSetObject(reflection);
181
+ },
182
+ get children() {
183
+ return createComponent(TSDocReflectionProperty, mergeProps(props, { reflection }));
184
+ }
185
+ });
186
+ }
187
+ /**
188
+ * Generates a TSDoc documentation block for the given reflection method. This component will render the description of the reflection as the main content of the documentation block, and will render any additional attributes (such as title, alias, domain, permission, etc.) as tags in the documentation block. If there are child elements provided, they will be rendered as a list below the main content of the documentation block. Additionally, this component will render information about the parameters and return type of the method, if available.
129
189
  */
130
190
  function TSDocReflectionMethod(props) {
131
- const [{ children }, rest] = splitProps(props, ["children"]);
132
- const context = useReflectionMethod();
191
+ const [{ children, reflection }, rest] = splitProps(props, ["children", "reflection"]);
192
+ if (!isSetObject(reflection)) return null;
193
+ const heading = computed(() => reflection.getDescription() || (isString(reflection.getName()) ? code`${String(reflection.getName())} method definition` : void 0));
133
194
  return createComponent(TSDoc, mergeProps({ get heading() {
134
- return context.getDescription() || (isString(context.getName()) ? code`${String(context.getName())} method definition` : void 0);
195
+ return heading.value;
135
196
  } }, rest, { get children() {
136
- return [createComponent(TSDocAttributesTags, {
137
- get title() {
138
- return context.getTitle();
139
- },
140
- get alias() {
141
- return context.getAlias();
142
- },
143
- get domain() {
144
- return context.getDomain();
145
- },
146
- get permission() {
147
- return context.getPermission();
148
- },
149
- get readonly() {
150
- return context.isReadonly();
151
- },
152
- get internal() {
153
- return context.isInternal();
154
- },
155
- get ignore() {
156
- return context.isIgnored();
157
- },
158
- get hidden() {
159
- return context.isHidden();
160
- }
161
- }), createComponent(Show, {
162
- get when() {
163
- return memo(() => !!Boolean(children))() && childrenArray(() => children).length > 0;
164
- },
165
- get children() {
166
- return createComponent(List, { get children() {
167
- return childrenArray(() => children);
168
- } });
169
- }
170
- })];
197
+ return [
198
+ createComponent(TSDocAttributesTags, {
199
+ get title() {
200
+ return reflection.getTitle();
201
+ },
202
+ get alias() {
203
+ return reflection.getAlias();
204
+ },
205
+ get domain() {
206
+ return reflection.getDomain();
207
+ },
208
+ get permission() {
209
+ return reflection.getPermission();
210
+ },
211
+ get readonly() {
212
+ return reflection.isReadonly();
213
+ },
214
+ get internal() {
215
+ return reflection.isInternal();
216
+ },
217
+ get ignore() {
218
+ return reflection.isIgnored();
219
+ },
220
+ get hidden() {
221
+ return reflection.isHidden();
222
+ }
223
+ }),
224
+ createComponent(Show, {
225
+ get when() {
226
+ return memo(() => !!Boolean(children))() && childrenArray(() => children).length > 0;
227
+ },
228
+ get children() {
229
+ return createComponent(List, { get children() {
230
+ return childrenArray(() => children);
231
+ } });
232
+ }
233
+ }),
234
+ createComponent(Show, {
235
+ get when() {
236
+ return reflection.getParameters().length > 0;
237
+ },
238
+ get children() {
239
+ return [createComponent(Spacing, {}), createComponent(For, {
240
+ get each() {
241
+ return reflection.getParameters();
242
+ },
243
+ hardline: true,
244
+ get ender() {
245
+ return createIntrinsic("hbr", {});
246
+ },
247
+ children: (param) => createComponent(TSDocParam, {
248
+ get name() {
249
+ return param.getName();
250
+ },
251
+ get optional() {
252
+ return param.isOptional();
253
+ },
254
+ get defaultValue() {
255
+ return memo(() => !!param.hasDefault())() ? param.getDefaultValue() : void 0;
256
+ },
257
+ get children() {
258
+ return createComponent(Show, {
259
+ get when() {
260
+ return Boolean(param.parameter.description);
261
+ },
262
+ get fallback() {
263
+ return code`A parameter to provide a ${param.getName()} value to the function.`;
264
+ },
265
+ get children() {
266
+ return param.parameter.description;
267
+ }
268
+ });
269
+ }
270
+ })
271
+ })];
272
+ }
273
+ }),
274
+ createComponent(Show, {
275
+ get when() {
276
+ return reflection.getReturnType().kind !== ReflectionKind.void;
277
+ },
278
+ get children() {
279
+ return [createComponent(Spacing, {}), createComponent(TSDocReturns, { get children() {
280
+ return code`The return value of the function, which is of type ${stringifyType(reflection.getReturnType())}.`;
281
+ } })];
282
+ }
283
+ })
284
+ ];
171
285
  } }));
172
286
  }
287
+ /**
288
+ * Uses the `useReflectionMethod` hook to retrieve the reflection method from the context, and then renders a `TSDocReflectionMethod` component with the retrieved reflection method. This is a convenience component that allows you to easily render a TSDoc documentation block for the current reflection method without having to manually retrieve the reflection method from the context.
289
+ */
290
+ function TSDocContextMethod(props) {
291
+ const reflection = useReflectionMethod();
292
+ return createComponent(Show, {
293
+ get when() {
294
+ return isSetObject(reflection);
295
+ },
296
+ get children() {
297
+ return createComponent(TSDocReflectionMethod, mergeProps(props, { reflection }));
298
+ }
299
+ });
300
+ }
173
301
 
174
302
  //#endregion
175
- export { TSDocReflectionClass, TSDocReflectionMethod, TSDocReflectionProperty };
303
+ export { TSDocContextClass, TSDocContextMethod, TSDocContextProperty, TSDocReflectionClass, TSDocReflectionMethod, TSDocReflectionProperty };
176
304
  //# sourceMappingURL=tsdoc-reflection.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"tsdoc-reflection.mjs","names":["childrenArray","code","computed","List","Show","splitProps","titleCase","isSetString","isString","isUndefined","useReflectionClass","useReflectionMethod","useReflectionProperty","TSDoc","TSDocAttributesTags","TSDocReflectionClass","props","children","heading","rest","reflectionClass","title","reflection","getTitle","getName","computedHeading","getDescription","value","alias","getAlias","domain","getDomain","permission","getPermission","readonly","isReadonly","internal","isInternal","ignore","isIgnored","hidden","isHidden","trim","_$createComponent","_$mergeProps","_$memo","when","length","Boolean","TSDocReflectionProperty","context","type","defaultValue","getDefaultValue","TSDocReflectionMethod","String","undefined"],"sources":["../../../src/typescript/components/tsdoc-reflection.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 childrenArray,\n code,\n computed,\n List,\n Show,\n splitProps\n} from \"@alloy-js/core\";\nimport { titleCase } from \"@stryke/string-format/title-case\";\nimport { isSetString } from \"@stryke/type-checks/is-set-string\";\nimport { isString } from \"@stryke/type-checks/is-string\";\nimport { isUndefined } from \"@stryke/type-checks/is-undefined\";\nimport {\n useReflectionClass,\n useReflectionMethod,\n useReflectionProperty\n} from \"../../core/contexts/reflection\";\nimport { TSDoc, TSDocAttributesTags, TSDocProps } from \"./tsdoc\";\n\n/**\n * Generates a TypeScript interface property for the given reflection class.\n */\nexport function TSDocReflectionClass<\n T extends Record<string, any> = Record<string, any>\n>(props: TSDocProps) {\n const [{ children, heading }, rest] = splitProps(props, [\n \"heading\",\n \"children\"\n ]);\n\n const reflectionClass = useReflectionClass<T>();\n\n const title = computed(\n () =>\n reflectionClass.reflection.getTitle() ||\n titleCase(reflectionClass.reflection.getName())\n );\n const computedHeading = computed(\n () => heading || reflectionClass.reflection.getDescription() || title.value\n );\n\n const alias = computed(() => reflectionClass.reflection.getAlias());\n const domain = computed(() => reflectionClass.reflection.getDomain());\n const permission = computed(() => reflectionClass.reflection.getPermission());\n const readonly = computed(() => reflectionClass.reflection.isReadonly());\n const internal = computed(() => reflectionClass.reflection.isInternal());\n const ignore = computed(() => reflectionClass.reflection.isIgnored());\n const hidden = computed(() => reflectionClass.reflection.isHidden());\n\n if (\n !computedHeading.value ||\n (isSetString(computedHeading.value) && computedHeading.value.trim() === \"\")\n ) {\n return null;\n }\n\n return (\n <TSDoc\n {...rest}\n heading={\n isSetString(computedHeading.value)\n ? computedHeading.value.trim()\n : computedHeading.value\n }>\n <Show\n when={\n isSetString(title.value) ||\n (!isUndefined(alias.value) && alias.value.length > 0) ||\n (!isUndefined(permission.value) && permission.value.length > 0) ||\n isSetString(domain.value) ||\n !isUndefined(readonly.value) ||\n !isUndefined(internal.value) ||\n !isUndefined(ignore.value) ||\n !isUndefined(hidden.value)\n }>\n <TSDocAttributesTags\n title={title.value}\n alias={alias.value}\n domain={domain.value}\n permission={permission.value}\n readonly={readonly.value}\n internal={internal.value}\n ignore={ignore.value}\n hidden={hidden.value}\n />\n </Show>\n <Show\n when={Boolean(children) && childrenArray(() => children).length > 0}>\n <List>{childrenArray(() => children)}</List>\n </Show>\n </TSDoc>\n );\n}\n\n/**\n * Generates a TypeScript interface property for the given reflection class.\n */\nexport function TSDocReflectionProperty(props: TSDocProps) {\n const [{ children }, rest] = splitProps(props, [\"children\"]);\n\n const context = useReflectionProperty();\n\n return (\n <TSDoc heading={context.getDescription()} {...rest}>\n <TSDocAttributesTags\n type={context}\n title={context.getTitle()}\n alias={context.getAlias()}\n domain={context.getDomain()}\n permission={context.getPermission()}\n readonly={context.isReadonly()}\n internal={context.isInternal()}\n ignore={context.isIgnored()}\n hidden={context.isHidden()}\n defaultValue={context.getDefaultValue()}\n />\n <Show\n when={Boolean(children) && childrenArray(() => children).length > 0}>\n <List>{childrenArray(() => children)}</List>\n </Show>\n </TSDoc>\n );\n}\n\n/**\n * Generates a TypeScript interface property for the given reflection class.\n */\nexport function TSDocReflectionMethod(props: TSDocProps) {\n const [{ children }, rest] = splitProps(props, [\"children\"]);\n\n const context = useReflectionMethod();\n\n return (\n <TSDoc\n heading={\n context.getDescription() ||\n (isString(context.getName())\n ? code`${String(context.getName())} method definition`\n : undefined)\n }\n {...rest}>\n <TSDocAttributesTags\n title={context.getTitle()}\n alias={context.getAlias()}\n domain={context.getDomain()}\n permission={context.getPermission()}\n readonly={context.isReadonly()}\n internal={context.isInternal()}\n ignore={context.isIgnored()}\n hidden={context.isHidden()}\n />\n <Show\n when={Boolean(children) && childrenArray(() => children).length > 0}>\n <List>{childrenArray(() => children)}</List>\n </Show>\n </TSDoc>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"tsdoc-reflection.mjs","names":["childrenArray","code","computed","For","List","Show","splitProps","ReflectionKind","stringifyType","titleCase","isSetObject","isSetString","isString","isUndefined","Spacing","useReflectionClass","useReflectionMethod","useReflectionProperty","TSDoc","TSDocAttributesTags","TSDocParam","TSDocReturns","TSDocReflectionClass","props","children","heading","reflection","rest","title","getTitle","getName","computedHeading","getDescription","value","alias","getAlias","domain","getDomain","permission","getPermission","readonly","isReadonly","internal","isInternal","ignore","isIgnored","hidden","isHidden","trim","hasAttributes","length","_$createComponent","_$mergeProps","_$memo","when","filter","Boolean","TSDocContextClass","reflectionClass","TSDocReflectionProperty","hasDefault","getDefaultValue","type","defaultValue","TSDocContextProperty","TSDocReflectionMethod","String","undefined","getParameters","each","hardline","ender","_$createIntrinsic","param","name","optional","isOptional","parameter","description","fallback","getReturnType","kind","void","TSDocContextMethod"],"sources":["../../../src/typescript/components/tsdoc-reflection.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 childrenArray,\n code,\n computed,\n For,\n List,\n Show,\n splitProps\n} from \"@alloy-js/core\";\nimport {\n ReflectionClass,\n ReflectionKind,\n ReflectionMethod,\n ReflectionProperty,\n stringifyType\n} from \"@powerlines/deepkit/vendor/type\";\nimport { titleCase } from \"@stryke/string-format/title-case\";\nimport { isSetObject } from \"@stryke/type-checks\";\nimport { isSetString } from \"@stryke/type-checks/is-set-string\";\nimport { isString } from \"@stryke/type-checks/is-string\";\nimport { isUndefined } from \"@stryke/type-checks/is-undefined\";\nimport { Spacing } from \"../../core/components/spacing\";\nimport {\n useReflectionClass,\n useReflectionMethod,\n useReflectionProperty\n} from \"../../core/contexts/reflection\";\nimport {\n TSDoc,\n TSDocAttributesTags,\n TSDocParam,\n TSDocProps,\n TSDocReturns\n} from \"./tsdoc\";\n\nexport interface TSDocReflectionClassProps<\n T extends Record<string, any> = Record<string, any>\n> extends TSDocProps {\n reflection: ReflectionClass<T>;\n}\n\n/**\n * Generates a TSDoc documentation block for the given reflection class. This component will render the description of the reflection as the main content of the documentation block, and will render any additional attributes (such as title, alias, domain, permission, etc.) as tags in the documentation block. If there are child elements provided, they will be rendered as a list below the main content of the documentation block. This is useful for rendering additional details about the reflection that may not be included in the description, such as information about properties or methods of a class.\n */\nexport function TSDocReflectionClass<\n T extends Record<string, any> = Record<string, any>\n>(props: TSDocReflectionClassProps<T>) {\n const [{ children, heading, reflection }, rest] = splitProps(props, [\n \"heading\",\n \"children\",\n \"reflection\"\n ]);\n\n if (!isSetObject(reflection)) {\n return null;\n }\n\n const title = computed(\n () => reflection.getTitle() || titleCase(reflection.getName())\n );\n const computedHeading = computed(\n () => heading || reflection.getDescription() || title.value\n );\n\n const alias = computed(() => reflection.getAlias());\n const domain = computed(() => reflection.getDomain());\n const permission = computed(() => reflection.getPermission());\n const readonly = computed(() => reflection.isReadonly());\n const internal = computed(() => reflection.isInternal());\n const ignore = computed(() => reflection.isIgnored());\n const hidden = computed(() => reflection.isHidden());\n\n if (\n !computedHeading.value ||\n (isSetString(computedHeading.value) && computedHeading.value.trim() === \"\")\n ) {\n return null;\n }\n\n const hasAttributes = computed(\n () =>\n isSetString(title.value) ||\n (!isUndefined(alias.value) && alias.value.length > 0) ||\n (!isUndefined(permission.value) && permission.value.length > 0) ||\n isSetString(domain.value) ||\n !isUndefined(readonly.value) ||\n !isUndefined(internal.value) ||\n !isUndefined(ignore.value) ||\n !isUndefined(hidden.value)\n );\n\n return (\n <TSDoc\n {...rest}\n heading={\n isSetString(computedHeading.value)\n ? computedHeading.value.trim()\n : computedHeading.value\n }>\n <Show when={hasAttributes.value}>\n <TSDocAttributesTags\n title={title.value}\n alias={alias.value}\n domain={domain.value}\n permission={permission.value}\n readonly={readonly.value}\n internal={internal.value}\n ignore={ignore.value}\n hidden={hidden.value}\n />\n </Show>\n <Show\n when={\n !isUndefined(children) &&\n childrenArray(() => children).filter(Boolean).length > 0\n }>\n <Show when={hasAttributes.value}>\n <Spacing />\n </Show>\n <List>{childrenArray(() => children)}</List>\n </Show>\n </TSDoc>\n );\n}\n\n/**\n * Uses the `useReflectionClass` hook to retrieve the reflection class from the context, and then renders a `TSDocReflectionClass` component with the retrieved reflection class. This is a convenience component that allows you to easily render a TSDoc documentation block for the current reflection class without having to manually retrieve the reflection class from the context.\n */\nexport function TSDocContextClass<\n T extends Record<string, any> = Record<string, any>\n>(props: TSDocProps) {\n const reflectionClass = useReflectionClass<T>();\n\n return (\n <Show when={isSetObject(reflectionClass.reflection)}>\n <TSDocReflectionClass\n {...props}\n reflection={reflectionClass.reflection}\n />\n </Show>\n );\n}\n\nexport interface TSDocReflectionPropertyProps extends TSDocProps {\n reflection: ReflectionProperty;\n}\n\n/**\n * Generates a TSDoc documentation block for the given reflection property. This component will render the description of the reflection as the main content of the documentation block, and will render any additional attributes (such as title, alias, domain, permission, etc.) as tags in the documentation block. If there are child elements provided, they will be rendered as a list below the main content of the documentation block. This is useful for rendering additional details about the reflection that may not be included in the description, such as information about parameters of a method or properties of a class.\n */\nexport function TSDocReflectionProperty(props: TSDocReflectionPropertyProps) {\n const [{ children, reflection }, rest] = splitProps(props, [\n \"children\",\n \"reflection\"\n ]);\n\n if (!isSetObject(reflection)) {\n return null;\n }\n\n const hasAttributes = computed(\n () =>\n isSetString(reflection.getTitle()) ||\n (!isUndefined(reflection.getAlias()) &&\n reflection.getAlias().length > 0) ||\n (!isUndefined(reflection.getPermission()) &&\n reflection.getPermission().length > 0) ||\n isSetString(reflection.getDomain()) ||\n !isUndefined(reflection.isReadonly()) ||\n !isUndefined(reflection.isInternal()) ||\n !isUndefined(reflection.isIgnored()) ||\n !isUndefined(reflection.isHidden()) ||\n (reflection.hasDefault() && !isUndefined(reflection.getDefaultValue()))\n );\n\n return (\n <TSDoc heading={reflection.getDescription()} {...rest}>\n <Show when={hasAttributes.value}>\n <TSDocAttributesTags\n type={reflection}\n title={reflection.getTitle()}\n alias={reflection.getAlias()}\n domain={reflection.getDomain()}\n permission={reflection.getPermission()}\n readonly={reflection.isReadonly()}\n internal={reflection.isInternal()}\n ignore={reflection.isIgnored()}\n hidden={reflection.isHidden()}\n defaultValue={reflection.getDefaultValue()}\n />\n </Show>\n <Show\n when={\n !isUndefined(children) &&\n childrenArray(() => children).filter(Boolean).length > 0\n }>\n <Show when={hasAttributes.value}>\n <Spacing />\n </Show>\n <List>{childrenArray(() => children)}</List>\n </Show>\n </TSDoc>\n );\n}\n\n/**\n * Uses the `useReflectionProperty` hook to retrieve the reflection property from the context, and then renders a `TSDocReflectionProperty` component with the retrieved reflection property. This is a convenience component that allows you to easily render a TSDoc documentation block for the current reflection property without having to manually retrieve the reflection property from the context.\n */\nexport function TSDocContextProperty(props: TSDocProps) {\n const reflection = useReflectionProperty();\n\n return (\n <Show when={isSetObject(reflection)}>\n <TSDocReflectionProperty {...props} reflection={reflection} />\n </Show>\n );\n}\n\nexport interface TSDocReflectionMethodProps extends TSDocProps {\n reflection: ReflectionMethod;\n}\n\n/**\n * Generates a TSDoc documentation block for the given reflection method. This component will render the description of the reflection as the main content of the documentation block, and will render any additional attributes (such as title, alias, domain, permission, etc.) as tags in the documentation block. If there are child elements provided, they will be rendered as a list below the main content of the documentation block. Additionally, this component will render information about the parameters and return type of the method, if available.\n */\nexport function TSDocReflectionMethod(props: TSDocReflectionMethodProps) {\n const [{ children, reflection }, rest] = splitProps(props, [\n \"children\",\n \"reflection\"\n ]);\n\n if (!isSetObject(reflection)) {\n return null;\n }\n\n const heading = computed(\n () =>\n reflection.getDescription() ||\n (isString(reflection.getName())\n ? code`${String(reflection.getName())} method definition`\n : undefined)\n );\n\n return (\n <TSDoc heading={heading.value} {...rest}>\n <TSDocAttributesTags\n title={reflection.getTitle()}\n alias={reflection.getAlias()}\n domain={reflection.getDomain()}\n permission={reflection.getPermission()}\n readonly={reflection.isReadonly()}\n internal={reflection.isInternal()}\n ignore={reflection.isIgnored()}\n hidden={reflection.isHidden()}\n />\n <Show\n when={Boolean(children) && childrenArray(() => children).length > 0}>\n <List>{childrenArray(() => children)}</List>\n </Show>\n <Show when={reflection.getParameters().length > 0}>\n <Spacing />\n <For each={reflection.getParameters()} hardline ender={<hbr />}>\n {param => (\n <TSDocParam\n name={param.getName()}\n optional={param.isOptional()}\n defaultValue={\n param.hasDefault() ? param.getDefaultValue() : undefined\n }>\n <Show\n when={Boolean(param.parameter.description)}\n fallback={code`A parameter to provide a ${param.getName()} value to the function.`}>\n {param.parameter.description}\n </Show>\n </TSDocParam>\n )}\n </For>\n </Show>\n <Show when={reflection.getReturnType().kind !== ReflectionKind.void}>\n <Spacing />\n <TSDocReturns>\n {code`The return value of the function, which is of type ${stringifyType(\n reflection.getReturnType()\n )}.`}\n </TSDocReturns>\n </Show>\n </TSDoc>\n );\n}\n\n/**\n * Uses the `useReflectionMethod` hook to retrieve the reflection method from the context, and then renders a `TSDocReflectionMethod` component with the retrieved reflection method. This is a convenience component that allows you to easily render a TSDoc documentation block for the current reflection method without having to manually retrieve the reflection method from the context.\n */\nexport function TSDocContextMethod(props: TSDocProps) {\n const reflection = useReflectionMethod();\n\n return (\n <Show when={isSetObject(reflection)}>\n <TSDocReflectionMethod {...props} reflection={reflection} />\n </Show>\n );\n}\n"],"mappings":"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"}
@@ -239,25 +239,27 @@ function TSDocHidden() {
239
239
  * Generates a TypeScript interface property for the given reflection class.
240
240
  */
241
241
  function TSDocAttributesTags(props) {
242
- const [{ type, title, alias, permission, domain, readonly, internal, ignore, hidden, defaultValue }] = (0, __alloy_js_core.splitProps)(props, [
242
+ const [{ type, alias, permission, readonly, internal, ignore, hidden, defaultValue }] = (0, __alloy_js_core.splitProps)(props, [
243
243
  "type",
244
- "title",
245
244
  "alias",
246
245
  "permission",
247
- "domain",
248
246
  "readonly",
249
247
  "internal",
250
248
  "ignore",
251
249
  "hidden",
252
250
  "defaultValue"
253
251
  ]);
252
+ const title = (0, __alloy_js_core.computed)(() => props.title?.trim() || "");
253
+ const domain = (0, __alloy_js_core.computed)(() => props.domain?.trim() || "");
254
254
  return [
255
255
  (0, __alloy_js_core_jsx_runtime.createComponent)(__alloy_js_core.Show, {
256
256
  get when() {
257
- return (0, __stryke_type_checks_is_set_string.isSetString)(title?.trim());
257
+ return (0, __stryke_type_checks_is_set_string.isSetString)(title.value);
258
258
  },
259
259
  get children() {
260
- return (0, __alloy_js_core_jsx_runtime.createComponent)(TSDocTitle, { children: title });
260
+ return (0, __alloy_js_core_jsx_runtime.createComponent)(TSDocTitle, { get children() {
261
+ return title.value;
262
+ } });
261
263
  }
262
264
  }),
263
265
  (0, __alloy_js_core_jsx_runtime.createComponent)(__alloy_js_core.Show, {
@@ -275,10 +277,12 @@ function TSDocAttributesTags(props) {
275
277
  }),
276
278
  (0, __alloy_js_core_jsx_runtime.createComponent)(__alloy_js_core.Show, {
277
279
  get when() {
278
- return (0, __stryke_type_checks_is_set_string.isSetString)(domain?.trim());
280
+ return (0, __stryke_type_checks_is_set_string.isSetString)(domain.value);
279
281
  },
280
282
  get children() {
281
- return (0, __alloy_js_core_jsx_runtime.createComponent)(TSDocDomain, { children: domain });
283
+ return (0, __alloy_js_core_jsx_runtime.createComponent)(TSDocDomain, { get children() {
284
+ return domain.value;
285
+ } });
282
286
  }
283
287
  }),
284
288
  (0, __alloy_js_core_jsx_runtime.createComponent)(__alloy_js_core.Show, {
@@ -1 +1 @@
1
- {"version":3,"file":"tsdoc.d.cts","names":[],"sources":["../../../src/typescript/components/tsdoc.tsx"],"sourcesContent":[],"mappings":";;;;;;UAwCiB,UAAA,SAAmB;YACxB;AADZ;AAOA;AA2BA;AAOA;AAgBiB,iBAlDD,KAAA,CAkDiB,KACnB,EAnDe,UAmDf,CAAA,EAnDyB,QAmDN;AAMjB,UA9BC,aAAA,SAAsB,cA8BY,CAAA;EA2BnC,GAAA,EAAA,MAAA;AAahB;AAaA;AAaA;AAUA;AACQ,iBApGQ,QAAA,CAoGR,KAAA,EApGwB,aAoGxB,CAAA,EApGqC,QAoGrC;AAAiB,UApFR,gBAAA,CAoFQ;EAAqB,UAAA,EAnFhC,mBAmFgC,EAAA,GAAA,MAAA,EAAA;;;AAO9C;AAkBA;AAagB,iBAnHA,WAAA,CAmHiB,KAAA,EAnHE,gBAmHY,CAAA,EAnHI,QAmHJ;AAI/C;AAYA;AA4BA;AAOgB,iBA3IA,UAAA,CA2Ia,KAAA,EA3IK,cA2IL,CAAA,EA3ImB,QA2InB;AAO7B;AAOA;AAIA;AACS,iBAjJO,WAAA,CAiJP,KAAA,EAjJ0B,cAiJ1B,CAAA,EAjJwC,QAiJxC;;;;AAeO,iBAnJA,UAAA,CAmJmB,KAAQ,EAnJT,cAmJS,CAAA,EAnJK,QAmJmB;AA+EnE;;;AAIiB,iBAzND,eAAA,CAyNC,KAAA,EAzNsB,cAyNtB,CAAA,EAzNoC,QAyNpC;AAAQ,UA/MR,sBAAA,SAA+B,cA+MvB,CAAA;EAMT,IAAA,EApNR,cAoNkB,GApND,kBAoNS,GApNY,mBAoNG;EAiDjC,YAAA,EAAA,GAAY;AAO5B;AAIA;AAiCA;;iBA1SgB,iBAAA,QAAyB,yBAAsB;;;;iBAkB/C,YAAA,QAAoB,iBAAc;;;;iBAalC,SAAA,QAAiB,iBAAc;UAI9B,iBAAA,SAA0B;;;;;;;;;;;iBAY3B,YAAA,QAAoB,oBAAiB;;;;iBA4BrC,aAAA,CAAA,GAAa;;;;iBAOb,aAAA,CAAA,GAAa;;;;iBAOb,WAAA,CAAA,GAAW;;;;iBAOX,WAAA,CAAA,GAAW;UAIV,wBAAA;SACR,iBAAiB,qBAAqB;;;;;;;;;;;;;;iBAe/B,mBAAA,QAA2B,2BAAwB;UA+ElD,eAAA;QACT;aACK;;iBAEI;;;;;iBAMD,UAAA,QAAkB,kBAAe;;;;iBAiDjC,YAAA,QAAoB,iBAAc;;;;iBAOlC,WAAA,QAAmB,iBAAc;UAIhC,gBAAA,SAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;QA2BlC;;;;;iBAMQ,WAAA,QAAmB,mBAAgB"}
1
+ {"version":3,"file":"tsdoc.d.cts","names":[],"sources":["../../../src/typescript/components/tsdoc.tsx"],"sourcesContent":[],"mappings":";;;;;;UAyCiB,UAAA,SAAmB;YACxB;AADZ;AAOA;AA2BA;AAOA;AAgBiB,iBAlDD,KAAA,CAkDiB,KACnB,EAnDe,UAmDf,CAAA,EAnDyB,QAmDN;AAMjB,UA9BC,aAAA,SAAsB,cA8BY,CAAA;EA2BnC,GAAA,EAAA,MAAA;AAahB;AAaA;AAaA;AAUA;AACQ,iBApGQ,QAAA,CAoGR,KAAA,EApGwB,aAoGxB,CAAA,EApGqC,QAoGrC;AAAiB,UApFR,gBAAA,CAoFQ;EAAqB,UAAA,EAnFhC,mBAmFgC,EAAA,GAAA,MAAA,EAAA;;;AAO9C;AAkBA;AAagB,iBAnHA,WAAA,CAmHiB,KAAA,EAnHE,gBAmHY,CAAA,EAnHI,QAmHJ;AAI/C;AAYA;AA4BA;AAOgB,iBA3IA,UAAA,CA2Ia,KAAA,EA3IK,cA2IL,CAAA,EA3ImB,QA2InB;AAO7B;AAOA;AAIA;AACS,iBAjJO,WAAA,CAiJP,KAAA,EAjJ0B,cAiJ1B,CAAA,EAjJwC,QAiJxC;;;;AAeO,iBAnJA,UAAA,CAmJmB,KAAQ,EAnJT,cAmJS,CAAA,EAnJK,QAmJmB;AA8EnE;;;AAIiB,iBAxND,eAAA,CAwNC,KAAA,EAxNsB,cAwNtB,CAAA,EAxNoC,QAwNpC;AAAQ,UA9MR,sBAAA,SAA+B,cA8MvB,CAAA;EAMT,IAAA,EAnNR,cAmNkB,GAnND,kBAmNS,GAnNY,mBAmNG;EAiDjC,YAAA,EAAA,GAAY;AAO5B;AAIA;AAiCA;;iBAzSgB,iBAAA,QAAyB,yBAAsB;;;;iBAkB/C,YAAA,QAAoB,iBAAc;;;;iBAalC,SAAA,QAAiB,iBAAc;UAI9B,iBAAA,SAA0B;;;;;;;;;;;iBAY3B,YAAA,QAAoB,oBAAiB;;;;iBA4BrC,aAAA,CAAA,GAAa;;;;iBAOb,aAAA,CAAA,GAAa;;;;iBAOb,WAAA,CAAA,GAAW;;;;iBAOX,WAAA,CAAA,GAAW;UAIV,wBAAA;SACR,iBAAiB,qBAAqB;;;;;;;;;;;;;;iBAe/B,mBAAA,QAA2B,2BAAwB;UA8ElD,eAAA;QACT;aACK;;iBAEI;;;;;iBAMD,UAAA,QAAkB,kBAAe;;;;iBAiDjC,YAAA,QAAoB,iBAAc;;;;iBAOlC,WAAA,QAAmB,iBAAc;UAIhC,gBAAA,SAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;QA2BlC;;;;;iBAMQ,WAAA,QAAmB,mBAAgB"}