@threatcaptain/tc-reports 0.2.20 → 0.2.22

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 CHANGED
@@ -51758,9 +51758,9 @@ const MITRETacticsOverview = ({
51758
51758
  setSelectedTactic(null);
51759
51759
  };
51760
51760
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "bg-gray-50 p-4 rounded-lg", children: [
51761
- /* @__PURE__ */ jsxRuntime.jsx("h4", { className: "font-medium text-sm mb-3", children: "MITRE ATT&CK Kill Chain Coverage - 4 Attack Steps" }),
51762
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-gray-500 mb-4", children: "Click on any step to explore individual tactics" }),
51763
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-1 md:grid-cols-2 xl:grid-cols-4 gap-4 mb-6", children: ATTACK_STEPS.map((step) => {
51761
+ /* @__PURE__ */ jsxRuntime.jsx("h4", { className: "font-medium text-lg mb-3", children: "MITRE ATT&CK Kill Chain Coverage - 4 Attack Steps" }),
51762
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-gray-500 mb-4 print:hidden", children: "Click on any step to explore individual tactics" }),
51763
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-1 md:grid-cols-2 xl:grid-cols-4 print:grid-cols-2 gap-4 mb-6", children: ATTACK_STEPS.map((step) => {
51764
51764
  var _a2;
51765
51765
  const stepData = (_a2 = breachData.attackSteps) == null ? void 0 : _a2.find(
51766
51766
  (s2) => s2.stepId === step.stepId
@@ -51966,7 +51966,7 @@ const BreachLikelihood = ({ reportData }) => {
51966
51966
  /* @__PURE__ */ jsxRuntime.jsx("h1", { className: "text-3xl font-bold text-slate-900", children: "Breach Likelihood Assessment" }),
51967
51967
  /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-slate-600 text-base", children: "Analyzing probability and impact of security incidents" })
51968
51968
  ] }),
51969
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-2 gap-4 mb-4", children: [
51969
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-2 print:grid-cols-1 gap-4 mb-4", children: [
51970
51970
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-col items-center p-4 text-center", children: breachData ? /* @__PURE__ */ jsxRuntime.jsx(
51971
51971
  MitreAttack,
51972
51972
  {
@@ -51974,7 +51974,7 @@ const BreachLikelihood = ({ reportData }) => {
51974
51974
  overallLikelihood: attackLikelihood
51975
51975
  }
51976
51976
  ) : /* @__PURE__ */ jsxRuntime.jsx("p", { children: "Getting breach data..." }) }),
51977
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col justify-center gap-4", children: [
51977
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col justify-center print:justify-normal gap-4", children: [
51978
51978
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center p-4 rounded-md bg-slate-50", children: [
51979
51979
  /* @__PURE__ */ jsxRuntime.jsx(lucideReact.CheckCircle, { className: "w-6 h-6 mr-4 text-green-600" }),
51980
51980
  /* @__PURE__ */ jsxRuntime.jsxs("span", { children: [
@@ -51995,28 +51995,9 @@ const BreachLikelihood = ({ reportData }) => {
51995
51995
  /* @__PURE__ */ jsxRuntime.jsx("span", { children: "Smart investments could reduce your risk to under $100,000" })
51996
51996
  ] })
51997
51997
  ] })
51998
- ] }),
51999
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "p-3", children: [
52000
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center mb-2", children: [
52001
- /* @__PURE__ */ jsxRuntime.jsx(lucideReact.FileText, { className: "w-4 h-4 text-slate-600 mr-1" }),
52002
- /* @__PURE__ */ jsxRuntime.jsxs("h4", { className: "text-lg font-semibold text-slate-700 italic", children: [
52003
- "Your Current Estimated Risk = $",
52004
- realRiskExposure.toLocaleString()
52005
- ] })
52006
- ] }),
52007
- /* @__PURE__ */ jsxRuntime.jsxs("ul", { className: "text-slate-600 space-y-1", children: [
52008
- /* @__PURE__ */ jsxRuntime.jsx("li", { children: "• Cyber attacks increased 38% globally in 2023 compared to 2022" }),
52009
- /* @__PURE__ */ jsxRuntime.jsx("li", { children: "• Small businesses experience a cyberattack every 39 seconds on average" }),
52010
- /* @__PURE__ */ jsxRuntime.jsx("li", { children: "• 60% of small companies go out of business within 6 months of a cyber attack" }),
52011
- /* @__PURE__ */ jsxRuntime.jsx("li", { children: "• The average cost of cybercrime for businesses globally rose to $4.88 million in 2024" })
52012
- ] })
52013
51998
  ] })
