@@ -2,7 +2,6 @@ import fs from "fs";
22import type {
33 JsProperties ,
44 Options ,
5- Reference ,
65 WebTypeAttribute ,
76 WebTypeCssProperty ,
87 WebTypeElement ,
@@ -13,6 +12,7 @@ import {
1312 getComponents ,
1413 type CEM ,
1514 Component ,
15+ ComponentWithModule ,
1616 getComponentDetailsTemplate ,
1717} from "../../../tools/cem-utils" ;
1818import type * as schema from "custom-elements-manifest/schema" ;
@@ -33,20 +33,33 @@ import { updateConfig } from "../../../tools/configurations";
3333const packageJson = JSON . parse ( fs . readFileSync ( "package.json" , "utf8" ) ) ;
3434
3535export function getTagList (
36- components : Component [ ] ,
37- options : Options ,
38- referenceTemplate ?: ( name : string , tag ?: string ) => Reference
36+ components : ComponentWithModule [ ] ,
37+ options : Options
3938) : WebTypeElement [ ] {
40- return components . map ( ( component : Component ) => {
41- const reference = referenceTemplate
42- ? referenceTemplate ( component . name , component . tagName )
39+ return components . map ( ( component : ComponentWithModule ) => {
40+ const reference = options . referenceTemplate
41+ ? options . referenceTemplate ( component . name , component . tagName )
4342 : undefined ;
4443
44+ const sourceModule = options . sourceModuleTemplate
45+ ? options . sourceModuleTemplate ( {
46+ name : component . name ,
47+ tag : component . tagName ,
48+ modulePath : component . module . path ,
49+ } )
50+ : component . module . path ;
51+
4552 return {
4653 name : `${ options . prefix } ${
4754 component . tagName || toKebabCase ( component . name )
4855 } ${ options . suffix } `,
4956 description : getComponentDetailsTemplate ( component , options ) ,
57+ source : sourceModule
58+ ? {
59+ symbol : component . name ,
60+ module : sourceModule ,
61+ }
62+ : undefined ,
5063 [ "doc-url" ] : reference ?. url || "" ,
5164 attributes : getComponentAttributes ( component , options . typesSrc ) ,
5265 slots : component . slots ?. map ( ( slot ) => {
0 commit comments