@@ -615,11 +615,15 @@ export const FieldStruct: Describe<FieldElement> = element('Field', {
615615 */
616616export const BoldStruct : Describe < BoldElement > = element ( 'Bold' , {
617617 children : children ( [
618- string ( ) ,
619- // eslint-disable-next-line @typescript-eslint/no-use-before-define
620- lazy ( ( ) => ItalicStruct ) as unknown as Struct <
621- SnapElement < JsonObject , 'Italic' >
622- > ,
618+ selectiveUnion ( ( value ) => {
619+ if ( typeof value === 'string' ) {
620+ return string ( ) ;
621+ }
622+ // eslint-disable-next-line @typescript-eslint/no-use-before-define
623+ return ItalicStruct as unknown as Struct <
624+ SnapElement < JsonObject , 'Italic' >
625+ > ;
626+ } ) ,
623627 ] ) ,
624628} ) ;
625629
@@ -628,10 +632,13 @@ export const BoldStruct: Describe<BoldElement> = element('Bold', {
628632 */
629633export const ItalicStruct : Describe < ItalicElement > = element ( 'Italic' , {
630634 children : children ( [
631- string ( ) ,
632- lazy ( ( ) => BoldStruct ) as unknown as Struct <
633- SnapElement < JsonObject , 'Bold' >
634- > ,
635+ selectiveUnion ( ( value ) => {
636+ if ( typeof value === 'string' ) {
637+ return string ( ) ;
638+ }
639+
640+ return BoldStruct as unknown as Struct < SnapElement < JsonObject , 'Bold' > > ;
641+ } ) ,
635642 ] ) ,
636643} ) ;
637644
@@ -774,11 +781,18 @@ export const HeadingStruct: Describe<HeadingElement> = element('Heading', {
774781export const LinkStruct : Describe < LinkElement > = element ( 'Link' , {
775782 href : string ( ) ,
776783 children : children ( [
777- FormattingStruct ,
778- string ( ) ,
779- IconStruct ,
780- ImageStruct ,
781- AddressStruct ,
784+ selectiveUnion ( ( value ) => {
785+ if ( typeof value === 'string' ) {
786+ return string ( ) ;
787+ }
788+
789+ return typedUnion ( [
790+ FormattingStruct ,
791+ IconStruct ,
792+ ImageStruct ,
793+ AddressStruct ,
794+ ] ) ;
795+ } ) ,
782796 ] ) ,
783797} ) ;
784798
@@ -896,13 +910,15 @@ export const TooltipStruct: Describe<TooltipElement> = element('Tooltip', {
896910 */
897911export const BannerStruct : Describe < BannerElement > = element ( 'Banner' , {
898912 children : children ( [
899- TextStruct ,
900- LinkStruct ,
901- IconStruct ,
902- ButtonStruct ,
903- BoldStruct ,
904- ItalicStruct ,
905- SkeletonStruct ,
913+ typedUnion ( [
914+ TextStruct ,
915+ LinkStruct ,
916+ IconStruct ,
917+ ButtonStruct ,
918+ BoldStruct ,
919+ ItalicStruct ,
920+ SkeletonStruct ,
921+ ] ) ,
906922 ] ) ,
907923 title : string ( ) ,
908924 severity : union ( [
0 commit comments