@redsift/products 12.6.2 → 12.6.4

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.
package/bimi-checker.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import * as _redsift_design_system from '@redsift/design-system';
2
2
  import React, { ReactNode, ComponentProps } from 'react';
3
- import { DmarcDomainData } from '@redsift/signal-logic';
3
+ import { BimiMakerEligibility, DmarcDomainData } from '@redsift/signal-logic';
4
4
  export { BIMI_CHECKER_SIGNAL_TYPES, BimiCheckerSignalType, CARD_STATUS, SIGNAL_TYPES, STATUS_COLORS, STATUS_ICONS, STATUS_ICON_STYLES, SignalType, getStatusColor, getStatusIcon, getStatusIconStyle, isCardStatus, isFailureStatus, isSuccessStatus, isWarningStatus, mapStatusToDetailedCardColor, normalizeStatus } from '@redsift/signal-logic';
5
5
 
6
6
  /**
@@ -93,6 +93,24 @@ interface SignalCardSharedProps extends Omit<ComponentProps<'div'>, 'children' |
93
93
  onCollapseAll?: (areAllCollapsed: boolean) => void;
94
94
  }
95
95
 
96
+ /** Why the BIMI Maker promotion is shown: signal-logic's `getBimiMakerEligibility`, minus `null`. */
97
+ type BimiMakerPromoReason = Exclude<BimiMakerEligibility, null>;
98
+ /** Overrides for the BIMI Maker promotion. */
99
+ interface BimiMakerPromoOptions {
100
+ /**
101
+ * Destination of the "Get started with BIMI Maker" link, used verbatim (the DS renders a plain
102
+ * `<a>`, so a consumer that localises routes passes the localised path).
103
+ * @default 'https://redsift.com/tools/bimi-maker'
104
+ */
105
+ href?: string;
106
+ /** Fired with the reason when the link is clicked, alongside the normal navigation. */
107
+ onClick?: (reason: BimiMakerPromoReason) => void;
108
+ }
109
+ /**
110
+ * Opt-in BIMI Maker promotion: `undefined`/`false` → off, `true` → on with the defaults,
111
+ * an object → on with overrides.
112
+ */
113
+ type BimiMakerPromoProp = boolean | BimiMakerPromoOptions;
96
114
  /**
97
115
  * Component props.
98
116
  */
@@ -106,6 +124,13 @@ interface SignalCardBimiProps extends SignalCardSharedProps {
106
124
  dmarc?: any;
107
125
  };
108
126
  };
127
+ /**
128
+ * Promote BIMI Maker when the result is eligible (`getBimiMakerEligibility` from
129
+ * `@redsift/signal-logic` returns `'missing'` or `'incomplete'`). Off by default.
130
+ * Rendered after the card sections and before `renderFooter`, and independent of
131
+ * `renderHeader` and the `promo*` props.
132
+ */
133
+ bimiMakerPromo?: BimiMakerPromoProp;
109
134
  /**
110
135
  * Optional callback invoked when the component mounts.
111
136
  */
package/index.d.ts CHANGED
@@ -4,7 +4,7 @@ import * as _redsift_design_system from '@redsift/design-system';
4
4
  import { ButtonColor, Theme, ValueOf, ContainerProps, HeadingProps, IconProps, StylingProps, Comp, ButtonProps } from '@redsift/design-system';
5
5
  import * as _redsift_pickers from '@redsift/pickers';
6
6
  import { ItemProps, MenuButtonProps, MenuButtonContentProps, MenuButtonContentHeaderProps, MenuButtonContentMenuProps } from '@redsift/pickers';
7
- import { RecommendationsData, JmapProps, DmarcProps, DkimProps, SpfProps, EhloProps, FcrdnsProps, EhloCheckProps, TlsProps, DmarcDomainData, DomainAnalyzerSpfProps, DomainAnalyzerDkimProps, MtaProps, ExtsecrepProps, DnsSecurityProps, InvestigateProps } from '@redsift/signal-logic';
7
+ import { BimiMakerEligibility, RecommendationsData, JmapProps, DmarcProps, DkimProps, SpfProps, EhloProps, FcrdnsProps, EhloCheckProps, TlsProps, DmarcDomainData, DomainAnalyzerSpfProps, DomainAnalyzerDkimProps, MtaProps, ExtsecrepProps, DnsSecurityProps, InvestigateProps } from '@redsift/signal-logic';
8
8
  export { BIMI_CHECKER_SIGNAL_TYPES, BimiCheckerSignalType, CARD_STATUS, DOMAIN_ANALYZER_SIGNAL_TYPES, DomainAnalyzerSignalType, PUBLIC_INVESTIGATE_SIGNAL_TYPES, PublicInvestigateSignalType, RecommendationSignal, RecommendationsAnalysis, RecommendationsData, SIGNAL_TYPES, SignalType, getSignalStatus } from '@redsift/signal-logic';