52014
51999
  ] }),
52015
- /* @__PURE__ */ jsxRuntime.jsxs("section", { className: "report-page space-y-6 border-t border-slate-200 pt-8", children: [
52016
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-center", children: [
52017
- /* @__PURE__ */ jsxRuntime.jsx("h2", { className: "text-2xl font-bold text-slate-900 mb-2", children: "Understanding Your Numbers" }),
52018
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-slate-600", children: "How We Calculate Your Risk" })
52019
- ] }),
52000
+ /* @__PURE__ */ jsxRuntime.jsxs("section", { className: "report-page space-y-6 border-b border-slate-200 pt-8", children: [
52020
52001
  /* @__PURE__ */ jsxRuntime.jsx(
52021
52002
  MITRETacticsOverview,
52022
52003
  {
@@ -52026,6 +52007,25 @@ const BreachLikelihood = ({ reportData }) => {
52026
52007
  onTacticClick: setSelectedTactic
52027
52008
  }
52028
52009
  ),
52010
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center mb-2", children: [
52011
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.FileText, { className: "w-4 h-4 text-slate-600 mr-1" }),
52012
+ /* @__PURE__ */ jsxRuntime.jsxs("h4", { className: "text-lg font-semibold text-slate-700 italic", children: [
52013
+ "Your Current Estimated Risk = $",
52014
+ realRiskExposure.toLocaleString()
52015
+ ] })
52016
+ ] }),
52017
+ /* @__PURE__ */ jsxRuntime.jsxs("ul", { className: "text-slate-600 space-y-1", children: [
52018
+ /* @__PURE__ */ jsxRuntime.jsx("li", { children: "• Cyber attacks increased 38% globally in 2023 compared to 2022" }),
52019
+ /* @__PURE__ */ jsxRuntime.jsx("li", { children: "• Small businesses experience a cyberattack every 39 seconds on average" }),
52020
+ /* @__PURE__ */ jsxRuntime.jsx("li", { children: "• 60% of small companies go out of business within 6 months of a cyber attack" }),
52021
+ /* @__PURE__ */ jsxRuntime.jsx("li", { children: "• The average cost of cybercrime for businesses globally rose to $4.88 million in 2024" })
52022
+ ] })
52023
+ ] }),
52024
+ /* @__PURE__ */ jsxRuntime.jsxs("section", { className: "report-page space-y-6 border-b border-slate-200 pt-8", children: [
52025
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-center", children: [
52026
+ /* @__PURE__ */ jsxRuntime.jsx("h2", { className: "text-2xl font-bold text-slate-900 mb-2", children: "Understanding Your Numbers" }),
52027
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-slate-600", children: "How We Calculate Your Risk" })
52028
+ ] }),
52029
52029
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "bg-slate-50 rounded-lg p-6 mb-6", children: [
52030
52030
  /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-xl font-bold mb-4", children: "Our Approach" }),
52031
52031
  /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-slate-700", children: "We use the same data sources that insurance companies and security professionals rely on. Our calculations are conservative - real attack costs are often higher than our estimates." })
@@ -52403,77 +52403,77 @@ const FinancialImpact = ({ reportData }) => {
52403
52403
  const dynamicCostBreakdown = createCostBreakdownFromSimulation(simulationData);
52404
52404
  const calculatedCost = simulationData.use_calculated_downtime === false ? simulationData.total_cost : simulationData.adjusted_total_cost;
52405
52405
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
52406
- /* @__PURE__ */ jsxRuntime.jsx(
52406
+ /* @__PURE__ */ jsxRuntime.jsxs(
52407
52407
  "section",
52408
52408
  {
52409
52409
  id: "financial-impact",
52410
52410
  className: "report-page text-center space-y-6 pb-8 border-b border-slate-200",
52411
- children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-2", children: [
52412
- /* @__PURE__ */ jsxRuntime.jsx("h1", { className: "text-4xl font-bold text-slate-900", children: "Cyber Financial Impact Analysis" }),
52413
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xl text-slate-600", children: "Quantifying Your Organization's Cyber Risk Exposure" })
52414
- ] })
52411
+ children: [
52412
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-2", children: [
52413
+ /* @__PURE__ */ jsxRuntime.jsx("h1", { className: "text-4xl font-bold text-slate-900", children: "Cyber Financial Impact Analysis" }),
52414
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xl text-slate-600", children: "Quantifying Your Organization's Cyber Risk Exposure" })
52415
+ ] }),
52416
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "bg-red-600 rounded-lg p-6 text-white text-center", children: [
52417
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-center space-x-2 mb-2", children: [
52418
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.DollarSign, { className: "w-8 h-8" }),
52419
+ /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-2xl font-bold", children: "TOTAL POTENTIAL IMPACT" })
52420
+ ] }),
52421
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-4xl font-bold", children: formatCurrency(calculatedCost) }),
52422
+ /* @__PURE__ */ jsxRuntime.jsxs("p", { className: "text-sm opacity-75 mt-2", children: [
52423
+ "Cost Range:  ",
52424
+ formatCurrency(calculatedCost * 0.8),
52425
+ " -  ",
52426
+ formatCurrency(calculatedCost * 1.2)
52427
+ ] })
52428
+ ] }),
52429
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
52430
+ /* @__PURE__ */ jsxRuntime.jsx("h4", { className: "text-lg font-semibold text-slate-900", children: "Top Industry Threats" }),
52431
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 print:grid-cols-3 gap-4", children: getIndustryThreats(clientData.industry).map((threat, index2) => /* @__PURE__ */ jsxRuntime.jsxs(
52432
+ "div",
52433
+ {
52434
+ className: "bg-red-50 border border-red-200 rounded-lg p-4 flex items-center space-x-3",
52435
+ children: [
52436
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex-shrink-0", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.AlertTriangle, { className: "w-5 h-5 text-red-500" }) }),
52437
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm font-medium text-red-900", children: threat })
52438
+ ]
52439
+ },
52440
+ index2
52441
+ )) })
52442
+ ] }),
52443
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 md:grid-cols-2 print:grid-cols-2 gap-6", children: [
52444
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
52445
+ /* @__PURE__ */ jsxRuntime.jsx("h4", { className: "text-lg font-semibold text-slate-900", children: "Industry Risk Profile" }),
52446
+ /* @__PURE__ */ jsxRuntime.jsxs(
52447
+ "div",
52448
+ {
52449
+ className: `inline-flex px-3 py-1 rounded-full text-sm font-medium ${riskLevel.color}`,
52450
+ children: [
52451
+ riskLevel.level,
52452
+ " Risk"
52453
+ ]
52454
+ }
52455
+ ),
52456
+ /* @__PURE__ */ jsxRuntime.jsxs("p", { className: "text-slate-600", children: [
52457
+ clientData.industry === "Healthcare" && "Healthcare organizations face elevated cyber risks due to valuable PHI data that commands high prices on dark web markets.",
52458
+ clientData.industry === "Financial Services" && "Financial institutions are prime targets due to direct access to funds and sensitive financial data.",
52459
+ clientData.industry === "Manufacturing" && "Manufacturing companies face operational technology risks that can halt production and supply chains.",
52460
+ !["Healthcare", "Financial Services", "Manufacturing"].includes(
52461
+ clientData.industry
52462
+ ) && "Your industry faces specific cyber risks that require tailored protection strategies."
52463
+ ] })
52464
+ ] }),
52465
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
52466
+ /* @__PURE__ */ jsxRuntime.jsx("h4", { className: "text-lg font-semibold text-slate-900", children: "Key Risk Factors" }),
52467
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-1", children: getIndustryThreats(clientData.industry).map((threat, index2) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center space-x-2", children: [
52468
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.AlertTriangle, { className: "w-4 h-4 text-red-500" }),
52469
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm", children: threat })
52470
+ ] }, index2)) })
52471
+ ] })
52472
+ ] })
52473
+ ]
52415
52474
  }
