kyd-shared-badge 0.3.132 → 0.3.134
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/package.json
CHANGED
|
@@ -62,7 +62,7 @@ interface ReportHeaderProps {
|
|
|
62
62
|
|
|
63
63
|
const ReportHeader = ({ badgeId, developerName, updatedAt, score = 0, badgeImageUrl, summary, enterpriseMatch, countries = [], accountAuthenticity, companyName, sourcesProviders = [], selfCheck, rightBadgeLayout }: ReportHeaderProps) => {
|
|
64
64
|
// Use the dynamic image if available, otherwise fall back to the score-based one.
|
|
65
|
-
const finalBadgeImageUrl = badgeImageUrl || getBadgeImageUrl(score || 0);
|
|
65
|
+
const finalBadgeImageUrl = badgeImageUrl || getBadgeImageUrl(score || 0, false, selfCheck);
|
|
66
66
|
const tint = hexToRgba(pickTint(score || 0, selfCheck), 0.06);
|
|
67
67
|
const matchLabel = enterpriseMatch?.label;
|
|
68
68
|
const sources = (() => {
|
|
@@ -98,8 +98,7 @@ const ReportHeader = ({ badgeId, developerName, updatedAt, score = 0, badgeImage
|
|
|
98
98
|
<h3 className='text-sm font-semibold text-[--text-secondary]'>Date:</h3>
|
|
99
99
|
<span className='text-sm text-[--text-main]'>{formatLocalDate(updatedAt)}</span>
|
|
100
100
|
</span>
|
|
101
|
-
{
|
|
102
|
-
(() => {
|
|
101
|
+
{(() => {
|
|
103
102
|
const countryNames = countries
|
|
104
103
|
.map(code => countriesLib.getName((code || '').toUpperCase(), 'en') || code)
|
|
105
104
|
.filter(Boolean);
|
|
@@ -109,7 +108,11 @@ const ReportHeader = ({ badgeId, developerName, updatedAt, score = 0, badgeImage
|
|
|
109
108
|
{countryNames.length > 1 ? 'Countries:' : 'Country:'}
|
|
110
109
|
</span>
|
|
111
110
|
|
|
112
|
-
|
|
111
|
+
{countryNames.length > 0 ? (
|
|
112
|
+
<span style={{ color: 'var(--text-main)' }}>{countryNames.join(', ')}</span>
|
|
113
|
+
) : (
|
|
114
|
+
<span style={{ color: 'var(--text-main)' }}>N/A</span>
|
|
115
|
+
)}
|
|
113
116
|
<span className={'relative inline-flex items-center group cursor-help'} style={{ color: 'var(--text-secondary)' }}>
|
|
114
117
|
<FiInfo size={14} />
|
|
115
118
|
<div className="hidden group-hover:block absolute z-30 left-1/2 -translate-x-1/2 top-full mt-2 w-80">
|
|
@@ -121,8 +124,7 @@ const ReportHeader = ({ badgeId, developerName, updatedAt, score = 0, badgeImage
|
|
|
121
124
|
</span>
|
|
122
125
|
</div>
|
|
123
126
|
);
|
|
124
|
-
|
|
125
|
-
)}
|
|
127
|
+
})()}
|
|
126
128
|
{sources.length > 0 && (
|
|
127
129
|
<p className='flex items-center gap-2 mt-2 text-sm'>
|
|
128
130
|
<a href="#appendix-connected" className={'inline-flex items-center gap-2 group'} style={{ color: 'var(--text-secondary)' }}>
|
|
@@ -342,19 +342,23 @@ export default function SkillsBubble({ skillsCategoryRadar, skillsByCategory, sk
|
|
|
342
342
|
className="flex flex-col items-end leading-tight h-full justify-start text-base"
|
|
343
343
|
>
|
|
344
344
|
<div className="pb-1">
|
|
345
|
-
{entry && typeof entry !== 'string'
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
345
|
+
{entry && typeof entry !== 'string' ? (
|
|
346
|
+
entry.years ? (
|
|
347
|
+
<span
|
|
348
|
+
className="whitespace-nowrap text-[var(--text-secondary)] cursor-help"
|
|
349
|
+
onMouseEnter={(e) => {
|
|
350
|
+
const copy = experienceLegendTooltip();
|
|
351
|
+
showLegendTooltipAt(e.currentTarget, copy.title, copy.body);
|
|
352
|
+
}}
|
|
353
|
+
onMouseLeave={hideLegendTooltip}
|
|
354
|
+
>
|
|
355
|
+
{`${entry.years} Years`}
|
|
356
|
+
</span>
|
|
357
|
+
) : (
|
|
358
|
+
<span className="whitespace-nowrap text-[var(--text-secondary)]">N/A</span>
|
|
359
|
+
)
|
|
356
360
|
) : (
|
|
357
|
-
<span className="opacity-0 whitespace-nowrap text-[var(--text-secondary)]">
|
|
361
|
+
<span className="opacity-0 whitespace-nowrap text-[var(--text-secondary)]">N/A</span>
|
|
358
362
|
)}
|
|
359
363
|
</div>
|
|
360
364
|
<div
|
|
@@ -452,7 +456,7 @@ export default function SkillsBubble({ skillsCategoryRadar, skillsByCategory, sk
|
|
|
452
456
|
onMouseEnter={() => setLegendHovered(true)}
|
|
453
457
|
onMouseLeave={() => setLegendHovered(false)}
|
|
454
458
|
>
|
|
455
|
-
<div className="mb-2 text-
|
|
459
|
+
<div className="mb-2 text-lg font-medium" style={{ color: 'var(--text-main)' }}>
|
|
456
460
|
|
|
457
461
|
{activeCategory ? (
|
|
458
462
|
<span
|
package/src/utils/provider.tsx
CHANGED
|
@@ -72,6 +72,7 @@ export const getCategoryTooltipCopy = (category: string): string => {
|
|
|
72
72
|
if (/security|cyber/.test(name)) return 'Signals of security posture and potential cyber-risk exposure.';
|
|
73
73
|
if (/risk/.test(name)) return 'KYD Risk surfaces signals of authenticity, reputation, and environmental telemetry that indicate potential risks in engaging with a developer.';
|
|
74
74
|
if (/tech|technical/.test(name)) return "KYD Technical surfaces signals from a developer's portfolio, skills, experience, activity, and network to indicate the likelihood of technical capability.";
|
|
75
|
+
if (/telemetry/.test(name)) return 'Telemetry signals highlight network and location patterns that may indicate authenticity or access risks.';
|
|
75
76
|
return 'Share of overall contribution by category based on applied weights.';
|
|
76
77
|
};
|
|
77
78
|
|