9
9
 
10
10
  /**
@@ -220,6 +220,81 @@ declare const RadarSimpleMenuButton: Comp<Omit<MenuButtonProps, 'children'> & {
220
220
  icon?: Omit<IconProps, 'ref'>;
221
221
  } & Pick<MenuButtonContentMenuProps, 'children'>, HTMLDivElement>;
222
222
 
223
+ /**
224
+ * Common props shared by all signal card components. These cover layout options
225
+ * that ultimately map to `SignalCardNormal`.
226
+ */
227
+ interface SignalCardSharedProps extends Omit<ComponentProps<'div'>, 'children' | 'ref'> {
228
+ /** Callback fired whenever the card reports a height change. */
229
+ onHeightChange?: () => void;
230
+ /** Custom header renderer inserted after the card title, before sections. Pass `null` to suppress the default header. */
231
+ renderHeader?: (() => ReactNode) | null;
232
+ /** Override the promo banner button href (e.g. to add UTM parameters). Only used when renderHeader is not provided. */
233
+ promoHref?: string;
234
+ /** Optional callback fired when the user clicks the promo banner CTA. Fires alongside the normal navigation. */
235
+ onPromoClick?: () => void;
236
+ /** Override the promo banner text. Only used when renderHeader is not provided. Defaults to the translated OnDMARC trial copy. */
237
+ promoText?: string;
238
+ /** Override the promo banner button label. Defaults to the translated 'Protect your domain'. */
239
+ promoButtonLabel?: string;
240
+ /** Custom footer renderer appended below the standard card content. */
241
+ renderFooter?: () => ReactNode;
242
+ /** Toggle Investigate-specific color palette overrides. */
243
+ useInvestigateColors?: boolean;
244
+ /** Select the banner variant to display above the card body. */
245
+ bannerVariant?: 'standard' | 'condensed' | 'none';
246
+ /** Enable collapsible sections inside the card header and body. */
247
+ isCollapsible?: boolean;
248
+ /** Controlled collapsed state for all sections. */
249
+ areAllCollapsed?: boolean;
250
+ /** Callback fired when the collapse-all toggle changes. */
251
+ onCollapseAll?: (areAllCollapsed: boolean) => void;
252
+ }
253
+
254
+ /** Why the BIMI Maker promotion is shown: signal-logic's `getBimiMakerEligibility`, minus `null`. */
255
+ type BimiMakerPromoReason = Exclude<BimiMakerEligibility, null>;
256
+ /** Overrides for the BIMI Maker promotion. */
257
+ interface BimiMakerPromoOptions {
258
+ /**
259
+ * Destination of the "Get started with BIMI Maker" link, used verbatim (the DS renders a plain
260
+ * `<a>`, so a consumer that localises routes passes the localised path).
261
+ * @default 'https://redsift.com/tools/bimi-maker'
262
+ */
263
+ href?: string;
264
+ /** Fired with the reason when the link is clicked, alongside the normal navigation. */
265
+ onClick?: (reason: BimiMakerPromoReason) => void;
266
+ }
267
+ /**
268
+ * Opt-in BIMI Maker promotion: `undefined`/`false` → off, `true` → on with the defaults,
269
+ * an object → on with overrides.
270
+ */
271
+ type BimiMakerPromoProp = boolean | BimiMakerPromoOptions;
272
+ /**
273
+ * Component props.
274
+ */
275
+ interface SignalCardBimiProps extends SignalCardSharedProps {
276
+ /**
277
+ * JMAP data containing BIMI and DMARC information from the email security report.
278
+ */
279
+ jmap: {
280
+ extsecrep: {
281
+ bimi?: any;
282
+ dmarc?: any;
283
+ };
284
+ };
285
+ /**
286
+ * Promote BIMI Maker when the result is eligible (`getBimiMakerEligibility` from
287
+ * `@redsift/signal-logic` returns `'missing'` or `'incomplete'`). Off by default.
288
+ * Rendered after the card sections and before `renderFooter`, and independent of
289
+ * `renderHeader` and the `promo*` props.
290
+ */
291
+ bimiMakerPromo?: BimiMakerPromoProp;
292
+ /**
293
+ * Optional callback invoked when the component mounts.
294
+ */
295
+ onComponentMount?: () => void;
296
+ }
297
+
223
298
  type SignalData = {
224
299
  signalType: string;
225
300
  jmap?: {
@@ -270,6 +345,14 @@ interface SignalCardListProps extends Omit<ComponentProps<'div'>, 'children'> {
270
345
  cardPromoButtonLabel?: string;
271
346
  /** Custom footer renderer for adding content at the bottom of each card */
272
347
  renderCardFooter?: (signal: SignalData) => React.ReactNode;
348
+ /**
349
+ * Promote BIMI Maker on the BIMI card when `getBimiMakerEligibility` (from `@redsift/signal-logic`)
350
+ * returns `'missing'` or `'incomplete'`. Opt-in: `undefined`/`false` → off, `true` → on with the
351
+ * default href (`https://redsift.com/tools/bimi-maker`), `{ href?, onClick?(reason) }` → on with
352
+ * overrides. Rendered after the BIMI card's sections and before `renderCardFooter`; unaffected by
353
+ * `renderCardHeader` and the `cardPromo*` props, and not gated on `recommendations`.
354
+ */
355
+ bimiMakerPromo?: BimiMakerPromoProp;
273
356
  /**
274
357
  * Heading text for the priority signals section.
275
358
  * Defaults to "Required for the selected compliance profile"
@@ -346,37 +429,6 @@ interface SignalCardListProps extends Omit<ComponentProps<'div'>, 'children'> {
346
429
  showBranding?: boolean;
347
430
  }
348
431
 
349
- /**
350
- * Common props shared by all signal card components. These cover layout options
351
- * that ultimately map to `SignalCardNormal`.
352
- */
353
- interface SignalCardSharedProps extends Omit<ComponentProps<'div'>, 'children' | 'ref'> {
354
- /** Callback fired whenever the card reports a height change. */
355
- onHeightChange?: () => void;
356
- /** Custom header renderer inserted after the card title, before sections. Pass `null` to suppress the default header. */
357
- renderHeader?: (() => ReactNode) | null;
358
- /** Override the promo banner button href (e.g. to add UTM parameters). Only used when renderHeader is not provided. */
359
- promoHref?: string;
360
- /** Optional callback fired when the user clicks the promo banner CTA. Fires alongside the normal navigation. */
361
- onPromoClick?: () => void;
362
- /** Override the promo banner text. Only used when renderHeader is not provided. Defaults to the translated OnDMARC trial copy. */
363
- promoText?: string;
364
- /** Override the promo banner button label. Defaults to the translated 'Protect your domain'. */
365
- promoButtonLabel?: string;
366
- /** Custom footer renderer appended below the standard card content. */
367
- renderFooter?: () => ReactNode;
368
- /** Toggle Investigate-specific color palette overrides. */
369
- useInvestigateColors?: boolean;
370
- /** Select the banner variant to display above the card body. */
371
- bannerVariant?: 'standard' | 'condensed' | 'none';
372
- /** Enable collapsible sections inside the card header and body. */
373
- isCollapsible?: boolean;
374
- /** Controlled collapsed state for all sections. */
375
- areAllCollapsed?: boolean;
376
- /** Callback fired when the collapse-all toggle changes. */
377
- onCollapseAll?: (areAllCollapsed: boolean) => void;
378
- }
379
-
380
432
  /**
381
433
  * Extended JMAP props for DMARC card including required extsecrep data
382
434
  */
@@ -546,25 +598,6 @@ interface SignalCardDkimDomainAnalyzerProps extends SignalCardSharedProps {
546
598
  };
547
599
  }
548
600
 
549
- /**
550
- * Component props.
551
- */
552
- interface SignalCardBimiProps extends SignalCardSharedProps {
553
- /**
554
- * JMAP data containing BIMI and DMARC information from the email security report.
555
- */
556
- jmap: {
557
- extsecrep: {
558
- bimi?: any;
559
- dmarc?: any;
560
- };
561
- };
562
- /**
563
- * Optional callback invoked when the component mounts.
564
- */
565
- onComponentMount?: () => void;
566
- }
567
-
568
601
  /**
569
602
  * Component props.
570
603
  */
@@ -968,4 +1001,4 @@ declare const SignalCardAmp: _redsift_design_system.Comp<SignalCardAmpProps, HTM
968
1001
  declare const SignalCardUrls: _redsift_design_system.Comp<SignalCardUrlsProps, HTMLDivElement>;
969
1002
  declare const SignalCardGoogleYahooCompliance: _redsift_design_system.Comp<SignalCardGoogleYahooComplianceProps, HTMLDivElement>;
970
1003
 
971
- export { ARecord, ATAG, BaseRadarMenuButton, BaseRadarMenuButtonContent, BimiRecord, CMC, Canonicalization, ChecklistItem, CipherSuite, CnameRecord, Dkim, DkimAlgorithm, DkimAlignment, DkimSelector, DkimSignature, DkimSigningDomain, Dmarc, DmarcCompliant, DmarcPolicy, Ehlo, From, GLOSSARY_ICON_MAP, GlossaryIconType, GlossaryTerm, ITAG, KeyLength, MaxAge, Mode, MtaStsCertificate, MtaStsCertificateCnameName, MtaStsCertificateCnameType, MtaStsCertificateCnameValue, MtaStsCertificateExpiry, MtaStsPolicyFile, MtaStsRecord, Mx, OrganizationalDomain, Pct, PtrRecord, Radar, RadarButton, RadarItem, RadarMenuButton, RadarMenuButtonContent, RadarMenuButtonContentFooter, RadarMenuButtonContentHeader, RadarMenuButtonContentMenu, RadarMenuButtonTrigger, RadarSimple, RadarSimpleMenuButton, ReturnPath, Rua, Ruf, SVG, SenderIp, SignalCardAmp, SignalCardAmpProps, SignalCardBimi, SignalCardBimiProps, SignalCardDkim, SignalCardDkimDomainAnalyzer, SignalCardDkimDomainAnalyzerProps, SignalCardDkimProps, SignalCardDmarc, SignalCardDmarcDomain, SignalCardDmarcDomainProps, SignalCardDmarcProps, SignalCardDnssec, SignalCardDnssecProps, SignalCardFcrdns, SignalCardFcrdnsProps, SignalCardGoogleYahooCompliance, SignalCardGoogleYahooComplianceProps, SignalCardList, SignalCardListProps, SignalCardMtaSts, SignalCardMtaStsProps, SignalCardSpf, SignalCardSpfDomain, SignalCardSpfDomainAnalyzer, SignalCardSpfDomainAnalyzerProps, SignalCardSpfDomainProps, SignalCardSpfProps, SignalCardSubdo, SignalCardSubdoProps, SignalCardTheme, SignalCardThemeProvider, SignalCardThemeProviderProps, SignalCardThreatInv, SignalCardThreatInvProps, SignalCardTls, SignalCardTlsProps, SignalCardUrls, SignalCardUrlsProps, SignalData, SignedHeaders, SignerDomain, Sp, Spf, SpfAlignment, SpfDomain, SpfRecord, Ssl, SubdomainPolicy, Tls, TlsRptRecord, Ttl, TxtRecord, TxtRecords, VMC, Version, createGlossaryLink, glossaryLabelIds, useResolvedTheme, useSignalCardTheme };
1004
+ export { ARecord, ATAG, BaseRadarMenuButton, BaseRadarMenuButtonContent, BimiMakerPromoOptions, BimiMakerPromoProp, BimiMakerPromoReason, BimiRecord, CMC, Canonicalization, ChecklistItem, CipherSuite, CnameRecord, Dkim, DkimAlgorithm, DkimAlignment, DkimSelector, DkimSignature, DkimSigningDomain, Dmarc, DmarcCompliant, DmarcPolicy, Ehlo, From, GLOSSARY_ICON_MAP, GlossaryIconType, GlossaryTerm, ITAG, KeyLength, MaxAge, Mode, MtaStsCertificate, MtaStsCertificateCnameName, MtaStsCertificateCnameType, MtaStsCertificateCnameValue, MtaStsCertificateExpiry, MtaStsPolicyFile, MtaStsRecord, Mx, OrganizationalDomain, Pct, PtrRecord, Radar, RadarButton, RadarItem, RadarMenuButton, RadarMenuButtonContent, RadarMenuButtonContentFooter, RadarMenuButtonContentHeader, RadarMenuButtonContentMenu, RadarMenuButtonTrigger, RadarSimple, RadarSimpleMenuButton, ReturnPath, Rua, Ruf, SVG, SenderIp, SignalCardAmp, SignalCardAmpProps, SignalCardBimi, SignalCardBimiProps, SignalCardDkim, SignalCardDkimDomainAnalyzer, SignalCardDkimDomainAnalyzerProps, SignalCardDkimProps, SignalCardDmarc, SignalCardDmarcDomain, SignalCardDmarcDomainProps, SignalCardDmarcProps, SignalCardDnssec, SignalCardDnssecProps, SignalCardFcrdns, SignalCardFcrdnsProps, SignalCardGoogleYahooCompliance, SignalCardGoogleYahooComplianceProps, SignalCardList, SignalCardListProps, SignalCardMtaSts, SignalCardMtaStsProps, SignalCardSpf, SignalCardSpfDomain, SignalCardSpfDomainAnalyzer, SignalCardSpfDomainAnalyzerProps, SignalCardSpfDomainProps, SignalCardSpfProps, SignalCardSubdo, SignalCardSubdoProps, SignalCardTheme, SignalCardThemeProvider, SignalCardThemeProviderProps, SignalCardThreatInv, SignalCardThreatInvProps, SignalCardTls, SignalCardTlsProps, SignalCardUrls, SignalCardUrlsProps, SignalData, SignedHeaders, SignerDomain, Sp, Spf, SpfAlignment, SpfDomain, SpfRecord, Ssl, SubdomainPolicy, Tls, TlsRptRecord, Ttl, TxtRecord, TxtRecords, VMC, Version, createGlossaryLink, glossaryLabelIds, useResolvedTheme, useSignalCardTheme };
package/package.json CHANGED
@@ -52,10 +52,10 @@
52
52
  "test": "yarn test:unit && yarn test:storybook"
53
53
  },
54
54
  "types": "index.d.ts",
55
- "version": "12.6.2",
55
+ "version": "12.6.4",
56
56
  "dependencies": {
57
57
  "@redsift/d3-rs-sankey": "0.4.0",
58
- "@redsift/signal-logic": "^0.8.0",
58
+ "@redsift/signal-logic": "^0.9.0",
59
59
  "classnames": "^2.3.1",
60
60
  "d3-selection": "1.4.2",
61
61
  "d3-transition": "1.3.2",
@@ -112,12 +112,12 @@
112
112
  "ts-jest": "^29.2.0"
113
113
  },
114
114
  "peerDependencies": {
115
- "@redsift/design-system": "^12.6.2-0",
116
- "@redsift/icons": "^12.6.2-0",
117
- "@redsift/pickers": "^12.6.2-0",
115
+ "@redsift/design-system": "^12.6.4-0",
116
+ "@redsift/icons": "^12.6.4-0",
117
+ "@redsift/pickers": "^12.6.4-0",
118
118
  "react": ">=17",
119
119
  "react-dom": ">=17",
120
120
  "styled-components": "6.1.19"
121
121
  },
122
- "gitHead": "299581411edb0b2dbe389101d253229b81f472b6"
122
+ "gitHead": "9ce0836c585db8c0c4c4e705108b0a553aa06b8e"
123
123
  }
