@threatcaptain/tc-reports 0.2.9 → 0.2.10
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/dist/index.cjs +96 -690
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +97 -691
- package/dist/index.js.map +1 -1
- package/package.json +3 -4
package/dist/index.cjs
CHANGED
|
@@ -5,8 +5,6 @@ const React = require("react");
|
|
|
5
5
|
const ReactDOM = require("react-dom");
|
|
6
6
|
const lucideReact = require("lucide-react");
|
|
7
7
|
const reactRouterDom = require("react-router-dom");
|
|
8
|
-
const freeSolidSvgIcons = require("@fortawesome/free-solid-svg-icons");
|
|
9
|
-
const reactFontawesome = require("@fortawesome/react-fontawesome");
|
|
10
8
|
function _interopNamespaceDefault(e) {
|
|
11
9
|
const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
|
|
12
10
|
if (e) {
|
|
@@ -28659,33 +28657,15 @@ const ToggleGroupItem = React__namespace.forwardRef(({ className, children, vari
|
|
|
28659
28657
|
);
|
|
28660
28658
|
});
|
|
28661
28659
|
ToggleGroupItem.displayName = Item2.displayName;
|
|
28662
|
-
const
|
|
28663
|
-
|
|
28664
|
-
|
|
28665
|
-
|
|
28666
|
-
|
|
28667
|
-
category: "Financial Analysis",
|
|
28668
|
-
preview: "bg-gradient-to-br from-red-50 to-orange-50"
|
|
28669
|
-
},
|
|
28670
|
-
{
|
|
28671
|
-
id: "insurance-health-score",
|
|
28672
|
-
name: "Cyber Insurance Health Score",
|
|
28673
|
-
description: "Assess readiness for cyber insurance coverage and identify gaps",
|
|
28674
|
-
category: "Insurance Assessment",
|
|
28675
|
-
preview: "bg-gradient-to-br from-green-50 to-emerald-50"
|
|
28676
|
-
},
|
|
28677
|
-
{
|
|
28678
|
-
id: "breach-likelihood",
|
|
28679
|
-
name: "Breach Likelihood Assessment",
|
|
28680
|
-
description: "Evaluate the probability and impact of security incidents",
|
|
28681
|
-
category: "Risk Assessment",
|
|
28682
|
-
preview: "bg-gradient-to-br from-orange-50 to-red-50"
|
|
28683
|
-
}
|
|
28684
|
-
];
|
|
28685
|
-
const Dashboard = ({ clientId }) => {
|
|
28660
|
+
const Dashboard = ({
|
|
28661
|
+
clientId,
|
|
28662
|
+
assessmentData,
|
|
28663
|
+
simulationData
|
|
28664
|
+
}) => {
|
|
28686
28665
|
const navigate = reactRouterDom.useNavigate();
|
|
28687
28666
|
const [templateIds, setTemplateId] = React.useState([]);
|
|
28688
|
-
const handleTemplateClick = (templateId) => {
|
|
28667
|
+
const handleTemplateClick = (templateId, available) => {
|
|
28668
|
+
if (!available) return;
|
|
28689
28669
|
let updatedTemplateIds = [...templateIds];
|
|
28690
28670
|
updatedTemplateIds = updatedTemplateIds.includes(templateId) ? updatedTemplateIds.filter((id) => id !== templateId) : [...updatedTemplateIds, templateId];
|
|
28691
28671
|
setTemplateId(updatedTemplateIds);
|
|
@@ -28694,6 +28674,35 @@ const Dashboard = ({ clientId }) => {
|
|
|
28694
28674
|
const templateParam = templateIds.join(",");
|
|
28695
28675
|
navigate(`/clients/${clientId}/view-report?template=${templateParam}`);
|
|
28696
28676
|
};
|
|
28677
|
+
const hasFinancialData = simulationData && Object.keys(simulationData).length > 0;
|
|
28678
|
+
const hasInsuranceData = assessmentData && assessmentData.insuranceAssessment && Object.keys(assessmentData.insuranceAssessment).length > 0;
|
|
28679
|
+
const hasSecurityData = assessmentData && assessmentData.securityAssessments && Object.keys(assessmentData.securityAssessments).length > 0;
|
|
28680
|
+
const templates = [
|
|
28681
|
+
{
|
|
28682
|
+
id: "financial-impact",
|
|
28683
|
+
name: "Financial Impact Analysis",
|
|
28684
|
+
description: "Quantify the financial impact of potential cyber threats and breaches",
|
|
28685
|
+
category: "Financial Analysis",
|
|
28686
|
+
preview: "bg-gradient-to-br from-red-50 to-orange-50",
|
|
28687
|
+
available: hasFinancialData
|
|
28688
|
+
},
|
|
28689
|
+
{
|
|
28690
|
+
id: "insurance-health-score",
|
|
28691
|
+
name: "Cyber Insurance Health Score",
|
|
28692
|
+
description: "Assess readiness for cyber insurance coverage and identify gaps",
|
|
28693
|
+
category: "Insurance Assessment",
|
|
28694
|
+
preview: "bg-gradient-to-br from-green-50 to-emerald-50",
|
|
28695
|
+
available: hasInsuranceData
|
|
28696
|
+
},
|
|
28697
|
+
{
|
|
28698
|
+
id: "breach-likelihood",
|
|
28699
|
+
name: "Breach Likelihood Assessment",
|
|
28700
|
+
description: "Evaluate the probability and impact of security incidents",
|
|
28701
|
+
category: "Risk Assessment",
|
|
28702
|
+
preview: "bg-gradient-to-br from-orange-50 to-red-50",
|
|
28703
|
+
available: hasSecurityData
|
|
28704
|
+
}
|
|
28705
|
+
];
|
|
28697
28706
|
return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "bg-white rounded-xl border border-slate-200 shadow-sm p-6 mb-8", children: [
|
|
28698
28707
|
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-xl font-semibold text-slate-900 mb-6", children: "Choose Your Report Template" }),
|
|
28699
28708
|
false,
|
|
@@ -28715,8 +28724,8 @@ const Dashboard = ({ clientId }) => {
|
|
|
28715
28724
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
28716
28725
|
Card,
|
|
28717
28726
|
{
|
|
28718
|
-
className: `transition-all border-2
|
|
28719
|
-
onClick: () => handleTemplateClick(template.id),
|
|
28727
|
+
className: `transition-all border-2 hover:shadow-lg ${templateIds.includes(template.id) ? "border-blue-500 bg-blue-50" : "border-slate-200 hover:border-slate-300"} ${template.available ? "cursor-pointer" : "opacity-50 cursor-not-allowed"}`,
|
|
28728
|
+
onClick: () => handleTemplateClick(template.id, template.available),
|
|
28720
28729
|
children: [
|
|
28721
28730
|
/* @__PURE__ */ jsxRuntime.jsxs(CardHeader, { className: "pb-3", children: [
|
|
28722
28731
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -28730,6 +28739,7 @@ const Dashboard = ({ clientId }) => {
|
|
|
28730
28739
|
] }),
|
|
28731
28740
|
/* @__PURE__ */ jsxRuntime.jsxs(CardContent, { className: "pt-0", children: [
|
|
28732
28741
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm mb-3 text-slate-600", children: template.description }),
|
|
28742
|
+
!template.available && /* @__PURE__ */ jsxRuntime.jsx(Badge, { variant: "destructive", className: "text-xs", children: "No Assessment Data" }),
|
|
28733
28743
|
/* @__PURE__ */ jsxRuntime.jsx(Badge, { variant: "secondary", className: "text-xs", children: template.category })
|
|
28734
28744
|
] })
|
|
28735
28745
|
]
|
|
@@ -28752,7 +28762,7 @@ const Dashboard = ({ clientId }) => {
|
|
|
28752
28762
|
};
|
|
28753
28763
|
const BreachLikelihood = ({ reportData }) => {
|
|
28754
28764
|
var _a;
|
|
28755
|
-
const { clientData, securityAssessment
|
|
28765
|
+
const { clientData, securityAssessment } = reportData;
|
|
28756
28766
|
const calculateBreachLikelihood = (protectionLevel) => {
|
|
28757
28767
|
if ((securityAssessment == null ? void 0 : securityAssessment.overall_breach_likelihood) !== null && (securityAssessment == null ? void 0 : securityAssessment.overall_breach_likelihood) !== void 0) {
|
|
28758
28768
|
return Math.round(securityAssessment.overall_breach_likelihood);
|
|
@@ -28795,24 +28805,14 @@ const BreachLikelihood = ({ reportData }) => {
|
|
|
28795
28805
|
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-base font-semibold text-slate-900", children: "Why This Breach Likelihood Assessment Matters" }),
|
|
28796
28806
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-slate-700 leading-relaxed whitespace-pre-line text-sm", children: clientData.executiveSummary ? clientData.executiveSummary : "" })
|
|
28797
28807
|
] }),
|
|
28798
|
-
/* @__PURE__ */ jsxRuntime.
|
|
28799
|
-
/* @__PURE__ */ jsxRuntime.
|
|
28800
|
-
|
|
28801
|
-
|
|
28802
|
-
|
|
28803
|
-
baseCost ? baseCost.toLocaleString() : "510,000"
|
|
28804
|
-
] }),
|
|
28805
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-xs opacity-90", children: "What an attack could cost your business" })
|
|
28808
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-1 gap-4 mb-4", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "bg-orange-600 text-white p-6 rounded-lg text-center", children: [
|
|
28809
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.Target, { className: "w-8 h-8 mx-auto mb-3" }),
|
|
28810
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-3xl font-bold mb-2", children: [
|
|
28811
|
+
attackLikelihood,
|
|
28812
|
+
"%"
|
|
28806
28813
|
] }),
|
|
28807
|
-
/* @__PURE__ */ jsxRuntime.
|
|
28808
|
-
|
|
28809
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-3xl font-bold mb-2", children: [
|
|
28810
|
-
attackLikelihood,
|
|
28811
|
-
"%"
|
|
28812
|
-
] }),
|
|
28813
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-xs opacity-90", children: "Chance criminals would succeed today" })
|
|
28814
|
-
] })
|
|
28815
|
-
] }),
|
|
28814
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-xs opacity-90", children: "Chance criminals would succeed today" })
|
|
28815
|
+
] }) }),
|
|
28816
28816
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "bg-slate-50 rounded-lg p-4 space-y-3", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-3 gap-2 text-xs text-center", children: [
|
|
28817
28817
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-center space-x-1", children: [
|
|
28818
28818
|
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.CheckCircle, { className: "w-4 h-4 text-green-600" }),
|
|
@@ -28850,451 +28850,6 @@ const BreachLikelihood = ({ reportData }) => {
|
|
|
28850
28850
|
] })
|
|
28851
28851
|
] })
|
|
28852
28852
|
] }),
|
|
28853
|
-
/* @__PURE__ */ jsxRuntime.jsxs("section", { className: "report-page space-y-6 border-t border-slate-200 pt-8", children: [
|
|
28854
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-center", children: [
|
|
28855
|
-
/* @__PURE__ */ jsxRuntime.jsx("h2", { className: "text-2xl font-bold text-slate-900 mb-2", children: "Protection Analysis" }),
|
|
28856
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-slate-600", children: "Understanding Your Business Protection Shield" })
|
|
28857
|
-
] }),
|
|
28858
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "bg-slate-50 rounded-lg p-8 text-center", children: [
|
|
28859
|
-
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.Shield, { className: "w-20 h-20 mx-auto mb-4 text-slate-600" }),
|
|
28860
|
-
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-2xl font-bold mb-4", children: "Your Business Protection Shield" }),
|
|
28861
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-xl font-bold text-red-600 mb-4", children: [
|
|
28862
|
-
"Shield Strength: ",
|
|
28863
|
-
100 - attackLikelihood,
|
|
28864
|
-
"%"
|
|
28865
|
-
] }),
|
|
28866
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex justify-center items-center space-x-1 mb-4", children: Array.from(
|
|
28867
|
-
{
|
|
28868
|
-
length: 10
|
|
28869
|
-
},
|
|
28870
|
-
(_, index2) => {
|
|
28871
|
-
const shieldPercentage = 100 - attackLikelihood;
|
|
28872
|
-
const threshold = (index2 + 1) * 10;
|
|
28873
|
-
const isProtected = shieldPercentage >= threshold;
|
|
28874
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
28875
|
-
"span",
|
|
28876
|
-
{
|
|
28877
|
-
className: `text-2xl font-bold ${isProtected ? "text-blue-600" : "text-slate-300"}`,
|
|
28878
|
-
style: {
|
|
28879
|
-
fontFamily: "Arial, sans-serif"
|
|
28880
|
-
},
|
|
28881
|
-
children: "●"
|
|
28882
|
-
},
|
|
28883
|
-
index2
|
|
28884
|
-
);
|
|
28885
|
-
}
|
|
28886
|
-
) }),
|
|
28887
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-center mb-4", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "inline-flex items-center space-x-1 bg-slate-100 rounded-lg px-4 py-2", children: [
|
|
28888
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm font-medium text-slate-600", children: "Protection Level:" }),
|
|
28889
|
-
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-lg font-bold text-blue-600", children: [
|
|
28890
|
-
100 - attackLikelihood,
|
|
28891
|
-
"%"
|
|
28892
|
-
] }),
|
|
28893
|
-
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-sm text-slate-500", children: [
|
|
28894
|
-
"(",
|
|
28895
|
-
attackLikelihood,
|
|
28896
|
-
"% vulnerable)"
|
|
28897
|
-
] })
|
|
28898
|
-
] }) }),
|
|
28899
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-lg font-bold", children: [
|
|
28900
|
-
100 - attackLikelihood,
|
|
28901
|
-
"% Protected | ",
|
|
28902
|
-
attackLikelihood,
|
|
28903
|
-
"% Vulnerable"
|
|
28904
|
-
] }),
|
|
28905
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-slate-600 mt-4", children: "Your business has basic protection in a few areas, but most of your shield has serious gaps that criminals could easily exploit." })
|
|
28906
|
-
] }),
|
|
28907
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-6", children: [
|
|
28908
|
-
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-xl font-bold text-center", children: "How Criminals Attack Your Business" }),
|
|
28909
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-4 gap-4", children: [
|
|
28910
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-center border-2 border-slate-200 rounded-lg p-4", children: [
|
|
28911
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
28912
|
-
reactFontawesome.FontAwesomeIcon,
|
|
28913
|
-
{
|
|
28914
|
-
icon: freeSolidSvgIcons.faDoorOpen,
|
|
28915
|
-
className: "text-2xl mb-2 text-slate-600"
|
|
28916
|
-
}
|
|
28917
|
-
),
|
|
28918
|
-
/* @__PURE__ */ jsxRuntime.jsx("h4", { className: "font-bold mb-2", children: "Step 1: Get In" }),
|
|
28919
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-slate-600 mb-2", children: "Find any weakness like emails, websites, or mistakes" }),
|
|
28920
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-xs font-bold text-red-600", children: "Protection: Minimal" })
|
|
28921
|
-
] }),
|
|
28922
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-center border-2 border-slate-200 rounded-lg p-4", children: [
|
|
28923
|
-
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.Eye, { className: "w-8 h-8 mx-auto mb-2 text-slate-600" }),
|
|
28924
|
-
/* @__PURE__ */ jsxRuntime.jsx("h4", { className: "font-bold mb-2", children: "Step 2: Sneak Around" }),
|
|
28925
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-slate-600 mb-2", children: "Move through systems quietly and find valuable information" }),
|
|
28926
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-xs font-bold text-red-600", children: "Protection: None" })
|
|
28927
|
-
] }),
|
|
28928
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-center border-2 border-slate-200 rounded-lg p-4", children: [
|
|
28929
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
28930
|
-
reactFontawesome.FontAwesomeIcon,
|
|
28931
|
-
{
|
|
28932
|
-
icon: freeSolidSvgIcons.faCrown,
|
|
28933
|
-
className: "text-2xl mb-2 text-slate-600"
|
|
28934
|
-
}
|
|
28935
|
-
),
|
|
28936
|
-
/* @__PURE__ */ jsxRuntime.jsx("h4", { className: "font-bold mb-2", children: "Step 3: Take Control" }),
|
|
28937
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-slate-600 mb-2", children: "Steal data, encrypt files, or take over your systems" }),
|
|
28938
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-xs font-bold text-red-600", children: "Protection: None" })
|
|
28939
|
-
] }),
|
|
28940
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-center border-2 border-slate-200 rounded-lg p-4", children: [
|
|
28941
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
28942
|
-
reactFontawesome.FontAwesomeIcon,
|
|
28943
|
-
{
|
|
28944
|
-
icon: freeSolidSvgIcons.faEyeSlash,
|
|
28945
|
-
className: "text-2xl mb-2 text-slate-600"
|
|
28946
|
-
}
|
|
28947
|
-
),
|
|
28948
|
-
/* @__PURE__ */ jsxRuntime.jsx("h4", { className: "font-bold mb-2", children: "Step 4: Stay Hidden" }),
|
|
28949
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-slate-600 mb-2", children: "Cover tracks so you don't notice for weeks/months" }),
|
|
28950
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-xs font-bold text-red-600", children: "Protection: None" })
|
|
28951
|
-
] })
|
|
28952
|
-
] }),
|
|
28953
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-center", children: /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-lg font-bold text-red-600", children: "Result: Criminals have a clear path to hurt your business with very little stopping them." }) })
|
|
28954
|
-
] })
|
|
28955
|
-
] }),
|
|
28956
|
-
/* @__PURE__ */ jsxRuntime.jsxs("section", { className: "report-page space-y-6 border-t border-slate-200 pt-8", children: [
|
|
28957
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
28958
|
-
/* @__PURE__ */ jsxRuntime.jsx("h2", { className: "text-2xl font-bold text-slate-900 mb-2", children: "Control-Specific Financial Impact" }),
|
|
28959
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-slate-600", children: "Multiple value streams for each control" })
|
|
28960
|
-
] }),
|
|
28961
|
-
(() => {
|
|
28962
|
-
var _a2;
|
|
28963
|
-
const controlMappings = ((_a2 = clientData.securityAssessment) == null ? void 0 : _a2.control_mappings) || [];
|
|
28964
|
-
const implementedControls = Array.isArray(controlMappings) ? controlMappings.filter((c2) => c2.implemented === true) : [];
|
|
28965
|
-
const potentialControls = Array.isArray(controlMappings) ? controlMappings.filter((c2) => c2.implemented !== true) : [];
|
|
28966
|
-
const renderControlRow = (control) => {
|
|
28967
|
-
var _a3, _b, _c, _d;
|
|
28968
|
-
const mitrePhases = Array.isArray(control.mitrePhases) ? control.mitrePhases.join(", ") : control.mitrePhases || "";
|
|
28969
|
-
const breachValue = ((_a3 = control.financialValues) == null ? void 0 : _a3.proportionalBreachValue) || control.breach_protection || 0;
|
|
28970
|
-
const complianceValue = ((_b = control.financialValues) == null ? void 0 : _b.complianceValue) || control.compliance_value || 0;
|
|
28971
|
-
const operationalValue = ((_c = control.financialValues) == null ? void 0 : _c.operationalSavings) || control.operational_savings || 0;
|
|
28972
|
-
const totalValue = ((_d = control.financialValues) == null ? void 0 : _d.totalValue) || breachValue + complianceValue + operationalValue || 0;
|
|
28973
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
28974
|
-
"tr",
|
|
28975
|
-
{
|
|
28976
|
-
className: "border-b transition-colors hover:bg-slate-50",
|
|
28977
|
-
children: [
|
|
28978
|
-
/* @__PURE__ */ jsxRuntime.jsx("td", { className: "p-4 align-top border border-slate-300", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-1", children: [
|
|
28979
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "font-semibold text-slate-900", children: [
|
|
28980
|
-
"CIS ",
|
|
28981
|
-
control.controlNumber || control.cis_control_number
|
|
28982
|
-
] }),
|
|
28983
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "font-medium text-slate-700", children: control.controlName || control.cis_control_name || control.name }),
|
|
28984
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-xs text-slate-600 leading-tight", children: [
|
|
28985
|
-
"MITRE: ",
|
|
28986
|
-
mitrePhases
|
|
28987
|
-
] })
|
|
28988
|
-
] }) }),
|
|
28989
|
-
/* @__PURE__ */ jsxRuntime.jsx("td", { className: "p-4 align-middle border border-slate-300 text-center", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-blue-600 font-semibold", children: [
|
|
28990
|
-
"$",
|
|
28991
|
-
breachValue.toLocaleString()
|
|
28992
|
-
] }) }),
|
|
28993
|
-
/* @__PURE__ */ jsxRuntime.jsx("td", { className: "p-4 align-middle border border-slate-300 text-center", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-green-600 font-semibold", children: [
|
|
28994
|
-
"$",
|
|
28995
|
-
complianceValue.toLocaleString()
|
|
28996
|
-
] }) }),
|
|
28997
|
-
/* @__PURE__ */ jsxRuntime.jsx("td", { className: "p-4 align-middle border border-slate-300 text-center", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-purple-600 font-semibold", children: [
|
|
28998
|
-
"$",
|
|
28999
|
-
operationalValue.toLocaleString()
|
|
29000
|
-
] }) }),
|
|
29001
|
-
/* @__PURE__ */ jsxRuntime.jsx("td", { className: "p-4 align-middle border border-slate-300 text-center", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-slate-900 font-bold", children: [
|
|
29002
|
-
"$",
|
|
29003
|
-
totalValue.toLocaleString()
|
|
29004
|
-
] }) })
|
|
29005
|
-
]
|
|
29006
|
-
},
|
|
29007
|
-
control.controlNumber
|
|
29008
|
-
);
|
|
29009
|
-
};
|
|
29010
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-6", children: (() => {
|
|
29011
|
-
const renderControlTable = (controls, title, color, isPotential = false) => {
|
|
29012
|
-
if (isPotential) {
|
|
29013
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
29014
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2 mb-3", children: [
|
|
29015
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
29016
|
-
"div",
|
|
29017
|
-
{
|
|
29018
|
-
className: `w-5 h-5 ${color === "green" ? "bg-green-600" : "bg-red-600"} rounded-full flex items-center justify-center`,
|
|
29019
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
29020
|
-
"svg",
|
|
29021
|
-
{
|
|
29022
|
-
className: "w-3 h-3 text-white",
|
|
29023
|
-
fill: "currentColor",
|
|
29024
|
-
viewBox: "0 0 20 20",
|
|
29025
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
29026
|
-
"path",
|
|
29027
|
-
{
|
|
29028
|
-
fillRule: "evenodd",
|
|
29029
|
-
d: color === "green" ? "M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z" : "M10 3a1 1 0 011 1v5h5a1 1 0 110 2h-5v5a1 1 0 11-2 0v-5H4a1 1 0 110-2h5V4a1 1 0 011-1z",
|
|
29030
|
-
clipRule: "evenodd"
|
|
29031
|
-
}
|
|
29032
|
-
)
|
|
29033
|
-
}
|
|
29034
|
-
)
|
|
29035
|
-
}
|
|
29036
|
-
),
|
|
29037
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
29038
|
-
"h3",
|
|
29039
|
-
{
|
|
29040
|
-
className: `text-lg font-semibold ${color === "green" ? "text-green-600" : "text-red-600"}`,
|
|
29041
|
-
children: title
|
|
29042
|
-
}
|
|
29043
|
-
)
|
|
29044
|
-
] }),
|
|
29045
|
-
/* @__PURE__ */ jsxRuntime.jsxs("table", { className: "w-full caption-bottom text-sm border-collapse border border-slate-300", children: [
|
|
29046
|
-
/* @__PURE__ */ jsxRuntime.jsx("thead", { children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
29047
|
-
"tr",
|
|
29048
|
-
{
|
|
29049
|
-
className: color === "green" ? "bg-green-50" : "bg-red-50",
|
|
29050
|
-
children: [
|
|
29051
|
-
/* @__PURE__ */ jsxRuntime.jsx("th", { className: "h-12 px-4 text-left align-middle font-medium text-slate-900 border border-slate-300", children: "Control" }),
|
|
29052
|
-
/* @__PURE__ */ jsxRuntime.jsx("th", { className: "h-12 px-4 text-left align-middle font-medium text-slate-900 border border-slate-300", children: "Breach Protection" }),
|
|
29053
|
-
/* @__PURE__ */ jsxRuntime.jsx("th", { className: "h-12 px-4 text-left align-middle font-medium text-slate-900 border border-slate-300", children: "Compliance Value" }),
|
|
29054
|
-
/* @__PURE__ */ jsxRuntime.jsx("th", { className: "h-12 px-4 text-left align-middle font-medium text-slate-900 border border-slate-300", children: "Operational Savings" }),
|
|
29055
|
-
/* @__PURE__ */ jsxRuntime.jsx("th", { className: "h-12 px-4 text-left align-middle font-medium text-slate-900 border border-slate-300", children: "Total Value" })
|
|
29056
|
-
]
|
|
29057
|
-
}
|
|
29058
|
-
) }),
|
|
29059
|
-
/* @__PURE__ */ jsxRuntime.jsx("tbody", { children: controls.length > 0 ? controls.map(
|
|
29060
|
-
(control) => renderControlRow(control)
|
|
29061
|
-
) : /* @__PURE__ */ jsxRuntime.jsx("tr", { children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
29062
|
-
"td",
|
|
29063
|
-
{
|
|
29064
|
-
colSpan: 5,
|
|
29065
|
-
className: "p-8 text-center text-slate-500 border border-slate-300",
|
|
29066
|
-
children: isPotential ? "No additional controls recommended" : "No controls currently implemented"
|
|
29067
|
-
}
|
|
29068
|
-
) }) })
|
|
29069
|
-
] })
|
|
29070
|
-
] });
|
|
29071
|
-
}
|
|
29072
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
29073
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2 mb-3", children: [
|
|
29074
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
29075
|
-
"div",
|
|
29076
|
-
{
|
|
29077
|
-
className: `w-5 h-5 ${color === "green" ? "bg-green-600" : "bg-red-600"} rounded-full flex items-center justify-center`,
|
|
29078
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
29079
|
-
"svg",
|
|
29080
|
-
{
|
|
29081
|
-
className: "w-3 h-3 text-white",
|
|
29082
|
-
fill: "currentColor",
|
|
29083
|
-
viewBox: "0 0 20 20",
|
|
29084
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
29085
|
-
"path",
|
|
29086
|
-
{
|
|
29087
|
-
fillRule: "evenodd",
|
|
29088
|
-
d: color === "green" ? "M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z" : "M10 3a1 1 0 011 1v5h5a1 1 0 110 2h-5v5a1 1 0 11-2 0v-5H4a1 1 0 110-2h5V4a1 1 0 011-1z",
|
|
29089
|
-
clipRule: "evenodd"
|
|
29090
|
-
}
|
|
29091
|
-
)
|
|
29092
|
-
}
|
|
29093
|
-
)
|
|
29094
|
-
}
|
|
29095
|
-
),
|
|
29096
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
29097
|
-
"h3",
|
|
29098
|
-
{
|
|
29099
|
-
className: `text-lg font-semibold ${color === "green" ? "text-green-600" : "text-red-600"}`,
|
|
29100
|
-
children: title
|
|
29101
|
-
}
|
|
29102
|
-
)
|
|
29103
|
-
] }),
|
|
29104
|
-
/* @__PURE__ */ jsxRuntime.jsxs("table", { className: "w-full caption-bottom text-sm border-collapse border border-slate-300", children: [
|
|
29105
|
-
/* @__PURE__ */ jsxRuntime.jsx("thead", { children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
29106
|
-
"tr",
|
|
29107
|
-
{
|
|
29108
|
-
className: color === "green" ? "bg-green-50" : "bg-red-50",
|
|
29109
|
-
children: [
|
|
29110
|
-
/* @__PURE__ */ jsxRuntime.jsx("th", { className: "h-12 px-4 text-left align-middle font-medium text-slate-900 border border-slate-300", children: "Control" }),
|
|
29111
|
-
/* @__PURE__ */ jsxRuntime.jsx("th", { className: "h-12 px-4 text-left align-middle font-medium text-slate-900 border border-slate-300", children: "Breach Protection" }),
|
|
29112
|
-
/* @__PURE__ */ jsxRuntime.jsx("th", { className: "h-12 px-4 text-left align-middle font-medium text-slate-900 border border-slate-300", children: "Compliance Value" }),
|
|
29113
|
-
/* @__PURE__ */ jsxRuntime.jsx("th", { className: "h-12 px-4 text-left align-middle font-medium text-slate-900 border border-slate-300", children: "Operational Savings" }),
|
|
29114
|
-
/* @__PURE__ */ jsxRuntime.jsx("th", { className: "h-12 px-4 text-left align-middle font-medium text-slate-900 border border-slate-300", children: "Total Value" })
|
|
29115
|
-
]
|
|
29116
|
-
}
|
|
29117
|
-
) }),
|
|
29118
|
-
/* @__PURE__ */ jsxRuntime.jsx("tbody", { children: controls.length > 0 ? controls.map(
|
|
29119
|
-
(control) => renderControlRow(control)
|
|
29120
|
-
) : /* @__PURE__ */ jsxRuntime.jsx("tr", { children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
29121
|
-
"td",
|
|
29122
|
-
{
|
|
29123
|
-
colSpan: 5,
|
|
29124
|
-
className: "p-8 text-center text-slate-500 border border-slate-300",
|
|
29125
|
-
children: isPotential ? "No additional controls recommended" : "No controls currently implemented"
|
|
29126
|
-
}
|
|
29127
|
-
) }) })
|
|
29128
|
-
] })
|
|
29129
|
-
] });
|
|
29130
|
-
};
|
|
29131
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-6", children: [
|
|
29132
|
-
renderControlTable(
|
|
29133
|
-
implementedControls,
|
|
29134
|
-
"Controls Currently in Place",
|
|
29135
|
-
"green"
|
|
29136
|
-
),
|
|
29137
|
-
renderControlTable(
|
|
29138
|
-
potentialControls,
|
|
29139
|
-
"Recommended Additional Controls",
|
|
29140
|
-
"red",
|
|
29141
|
-
true
|
|
29142
|
-
)
|
|
29143
|
-
] });
|
|
29144
|
-
})() });
|
|
29145
|
-
})(),
|
|
29146
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "bg-slate-50 rounded-lg p-6", children: [
|
|
29147
|
-
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-lg font-semibold text-slate-900 mb-4", children: "Control Implementation Impact" }),
|
|
29148
|
-
(() => {
|
|
29149
|
-
var _a2;
|
|
29150
|
-
const controlMappings = ((_a2 = clientData.securityAssessment) == null ? void 0 : _a2.control_mappings) || [];
|
|
29151
|
-
const implementedControls = Array.isArray(controlMappings) ? controlMappings.filter(
|
|
29152
|
-
(control) => control.implemented === true
|
|
29153
|
-
) : [];
|
|
29154
|
-
const potentialControls = Array.isArray(controlMappings) ? controlMappings.filter(
|
|
29155
|
-
(control) => control.implemented === false
|
|
29156
|
-
) : [];
|
|
29157
|
-
const implementedTotals = implementedControls.reduce(
|
|
29158
|
-
(acc, control) => {
|
|
29159
|
-
var _a3, _b, _c;
|
|
29160
|
-
acc.breachProtection += ((_a3 = control.financialValues) == null ? void 0 : _a3.proportionalBreachValue) || control.breach_protection || 0;
|
|
29161
|
-
acc.complianceValue += ((_b = control.financialValues) == null ? void 0 : _b.complianceValue) || control.compliance_value || 0;
|
|
29162
|
-
acc.operationalSavings += ((_c = control.financialValues) == null ? void 0 : _c.operationalSavings) || control.operational_savings || 0;
|
|
29163
|
-
return acc;
|
|
29164
|
-
},
|
|
29165
|
-
{
|
|
29166
|
-
breachProtection: 0,
|
|
29167
|
-
complianceValue: 0,
|
|
29168
|
-
operationalSavings: 0
|
|
29169
|
-
}
|
|
29170
|
-
);
|
|
29171
|
-
const potentialTotals = potentialControls.reduce(
|
|
29172
|
-
(acc, control) => {
|
|
29173
|
-
var _a3, _b, _c;
|
|
29174
|
-
acc.breachProtection += ((_a3 = control.financialValues) == null ? void 0 : _a3.proportionalBreachValue) || control.breach_protection || 0;
|
|
29175
|
-
acc.complianceValue += ((_b = control.financialValues) == null ? void 0 : _b.complianceValue) || control.compliance_value || 0;
|
|
29176
|
-
acc.operationalSavings += ((_c = control.financialValues) == null ? void 0 : _c.operationalSavings) || control.operational_savings || 0;
|
|
29177
|
-
acc.implementationCost += control.implementationCost || control.implementation_cost || 0;
|
|
29178
|
-
return acc;
|
|
29179
|
-
},
|
|
29180
|
-
{
|
|
29181
|
-
breachProtection: 0,
|
|
29182
|
-
complianceValue: 0,
|
|
29183
|
-
operationalSavings: 0,
|
|
29184
|
-
implementationCost: 0
|
|
29185
|
-
}
|
|
29186
|
-
);
|
|
29187
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-6 text-sm", children: [
|
|
29188
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-center", children: [
|
|
29189
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-3xl font-bold text-green-600", children: [
|
|
29190
|
-
"$",
|
|
29191
|
-
implementedTotals.breachProtection.toLocaleString()
|
|
29192
|
-
] }),
|
|
29193
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-slate-600 mt-2", children: "Current Breach Protection" })
|
|
29194
|
-
] }),
|
|
29195
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-center", children: [
|
|
29196
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-3xl font-bold text-red-600", children: [
|
|
29197
|
-
"$",
|
|
29198
|
-
potentialTotals.breachProtection.toLocaleString()
|
|
29199
|
-
] }),
|
|
29200
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-slate-600 mt-2", children: "Additional Protection Available" })
|
|
29201
|
-
] })
|
|
29202
|
-
] });
|
|
29203
|
-
})()
|
|
29204
|
-
] })
|
|
29205
|
-
] }),
|
|
29206
|
-
/* @__PURE__ */ jsxRuntime.jsxs("section", { className: "report-page space-y-6 border-t border-slate-200 pt-8", children: [
|
|
29207
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-center", children: [
|
|
29208
|
-
/* @__PURE__ */ jsxRuntime.jsx("h2", { className: "text-2xl font-bold text-slate-900 mb-2", children: "Next Steps & Action Options" }),
|
|
29209
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-slate-600", children: "Choose Your Path Forward" })
|
|
29210
|
-
] }),
|
|
29211
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "bg-slate-50 rounded-lg p-6 space-y-4", children: [
|
|
29212
|
-
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-xl font-bold text-center", children: "Your Complete Business Risk Assessment" }),
|
|
29213
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-3 gap-4 text-sm text-center", children: [
|
|
29214
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
29215
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-green-600", children: "✓" }),
|
|
29216
|
-
" ",
|
|
29217
|
-
/* @__PURE__ */ jsxRuntime.jsx("strong", { children: "Financial Impact:" }),
|
|
29218
|
-
" $",
|
|
29219
|
-
baseCost.toLocaleString(),
|
|
29220
|
-
" ",
|
|
29221
|
-
"potential cost"
|
|
29222
|
-
] }),
|
|
29223
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
29224
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-green-600", children: "✓" }),
|
|
29225
|
-
" ",
|
|
29226
|
-
/* @__PURE__ */ jsxRuntime.jsx("strong", { children: "Insurance Readiness:" }),
|
|
29227
|
-
" ",
|
|
29228
|
-
clientData.insuranceHealthScore || 490,
|
|
29229
|
-
"/850 (",
|
|
29230
|
-
clientData.insuranceScoreCategory || "Poor",
|
|
29231
|
-
")"
|
|
29232
|
-
] }),
|
|
29233
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
29234
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-green-600", children: "✓" }),
|
|
29235
|
-
" ",
|
|
29236
|
-
/* @__PURE__ */ jsxRuntime.jsx("strong", { children: "Attack Likelihood:" }),
|
|
29237
|
-
" ",
|
|
29238
|
-
attackLikelihood,
|
|
29239
|
-
"% chance of success"
|
|
29240
|
-
] })
|
|
29241
|
-
] }),
|
|
29242
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-center text-lg font-bold text-red-600", children: [
|
|
29243
|
-
"Your Bottom Line: $",
|
|
29244
|
-
realRiskExposure.toLocaleString(),
|
|
29245
|
-
" at risk"
|
|
29246
|
-
] })
|
|
29247
|
-
] }),
|
|
29248
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-3 gap-6", children: [
|
|
29249
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "border-2 border-green-500 bg-green-50 rounded-lg p-6 text-center", children: [
|
|
29250
|
-
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-lg font-bold mb-2", children: "Option 1: Start With Essentials" }),
|
|
29251
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "bg-green-600 text-white px-3 py-1 rounded-full text-sm font-bold mb-4 inline-block", children: "Recommended" }),
|
|
29252
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-sm mb-4", children: [
|
|
29253
|
-
/* @__PURE__ */ jsxRuntime.jsx("strong", { children: "Benefit:" }),
|
|
29254
|
-
" Reduces risk by 73%"
|
|
29255
|
-
] }),
|
|
29256
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-slate-600", children: "Get the most critical protections in place first. Covers the most common attack methods." })
|
|
29257
|
-
] }),
|
|
29258
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "border-2 border-blue-500 rounded-lg p-6 text-center", children: [
|
|
29259
|
-
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-lg font-bold mb-4", children: "Option 2: Complete Protection Plan" }),
|
|
29260
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-sm mb-4", children: [
|
|
29261
|
-
/* @__PURE__ */ jsxRuntime.jsx("strong", { children: "Benefit:" }),
|
|
29262
|
-
" Reduces risk by 87%"
|
|
29263
|
-
] }),
|
|
29264
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-slate-600", children: "Full comprehensive security. Positions you well for insurance discounts and client requirements." })
|
|
29265
|
-
] }),
|
|
29266
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "border-2 border-red-500 bg-red-50 rounded-lg p-6 text-center", children: [
|
|
29267
|
-
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-lg font-bold mb-4", children: "Option 3: Do Nothing" }),
|
|
29268
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-sm mb-2", children: [
|
|
29269
|
-
/* @__PURE__ */ jsxRuntime.jsx("strong", { children: "Investment:" }),
|
|
29270
|
-
" $0"
|
|
29271
|
-
] }),
|
|
29272
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-sm mb-4 text-red-600", children: [
|
|
29273
|
-
/* @__PURE__ */ jsxRuntime.jsx("strong", { children: "Risk:" }),
|
|
29274
|
-
" 97% chance of losing $",
|
|
29275
|
-
realRiskExposure.toLocaleString()
|
|
29276
|
-
] }),
|
|
29277
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-slate-600", children: "Keep current protection and hope criminals don't target you." })
|
|
29278
|
-
] })
|
|
29279
|
-
] }),
|
|
29280
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "bg-gradient-to-r from-blue-600 to-blue-800 text-white rounded-lg p-8 text-center", children: [
|
|
29281
|
-
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-2xl font-bold mb-4", children: "Ready to Protect Your Business?" }),
|
|
29282
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-lg mb-6 opacity-90", children: "You know what you're facing and what it costs to fix. The question isn't whether you can afford protection - it's whether you can afford to go without it." }),
|
|
29283
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-lg mb-4", children: [
|
|
29284
|
-
/* @__PURE__ */ jsxRuntime.jsx("strong", { children: "Contact:" }),
|
|
29285
|
-
" ",
|
|
29286
|
-
(mspInfo == null ? void 0 : mspInfo.contact_email) ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
29287
|
-
"a",
|
|
29288
|
-
{
|
|
29289
|
-
href: `mailto:${mspInfo == null ? void 0 : mspInfo.contact_email}`,
|
|
29290
|
-
className: "underline",
|
|
29291
|
-
children: mspInfo == null ? void 0 : mspInfo.contact_email
|
|
29292
|
-
}
|
|
29293
|
-
) : "contact@company.com"
|
|
29294
|
-
] }),
|
|
29295
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-sm opacity-80", children: "Every day you wait is another day criminals could strike. Every protection you add makes your business safer." })
|
|
29296
|
-
] })
|
|
29297
|
-
] }),
|
|
29298
28853
|
/* @__PURE__ */ jsxRuntime.jsxs("section", { className: "report-page space-y-6 border-t border-slate-200 pt-8", children: [
|
|
29299
28854
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-center", children: [
|
|
29300
28855
|
/* @__PURE__ */ jsxRuntime.jsx("h2", { className: "text-2xl font-bold text-slate-900 mb-2", children: "Understanding Your Numbers" }),
|
|
@@ -29619,7 +29174,7 @@ const UnifiedCostBreakdownChart = ({
|
|
|
29619
29174
|
};
|
|
29620
29175
|
const FinancialImpact = ({ reportData }) => {
|
|
29621
29176
|
var _a;
|
|
29622
|
-
const { clientData, simulationData
|
|
29177
|
+
const { clientData, simulationData } = reportData;
|
|
29623
29178
|
const { industry } = clientData;
|
|
29624
29179
|
const displayExecutiveSummary = () => {
|
|
29625
29180
|
if (clientData.executiveSummary) return clientData.executiveSummary;
|
|
@@ -29997,10 +29552,6 @@ const FinancialImpact = ({ reportData }) => {
|
|
|
29997
29552
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "bg-white border border-slate-200 rounded-lg p-6", children: [
|
|
29998
29553
|
/* @__PURE__ */ jsxRuntime.jsx("h4", { className: "font-semibold text-slate-900 mb-4", children: "Business Impact" }),
|
|
29999
29554
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-3 text-sm", children: [
|
|
30000
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex justify-between", children: [
|
|
30001
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-slate-600", children: "Records Affected:" }),
|
|
30002
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-medium text-right", children: parseInt(simulationData.record_count) * (simulationData.percentage_breached / 100) || "" })
|
|
30003
|
-
] }),
|
|
30004
29555
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex justify-between", children: [
|
|
30005
29556
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-slate-600", children: "Downtime Duration:" }),
|
|
30006
29557
|
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "font-medium text-right", children: [
|
|
@@ -30022,30 +29573,6 @@ const FinancialImpact = ({ reportData }) => {
|
|
|
30022
29573
|
] })
|
|
30023
29574
|
] })
|
|
30024
29575
|
] }),
|
|
30025
|
-
/* @__PURE__ */ jsxRuntime.jsxs("section", { className: "report-page space-y-6 border-t border-slate-200 pt-8", children: [
|
|
30026
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
30027
|
-
/* @__PURE__ */ jsxRuntime.jsx("h2", { className: "text-2xl font-bold text-slate-900 mb-2", children: "Proposed Next Steps" }),
|
|
30028
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-slate-600", children: "Taking action on these findings is critical to reducing your organization's cyber risk exposure and potential financial impact." })
|
|
30029
|
-
] }),
|
|
30030
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-6", children: [
|
|
30031
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "border border-slate-200 rounded-lg p-6 space-y-3", children: [
|
|
30032
|
-
/* @__PURE__ */ jsxRuntime.jsx("h4", { className: "font-semibold text-slate-900", children: "Breach Likelihood Assessment" }),
|
|
30033
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-slate-600", children: "Evaluate your current security posture and identify the most probable attack vectors targeting your organization." })
|
|
30034
|
-
] }),
|
|
30035
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "border border-slate-200 rounded-lg p-6 space-y-3", children: [
|
|
30036
|
-
/* @__PURE__ */ jsxRuntime.jsx("h4", { className: "font-semibold text-slate-900", children: "Cyber Insurance Health Score" }),
|
|
30037
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-slate-600", children: "Assess your readiness for cyber insurance coverage and identify gaps that could affect your policy." })
|
|
30038
|
-
] })
|
|
30039
|
-
] }),
|
|
30040
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "bg-blue-50 border border-blue-200 rounded-lg p-6 text-center", children: [
|
|
30041
|
-
/* @__PURE__ */ jsxRuntime.jsx("h4", { className: "font-semibold text-slate-900 mb-2", children: "Schedule Your Strategy Session" }),
|
|
30042
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-slate-600 mb-4", children: "Let's discuss these findings and develop a customized cybersecurity roadmap for your organization." }),
|
|
30043
|
-
/* @__PURE__ */ jsxRuntime.jsxs("p", { className: "text-slate-600", children: [
|
|
30044
|
-
"Contact us at: ",
|
|
30045
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-medium text-slate-900", children: (mspInfo == null ? void 0 : mspInfo.contact_email) ? /* @__PURE__ */ jsxRuntime.jsx("a", { href: `mailto:${mspInfo == null ? void 0 : mspInfo.contact_email}`, className: "underline", children: mspInfo == null ? void 0 : mspInfo.contact_email }) : "contact@company.com" })
|
|
30046
|
-
] })
|
|
30047
|
-
] })
|
|
30048
|
-
] }),
|
|
30049
29576
|
/* @__PURE__ */ jsxRuntime.jsxs("section", { className: "report-page space-y-6 border-t border-slate-200 pt-8", children: [
|
|
30050
29577
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center space-x-3", children: [
|
|
30051
29578
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-8 h-8 bg-blue-600 rounded-lg flex items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-white text-lg", children: "?" }) }),
|
|
@@ -30367,11 +29894,9 @@ const InsuranceHealthGauge = ({
|
|
|
30367
29894
|
] });
|
|
30368
29895
|
};
|
|
30369
29896
|
const InsuranceHealthScore = ({ reportData }) => {
|
|
30370
|
-
var _a;
|
|
30371
29897
|
const { clientData, insuranceHealthData } = reportData;
|
|
30372
|
-
const
|
|
30373
|
-
const
|
|
30374
|
-
const scoreCategory = score ? getScoreCategory(score) : null;
|
|
29898
|
+
const score = insuranceHealthData.score || 650;
|
|
29899
|
+
const scoreCategory = getScoreCategory(score);
|
|
30375
29900
|
const scoreCategoryData = typeof scoreCategory === "string" ? {
|
|
30376
29901
|
category: scoreCategory,
|
|
30377
29902
|
description: "Insurance readiness assessment",
|
|
@@ -30401,15 +29926,15 @@ const InsuranceHealthScore = ({ reportData }) => {
|
|
|
30401
29926
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
30402
29927
|
"div",
|
|
30403
29928
|
{
|
|
30404
|
-
className: `rounded-lg p-6 text-white text-center ${
|
|
29929
|
+
className: `rounded-lg p-6 text-white text-center ${scoreCategoryData.bgColor}`,
|
|
30405
29930
|
children: [
|
|
30406
29931
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-center space-x-2 mb-2", children: [
|
|
30407
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-8 h-8 rounded-full bg-white/20 flex items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-lg font-bold", children:
|
|
29932
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-8 h-8 rounded-full bg-white/20 flex items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-lg font-bold", children: score }) }),
|
|
30408
29933
|
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-2xl font-bold", children: "INSURANCE HEALTH SCORE" })
|
|
30409
29934
|
] }),
|
|
30410
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-4xl font-bold", children:
|
|
30411
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-lg font-semibold mt-2", children:
|
|
30412
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm opacity-75 mt-1", children:
|
|
29935
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-4xl font-bold", children: `${score}/850` }),
|
|
29936
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-lg font-semibold mt-2", children: scoreCategoryData.category }),
|
|
29937
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm opacity-75 mt-1", children: scoreCategoryData.description })
|
|
30413
29938
|
]
|
|
30414
29939
|
}
|
|
30415
29940
|
),
|
|
@@ -30456,21 +29981,7 @@ const InsuranceHealthScore = ({ reportData }) => {
|
|
|
30456
29981
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-slate-600", children: "Assessment results and category breakdown" })
|
|
30457
29982
|
] }),
|
|
30458
29983
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 md:grid-cols-6 gap-8", children: [
|
|
30459
|
-
/* @__PURE__ */ jsxRuntime.
|
|
30460
|
-
hasAssessmentData ? /* @__PURE__ */ jsxRuntime.jsx(InsuranceHealthGauge, { score, size: 320 }) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
30461
|
-
"div",
|
|
30462
|
-
{
|
|
30463
|
-
className: "flex flex-col items-center justify-center space-y-4",
|
|
30464
|
-
style: { height: "320px" },
|
|
30465
|
-
children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-center space-y-2", children: [
|
|
30466
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-6xl font-bold text-slate-400", children: "N/A" }),
|
|
30467
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-lg font-semibold text-slate-600", children: "Not Available" }),
|
|
30468
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-sm text-slate-500 max-w-xs", children: "Complete the insurance health assessment to view your score gauge" })
|
|
30469
|
-
] })
|
|
30470
|
-
}
|
|
30471
|
-
),
|
|
30472
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-center" })
|
|
30473
|
-
] }),
|
|
29984
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "md:col-span-3 flex flex-col items-center space-y-4", children: /* @__PURE__ */ jsxRuntime.jsx(InsuranceHealthGauge, { score, size: 320 }) }),
|
|
30474
29985
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "md:col-span-3 space-y-4", children: [
|
|
30475
29986
|
/* @__PURE__ */ jsxRuntime.jsx("h4", { className: "font-semibold text-slate-900", children: "Security Category Scores" }),
|
|
30476
29987
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-3", children: (() => {
|
|
@@ -30517,102 +30028,6 @@ const InsuranceHealthScore = ({ reportData }) => {
|
|
|
30517
30028
|
] })
|
|
30518
30029
|
] })
|
|
30519
30030
|
] }),
|
|
30520
|
-
/* @__PURE__ */ jsxRuntime.jsxs("section", { className: "report-page space-y-6 border-t border-slate-200 pt-8", children: [
|
|
30521
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
30522
|
-
/* @__PURE__ */ jsxRuntime.jsx("h2", { className: "text-2xl font-bold text-slate-900 mb-2", children: "Recommendations for Improvement" }),
|
|
30523
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-slate-600", children: "Priority actions to enhance your insurance health score" })
|
|
30524
|
-
] }),
|
|
30525
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-6", children: ((_a = clientData.recommendations) == null ? void 0 : _a.map((rec, index2) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
30526
|
-
"div",
|
|
30527
|
-
{
|
|
30528
|
-
className: "bg-white border border-slate-200 rounded-lg p-6",
|
|
30529
|
-
children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start space-x-4", children: [
|
|
30530
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "bg-blue-100 rounded-full p-2 flex-shrink-0", children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-blue-600 font-bold text-sm", children: index2 + 1 }) }),
|
|
30531
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex-grow", children: [
|
|
30532
|
-
/* @__PURE__ */ jsxRuntime.jsx("h4", { className: "font-semibold text-slate-900 mb-2", children: rec.title }),
|
|
30533
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-4", children: [
|
|
30534
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
30535
|
-
/* @__PURE__ */ jsxRuntime.jsx("h5", { className: "font-medium text-red-600 mb-1", children: "Current Risk:" }),
|
|
30536
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-slate-600", children: rec.problem })
|
|
30537
|
-
] }),
|
|
30538
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
30539
|
-
/* @__PURE__ */ jsxRuntime.jsx("h5", { className: "font-medium text-green-600 mb-1", children: "Recommended Action:" }),
|
|
30540
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-slate-600", children: rec.solution })
|
|
30541
|
-
] })
|
|
30542
|
-
] }),
|
|
30543
|
-
rec.analogy && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-3 p-3 bg-blue-50 rounded border-l-4 border-blue-400", children: /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-blue-800 italic", children: rec.analogy }) })
|
|
30544
|
-
] })
|
|
30545
|
-
] })
|
|
30546
|
-
},
|
|
30547
|
-
rec.id
|
|
30548
|
-
))) || /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-center py-8", children: /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-slate-500", children: "No specific recommendations available. Your current security posture shows good practices." }) }) })
|
|
30549
|
-
] }),
|
|
30550
|
-
/* @__PURE__ */ jsxRuntime.jsxs("section", { className: "report-page space-y-6 border-t border-slate-200 pt-8", children: [
|
|
30551
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center space-x-3", children: [
|
|
30552
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-8 h-8 bg-green-600 rounded-lg flex items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-white text-lg", children: "✓" }) }),
|
|
30553
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
30554
|
-
/* @__PURE__ */ jsxRuntime.jsx("h2", { className: "text-2xl font-bold text-slate-900", children: "Proposed Next Steps" }),
|
|
30555
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-slate-600", children: "How to leverage these insights for your organization" })
|
|
30556
|
-
] })
|
|
30557
|
-
] }),
|
|
30558
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-6", children: [
|
|
30559
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "bg-blue-50 border border-blue-200 rounded-lg p-6", children: [
|
|
30560
|
-
/* @__PURE__ */ jsxRuntime.jsx("h4", { className: "font-semibold text-slate-900 mb-4", children: "Immediate Actions" }),
|
|
30561
|
-
/* @__PURE__ */ jsxRuntime.jsxs("ul", { className: "space-y-3 text-slate-700", children: [
|
|
30562
|
-
/* @__PURE__ */ jsxRuntime.jsxs("li", { className: "flex items-start space-x-3", children: [
|
|
30563
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-blue-600 mt-1.5 w-1.5 h-1.5 rounded-full bg-blue-600 flex-shrink-0" }),
|
|
30564
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { children: "Implement the highest priority recommendations identified in this assessment" })
|
|
30565
|
-
] }),
|
|
30566
|
-
/* @__PURE__ */ jsxRuntime.jsxs("li", { className: "flex items-start space-x-3", children: [
|
|
30567
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-blue-600 mt-1.5 w-1.5 h-1.5 rounded-full bg-blue-600 flex-shrink-0" }),
|
|
30568
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { children: "Schedule a cybersecurity strategy session to discuss these findings in detail" })
|
|
30569
|
-
] }),
|
|
30570
|
-
/* @__PURE__ */ jsxRuntime.jsxs("li", { className: "flex items-start space-x-3", children: [
|
|
30571
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-blue-600 mt-1.5 w-1.5 h-1.5 rounded-full bg-blue-600 flex-shrink-0" }),
|
|
30572
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { children: "Begin conversations with insurance providers about current coverage needs" })
|
|
30573
|
-
] })
|
|
30574
|
-
] })
|
|
30575
|
-
] }),
|
|
30576
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-6", children: [
|
|
30577
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "bg-slate-50 border border-slate-200 rounded-lg p-6", children: [
|
|
30578
|
-
/* @__PURE__ */ jsxRuntime.jsx("h4", { className: "font-semibold text-slate-900 mb-4", children: "Insurance Planning" }),
|
|
30579
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-slate-700 mb-4", children: "Use this score to have informed conversations with insurance providers and understand your options in the marketplace." }),
|
|
30580
|
-
/* @__PURE__ */ jsxRuntime.jsxs("ul", { className: "space-y-2 text-slate-700", children: [
|
|
30581
|
-
/* @__PURE__ */ jsxRuntime.jsxs("li", { className: "flex items-start space-x-3", children: [
|
|
30582
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-slate-500 mt-1.5 w-1.5 h-1.5 rounded-full bg-slate-500 flex-shrink-0" }),
|
|
30583
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { children: "Shop for competitive quotes" })
|
|
30584
|
-
] }),
|
|
30585
|
-
/* @__PURE__ */ jsxRuntime.jsxs("li", { className: "flex items-start space-x-3", children: [
|
|
30586
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-slate-500 mt-1.5 w-1.5 h-1.5 rounded-full bg-slate-500 flex-shrink-0" }),
|
|
30587
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { children: "Understand coverage requirements" })
|
|
30588
|
-
] }),
|
|
30589
|
-
/* @__PURE__ */ jsxRuntime.jsxs("li", { className: "flex items-start space-x-3", children: [
|
|
30590
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-slate-500 mt-1.5 w-1.5 h-1.5 rounded-full bg-slate-500 flex-shrink-0" }),
|
|
30591
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { children: "Review existing policy terms" })
|
|
30592
|
-
] })
|
|
30593
|
-
] })
|
|
30594
|
-
] }),
|
|
30595
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "bg-slate-50 border border-slate-200 rounded-lg p-6", children: [
|
|
30596
|
-
/* @__PURE__ */ jsxRuntime.jsx("h4", { className: "font-semibold text-slate-900 mb-4", children: "Security Improvement" }),
|
|
30597
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-slate-700 mb-4", children: "Focus on the security areas that will have the most positive impact on your insurance posture and overall risk." }),
|
|
30598
|
-
/* @__PURE__ */ jsxRuntime.jsxs("ul", { className: "space-y-2 text-slate-700", children: [
|
|
30599
|
-
/* @__PURE__ */ jsxRuntime.jsxs("li", { className: "flex items-start space-x-3", children: [
|
|
30600
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-slate-500 mt-1.5 w-1.5 h-1.5 rounded-full bg-slate-500 flex-shrink-0" }),
|
|
30601
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { children: "Prioritize high-impact improvements" })
|
|
30602
|
-
] }),
|
|
30603
|
-
/* @__PURE__ */ jsxRuntime.jsxs("li", { className: "flex items-start space-x-3", children: [
|
|
30604
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-slate-500 mt-1.5 w-1.5 h-1.5 rounded-full bg-slate-500 flex-shrink-0" }),
|
|
30605
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { children: "Document security controls" })
|
|
30606
|
-
] }),
|
|
30607
|
-
/* @__PURE__ */ jsxRuntime.jsxs("li", { className: "flex items-start space-x-3", children: [
|
|
30608
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-slate-500 mt-1.5 w-1.5 h-1.5 rounded-full bg-slate-500 flex-shrink-0" }),
|
|
30609
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { children: "Monitor progress regularly" })
|
|
30610
|
-
] })
|
|
30611
|
-
] })
|
|
30612
|
-
] })
|
|
30613
|
-
] })
|
|
30614
|
-
] })
|
|
30615
|
-
] }),
|
|
30616
30031
|
/* @__PURE__ */ jsxRuntime.jsxs("section", { className: "report-page space-y-6 border-t border-slate-200 pt-8", children: [
|
|
30617
30032
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center space-x-3", children: [
|
|
30618
30033
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-8 h-8 bg-blue-600 rounded-lg flex items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-white text-lg", children: "?" }) }),
|
|
@@ -30661,7 +30076,7 @@ const InsuranceHealthScore = ({ reportData }) => {
|
|
|
30661
30076
|
] }),
|
|
30662
30077
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "bg-yellow-50 border border-yellow-200 rounded-lg p-6", children: [
|
|
30663
30078
|
/* @__PURE__ */ jsxRuntime.jsx("h4", { className: "font-semibold text-slate-900 mb-2", children: "Important Notes" }),
|
|
30664
|
-
/* @__PURE__ */ jsxRuntime.jsxs("ul", { className: "text-slate-700
|
|
30079
|
+
/* @__PURE__ */ jsxRuntime.jsxs("ul", { className: "text-slate-700", children: [
|
|
30665
30080
|
/* @__PURE__ */ jsxRuntime.jsxs("li", { className: "flex items-start space-x-2", children: [
|
|
30666
30081
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-yellow-600 mt-1", children: "•" }),
|
|
30667
30082
|
/* @__PURE__ */ jsxRuntime.jsx("span", { children: "This assessment is based on industry standards and general insurance requirements" })
|
|
@@ -30678,59 +30093,50 @@ const InsuranceHealthScore = ({ reportData }) => {
|
|
|
30678
30093
|
] })
|
|
30679
30094
|
] })
|
|
30680
30095
|
] }),
|
|
30681
|
-
/* @__PURE__ */ jsxRuntime.
|
|
30682
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", {
|
|
30683
|
-
/* @__PURE__ */ jsxRuntime.jsx("
|
|
30684
|
-
/* @__PURE__ */ jsxRuntime.jsxs("
|
|
30685
|
-
/* @__PURE__ */ jsxRuntime.
|
|
30686
|
-
|
|
30096
|
+
/* @__PURE__ */ jsxRuntime.jsx("section", { className: "report-page space-y-6 border-t border-slate-200 pt-8", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-6", children: [
|
|
30097
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
30098
|
+
/* @__PURE__ */ jsxRuntime.jsx("h4", { className: "font-semibold text-green-600 mb-3", children: "What This Report IS:" }),
|
|
30099
|
+
/* @__PURE__ */ jsxRuntime.jsxs("ul", { className: "text-slate-700 space-y-2 text-sm", children: [
|
|
30100
|
+
/* @__PURE__ */ jsxRuntime.jsxs("li", { className: "flex items-start space-x-2", children: [
|
|
30101
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-green-600 mt-1", children: "✓" }),
|
|
30102
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { children: "A cybersecurity assessment tool based on industry standards" })
|
|
30103
|
+
] }),
|
|
30104
|
+
/* @__PURE__ */ jsxRuntime.jsxs("li", { className: "flex items-start space-x-2", children: [
|
|
30105
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-green-600 mt-1", children: "✓" }),
|
|
30106
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { children: "Educational guidance on insurance readiness factors" })
|
|
30107
|
+
] }),
|
|
30108
|
+
/* @__PURE__ */ jsxRuntime.jsxs("li", { className: "flex items-start space-x-2", children: [
|
|
30109
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-green-600 mt-1", children: "✓" }),
|
|
30110
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { children: "A starting point for security improvement discussions" })
|
|
30111
|
+
] }),
|
|
30112
|
+
/* @__PURE__ */ jsxRuntime.jsxs("li", { className: "flex items-start space-x-2", children: [
|
|
30113
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-green-600 mt-1", children: "✓" }),
|
|
30114
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { children: "Based on current cybersecurity best practices" })
|
|
30115
|
+
] })
|
|
30687
30116
|
] })
|
|
30688
30117
|
] }),
|
|
30689
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", {
|
|
30690
|
-
/* @__PURE__ */ jsxRuntime.
|
|
30691
|
-
|
|
30692
|
-
/* @__PURE__ */ jsxRuntime.jsxs("
|
|
30693
|
-
/* @__PURE__ */ jsxRuntime.
|
|
30694
|
-
|
|
30695
|
-
|
|
30696
|
-
|
|
30697
|
-
/* @__PURE__ */ jsxRuntime.
|
|
30698
|
-
|
|
30699
|
-
|
|
30700
|
-
|
|
30701
|
-
/* @__PURE__ */ jsxRuntime.
|
|
30702
|
-
|
|
30703
|
-
|
|
30704
|
-
|
|
30705
|
-
/* @__PURE__ */ jsxRuntime.
|
|
30706
|
-
|
|
30707
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { children: "Based on current cybersecurity best practices" })
|
|
30708
|
-
] })
|
|
30709
|
-
] })
|
|
30710
|
-
] }),
|
|
30711
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
30712
|
-
/* @__PURE__ */ jsxRuntime.jsx("h4", { className: "font-semibold text-red-600 mb-3", children: "What This Report IS NOT:" }),
|
|
30713
|
-
/* @__PURE__ */ jsxRuntime.jsxs("ul", { className: "text-slate-700 space-y-2 text-sm", children: [
|
|
30714
|
-
/* @__PURE__ */ jsxRuntime.jsxs("li", { className: "flex items-start space-x-2", children: [
|
|
30715
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-red-600 mt-1", children: "✗" }),
|
|
30716
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { children: "A guarantee of insurance coverage or pricing" })
|
|
30717
|
-
] }),
|
|
30718
|
-
/* @__PURE__ */ jsxRuntime.jsxs("li", { className: "flex items-start space-x-2", children: [
|
|
30719
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-red-600 mt-1", children: "✗" }),
|
|
30720
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { children: "A comprehensive security audit or penetration test" })
|
|
30721
|
-
] }),
|
|
30722
|
-
/* @__PURE__ */ jsxRuntime.jsxs("li", { className: "flex items-start space-x-2", children: [
|
|
30723
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-red-600 mt-1", children: "✗" }),
|
|
30724
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { children: "Legal or financial advice" })
|
|
30725
|
-
] }),
|
|
30726
|
-
/* @__PURE__ */ jsxRuntime.jsxs("li", { className: "flex items-start space-x-2", children: [
|
|
30727
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-red-600 mt-1", children: "✗" }),
|
|
30728
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { children: "A replacement for professional cybersecurity consultation" })
|
|
30729
|
-
] })
|
|
30118
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
30119
|
+
/* @__PURE__ */ jsxRuntime.jsx("h4", { className: "font-semibold text-red-600 mb-3", children: "What This Report IS NOT:" }),
|
|
30120
|
+
/* @__PURE__ */ jsxRuntime.jsxs("ul", { className: "text-slate-700 space-y-2 text-sm", children: [
|
|
30121
|
+
/* @__PURE__ */ jsxRuntime.jsxs("li", { className: "flex items-start space-x-2", children: [
|
|
30122
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-red-600 mt-1", children: "✗" }),
|
|
30123
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { children: "A guarantee of insurance coverage or pricing" })
|
|
30124
|
+
] }),
|
|
30125
|
+
/* @__PURE__ */ jsxRuntime.jsxs("li", { className: "flex items-start space-x-2", children: [
|
|
30126
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-red-600 mt-1", children: "✗" }),
|
|
30127
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { children: "A comprehensive security audit or penetration test" })
|
|
30128
|
+
] }),
|
|
30129
|
+
/* @__PURE__ */ jsxRuntime.jsxs("li", { className: "flex items-start space-x-2", children: [
|
|
30130
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-red-600 mt-1", children: "✗" }),
|
|
30131
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { children: "Legal or financial advice" })
|
|
30132
|
+
] }),
|
|
30133
|
+
/* @__PURE__ */ jsxRuntime.jsxs("li", { className: "flex items-start space-x-2", children: [
|
|
30134
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-red-600 mt-1", children: "✗" }),
|
|
30135
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { children: "A replacement for professional cybersecurity consultation" })
|
|
30730
30136
|
] })
|
|
30731
30137
|
] })
|
|
30732
30138
|
] })
|
|
30733
|
-
] })
|
|
30139
|
+
] }) })
|
|
30734
30140
|
] });
|
|
30735
30141
|
};
|
|
30736
30142
|
const Warning = ({ children }) => /* @__PURE__ */ jsxRuntime.jsx("h4", { className: "text-center text-orange-600 text-lg", children });
|