52416
52475
  ),
52417
- /* @__PURE__ */ jsxRuntime.jsxs("section", { className: "report-page space-y-6", children: [
52418
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "bg-red-600 rounded-lg p-6 text-white text-center", children: [
52419
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-center space-x-2 mb-2", children: [
52420
- /* @__PURE__ */ jsxRuntime.jsx(lucideReact.DollarSign, { className: "w-8 h-8" }),
52421
- /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-2xl font-bold", children: "TOTAL POTENTIAL IMPACT" })
52422
- ] }),
52423
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-4xl font-bold", children: formatCurrency(calculatedCost) }),
52424
- /* @__PURE__ */ jsxRuntime.jsxs("p", { className: "text-sm opacity-75 mt-2", children: [
52425
- "Cost Range:  ",
52426
- formatCurrency(calculatedCost * 0.8),
52427
- " -  ",
52428
- formatCurrency(calculatedCost * 1.2)
52429
- ] })
52430
- ] }),
52431
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
52432
- /* @__PURE__ */ jsxRuntime.jsx("h4", { className: "text-lg font-semibold text-slate-900", children: "Top Industry Threats" }),
52433
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4", children: getIndustryThreats(clientData.industry).map((threat, index2) => /* @__PURE__ */ jsxRuntime.jsxs(
52434
- "div",
52435
- {
52436
- className: "bg-red-50 border border-red-200 rounded-lg p-4 flex items-center space-x-3",
52437
- children: [
52438
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex-shrink-0", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.AlertTriangle, { className: "w-5 h-5 text-red-500" }) }),
52439
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm font-medium text-red-900", children: threat })
52440
- ]
52441
- },
52442
- index2
52443
- )) })
52444
- ] }),
52445
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-6", children: [
52446
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
52447
- /* @__PURE__ */ jsxRuntime.jsx("h4", { className: "text-lg font-semibold text-slate-900", children: "Industry Risk Profile" }),
52448
- /* @__PURE__ */ jsxRuntime.jsxs(
52449
- "div",
52450
- {
52451
- className: `inline-flex px-3 py-1 rounded-full text-sm font-medium ${riskLevel.color}`,
52452
- children: [
52453
- riskLevel.level,
52454
- " Risk"
52455
- ]
52456
- }
52457
- ),
52458
- /* @__PURE__ */ jsxRuntime.jsxs("p", { className: "text-slate-600", children: [
52459
- clientData.industry === "Healthcare" && "Healthcare organizations face elevated cyber risks due to valuable PHI data that commands high prices on dark web markets.",
52460
- clientData.industry === "Financial Services" && "Financial institutions are prime targets due to direct access to funds and sensitive financial data.",
52461
- clientData.industry === "Manufacturing" && "Manufacturing companies face operational technology risks that can halt production and supply chains.",
52462
- !["Healthcare", "Financial Services", "Manufacturing"].includes(
52463
- clientData.industry
52464
- ) && "Your industry faces specific cyber risks that require tailored protection strategies."
52465
- ] })
52466
- ] }),
52467
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
52468
- /* @__PURE__ */ jsxRuntime.jsx("h4", { className: "text-lg font-semibold text-slate-900", children: "Key Risk Factors" }),
52469
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-1", children: getIndustryThreats(clientData.industry).map((threat, index2) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center space-x-2", children: [
52470
- /* @__PURE__ */ jsxRuntime.jsx(lucideReact.AlertTriangle, { className: "w-4 h-4 text-red-500" }),
52471
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm", children: threat })
52472
- ] }, index2)) })
52473
- ] })
52474
- ] })
52475
- ] }),
52476
- /* @__PURE__ */ jsxRuntime.jsxs("section", { className: "report-page space-y-6 border-t border-slate-200 pt-8", children: [
52476
+ /* @__PURE__ */ jsxRuntime.jsxs("section", { className: "report-page space-y-6 border-b border-slate-200 pt-8", children: [
52477
52477
  /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
52478
52478
  /* @__PURE__ */ jsxRuntime.jsx("h2", { className: "text-2xl font-bold text-slate-900 mb-2", children: "Detailed Financial Breakdown" }),
52479
52479
  /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-slate-600", children: "Understanding the components of the total potential cost" })
@@ -52530,7 +52530,7 @@ const FinancialImpact = ({ reportData }) => {
52530
52530
  }) })
52531
52531
  ] })