package/signal-cards.d.ts CHANGED
@@ -1,8 +1,83 @@
1
1
  import * as _redsift_design_system from '@redsift/design-system';
2
- import { RecommendationsData, JmapProps, DmarcProps, DkimProps, SpfProps, EhloProps, FcrdnsProps, EhloCheckProps, TlsProps, DmarcDomainData, DomainAnalyzerSpfProps, DomainAnalyzerDkimProps, MtaProps, ExtsecrepProps, DnsSecurityProps, InvestigateProps } from '@redsift/signal-logic';
2
+ import { BimiMakerEligibility, RecommendationsData, JmapProps, DmarcProps, DkimProps, SpfProps, EhloProps, FcrdnsProps, EhloCheckProps, TlsProps, DmarcDomainData, DomainAnalyzerSpfProps, DomainAnalyzerDkimProps, MtaProps, ExtsecrepProps, DnsSecurityProps, InvestigateProps } from '@redsift/signal-logic';
3
3
  export { BIMI_CHECKER_SIGNAL_TYPES, BimiCheckerSignalType, CARD_STATUS, DOMAIN_ANALYZER_SIGNAL_TYPES, DomainAnalyzerSignalType, PUBLIC_INVESTIGATE_SIGNAL_TYPES, PublicInvestigateSignalType, RecommendationSignal, RecommendationsAnalysis, RecommendationsData, SIGNAL_TYPES, SignalType, getSignalStatus } from '@redsift/signal-logic';
