@redsift/products 12.5.2-muiv7 → 12.5.2

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