52532
52532
  ] }),
52533
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-6", children: [
52533
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 md:grid-cols-2 print:grid-cols-2 gap-6", children: [
52534
52534
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "bg-white border border-slate-200 rounded-lg p-6", children: [
52535
52535
  /* @__PURE__ */ jsxRuntime.jsx("h4", { className: "font-semibold text-slate-900 mb-4", children: "Attack Scenario" }),
52536
52536
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-3 text-sm", children: [
@@ -52579,7 +52579,7 @@ const FinancialImpact = ({ reportData }) => {
52579
52579
  ] })
52580
52580
  ] })
52581
52581
  ] }),
52582
- /* @__PURE__ */ jsxRuntime.jsxs("section", { className: "report-page space-y-6 border-t border-slate-200 pt-8", children: [
52582
+ /* @__PURE__ */ jsxRuntime.jsxs("section", { className: "report-page space-y-6 border-b border-slate-200 pt-8", children: [
52583
52583
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center space-x-3", children: [
52584
52584
  /* @__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: "?" }) }),
52585
52585
  /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
@@ -52626,26 +52626,26 @@ const FinancialImpact = ({ reportData }) => {
52626
52626
  ] }) })
52627
52627
  ] }),
52628
52628
  /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-slate-700 mt-4", children: "This ensures the analysis reflects both likelihood and financial impact, helping you prioritize the risks most relevant to your clients." })
52629
+ ] })
52630
+ ] })
52631
+ ] }),
52632
+ /* @__PURE__ */ jsxRuntime.jsx("section", { className: "report-page space-y-6 pt-8", children: /* @__PURE__ */ jsxRuntime.jsx("div", { children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "bg-yellow-50 border border-yellow-200 rounded-lg p-6", children: [
52633
+ /* @__PURE__ */ jsxRuntime.jsx("h4", { className: "font-semibold text-slate-900 mb-2", children: "Important Notes" }),
52634
+ /* @__PURE__ */ jsxRuntime.jsxs("ul", { className: "text-slate-700 space-y-2", children: [
52635
+ /* @__PURE__ */ jsxRuntime.jsxs("li", { className: "flex items-start space-x-2", children: [
52636
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-yellow-600 mt-1", children: "•" }),
52637
+ /* @__PURE__ */ jsxRuntime.jsx("span", { children: "This analysis is based on industry norms and common threat patterns." })
52629
52638
  ] }),
52630
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "bg-yellow-50 border border-yellow-200 rounded-lg p-6", children: [
52631
- /* @__PURE__ */ jsxRuntime.jsx("h4", { className: "font-semibold text-slate-900 mb-2", children: "Important Notes" }),
52632
- /* @__PURE__ */ jsxRuntime.jsxs("ul", { className: "text-slate-700 space-y-2", children: [
52633
- /* @__PURE__ */ jsxRuntime.jsxs("li", { className: "flex items-start space-x-2", children: [
52634
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-yellow-600 mt-1", children: "•" }),
52635
- /* @__PURE__ */ jsxRuntime.jsx("span", { children: "This analysis is based on industry norms and common threat patterns." })
52636
- ] }),
52637
- /* @__PURE__ */ jsxRuntime.jsxs("li", { className: "flex items-start space-x-2", children: [
52638
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-yellow-600 mt-1", children: "•" }),
52639
- /* @__PURE__ */ jsxRuntime.jsx("span", { children: "Actual breach outcomes and costs may vary based on the event's scope and response quality." })
52640
- ] }),
52641
- /* @__PURE__ */ jsxRuntime.jsxs("li", { className: "flex items-start space-x-2", children: [
52642
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-yellow-600 mt-1", children: "•" }),
52643
- /* @__PURE__ */ jsxRuntime.jsx("span", { children: "This report is intended to guide investment and preparedness—not to predict specific future events." })
52644
- ] })
52645
- ] })
52639
+ /* @__PURE__ */ jsxRuntime.jsxs("li", { className: "flex items-start space-x-2", children: [
52640
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-yellow-600 mt-1", children: "" }),
52641
+ /* @__PURE__ */ jsxRuntime.jsx("span", { children: "Actual breach outcomes and costs may vary based on the event's scope and response quality." })
52642
+ ] }),
52643
+ /* @__PURE__ */ jsxRuntime.jsxs("li", { className: "flex items-start space-x-2", children: [
52644
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-yellow-600 mt-1", children: "•" }),
52645
+ /* @__PURE__ */ jsxRuntime.jsx("span", { children: "This report is intended to guide investment and preparedness—not to predict specific future events." })
52646
52646
  ] })
52647
52647
  ] })
52648
- ] })
52648
+ ] }) }) })
52649
52649
  ] });