4
4
  import react, { ComponentProps, ReactNode } from 'react';
5
5
 
6
+ /**
7
+ * Common props shared by all signal card components. These cover layout options
8
+ * that ultimately map to `SignalCardNormal`.
9
+ */
10
+ interface SignalCardSharedProps extends Omit<ComponentProps<'div'>, 'children' | 'ref'> {
11
+ /** Callback fired whenever the card reports a height change. */
12
+ onHeightChange?: () => void;
13
+ /** Custom header renderer inserted after the card title, before sections. Pass `null` to suppress the default header. */
14
+ renderHeader?: (() => ReactNode) | null;
15
+ /** Override the promo banner button href (e.g. to add UTM parameters). Only used when renderHeader is not provided. */
16
+ promoHref?: string;
17
+ /** Optional callback fired when the user clicks the promo banner CTA. Fires alongside the normal navigation. */
18
+ onPromoClick?: () => void;
19
+ /** Override the promo banner text. Only used when renderHeader is not provided. Defaults to the translated OnDMARC trial copy. */
20
+ promoText?: string;
21
+ /** Override the promo banner button label. Defaults to the translated 'Protect your domain'. */
22
+ promoButtonLabel?: string;
23
+ /** Custom footer renderer appended below the standard card content. */
24
+ renderFooter?: () => ReactNode;
25
+ /** Toggle Investigate-specific color palette overrides. */
26
+ useInvestigateColors?: boolean;
27
+ /** Select the banner variant to display above the card body. */
28
+ bannerVariant?: 'standard' | 'condensed' | 'none';
29
+ /** Enable collapsible sections inside the card header and body. */
30
+ isCollapsible?: boolean;
31
+ /** Controlled collapsed state for all sections. */
32
+ areAllCollapsed?: boolean;
33
+ /** Callback fired when the collapse-all toggle changes. */
34
+ onCollapseAll?: (areAllCollapsed: boolean) => void;
35
+ }
36
+
37
+ /** Why the BIMI Maker promotion is shown: signal-logic's `getBimiMakerEligibility`, minus `null`. */
38
+ type BimiMakerPromoReason = Exclude<BimiMakerEligibility, null>;
39
+ /** Overrides for the BIMI Maker promotion. */
40
+ interface BimiMakerPromoOptions {
41
+ /**
42
+ * Destination of the "Get started with BIMI Maker" link, used verbatim (the DS renders a plain
43
+ * `<a>`, so a consumer that localises routes passes the localised path).
44
+ * @default 'https://redsift.com/tools/bimi-maker'
45
+ */
46
+ href?: string;
47
+ /** Fired with the reason when the link is clicked, alongside the normal navigation. */
48
+ onClick?: (reason: BimiMakerPromoReason) => void;
49
+ }
50
+ /**
51
+ * Opt-in BIMI Maker promotion: `undefined`/`false` → off, `true` → on with the defaults,
52
+ * an object → on with overrides.
53
+ */
54
+ type BimiMakerPromoProp = boolean | BimiMakerPromoOptions;
55
+ /**
56
+ * Component props.
57
+ */
58
+ interface SignalCardBimiProps extends SignalCardSharedProps {
59
+ /**
60
+ * JMAP data containing BIMI and DMARC information from the email security report.
61
+ */
62
+ jmap: {
63
+ extsecrep: {
64
+ bimi?: any;
65
+ dmarc?: any;
66
+ };
67
+ };
68
+ /**
69
+ * Promote BIMI Maker when the result is eligible (`getBimiMakerEligibility` from
70
+ * `@redsift/signal-logic` returns `'missing'` or `'incomplete'`). Off by default.
71
+ * Rendered after the card sections and before `renderFooter`, and independent of
72
+ * `renderHeader` and the `promo*` props.
73
+ */
74
+ bimiMakerPromo?: BimiMakerPromoProp;
75
+ /**
76
+ * Optional callback invoked when the component mounts.
77
+ */
78
+ onComponentMount?: () => void;
79
+ }
80
+
6
81
  type SignalData = {
7
82
  signalType: string;
8
83
  jmap?: {
@@ -53,6 +128,14 @@ interface SignalCardListProps extends Omit<ComponentProps<'div'>, 'children'> {
53
128
  cardPromoButtonLabel?: string;
54
129
  /** Custom footer renderer for adding content at the bottom of each card */
55
130
  renderCardFooter?: (signal: SignalData) => React.ReactNode;
131
+ /**
132
+ * Promote BIMI Maker on the BIMI card when `getBimiMakerEligibility` (from `@redsift/signal-logic`)
133
+ * returns `'missing'` or `'incomplete'`. Opt-in: `undefined`/`false` → off, `true` → on with the
134
+ * default href (`https://redsift.com/tools/bimi-maker`), `{ href?, onClick?(reason) }` → on with
135
+ * overrides. Rendered after the BIMI card's sections and before `renderCardFooter`; unaffected by
136
+ * `renderCardHeader` and the `cardPromo*` props, and not gated on `recommendations`.
137
+ */
138
+ bimiMakerPromo?: BimiMakerPromoProp;
56
139
  /**
57
140
  * Heading text for the priority signals section.
58
141
  * Defaults to "Required for the selected compliance profile"
@@ -129,37 +212,6 @@ interface SignalCardListProps extends Omit<ComponentProps<'div'>, 'children'> {
129
212
  showBranding?: boolean;
130
213
  }
131
214
 
132
- /**
133
- * Common props shared by all signal card components. These cover layout options
134
- * that ultimately map to `SignalCardNormal`.
135
- */
136
- interface SignalCardSharedProps extends Omit<ComponentProps<'div'>, 'children' | 'ref'> {
137
- /** Callback fired whenever the card reports a height change. */
138
- onHeightChange?: () => void;
139
- /** Custom header renderer inserted after the card title, before sections. Pass `null` to suppress the default header. */
140
- renderHeader?: (() => ReactNode) | null;
141
- /** Override the promo banner button href (e.g. to add UTM parameters). Only used when renderHeader is not provided. */
142
- promoHref?: string;
143
- /** Optional callback fired when the user clicks the promo banner CTA. Fires alongside the normal navigation. */
144
- onPromoClick?: () => void;
145
- /** Override the promo banner text. Only used when renderHeader is not provided. Defaults to the translated OnDMARC trial copy. */
146
- promoText?: string;
147
- /** Override the promo banner button label. Defaults to the translated 'Protect your domain'. */
148
- promoButtonLabel?: string;
149
- /** Custom footer renderer appended below the standard card content. */
150
- renderFooter?: () => ReactNode;
151
- /** Toggle Investigate-specific color palette overrides. */
152
- useInvestigateColors?: boolean;
153
- /** Select the banner variant to display above the card body. */
154
- bannerVariant?: 'standard' | 'condensed' | 'none';
155
- /** Enable collapsible sections inside the card header and body. */
156
- isCollapsible?: boolean;
157
- /** Controlled collapsed state for all sections. */
158
- areAllCollapsed?: boolean;
159
- /** Callback fired when the collapse-all toggle changes. */
160
- onCollapseAll?: (areAllCollapsed: boolean) => void;
161
- }
162
-
163
215
  /**
164
216
  * Extended JMAP props for DMARC card including required extsecrep data
165
217
  */
@@ -329,25 +381,6 @@ interface SignalCardDkimDomainAnalyzerProps extends SignalCardSharedProps {
329
381
  };
330
382
  }
331
383
 
332
- /**
333
- * Component props.
334
- */
335
- interface SignalCardBimiProps extends SignalCardSharedProps {
336
- /**
337
- * JMAP data containing BIMI and DMARC information from the email security report.
338
- */
339
- jmap: {
340
- extsecrep: {
341
- bimi?: any;
342
- dmarc?: any;
343
- };
344
- };
345
- /**
346
- * Optional callback invoked when the component mounts.
347
- */
348
- onComponentMount?: () => void;
349
- }
350
-
351
384
  /**
352
385
  * Component props.
353
386
  */
@@ -751,4 +784,4 @@ declare const SignalCardAmp: _redsift_design_system.Comp<SignalCardAmpProps, HTM
751
784
  declare const SignalCardUrls: _redsift_design_system.Comp<SignalCardUrlsProps, HTMLDivElement>;
752
785
  declare const SignalCardGoogleYahooCompliance: _redsift_design_system.Comp<SignalCardGoogleYahooComplianceProps, HTMLDivElement>;
753
786
 
754
- export { ARecord, ATAG, BimiRecord, CMC, Canonicalization, ChecklistItem, CipherSuite, CnameRecord, Dkim, DkimAlgorithm, DkimAlignment, DkimSelector, DkimSignature, DkimSigningDomain, Dmarc, DmarcCompliant, DmarcPolicy, Ehlo, From, GLOSSARY_ICON_MAP, GlossaryIconType, GlossaryTerm, ITAG, KeyLength, MaxAge, Mode, MtaStsCertificate, MtaStsCertificateCnameName, MtaStsCertificateCnameType, MtaStsCertificateCnameValue, MtaStsCertificateExpiry, MtaStsPolicyFile, MtaStsRecord, Mx, OrganizationalDomain, Pct, PtrRecord, ReturnPath, Rua, Ruf, SVG, SenderIp, SignalCardAmp, SignalCardAmpProps, SignalCardBimi, SignalCardBimiProps, SignalCardDkim, SignalCardDkimDomainAnalyzer, SignalCardDkimDomainAnalyzerProps, SignalCardDkimProps, SignalCardDmarc, SignalCardDmarcDomain, SignalCardDmarcDomainProps, SignalCardDmarcProps, SignalCardDnssec, SignalCardDnssecProps, SignalCardFcrdns, SignalCardFcrdnsProps, SignalCardGoogleYahooCompliance, SignalCardGoogleYahooComplianceProps, SignalCardList, SignalCardListProps, SignalCardMtaSts, SignalCardMtaStsProps, SignalCardSpf, SignalCardSpfDomain, SignalCardSpfDomainAnalyzer, SignalCardSpfDomainAnalyzerProps, SignalCardSpfDomainProps, SignalCardSpfProps, SignalCardSubdo, SignalCardSubdoProps, SignalCardTheme, SignalCardThemeProvider, SignalCardThemeProviderProps, SignalCardThreatInv, SignalCardThreatInvProps, SignalCardTls, SignalCardTlsProps, SignalCardUrls, SignalCardUrlsProps, SignalData, SignedHeaders, SignerDomain, Sp, Spf, SpfAlignment, SpfDomain, SpfRecord, Ssl, SubdomainPolicy, Tls, TlsRptRecord, Ttl, TxtRecord, TxtRecords, VMC, Version, createGlossaryLink, glossaryLabelIds, useResolvedTheme, useSignalCardTheme };
787
+ export { ARecord, ATAG, BimiMakerPromoOptions, BimiMakerPromoProp, BimiMakerPromoReason, BimiRecord, CMC, Canonicalization, ChecklistItem, CipherSuite, CnameRecord, Dkim, DkimAlgorithm, DkimAlignment, DkimSelector, DkimSignature, DkimSigningDomain, Dmarc, DmarcCompliant, DmarcPolicy, Ehlo, From, GLOSSARY_ICON_MAP, GlossaryIconType, GlossaryTerm, ITAG, KeyLength, MaxAge, Mode, MtaStsCertificate, MtaStsCertificateCnameName, MtaStsCertificateCnameType, MtaStsCertificateCnameValue, MtaStsCertificateExpiry, MtaStsPolicyFile, MtaStsRecord, Mx, OrganizationalDomain, Pct, PtrRecord, ReturnPath, Rua, Ruf, SVG, SenderIp, SignalCardAmp, SignalCardAmpProps, SignalCardBimi, SignalCardBimiProps, SignalCardDkim, SignalCardDkimDomainAnalyzer, SignalCardDkimDomainAnalyzerProps, SignalCardDkimProps, SignalCardDmarc, SignalCardDmarcDomain, SignalCardDmarcDomainProps, SignalCardDmarcProps, SignalCardDnssec, SignalCardDnssecProps, SignalCardFcrdns, SignalCardFcrdnsProps, SignalCardGoogleYahooCompliance, SignalCardGoogleYahooComplianceProps, SignalCardList, SignalCardListProps, SignalCardMtaSts, SignalCardMtaStsProps, SignalCardSpf, SignalCardSpfDomain, SignalCardSpfDomainAnalyzer, SignalCardSpfDomainAnalyzerProps, SignalCardSpfDomainProps, SignalCardSpfProps, SignalCardSubdo, SignalCardSubdoProps, SignalCardTheme, SignalCardThemeProvider, SignalCardThemeProviderProps, SignalCardThreatInv, SignalCardThreatInvProps, SignalCardTls, SignalCardTlsProps, SignalCardUrls, SignalCardUrlsProps, SignalData, SignedHeaders, SignerDomain, Sp, Spf, SpfAlignment, SpfDomain, SpfRecord, Ssl, SubdomainPolicy, Tls, TlsRptRecord, Ttl, TxtRecord, TxtRecords, VMC, Version, createGlossaryLink, glossaryLabelIds, useResolvedTheme, useSignalCardTheme };