@flamingo-stack/openframe-frontend-core 0.0.722 → 0.0.723
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/{chunk-VYHCN5NU.cjs → chunk-2MC4DRSC.cjs} +3 -3
- package/dist/{chunk-NMGWNUKB.js → chunk-2VOPQJNR.js} +1 -1
- package/dist/{chunk-JQ55FFIK.cjs → chunk-3RIKO2O2.cjs} +29 -29
- package/dist/{chunk-XR7NVJXS.cjs → chunk-6QTGLBJH.cjs} +3 -3
- package/dist/{chunk-ZMHP4Y6M.js → chunk-7JXCLUU7.js} +2 -2
- package/dist/{chunk-F33RMJOL.js → chunk-A7JPMNHF.js} +5 -5
- package/dist/{chunk-65C4WHG4.js → chunk-F6JAGSKV.js} +3 -3
- package/dist/{chunk-KBPGSPXQ.js → chunk-G6YNPBWV.js} +2208 -2183
- package/dist/{chunk-DX3W7DPC.js → chunk-GRDJR2Q7.js} +1 -1
- package/dist/{chunk-VU7RU3LL.cjs → chunk-GYUFKNOQ.cjs} +2 -2
- package/dist/{chunk-E7NIZXDT.js → chunk-IIBTYCEN.js} +1 -1
- package/dist/{chunk-IITZ6JSC.cjs → chunk-JENNI7XU.cjs} +28 -3
- package/dist/{chunk-IF72N4PE.js → chunk-JL7AHSFE.js} +5 -5
- package/dist/{chunk-GAFK3WNT.cjs → chunk-KSADTFNZ.cjs} +32 -32
- package/dist/{chunk-VV5INIQB.cjs → chunk-KSZRALRL.cjs} +3 -3
- package/dist/{chunk-KWBH63GV.cjs → chunk-KY4WQYYG.cjs} +17 -17
- package/dist/{chunk-DWSBTGKT.cjs → chunk-MWLVYYRX.cjs} +349 -324
- package/dist/{chunk-VSYQJCNR.js → chunk-N4VCU6XP.js} +1 -1
- package/dist/{chunk-VC7COEWF.cjs → chunk-NESUUHPV.cjs} +74 -74
- package/dist/{chunk-GYSTZD6X.cjs → chunk-OHC2MPUO.cjs} +33 -33
- package/dist/{chunk-AWWLEYAU.js → chunk-OVG6MV3X.js} +5 -5
- package/dist/{chunk-P7Y626YJ.cjs → chunk-OWRD2GZU.cjs} +160 -160
- package/dist/{chunk-ZHC6MDGF.cjs → chunk-P7MDECYI.cjs} +41 -41
- package/dist/{chunk-7UZ2JZJY.js → chunk-PKS2QQJU.js} +27 -2
- package/dist/{chunk-HA2ASGJM.js → chunk-QBXEF7D5.js} +3 -3
- package/dist/{chunk-ETQVXIYW.js → chunk-SBCJFJ6Q.js} +3 -3
- package/dist/{chunk-MJ4SXOG2.cjs → chunk-TDSLKKX7.cjs} +16 -16
- package/dist/{chunk-6HRQLM6T.cjs → chunk-VGXAZEQP.cjs} +13 -13
- package/dist/{chunk-BUDZWXRG.js → chunk-VIFVSFYY.js} +1 -1
- package/dist/{chunk-XJYAUIOL.cjs → chunk-WSMOTZRJ.cjs} +11 -11
- package/dist/{chunk-I3UUMRO7.js → chunk-WVA7SCLY.js} +1 -1
- package/dist/{chunk-BCU6UUNQ.js → chunk-XTG7W75B.js} +4 -4
- package/dist/{chunk-5K6YKRP5.cjs → chunk-Y5H3M7OM.cjs} +10 -10
- package/dist/{chunk-SZ3CBFSH.js → chunk-YGIUWQEN.js} +6 -6
- package/dist/{chunk-RVQV6J5K.cjs → chunk-YQOJOW2Z.cjs} +61 -61
- package/dist/{chunk-SZF7ENIW.js → chunk-YUSA7IPD.js} +3 -3
- package/dist/{cloud-tenants-5NIC5VXK.cjs → cloud-tenants-3TVX7U23.cjs} +4 -4
- package/dist/{cloud-tenants-4Z36KWSX.js → cloud-tenants-N6KV2T7X.js} +3 -3
- package/dist/components/case-studies/index.cjs +17 -17
- package/dist/components/case-studies/index.js +4 -4
- package/dist/components/chat/index.cjs +3 -3
- package/dist/components/chat/index.js +2 -2
- package/dist/components/contact/index.cjs +5 -5
- package/dist/components/contact/index.js +4 -4
- package/dist/components/docs/index.cjs +8 -8
- package/dist/components/docs/index.js +7 -7
- package/dist/components/embeds/index.cjs +5 -5
- package/dist/components/embeds/index.js +4 -4
- package/dist/components/faq/index.cjs +5 -5
- package/dist/components/faq/index.js +4 -4
- package/dist/components/features/index.cjs +4 -4
- package/dist/components/features/index.js +3 -3
- package/dist/components/help-center-pages/index.cjs +118 -114
- package/dist/components/help-center-pages/index.js +44 -40
- package/dist/components/help-center-pages/trust-center-page.d.ts +34 -1
- package/dist/components/help-center-pages/trust-center-page.d.ts.map +1 -1
- package/dist/components/help-center-pages/trust-center-sections.d.ts +1 -1
- package/dist/components/help-center-pages/trust-center-sections.d.ts.map +1 -1
- package/dist/components/index.cjs +54 -52
- package/dist/components/index.js +17 -15
- package/dist/components/meeting-scheduler/index.cjs +21 -21
- package/dist/components/meeting-scheduler/index.js +3 -3
- package/dist/components/navigation/index.cjs +7 -7
- package/dist/components/navigation/index.js +6 -6
- package/dist/components/onboarding-guides/index.cjs +7 -7
- package/dist/components/onboarding-guides/index.js +6 -6
- package/dist/components/product-demo/index.cjs +6 -6
- package/dist/components/product-demo/index.js +6 -6
- package/dist/components/related-content/index.cjs +3 -3
- package/dist/components/related-content/index.js +2 -2
- package/dist/components/tickets/index.cjs +8 -8
- package/dist/components/tickets/index.js +7 -7
- package/dist/components/ui/data-attribution.d.ts +3 -1
- package/dist/components/ui/data-attribution.d.ts.map +1 -1
- package/dist/components/ui/download-button.d.ts +19 -0
- package/dist/components/ui/download-button.d.ts.map +1 -0
- package/dist/components/ui/index.cjs +6 -4
- package/dist/components/ui/index.d.ts +1 -0
- package/dist/components/ui/index.d.ts.map +1 -1
- package/dist/components/ui/index.js +5 -3
- package/dist/{devices-2TK3LAKM.js → devices-275UZZUS.js} +3 -3
- package/dist/{devices-7IKT72DK.cjs → devices-MAALZ7DX.cjs} +5 -5
- package/dist/index.cjs +16 -8
- package/dist/index.js +15 -7
- package/dist/{knowledge-3GJ4MU3V.js → knowledge-THXC2KC3.js} +3 -3
- package/dist/{knowledge-HYSEV35H.cjs → knowledge-YMMULPPK.cjs} +5 -5
- package/dist/{logs-TATVM62H.js → logs-GM2XBHYT.js} +3 -3
- package/dist/{logs-ZX3NADQC.cjs → logs-IBUKQOHS.cjs} +12 -12
- package/dist/{policies-J4FSDKPI.cjs → policies-J5GJXD6G.cjs} +8 -8
- package/dist/{policies-MRRKLF4Q.js → policies-NKMRK6RR.js} +3 -3
- package/dist/{software-update-KM46WUVQ.js → software-update-EKKMKDWI.js} +3 -3
- package/dist/{software-update-CXUBWYD2.cjs → software-update-JHC4T4SE.cjs} +7 -7
- package/dist/types/index.cjs +27 -2
- package/dist/types/index.js +25 -3
- package/dist/types/trust-center.d.ts +19 -2
- package/dist/types/trust-center.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/components/help-center-pages/trust-center-page.tsx +50 -29
- package/src/components/help-center-pages/trust-center-sections.tsx +2 -2
- package/src/components/ui/data-attribution.tsx +19 -6
- package/src/components/ui/download-button.tsx +34 -0
- package/src/components/ui/index.ts +1 -0
- package/src/types/trust-center.ts +52 -4
|
@@ -6,42 +6,43 @@ import {
|
|
|
6
6
|
ProductReleasesView,
|
|
7
7
|
ReleaseDetailPage,
|
|
8
8
|
RoadmapView
|
|
9
|
-
} from "../../chunk-
|
|
9
|
+
} from "../../chunk-A7JPMNHF.js";
|
|
10
10
|
import {
|
|
11
11
|
DocsHubPage
|
|
12
|
-
} from "../../chunk-
|
|
13
|
-
import "../../chunk-
|
|
12
|
+
} from "../../chunk-JL7AHSFE.js";
|
|
13
|
+
import "../../chunk-VIFVSFYY.js";
|
|
14
14
|
import "../../chunk-6YBUQAOH.js";
|
|
15
15
|
import {
|
|
16
16
|
FaqDocumentPage,
|
|
17
17
|
FaqSection
|
|
18
|
-
} from "../../chunk-
|
|
18
|
+
} from "../../chunk-QBXEF7D5.js";
|
|
19
19
|
import {
|
|
20
20
|
StickySectionNav,
|
|
21
21
|
useScrollSpy
|
|
22
|
-
} from "../../chunk-
|
|
22
|
+
} from "../../chunk-N4VCU6XP.js";
|
|
23
23
|
import {
|
|
24
24
|
HelpCenterList
|
|
25
|
-
} from "../../chunk-
|
|
25
|
+
} from "../../chunk-YGIUWQEN.js";
|
|
26
26
|
import {
|
|
27
27
|
ContactForm
|
|
28
|
-
} from "../../chunk-
|
|
28
|
+
} from "../../chunk-SBCJFJ6Q.js";
|
|
29
29
|
import {
|
|
30
30
|
DevSectionPage,
|
|
31
31
|
ListEmptyState
|
|
32
|
-
} from "../../chunk-
|
|
32
|
+
} from "../../chunk-F6JAGSKV.js";
|
|
33
33
|
import "../../chunk-K76ACBR3.js";
|
|
34
|
-
import "../../chunk-
|
|
34
|
+
import "../../chunk-WVA7SCLY.js";
|
|
35
35
|
import {
|
|
36
36
|
OnboardingGuideDetailView,
|
|
37
37
|
OnboardingGuidesCatalogView
|
|
38
|
-
} from "../../chunk-
|
|
39
|
-
import "../../chunk-
|
|
40
|
-
import "../../chunk-
|
|
38
|
+
} from "../../chunk-OVG6MV3X.js";
|
|
39
|
+
import "../../chunk-2VOPQJNR.js";
|
|
40
|
+
import "../../chunk-YUSA7IPD.js";
|
|
41
41
|
import {
|
|
42
42
|
CommandBox,
|
|
43
43
|
ComplianceLogo,
|
|
44
44
|
DataAttribution,
|
|
45
|
+
DownloadButton,
|
|
45
46
|
LoadError,
|
|
46
47
|
MobileAppQr,
|
|
47
48
|
PageShell,
|
|
@@ -50,7 +51,7 @@ import {
|
|
|
50
51
|
StatusIndicator,
|
|
51
52
|
StoreBadgeLinks,
|
|
52
53
|
TabNavigation
|
|
53
|
-
} from "../../chunk-
|
|
54
|
+
} from "../../chunk-G6YNPBWV.js";
|
|
54
55
|
import "../../chunk-KS3YLYVL.js";
|
|
55
56
|
import "../../chunk-LQYXMEYF.js";
|
|
56
57
|
import "../../chunk-4JPLYOS6.js";
|
|
@@ -74,7 +75,7 @@ import {
|
|
|
74
75
|
UnifiedSkeleton,
|
|
75
76
|
getFlagFromCountryName,
|
|
76
77
|
useIsHydrated
|
|
77
|
-
} from "../../chunk-
|
|
78
|
+
} from "../../chunk-IIBTYCEN.js";
|
|
78
79
|
import "../../chunk-5D2K7TFT.js";
|
|
79
80
|
import "../../chunk-AFTRPEXO.js";
|
|
80
81
|
import {
|
|
@@ -110,14 +111,16 @@ import {
|
|
|
110
111
|
TRUST_CENTER_SECTIONS,
|
|
111
112
|
TRUST_CENTER_TAGLINE,
|
|
112
113
|
TRUST_CENTER_TITLE,
|
|
113
|
-
isTrustCenterMonitored,
|
|
114
114
|
normalizeTrustControlQuery,
|
|
115
115
|
trustCenterControlsUrl,
|
|
116
116
|
trustCenterDocumentUrl,
|
|
117
|
+
trustCenterMonitoringStatus,
|
|
118
|
+
trustCenterPdfUrl,
|
|
117
119
|
trustFrameworkBadge,
|
|
118
120
|
trustFrameworkMonitoringEntry,
|
|
119
|
-
useSelfFetch
|
|
120
|
-
|
|
121
|
+
useSelfFetch,
|
|
122
|
+
visibleTrustCenterSections
|
|
123
|
+
} from "../../chunk-PKS2QQJU.js";
|
|
121
124
|
import "../../chunk-H3PKYE4N.js";
|
|
122
125
|
import {
|
|
123
126
|
brandLogoForName
|
|
@@ -275,7 +278,7 @@ var FRAMEWORK_ICONS = {
|
|
|
275
278
|
"file-shield": FileShieldIcon
|
|
276
279
|
};
|
|
277
280
|
var BODY_TEXT = "text-h6 text-ods-text-secondary";
|
|
278
|
-
var TRUST_STATUS_ROW_CLASS = "flex flex-col gap-[var(--spacing-system-
|
|
281
|
+
var TRUST_STATUS_ROW_CLASS = "flex flex-col gap-[var(--spacing-system-xsf)] content-md:flex-row content-md:items-center content-md:justify-between";
|
|
279
282
|
var TRUST_BODY_GRID_CLASS = "grid grid-cols-1 gap-[var(--spacing-system-xl)] content-lg:grid-cols-[minmax(0,1fr)_12rem]";
|
|
280
283
|
var TRUST_SECTIONS_COLUMN_CLASS = "flex min-w-0 flex-col gap-[var(--spacing-system-xxl)]";
|
|
281
284
|
var TRUST_SECTION_LEADS = {
|
|
@@ -657,7 +660,7 @@ function TrustCenterSkeleton() {
|
|
|
657
660
|
/* @__PURE__ */ jsx5(UnifiedSkeleton, { className: "size-3 rounded-full" }),
|
|
658
661
|
/* @__PURE__ */ jsx5(TextSkeleton.Body, { className: "w-44" })
|
|
659
662
|
] }),
|
|
660
|
-
/* @__PURE__ */ jsxs5("div", { className: "flex shrink-0 flex-col gap-[var(--spacing-system-
|
|
663
|
+
/* @__PURE__ */ jsxs5("div", { className: "flex shrink-0 flex-col gap-[var(--spacing-system-xsf)] content-sm:flex-row content-sm:items-center content-sm:gap-[var(--spacing-system-sf)]", children: [
|
|
661
664
|
/* @__PURE__ */ jsxs5("div", { className: "flex items-center gap-[var(--spacing-system-xsf)]", children: [
|
|
662
665
|
/* @__PURE__ */ jsx5(UnifiedSkeleton, { className: "size-4 rounded" }),
|
|
663
666
|
/* @__PURE__ */ jsx5(TextSkeleton.Body, { className: "w-36" })
|
|
@@ -678,18 +681,6 @@ function TrustCenterSkeleton() {
|
|
|
678
681
|
|
|
679
682
|
// src/components/help-center-pages/trust-center-page.tsx
|
|
680
683
|
import { Fragment as Fragment2, jsx as jsx6, jsxs as jsxs6 } from "react/jsx-runtime";
|
|
681
|
-
function visibleSections(data) {
|
|
682
|
-
const hasContent = {
|
|
683
|
-
ai: data.aiPractices.length > 0,
|
|
684
|
-
compliance: data.frameworks.length > 0,
|
|
685
|
-
controls: data.controlDomains.length > 0,
|
|
686
|
-
documents: data.documents.length > 0,
|
|
687
|
-
subprocessors: data.subprocessors.length > 0,
|
|
688
|
-
faq: data.faqs.length > 0,
|
|
689
|
-
contact: true
|
|
690
|
-
};
|
|
691
|
-
return TRUST_CENTER_SECTIONS.filter((section) => hasContent[section.id]);
|
|
692
|
-
}
|
|
693
684
|
function controlsSeed(data) {
|
|
694
685
|
const first = data.controlDomains[0] ?? null;
|
|
695
686
|
return {
|
|
@@ -702,9 +693,8 @@ function controlsSeed(data) {
|
|
|
702
693
|
}
|
|
703
694
|
var MONITORING_CLOCK_TICK_MS = 6e4;
|
|
704
695
|
function monitoringStatus(data, hydrated, nowMs) {
|
|
705
|
-
if (
|
|
706
|
-
|
|
707
|
-
return isTrustCenterMonitored(data, nowMs) ? { status: "success", label: "Controls continuously monitored" } : { status: "pending", label: "Monitoring paused" };
|
|
696
|
+
if (data.connected && !hydrated) return { status: "missing", label: "Checking monitoring status" };
|
|
697
|
+
return trustCenterMonitoringStatus(data, nowMs);
|
|
708
698
|
}
|
|
709
699
|
function TrustCenterPage({
|
|
710
700
|
endpoint = TRUST_CENTER_API_PATH,
|
|
@@ -713,7 +703,8 @@ function TrustCenterPage({
|
|
|
713
703
|
backButton = false,
|
|
714
704
|
title = TRUST_CENTER_TITLE,
|
|
715
705
|
subtitle = TRUST_CENTER_TAGLINE,
|
|
716
|
-
ask
|
|
706
|
+
ask,
|
|
707
|
+
beforeFaq
|
|
717
708
|
}) {
|
|
718
709
|
const { data, isLoading, error, reload } = useSelfFetch(endpoint, {
|
|
719
710
|
initialData,
|
|
@@ -734,7 +725,7 @@ function TrustCenterPage({
|
|
|
734
725
|
open: false,
|
|
735
726
|
documentTitle: null
|
|
736
727
|
});
|
|
737
|
-
const sections = useMemo(() => data ?
|
|
728
|
+
const sections = useMemo(() => data ? visibleTrustCenterSections(data) : [], [data]);
|
|
738
729
|
const { activeSection, handleSectionClick } = useScrollSpy(sections, {
|
|
739
730
|
syncHash: true,
|
|
740
731
|
headerOffset: STICKY_HEADER_OFFSET_PX
|
|
@@ -746,6 +737,7 @@ function TrustCenterPage({
|
|
|
746
737
|
const closeRequest = useCallback(() => setRequest((current) => ({ ...current, open: false })), []);
|
|
747
738
|
const hasGatedDocuments = data?.documents.some((document) => document.access === "request") ?? false;
|
|
748
739
|
const actions = hasGatedDocuments ? [{ label: "Request access", variant: "accent", onClick: () => openRequest(null) }] : void 0;
|
|
740
|
+
const download = /* @__PURE__ */ jsx6(DownloadButton, { label: "Download PDF", href: trustCenterPdfUrl(endpoint) });
|
|
749
741
|
const views = {
|
|
750
742
|
ai: {
|
|
751
743
|
lead: TRUST_SECTION_LEADS.ai,
|
|
@@ -777,6 +769,9 @@ function TrustCenterPage({
|
|
|
777
769
|
faq: { render: (d) => /* @__PURE__ */ jsx6(FaqSection, { initialFaqs: d.faqs, heading: null, ask }) },
|
|
778
770
|
contact: { render: () => /* @__PURE__ */ jsx6(ContactSection, { onContact: () => openRequest(null) }) }
|
|
779
771
|
};
|
|
772
|
+
const faqSection = sections.find((section) => section.id === "faq");
|
|
773
|
+
const faqLast = Boolean(beforeFaq) && Boolean(faqSection);
|
|
774
|
+
const columnSections = faqLast ? sections.filter((section) => section.id !== "faq") : sections;
|
|
780
775
|
let body;
|
|
781
776
|
if (error && !data) {
|
|
782
777
|
body = /* @__PURE__ */ jsx6(LoadError, { message: "Could not load the trust center", onRetry: reload });
|
|
@@ -800,12 +795,13 @@ function TrustCenterPage({
|
|
|
800
795
|
}
|
|
801
796
|
) : void 0,
|
|
802
797
|
source: data.dataSource.name,
|
|
803
|
-
lastUpdated: data.syncedAt
|
|
798
|
+
lastUpdated: data.syncedAt,
|
|
799
|
+
action: download
|
|
804
800
|
}
|
|
805
|
-
) :
|
|
801
|
+
) : download
|
|
806
802
|
] }),
|
|
807
803
|
/* @__PURE__ */ jsxs6("div", { className: TRUST_BODY_GRID_CLASS, children: [
|
|
808
|
-
/* @__PURE__ */ jsx6("div", { className: TRUST_SECTIONS_COLUMN_CLASS, children:
|
|
804
|
+
/* @__PURE__ */ jsx6("div", { className: TRUST_SECTIONS_COLUMN_CLASS, children: columnSections.map((section) => {
|
|
809
805
|
const view = views[section.id];
|
|
810
806
|
return /* @__PURE__ */ jsx6(TrustSection, { id: section.id, title: section.label, lead: view.lead, children: view.render(data) }, section.id);
|
|
811
807
|
}) }),
|
|
@@ -829,7 +825,15 @@ function TrustCenterPage({
|
|
|
829
825
|
)
|
|
830
826
|
] });
|
|
831
827
|
}
|
|
832
|
-
return /* @__PURE__ */
|
|
828
|
+
return /* @__PURE__ */ jsxs6(Fragment2, { children: [
|
|
829
|
+
/* @__PURE__ */ jsx6(TrustCenterChrome, { shell, title, subtitle, backButton, actions, children: body }),
|
|
830
|
+
beforeFaq,
|
|
831
|
+
faqLast && faqSection && data ? (
|
|
832
|
+
// The page's own content box at its FULL width (no section-rail column): a closing FAQ takes the
|
|
833
|
+
// same space the FAQ block takes at the foot of every other page.
|
|
834
|
+
/* @__PURE__ */ jsx6("div", { className: shell ? "bg-ods-bg" : void 0, children: /* @__PURE__ */ jsx6("div", { className: shell ? "page-shell-content mx-auto max-w-[1920px]" : "page-shell-content", children: /* @__PURE__ */ jsx6(TrustSection, { id: faqSection.id, title: faqSection.label, lead: views.faq.lead, children: views.faq.render(data) }) }) })
|
|
835
|
+
) : null
|
|
836
|
+
] });
|
|
833
837
|
}
|
|
834
838
|
function TrustCenterChrome({
|
|
835
839
|
shell,
|
|
@@ -1,3 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `<TrustCenterPage>` — the full public trust center (Vanta-fed, hub-projected).
|
|
3
|
+
*
|
|
4
|
+
* ONE page, not tabs (2026 trust-center practice: buyers skim and Ctrl-F, and a
|
|
5
|
+
* questionnaire needs a deep link per section): hero with the monitoring status
|
|
6
|
+
* (with the page's PDF as a quiet link at its end) and the Request access action, then anchored sections in reading order
|
|
7
|
+
* (`TRUST_CENTER_SECTIONS`: AI & data use → compliance → controls → documents →
|
|
8
|
+
* subprocessors → FAQ → questions) with a sticky section rail on desktop
|
|
9
|
+
* (`StickySectionNav` + `useScrollSpy`, the vendor-page / DocViewer pattern).
|
|
10
|
+
* Built ONLY from existing lib components (see `trust-center-sections.tsx`); the
|
|
11
|
+
* chrome is the canonical `PageShell` + frozen `PageLayout`.
|
|
12
|
+
*
|
|
13
|
+
* DATA: `useSelfFetch` against `endpoint` (default `TRUST_CENTER_API_PATH`;
|
|
14
|
+
* embedders pass their `/content` proxy path). `initialData` (hub SSR) skips the
|
|
15
|
+
* first fetch; a visible tab re-validates after `TRUST_CENTER_CACHE_SECONDS`.
|
|
16
|
+
* CONTROLS are answered by the server (`endpoint/controls?domain=&q=`) per tab
|
|
17
|
+
* and per search; the page never filters, it only highlights what came back.
|
|
18
|
+
*
|
|
19
|
+
* MONITORING is derived on the client AFTER HYDRATION from `syncedAt` +
|
|
20
|
+
* `monitoredWindowMs` (`isTrustCenterMonitored`), against a clock re-read every
|
|
21
|
+
* time the data changes — so a long-open tab flips to "Monitoring paused" on
|
|
22
|
+
* revalidation. Before hydration the status is NEUTRAL (never a claim that
|
|
23
|
+
* flips). The subtitle is the brand-neutral `TRUST_CENTER_TAGLINE` unless the
|
|
24
|
+
* host overrides it.
|
|
25
|
+
*/
|
|
26
|
+
import { type ReactNode } from 'react';
|
|
1
27
|
import { type TrustCenterPublic } from '../../types/trust-center';
|
|
2
28
|
import { type FaqSectionProps } from '../faq/faq-section';
|
|
3
29
|
export interface TrustCenterPageProps {
|
|
@@ -19,8 +45,15 @@ export interface TrustCenterPageProps {
|
|
|
19
45
|
subtitle?: string;
|
|
20
46
|
/** The FAQ section's "ask the assistant" card (`FaqSection`'s `ask`): the host states its topic. Absent: no card. */
|
|
21
47
|
ask?: FaqSectionProps['ask'];
|
|
48
|
+
/**
|
|
49
|
+
* Host content shown after the trust sections and BEFORE the FAQ (the hub's
|
|
50
|
+
* own "why we build in the open" sections). The FAQ is the last thing on a
|
|
51
|
+
* page, so with this the page draws: trust sections, this content at the
|
|
52
|
+
* page's full width, then the FAQ. Absent: the FAQ closes the sections column.
|
|
53
|
+
*/
|
|
54
|
+
beforeFaq?: ReactNode;
|
|
22
55
|
}
|
|
23
|
-
export declare function TrustCenterPage({ endpoint, initialData, shell, backButton, title, subtitle, ask, }: TrustCenterPageProps): import("react").JSX.Element;
|
|
56
|
+
export declare function TrustCenterPage({ endpoint, initialData, shell, backButton, title, subtitle, ask, beforeFaq, }: TrustCenterPageProps): import("react").JSX.Element;
|
|
24
57
|
/**
|
|
25
58
|
* The whole page while a host loads the data itself (the hub's admin preview):
|
|
26
59
|
* the SAME chrome and the same body skeleton `TrustCenterPage` shows while it
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trust-center-page.d.ts","sourceRoot":"","sources":["../../../src/components/help-center-pages/trust-center-page.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"trust-center-page.d.ts","sourceRoot":"","sources":["../../../src/components/help-center-pages/trust-center-page.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,EAA6C,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAKlF,OAAO,EAUL,KAAK,iBAAiB,EAEvB,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EAAc,KAAK,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAyBtE,MAAM,WAAW,oBAAoB;IACnC,+EAA+E;IAC/E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,+EAA+E;IAC/E,WAAW,CAAC,EAAE,iBAAiB,CAAC;IAChC;gFAC4E;IAC5E,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,sFAAsF;IACtF,UAAU,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,KAAK,CAAC;IACvD,gDAAgD;IAChD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oGAAoG;IACpG,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,qHAAqH;IACrH,GAAG,CAAC,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC;IAC7B;;;;;OAKG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB;AA0CD,wBAAgB,eAAe,CAAC,EAC9B,QAAgC,EAChC,WAAW,EACX,KAAY,EACZ,UAAkB,EAClB,KAA0B,EAC1B,QAA+B,EAC/B,GAAG,EACH,SAAS,GACV,EAAE,oBAAoB,+BAsLtB;AAuCD;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,EACtC,KAAY,EACZ,UAAkB,EAClB,KAA0B,EAC1B,QAA+B,GAChC,EAAE,IAAI,CAAC,oBAAoB,EAAE,OAAO,GAAG,YAAY,GAAG,OAAO,GAAG,UAAU,CAAC,+BAM3E"}
|
|
@@ -18,7 +18,7 @@ import { type TrustCenterAiPractice, type TrustCenterControlsPage, type TrustCen
|
|
|
18
18
|
* skeleton cannot drift from what replaces it: the status row, then the sections
|
|
19
19
|
* beside the section rail.
|
|
20
20
|
*/
|
|
21
|
-
export declare const TRUST_STATUS_ROW_CLASS = "flex flex-col gap-[var(--spacing-system-
|
|
21
|
+
export declare const TRUST_STATUS_ROW_CLASS = "flex flex-col gap-[var(--spacing-system-xsf)] content-md:flex-row content-md:items-center content-md:justify-between";
|
|
22
22
|
export declare const TRUST_BODY_GRID_CLASS = "grid grid-cols-1 gap-[var(--spacing-system-xl)] content-lg:grid-cols-[minmax(0,1fr)_12rem]";
|
|
23
23
|
export declare const TRUST_SECTIONS_COLUMN_CLASS = "flex min-w-0 flex-col gap-[var(--spacing-system-xxl)]";
|
|
24
24
|
/** Each section's one-line lead under its heading (the page and its skeleton read the same copy). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trust-center-sections.d.ts","sourceRoot":"","sources":["../../../src/components/help-center-pages/trust-center-sections.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAA2B,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAGhE,OAAO,EAOL,KAAK,qBAAqB,EAE1B,KAAK,uBAAuB,EAC5B,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,EACzB,KAAK,uBAAuB,EAE7B,MAAM,0BAA0B,CAAC;AAkClC;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,
|
|
1
|
+
{"version":3,"file":"trust-center-sections.d.ts","sourceRoot":"","sources":["../../../src/components/help-center-pages/trust-center-sections.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAA2B,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAGhE,OAAO,EAOL,KAAK,qBAAqB,EAE1B,KAAK,uBAAuB,EAC5B,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,EACzB,KAAK,uBAAuB,EAE7B,MAAM,0BAA0B,CAAC;AAkClC;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,yHACqF,CAAC;AACzH,eAAO,MAAM,qBAAqB,+FAC4D,CAAC;AAC/F,eAAO,MAAM,2BAA2B,0DAA0D,CAAC;AAEnG,qGAAqG;AACrG,eAAO,MAAM,mBAAmB,EAAE,OAAO,CAAC,MAAM,CAAC,oBAAoB,EAAE,MAAM,CAAC,CAM7E,CAAC;AAWF,yEAAyE;AACzE,wBAAgB,YAAY,CAAC,EAC3B,EAAE,EACF,KAAK,EACL,IAAI,EACJ,QAAQ,GACT,EAAE;IACD,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,QAAQ,EAAE,SAAS,CAAC;CACrB,+BAkBA;AAMD;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,EAAE,SAAS,EAAE,EAAE;IAAE,SAAS,EAAE,qBAAqB,EAAE,CAAA;CAAE,+BAkB9E;AAMD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,UAAU,EAAE,EAAE;IAAE,UAAU,EAAE,oBAAoB,EAAE,CAAA;CAAE,+BA0BvF;AAkED;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,uBAAuB,CAAA;CAAE,+BAkFtG;AAMD,wBAAgB,gBAAgB,CAAC,EAC/B,SAAS,EACT,WAAW,EACX,SAAS,GACV,EAAE;IACD,SAAS,EAAE,mBAAmB,EAAE,CAAC;IACjC,kGAAkG;IAClG,WAAW,EAAE,CAAC,QAAQ,EAAE,mBAAmB,KAAK,MAAM,GAAG,IAAI,CAAC;IAC9D,oEAAoE;IACpE,SAAS,EAAE,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;CACnD,+BA0CA;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,EACnC,IAAI,EACJ,aAAa,EACb,QAAQ,EACR,OAAO,GACR,EAAE;IACD,IAAI,EAAE,OAAO,CAAC;IACd,6GAA6G;IAC7G,QAAQ,EAAE,MAAM,CAAC;IACjB,gFAAgF;IAChF,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB,+BAiCA;AA8BD,wBAAgB,oBAAoB,CAAC,EAAE,aAAa,EAAE,EAAE;IAAE,aAAa,EAAE,uBAAuB,EAAE,CAAA;CAAE,+BA4BnG;AAMD;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,EAAE,SAAS,EAAE,EAAE;IAAE,SAAS,EAAE,MAAM,IAAI,CAAA;CAAE,+BA8BtE;AAoGD;;;;;GAKG;AACH,wBAAgB,mBAAmB,gCAmClC"}
|