52650
52650
  };
52651
52651
  const ASSESSMENT_CATEGORIES = {
@@ -52958,7 +52958,7 @@ const InsuranceImpactCards = ({
52958
52958
  if (score2 >= 450) return "Detailed review, additional requirements";
52959
52959
  return "Extensive review, may require risk mitigation plan";
52960
52960
  };
52961
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 md:grid-cols-3 gap-4", children: [
52961
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 md:grid-cols-3 print:grid-cols-3 gap-4", children: [
52962
52962
  /* @__PURE__ */ jsxRuntime.jsx(Card, { className: getCardClasses(score), children: /* @__PURE__ */ jsxRuntime.jsx(CardContent, { className: "pt-4", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start space-x-3", children: [
52963
52963
  /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Shield, { className: `h-5 w-5 mt-0.5 ${getIconClasses(score)}` }),
52964
52964
  /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
@@ -52992,74 +52992,72 @@ const InsuranceHealthScore = ({ reportData }) => {
52992
52992
  bgColor: "bg-blue-600"
52993
52993
  } : scoreCategory;
52994
52994
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
52995
- /* @__PURE__ */ jsxRuntime.jsx(
52995
+ /* @__PURE__ */ jsxRuntime.jsxs(
52996
52996
  "section",
52997
52997
  {
52998
52998
  id: "insurance-health-score",
52999
52999
  className: "report-page text-center space-y-6 pb-8 border-b border-slate-200",
53000
- children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-2", children: [
53000
+ children: [
53001
53001
  /* @__PURE__ */ jsxRuntime.jsx("h1", { className: "text-4xl font-bold text-slate-900", children: "Cyber Insurance Health Score Report" }),
53002
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xl text-slate-600", children: "Understanding How Insurance Companies View Your Organization" })
53003
- ] })
53004
- }
53005
- ),
53006
- /* @__PURE__ */ jsxRuntime.jsxs("section", { className: "report-page space-y-6", children: [
53007
- /* @__PURE__ */ jsxRuntime.jsxs(
53008
- "div",
53009
- {
53010
- className: `rounded-lg p-6 text-white text-center ${scoreCategoryData.bgColor}`,
53011
- children: [
53012
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-center space-x-2 mb-2", children: [
53013
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-12 h-12 p-2 rounded-full bg-white/20 flex items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-lg font-bold", children: score }) }),
53014
- /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-2xl font-bold", children: "INSURANCE HEALTH SCORE" })
53015
- ] }),
53016
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-4xl font-bold", children: `${score}/850` }),
53017
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-lg font-semibold mt-2", children: scoreCategoryData.category }),
53018
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm opacity-75 mt-1", children: scoreCategoryData.description })
53019
- ]
53020
- }
53021
- ),
53022
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-6", children: [
53023
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
53024
- /* @__PURE__ */ jsxRuntime.jsx("h4", { className: "text-lg font-semibold text-slate-900", children: "Coverage Impact" }),
53025
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-3", children: [
53026
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start space-x-2", children: [
53027
- /* @__PURE__ */ jsxRuntime.jsx(lucideReact.AlertTriangle, { className: "w-4 h-4 text-blue-500 mt-1" }),
53028
- /* @__PURE__ */ jsxRuntime.jsx("div", { children: /* @__PURE__ */ jsxRuntime.jsx("p", { className: "font-medium text-sm", children: "Premium Rates" }) })
53029
- ] }),
53030
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start space-x-2", children: [
53031
- /* @__PURE__ */ jsxRuntime.jsx(lucideReact.AlertTriangle, { className: "w-4 h-4 text-blue-500 mt-1" }),
53032
- /* @__PURE__ */ jsxRuntime.jsx("div", { children: /* @__PURE__ */ jsxRuntime.jsx("p", { className: "font-medium text-sm", children: "Coverage Availability" }) })
53033
- ] }),
53034
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start space-x-2", children: [
53035
- /* @__PURE__ */ jsxRuntime.jsx(lucideReact.AlertTriangle, { className: "w-4 h-4 text-blue-500 mt-1" }),
53036
- /* @__PURE__ */ jsxRuntime.jsx("div", { children: /* @__PURE__ */ jsxRuntime.jsx("p", { className: "font-medium text-sm", children: "Risk Evaluation" }) })
53037
- ] })
53038
- ] })
53039
- ] }),
53040
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
53041
- /* @__PURE__ */ jsxRuntime.jsx("h4", { className: "text-lg font-semibold text-slate-900", children: "Things to Consider" }),
53042
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-1", children: [
53043
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center space-x-2", children: [
53044
- /* @__PURE__ */ jsxRuntime.jsx(lucideReact.AlertTriangle, { className: "w-4 h-4 text-amber-500" }),
53045
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm", children: "Cyber insurance rates are directly tied to your security posture" })
53046
- ] }),
53047
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center space-x-2", children: [
53048
- /* @__PURE__ */ jsxRuntime.jsx(lucideReact.AlertTriangle, { className: "w-4 h-4 text-amber-500" }),
53049
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm", children: "Insurers are increasingly requiring security controls" })
53002
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xl text-slate-600", children: "Understanding How Insurance Companies View Your Organization" }),
53003
+ /* @__PURE__ */ jsxRuntime.jsxs(
53004
+ "div",
53005
+ {
53006
+ className: `rounded-lg p-6 text-white text-center ${scoreCategoryData.bgColor}`,
53007
+ children: [
53008
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-center space-x-2 mb-2", children: [
53009
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-12 h-12 p-2 rounded-full bg-white/20 flex items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-lg font-bold", children: score }) }),
53010
+ /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-2xl font-bold", children: "INSURANCE HEALTH SCORE" })
53011
+ ] }),
53012
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-4xl font-bold", children: `${score}/850` }),
53013
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-lg font-semibold mt-2", children: scoreCategoryData.category }),
53014
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm opacity-75 mt-1", children: scoreCategoryData.description })
53015
+ ]
53016
+ }
53017
+ ),
53018
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 md:grid-cols-2 print:grid-cols-2 gap-6", children: [
53019
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
53020
+ /* @__PURE__ */ jsxRuntime.jsx("h4", { className: "text-lg font-semibold text-slate-900", children: "Coverage Impact" }),
53021
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-3", children: [
53022
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start space-x-2", children: [
53023
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.AlertTriangle, { className: "w-4 h-4 text-blue-500 mt-1" }),
53024
+ /* @__PURE__ */ jsxRuntime.jsx("div", { children: /* @__PURE__ */ jsxRuntime.jsx("p", { className: "font-medium text-sm", children: "Premium Rates" }) })
53025
+ ] }),
53026
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start space-x-2", children: [
53027
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.AlertTriangle, { className: "w-4 h-4 text-blue-500 mt-1" }),
53028
+ /* @__PURE__ */ jsxRuntime.jsx("div", { children: /* @__PURE__ */ jsxRuntime.jsx("p", { className: "font-medium text-sm", children: "Coverage Availability" }) })
53029
+ ] }),
53030
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start space-x-2", children: [
53031
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.AlertTriangle, { className: "w-4 h-4 text-blue-500 mt-1" }),
53032
+ /* @__PURE__ */ jsxRuntime.jsx("div", { children: /* @__PURE__ */ jsxRuntime.jsx("p", { className: "font-medium text-sm", children: "Risk Evaluation" }) })
53033
+ ] })
53034
+ ] })
53050
53035
  ] }),
