@redsift/products 12.5.13-muiv6 → 12.5.13

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/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 { JmapProps, InvestigateProps, SpfProps, DmarcProps, DkimProps, DnsSecurityProps, ExtsecrepProps, MtaProps, DomainAnalyzerDkimProps, DomainAnalyzerSpfProps, DmarcDomainData, TlsProps, EhloProps, FcrdnsProps, EhloCheckProps, RecommendationsData } from '@redsift/signal-logic';
7
+ import { 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,132 @@ declare const RadarSimpleMenuButton: Comp<Omit<MenuButtonProps, 'children'> & {
220
220
  icon?: Omit<IconProps, 'ref'>;
221
221
  } & Pick<MenuButtonContentMenuProps, 'children'>, HTMLDivElement>;
222
222
 
223
+ type SignalData = {
224
+ signalType: string;
225
+ jmap?: {
226
+ extsecrep?: Record<string, any>;
227
+ [key: string]: unknown;
228
+ };
229
+ shortDescription?: unknown;
230
+ [key: string]: unknown;
231
+ };
232
+ type ErrorLike = {
233
+ name?: string;
234
+ message?: string;
235
+ stack?: string;
236
+ };
237
+ type CardEnabledOverrides = Record<string, boolean | undefined>;
238
+ interface SignalCardListProps extends Omit<ComponentProps<'div'>, 'children'> {
239
+ /** Array of signal data objects containing DMARC, DKIM, SPF information */
240
+ signals?: SignalData[];
241
+ /** Error object to display if signal loading fails */
242
+ error?: ErrorLike | null;
243
+ /** Map of signal types to enabled/disabled state */
244
+ isCardEnabledMap?: CardEnabledOverrides;
245
+ /** Signal types to display in the priority section (shown first). Defaults to DMARC, DKIM, SPF */
246
+ prioritySignalTypes?: string[];
247
+ /** Initial selected signal type for external selection control */
248
+ initialSelectedSignalType?: string | null;
249
+ /** Callback when a signal card is selected */
250
+ onSelectSignalType?: (signalType: string) => void;
251
+ /** Custom header renderer for adding content at the top of each card, after the title */
252
+ renderCardHeader?: (signal: SignalData) => React.ReactNode;
253
+ /** Override the promo banner button href on all cards and the email provider banner CTA link (e.g. to add UTM parameters). For per-card promo banners, only used when renderCardHeader is not provided. Defaults to the OnDMARC signup URL (`https://iam.redsift.cloud/signup?redirectapp=cloud&product=ondmarc`). */
254
+ cardPromoHref?: string;
255
+ /**
256
+ * Optional callback fired when the user clicks any CTA link that navigates
257
+ * to the promo/signup href. This includes:
258
+ * - The "Protect your domain" promo banner inside each card (shown when
259
+ * `renderCardHeader` is not provided; uses `cardPromoHref` or the default
260
+ * OnDMARC signup URL)
261
+ * - The "Set up monitoring" link in the email provider banner (only rendered
262
+ * when `cardPromoHref` is set)
263
+ *
264
+ * Fires alongside the normal navigation (does not prevent default).
265
+ */
266
+ onCardPromoClick?: () => void;
267
+ /** Override the promo banner text on all cards. Only used when renderCardHeader is not provided. Defaults to the translated OnDMARC trial copy. */
268
+ cardPromoText?: string;
269
+ /** Override the promo banner button label on all cards. Defaults to the translated 'Protect your domain'. */
270
+ cardPromoButtonLabel?: string;
271
+ /** Custom footer renderer for adding content at the bottom of each card */
272
+ renderCardFooter?: (signal: SignalData) => React.ReactNode;
273
+ /**
274
+ * Heading text for the priority signals section.
275
+ * Defaults to "Required for the selected compliance profile"
276
+ */
277
+ prioritySectionHeading?: string;
278
+ /**
279
+ * Heading text for the remaining signals section.
280
+ * Defaults to "Not required for the selected compliance profile"
281
+ */
282
+ remainingSectionHeading?: string;
283
+ /** Use Investigate handbook colors instead of Design System CSS variables */
284
+ useInvestigateColors?: boolean;
285
+ /**
286
+ * Enable collapsible sections inside all child cards.
287
+ * @default true
288
+ */
289
+ isCollapsible?: boolean;
290
+ /**
291
+ * Controlled collapsed state for all sections in all child cards.
292
+ * Used with isCollapsible to manage collapsed state externally.
293
+ */
294
+ areAllCollapsed?: boolean;
295
+ /**
296
+ * Callback fired when the collapse-all toggle changes in any child card.
297
+ */
298
+ onCollapseAll?: (areAllCollapsed: boolean) => void;
299
+ /**
300
+ * AI-powered recommendations data including analysis and per-protocol signals.
301
+ * When provided (and showRecommendations is not false), renders a RecommendationsSummary
302
+ * section above the signal cards.
303
+ */
304
+ recommendations?: RecommendationsData | null;
305
+ /**
306
+ * Whether recommendations data is still loading.
307
+ * When true, shows a skeleton/shimmer placeholder for the recommendations section.
308
+ */
309
+ recommendationsLoading?: boolean;
310
+ /**
311
+ * Whether to show the recommendations section.
312
+ * @default true
313
+ */
314
+ showRecommendations?: boolean;
315
+ /**
316
+ * Structured data for the CTA card in the recommendations section.
317
+ * The DS owns the layout; the consumer provides the content and click handler.
318
+ */
319
+ recommendationsCTA?: {
320
+ title: string;
321
+ description: string;
322
+ buttonLabel: string;
323
+ onClickCTA: () => void;
324
+ };
325
+ /**
326
+ * Callback when user clicks "See more details" on a status card.
327
+ * The consumer uses this to scroll to and expand the corresponding signal card.
328
+ */
329
+ onExpandSignalCard?: (signalType: string) => void;
330
+ /**
331
+ * Callback for the "Check another email" button in the header.
332
+ * When provided, renders a styled button with a sync icon and translated label.
333
+ * Only rendered when a checked email is found in the signal data.
334
+ */
335
+ onCheckAnotherEmail?: () => void;
336
+ /**
337
+ * Render prop for custom action area in the header.
338
+ * Overrides the default "Check another email" button when provided.
339
+ * Only rendered when a checked email is found in the signal data.
340
+ */
341
+ renderHeaderAction?: () => ReactNode;
342
+ /**
343
+ * Whether to show the "Powered by OnDMARC" branding in the header.
344
+ * @default true
345
+ */
346
+ showBranding?: boolean;
347
+ }
348
+
223
349
  /**
224
350
  * Common props shared by all signal card components. These cover layout options
225
351
  * that ultimately map to `SignalCardNormal`.
@@ -251,148 +377,147 @@ interface SignalCardSharedProps extends Omit<ComponentProps<'div'>, 'children' |
251
377
  onCollapseAll?: (areAllCollapsed: boolean) => void;
252
378
  }
253
379
 
380
+ /**
381
+ * Extended JMAP props for DMARC card including required extsecrep data
382
+ */
383
+ interface SignalCardDmarcJmapProps extends JmapProps {
384
+ extsecrep: {
385
+ dmarc?: DmarcProps;
386
+ dkim?: DkimProps | DkimProps[];
387
+ spf?: SpfProps;
388
+ };
389
+ }
254
390
  /**
255
391
  * Component props.
256
392
  */
257
- interface SignalCardGoogleYahooComplianceProps extends SignalCardSharedProps {
258
- /**
259
- * Domain name (currently not used but maintained for API compatibility)
260
- */
261
- domain?: string | null;
393
+ interface SignalCardDmarcProps extends SignalCardSharedProps {
262
394
  /**
263
- * JMAP extsecrep data containing authentication results
395
+ * JMAP email data containing DMARC, DKIM, SPF information
264
396
  */
265
- jmap?: JmapProps | null;
397
+ jmap: SignalCardDmarcJmapProps;
266
398
  /**
267
- * Investigate data with FCrDNS and EHLO check results
399
+ * Whether this is being used in domain analyzer mode
268
400
  */
269
- investigate?: InvestigateProps | null;
401
+ isDomainAnalyzer?: boolean;
270
402
  }
271
403
 
404
+ type SpfData = SpfProps;
272
405
  /**
273
406
  * Component props.
274
407
  */
275
- interface SignalCardUrlsProps extends SignalCardSharedProps {
276
- /**
277
- * Investigate data containing extracted URLs
278
- */
279
- investigate?: InvestigateProps | null;
408
+ interface SignalCardSpfProps extends SignalCardSharedProps {
409
+ /** JMAP email data containing SPF information */
410
+ jmap: {
411
+ extsecrep: {
412
+ spf?: SpfData;
413
+ };
414
+ };
280
415
  }
281
416
 
417
+ type DkimResult = DkimProps;
418
+ type DmarcResult = DmarcProps | null;
282
419
  /**
283
- * External security report data structure
420
+ * Component props.
284
421
  */
285
- interface ExtsecrepData {
286
- /** SPF check data */
287
- spf?: SpfProps | null;
288
- /** DMARC policy data */
289
- dmarc?: DmarcProps | null;
290
- /** DKIM signature data - can be array or object */
291
- dkim?: DkimProps | DkimProps[] | null;
422
+ interface SignalCardDkimProps extends SignalCardSharedProps {
423
+ /** JMAP email data containing DKIM, DMARC information */
424
+ jmap: {
425
+ extsecrep: {
426
+ dkim?: DkimResult | DkimResult[] | null;
427
+ dmarc?: DmarcResult;
428
+ };
429
+ };
292
430
  }
431
+
293
432
  /**
294
433
  * Component props.
295
434
  */
296
- interface SignalCardAmpProps extends SignalCardSharedProps {
297
- /** JMAP data containing authentication information */
435
+ interface SignalCardFcrdnsProps extends SignalCardSharedProps {
436
+ /** JMAP data containing EHLO information */
298
437
  jmap: {
299
- /** External security report with SPF, DMARC, DKIM data */
300
- extsecrep: ExtsecrepData;
301
- /** From email address information */
302
- from?: {
303
- email?: string | null;
304
- } | null;
438
+ extsecrep: {
439
+ ehlo?: EhloProps;
440
+ };
441
+ };
442
+ /** Investigation data with FCrDNS and EHLO check results */
443
+ investigate?: {
444
+ fcrdns?: FcrdnsProps | null;
445
+ ehloCheck?: EhloCheckProps | null;
305
446
  };
306
447
  }
307
448
 
308
449
  /**
309
450
  * Component props.
310
451
  */
311
- interface SignalCardDnssecProps extends SignalCardSharedProps {
312
- /** JMAP data containing DNS security information */
313
- jmap?: {
314
- extsecrep?: {
315
- dnsSecurity?: DnsSecurityProps | null;
316
- } | null;
317
- } | null;
318
- /** Custom short description (overrides default based on result) */
319
- shortDescription?: ReactNode;
452
+ interface SignalCardTlsProps extends SignalCardSharedProps {
453
+ /** JMAP email data containing TLS information */
454
+ jmap: {
455
+ extsecrep: {
456
+ tls?: TlsProps;
457
+ };
458
+ };
320
459
  }
321
460
 
322
- type ExtsecrepThreatLevel = ExtsecrepProps;
323
- type FromInfo = {
324
- name?: string | null;
325
- email?: string | null;
461
+ type Originator = {
462
+ domain?: string | null;
463
+ orgDomain?: string | null;
326
464
  } | null;
327
- /**
328
- * Component props.
329
- */
330
- interface SignalCardThreatInvProps extends SignalCardSharedProps {
331
- /** JMAP email data containing threat intelligence information */
465
+ interface SignalCardDmarcDomainProps extends SignalCardSharedProps {
332
466
  jmap: {
333
- extsecrep: ExtsecrepThreatLevel;
334
- from?: FromInfo;
467
+ extsecrep: {
468
+ dmarc: DmarcDomainData;
469
+ originator?: Originator;
470
+ };
335
471
  };
336
- /** Whether this is being used in domain analyzer mode */
337
- isDomainAnalyzer?: boolean;
338
472
  }
339
473
 
340
- type SubdoReportEntry = {
474
+ /**
475
+ * SPF report item from the BIMI Checker API
476
+ */
477
+ interface SpfReportItem {
478
+ status?: string;
341
479
  message?: string;
342
480
  spfError?: string;
343
- raw?: string;
344
- value?: unknown;
345
- details?: unknown;
481
+ }
482
+ interface SpfDetails {
483
+ raw?: string | string[] | null;
484
+ status?: string | null;
485
+ txtExtractedFrom?: string | null;
486
+ report?: SpfReportItem[];
346
487
  [key: string]: unknown;
347
- };
488
+ }
348
489
  /**
349
- * Component props.
490
+ * Props for the SignalCardSpfDomain component.
491
+ *
492
+ * Simplified SPF Domain Card for BIMI Checker - shows only pass/fail status and raw SPF record.
350
493
  */
351
- interface SignalCardSubdoProps extends SignalCardSharedProps {
494
+ interface SignalCardSpfDomainProps extends SignalCardSharedProps {
352
495
  /**
353
- * JMAP data containing SPF subdomain takeover report
496
+ * JMAP data containing SPF authentication results
354
497
  */
355
498
  jmap?: {
356
499
  extsecrep?: {
357
- spf?: {
358
- domain?: string | null;
359
- report?: SubdoReportEntry[] | null;
360
- } | null;
361
- } | null;
362
- } | null;
363
- }
364
-
365
- /**
366
- * Component props.
367
- */
368
- interface SignalCardMtaStsProps extends SignalCardSharedProps {
369
- /** JMAP email data containing MTA-STS information */
370
- jmap?: {
371
- extsecrep?: {
372
- mta?: MtaProps | null;
500
+ spf?: SpfDetails | null;
373
501
  } | null;
374
502
  } | null;
375
- /** Domain to analyze */
376
- domain?: string;
377
503
  }
378
504
 
379
505
  /**
380
506
  * Component props.
381
507
  */
382
- interface SignalCardBimiProps extends SignalCardSharedProps {
508
+ interface SignalCardSpfDomainAnalyzerProps extends SignalCardSharedProps {
383
509
  /**
384
- * JMAP data containing BIMI and DMARC information from the email security report.
510
+ * JMAP data containing SPF analysis results
385
511
  */
386
512
  jmap: {
387
513
  extsecrep: {
388
- bimi?: any;
389
- dmarc?: any;
514
+ spf: DomainAnalyzerSpfProps;
515
+ originator?: {
516
+ domain?: string | null;
517
+ orgDomain?: string | null;
518
+ } | null;
390
519
  };
391
520
  };
392
- /**
393
- * Optional callback invoked when the component mounts.
394
- */
395
- onComponentMount?: () => void;
396
521
  }
397
522
 
398
523
  /**
@@ -424,270 +549,145 @@ interface SignalCardDkimDomainAnalyzerProps extends SignalCardSharedProps {
424
549
  /**
425
550
  * Component props.
426
551
  */
427
- interface SignalCardSpfDomainAnalyzerProps extends SignalCardSharedProps {
552
+ interface SignalCardBimiProps extends SignalCardSharedProps {
428
553
  /**
429
- * JMAP data containing SPF analysis results
554
+ * JMAP data containing BIMI and DMARC information from the email security report.
430
555
  */
431
556
  jmap: {
432
557
  extsecrep: {
433
- spf: DomainAnalyzerSpfProps;
434
- originator?: {
435
- domain?: string | null;
436
- orgDomain?: string | null;
437
- } | null;
558
+ bimi?: any;
559
+ dmarc?: any;
438
560
  };
439
561
  };
562
+ /**
563
+ * Optional callback invoked when the component mounts.
564
+ */
565
+ onComponentMount?: () => void;
440
566
  }
441
567
 
442
568
  /**
443
- * SPF report item from the BIMI Checker API
569
+ * Component props.
444
570
  */
445
- interface SpfReportItem {
446
- status?: string;
571
+ interface SignalCardMtaStsProps extends SignalCardSharedProps {
572
+ /** JMAP email data containing MTA-STS information */
573
+ jmap?: {
574
+ extsecrep?: {
575
+ mta?: MtaProps | null;
576
+ } | null;
577
+ } | null;
578
+ /** Domain to analyze */
579
+ domain?: string;
580
+ }
581
+
582
+ type SubdoReportEntry = {
447
583
  message?: string;
448
584
  spfError?: string;
449
- }
450
- interface SpfDetails {
451
- raw?: string | string[] | null;
452
- status?: string | null;
453
- txtExtractedFrom?: string | null;
454
- report?: SpfReportItem[];
585
+ raw?: string;
586
+ value?: unknown;
587
+ details?: unknown;
455
588
  [key: string]: unknown;
456
- }
589
+ };
457
590
  /**
458
- * Props for the SignalCardSpfDomain component.
459
- *
460
- * Simplified SPF Domain Card for BIMI Checker - shows only pass/fail status and raw SPF record.
591
+ * Component props.
461
592
  */
462
- interface SignalCardSpfDomainProps extends SignalCardSharedProps {
593
+ interface SignalCardSubdoProps extends SignalCardSharedProps {
463
594
  /**
464
- * JMAP data containing SPF authentication results
595
+ * JMAP data containing SPF subdomain takeover report
465
596
  */
466
597
  jmap?: {
467
598
  extsecrep?: {
468
- spf?: SpfDetails | null;
599
+ spf?: {
600
+ domain?: string | null;
601
+ report?: SubdoReportEntry[] | null;
602
+ } | null;
469
603
  } | null;
470
604
  } | null;
471
605
  }
472
606
 
473
- type Originator = {
474
- domain?: string | null;
475
- orgDomain?: string | null;
607
+ type ExtsecrepThreatLevel = ExtsecrepProps;
608
+ type FromInfo = {
609
+ name?: string | null;
610
+ email?: string | null;
476
611
  } | null;
477
- interface SignalCardDmarcDomainProps extends SignalCardSharedProps {
478
- jmap: {
479
- extsecrep: {
480
- dmarc: DmarcDomainData;
481
- originator?: Originator;
482
- };
483
- };
484
- }
485
-
486
612
  /**
487
613
  * Component props.
488
614
  */
489
- interface SignalCardTlsProps extends SignalCardSharedProps {
490
- /** JMAP email data containing TLS information */
615
+ interface SignalCardThreatInvProps extends SignalCardSharedProps {
616
+ /** JMAP email data containing threat intelligence information */
491
617
  jmap: {
492
- extsecrep: {
493
- tls?: TlsProps;
494
- };
618
+ extsecrep: ExtsecrepThreatLevel;
619
+ from?: FromInfo;
495
620
  };
621
+ /** Whether this is being used in domain analyzer mode */
622
+ isDomainAnalyzer?: boolean;
496
623
  }
497
624
 
498
625
  /**
499
626
  * Component props.
500
627
  */
501
- interface SignalCardFcrdnsProps extends SignalCardSharedProps {
502
- /** JMAP data containing EHLO information */
503
- jmap: {
504
- extsecrep: {
505
- ehlo?: EhloProps;
506
- };
507
- };
508
- /** Investigation data with FCrDNS and EHLO check results */
509
- investigate?: {
510
- fcrdns?: FcrdnsProps | null;
511
- ehloCheck?: EhloCheckProps | null;
512
- };
628
+ interface SignalCardDnssecProps extends SignalCardSharedProps {
629
+ /** JMAP data containing DNS security information */
630
+ jmap?: {
631
+ extsecrep?: {
632
+ dnsSecurity?: DnsSecurityProps | null;
633
+ } | null;
634
+ } | null;
635
+ /** Custom short description (overrides default based on result) */
636
+ shortDescription?: ReactNode;
513
637
  }
514
638
 
515
- type DkimResult = DkimProps;
516
- type DmarcResult = DmarcProps | null;
517
639
  /**
518
- * Component props.
640
+ * External security report data structure
519
641
  */
520
- interface SignalCardDkimProps extends SignalCardSharedProps {
521
- /** JMAP email data containing DKIM, DMARC information */
522
- jmap: {
523
- extsecrep: {
524
- dkim?: DkimResult | DkimResult[] | null;
525
- dmarc?: DmarcResult;
526
- };
527
- };
642
+ interface ExtsecrepData {
643
+ /** SPF check data */
644
+ spf?: SpfProps | null;
645
+ /** DMARC policy data */
646
+ dmarc?: DmarcProps | null;
647
+ /** DKIM signature data - can be array or object */
648
+ dkim?: DkimProps | DkimProps[] | null;
528
649
  }
529
-
530
- type SpfData = SpfProps;
531
650
  /**
532
651
  * Component props.
533
652
  */
534
- interface SignalCardSpfProps extends SignalCardSharedProps {
535
- /** JMAP email data containing SPF information */
653
+ interface SignalCardAmpProps extends SignalCardSharedProps {
654
+ /** JMAP data containing authentication information */
536
655
  jmap: {
537
- extsecrep: {
538
- spf?: SpfData;
539
- };
656
+ /** External security report with SPF, DMARC, DKIM data */
657
+ extsecrep: ExtsecrepData;
658
+ /** From email address information */
659
+ from?: {
660
+ email?: string | null;
661
+ } | null;
540
662
  };
541
663
  }
542
664
 
543
- /**
544
- * Extended JMAP props for DMARC card including required extsecrep data
545
- */
546
- interface SignalCardDmarcJmapProps extends JmapProps {
547
- extsecrep: {
548
- dmarc?: DmarcProps;
549
- dkim?: DkimProps | DkimProps[];
550
- spf?: SpfProps;
551
- };
552
- }
553
665
  /**
554
666
  * Component props.
555
667
  */
556
- interface SignalCardDmarcProps extends SignalCardSharedProps {
557
- /**
558
- * JMAP email data containing DMARC, DKIM, SPF information
559
- */
560
- jmap: SignalCardDmarcJmapProps;
668
+ interface SignalCardUrlsProps extends SignalCardSharedProps {
561
669
  /**
562
- * Whether this is being used in domain analyzer mode
670
+ * Investigate data containing extracted URLs
563
671
  */
564
- isDomainAnalyzer?: boolean;
672
+ investigate?: InvestigateProps | null;
565
673
  }
566
674
 
567
- type SignalData = {
568
- signalType: string;
569
- jmap?: {
570
- extsecrep?: Record<string, any>;
571
- [key: string]: unknown;
572
- };
573
- shortDescription?: unknown;
574
- [key: string]: unknown;
575
- };
576
- type ErrorLike = {
577
- name?: string;
578
- message?: string;
579
- stack?: string;
580
- };
581
- type CardEnabledOverrides = Record<string, boolean | undefined>;
582
- interface SignalCardListProps extends Omit<ComponentProps<'div'>, 'children'> {
583
- /** Array of signal data objects containing DMARC, DKIM, SPF information */
584
- signals?: SignalData[];
585
- /** Error object to display if signal loading fails */
586
- error?: ErrorLike | null;
587
- /** Map of signal types to enabled/disabled state */
588
- isCardEnabledMap?: CardEnabledOverrides;
589
- /** Signal types to display in the priority section (shown first). Defaults to DMARC, DKIM, SPF */
590
- prioritySignalTypes?: string[];
591
- /** Initial selected signal type for external selection control */
592
- initialSelectedSignalType?: string | null;
593
- /** Callback when a signal card is selected */
594
- onSelectSignalType?: (signalType: string) => void;
595
- /** Custom header renderer for adding content at the top of each card, after the title */
596
- renderCardHeader?: (signal: SignalData) => React.ReactNode;
597
- /** Override the promo banner button href on all cards and the email provider banner CTA link (e.g. to add UTM parameters). For per-card promo banners, only used when renderCardHeader is not provided. Defaults to the OnDMARC signup URL (`https://iam.redsift.cloud/signup?redirectapp=cloud&product=ondmarc`). */
598
- cardPromoHref?: string;
599
- /**
600
- * Optional callback fired when the user clicks any CTA link that navigates
601
- * to the promo/signup href. This includes:
602
- * - The "Protect your domain" promo banner inside each card (shown when
603
- * `renderCardHeader` is not provided; uses `cardPromoHref` or the default
604
- * OnDMARC signup URL)
605
- * - The "Set up monitoring" link in the email provider banner (only rendered
606
- * when `cardPromoHref` is set)
607
- *
608
- * Fires alongside the normal navigation (does not prevent default).
609
- */
610
- onCardPromoClick?: () => void;
611
- /** Override the promo banner text on all cards. Only used when renderCardHeader is not provided. Defaults to the translated OnDMARC trial copy. */
612
- cardPromoText?: string;
613
- /** Override the promo banner button label on all cards. Defaults to the translated 'Protect your domain'. */
614
- cardPromoButtonLabel?: string;
615
- /** Custom footer renderer for adding content at the bottom of each card */
616
- renderCardFooter?: (signal: SignalData) => React.ReactNode;
617
- /**
618
- * Heading text for the priority signals section.
619
- * Defaults to "Required for the selected compliance profile"
620
- */
621
- prioritySectionHeading?: string;
622
- /**
623
- * Heading text for the remaining signals section.
624
- * Defaults to "Not required for the selected compliance profile"
625
- */
626
- remainingSectionHeading?: string;
627
- /** Use Investigate handbook colors instead of Design System CSS variables */
628
- useInvestigateColors?: boolean;
629
- /**
630
- * Enable collapsible sections inside all child cards.
631
- * @default true
632
- */
633
- isCollapsible?: boolean;
634
- /**
635
- * Controlled collapsed state for all sections in all child cards.
636
- * Used with isCollapsible to manage collapsed state externally.
637
- */
638
- areAllCollapsed?: boolean;
639
- /**
640
- * Callback fired when the collapse-all toggle changes in any child card.
641
- */
642
- onCollapseAll?: (areAllCollapsed: boolean) => void;
643
- /**
644
- * AI-powered recommendations data including analysis and per-protocol signals.
645
- * When provided (and showRecommendations is not false), renders a RecommendationsSummary
646
- * section above the signal cards.
647
- */
648
- recommendations?: RecommendationsData | null;
649
- /**
650
- * Whether recommendations data is still loading.
651
- * When true, shows a skeleton/shimmer placeholder for the recommendations section.
652
- */
653
- recommendationsLoading?: boolean;
654
- /**
655
- * Whether to show the recommendations section.
656
- * @default true
657
- */
658
- showRecommendations?: boolean;
659
- /**
660
- * Structured data for the CTA card in the recommendations section.
661
- * The DS owns the layout; the consumer provides the content and click handler.
662
- */
663
- recommendationsCTA?: {
664
- title: string;
665
- description: string;
666
- buttonLabel: string;
667
- onClickCTA: () => void;
668
- };
669
- /**
670
- * Callback when user clicks "See more details" on a status card.
671
- * The consumer uses this to scroll to and expand the corresponding signal card.
672
- */
673
- onExpandSignalCard?: (signalType: string) => void;
675
+ /**
676
+ * Component props.
677
+ */
678
+ interface SignalCardGoogleYahooComplianceProps extends SignalCardSharedProps {
674
679
  /**
675
- * Callback for the "Check another email" button in the header.
676
- * When provided, renders a styled button with a sync icon and translated label.
677
- * Only rendered when a checked email is found in the signal data.
680
+ * Domain name (currently not used but maintained for API compatibility)
678
681
  */
679
- onCheckAnotherEmail?: () => void;
682
+ domain?: string | null;
680
683
  /**
681
- * Render prop for custom action area in the header.
682
- * Overrides the default "Check another email" button when provided.
683
- * Only rendered when a checked email is found in the signal data.
684
+ * JMAP extsecrep data containing authentication results
684
685
  */
685
- renderHeaderAction?: () => ReactNode;
686
+ jmap?: JmapProps | null;
686
687
  /**
687
- * Whether to show the "Powered by OnDMARC" branding in the header.
688
- * @default true
688
+ * Investigate data with FCrDNS and EHLO check results
689
689
  */
690
- showBranding?: boolean;
690
+ investigate?: InvestigateProps | null;
691
691
  }
692
692
 
693
693
  /**