@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/_internal/SignalCardSpfDomain.js +211 -26
- package/_internal/SignalCardSpfDomain.js.map +1 -1
- package/_internal/signal-cards.js +7 -2
- package/_internal/signal-cards.js.map +1 -1
- package/bimi-checker.d.ts +26 -1
- package/index.d.ts +85 -52
- package/package.json +6 -6
- package/signal-cards.d.ts +85 -52
|
@@ -3,9 +3,9 @@ import React__default, { useMemo, useContext, createContext, forwardRef, useCall
|
|
|
3
3
|
import classNames from 'classnames';
|
|
4
4
|
import styled, { css } from 'styled-components';
|
|
5
5
|
import pako from 'pako';
|
|
6
|
-
import { interpolateTranslation, mapStatusToDetailedCardColor, isStructuredData, calculateSankeyHeight, create2LevelSankey, extractDmarcData, extractSpfData, extractTlsData, extractFcrdnsData, extractDnssecData, extractThreatIntelligenceData, extractUrlsData, extractBimiData, extractAmpData, extractSubdoData, extractDomainAnalyzerDkimData, extractDomainAnalyzerSpfData, extractDmarcDomainData, extractSpfDomainData, extractMtaStsFullData, extractDkimData, recordStatus } from '@redsift/signal-logic';
|
|
6
|
+
import { interpolateTranslation, mapStatusToDetailedCardColor, isStructuredData, calculateSankeyHeight, create2LevelSankey, extractDmarcData, extractSpfData, extractTlsData, extractFcrdnsData, extractDnssecData, extractThreatIntelligenceData, extractUrlsData, extractBimiData, extractAmpData, extractSubdoData, extractDomainAnalyzerDkimData, extractDomainAnalyzerSpfData, extractDmarcDomainData, extractSpfDomainData, extractMtaStsFullData, extractDkimData, recordStatus, getBimiMakerEligibility } from '@redsift/signal-logic';
|
|
7
7
|
import { useLocalizedStringFormatter, useTheme, Button, Icon, DetailedCard, ButtonLink, Flexbox } from '@redsift/design-system';
|
|
8
|
-
import { mdiHelpCircle, mdiClose, mdiAlert, mdiEmail, mdiEarth, mdiInformationOutline, mdiCheck, mdiInformation, mdiFormatAlignRight, mdiFormatAlignJustify } from '@redsift/icons';
|
|
8
|
+
import { mdiHelpCircle, mdiClose, mdiAlert, mdiEmail, mdiEarth, mdiInformationOutline, mdiCheck, mdiInformation, mdiFormatAlignRight, mdiFormatAlignJustify, mdiOpenInNew } from '@redsift/icons';
|
|
9
9
|
import { createPortal } from 'react-dom';
|
|
10
10
|
|
|
11
11
|
const COLOR = {
|
|
@@ -1960,6 +1960,10 @@ var enUS = {
|
|
|
1960
1960
|
"investigate.recommendations.protocol-google-yahoo-compliance": "Google/Yahoo Compliance",
|
|
1961
1961
|
"investigate.dmarc-promo.text": "Sign up for OnDMARC's 14-day free trial and get your domain DMARC compliant today.",
|
|
1962
1962
|
"investigate.dmarc-promo.button": "Protect your domain",
|
|
1963
|
+
"investigate.bimi-maker-promo.heading": "Get BIMI easily with guided setup",
|
|
1964
|
+
"investigate.bimi-maker-promo.missing-copy": "Your domain meets the DMARC requirements for BIMI. BIMI Maker guides you step by step through creating your logo and getting started with BIMI certification.",
|
|
1965
|
+
"investigate.bimi-maker-promo.incomplete-copy": "Complete your BIMI setup with step-by-step guidance from BIMI Maker.",
|
|
1966
|
+
"investigate.bimi-maker-promo.button-label": "Get started with BIMI Maker",
|
|
1963
1967
|
"investigate.section-titles.bimi-domain": "DMARC Domains",
|
|
1964
1968
|
"investigate.section-titles.dmarc-domain": "DMARC Domains",
|
|
1965
1969
|
"investigate.card.dmarc.domain-aligned": "The domain is aligned with the From Domain. It can contribute to passing DMARC.",
|
|
@@ -2688,6 +2692,10 @@ var frFR = {
|
|
|
2688
2692
|
"investigate.recommendations.protocol-google-yahoo-compliance": "Conformité Google/Yahoo",
|
|
2689
2693
|
"investigate.dmarc-promo.text": "Inscrivez-vous pour un essai gratuit de 14 jours d'OnDMARC et rendez votre domaine conforme à DMARC dès aujourd'hui.",
|
|
2690
2694
|
"investigate.dmarc-promo.button": "Protégez votre domaine",
|
|
2695
|
+
"investigate.bimi-maker-promo.heading": "Adoptez BIMI facilement grâce à une configuration guidée",
|
|
2696
|
+
"investigate.bimi-maker-promo.missing-copy": "Votre domaine remplit les exigences DMARC de BIMI. BIMI Maker vous guide pas à pas pour créer votre logo et démarrer votre certification BIMI.",
|
|
2697
|
+
"investigate.bimi-maker-promo.incomplete-copy": "Finalisez votre configuration BIMI grâce aux instructions pas à pas de BIMI Maker.",
|
|
2698
|
+
"investigate.bimi-maker-promo.button-label": "Commencer avec BIMI Maker",
|
|
2691
2699
|
"investigate.section-titles.bimi-domain": "Domaines DMARC",
|
|
2692
2700
|
"investigate.section-titles.dmarc-domain": "Domaines DMARC",
|
|
2693
2701
|
"investigate.card.dmarc.domain-aligned": "Le domaine est aligné avec le domaine expéditeur. Il peut contribuer à la réussite de DMARC.",
|
|
@@ -3288,7 +3296,7 @@ DescriptionSpacer.displayName = 'DeliverabilityDescriptionSpacer';
|
|
|
3288
3296
|
ChartContainer.displayName = 'InfoChartContainer';
|
|
3289
3297
|
|
|
3290
3298
|
const _excluded$7 = ["children", "theme", "type", "useInvestigateColors"];
|
|
3291
|
-
const websiteButtonToken$
|
|
3299
|
+
const websiteButtonToken$2 = (theme, token, state) => `var(--redsift-color-${theme}-components-website-buttons-primary-website-button-primary-${token}-${state})`;
|
|
3292
3300
|
const websiteButtonOutlineToken = theme => `var(--redsift-color-${theme}-components-website-buttons-primary-website-button-primary-background-focus-visible-outline)`;
|
|
3293
3301
|
const StyledSignalCardButton = styled.button`
|
|
3294
3302
|
box-sizing: border-box;
|
|
@@ -3297,7 +3305,7 @@ const StyledSignalCardButton = styled.button`
|
|
|
3297
3305
|
let {
|
|
3298
3306
|
$theme
|
|
3299
3307
|
} = _ref;
|
|
3300
|
-
return websiteButtonToken$
|
|
3308
|
+
return websiteButtonToken$2($theme, 'background', 'default');
|
|
3301
3309
|
}};
|
|
3302
3310
|
/* Fallback if CSS variables not loaded */
|
|
3303
3311
|
background-color: var(
|
|
@@ -3329,7 +3337,7 @@ const StyledSignalCardButton = styled.button`
|
|
|
3329
3337
|
let {
|
|
3330
3338
|
$theme
|
|
3331
3339
|
} = _ref2;
|
|
3332
|
-
return websiteButtonToken$
|
|
3340
|
+
return websiteButtonToken$2($theme, 'text', 'default');
|
|
3333
3341
|
}};
|
|
3334
3342
|
/* Fallback if CSS variables not loaded */
|
|
3335
3343
|
color: white;
|
|
@@ -3347,14 +3355,14 @@ const StyledSignalCardButton = styled.button`
|
|
|
3347
3355
|
$theme
|
|
3348
3356
|
} = _ref3;
|
|
3349
3357
|
return css`
|
|
3350
|
-
background-color: ${websiteButtonToken$
|
|
3358
|
+
background-color: ${websiteButtonToken$2($theme, 'background', 'hover')};
|
|
3351
3359
|
/* Fallback if CSS variables not loaded */
|
|
3352
3360
|
background-color: #52184d;
|
|
3353
|
-
color: ${websiteButtonToken$
|
|
3361
|
+
color: ${websiteButtonToken$2($theme, 'text', 'hover')};
|
|
3354
3362
|
color: white;
|
|
3355
3363
|
|
|
3356
3364
|
.redsift-icon:not(.colored) {
|
|
3357
|
-
color: ${websiteButtonToken$
|
|
3365
|
+
color: ${websiteButtonToken$2($theme, 'text', 'hover')};
|
|
3358
3366
|
color: white;
|
|
3359
3367
|
}
|
|
3360
3368
|
`;
|
|
@@ -3367,11 +3375,11 @@ const StyledSignalCardButton = styled.button`
|
|
|
3367
3375
|
$theme
|
|
3368
3376
|
} = _ref4;
|
|
3369
3377
|
return css`
|
|
3370
|
-
background-color: ${websiteButtonToken$
|
|
3371
|
-
color: ${websiteButtonToken$
|
|
3378
|
+
background-color: ${websiteButtonToken$2($theme, 'background', 'active')};
|
|
3379
|
+
color: ${websiteButtonToken$2($theme, 'text', 'active')};
|
|
3372
3380
|
|
|
3373
3381
|
.redsift-icon:not(.colored) {
|
|
3374
|
-
color: ${websiteButtonToken$
|
|
3382
|
+
color: ${websiteButtonToken$2($theme, 'text', 'active')};
|
|
3375
3383
|
}
|
|
3376
3384
|
`;
|
|
3377
3385
|
}}
|
|
@@ -3383,12 +3391,12 @@ const StyledSignalCardButton = styled.button`
|
|
|
3383
3391
|
$theme
|
|
3384
3392
|
} = _ref5;
|
|
3385
3393
|
return css`
|
|
3386
|
-
background-color: ${websiteButtonToken$
|
|
3387
|
-
color: ${websiteButtonToken$
|
|
3394
|
+
background-color: ${websiteButtonToken$2($theme, 'background', 'focus-visible')};
|
|
3395
|
+
color: ${websiteButtonToken$2($theme, 'text', 'focus-visible')};
|
|
3388
3396
|
outline: 2px solid ${websiteButtonOutlineToken($theme)};
|
|
3389
3397
|
|
|
3390
3398
|
.redsift-icon:not(.colored) {
|
|
3391
|
-
color: ${websiteButtonToken$
|
|
3399
|
+
color: ${websiteButtonToken$2($theme, 'text', 'focus-visible')};
|
|
3392
3400
|
}
|
|
3393
3401
|
`;
|
|
3394
3402
|
}}
|
|
@@ -3405,12 +3413,12 @@ const StyledSignalCardButton = styled.button`
|
|
|
3405
3413
|
$theme
|
|
3406
3414
|
} = _ref6;
|
|
3407
3415
|
return css`
|
|
3408
|
-
background-color: ${websiteButtonToken$
|
|
3409
|
-
color: ${websiteButtonToken$
|
|
3416
|
+
background-color: ${websiteButtonToken$2($theme, 'background', 'disabled')};
|
|
3417
|
+
color: ${websiteButtonToken$2($theme, 'text', 'disabled')};
|
|
3410
3418
|
cursor: not-allowed;
|
|
3411
3419
|
|
|
3412
3420
|
.redsift-icon:not(.colored) {
|
|
3413
|
-
color: ${websiteButtonToken$
|
|
3421
|
+
color: ${websiteButtonToken$2($theme, 'text', 'disabled')};
|
|
3414
3422
|
}
|
|
3415
3423
|
`;
|
|
3416
3424
|
}}
|
|
@@ -5841,11 +5849,11 @@ const StyledBannerText = styled.span`
|
|
|
5841
5849
|
max-width: 335px;
|
|
5842
5850
|
`;
|
|
5843
5851
|
const ONDMARC_SIGNUP_URL = 'https://iam.redsift.cloud/signup?redirectapp=cloud&product=ondmarc';
|
|
5844
|
-
const websiteButtonToken = (token, state) => `var(--redsift-color-light-components-website-buttons-primary-website-button-primary-${token}-${state})`;
|
|
5852
|
+
const websiteButtonToken$1 = (token, state) => `var(--redsift-color-light-components-website-buttons-primary-website-button-primary-${token}-${state})`;
|
|
5845
5853
|
const StyledBannerLink = styled.a`
|
|
5846
5854
|
box-sizing: border-box;
|
|
5847
5855
|
align-items: center;
|
|
5848
|
-
background-color: ${websiteButtonToken('background', 'default')};
|
|
5856
|
+
background-color: ${websiteButtonToken$1('background', 'default')};
|
|
5849
5857
|
background-color: var(
|
|
5850
5858
|
--redsift-color-light-components-website-buttons-primary-website-button-primary-background-default,
|
|
5851
5859
|
#63224a
|
|
@@ -5871,7 +5879,7 @@ const StyledBannerLink = styled.a`
|
|
|
5871
5879
|
|
|
5872
5880
|
&,
|
|
5873
5881
|
svg {
|
|
5874
|
-
color: ${websiteButtonToken('text', 'default')};
|
|
5882
|
+
color: ${websiteButtonToken$1('text', 'default')};
|
|
5875
5883
|
color: var(--redsift-color-light-components-website-buttons-primary-website-button-primary-text-default, white);
|
|
5876
5884
|
}
|
|
5877
5885
|
|
|
@@ -5884,8 +5892,8 @@ const StyledBannerLink = styled.a`
|
|
|
5884
5892
|
}
|
|
5885
5893
|
|
|
5886
5894
|
&:active {
|
|
5887
|
-
background-color: ${websiteButtonToken('background', 'active')};
|
|
5888
|
-
color: ${websiteButtonToken('text', 'active')};
|
|
5895
|
+
background-color: ${websiteButtonToken$1('background', 'active')};
|
|
5896
|
+
color: ${websiteButtonToken$1('text', 'active')};
|
|
5889
5897
|
}
|
|
5890
5898
|
`;
|
|
5891
5899
|
const ExternalLinkIcon = () => /*#__PURE__*/React__default.createElement("svg", {
|
|
@@ -5900,7 +5908,7 @@ const ExternalLinkIcon = () => /*#__PURE__*/React__default.createElement("svg",
|
|
|
5900
5908
|
d: "M14,3V5H17.59L7.76,14.83L9.17,16.24L19,6.41V10H21V3M19,19H5V5H12V3H5C3.89,3 3,3.9 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V12H19V19Z",
|
|
5901
5909
|
fill: "currentColor"
|
|
5902
5910
|
}));
|
|
5903
|
-
const StyledDSButtonLinkWrapper = styled.div`
|
|
5911
|
+
const StyledDSButtonLinkWrapper$1 = styled.div`
|
|
5904
5912
|
flex: 1 0 0%;
|
|
5905
5913
|
|
|
5906
5914
|
.redsift-button-link {
|
|
@@ -5940,7 +5948,7 @@ const DmarcPromoBanner = _ref => {
|
|
|
5940
5948
|
onClick: () => onClick === null || onClick === void 0 ? void 0 : onClick(),
|
|
5941
5949
|
target: "_blank",
|
|
5942
5950
|
rel: "noopener noreferrer"
|
|
5943
|
-
}, buttonLabel, /*#__PURE__*/React__default.createElement(ExternalLinkIcon, null)) : /*#__PURE__*/React__default.createElement(StyledDSButtonLinkWrapper, null, /*#__PURE__*/React__default.createElement(ButtonLink, {
|
|
5951
|
+
}, buttonLabel, /*#__PURE__*/React__default.createElement(ExternalLinkIcon, null)) : /*#__PURE__*/React__default.createElement(StyledDSButtonLinkWrapper$1, null, /*#__PURE__*/React__default.createElement(ButtonLink, {
|
|
5944
5952
|
href: href,
|
|
5945
5953
|
onClick: () => onClick === null || onClick === void 0 ? void 0 : onClick(),
|
|
5946
5954
|
target: "_blank",
|
|
@@ -9578,7 +9586,171 @@ const buildPublishedCertificateSections = (cert, pem, t, now, assertionMarkType)
|
|
|
9578
9586
|
return sections;
|
|
9579
9587
|
};
|
|
9580
9588
|
|
|
9581
|
-
|
|
9589
|
+
/** Default BIMI Maker destination. Absolute, so it works from any consumer origin (DS-125). */
|
|
9590
|
+
const BIMI_MAKER_URL = 'https://redsift.com/tools/bimi-maker';
|
|
9591
|
+
const StyledPromo = styled.div`
|
|
9592
|
+
display: flex;
|
|
9593
|
+
flex-wrap: wrap;
|
|
9594
|
+
align-items: center;
|
|
9595
|
+
justify-content: space-between;
|
|
9596
|
+
gap: 16px;
|
|
9597
|
+
margin: 24px 0 16px;
|
|
9598
|
+
padding: 16px;
|
|
9599
|
+
border-radius: 8px;
|
|
9600
|
+
border: 1px solid rgba(99, 34, 74, 0.15);
|
|
9601
|
+
background: linear-gradient(
|
|
9602
|
+
71deg,
|
|
9603
|
+
rgba(237, 21, 83, 0.07) 2.5%,
|
|
9604
|
+
rgba(140, 101, 255, 0.07) 51%,
|
|
9605
|
+
rgba(107, 183, 255, 0.07) 100%
|
|
9606
|
+
),
|
|
9607
|
+
#fff;
|
|
9608
|
+
`;
|
|
9609
|
+
const StyledPromoText = styled.div`
|
|
9610
|
+
display: flex;
|
|
9611
|
+
flex-direction: column;
|
|
9612
|
+
gap: 4px;
|
|
9613
|
+
flex: 10000 1 300px;
|
|
9614
|
+
min-width: 0;
|
|
9615
|
+
`;
|
|
9616
|
+
const StyledPromoHeading = styled.p`
|
|
9617
|
+
margin: 0;
|
|
9618
|
+
font-size: 16px;
|
|
9619
|
+
font-weight: 600;
|
|
9620
|
+
line-height: 1.5;
|
|
9621
|
+
font-family: var(--sc-font-heading);
|
|
9622
|
+
color: var(--sc-text-heading, var(--sc-text-color));
|
|
9623
|
+
`;
|
|
9624
|
+
const StyledPromoCopy = styled.p`
|
|
9625
|
+
margin: 0;
|
|
9626
|
+
font-size: 14px;
|
|
9627
|
+
line-height: 1.5;
|
|
9628
|
+
font-family: var(--sc-font-body);
|
|
9629
|
+
color: var(--sc-text-color);
|
|
9630
|
+
`;
|
|
9631
|
+
const websiteButtonToken = (token, state) => `var(--redsift-color-light-components-website-buttons-primary-website-button-primary-${token}-${state})`;
|
|
9632
|
+
|
|
9633
|
+
/**
|
|
9634
|
+
* Website-token primary button, used under `useInvestigateColors` like DmarcPromoBanner's link.
|
|
9635
|
+
* Unlike that link it has a visible `:focus-visible` ring (DS-125 AC: visible focus state), and it
|
|
9636
|
+
* may wrap, so the label never overflows a 320px viewport.
|
|
9637
|
+
*/
|
|
9638
|
+
const StyledPromoLink = styled.a`
|
|
9639
|
+
box-sizing: border-box;
|
|
9640
|
+
display: inline-flex;
|
|
9641
|
+
align-items: center;
|
|
9642
|
+
justify-content: center;
|
|
9643
|
+
gap: 8px;
|
|
9644
|
+
flex: 1 0 auto;
|
|
9645
|
+
max-width: 100%;
|
|
9646
|
+
min-height: 48px;
|
|
9647
|
+
padding: 10px 20px;
|
|
9648
|
+
border: none;
|
|
9649
|
+
border-radius: 5px;
|
|
9650
|
+
background-color: var(
|
|
9651
|
+
--redsift-color-light-components-website-buttons-primary-website-button-primary-background-default,
|
|
9652
|
+
#63224a
|
|
9653
|
+
);
|
|
9654
|
+
font-family: var(--redsift-typography-website-button-font-family, 'Space Grotesk', sans-serif);
|
|
9655
|
+
font-size: var(--redsift-typography-website-button-font-size, 18px);
|
|
9656
|
+
font-weight: var(--redsift-typography-website-button-font-weight, 500);
|
|
9657
|
+
line-height: var(--redsift-typography-website-button-line-height, 1.5);
|
|
9658
|
+
text-align: center;
|
|
9659
|
+
text-decoration: none;
|
|
9660
|
+
cursor: pointer;
|
|
9661
|
+
transition: background-color 200ms ease-out, color 200ms ease-out, outline-offset 75ms ease-out;
|
|
9662
|
+
-webkit-font-smoothing: antialiased;
|
|
9663
|
+
|
|
9664
|
+
&,
|
|
9665
|
+
svg {
|
|
9666
|
+
color: var(--redsift-color-light-components-website-buttons-primary-website-button-primary-text-default, white);
|
|
9667
|
+
}
|
|
9668
|
+
|
|
9669
|
+
&:hover {
|
|
9670
|
+
background-color: var(
|
|
9671
|
+
--redsift-color-light-components-website-buttons-primary-website-button-primary-background-hover,
|
|
9672
|
+
#52184d
|
|
9673
|
+
);
|
|
9674
|
+
}
|
|
9675
|
+
|
|
9676
|
+
&:active {
|
|
9677
|
+
background-color: ${websiteButtonToken('background', 'active')};
|
|
9678
|
+
}
|
|
9679
|
+
|
|
9680
|
+
&:focus-visible {
|
|
9681
|
+
outline: 2px solid
|
|
9682
|
+
var(
|
|
9683
|
+
--redsift-color-light-components-website-buttons-primary-website-button-primary-background-focus-visible-outline,
|
|
9684
|
+
#63224a
|
|
9685
|
+
);
|
|
9686
|
+
outline-offset: 4px;
|
|
9687
|
+
}
|
|
9688
|
+
|
|
9689
|
+
svg {
|
|
9690
|
+
flex-shrink: 0;
|
|
9691
|
+
}
|
|
9692
|
+
`;
|
|
9693
|
+
const StyledDSButtonLinkWrapper = styled.div`
|
|
9694
|
+
flex: 1 0 auto;
|
|
9695
|
+
max-width: 100%;
|
|
9696
|
+
|
|
9697
|
+
.redsift-button-link {
|
|
9698
|
+
box-sizing: border-box;
|
|
9699
|
+
width: 100%;
|
|
9700
|
+
text-decoration: none;
|
|
9701
|
+
}
|
|
9702
|
+
|
|
9703
|
+
/* The DS Button's :focus-visible only swaps to its hover colour (outline: none), so keyboard
|
|
9704
|
+
focus would look like hover. Add a ring (DS-125 AC: visible focus state). */
|
|
9705
|
+
.redsift-button-link:focus-visible {
|
|
9706
|
+
outline: 2px solid var(--redsift-color-primary-n, #4285f4);
|
|
9707
|
+
outline-offset: 4px;
|
|
9708
|
+
}
|
|
9709
|
+
`;
|
|
9710
|
+
const OpenInNewIcon = () => /*#__PURE__*/React__default.createElement("svg", {
|
|
9711
|
+
viewBox: "0 0 24 24",
|
|
9712
|
+
"aria-hidden": "true",
|
|
9713
|
+
focusable: "false",
|
|
9714
|
+
height: "24",
|
|
9715
|
+
width: "24"
|
|
9716
|
+
}, /*#__PURE__*/React__default.createElement("path", {
|
|
9717
|
+
fill: "currentColor",
|
|
9718
|
+
d: mdiOpenInNew
|
|
9719
|
+
}));
|
|
9720
|
+
/**
|
|
9721
|
+
* BIMI Maker promotion on the BIMI card (DS-125). Opens in a new tab, like every signal-card CTA:
|
|
9722
|
+
* navigating away would discard a one-shot Investigate result.
|
|
9723
|
+
*/
|
|
9724
|
+
const BimiMakerPromo = _ref => {
|
|
9725
|
+
let {
|
|
9726
|
+
reason,
|
|
9727
|
+
href = BIMI_MAKER_URL,
|
|
9728
|
+
onClick,
|
|
9729
|
+
useInvestigateColors = false
|
|
9730
|
+
} = _ref;
|
|
9731
|
+
const {
|
|
9732
|
+
t
|
|
9733
|
+
} = useSignalCardTranslation('investigate');
|
|
9734
|
+
const label = t('bimi-maker-promo.button-label');
|
|
9735
|
+
const handleClick = () => onClick === null || onClick === void 0 ? void 0 : onClick(reason);
|
|
9736
|
+
return /*#__PURE__*/React__default.createElement(StyledPromo, {
|
|
9737
|
+
"data-testid": "bimi-maker-promo",
|
|
9738
|
+
"data-reason": reason
|
|
9739
|
+
}, /*#__PURE__*/React__default.createElement(StyledPromoText, null, /*#__PURE__*/React__default.createElement(StyledPromoHeading, null, t('bimi-maker-promo.heading')), /*#__PURE__*/React__default.createElement(StyledPromoCopy, null, reason === 'missing' ? t('bimi-maker-promo.missing-copy') : t('bimi-maker-promo.incomplete-copy'))), useInvestigateColors ? /*#__PURE__*/React__default.createElement(StyledPromoLink, {
|
|
9740
|
+
href: href,
|
|
9741
|
+
onClick: handleClick,
|
|
9742
|
+
target: "_blank",
|
|
9743
|
+
rel: "noopener noreferrer"
|
|
9744
|
+
}, label, /*#__PURE__*/React__default.createElement(OpenInNewIcon, null)) : /*#__PURE__*/React__default.createElement(StyledDSButtonLinkWrapper, null, /*#__PURE__*/React__default.createElement(ButtonLink, {
|
|
9745
|
+
href: href,
|
|
9746
|
+
onClick: handleClick,
|
|
9747
|
+
target: "_blank",
|
|
9748
|
+
rel: "noopener noreferrer",
|
|
9749
|
+
rightIcon: mdiOpenInNew
|
|
9750
|
+
}, label)));
|
|
9751
|
+
};
|
|
9752
|
+
|
|
9753
|
+
const _excluded$2 = ["jmap", "onHeightChange", "bimiMakerPromo", "useInvestigateColors", "isCollapsible", "areAllCollapsed", "onCollapseAll", "className"];
|
|
9582
9754
|
const COMPONENT_NAME$2 = 'SignalCardBimi';
|
|
9583
9755
|
const CLASSNAME$2 = 'redsift-signal-card-bimi';
|
|
9584
9756
|
|
|
@@ -9596,6 +9768,7 @@ const SignalCardBimi = /*#__PURE__*/forwardRef((props, ref) => {
|
|
|
9596
9768
|
extsecrep
|
|
9597
9769
|
},
|
|
9598
9770
|
onHeightChange,
|
|
9771
|
+
bimiMakerPromo,
|
|
9599
9772
|
useInvestigateColors = false,
|
|
9600
9773
|
isCollapsible,
|
|
9601
9774
|
areAllCollapsed: areAllCollapsedProp,
|
|
@@ -9622,6 +9795,13 @@ const SignalCardBimi = /*#__PURE__*/forwardRef((props, ref) => {
|
|
|
9622
9795
|
}, [bimi, t, extsecrep.dmarc]);
|
|
9623
9796
|
const isDeclinationToPublish = (bimi === null || bimi === void 0 ? void 0 : bimi.bimiRecordStatus) === recordStatus.DECLINATION_TO_PUBLISH;
|
|
9624
9797
|
|
|
9798
|
+
// The eligibility rule lives in signal-logic (WEB-1339) so the website, OnDMARC and the results
|
|
9799
|
+
// email agree; the DS only decides whether to render it. Not gated on AI recommendations.
|
|
9800
|
+
// Not memoised: the rule checks certificate expiry against the current time, so a memo keyed on
|
|
9801
|
+
// `bimi` would keep a stale answer across an expiry, and the check is cheap.
|
|
9802
|
+
const bimiMakerReason = bimiMakerPromo ? getBimiMakerEligibility(bimi) : null;
|
|
9803
|
+
const bimiMakerOptions = typeof bimiMakerPromo === 'object' ? bimiMakerPromo : undefined;
|
|
9804
|
+
|
|
9625
9805
|
// Inject SVGLogo into SVG section (React-specific, can't come from signal-logic)
|
|
9626
9806
|
const svgSection = useMemo(() => {
|
|
9627
9807
|
var _length, _bimi$svgErrors, _errors$length, _bimi$logo, _bimi$logo$errors;
|
|
@@ -9819,7 +9999,12 @@ const SignalCardBimi = /*#__PURE__*/forwardRef((props, ref) => {
|
|
|
9819
9999
|
onCollapseAll: onCollapseAll,
|
|
9820
10000
|
"data-testid": "signal-card-bimi",
|
|
9821
10001
|
"data-card-type": cardType
|
|
9822
|
-
}, restProps)
|
|
10002
|
+
}, restProps), bimiMakerReason && /*#__PURE__*/React__default.createElement(BimiMakerPromo, {
|
|
10003
|
+
reason: bimiMakerReason,
|
|
10004
|
+
href: bimiMakerOptions === null || bimiMakerOptions === void 0 ? void 0 : bimiMakerOptions.href,
|
|
10005
|
+
onClick: bimiMakerOptions === null || bimiMakerOptions === void 0 ? void 0 : bimiMakerOptions.onClick,
|
|
10006
|
+
useInvestigateColors: useInvestigateColors
|
|
10007
|
+
}));
|
|
9823
10008
|
});
|
|
9824
10009
|
SignalCardBimi.className = CLASSNAME$2;
|
|
9825
10010
|
SignalCardBimi.displayName = COMPONENT_NAME$2;
|