53051
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center space-x-2", children: [
53052
- /* @__PURE__ */ jsxRuntime.jsx(lucideReact.AlertTriangle, { className: "w-4 h-4 text-amber-500" }),
53053
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm", children: "Claims approval depends on documented security measures" })
53036
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
53037
+ /* @__PURE__ */ jsxRuntime.jsx("h4", { className: "text-lg font-semibold text-slate-900", children: "Things to Consider" }),
53038
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-2", children: [
53039
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center space-x-2", children: [
53040
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.AlertTriangle, { className: "w-4 h-4 text-amber-500" }),
53041
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm text-left", children: "Cyber insurance rates are directly tied to your security posture" })
53042
+ ] }),
53043
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center space-x-2", children: [
53044
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.AlertTriangle, { className: "w-4 h-4 text-amber-500" }),
53045
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm text-left", children: "Insurers are increasingly requiring security controls" })
53046
+ ] }),
53047
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center space-x-2", children: [
53048
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.AlertTriangle, { className: "w-4 h-4 text-amber-500" }),
53049
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm text-left", children: "Claims approval depends on documented security measures" })
53050
+ ] })
53051
+ ] })
53054
53052
  ] })
53055
53053
  ] })
53056
- ] })
53057
- ] })
53058
- ] }),
53059
- /* @__PURE__ */ jsxRuntime.jsxs("section", { className: "report-page space-y-6 border-t border-slate-200 pt-8", children: [
53054
+ ]
53055
+ }
53056
+ ),
53057
+ /* @__PURE__ */ jsxRuntime.jsxs("section", { className: "report-page space-y-6 border-b border-slate-200 pt-8", children: [
53060
53058
  /* @__PURE__ */ jsxRuntime.jsx("h2", { className: "text-2xl font-bold text-slate-900 mb-2", children: "Your Insurance Health Score Results" }),
53061
53059
  /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-slate-600", children: "Assessment results and category breakdown" }),
53062
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-8", children: [
53060
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 md:grid-cols-2 print:grid-cols-2 gap-8", children: [
53063
53061
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-col items-center space-y-4", children: /* @__PURE__ */ jsxRuntime.jsx(InsuranceHealthGauge, { score, size: 320 }) }),
53064
53062
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
53065
53063
  /* @__PURE__ */ jsxRuntime.jsx("h4", { className: "font-semibold text-slate-900", children: "Security Category Scores" }),
@@ -53118,7 +53116,7 @@ const InsuranceHealthScore = ({ reportData }) => {
53118
53116
  ] }),
53119
53117
  /* @__PURE__ */ jsxRuntime.jsx(InsuranceImpactCards, { score })
53120
53118
  ] }),
