@flamingo-stack/openframe-frontend-core 0.0.285 → 0.0.286
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-3MCHAFHB.js +89 -0
- package/dist/chunk-3MCHAFHB.js.map +1 -0
- package/dist/{chunk-IMNGGLKL.js → chunk-3ZXUQQL4.js} +2 -2
- package/dist/{chunk-44ZFLMYC.cjs → chunk-4WACBTZU.cjs} +30 -30
- package/dist/{chunk-44ZFLMYC.cjs.map → chunk-4WACBTZU.cjs.map} +1 -1
- package/dist/{chunk-23UOJUDF.js → chunk-5BTZOVDQ.js} +4 -4
- package/dist/chunk-5KD3S25X.cjs +312 -0
- package/dist/chunk-5KD3S25X.cjs.map +1 -0
- package/dist/chunk-6N26CURS.cjs +2417 -0
- package/dist/chunk-6N26CURS.cjs.map +1 -0
- package/dist/{chunk-XX7P4IL2.js → chunk-7NM7DEUK.js} +4 -143
- package/dist/chunk-7NM7DEUK.js.map +1 -0
- package/dist/chunk-BBZ7AX5H.cjs +290 -0
- package/dist/chunk-BBZ7AX5H.cjs.map +1 -0
- package/dist/chunk-C6SCWXDP.js +290 -0
- package/dist/chunk-C6SCWXDP.js.map +1 -0
- package/dist/{chunk-GVSTRN36.cjs → chunk-D3LEFMOA.cjs} +3 -3
- package/dist/{chunk-GVSTRN36.cjs.map → chunk-D3LEFMOA.cjs.map} +1 -1
- package/dist/{chunk-P45Q4QCU.cjs → chunk-D5YY5U6J.cjs} +19 -15
- package/dist/chunk-D5YY5U6J.cjs.map +1 -0
- package/dist/chunk-DDAT4RKX.js +2417 -0
- package/dist/chunk-DDAT4RKX.js.map +1 -0
- package/dist/{chunk-PVXCVPJD.cjs → chunk-EI4WALN2.cjs} +67 -1626
- package/dist/chunk-EI4WALN2.cjs.map +1 -0
- package/dist/{chunk-ZIODAAFY.cjs → chunk-EL5GCMPU.cjs} +20 -159
- package/dist/chunk-EL5GCMPU.cjs.map +1 -0
- package/dist/{chunk-VQW7CEGS.js → chunk-FSBDVT6R.js} +1831 -3672
- package/dist/chunk-FSBDVT6R.js.map +1 -0
- package/dist/{chunk-DPKUSBQH.cjs → chunk-GDF2R2ER.cjs} +1073 -2914
- package/dist/chunk-GDF2R2ER.cjs.map +1 -0
- package/dist/chunk-HLQW7MWJ.cjs +1594 -0
- package/dist/chunk-HLQW7MWJ.cjs.map +1 -0
- package/dist/chunk-I6ZPGKZ2.cjs +151 -0
- package/dist/chunk-I6ZPGKZ2.cjs.map +1 -0
- package/dist/{chunk-J66U3LPZ.cjs → chunk-KBKZYJRI.cjs} +33 -332
- package/dist/chunk-KBKZYJRI.cjs.map +1 -0
- package/dist/{chunk-USPATRSC.js → chunk-N6ZM5PYZ.js} +45 -344
- package/dist/chunk-N6ZM5PYZ.js.map +1 -0
- package/dist/{chunk-RGALV4UX.js → chunk-POKKCWKF.js} +3 -82
- package/dist/chunk-POKKCWKF.js.map +1 -0
- package/dist/{chunk-XDI5JSWB.cjs → chunk-QCKN37OP.cjs} +45 -41
- package/dist/chunk-QCKN37OP.cjs.map +1 -0
- package/dist/{chunk-KNCDUWY2.js → chunk-QF2X6PTD.js} +10 -6
- package/dist/{chunk-KNCDUWY2.js.map → chunk-QF2X6PTD.js.map} +1 -1
- package/dist/{chunk-Z3V2SGQZ.js → chunk-R2KT5GDD.js} +324 -1883
- package/dist/chunk-R2KT5GDD.js.map +1 -0
- package/dist/{chunk-RJUGNL2A.cjs → chunk-RQ6RTBKF.cjs} +16 -12
- package/dist/chunk-RQ6RTBKF.cjs.map +1 -0
- package/dist/chunk-TFSYSWPS.cjs +89 -0
- package/dist/chunk-TFSYSWPS.cjs.map +1 -0
- package/dist/chunk-TYZEMPPH.js +312 -0
- package/dist/chunk-TYZEMPPH.js.map +1 -0
- package/dist/{chunk-O5N57CRV.js → chunk-VCQ3CTYK.js} +12 -8
- package/dist/{chunk-O5N57CRV.js.map → chunk-VCQ3CTYK.js.map} +1 -1
- package/dist/chunk-VRSXJ5QJ.js +1599 -0
- package/dist/chunk-VRSXJ5QJ.js.map +1 -0
- package/dist/{chunk-53CFL7PH.js → chunk-XQL4WDML.js} +11 -7
- package/dist/{chunk-53CFL7PH.js.map → chunk-XQL4WDML.js.map} +1 -1
- package/dist/chunk-Y4JNA4W6.cjs +1599 -0
- package/dist/chunk-Y4JNA4W6.cjs.map +1 -0
- package/dist/{chunk-ZSUNQJRO.cjs → chunk-YETA25JW.cjs} +2 -81
- package/dist/chunk-YETA25JW.cjs.map +1 -0
- package/dist/chunk-YVB3VDIQ.js +1594 -0
- package/dist/chunk-YVB3VDIQ.js.map +1 -0
- package/dist/chunk-ZLN6SM2U.js +151 -0
- package/dist/chunk-ZLN6SM2U.js.map +1 -0
- package/dist/components/chat/chat-attachment-bar.d.ts.map +1 -1
- package/dist/components/chat/index.cjs +12 -6
- package/dist/components/chat/index.cjs.map +1 -1
- package/dist/components/chat/index.js +45 -39
- package/dist/components/contact/index.cjs +11 -7
- package/dist/components/contact/index.cjs.map +1 -1
- package/dist/components/contact/index.js +10 -6
- package/dist/components/docs/doc-navigation-context.d.ts +39 -0
- package/dist/components/docs/doc-navigation-context.d.ts.map +1 -0
- package/dist/components/docs/doc-viewer.d.ts +66 -0
- package/dist/components/docs/doc-viewer.d.ts.map +1 -0
- package/dist/components/docs/index.cjs +34 -0
- package/dist/components/docs/index.cjs.map +1 -0
- package/dist/components/docs/index.d.ts +8 -0
- package/dist/components/docs/index.d.ts.map +1 -0
- package/dist/components/docs/index.js +34 -0
- package/dist/components/docs/index.js.map +1 -0
- package/dist/components/docs/use-document-tree.d.ts +41 -0
- package/dist/components/docs/use-document-tree.d.ts.map +1 -0
- package/dist/components/docs/use-scroll-spy.d.ts +16 -0
- package/dist/components/docs/use-scroll-spy.d.ts.map +1 -0
- package/dist/components/embeds/embed-iframe.d.ts +29 -0
- package/dist/components/embeds/embed-iframe.d.ts.map +1 -0
- package/dist/components/embeds/figma-embed.d.ts +27 -0
- package/dist/components/embeds/figma-embed.d.ts.map +1 -0
- package/dist/components/embeds/google-sheets-viewer.d.ts +8 -0
- package/dist/components/embeds/google-sheets-viewer.d.ts.map +1 -0
- package/dist/components/embeds/index.cjs +37 -0
- package/dist/components/embeds/index.cjs.map +1 -0
- package/dist/components/embeds/index.d.ts +9 -0
- package/dist/components/embeds/index.d.ts.map +1 -0
- package/dist/components/embeds/index.js +37 -0
- package/dist/components/embeds/index.js.map +1 -0
- package/dist/components/embeds/pdf-viewer.d.ts +10 -0
- package/dist/components/embeds/pdf-viewer.d.ts.map +1 -0
- package/dist/components/faq/index.cjs +12 -8
- package/dist/components/faq/index.cjs.map +1 -1
- package/dist/components/faq/index.js +11 -7
- package/dist/components/features/index.cjs +10 -6
- package/dist/components/features/index.cjs.map +1 -1
- package/dist/components/features/index.js +9 -5
- package/dist/components/index.cjs +247 -1120
- package/dist/components/index.cjs.map +1 -1
- package/dist/components/index.d.ts +2 -0
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +645 -1518
- package/dist/components/index.js.map +1 -1
- package/dist/components/navigation/index.cjs +15 -6
- package/dist/components/navigation/index.cjs.map +1 -1
- package/dist/components/navigation/index.d.ts +2 -0
- package/dist/components/navigation/index.d.ts.map +1 -1
- package/dist/components/navigation/index.js +15 -6
- package/dist/components/navigation/multi-level-navigation.d.ts +28 -0
- package/dist/components/navigation/multi-level-navigation.d.ts.map +1 -0
- package/dist/components/onboarding-guides/index.cjs +34 -29
- package/dist/components/onboarding-guides/index.cjs.map +1 -1
- package/dist/components/onboarding-guides/index.js +13 -8
- package/dist/components/onboarding-guides/index.js.map +1 -1
- package/dist/components/related-content/index.cjs +12 -8
- package/dist/components/related-content/index.cjs.map +1 -1
- package/dist/components/related-content/index.js +11 -7
- package/dist/components/tickets/index.cjs +75 -70
- package/dist/components/tickets/index.cjs.map +1 -1
- package/dist/components/tickets/index.js +16 -11
- package/dist/components/tickets/index.js.map +1 -1
- package/dist/components/ui/index.cjs +12 -6
- package/dist/components/ui/index.cjs.map +1 -1
- package/dist/components/ui/index.js +65 -59
- package/dist/embed-shims/index.cjs +3 -3
- package/dist/embed-shims/index.cjs.map +1 -1
- package/dist/embed-shims/index.js +8 -8
- package/dist/hooks/index.cjs +6 -3
- package/dist/hooks/index.cjs.map +1 -1
- package/dist/hooks/index.js +7 -4
- package/dist/index.cjs +62 -6
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +257 -201
- package/dist/types/doc-source.cjs +4 -0
- package/dist/types/doc-source.cjs.map +1 -0
- package/dist/types/doc-source.d.ts +86 -0
- package/dist/types/doc-source.d.ts.map +1 -0
- package/dist/types/doc-source.js +3 -0
- package/dist/types/doc-source.js.map +1 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/utils/doc-path-utils.d.ts +24 -0
- package/dist/utils/doc-path-utils.d.ts.map +1 -0
- package/dist/utils/doc-tree-nav.d.ts +35 -0
- package/dist/utils/doc-tree-nav.d.ts.map +1 -0
- package/dist/utils/embed-url-converters.d.ts +16 -0
- package/dist/utils/embed-url-converters.d.ts.map +1 -0
- package/dist/utils/format.d.ts +9 -0
- package/dist/utils/format.d.ts.map +1 -1
- package/dist/utils/index.cjs +297 -0
- package/dist/utils/index.cjs.map +1 -1
- package/dist/utils/index.d.ts +7 -1
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +276 -1
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/markdown-section-extractor.d.ts +23 -0
- package/dist/utils/markdown-section-extractor.d.ts.map +1 -0
- package/dist/utils/markdown-to-plain.d.ts +32 -0
- package/dist/utils/markdown-to-plain.d.ts.map +1 -0
- package/dist/utils/tree-builder.d.ts +30 -0
- package/dist/utils/tree-builder.d.ts.map +1 -0
- package/package.json +19 -1
- package/src/components/chat/chat-attachment-bar.tsx +6 -11
- package/src/components/docs/doc-navigation-context.tsx +123 -0
- package/src/components/docs/doc-viewer.tsx +345 -0
- package/src/components/docs/index.ts +12 -0
- package/src/components/docs/use-document-tree.ts +427 -0
- package/src/components/docs/use-scroll-spy.ts +93 -0
- package/src/components/embeds/embed-iframe.tsx +103 -0
- package/src/components/embeds/figma-embed.tsx +147 -0
- package/src/components/embeds/google-sheets-viewer.tsx +54 -0
- package/src/components/embeds/index.ts +11 -0
- package/src/components/embeds/pdf-viewer.tsx +64 -0
- package/src/components/index.ts +2 -0
- package/src/components/navigation/index.ts +5 -0
- package/src/components/navigation/multi-level-navigation.tsx +358 -0
- package/src/types/doc-source.ts +88 -0
- package/src/types/index.ts +4 -0
- package/src/utils/doc-path-utils.ts +47 -0
- package/src/utils/doc-tree-nav.ts +111 -0
- package/src/utils/embed-url-converters.ts +77 -0
- package/src/utils/format.ts +16 -0
- package/src/utils/index.ts +11 -0
- package/src/utils/markdown-section-extractor.ts +106 -0
- package/src/utils/markdown-to-plain.ts +69 -0
- package/src/utils/tree-builder.ts +114 -0
- package/dist/chunk-DPKUSBQH.cjs.map +0 -1
- package/dist/chunk-J66U3LPZ.cjs.map +0 -1
- package/dist/chunk-P45Q4QCU.cjs.map +0 -1
- package/dist/chunk-PVXCVPJD.cjs.map +0 -1
- package/dist/chunk-RGALV4UX.js.map +0 -1
- package/dist/chunk-RJUGNL2A.cjs.map +0 -1
- package/dist/chunk-USPATRSC.js.map +0 -1
- package/dist/chunk-VQW7CEGS.js.map +0 -1
- package/dist/chunk-XDI5JSWB.cjs.map +0 -1
- package/dist/chunk-XX7P4IL2.js.map +0 -1
- package/dist/chunk-Z3V2SGQZ.js.map +0 -1
- package/dist/chunk-ZIODAAFY.cjs.map +0 -1
- package/dist/chunk-ZSUNQJRO.cjs.map +0 -1
- /package/dist/{chunk-IMNGGLKL.js.map → chunk-3ZXUQQL4.js.map} +0 -0
- /package/dist/{chunk-23UOJUDF.js.map → chunk-5BTZOVDQ.js.map} +0 -0
|
@@ -1,4 +1,13 @@
|
|
|
1
1
|
"use client";
|
|
2
|
+
import {
|
|
3
|
+
ELAPSED_MS_FIELD,
|
|
4
|
+
HONEYPOT_FIELD,
|
|
5
|
+
ToolTypeValues,
|
|
6
|
+
consumeAccessCode,
|
|
7
|
+
transformPlatformConfigsToOptions,
|
|
8
|
+
validateAccessCode,
|
|
9
|
+
validateAndConsumeAccessCode
|
|
10
|
+
} from "./chunk-TYZEMPPH.js";
|
|
2
11
|
import {
|
|
3
12
|
useRequiredEndpointsRuntime
|
|
4
13
|
} from "./chunk-MJNXIEV2.js";
|
|
@@ -6,19 +15,18 @@ import {
|
|
|
6
15
|
createNatsClient
|
|
7
16
|
} from "./chunk-PHWQLKVE.js";
|
|
8
17
|
import {
|
|
9
|
-
contentFetch
|
|
18
|
+
contentFetch
|
|
19
|
+
} from "./chunk-3MCHAFHB.js";
|
|
20
|
+
import {
|
|
10
21
|
useDebounce
|
|
11
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-POKKCWKF.js";
|
|
12
23
|
import {
|
|
13
24
|
init_next_navigation,
|
|
14
25
|
useRouter,
|
|
15
26
|
useSearchParams
|
|
16
27
|
} from "./chunk-PLJLE4A4.js";
|
|
17
28
|
import {
|
|
18
|
-
|
|
19
|
-
MiamiCyberGangLogoFaceOnly,
|
|
20
|
-
OpenFrameLogo,
|
|
21
|
-
OpenmspLogo
|
|
29
|
+
OpenFrameLogo
|
|
22
30
|
} from "./chunk-V4IIBNTA.js";
|
|
23
31
|
import {
|
|
24
32
|
cn,
|
|
@@ -795,180 +803,6 @@ function useWindowSize() {
|
|
|
795
803
|
|
|
796
804
|
// src/hooks/platform/use-platform-config.ts
|
|
797
805
|
import { useState as useState11, useEffect as useEffect8 } from "react";
|
|
798
|
-
|
|
799
|
-
// src/utils/platform-config.tsx
|
|
800
|
-
import { Globe } from "lucide-react";
|
|
801
|
-
import { jsx } from "react/jsx-runtime";
|
|
802
|
-
var platformIcons = {
|
|
803
|
-
openframe: /* @__PURE__ */ jsx(OpenFrameLogo, { className: "h-5 w-5", lowerPathColor: "#FFC008", upperPathColor: "#ffffff" }),
|
|
804
|
-
openmsp: /* @__PURE__ */ jsx(OpenmspLogo, { className: "h-5 w-5" }),
|
|
805
|
-
flamingo: /* @__PURE__ */ jsx(FlamingoLogo, { className: "h-5 w-5", fill: "#EC4899" }),
|
|
806
|
-
"flamingo-teaser": /* @__PURE__ */ jsx(FlamingoLogo, { className: "h-5 w-5", fill: "#EC4899" }),
|
|
807
|
-
"marketing-hub": /* @__PURE__ */ jsx(FlamingoLogo, { className: "h-5 w-5", fill: "#F357BB" }),
|
|
808
|
-
"product-hub": /* @__PURE__ */ jsx(FlamingoLogo, { className: "h-5 w-5", fill: "#5EA62E" }),
|
|
809
|
-
"revenue-hub": /* @__PURE__ */ jsx(FlamingoLogo, { className: "h-5 w-5", fill: "#FFC008" }),
|
|
810
|
-
"people-hub": /* @__PURE__ */ jsx(FlamingoLogo, { className: "h-5 w-5", fill: "#5EFAF0" }),
|
|
811
|
-
"company-hub": /* @__PURE__ */ jsx(FlamingoLogo, { className: "h-5 w-5", fill: "#f36666" }),
|
|
812
|
-
tmcg: /* @__PURE__ */ jsx(MiamiCyberGangLogoFaceOnly, { className: "h-5 w-5" }),
|
|
813
|
-
universal: /* @__PURE__ */ jsx(Globe, { className: "h-5 w-5 text-[#10B981]" })
|
|
814
|
-
};
|
|
815
|
-
var platformColors = {
|
|
816
|
-
openmsp: "bg-[#3B82F6]",
|
|
817
|
-
openframe: "bg-[#8B5CF6]",
|
|
818
|
-
flamingo: "bg-[#EC4899]",
|
|
819
|
-
"flamingo-teaser": "bg-[#F59E0B]",
|
|
820
|
-
"marketing-hub": "bg-[#F357BB]",
|
|
821
|
-
"product-hub": "bg-[#5EA62E]",
|
|
822
|
-
"revenue-hub": "bg-[#FFC008]",
|
|
823
|
-
"people-hub": "bg-[#5EFAF0]",
|
|
824
|
-
"company-hub": "bg-[#f36666]",
|
|
825
|
-
tmcg: "bg-[#FF6B6B]",
|
|
826
|
-
universal: "bg-[#10B981]"
|
|
827
|
-
};
|
|
828
|
-
var platformDisplayNames = {
|
|
829
|
-
openmsp: "OpenMSP",
|
|
830
|
-
openframe: "OpenFrame",
|
|
831
|
-
flamingo: "Flamingo",
|
|
832
|
-
"flamingo-teaser": "Flamingo Teaser",
|
|
833
|
-
"marketing-hub": "Flamingo Marketing Hub",
|
|
834
|
-
"product-hub": "Flamingo Product Hub",
|
|
835
|
-
"revenue-hub": "Flamingo Revenue Hub",
|
|
836
|
-
"people-hub": "Flamingo People Hub",
|
|
837
|
-
"company-hub": "Flamingo Company Hub",
|
|
838
|
-
tmcg: "TMCG",
|
|
839
|
-
universal: "Universal"
|
|
840
|
-
};
|
|
841
|
-
var platformDescriptions = {
|
|
842
|
-
openmsp: "Comprehensive directory and comparison platform for managed service providers (MSPs) and technology vendors. Reduce vendor costs and discover open-source alternatives.",
|
|
843
|
-
openframe: "AI-driven open-source security operations center (SOC) and endpoint detection platform for MSPs.",
|
|
844
|
-
flamingo: "AI-driven open-source OS for MSPs. Swap bloated vendor tools for open ones. Automate the boring crap. Take your margin back.",
|
|
845
|
-
"flamingo-teaser": "Preview of Flamingo - the AI-driven open-source OS for MSPs.",
|
|
846
|
-
tmcg: "The Miami Cyber Gang - A cybersecurity community focused on education and collaboration.",
|
|
847
|
-
universal: "Cross-platform universal content."
|
|
848
|
-
};
|
|
849
|
-
var platformSlogans = {
|
|
850
|
-
openmsp: "Find Your Perfect MSP Partner",
|
|
851
|
-
openframe: "Open-Source Security Operations",
|
|
852
|
-
flamingo: "Open-Source OS for MSPs",
|
|
853
|
-
"flamingo-teaser": "Coming Soon: Open-Source OS for MSPs",
|
|
854
|
-
tmcg: "Miami Cyber Community",
|
|
855
|
-
universal: "Universal Platform"
|
|
856
|
-
};
|
|
857
|
-
var platformHexColors = {
|
|
858
|
-
openmsp: "#FFC008",
|
|
859
|
-
openframe: "#FFC008",
|
|
860
|
-
flamingo: "#FF6B9D",
|
|
861
|
-
universal: "#FFC008",
|
|
862
|
-
"flamingo-teaser": "#F59E0B",
|
|
863
|
-
"marketing-hub": "#F357BB",
|
|
864
|
-
"product-hub": "#5EA62E",
|
|
865
|
-
"revenue-hub": "#FFC008",
|
|
866
|
-
"people-hub": "#5EFAF0",
|
|
867
|
-
"company-hub": "#f36666",
|
|
868
|
-
tmcg: "#FF6B6B"
|
|
869
|
-
};
|
|
870
|
-
var platformIconNames = {
|
|
871
|
-
openmsp: "openmsp-logo",
|
|
872
|
-
openframe: "openframe-logo",
|
|
873
|
-
flamingo: "flamingo-logo",
|
|
874
|
-
universal: "globe",
|
|
875
|
-
"flamingo-teaser": "flamingo-logo",
|
|
876
|
-
"marketing-hub": "flamingo-logo",
|
|
877
|
-
"product-hub": "flamingo-logo",
|
|
878
|
-
"revenue-hub": "flamingo-logo",
|
|
879
|
-
"people-hub": "flamingo-logo",
|
|
880
|
-
"company-hub": "flamingo-logo",
|
|
881
|
-
tmcg: "tmcg-logo"
|
|
882
|
-
};
|
|
883
|
-
function getDefaultColorForPlatform(platformName) {
|
|
884
|
-
return platformHexColors[platformName] || platformHexColors.universal;
|
|
885
|
-
}
|
|
886
|
-
function getDefaultIconForPlatform(platformName) {
|
|
887
|
-
return platformIconNames[platformName] || platformIconNames.universal;
|
|
888
|
-
}
|
|
889
|
-
function transformPlatformConfigsToOptions(platformConfigs) {
|
|
890
|
-
return platformConfigs.map((platform) => ({
|
|
891
|
-
id: platform.id,
|
|
892
|
-
// Database UUID for matching
|
|
893
|
-
name: platform.name,
|
|
894
|
-
// Platform name enum
|
|
895
|
-
displayName: platform.display_name,
|
|
896
|
-
// Human-readable name
|
|
897
|
-
description: platform.description,
|
|
898
|
-
icon: platformIcons[platform.name] || platformIcons.universal,
|
|
899
|
-
color: platformColors[platform.name] || platformColors.universal
|
|
900
|
-
}));
|
|
901
|
-
}
|
|
902
|
-
function getPlatformIcon(platformName) {
|
|
903
|
-
return platformIcons[platformName] || platformIcons.universal;
|
|
904
|
-
}
|
|
905
|
-
function getPlatformColor(platformName) {
|
|
906
|
-
return platformColors[platformName] || platformColors.universal;
|
|
907
|
-
}
|
|
908
|
-
function getPlatformDisplayName(platformName) {
|
|
909
|
-
return platformDisplayNames[platformName] || platformName;
|
|
910
|
-
}
|
|
911
|
-
function getPlatformDescription(platformName) {
|
|
912
|
-
return platformDescriptions[platformName] || platformName;
|
|
913
|
-
}
|
|
914
|
-
function getPlatformSlogan(platformName) {
|
|
915
|
-
return platformSlogans[platformName] || platformName;
|
|
916
|
-
}
|
|
917
|
-
function getSmallPlatformIcon(platformName) {
|
|
918
|
-
const className = "h-4 w-4 flex-shrink-0";
|
|
919
|
-
switch (platformName) {
|
|
920
|
-
case "openframe":
|
|
921
|
-
return /* @__PURE__ */ jsx(OpenFrameLogo, { className, lowerPathColor: "#FFC008", upperPathColor: "#ffffff" });
|
|
922
|
-
case "openmsp":
|
|
923
|
-
return /* @__PURE__ */ jsx(OpenmspLogo, { className, frontBubbleColor: "#f1f1f1", innerFrontBubbleColor: "#000000", backBubbleColor: "#FFC008" });
|
|
924
|
-
case "flamingo":
|
|
925
|
-
case "flamingo-teaser":
|
|
926
|
-
return /* @__PURE__ */ jsx(FlamingoLogo, { className: `${className}`, fill: "#EC4899" });
|
|
927
|
-
case "marketing-hub":
|
|
928
|
-
return /* @__PURE__ */ jsx(FlamingoLogo, { className, fill: "var(--ods-flamingo-pink-base)" });
|
|
929
|
-
case "product-hub":
|
|
930
|
-
return /* @__PURE__ */ jsx(FlamingoLogo, { className, fill: "var(--ods-attention-green-success)" });
|
|
931
|
-
case "revenue-hub":
|
|
932
|
-
return /* @__PURE__ */ jsx(FlamingoLogo, { className, fill: "var(--ods-attention-yellow-warning)" });
|
|
933
|
-
case "people-hub":
|
|
934
|
-
return /* @__PURE__ */ jsx(FlamingoLogo, { className, fill: "var(--ods-flamingo-cyan-base)" });
|
|
935
|
-
case "company-hub":
|
|
936
|
-
return /* @__PURE__ */ jsx(FlamingoLogo, { className, fill: "var(--ods-attention-red-error)" });
|
|
937
|
-
case "tmcg":
|
|
938
|
-
return /* @__PURE__ */ jsx(MiamiCyberGangLogoFaceOnly, { className });
|
|
939
|
-
case "universal":
|
|
940
|
-
default:
|
|
941
|
-
return /* @__PURE__ */ jsx(Globe, { className });
|
|
942
|
-
}
|
|
943
|
-
}
|
|
944
|
-
function getPlatformIconComponent(platformName, className = "h-6 w-6") {
|
|
945
|
-
switch (platformName) {
|
|
946
|
-
case "openframe":
|
|
947
|
-
return /* @__PURE__ */ jsx(OpenFrameLogo, { className });
|
|
948
|
-
case "openmsp":
|
|
949
|
-
return /* @__PURE__ */ jsx(OpenmspLogo, { className, color: "#f1f1f1" });
|
|
950
|
-
case "flamingo":
|
|
951
|
-
case "flamingo-teaser":
|
|
952
|
-
return /* @__PURE__ */ jsx(FlamingoLogo, { className: `${className} text-white` });
|
|
953
|
-
case "marketing-hub":
|
|
954
|
-
return /* @__PURE__ */ jsx(FlamingoLogo, { className, fill: "var(--ods-flamingo-pink-base)" });
|
|
955
|
-
case "product-hub":
|
|
956
|
-
return /* @__PURE__ */ jsx(FlamingoLogo, { className, fill: "var(--ods-attention-green-success)" });
|
|
957
|
-
case "revenue-hub":
|
|
958
|
-
return /* @__PURE__ */ jsx(FlamingoLogo, { className, fill: "var(--ods-attention-yellow-warning)" });
|
|
959
|
-
case "people-hub":
|
|
960
|
-
return /* @__PURE__ */ jsx(FlamingoLogo, { className, fill: "var(--ods-flamingo-cyan-base)" });
|
|
961
|
-
case "company-hub":
|
|
962
|
-
return /* @__PURE__ */ jsx(FlamingoLogo, { className, fill: "var(--ods-attention-red-error)" });
|
|
963
|
-
case "tmcg":
|
|
964
|
-
return /* @__PURE__ */ jsx(MiamiCyberGangLogoFaceOnly, { size: 24, className });
|
|
965
|
-
case "universal":
|
|
966
|
-
default:
|
|
967
|
-
return /* @__PURE__ */ jsx(Globe, { className });
|
|
968
|
-
}
|
|
969
|
-
}
|
|
970
|
-
|
|
971
|
-
// src/hooks/platform/use-platform-config.ts
|
|
972
806
|
var platformCache = null;
|
|
973
807
|
var fetchPromise = null;
|
|
974
808
|
function usePlatformConfig() {
|
|
@@ -1046,35 +880,11 @@ import { toast as sonnerToast2 } from "sonner";
|
|
|
1046
880
|
import * as React from "react";
|
|
1047
881
|
import { Toaster as SonnerToaster, toast as sonnerToast } from "sonner";
|
|
1048
882
|
|
|
1049
|
-
// src/types/tool.types.ts
|
|
1050
|
-
var ToolTypeValues = {
|
|
1051
|
-
TACTICAL_RMM: "TACTICAL_RMM",
|
|
1052
|
-
FLEET_MDM: "FLEET_MDM",
|
|
1053
|
-
MESHCENTRAL: "MESHCENTRAL",
|
|
1054
|
-
AUTHENTIK: "AUTHENTIK",
|
|
1055
|
-
OPENFRAME: "OPENFRAME",
|
|
1056
|
-
OPENFRAME_CHAT: "OPENFRAME_CHAT",
|
|
1057
|
-
OPENFRAME_CLIENT: "OPENFRAME_CLIENT",
|
|
1058
|
-
OSQUERY: "OSQUERY",
|
|
1059
|
-
SYSTEM: "SYSTEM"
|
|
1060
|
-
};
|
|
1061
|
-
var toolLabels = {
|
|
1062
|
-
TACTICAL_RMM: "Tactical",
|
|
1063
|
-
FLEET_MDM: "Fleet",
|
|
1064
|
-
MESHCENTRAL: "MeshCentral",
|
|
1065
|
-
AUTHENTIK: "Authentik",
|
|
1066
|
-
OPENFRAME: "OpenFrame",
|
|
1067
|
-
OPENFRAME_CHAT: "OpenFrame Chat",
|
|
1068
|
-
OPENFRAME_CLIENT: "OpenFrame Client",
|
|
1069
|
-
OSQUERY: "Osquery",
|
|
1070
|
-
SYSTEM: "System"
|
|
1071
|
-
};
|
|
1072
|
-
|
|
1073
883
|
// src/components/tool-icon.tsx
|
|
1074
|
-
import { Fragment, jsx
|
|
884
|
+
import { Fragment, jsx } from "react/jsx-runtime";
|
|
1075
885
|
var renderOpenFrameLogo = (_size, className) => (
|
|
1076
886
|
// eslint-disable-next-line deprecation/deprecation
|
|
1077
|
-
/* @__PURE__ */
|
|
887
|
+
/* @__PURE__ */ jsx(
|
|
1078
888
|
OpenFrameLogo,
|
|
1079
889
|
{
|
|
1080
890
|
className: className ?? "h-4 w-auto",
|
|
@@ -1084,22 +894,22 @@ var renderOpenFrameLogo = (_size, className) => (
|
|
|
1084
894
|
)
|
|
1085
895
|
);
|
|
1086
896
|
var toolIconMap = {
|
|
1087
|
-
[ToolTypeValues.FLEET_MDM]: (size, className) => /* @__PURE__ */
|
|
1088
|
-
[ToolTypeValues.MESHCENTRAL]: (size, className) => /* @__PURE__ */
|
|
1089
|
-
[ToolTypeValues.TACTICAL_RMM]: (size, className) => /* @__PURE__ */
|
|
897
|
+
[ToolTypeValues.FLEET_MDM]: (size, className) => /* @__PURE__ */ jsx(FleetMdmLogoGreyIcon, { size, className }),
|
|
898
|
+
[ToolTypeValues.MESHCENTRAL]: (size, className) => /* @__PURE__ */ jsx(MeshcentralLogoGreyIcon, { size, className }),
|
|
899
|
+
[ToolTypeValues.TACTICAL_RMM]: (size, className) => /* @__PURE__ */ jsx(TacticalRmmLogoIcon, { size, className }),
|
|
1090
900
|
[ToolTypeValues.OPENFRAME]: renderOpenFrameLogo,
|
|
1091
901
|
[ToolTypeValues.OPENFRAME_CHAT]: renderOpenFrameLogo,
|
|
1092
902
|
[ToolTypeValues.OPENFRAME_CLIENT]: renderOpenFrameLogo,
|
|
1093
|
-
[ToolTypeValues.AUTHENTIK]: (size, className) => /* @__PURE__ */
|
|
1094
|
-
[ToolTypeValues.OSQUERY]: (size, className) => /* @__PURE__ */
|
|
903
|
+
[ToolTypeValues.AUTHENTIK]: (size, className) => /* @__PURE__ */ jsx(AuthentikLogoGreyIcon, { size, className }),
|
|
904
|
+
[ToolTypeValues.OSQUERY]: (size, className) => /* @__PURE__ */ jsx(OsqueryLogoGreyIcon, { size, className }),
|
|
1095
905
|
[ToolTypeValues.SYSTEM]: () => null
|
|
1096
906
|
};
|
|
1097
|
-
var ToolIcon = ({ toolType, size = 16, className }) => /* @__PURE__ */
|
|
907
|
+
var ToolIcon = ({ toolType, size = 16, className }) => /* @__PURE__ */ jsx(Fragment, { children: toolIconMap[toolType]?.(size, className) ?? null });
|
|
1098
908
|
ToolIcon.displayName = "ToolIcon";
|
|
1099
909
|
|
|
1100
910
|
// src/components/ui/toaster.tsx
|
|
1101
911
|
init_cn();
|
|
1102
|
-
import { Fragment as Fragment2, jsx as
|
|
912
|
+
import { Fragment as Fragment2, jsx as jsx2, jsxs } from "react/jsx-runtime";
|
|
1103
913
|
var dotColorByVariant = {
|
|
1104
914
|
default: "bg-ods-text-secondary",
|
|
1105
915
|
success: "bg-ods-success",
|
|
@@ -1132,22 +942,22 @@ function ToastHeader({
|
|
|
1132
942
|
className
|
|
1133
943
|
),
|
|
1134
944
|
children: [
|
|
1135
|
-
/* @__PURE__ */
|
|
945
|
+
/* @__PURE__ */ jsx2("div", { className: "flex size-6 shrink-0 items-center justify-center", children: /* @__PURE__ */ jsx2("span", { className: cn("size-[9px] rounded-full", dotColorByVariant[variant]) }) }),
|
|
1136
946
|
/* @__PURE__ */ jsxs("div", { className: "flex min-w-0 flex-1 flex-col justify-center font-['DM_Sans'] font-medium", children: [
|
|
1137
|
-
title ? /* @__PURE__ */
|
|
1138
|
-
description ? /* @__PURE__ */
|
|
947
|
+
title ? /* @__PURE__ */ jsx2("p", { className: "truncate pr-5 text-[18px] leading-6 text-ods-text-primary", title: typeof title === "string" ? title : void 0, children: title }) : null,
|
|
948
|
+
description ? /* @__PURE__ */ jsx2("p", { className: "text-[14px] leading-5 text-ods-text-secondary line-clamp-3", title: typeof description === "string" ? description : void 0, children: description }) : null
|
|
1139
949
|
] }),
|
|
1140
|
-
dismissible ? /* @__PURE__ */
|
|
950
|
+
dismissible ? /* @__PURE__ */ jsx2(
|
|
1141
951
|
"button",
|
|
1142
952
|
{
|
|
1143
953
|
type: "button",
|
|
1144
954
|
"aria-label": "Close",
|
|
1145
955
|
onClick: () => sonnerToast.dismiss(id),
|
|
1146
956
|
className: "absolute right-[7px] top-[7px] flex size-4 items-center justify-center text-ods-text-secondary transition-colors hover:text-ods-text-primary",
|
|
1147
|
-
children: /* @__PURE__ */
|
|
957
|
+
children: /* @__PURE__ */ jsx2(XmarkIcon, { size: 16 })
|
|
1148
958
|
}
|
|
1149
959
|
) : null,
|
|
1150
|
-
showProgress && duration !== Infinity && duration > 0 ? /* @__PURE__ */
|
|
960
|
+
showProgress && duration !== Infinity && duration > 0 ? /* @__PURE__ */ jsx2(
|
|
1151
961
|
"div",
|
|
1152
962
|
{
|
|
1153
963
|
className: cn(
|
|
@@ -1172,7 +982,7 @@ function ToastCard({
|
|
|
1172
982
|
dismissible = true,
|
|
1173
983
|
className
|
|
1174
984
|
}) {
|
|
1175
|
-
return /* @__PURE__ */
|
|
985
|
+
return /* @__PURE__ */ jsx2(
|
|
1176
986
|
"div",
|
|
1177
987
|
{
|
|
1178
988
|
role: "status",
|
|
@@ -1180,7 +990,7 @@ function ToastCard({
|
|
|
1180
990
|
"w-[368px] max-w-[calc(100vw-32px)] overflow-hidden rounded-md border border-ods-border bg-ods-card shadow-lg",
|
|
1181
991
|
className
|
|
1182
992
|
),
|
|
1183
|
-
children: /* @__PURE__ */
|
|
993
|
+
children: /* @__PURE__ */ jsx2(
|
|
1184
994
|
ToastHeader,
|
|
1185
995
|
{
|
|
1186
996
|
id,
|
|
@@ -1229,7 +1039,7 @@ function CommandApprovalToast({
|
|
|
1229
1039
|
className
|
|
1230
1040
|
),
|
|
1231
1041
|
children: [
|
|
1232
|
-
/* @__PURE__ */
|
|
1042
|
+
/* @__PURE__ */ jsx2(
|
|
1233
1043
|
ToastHeader,
|
|
1234
1044
|
{
|
|
1235
1045
|
id,
|
|
@@ -1242,7 +1052,7 @@ function CommandApprovalToast({
|
|
|
1242
1052
|
className: "border-b border-ods-border"
|
|
1243
1053
|
}
|
|
1244
1054
|
),
|
|
1245
|
-
/* @__PURE__ */
|
|
1055
|
+
/* @__PURE__ */ jsx2(
|
|
1246
1056
|
"div",
|
|
1247
1057
|
{
|
|
1248
1058
|
className: "grid transition-[grid-template-rows] duration-300 ease-out",
|
|
@@ -1250,13 +1060,13 @@ function CommandApprovalToast({
|
|
|
1250
1060
|
"aria-hidden": !expanded,
|
|
1251
1061
|
children: /* @__PURE__ */ jsxs("div", { className: "overflow-hidden", children: [
|
|
1252
1062
|
/* @__PURE__ */ jsxs("div", { className: "flex h-11 w-full items-center gap-2 border-b border-ods-border bg-ods-card px-3 py-2", children: [
|
|
1253
|
-
/* @__PURE__ */
|
|
1254
|
-
toolType ? /* @__PURE__ */
|
|
1063
|
+
/* @__PURE__ */ jsx2("p", { className: "min-w-0 flex-1 truncate font-['DM_Sans'] text-[14px] font-medium leading-5 text-ods-text-primary", title: command, children: command }),
|
|
1064
|
+
toolType ? /* @__PURE__ */ jsx2(ToolIcon, { toolType, size: 16 }) : null
|
|
1255
1065
|
] }),
|
|
1256
1066
|
/* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-2 bg-ods-bg p-3", children: [
|
|
1257
|
-
approvalDescription ? /* @__PURE__ */
|
|
1067
|
+
approvalDescription ? /* @__PURE__ */ jsx2("p", { className: "font-['DM_Sans'] text-[14px] font-medium leading-5 text-ods-text-secondary", children: approvalDescription }) : null,
|
|
1258
1068
|
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-4", children: [
|
|
1259
|
-
/* @__PURE__ */
|
|
1069
|
+
/* @__PURE__ */ jsx2(
|
|
1260
1070
|
"button",
|
|
1261
1071
|
{
|
|
1262
1072
|
type: "button",
|
|
@@ -1266,7 +1076,7 @@ function CommandApprovalToast({
|
|
|
1266
1076
|
children: approveLabel
|
|
1267
1077
|
}
|
|
1268
1078
|
),
|
|
1269
|
-
/* @__PURE__ */
|
|
1079
|
+
/* @__PURE__ */ jsx2(
|
|
1270
1080
|
"button",
|
|
1271
1081
|
{
|
|
1272
1082
|
type: "button",
|
|
@@ -1289,8 +1099,8 @@ function CommandApprovalToast({
|
|
|
1289
1099
|
className: "flex w-full items-center gap-2 bg-ods-card px-3 py-2 text-left font-['DM_Sans'] text-[14px] font-medium leading-5 text-ods-text-primary transition-colors hover:bg-ods-bg-hover",
|
|
1290
1100
|
"aria-expanded": false,
|
|
1291
1101
|
children: [
|
|
1292
|
-
/* @__PURE__ */
|
|
1293
|
-
/* @__PURE__ */
|
|
1102
|
+
/* @__PURE__ */ jsx2("span", { className: "flex-1", children: "Show Command" }),
|
|
1103
|
+
/* @__PURE__ */ jsx2(Chevron02DownIcon, { size: 16 })
|
|
1294
1104
|
]
|
|
1295
1105
|
}
|
|
1296
1106
|
)
|
|
@@ -1307,13 +1117,13 @@ function Toaster({
|
|
|
1307
1117
|
} = {}) {
|
|
1308
1118
|
const { classNames: userClassNames, ...restToastOptions } = toastOptions ?? {};
|
|
1309
1119
|
return /* @__PURE__ */ jsxs(Fragment2, { children: [
|
|
1310
|
-
/* @__PURE__ */
|
|
1120
|
+
/* @__PURE__ */ jsx2("style", { children: `
|
|
1311
1121
|
@keyframes toast-progress {
|
|
1312
1122
|
from { transform: scaleX(1); }
|
|
1313
1123
|
to { transform: scaleX(0); }
|
|
1314
1124
|
}
|
|
1315
1125
|
` }),
|
|
1316
|
-
/* @__PURE__ */
|
|
1126
|
+
/* @__PURE__ */ jsx2(
|
|
1317
1127
|
SonnerToaster,
|
|
1318
1128
|
{
|
|
1319
1129
|
position,
|
|
@@ -1343,7 +1153,7 @@ function showToast(options) {
|
|
|
1343
1153
|
...rest
|
|
1344
1154
|
} = opts;
|
|
1345
1155
|
return sonnerToast.custom(
|
|
1346
|
-
(id) => /* @__PURE__ */
|
|
1156
|
+
(id) => /* @__PURE__ */ jsx2(
|
|
1347
1157
|
ToastCard,
|
|
1348
1158
|
{
|
|
1349
1159
|
id,
|
|
@@ -1375,7 +1185,7 @@ function showCommandApprovalToast(options) {
|
|
|
1375
1185
|
...rest
|
|
1376
1186
|
} = options;
|
|
1377
1187
|
return sonnerToast.custom(
|
|
1378
|
-
(id) => /* @__PURE__ */
|
|
1188
|
+
(id) => /* @__PURE__ */ jsx2(
|
|
1379
1189
|
CommandApprovalToast,
|
|
1380
1190
|
{
|
|
1381
1191
|
id,
|
|
@@ -2806,65 +2616,6 @@ function useNatsClient(clientOptions, options = {}) {
|
|
|
2806
2616
|
|
|
2807
2617
|
// src/hooks/use-access-code-integration.ts
|
|
2808
2618
|
import React2 from "react";
|
|
2809
|
-
|
|
2810
|
-
// src/utils/access-code-client.ts
|
|
2811
|
-
async function validateAccessCode(email, code, endpoints) {
|
|
2812
|
-
try {
|
|
2813
|
-
const response = await fetch(endpoints.validateUrl, {
|
|
2814
|
-
method: "POST",
|
|
2815
|
-
headers: {
|
|
2816
|
-
"Content-Type": "application/json"
|
|
2817
|
-
},
|
|
2818
|
-
body: JSON.stringify({ email, code })
|
|
2819
|
-
});
|
|
2820
|
-
if (!response.ok) {
|
|
2821
|
-
const error = await response.json().catch(() => ({}));
|
|
2822
|
-
throw new Error(error.error || "Validation request failed");
|
|
2823
|
-
}
|
|
2824
|
-
return await response.json();
|
|
2825
|
-
} catch (error) {
|
|
2826
|
-
return {
|
|
2827
|
-
valid: false,
|
|
2828
|
-
message: error instanceof Error ? error.message : "Validation failed"
|
|
2829
|
-
};
|
|
2830
|
-
}
|
|
2831
|
-
}
|
|
2832
|
-
async function consumeAccessCode(email, code, endpoints) {
|
|
2833
|
-
try {
|
|
2834
|
-
const response = await fetch(endpoints.consumeUrl, {
|
|
2835
|
-
method: "POST",
|
|
2836
|
-
headers: {
|
|
2837
|
-
"Content-Type": "application/json"
|
|
2838
|
-
},
|
|
2839
|
-
body: JSON.stringify({ email, code })
|
|
2840
|
-
});
|
|
2841
|
-
if (!response.ok) {
|
|
2842
|
-
const error = await response.json().catch(() => ({}));
|
|
2843
|
-
throw new Error(error.error || "Consumption request failed");
|
|
2844
|
-
}
|
|
2845
|
-
return await response.json();
|
|
2846
|
-
} catch (error) {
|
|
2847
|
-
return {
|
|
2848
|
-
success: false,
|
|
2849
|
-
consumed: false,
|
|
2850
|
-
message: error instanceof Error ? error.message : "Consumption failed"
|
|
2851
|
-
};
|
|
2852
|
-
}
|
|
2853
|
-
}
|
|
2854
|
-
async function validateAndConsumeAccessCode(email, code, endpoints) {
|
|
2855
|
-
const validation = await validateAccessCode(email, code, endpoints);
|
|
2856
|
-
if (!validation.valid) {
|
|
2857
|
-
return validation;
|
|
2858
|
-
}
|
|
2859
|
-
const consumption = await consumeAccessCode(email, code, endpoints);
|
|
2860
|
-
return {
|
|
2861
|
-
...validation,
|
|
2862
|
-
consumed: consumption.consumed,
|
|
2863
|
-
message: consumption.consumed ? `Access granted for ${validation.cohort_name}` : consumption.message || validation.message
|
|
2864
|
-
};
|
|
2865
|
-
}
|
|
2866
|
-
|
|
2867
|
-
// src/hooks/use-access-code-integration.ts
|
|
2868
2619
|
function useAccessCodeIntegration() {
|
|
2869
2620
|
const runtime = useRequiredEndpointsRuntime();
|
|
2870
2621
|
const endpoints = runtime.accessCode;
|
|
@@ -2908,28 +2659,6 @@ function useAccessCodeIntegration() {
|
|
|
2908
2659
|
|
|
2909
2660
|
// src/hooks/use-humanity-signals.ts
|
|
2910
2661
|
import { useCallback as useCallback12, useRef as useRef10 } from "react";
|
|
2911
|
-
|
|
2912
|
-
// src/utils/humanity-signals.ts
|
|
2913
|
-
var HONEYPOT_FIELD = "contact_url_confirm";
|
|
2914
|
-
var ELAPSED_MS_FIELD = "form_elapsed_ms";
|
|
2915
|
-
var DEFAULT_MIN_FILL_MS = 700;
|
|
2916
|
-
function extractHumanitySignals(body) {
|
|
2917
|
-
const b = body ?? {};
|
|
2918
|
-
const rawHp = b[HONEYPOT_FIELD];
|
|
2919
|
-
const honeypot = rawHp == null ? "" : String(rawHp);
|
|
2920
|
-
const rawMs = b[ELAPSED_MS_FIELD];
|
|
2921
|
-
const elapsedMs = typeof rawMs === "number" && Number.isFinite(rawMs) ? rawMs : null;
|
|
2922
|
-
return { honeypot, elapsedMs };
|
|
2923
|
-
}
|
|
2924
|
-
function evaluateHumanitySignals(body, opts) {
|
|
2925
|
-
const { honeypot, elapsedMs } = extractHumanitySignals(body);
|
|
2926
|
-
if (honeypot.trim() !== "") return { ok: false, reason: "honeypot" };
|
|
2927
|
-
if (elapsedMs !== null && elapsedMs < opts.minFillMs) return { ok: false, reason: "too_fast" };
|
|
2928
|
-
return { ok: true };
|
|
2929
|
-
}
|
|
2930
|
-
var splitCsvEnv = (s) => s?.split(",").map((t) => t.trim()).filter(Boolean) ?? [];
|
|
2931
|
-
|
|
2932
|
-
// src/hooks/use-humanity-signals.ts
|
|
2933
2662
|
function useHumanitySignals() {
|
|
2934
2663
|
const ref = useRef10(null);
|
|
2935
2664
|
const mountedAt = useRef10(typeof performance !== "undefined" ? performance.now() : 0);
|
|
@@ -2964,28 +2693,9 @@ export {
|
|
|
2964
2693
|
useTablePagination,
|
|
2965
2694
|
useThrottle,
|
|
2966
2695
|
useWindowSize,
|
|
2967
|
-
platformIcons,
|
|
2968
|
-
platformColors,
|
|
2969
|
-
platformDisplayNames,
|
|
2970
|
-
platformDescriptions,
|
|
2971
|
-
platformSlogans,
|
|
2972
|
-
platformHexColors,
|
|
2973
|
-
platformIconNames,
|
|
2974
|
-
getDefaultColorForPlatform,
|
|
2975
|
-
getDefaultIconForPlatform,
|
|
2976
|
-
transformPlatformConfigsToOptions,
|
|
2977
|
-
getPlatformIcon,
|
|
2978
|
-
getPlatformColor,
|
|
2979
|
-
getPlatformDisplayName,
|
|
2980
|
-
getPlatformDescription,
|
|
2981
|
-
getPlatformSlogan,
|
|
2982
|
-
getSmallPlatformIcon,
|
|
2983
|
-
getPlatformIconComponent,
|
|
2984
2696
|
usePlatformConfig,
|
|
2985
2697
|
usePlatformByValue,
|
|
2986
2698
|
useValidatePlatform,
|
|
2987
|
-
ToolTypeValues,
|
|
2988
|
-
toolLabels,
|
|
2989
2699
|
ToolIcon,
|
|
2990
2700
|
dotColorByVariant,
|
|
2991
2701
|
progressColorByVariant,
|
|
@@ -3028,16 +2738,7 @@ export {
|
|
|
3028
2738
|
createSearchParams,
|
|
3029
2739
|
useCursorPaginationState,
|
|
3030
2740
|
useNatsClient,
|
|
3031
|
-
validateAccessCode,
|
|
3032
|
-
consumeAccessCode,
|
|
3033
|
-
validateAndConsumeAccessCode,
|
|
3034
2741
|
useAccessCodeIntegration,
|
|
3035
|
-
HONEYPOT_FIELD,
|
|
3036
|
-
ELAPSED_MS_FIELD,
|
|
3037
|
-
DEFAULT_MIN_FILL_MS,
|
|
3038
|
-
extractHumanitySignals,
|
|
3039
|
-
evaluateHumanitySignals,
|
|
3040
|
-
splitCsvEnv,
|
|
3041
2742
|
useHumanitySignals
|
|
3042
2743
|
};
|
|
3043
|
-
//# sourceMappingURL=chunk-
|
|
2744
|
+
//# sourceMappingURL=chunk-N6ZM5PYZ.js.map
|