53121
- /* @__PURE__ */ jsxRuntime.jsxs("section", { className: "report-page space-y-6 border-t border-slate-200 pt-8", children: [
53119
+ /* @__PURE__ */ jsxRuntime.jsxs("section", { className: "report-page space-y-6 border-b border-slate-200 pt-8", children: [
53122
53120
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center space-x-3", children: [
53123
53121
  /* @__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: "?" }) }),
53124
53122
  /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
@@ -53183,7 +53181,7 @@ const InsuranceHealthScore = ({ reportData }) => {
53183
53181
  ] })
53184
53182
  ] })
53185
53183
  ] }),
53186
- /* @__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 print:grid-cols-2 gap-6", children: [
53184
+ /* @__PURE__ */ jsxRuntime.jsx("section", { className: "report-page space-y-6 pt-8", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 md:grid-cols-2 print:grid-cols-2 gap-6", children: [
53187
53185
  /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
53188
53186
  /* @__PURE__ */ jsxRuntime.jsx("h4", { className: "font-semibold text-green-600 mb-3", children: "What This Report IS:" }),
53189
53187
  /* @__PURE__ */ jsxRuntime.jsxs("ul", { className: "text-slate-700 space-y-2 text-sm", children: [
@@ -53296,23 +53294,21 @@ const ReportBuilder = ({
53296
53294
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-slate-900", children: (/* @__PURE__ */ new Date()).toLocaleDateString() })
53297
53295
  ] })
53298
53296
  ] }),
53299
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "p-4 text-left space-y-2", children: [
53300
- /* @__PURE__ */ jsxRuntime.jsx("h1", { className: "text-2xl font-bold text-slate-900 text-left", children: "Executive Summary" }),
53301
- /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-base font-semibold text-slate-900", children: "Why This Assessment Matters" }),
53302
- editExecutiveSummary ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
53303
- /* @__PURE__ */ jsxRuntime.jsx(
53304
- Textarea,
53305
- {
53306
- value: displayExecutiveSummary(clientData),
53307
- onChange: (e) => onConfigChange("executiveSummary", e.target.value),
53308
- placeholder: "Executive summary content...",
53309
- rows: 6,
53310
- className: "resize-none"
53311
- }
53312
- ),
53313
- /* @__PURE__ */ jsxRuntime.jsx(Button$1, { onClick: () => setEditExecutiveSummary(false), children: "Save" })
53314
- ] }) : /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-slate-700 leading-relaxed whitespace-pre-line text-sm", children: displayExecutiveSummary(clientData) }) })
53315
- ] })
53297
+ /* @__PURE__ */ jsxRuntime.jsx("h1", { className: "text-2xl font-bold text-slate-900 text-left mb-2", children: "Executive Summary" }),
53298
+ /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-base font-semibold text-slate-900", children: "Why This Assessment Matters" }),
53299
+ editExecutiveSummary ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
53300
+ /* @__PURE__ */ jsxRuntime.jsx(
53301
+ Textarea,
53302
+ {
53303
+ value: displayExecutiveSummary(clientData),
53304
+ onChange: (e) => onConfigChange("executiveSummary", e.target.value),
53305
+ placeholder: "Executive summary content...",
53306
+ rows: 6,
53307
+ className: "resize-none"
53308
+ }
53309
+ ),
53310
+ /* @__PURE__ */ jsxRuntime.jsx(Button$1, { onClick: () => setEditExecutiveSummary(false), children: "Save" })
53311
+ ] }) : /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-slate-700 leading-relaxed whitespace-pre-line text-sm", children: displayExecutiveSummary(clientData) }) })
53316
53312
  ] }),
53317
53313
  showFinancialImpact && /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: financialSimulationData && Object.keys(financialSimulationData).length > 0 ? /* @__PURE__ */ jsxRuntime.jsx(
53318
53314
  FinancialImpact,
@@ -53336,7 +53332,7 @@ const ReportBuilder = ({
53336
53332
  reportData: { clientData, insuranceHealthData, mspInfo }
53337
53333
  }
53338
53334
  ) : /* @__PURE__ */ jsxRuntime.jsx(Warning, { children: "We can't find an insurance assessment. Are you sure you ran this assessment?" }) }),
53339
- /* @__PURE__ */ jsxRuntime.jsxs("footer", { className: "report-page text-center pt-8 border-t border-slate-200", children: [
53335
+ /* @__PURE__ */ jsxRuntime.jsxs("footer", { className: "text-center pt-8 border-t border-slate-200", children: [
53340
53336
  /* @__PURE__ */ jsxRuntime.jsx("h4", { children: "Professional Recommendation" }),
53341
53337
  /* @__PURE__ */ jsxRuntime.jsxs("p", { className: "text-sm text-slate-500", children: [
53342
53338
  "This assessment uses ",