@flamingo-stack/openframe-frontend-core 0.0.296-snapshot.20260621021605 → 0.0.296
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/README.md +0 -9
- package/dist/chunk-26PKDALD.js +2379 -0
- package/dist/chunk-26PKDALD.js.map +1 -0
- package/dist/chunk-3MCHAFHB.js +89 -0
- package/dist/chunk-3MCHAFHB.js.map +1 -0
- package/dist/{chunk-PI4WSYQV.js → chunk-3ZXUQQL4.js} +2 -2
- package/dist/{chunk-WMSTJAZT.cjs → chunk-5E2HOSSH.cjs} +51 -913
- package/dist/chunk-5E2HOSSH.cjs.map +1 -0
- package/dist/{chunk-IL47XWV5.js → chunk-5P3B2LZW.js} +14 -8
- package/dist/{chunk-IL47XWV5.js.map → chunk-5P3B2LZW.js.map} +1 -1
- package/dist/chunk-66AANIOC.cjs +619 -0
- package/dist/chunk-66AANIOC.cjs.map +1 -0
- package/dist/{chunk-AD6C23QY.js → chunk-6GCI7JOE.js} +7 -8
- package/dist/{chunk-AD6C23QY.js.map → chunk-6GCI7JOE.js.map} +1 -1
- package/dist/chunk-6JINAOI7.cjs +311 -0
- package/dist/chunk-6JINAOI7.cjs.map +1 -0
- package/dist/{chunk-2QG57XOJ.js → chunk-7RIYT7ZH.js} +205 -1067
- package/dist/chunk-7RIYT7ZH.js.map +1 -0
- package/dist/{chunk-L6PSSIUQ.cjs → chunk-AQOWFSMB.cjs} +1 -1
- package/dist/chunk-AQOWFSMB.cjs.map +1 -0
- package/dist/chunk-BOCFIKYS.cjs +3009 -0
- package/dist/chunk-BOCFIKYS.cjs.map +1 -0
- package/dist/{chunk-54KNMC2R.cjs → chunk-D3LEFMOA.cjs} +3 -3
- package/dist/{chunk-54KNMC2R.cjs.map → chunk-D3LEFMOA.cjs.map} +1 -1
- package/dist/chunk-D652TJBQ.js +3009 -0
- package/dist/chunk-D652TJBQ.js.map +1 -0
- package/dist/{chunk-PWQUAVA3.js → chunk-E4XABBSU.js} +98 -338
- package/dist/chunk-E4XABBSU.js.map +1 -0
- package/dist/{chunk-JALO4TAZ.js → chunk-EL6QLAWX.js} +55 -357
- package/dist/chunk-EL6QLAWX.js.map +1 -0
- package/dist/{chunk-6C526VNN.cjs → chunk-EYEW6PTA.cjs} +118 -358
- package/dist/chunk-EYEW6PTA.cjs.map +1 -0
- package/dist/chunk-FQJK446R.js +1606 -0
- package/dist/chunk-FQJK446R.js.map +1 -0
- package/dist/{chunk-4PSQS3SW.cjs → chunk-GLLDTKZK.cjs} +9 -7
- package/dist/chunk-GLLDTKZK.cjs.map +1 -0
- package/dist/{chunk-FQOTC3UU.cjs → chunk-IE6OU3WQ.cjs} +16 -318
- package/dist/chunk-IE6OU3WQ.cjs.map +1 -0
- package/dist/chunk-J54Z3OCR.cjs +1606 -0
- package/dist/chunk-J54Z3OCR.cjs.map +1 -0
- package/dist/{chunk-PC746XCO.js → chunk-K2PFPBMF.js} +5563 -15048
- package/dist/chunk-K2PFPBMF.js.map +1 -0
- package/dist/chunk-KXCRGTRN.cjs +2379 -0
- package/dist/chunk-KXCRGTRN.cjs.map +1 -0
- package/dist/{chunk-IZ7JSBFP.js → chunk-LCNMR277.js} +1 -1
- package/dist/chunk-LCNMR277.js.map +1 -0
- package/dist/chunk-LFGGF7OT.cjs +449 -0
- package/dist/chunk-LFGGF7OT.cjs.map +1 -0
- package/dist/chunk-M2OCXTNT.js +311 -0
- package/dist/chunk-M2OCXTNT.js.map +1 -0
- package/dist/{chunk-L7ULJKG7.js → chunk-MBFWU2EM.js} +10 -6
- package/dist/{chunk-L7ULJKG7.js.map → chunk-MBFWU2EM.js.map} +1 -1
- package/dist/chunk-ME4EVDFP.js +619 -0
- package/dist/chunk-ME4EVDFP.js.map +1 -0
- package/dist/chunk-OQ6X7ZOC.js +449 -0
- package/dist/chunk-OQ6X7ZOC.js.map +1 -0
- package/dist/{chunk-4TLE6VLU.js → chunk-OY7OF7E7.js} +24 -30
- package/dist/chunk-OY7OF7E7.js.map +1 -0
- package/dist/chunk-POKKCWKF.js +354 -0
- package/dist/chunk-POKKCWKF.js.map +1 -0
- package/dist/{chunk-GUTS7HGA.cjs → chunk-QHIXS3W2.cjs} +2514 -11999
- package/dist/chunk-QHIXS3W2.cjs.map +1 -0
- package/dist/chunk-TFSYSWPS.cjs +89 -0
- package/dist/chunk-TFSYSWPS.cjs.map +1 -0
- package/dist/{chunk-53FUMSZ5.cjs → chunk-W6M2FLLT.cjs} +46 -40
- package/dist/chunk-W6M2FLLT.cjs.map +1 -0
- package/dist/{chunk-3JIQVE7T.js → chunk-WHMATDVP.js} +15 -9
- package/dist/{chunk-3JIQVE7T.js.map → chunk-WHMATDVP.js.map} +1 -1
- package/dist/{chunk-YBYI62OE.cjs → chunk-X647HY3F.cjs} +37 -33
- package/dist/chunk-X647HY3F.cjs.map +1 -0
- package/dist/{chunk-UNVE2SDJ.cjs → chunk-X6BV7MB7.cjs} +31 -37
- package/dist/chunk-X6BV7MB7.cjs.map +1 -0
- package/dist/{chunk-7OVGB2DQ.cjs → chunk-XREEV72C.cjs} +25 -19
- package/dist/chunk-XREEV72C.cjs.map +1 -0
- package/dist/chunk-YETA25JW.cjs +354 -0
- package/dist/chunk-YETA25JW.cjs.map +1 -0
- package/dist/{chunk-FCDQNTDG.cjs → chunk-YIGPRLQY.cjs} +20 -21
- package/dist/chunk-YIGPRLQY.cjs.map +1 -0
- package/dist/{chunk-X4DOXQRT.js → chunk-ZP4AVIZP.js} +6 -4
- package/dist/{chunk-X4DOXQRT.js.map → chunk-ZP4AVIZP.js.map} +1 -1
- package/dist/components/chat/index.cjs +18 -8
- package/dist/components/chat/index.cjs.map +1 -1
- package/dist/components/chat/index.js +85 -75
- package/dist/components/contact/index.cjs +15 -8
- package/dist/components/contact/index.cjs.map +1 -1
- package/dist/components/contact/index.js +14 -7
- package/dist/components/docs/doc-viewer.d.ts +2 -39
- package/dist/components/docs/doc-viewer.d.ts.map +1 -1
- package/dist/components/docs/index.cjs +9 -17
- package/dist/components/docs/index.cjs.map +1 -1
- package/dist/components/docs/index.d.ts +0 -4
- package/dist/components/docs/index.d.ts.map +1 -1
- package/dist/components/docs/index.js +8 -16
- package/dist/components/docs/use-document-tree.d.ts.map +1 -1
- package/dist/components/embeds/embed-iframe.d.ts.map +1 -1
- package/dist/components/embeds/index.cjs +15 -38
- package/dist/components/embeds/index.cjs.map +1 -1
- package/dist/components/embeds/index.d.ts +0 -8
- package/dist/components/embeds/index.d.ts.map +1 -1
- package/dist/components/embeds/index.js +17 -40
- package/dist/components/faq/index.cjs +16 -9
- package/dist/components/faq/index.cjs.map +1 -1
- package/dist/components/faq/index.js +15 -8
- package/dist/components/features/index.cjs +16 -8
- package/dist/components/features/index.cjs.map +1 -1
- package/dist/components/features/index.js +32 -24
- package/dist/components/index.cjs +452 -257
- package/dist/components/index.cjs.map +1 -1
- package/dist/components/index.js +976 -781
- package/dist/components/index.js.map +1 -1
- package/dist/components/layout/page-layout.d.ts +1 -10
- package/dist/components/layout/page-layout.d.ts.map +1 -1
- package/dist/components/layout/title-block.d.ts +1 -17
- package/dist/components/layout/title-block.d.ts.map +1 -1
- package/dist/components/navigation/index.cjs +15 -7
- package/dist/components/navigation/index.cjs.map +1 -1
- package/dist/components/navigation/index.js +17 -9
- package/dist/components/onboarding-guides/index.cjs +36 -35
- package/dist/components/onboarding-guides/index.cjs.map +1 -1
- package/dist/components/onboarding-guides/index.js +14 -13
- package/dist/components/onboarding-guides/index.js.map +1 -1
- package/dist/components/onboarding-guides/onboarding-guide-detail-view.d.ts +1 -1
- package/dist/components/onboarding-guides/onboarding-guide-detail-view.d.ts.map +1 -1
- package/dist/components/related-content/index.cjs +16 -9
- package/dist/components/related-content/index.cjs.map +1 -1
- package/dist/components/related-content/index.js +15 -8
- package/dist/components/shared/dev-section/dev-section-page.d.ts +0 -9
- package/dist/components/shared/dev-section/dev-section-page.d.ts.map +1 -1
- package/dist/components/shared/dev-section/dev-section-view.d.ts.map +1 -1
- package/dist/components/shared/dev-section/index.d.ts +1 -1
- package/dist/components/shared/dev-section/index.d.ts.map +1 -1
- package/dist/components/shared/doc-search/use-doc-search.d.ts.map +1 -1
- package/dist/components/shared/legal-document/legal-document-page.d.ts.map +1 -1
- package/dist/components/shared/product-release/release-detail-page.d.ts.map +1 -1
- package/dist/components/tickets/index.cjs +112 -100
- package/dist/components/tickets/index.cjs.map +1 -1
- package/dist/components/tickets/index.js +32 -20
- package/dist/components/tickets/index.js.map +1 -1
- package/dist/components/ui/file-manager/index.cjs +52 -50
- package/dist/components/ui/file-manager/index.cjs.map +1 -1
- package/dist/components/ui/file-manager/index.js +6 -4
- package/dist/components/ui/file-manager/index.js.map +1 -1
- package/dist/components/ui/index.cjs +19 -13
- package/dist/components/ui/index.cjs.map +1 -1
- package/dist/components/ui/index.d.ts +0 -2
- package/dist/components/ui/index.d.ts.map +1 -1
- package/dist/components/ui/index.js +139 -133
- package/dist/components/ui/release-changelog-section.d.ts +2 -6
- package/dist/components/ui/release-changelog-section.d.ts.map +1 -1
- package/dist/components/ui/simple-markdown-renderer.d.ts +8 -2
- package/dist/components/ui/simple-markdown-renderer.d.ts.map +1 -1
- package/dist/contexts/chat-runtime-context.d.ts +0 -14
- package/dist/contexts/chat-runtime-context.d.ts.map +1 -1
- package/dist/contexts/index.cjs +3 -3
- package/dist/contexts/index.js +5 -5
- package/dist/embed-shims/index.cjs +3 -3
- package/dist/embed-shims/index.cjs.map +1 -1
- package/dist/embed-shims/index.js +4 -4
- package/dist/hooks/index.cjs +9 -4
- package/dist/hooks/index.cjs.map +1 -1
- package/dist/hooks/index.js +11 -6
- package/dist/index.cjs +20 -14
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +364 -358
- package/dist/types/doc-source.d.ts +1 -31
- package/dist/types/doc-source.d.ts.map +1 -1
- package/dist/utils/index.cjs +0 -4
- package/dist/utils/index.cjs.map +1 -1
- package/dist/utils/index.d.ts +0 -1
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +1 -4
- package/dist/utils/index.js.map +1 -1
- package/package.json +1 -7
- package/src/components/chat/embeddable-chat.tsx +1 -1
- package/src/components/docs/doc-viewer.tsx +19 -111
- package/src/components/docs/index.ts +0 -17
- package/src/components/docs/use-document-tree.ts +0 -21
- package/src/components/embeds/embed-iframe.tsx +9 -7
- package/src/components/embeds/index.ts +0 -30
- package/src/components/embeds/og-link-preview.tsx +13 -13
- package/src/components/layout/page-layout.tsx +1 -14
- package/src/components/layout/title-block.tsx +62 -40
- package/src/components/onboarding-guides/onboarding-guide-detail-view.tsx +3 -3
- package/src/components/shared/dev-section/dev-section-page.tsx +1 -9
- package/src/components/shared/dev-section/dev-section-view.tsx +9 -14
- package/src/components/shared/dev-section/index.ts +1 -1
- package/src/components/shared/doc-search/use-doc-search.ts +3 -7
- package/src/components/shared/legal-document/legal-document-page.tsx +2 -2
- package/src/components/shared/product-release/release-detail-page.tsx +4 -6
- package/src/components/ui/index.ts +0 -2
- package/src/components/ui/release-changelog-section.tsx +2 -7
- package/src/components/ui/simple-markdown-renderer.tsx +11 -7
- package/src/contexts/chat-runtime-context.tsx +0 -14
- package/src/types/doc-source.ts +1 -33
- package/src/utils/index.ts +0 -1
- package/dist/chunk-2QG57XOJ.js.map +0 -1
- package/dist/chunk-4PSQS3SW.cjs.map +0 -1
- package/dist/chunk-4TLE6VLU.js.map +0 -1
- package/dist/chunk-53FUMSZ5.cjs.map +0 -1
- package/dist/chunk-6C526VNN.cjs.map +0 -1
- package/dist/chunk-7OVGB2DQ.cjs.map +0 -1
- package/dist/chunk-F5OB2YAL.cjs +0 -144
- package/dist/chunk-F5OB2YAL.cjs.map +0 -1
- package/dist/chunk-FBWXMMRB.cjs +0 -2
- package/dist/chunk-FBWXMMRB.cjs.map +0 -1
- package/dist/chunk-FCDQNTDG.cjs.map +0 -1
- package/dist/chunk-FQOTC3UU.cjs.map +0 -1
- package/dist/chunk-GUTS7HGA.cjs.map +0 -1
- package/dist/chunk-GZ4C3XW6.js +0 -2
- package/dist/chunk-GZ4C3XW6.js.map +0 -1
- package/dist/chunk-IZ7JSBFP.js.map +0 -1
- package/dist/chunk-JALO4TAZ.js.map +0 -1
- package/dist/chunk-L6PSSIUQ.cjs.map +0 -1
- package/dist/chunk-PC746XCO.js.map +0 -1
- package/dist/chunk-PWQUAVA3.js.map +0 -1
- package/dist/chunk-SA2WPJVO.js +0 -144
- package/dist/chunk-SA2WPJVO.js.map +0 -1
- package/dist/chunk-UNVE2SDJ.cjs.map +0 -1
- package/dist/chunk-WMSTJAZT.cjs.map +0 -1
- package/dist/chunk-YBYI62OE.cjs.map +0 -1
- package/dist/components/case-studies/index.cjs +0 -126
- package/dist/components/case-studies/index.cjs.map +0 -1
- package/dist/components/case-studies/index.d.ts +0 -2
- package/dist/components/case-studies/index.d.ts.map +0 -1
- package/dist/components/case-studies/index.js +0 -126
- package/dist/components/case-studies/index.js.map +0 -1
- package/dist/components/case-studies/share-experience-section.d.ts +0 -48
- package/dist/components/case-studies/share-experience-section.d.ts.map +0 -1
- package/dist/components/docs/docs-hub-page.d.ts +0 -46
- package/dist/components/docs/docs-hub-page.d.ts.map +0 -1
- package/dist/components/docs/skeletons.d.ts +0 -32
- package/dist/components/docs/skeletons.d.ts.map +0 -1
- package/dist/components/docs/use-docs-resolve-link.d.ts +0 -20
- package/dist/components/docs/use-docs-resolve-link.d.ts.map +0 -1
- package/dist/components/embeds/embed-container.d.ts +0 -37
- package/dist/components/embeds/embed-container.d.ts.map +0 -1
- package/dist/components/embeds/file-download-card.d.ts +0 -18
- package/dist/components/embeds/file-download-card.d.ts.map +0 -1
- package/dist/components/embeds/linkedin-embed-client.d.ts +0 -8
- package/dist/components/embeds/linkedin-embed-client.d.ts.map +0 -1
- package/dist/components/embeds/markdown-image.d.ts +0 -5
- package/dist/components/embeds/markdown-image.d.ts.map +0 -1
- package/dist/components/embeds/reddit-embed-client.d.ts +0 -7
- package/dist/components/embeds/reddit-embed-client.d.ts.map +0 -1
- package/dist/components/embeds/rich-markdown-runtime.d.ts +0 -46
- package/dist/components/embeds/rich-markdown-runtime.d.ts.map +0 -1
- package/dist/components/embeds/twitter-embed-client.d.ts +0 -8
- package/dist/components/embeds/twitter-embed-client.d.ts.map +0 -1
- package/dist/components/layout/page-header.d.ts +0 -78
- package/dist/components/layout/page-header.d.ts.map +0 -1
- package/dist/components/layout/page-with-header.d.ts +0 -67
- package/dist/components/layout/page-with-header.d.ts.map +0 -1
- package/dist/components/ui/rich-markdown-renderer.d.ts +0 -34
- package/dist/components/ui/rich-markdown-renderer.d.ts.map +0 -1
- package/dist/utils/page-header-constants.d.ts +0 -15
- package/dist/utils/page-header-constants.d.ts.map +0 -1
- package/dist/utils/social-embed-cache.d.ts +0 -29
- package/dist/utils/social-embed-cache.d.ts.map +0 -1
- package/src/components/case-studies/index.ts +0 -4
- package/src/components/case-studies/share-experience-section.tsx +0 -185
- package/src/components/docs/docs-hub-page.tsx +0 -149
- package/src/components/docs/skeletons.tsx +0 -138
- package/src/components/docs/use-docs-resolve-link.ts +0 -52
- package/src/components/embeds/embed-container.tsx +0 -80
- package/src/components/embeds/file-download-card.tsx +0 -54
- package/src/components/embeds/linkedin-embed-client.tsx +0 -100
- package/src/components/embeds/markdown-image.tsx +0 -88
- package/src/components/embeds/reddit-embed-client.tsx +0 -550
- package/src/components/embeds/rich-markdown-runtime.tsx +0 -79
- package/src/components/embeds/twitter-embed-client.tsx +0 -308
- package/src/components/layout/page-header.tsx +0 -182
- package/src/components/layout/page-with-header.tsx +0 -110
- package/src/components/ui/rich-markdown-renderer.tsx +0 -1203
- package/src/utils/page-header-constants.ts +0 -15
- package/src/utils/social-embed-cache.ts +0 -391
- /package/dist/{chunk-PI4WSYQV.js.map → chunk-3ZXUQQL4.js.map} +0 -0
|
@@ -1,130 +1,51 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }"use client";
|
|
2
2
|
|
|
3
3
|
|
|
4
|
-
var _chunk27APPAJNcjs = require('./chunk-27APPAJN.cjs');
|
|
5
4
|
|
|
6
5
|
|
|
7
6
|
|
|
8
7
|
|
|
9
|
-
var _chunkG7UE6RKVcjs = require('./chunk-G7UE6RKV.cjs');
|
|
10
8
|
|
|
11
9
|
|
|
12
10
|
|
|
13
11
|
|
|
12
|
+
var _chunkLFGGF7OTcjs = require('./chunk-LFGGF7OT.cjs');
|
|
14
13
|
|
|
15
|
-
var _chunkLGLPNWS6cjs = require('./chunk-LGLPNWS6.cjs');
|
|
16
14
|
|
|
15
|
+
var _chunk27APPAJNcjs = require('./chunk-27APPAJN.cjs');
|
|
17
16
|
|
|
18
17
|
|
|
19
|
-
var
|
|
18
|
+
var _chunkPXXS27EEcjs = require('./chunk-PXXS27EE.cjs');
|
|
20
19
|
|
|
21
20
|
|
|
21
|
+
var _chunkTFSYSWPScjs = require('./chunk-TFSYSWPS.cjs');
|
|
22
22
|
|
|
23
23
|
|
|
24
|
+
var _chunkYETA25JWcjs = require('./chunk-YETA25JW.cjs');
|
|
24
25
|
|
|
25
26
|
|
|
26
27
|
|
|
27
28
|
|
|
28
|
-
var
|
|
29
|
+
var _chunkG7UE6RKVcjs = require('./chunk-G7UE6RKV.cjs');
|
|
29
30
|
|
|
30
31
|
|
|
31
|
-
var
|
|
32
|
+
var _chunkLGLPNWS6cjs = require('./chunk-LGLPNWS6.cjs');
|
|
32
33
|
|
|
33
|
-
// src/hooks/ui/use-auto-limit-tags.ts
|
|
34
|
-
var _react = require('react'); var React = _interopRequireWildcard(_react);
|
|
35
|
-
function useAutoLimitTags({
|
|
36
|
-
count,
|
|
37
|
-
limitTags = "auto",
|
|
38
|
-
placeholder = "",
|
|
39
|
-
reserveInputWidth = true
|
|
40
|
-
}) {
|
|
41
|
-
const middleRef = _react.useRef.call(void 0, null);
|
|
42
|
-
const measureRef = _react.useRef.call(void 0, null);
|
|
43
|
-
const textMeasureRef = _react.useRef.call(void 0, null);
|
|
44
|
-
const badgeRef = _react.useRef.call(void 0, null);
|
|
45
|
-
const inputRef = _react.useRef.call(void 0, null);
|
|
46
|
-
const [visibleCount, setVisibleCount] = _react.useState.call(void 0, count);
|
|
47
|
-
const recalculate = _react.useCallback.call(void 0, () => {
|
|
48
|
-
if (limitTags !== "auto") {
|
|
49
|
-
setVisibleCount(Math.min(limitTags, count));
|
|
50
|
-
return;
|
|
51
|
-
}
|
|
52
|
-
const middle = middleRef.current;
|
|
53
|
-
const measure = measureRef.current;
|
|
54
|
-
if (!middle || !measure) {
|
|
55
|
-
setVisibleCount(count);
|
|
56
|
-
return;
|
|
57
|
-
}
|
|
58
|
-
if (count === 0) {
|
|
59
|
-
setVisibleCount(0);
|
|
60
|
-
return;
|
|
61
|
-
}
|
|
62
|
-
const cs = getComputedStyle(middle);
|
|
63
|
-
const padL = parseFloat(cs.paddingLeft) || 0;
|
|
64
|
-
const padR = parseFloat(cs.paddingRight) || 0;
|
|
65
|
-
const gap = parseFloat(cs.gap) || 0;
|
|
66
|
-
const middleW = middle.clientWidth;
|
|
67
|
-
let inputReservedW = 0;
|
|
68
|
-
let trailingGap = 0;
|
|
69
|
-
if (reserveInputWidth) {
|
|
70
|
-
const textW = _nullishCoalesce(_optionalChain([textMeasureRef, 'access', _2 => _2.current, 'optionalAccess', _3 => _3.offsetWidth]), () => ( 60));
|
|
71
|
-
const inputMinW = inputRef.current ? parseFloat(getComputedStyle(inputRef.current).minWidth) || 60 : 60;
|
|
72
|
-
inputReservedW = Math.max(textW + 8, inputMinW);
|
|
73
|
-
trailingGap = gap;
|
|
74
|
-
}
|
|
75
|
-
const available = middleW - padL - padR - inputReservedW - trailingGap;
|
|
76
|
-
const tagEls = Array.from(measure.children);
|
|
77
|
-
const widths = tagEls.map((el) => el.offsetWidth);
|
|
78
|
-
let total = 0;
|
|
79
|
-
for (let i = 0; i < widths.length; i++) {
|
|
80
|
-
total += widths[i] + (i > 0 ? gap : 0);
|
|
81
|
-
}
|
|
82
|
-
if (total <= available) {
|
|
83
|
-
setVisibleCount(count);
|
|
84
|
-
return;
|
|
85
|
-
}
|
|
86
|
-
const badgeW = _nullishCoalesce(_optionalChain([badgeRef, 'access', _4 => _4.current, 'optionalAccess', _5 => _5.offsetWidth]), () => ( 40));
|
|
87
|
-
const spaceWithBadge = available - badgeW - gap;
|
|
88
|
-
let used = 0;
|
|
89
|
-
let fitCount = 0;
|
|
90
|
-
for (let i = 0; i < widths.length; i++) {
|
|
91
|
-
const need = widths[i] + (i > 0 ? gap : 0);
|
|
92
|
-
if (used + need > spaceWithBadge) break;
|
|
93
|
-
used += need;
|
|
94
|
-
fitCount++;
|
|
95
|
-
}
|
|
96
|
-
setVisibleCount(Math.max(0, fitCount));
|
|
97
|
-
}, [count, limitTags, placeholder, reserveInputWidth]);
|
|
98
|
-
_react.useEffect.call(void 0, () => {
|
|
99
|
-
recalculate();
|
|
100
|
-
}, [recalculate]);
|
|
101
|
-
_react.useEffect.call(void 0, () => {
|
|
102
|
-
const el = middleRef.current;
|
|
103
|
-
if (!el) return;
|
|
104
|
-
const ro = new ResizeObserver(recalculate);
|
|
105
|
-
ro.observe(el);
|
|
106
|
-
return () => ro.disconnect();
|
|
107
|
-
}, [recalculate]);
|
|
108
|
-
return { visibleCount, middleRef, measureRef, textMeasureRef, badgeRef, inputRef };
|
|
109
|
-
}
|
|
110
34
|
|
|
111
|
-
// src/hooks/ui/use-debounce.ts
|
|
112
35
|
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
_react.useEffect.call(void 0, () => {
|
|
116
|
-
const timer = setTimeout(() => {
|
|
117
|
-
setDebouncedValue(value);
|
|
118
|
-
}, delay);
|
|
119
|
-
return () => {
|
|
120
|
-
clearTimeout(timer);
|
|
121
|
-
};
|
|
122
|
-
}, [value, delay]);
|
|
123
|
-
return debouncedValue;
|
|
124
|
-
}
|
|
36
|
+
var _chunkFIG2RKZFcjs = require('./chunk-FIG2RKZF.cjs');
|
|
37
|
+
|
|
125
38
|
|
|
126
|
-
// src/hooks/ui/use-header-height.ts
|
|
127
39
|
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
var _chunkZS2SBWBRcjs = require('./chunk-ZS2SBWBR.cjs');
|
|
46
|
+
|
|
47
|
+
// src/hooks/ui/use-header-height.ts
|
|
48
|
+
var _react = require('react'); var React = _interopRequireWildcard(_react);
|
|
128
49
|
function useHeaderHeight(defaultHeight = 64) {
|
|
129
50
|
const [height, setHeight] = _react.useState.call(void 0, defaultHeight);
|
|
130
51
|
_react.useEffect.call(void 0, () => {
|
|
@@ -583,16 +504,16 @@ function useNotificationPermission() {
|
|
|
583
504
|
sync();
|
|
584
505
|
let cancelled = false;
|
|
585
506
|
let status;
|
|
586
|
-
_optionalChain([navigator, 'access',
|
|
507
|
+
_optionalChain([navigator, 'access', _2 => _2.permissions, 'optionalAccess', _3 => _3.query, 'call', _4 => _4({ name: "notifications" }), 'access', _5 => _5.then, 'call', _6 => _6((s) => {
|
|
587
508
|
if (cancelled) return;
|
|
588
509
|
status = s;
|
|
589
510
|
s.addEventListener("change", sync);
|
|
590
|
-
}), 'access',
|
|
511
|
+
}), 'access', _7 => _7.catch, 'call', _8 => _8(() => void 0)]);
|
|
591
512
|
document.addEventListener("visibilitychange", sync);
|
|
592
513
|
window.addEventListener("focus", sync);
|
|
593
514
|
return () => {
|
|
594
515
|
cancelled = true;
|
|
595
|
-
_optionalChain([status, 'optionalAccess',
|
|
516
|
+
_optionalChain([status, 'optionalAccess', _9 => _9.removeEventListener, 'call', _10 => _10("change", sync)]);
|
|
596
517
|
document.removeEventListener("visibilitychange", sync);
|
|
597
518
|
window.removeEventListener("focus", sync);
|
|
598
519
|
};
|
|
@@ -757,7 +678,7 @@ function useSearch(config) {
|
|
|
757
678
|
const [results, setResults] = _react.useState.call(void 0, []);
|
|
758
679
|
const [isLoading, setIsLoading] = _react.useState.call(void 0, false);
|
|
759
680
|
const [error, setError] = _react.useState.call(void 0, null);
|
|
760
|
-
const debouncedQuery = useDebounce(query, debounceMs);
|
|
681
|
+
const debouncedQuery = _chunkYETA25JWcjs.useDebounce.call(void 0, query, debounceMs);
|
|
761
682
|
const clearResults = _react.useCallback.call(void 0, () => {
|
|
762
683
|
setResults([]);
|
|
763
684
|
setError(null);
|
|
@@ -884,180 +805,6 @@ function useWindowSize() {
|
|
|
884
805
|
|
|
885
806
|
// src/hooks/platform/use-platform-config.ts
|
|
886
807
|
|
|
887
|
-
|
|
888
|
-
// src/utils/platform-config.tsx
|
|
889
|
-
var _lucidereact = require('lucide-react');
|
|
890
|
-
var _jsxruntime = require('react/jsx-runtime');
|
|
891
|
-
var platformIcons = {
|
|
892
|
-
openframe: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLGLPNWS6cjs.OpenFrameLogo, { className: "h-5 w-5", lowerPathColor: "#FFC008", upperPathColor: "#ffffff" }),
|
|
893
|
-
openmsp: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLGLPNWS6cjs.OpenmspLogo, { className: "h-5 w-5" }),
|
|
894
|
-
flamingo: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLGLPNWS6cjs.FlamingoLogo, { className: "h-5 w-5", fill: "#EC4899" }),
|
|
895
|
-
"flamingo-teaser": /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLGLPNWS6cjs.FlamingoLogo, { className: "h-5 w-5", fill: "#EC4899" }),
|
|
896
|
-
"marketing-hub": /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLGLPNWS6cjs.FlamingoLogo, { className: "h-5 w-5", fill: "#F357BB" }),
|
|
897
|
-
"product-hub": /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLGLPNWS6cjs.FlamingoLogo, { className: "h-5 w-5", fill: "#5EA62E" }),
|
|
898
|
-
"revenue-hub": /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLGLPNWS6cjs.FlamingoLogo, { className: "h-5 w-5", fill: "#FFC008" }),
|
|
899
|
-
"people-hub": /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLGLPNWS6cjs.FlamingoLogo, { className: "h-5 w-5", fill: "#5EFAF0" }),
|
|
900
|
-
"company-hub": /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLGLPNWS6cjs.FlamingoLogo, { className: "h-5 w-5", fill: "#f36666" }),
|
|
901
|
-
tmcg: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLGLPNWS6cjs.MiamiCyberGangLogoFaceOnly, { className: "h-5 w-5" }),
|
|
902
|
-
universal: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Globe, { className: "h-5 w-5 text-[#10B981]" })
|
|
903
|
-
};
|
|
904
|
-
var platformColors = {
|
|
905
|
-
openmsp: "bg-[#3B82F6]",
|
|
906
|
-
openframe: "bg-[#8B5CF6]",
|
|
907
|
-
flamingo: "bg-[#EC4899]",
|
|
908
|
-
"flamingo-teaser": "bg-[#F59E0B]",
|
|
909
|
-
"marketing-hub": "bg-[#F357BB]",
|
|
910
|
-
"product-hub": "bg-[#5EA62E]",
|
|
911
|
-
"revenue-hub": "bg-[#FFC008]",
|
|
912
|
-
"people-hub": "bg-[#5EFAF0]",
|
|
913
|
-
"company-hub": "bg-[#f36666]",
|
|
914
|
-
tmcg: "bg-[#FF6B6B]",
|
|
915
|
-
universal: "bg-[#10B981]"
|
|
916
|
-
};
|
|
917
|
-
var platformDisplayNames = {
|
|
918
|
-
openmsp: "OpenMSP",
|
|
919
|
-
openframe: "OpenFrame",
|
|
920
|
-
flamingo: "Flamingo",
|
|
921
|
-
"flamingo-teaser": "Flamingo Teaser",
|
|
922
|
-
"marketing-hub": "Flamingo Marketing Hub",
|
|
923
|
-
"product-hub": "Flamingo Product Hub",
|
|
924
|
-
"revenue-hub": "Flamingo Revenue Hub",
|
|
925
|
-
"people-hub": "Flamingo People Hub",
|
|
926
|
-
"company-hub": "Flamingo Company Hub",
|
|
927
|
-
tmcg: "TMCG",
|
|
928
|
-
universal: "Universal"
|
|
929
|
-
};
|
|
930
|
-
var platformDescriptions = {
|
|
931
|
-
openmsp: "Comprehensive directory and comparison platform for managed service providers (MSPs) and technology vendors. Reduce vendor costs and discover open-source alternatives.",
|
|
932
|
-
openframe: "AI-driven open-source security operations center (SOC) and endpoint detection platform for MSPs.",
|
|
933
|
-
flamingo: "AI-driven open-source OS for MSPs. Swap bloated vendor tools for open ones. Automate the boring crap. Take your margin back.",
|
|
934
|
-
"flamingo-teaser": "Preview of Flamingo - the AI-driven open-source OS for MSPs.",
|
|
935
|
-
tmcg: "The Miami Cyber Gang - A cybersecurity community focused on education and collaboration.",
|
|
936
|
-
universal: "Cross-platform universal content."
|
|
937
|
-
};
|
|
938
|
-
var platformSlogans = {
|
|
939
|
-
openmsp: "Find Your Perfect MSP Partner",
|
|
940
|
-
openframe: "Open-Source Security Operations",
|
|
941
|
-
flamingo: "Open-Source OS for MSPs",
|
|
942
|
-
"flamingo-teaser": "Coming Soon: Open-Source OS for MSPs",
|
|
943
|
-
tmcg: "Miami Cyber Community",
|
|
944
|
-
universal: "Universal Platform"
|
|
945
|
-
};
|
|
946
|
-
var platformHexColors = {
|
|
947
|
-
openmsp: "#FFC008",
|
|
948
|
-
openframe: "#FFC008",
|
|
949
|
-
flamingo: "#FF6B9D",
|
|
950
|
-
universal: "#FFC008",
|
|
951
|
-
"flamingo-teaser": "#F59E0B",
|
|
952
|
-
"marketing-hub": "#F357BB",
|
|
953
|
-
"product-hub": "#5EA62E",
|
|
954
|
-
"revenue-hub": "#FFC008",
|
|
955
|
-
"people-hub": "#5EFAF0",
|
|
956
|
-
"company-hub": "#f36666",
|
|
957
|
-
tmcg: "#FF6B6B"
|
|
958
|
-
};
|
|
959
|
-
var platformIconNames = {
|
|
960
|
-
openmsp: "openmsp-logo",
|
|
961
|
-
openframe: "openframe-logo",
|
|
962
|
-
flamingo: "flamingo-logo",
|
|
963
|
-
universal: "globe",
|
|
964
|
-
"flamingo-teaser": "flamingo-logo",
|
|
965
|
-
"marketing-hub": "flamingo-logo",
|
|
966
|
-
"product-hub": "flamingo-logo",
|
|
967
|
-
"revenue-hub": "flamingo-logo",
|
|
968
|
-
"people-hub": "flamingo-logo",
|
|
969
|
-
"company-hub": "flamingo-logo",
|
|
970
|
-
tmcg: "tmcg-logo"
|
|
971
|
-
};
|
|
972
|
-
function getDefaultColorForPlatform(platformName) {
|
|
973
|
-
return platformHexColors[platformName] || platformHexColors.universal;
|
|
974
|
-
}
|
|
975
|
-
function getDefaultIconForPlatform(platformName) {
|
|
976
|
-
return platformIconNames[platformName] || platformIconNames.universal;
|
|
977
|
-
}
|
|
978
|
-
function transformPlatformConfigsToOptions(platformConfigs) {
|
|
979
|
-
return platformConfigs.map((platform) => ({
|
|
980
|
-
id: platform.id,
|
|
981
|
-
// Database UUID for matching
|
|
982
|
-
name: platform.name,
|
|
983
|
-
// Platform name enum
|
|
984
|
-
displayName: platform.display_name,
|
|
985
|
-
// Human-readable name
|
|
986
|
-
description: platform.description,
|
|
987
|
-
icon: platformIcons[platform.name] || platformIcons.universal,
|
|
988
|
-
color: platformColors[platform.name] || platformColors.universal
|
|
989
|
-
}));
|
|
990
|
-
}
|
|
991
|
-
function getPlatformIcon(platformName) {
|
|
992
|
-
return platformIcons[platformName] || platformIcons.universal;
|
|
993
|
-
}
|
|
994
|
-
function getPlatformColor(platformName) {
|
|
995
|
-
return platformColors[platformName] || platformColors.universal;
|
|
996
|
-
}
|
|
997
|
-
function getPlatformDisplayName(platformName) {
|
|
998
|
-
return platformDisplayNames[platformName] || platformName;
|
|
999
|
-
}
|
|
1000
|
-
function getPlatformDescription(platformName) {
|
|
1001
|
-
return platformDescriptions[platformName] || platformName;
|
|
1002
|
-
}
|
|
1003
|
-
function getPlatformSlogan(platformName) {
|
|
1004
|
-
return platformSlogans[platformName] || platformName;
|
|
1005
|
-
}
|
|
1006
|
-
function getSmallPlatformIcon(platformName) {
|
|
1007
|
-
const className = "h-4 w-4 flex-shrink-0";
|
|
1008
|
-
switch (platformName) {
|
|
1009
|
-
case "openframe":
|
|
1010
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLGLPNWS6cjs.OpenFrameLogo, { className, lowerPathColor: "#FFC008", upperPathColor: "#ffffff" });
|
|
1011
|
-
case "openmsp":
|
|
1012
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLGLPNWS6cjs.OpenmspLogo, { className, frontBubbleColor: "#f1f1f1", innerFrontBubbleColor: "#000000", backBubbleColor: "#FFC008" });
|
|
1013
|
-
case "flamingo":
|
|
1014
|
-
case "flamingo-teaser":
|
|
1015
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLGLPNWS6cjs.FlamingoLogo, { className: `${className}`, fill: "#EC4899" });
|
|
1016
|
-
case "marketing-hub":
|
|
1017
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLGLPNWS6cjs.FlamingoLogo, { className, fill: "var(--ods-flamingo-pink-base)" });
|
|
1018
|
-
case "product-hub":
|
|
1019
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLGLPNWS6cjs.FlamingoLogo, { className, fill: "var(--ods-attention-green-success)" });
|
|
1020
|
-
case "revenue-hub":
|
|
1021
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLGLPNWS6cjs.FlamingoLogo, { className, fill: "var(--ods-attention-yellow-warning)" });
|
|
1022
|
-
case "people-hub":
|
|
1023
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLGLPNWS6cjs.FlamingoLogo, { className, fill: "var(--ods-flamingo-cyan-base)" });
|
|
1024
|
-
case "company-hub":
|
|
1025
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLGLPNWS6cjs.FlamingoLogo, { className, fill: "var(--ods-attention-red-error)" });
|
|
1026
|
-
case "tmcg":
|
|
1027
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLGLPNWS6cjs.MiamiCyberGangLogoFaceOnly, { className });
|
|
1028
|
-
case "universal":
|
|
1029
|
-
default:
|
|
1030
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Globe, { className });
|
|
1031
|
-
}
|
|
1032
|
-
}
|
|
1033
|
-
function getPlatformIconComponent(platformName, className = "h-6 w-6") {
|
|
1034
|
-
switch (platformName) {
|
|
1035
|
-
case "openframe":
|
|
1036
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLGLPNWS6cjs.OpenFrameLogo, { className });
|
|
1037
|
-
case "openmsp":
|
|
1038
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLGLPNWS6cjs.OpenmspLogo, { className, color: "#f1f1f1" });
|
|
1039
|
-
case "flamingo":
|
|
1040
|
-
case "flamingo-teaser":
|
|
1041
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLGLPNWS6cjs.FlamingoLogo, { className: `${className} text-white` });
|
|
1042
|
-
case "marketing-hub":
|
|
1043
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLGLPNWS6cjs.FlamingoLogo, { className, fill: "var(--ods-flamingo-pink-base)" });
|
|
1044
|
-
case "product-hub":
|
|
1045
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLGLPNWS6cjs.FlamingoLogo, { className, fill: "var(--ods-attention-green-success)" });
|
|
1046
|
-
case "revenue-hub":
|
|
1047
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLGLPNWS6cjs.FlamingoLogo, { className, fill: "var(--ods-attention-yellow-warning)" });
|
|
1048
|
-
case "people-hub":
|
|
1049
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLGLPNWS6cjs.FlamingoLogo, { className, fill: "var(--ods-flamingo-cyan-base)" });
|
|
1050
|
-
case "company-hub":
|
|
1051
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLGLPNWS6cjs.FlamingoLogo, { className, fill: "var(--ods-attention-red-error)" });
|
|
1052
|
-
case "tmcg":
|
|
1053
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLGLPNWS6cjs.MiamiCyberGangLogoFaceOnly, { size: 24, className });
|
|
1054
|
-
case "universal":
|
|
1055
|
-
default:
|
|
1056
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Globe, { className });
|
|
1057
|
-
}
|
|
1058
|
-
}
|
|
1059
|
-
|
|
1060
|
-
// src/hooks/platform/use-platform-config.ts
|
|
1061
808
|
var platformCache = null;
|
|
1062
809
|
var fetchPromise = null;
|
|
1063
810
|
function usePlatformConfig() {
|
|
@@ -1110,7 +857,7 @@ function usePlatformConfig() {
|
|
|
1110
857
|
label: platform.label
|
|
1111
858
|
}))
|
|
1112
859
|
];
|
|
1113
|
-
const selectableOptions = transformPlatformConfigsToOptions(platforms);
|
|
860
|
+
const selectableOptions = _chunkLFGGF7OTcjs.transformPlatformConfigsToOptions.call(void 0, platforms);
|
|
1114
861
|
return {
|
|
1115
862
|
platforms,
|
|
1116
863
|
platformOptions,
|
|
@@ -1135,32 +882,8 @@ var _sonner = require('sonner');
|
|
|
1135
882
|
|
|
1136
883
|
|
|
1137
884
|
|
|
1138
|
-
// src/types/tool.types.ts
|
|
1139
|
-
var ToolTypeValues = {
|
|
1140
|
-
TACTICAL_RMM: "TACTICAL_RMM",
|
|
1141
|
-
FLEET_MDM: "FLEET_MDM",
|
|
1142
|
-
MESHCENTRAL: "MESHCENTRAL",
|
|
1143
|
-
AUTHENTIK: "AUTHENTIK",
|
|
1144
|
-
OPENFRAME: "OPENFRAME",
|
|
1145
|
-
OPENFRAME_CHAT: "OPENFRAME_CHAT",
|
|
1146
|
-
OPENFRAME_CLIENT: "OPENFRAME_CLIENT",
|
|
1147
|
-
OSQUERY: "OSQUERY",
|
|
1148
|
-
SYSTEM: "SYSTEM"
|
|
1149
|
-
};
|
|
1150
|
-
var toolLabels = {
|
|
1151
|
-
TACTICAL_RMM: "Tactical",
|
|
1152
|
-
FLEET_MDM: "Fleet",
|
|
1153
|
-
MESHCENTRAL: "MeshCentral",
|
|
1154
|
-
AUTHENTIK: "Authentik",
|
|
1155
|
-
OPENFRAME: "OpenFrame",
|
|
1156
|
-
OPENFRAME_CHAT: "OpenFrame Chat",
|
|
1157
|
-
OPENFRAME_CLIENT: "OpenFrame Client",
|
|
1158
|
-
OSQUERY: "Osquery",
|
|
1159
|
-
SYSTEM: "System"
|
|
1160
|
-
};
|
|
1161
|
-
|
|
1162
885
|
// src/components/tool-icon.tsx
|
|
1163
|
-
|
|
886
|
+
var _jsxruntime = require('react/jsx-runtime');
|
|
1164
887
|
var renderOpenFrameLogo = (_size, className) => (
|
|
1165
888
|
// eslint-disable-next-line deprecation/deprecation
|
|
1166
889
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
@@ -1173,17 +896,17 @@ var renderOpenFrameLogo = (_size, className) => (
|
|
|
1173
896
|
)
|
|
1174
897
|
);
|
|
1175
898
|
var toolIconMap = {
|
|
1176
|
-
[ToolTypeValues.FLEET_MDM]: (size, className) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZS2SBWBRcjs.FleetMdmLogoGreyIcon, { size, className }),
|
|
1177
|
-
[ToolTypeValues.MESHCENTRAL]: (size, className) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZS2SBWBRcjs.MeshcentralLogoGreyIcon, { size, className }),
|
|
1178
|
-
[ToolTypeValues.TACTICAL_RMM]: (size, className) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZS2SBWBRcjs.TacticalRmmLogoIcon, { size, className }),
|
|
1179
|
-
[ToolTypeValues.OPENFRAME]: renderOpenFrameLogo,
|
|
1180
|
-
[ToolTypeValues.OPENFRAME_CHAT]: renderOpenFrameLogo,
|
|
1181
|
-
[ToolTypeValues.OPENFRAME_CLIENT]: renderOpenFrameLogo,
|
|
1182
|
-
[ToolTypeValues.AUTHENTIK]: (size, className) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZS2SBWBRcjs.AuthentikLogoGreyIcon, { size, className }),
|
|
1183
|
-
[ToolTypeValues.OSQUERY]: (size, className) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZS2SBWBRcjs.OsqueryLogoGreyIcon, { size, className }),
|
|
1184
|
-
[ToolTypeValues.SYSTEM]: () => null
|
|
899
|
+
[_chunkLFGGF7OTcjs.ToolTypeValues.FLEET_MDM]: (size, className) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZS2SBWBRcjs.FleetMdmLogoGreyIcon, { size, className }),
|
|
900
|
+
[_chunkLFGGF7OTcjs.ToolTypeValues.MESHCENTRAL]: (size, className) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZS2SBWBRcjs.MeshcentralLogoGreyIcon, { size, className }),
|
|
901
|
+
[_chunkLFGGF7OTcjs.ToolTypeValues.TACTICAL_RMM]: (size, className) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZS2SBWBRcjs.TacticalRmmLogoIcon, { size, className }),
|
|
902
|
+
[_chunkLFGGF7OTcjs.ToolTypeValues.OPENFRAME]: renderOpenFrameLogo,
|
|
903
|
+
[_chunkLFGGF7OTcjs.ToolTypeValues.OPENFRAME_CHAT]: renderOpenFrameLogo,
|
|
904
|
+
[_chunkLFGGF7OTcjs.ToolTypeValues.OPENFRAME_CLIENT]: renderOpenFrameLogo,
|
|
905
|
+
[_chunkLFGGF7OTcjs.ToolTypeValues.AUTHENTIK]: (size, className) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZS2SBWBRcjs.AuthentikLogoGreyIcon, { size, className }),
|
|
906
|
+
[_chunkLFGGF7OTcjs.ToolTypeValues.OSQUERY]: (size, className) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZS2SBWBRcjs.OsqueryLogoGreyIcon, { size, className }),
|
|
907
|
+
[_chunkLFGGF7OTcjs.ToolTypeValues.SYSTEM]: () => null
|
|
1185
908
|
};
|
|
1186
|
-
var ToolIcon = ({ toolType, size = 16, className }) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _jsxruntime.Fragment, { children: _nullishCoalesce(_optionalChain([toolIconMap, 'access',
|
|
909
|
+
var ToolIcon = ({ toolType, size = 16, className }) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _jsxruntime.Fragment, { children: _nullishCoalesce(_optionalChain([toolIconMap, 'access', _11 => _11[toolType], 'optionalCall', _12 => _12(size, className)]), () => ( null)) });
|
|
1187
910
|
ToolIcon.displayName = "ToolIcon";
|
|
1188
911
|
|
|
1189
912
|
// src/components/ui/toaster.tsx
|
|
@@ -1302,11 +1025,11 @@ function CommandApprovalToast({
|
|
|
1302
1025
|
}) {
|
|
1303
1026
|
const [expanded, setExpanded] = React.useState(defaultExpanded);
|
|
1304
1027
|
const handleApprove = () => {
|
|
1305
|
-
_optionalChain([onApprove, 'optionalCall',
|
|
1028
|
+
_optionalChain([onApprove, 'optionalCall', _13 => _13()]);
|
|
1306
1029
|
_sonner.toast.dismiss(id);
|
|
1307
1030
|
};
|
|
1308
1031
|
const handleReject = () => {
|
|
1309
|
-
_optionalChain([onReject, 'optionalCall',
|
|
1032
|
+
_optionalChain([onReject, 'optionalCall', _14 => _14()]);
|
|
1310
1033
|
_sonner.toast.dismiss(id);
|
|
1311
1034
|
};
|
|
1312
1035
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
@@ -1515,260 +1238,6 @@ var useToast = () => ({
|
|
|
1515
1238
|
// src/hooks/use-contact-submission.ts
|
|
1516
1239
|
|
|
1517
1240
|
_chunkG7UE6RKVcjs.init_next_navigation.call(void 0, );
|
|
1518
|
-
|
|
1519
|
-
// src/utils/local-storage-adapter.ts
|
|
1520
|
-
function getStorage(backend) {
|
|
1521
|
-
if (typeof window === "undefined") return null;
|
|
1522
|
-
try {
|
|
1523
|
-
return backend === "session" ? window.sessionStorage : window.localStorage;
|
|
1524
|
-
} catch (e3) {
|
|
1525
|
-
return null;
|
|
1526
|
-
}
|
|
1527
|
-
}
|
|
1528
|
-
function createLocalStorageAdapter(options) {
|
|
1529
|
-
const tag = _nullishCoalesce(options.logTag, () => ( "[local-storage]"));
|
|
1530
|
-
const backend = _nullishCoalesce(options.backend, () => ( "local"));
|
|
1531
|
-
const resolveKey = () => {
|
|
1532
|
-
const ns = _optionalChain([options, 'access', _19 => _19.namespace, 'optionalCall', _20 => _20()]);
|
|
1533
|
-
return ns ? `${ns}.${options.key}` : options.key;
|
|
1534
|
-
};
|
|
1535
|
-
return {
|
|
1536
|
-
resolveKey,
|
|
1537
|
-
load() {
|
|
1538
|
-
const storage = getStorage(backend);
|
|
1539
|
-
if (!storage) return null;
|
|
1540
|
-
try {
|
|
1541
|
-
const raw = storage.getItem(resolveKey());
|
|
1542
|
-
if (!raw) return null;
|
|
1543
|
-
const parsed = JSON.parse(raw);
|
|
1544
|
-
if (options.validate && !options.validate(parsed)) return null;
|
|
1545
|
-
return parsed;
|
|
1546
|
-
} catch (err) {
|
|
1547
|
-
console.warn(`${tag} parse failed for key ${resolveKey()}:`, err);
|
|
1548
|
-
return null;
|
|
1549
|
-
}
|
|
1550
|
-
},
|
|
1551
|
-
save(value) {
|
|
1552
|
-
const storage = getStorage(backend);
|
|
1553
|
-
if (!storage) return;
|
|
1554
|
-
try {
|
|
1555
|
-
storage.setItem(resolveKey(), JSON.stringify(value));
|
|
1556
|
-
} catch (err) {
|
|
1557
|
-
console.warn(`${tag} write failed for key ${resolveKey()}:`, err);
|
|
1558
|
-
}
|
|
1559
|
-
},
|
|
1560
|
-
clear() {
|
|
1561
|
-
const storage = getStorage(backend);
|
|
1562
|
-
if (!storage) return;
|
|
1563
|
-
try {
|
|
1564
|
-
storage.removeItem(resolveKey());
|
|
1565
|
-
} catch (err) {
|
|
1566
|
-
console.warn(`${tag} clear failed for key ${resolveKey()}:`, err);
|
|
1567
|
-
}
|
|
1568
|
-
}
|
|
1569
|
-
};
|
|
1570
|
-
}
|
|
1571
|
-
|
|
1572
|
-
// src/utils/app-config.ts
|
|
1573
|
-
function getAppType() {
|
|
1574
|
-
return process.env.NEXT_PUBLIC_APP_TYPE || "openmsp";
|
|
1575
|
-
}
|
|
1576
|
-
|
|
1577
|
-
// src/utils/embed-proxy-auth-storage.ts
|
|
1578
|
-
function isValidPersistedAuth(value) {
|
|
1579
|
-
if (!value || typeof value !== "object") return false;
|
|
1580
|
-
const v = value;
|
|
1581
|
-
if (typeof v.secret !== "string" || v.secret.trim().length === 0 || typeof v.email !== "string" || v.email.trim().length === 0) return false;
|
|
1582
|
-
if (v.firstName != null && typeof v.firstName !== "string") return false;
|
|
1583
|
-
if (v.lastName != null && typeof v.lastName !== "string") return false;
|
|
1584
|
-
if (v.avatarUrl != null && typeof v.avatarUrl !== "string") return false;
|
|
1585
|
-
return true;
|
|
1586
|
-
}
|
|
1587
|
-
var adapter = createLocalStorageAdapter({
|
|
1588
|
-
// Storage key unchanged from the legacy chat-prefixed helper. Renaming
|
|
1589
|
-
// it would silently log every existing admin out — the key is a
|
|
1590
|
-
// storage contract, not a code identifier.
|
|
1591
|
-
key: "chat.proxy-auth.v1",
|
|
1592
|
-
namespace: () => getAppType(),
|
|
1593
|
-
validate: isValidPersistedAuth,
|
|
1594
|
-
logTag: "[embed-proxy-auth-storage]",
|
|
1595
|
-
// localStorage — survives tab close, new tabs, and browser restarts.
|
|
1596
|
-
// Admin re-pasting creds every tab cycle was the dev-experience
|
|
1597
|
-
// tradeoff prior `sessionStorage` setup demanded — rejected. See
|
|
1598
|
-
// file-level doc comment for the security tradeoff rationale.
|
|
1599
|
-
backend: "local"
|
|
1600
|
-
});
|
|
1601
|
-
function normalizeOptional(value) {
|
|
1602
|
-
if (!value) return void 0;
|
|
1603
|
-
const trimmed = value.trim();
|
|
1604
|
-
return trimmed.length > 0 ? trimmed : void 0;
|
|
1605
|
-
}
|
|
1606
|
-
function getEmbedProxyAuth() {
|
|
1607
|
-
const persisted = adapter.load();
|
|
1608
|
-
if (!persisted) return null;
|
|
1609
|
-
return {
|
|
1610
|
-
secret: persisted.secret,
|
|
1611
|
-
email: persisted.email.trim().toLowerCase(),
|
|
1612
|
-
firstName: normalizeOptional(persisted.firstName),
|
|
1613
|
-
lastName: normalizeOptional(persisted.lastName),
|
|
1614
|
-
avatarUrl: normalizeOptional(persisted.avatarUrl)
|
|
1615
|
-
};
|
|
1616
|
-
}
|
|
1617
|
-
function getPersistedProxyEmail() {
|
|
1618
|
-
const persisted = adapter.load();
|
|
1619
|
-
return _nullishCoalesce(_optionalChain([persisted, 'optionalAccess', _21 => _21.email, 'access', _22 => _22.trim, 'call', _23 => _23(), 'access', _24 => _24.toLowerCase, 'call', _25 => _25()]), () => ( null));
|
|
1620
|
-
}
|
|
1621
|
-
function setEmbedProxyAuth(value) {
|
|
1622
|
-
adapter.save({
|
|
1623
|
-
secret: value.secret,
|
|
1624
|
-
email: value.email.trim().toLowerCase(),
|
|
1625
|
-
firstName: normalizeOptional(value.firstName),
|
|
1626
|
-
lastName: normalizeOptional(value.lastName),
|
|
1627
|
-
avatarUrl: normalizeOptional(value.avatarUrl)
|
|
1628
|
-
});
|
|
1629
|
-
}
|
|
1630
|
-
function clearEmbedProxyAuth() {
|
|
1631
|
-
adapter.clear();
|
|
1632
|
-
}
|
|
1633
|
-
function applyProxyAuth(url, baseHeaders = { "Content-Type": "application/json" }) {
|
|
1634
|
-
const auth = getEmbedProxyAuth();
|
|
1635
|
-
const headers = { ...baseHeaders };
|
|
1636
|
-
if (_optionalChain([auth, 'optionalAccess', _26 => _26.secret])) {
|
|
1637
|
-
headers.Authorization = `Bearer ${auth.secret}`;
|
|
1638
|
-
}
|
|
1639
|
-
if (_optionalChain([auth, 'optionalAccess', _27 => _27.email])) {
|
|
1640
|
-
headers["X-Chat-Act-As"] = auth.email;
|
|
1641
|
-
}
|
|
1642
|
-
if (_optionalChain([auth, 'optionalAccess', _28 => _28.firstName])) headers["X-Chat-First-Name"] = auth.firstName;
|
|
1643
|
-
if (_optionalChain([auth, 'optionalAccess', _29 => _29.lastName])) headers["X-Chat-Last-Name"] = auth.lastName;
|
|
1644
|
-
if (_optionalChain([auth, 'optionalAccess', _30 => _30.avatarUrl])) headers["X-Chat-Avatar-Url"] = auth.avatarUrl;
|
|
1645
|
-
return { url, headers };
|
|
1646
|
-
}
|
|
1647
|
-
|
|
1648
|
-
// src/utils/embed-authed-fetch.ts
|
|
1649
|
-
var ADAPTER_GLOBAL_KEY = "__embedAuthedFetchAdapter__";
|
|
1650
|
-
function getRegisteredAuthAdapter() {
|
|
1651
|
-
if (typeof globalThis === "undefined") return null;
|
|
1652
|
-
return _nullishCoalesce(globalThis[ADAPTER_GLOBAL_KEY], () => ( null));
|
|
1653
|
-
}
|
|
1654
|
-
function storeRegisteredAuthAdapter(adapter2) {
|
|
1655
|
-
if (typeof globalThis === "undefined") return;
|
|
1656
|
-
globalThis[ADAPTER_GLOBAL_KEY] = adapter2;
|
|
1657
|
-
}
|
|
1658
|
-
function setEmbedAuthAdapter(adapter2) {
|
|
1659
|
-
if (adapter2 && getRegisteredAuthAdapter() && process.env.NODE_ENV !== "production") {
|
|
1660
|
-
console.warn(
|
|
1661
|
-
"[setEmbedAuthAdapter] overwriting a previously-registered auth adapter. Two chat-runtime providers should not coexist \u2014 verify mount order and pass `null` from the unmounting provider."
|
|
1662
|
-
);
|
|
1663
|
-
}
|
|
1664
|
-
storeRegisteredAuthAdapter(adapter2);
|
|
1665
|
-
}
|
|
1666
|
-
function hasEmbedAuthAdapter() {
|
|
1667
|
-
return getRegisteredAuthAdapter() !== null;
|
|
1668
|
-
}
|
|
1669
|
-
function embedAuthedFetch(url, init = {}) {
|
|
1670
|
-
assertSameOrigin(url);
|
|
1671
|
-
let baseHeaders;
|
|
1672
|
-
if (init.headers === void 0) {
|
|
1673
|
-
baseHeaders = { "Content-Type": "application/json" };
|
|
1674
|
-
} else {
|
|
1675
|
-
baseHeaders = {};
|
|
1676
|
-
if (init.headers instanceof Headers) {
|
|
1677
|
-
init.headers.forEach((v, k) => {
|
|
1678
|
-
baseHeaders[k] = v;
|
|
1679
|
-
});
|
|
1680
|
-
} else if (Array.isArray(init.headers)) {
|
|
1681
|
-
for (const [k, v] of init.headers) baseHeaders[k] = v;
|
|
1682
|
-
} else {
|
|
1683
|
-
Object.assign(baseHeaders, init.headers);
|
|
1684
|
-
}
|
|
1685
|
-
}
|
|
1686
|
-
return fetchWithRefresh(url, init, baseHeaders, false);
|
|
1687
|
-
}
|
|
1688
|
-
var IN_FLIGHT_REFRESH_GLOBAL_KEY = "__embedAuthedFetchInFlightRefresh__";
|
|
1689
|
-
function getInFlightRefresh() {
|
|
1690
|
-
if (typeof globalThis === "undefined") return null;
|
|
1691
|
-
return _nullishCoalesce(globalThis[IN_FLIGHT_REFRESH_GLOBAL_KEY], () => ( null));
|
|
1692
|
-
}
|
|
1693
|
-
function setInFlightRefresh(refresh) {
|
|
1694
|
-
if (typeof globalThis === "undefined") return;
|
|
1695
|
-
globalThis[IN_FLIGHT_REFRESH_GLOBAL_KEY] = refresh;
|
|
1696
|
-
}
|
|
1697
|
-
function dedupedRefresh() {
|
|
1698
|
-
const adapter2 = getRegisteredAuthAdapter();
|
|
1699
|
-
if (!_optionalChain([adapter2, 'optionalAccess', _31 => _31.refresh])) return Promise.resolve(false);
|
|
1700
|
-
let inFlightRefresh = getInFlightRefresh();
|
|
1701
|
-
if (!inFlightRefresh) {
|
|
1702
|
-
inFlightRefresh = Promise.resolve().then(() => adapter2.refresh()).catch(() => false).finally(() => {
|
|
1703
|
-
setInFlightRefresh(null);
|
|
1704
|
-
});
|
|
1705
|
-
setInFlightRefresh(inFlightRefresh);
|
|
1706
|
-
}
|
|
1707
|
-
return inFlightRefresh;
|
|
1708
|
-
}
|
|
1709
|
-
async function fetchWithRefresh(url, init, baseHeaders, isRetry) {
|
|
1710
|
-
const { url: authedUrl, headers } = applyProxyAuth(url, { ...baseHeaders });
|
|
1711
|
-
const adapter2 = getRegisteredAuthAdapter();
|
|
1712
|
-
if (_optionalChain([adapter2, 'optionalAccess', _32 => _32.getHeaders])) {
|
|
1713
|
-
for (const [k, v] of Object.entries(adapter2.getHeaders())) {
|
|
1714
|
-
if (v !== void 0) headers[k] = v;
|
|
1715
|
-
}
|
|
1716
|
-
}
|
|
1717
|
-
const credentials = _nullishCoalesce(_nullishCoalesce(_optionalChain([adapter2, 'optionalAccess', _33 => _33.credentials]), () => ( init.credentials)), () => ( "same-origin"));
|
|
1718
|
-
const response = await fetch(authedUrl, {
|
|
1719
|
-
...init,
|
|
1720
|
-
headers,
|
|
1721
|
-
// Default `same-origin` carries Supabase cookies for the MPH proxy-
|
|
1722
|
-
// auth model. Hosts on different origins (openframe-frontend ↔
|
|
1723
|
-
// openframe gateway) register `credentials: 'include'` via the
|
|
1724
|
-
// adapter to make their own cookies travel cross-origin (CORS +
|
|
1725
|
-
// `SameSite=None` must be configured server-side for that to work).
|
|
1726
|
-
credentials
|
|
1727
|
-
});
|
|
1728
|
-
if (response.status === 401 && !isRetry && _optionalChain([adapter2, 'optionalAccess', _34 => _34.refresh])) {
|
|
1729
|
-
const refreshed = await dedupedRefresh();
|
|
1730
|
-
if (refreshed) {
|
|
1731
|
-
return fetchWithRefresh(url, init, baseHeaders, true);
|
|
1732
|
-
}
|
|
1733
|
-
}
|
|
1734
|
-
return response;
|
|
1735
|
-
}
|
|
1736
|
-
function assertSameOrigin(url) {
|
|
1737
|
-
if (typeof window === "undefined") return;
|
|
1738
|
-
let target;
|
|
1739
|
-
let pageOrigin;
|
|
1740
|
-
try {
|
|
1741
|
-
target = new URL(url, window.location.href);
|
|
1742
|
-
pageOrigin = new URL(window.location.href).origin;
|
|
1743
|
-
} catch (e4) {
|
|
1744
|
-
throw new Error(`embedAuthedFetch: refusing to fetch malformed URL (${JSON.stringify(url)})`);
|
|
1745
|
-
}
|
|
1746
|
-
if (target.protocol !== "http:" && target.protocol !== "https:") {
|
|
1747
|
-
throw new Error(
|
|
1748
|
-
`embedAuthedFetch: refusing non-http(s) URL (${target.protocol}) \u2014 pass a relative /api/* path instead`
|
|
1749
|
-
);
|
|
1750
|
-
}
|
|
1751
|
-
if (target.origin !== pageOrigin) {
|
|
1752
|
-
if (process.env.NODE_ENV !== "production") {
|
|
1753
|
-
console.warn(
|
|
1754
|
-
`[embedAuthedFetch] cross-origin fetch to ${target.origin} allowed in dev (NODE_ENV !== 'production'). Production builds will reject this \u2014 wire a same-origin proxy before shipping.`
|
|
1755
|
-
);
|
|
1756
|
-
return;
|
|
1757
|
-
}
|
|
1758
|
-
throw new Error(
|
|
1759
|
-
`embedAuthedFetch: refusing cross-origin fetch to ${target.origin} \u2014 pass a relative /api/* path instead`
|
|
1760
|
-
);
|
|
1761
|
-
}
|
|
1762
|
-
}
|
|
1763
|
-
|
|
1764
|
-
// src/utils/embed-content-fetch.ts
|
|
1765
|
-
var contentFetch = (input, init) => {
|
|
1766
|
-
if (!hasEmbedAuthAdapter()) return fetch(input, init);
|
|
1767
|
-
const url = typeof input === "string" ? input : input instanceof URL ? input.href : input.url;
|
|
1768
|
-
return embedAuthedFetch(url, init);
|
|
1769
|
-
};
|
|
1770
|
-
|
|
1771
|
-
// src/hooks/use-contact-submission.ts
|
|
1772
1241
|
function useContactSubmission(options = {}) {
|
|
1773
1242
|
const { userId, successRedirectUrl, successToastMessage, onSuccess } = options;
|
|
1774
1243
|
const { toast: toast2 } = useToast();
|
|
@@ -1780,7 +1249,7 @@ function useContactSubmission(options = {}) {
|
|
|
1780
1249
|
if (isSubmitting) return;
|
|
1781
1250
|
setIsSubmitting(true);
|
|
1782
1251
|
try {
|
|
1783
|
-
const response = await contentFetch(contactUrl, {
|
|
1252
|
+
const response = await _chunkTFSYSWPScjs.contentFetch.call(void 0, contactUrl, {
|
|
1784
1253
|
method: "POST",
|
|
1785
1254
|
headers: { "Content-Type": "application/json" },
|
|
1786
1255
|
body: JSON.stringify({
|
|
@@ -1920,7 +1389,7 @@ function useCopyToClipboard({
|
|
|
1920
1389
|
setCopied(true);
|
|
1921
1390
|
toast2({ title: successTitle, description: successDescription, variant: "success" });
|
|
1922
1391
|
setTimeout(() => setCopied(false), resetDelay);
|
|
1923
|
-
} catch (
|
|
1392
|
+
} catch (e3) {
|
|
1924
1393
|
toast2({ title: errorTitle, description: errorDescription, variant: "destructive" });
|
|
1925
1394
|
}
|
|
1926
1395
|
},
|
|
@@ -2414,7 +1883,7 @@ function setNestedValue(obj, path, value) {
|
|
|
2414
1883
|
}
|
|
2415
1884
|
function getNestedValue(obj, path) {
|
|
2416
1885
|
return path.split(".").reduce((current, key) => {
|
|
2417
|
-
return _optionalChain([current, 'optionalAccess',
|
|
1886
|
+
return _optionalChain([current, 'optionalAccess', _15 => _15[key]]);
|
|
2418
1887
|
}, obj);
|
|
2419
1888
|
}
|
|
2420
1889
|
function mergeVariables(currentVariables, updates, schema) {
|
|
@@ -2583,7 +2052,7 @@ var GraphQLIntrospector = class {
|
|
|
2583
2052
|
try {
|
|
2584
2053
|
localStorage.removeItem(this.cacheKey);
|
|
2585
2054
|
this.schema = null;
|
|
2586
|
-
} catch (
|
|
2055
|
+
} catch (e4) {
|
|
2587
2056
|
}
|
|
2588
2057
|
}
|
|
2589
2058
|
/**
|
|
@@ -3147,125 +2616,8 @@ function useNatsClient(clientOptions, options = {}) {
|
|
|
3147
2616
|
};
|
|
3148
2617
|
}
|
|
3149
2618
|
|
|
3150
|
-
// src/hooks/use-near-viewport.ts
|
|
3151
|
-
|
|
3152
|
-
var observers = /* @__PURE__ */ new Map();
|
|
3153
|
-
var subscribers = /* @__PURE__ */ new WeakMap();
|
|
3154
|
-
function getObserverFor(rootMargin) {
|
|
3155
|
-
const existing = observers.get(rootMargin);
|
|
3156
|
-
if (existing) return existing;
|
|
3157
|
-
const io = new IntersectionObserver(
|
|
3158
|
-
(entries) => {
|
|
3159
|
-
entries.forEach((entry) => {
|
|
3160
|
-
if (!entry.isIntersecting) return;
|
|
3161
|
-
const cb = subscribers.get(entry.target);
|
|
3162
|
-
if (cb) {
|
|
3163
|
-
cb();
|
|
3164
|
-
io.unobserve(entry.target);
|
|
3165
|
-
subscribers.delete(entry.target);
|
|
3166
|
-
}
|
|
3167
|
-
});
|
|
3168
|
-
},
|
|
3169
|
-
{ rootMargin }
|
|
3170
|
-
);
|
|
3171
|
-
observers.set(rootMargin, io);
|
|
3172
|
-
return io;
|
|
3173
|
-
}
|
|
3174
|
-
function useNearViewport(rootMargin = "500px") {
|
|
3175
|
-
const [isNear, setIsNear] = _react.useState.call(void 0, false);
|
|
3176
|
-
const elRef = _react.useRef.call(void 0, null);
|
|
3177
|
-
const ref = _react.useCallback.call(void 0,
|
|
3178
|
-
(node) => {
|
|
3179
|
-
const prev = elRef.current;
|
|
3180
|
-
if (prev) {
|
|
3181
|
-
const stillOurs = subscribers.get(prev);
|
|
3182
|
-
if (stillOurs) {
|
|
3183
|
-
subscribers.delete(prev);
|
|
3184
|
-
_optionalChain([observers, 'access', _36 => _36.get, 'call', _37 => _37(rootMargin), 'optionalAccess', _38 => _38.unobserve, 'call', _39 => _39(prev)]);
|
|
3185
|
-
}
|
|
3186
|
-
}
|
|
3187
|
-
elRef.current = node;
|
|
3188
|
-
if (!node) return;
|
|
3189
|
-
const cb = () => setIsNear(true);
|
|
3190
|
-
subscribers.set(node, cb);
|
|
3191
|
-
getObserverFor(rootMargin).observe(node);
|
|
3192
|
-
},
|
|
3193
|
-
[rootMargin]
|
|
3194
|
-
);
|
|
3195
|
-
_react.useEffect.call(void 0, () => {
|
|
3196
|
-
return () => {
|
|
3197
|
-
const el = elRef.current;
|
|
3198
|
-
if (!el) return;
|
|
3199
|
-
if (subscribers.get(el)) {
|
|
3200
|
-
subscribers.delete(el);
|
|
3201
|
-
_optionalChain([observers, 'access', _40 => _40.get, 'call', _41 => _41(rootMargin), 'optionalAccess', _42 => _42.unobserve, 'call', _43 => _43(el)]);
|
|
3202
|
-
}
|
|
3203
|
-
};
|
|
3204
|
-
}, [rootMargin]);
|
|
3205
|
-
return { ref, isNear };
|
|
3206
|
-
}
|
|
3207
|
-
|
|
3208
2619
|
// src/hooks/use-access-code-integration.ts
|
|
3209
2620
|
|
|
3210
|
-
|
|
3211
|
-
// src/utils/access-code-client.ts
|
|
3212
|
-
async function validateAccessCode(email, code, endpoints) {
|
|
3213
|
-
try {
|
|
3214
|
-
const response = await fetch(endpoints.validateUrl, {
|
|
3215
|
-
method: "POST",
|
|
3216
|
-
headers: {
|
|
3217
|
-
"Content-Type": "application/json"
|
|
3218
|
-
},
|
|
3219
|
-
body: JSON.stringify({ email, code })
|
|
3220
|
-
});
|
|
3221
|
-
if (!response.ok) {
|
|
3222
|
-
const error = await response.json().catch(() => ({}));
|
|
3223
|
-
throw new Error(error.error || "Validation request failed");
|
|
3224
|
-
}
|
|
3225
|
-
return await response.json();
|
|
3226
|
-
} catch (error) {
|
|
3227
|
-
return {
|
|
3228
|
-
valid: false,
|
|
3229
|
-
message: error instanceof Error ? error.message : "Validation failed"
|
|
3230
|
-
};
|
|
3231
|
-
}
|
|
3232
|
-
}
|
|
3233
|
-
async function consumeAccessCode(email, code, endpoints) {
|
|
3234
|
-
try {
|
|
3235
|
-
const response = await fetch(endpoints.consumeUrl, {
|
|
3236
|
-
method: "POST",
|
|
3237
|
-
headers: {
|
|
3238
|
-
"Content-Type": "application/json"
|
|
3239
|
-
},
|
|
3240
|
-
body: JSON.stringify({ email, code })
|
|
3241
|
-
});
|
|
3242
|
-
if (!response.ok) {
|
|
3243
|
-
const error = await response.json().catch(() => ({}));
|
|
3244
|
-
throw new Error(error.error || "Consumption request failed");
|
|
3245
|
-
}
|
|
3246
|
-
return await response.json();
|
|
3247
|
-
} catch (error) {
|
|
3248
|
-
return {
|
|
3249
|
-
success: false,
|
|
3250
|
-
consumed: false,
|
|
3251
|
-
message: error instanceof Error ? error.message : "Consumption failed"
|
|
3252
|
-
};
|
|
3253
|
-
}
|
|
3254
|
-
}
|
|
3255
|
-
async function validateAndConsumeAccessCode(email, code, endpoints) {
|
|
3256
|
-
const validation = await validateAccessCode(email, code, endpoints);
|
|
3257
|
-
if (!validation.valid) {
|
|
3258
|
-
return validation;
|
|
3259
|
-
}
|
|
3260
|
-
const consumption = await consumeAccessCode(email, code, endpoints);
|
|
3261
|
-
return {
|
|
3262
|
-
...validation,
|
|
3263
|
-
consumed: consumption.consumed,
|
|
3264
|
-
message: consumption.consumed ? `Access granted for ${validation.cohort_name}` : consumption.message || validation.message
|
|
3265
|
-
};
|
|
3266
|
-
}
|
|
3267
|
-
|
|
3268
|
-
// src/hooks/use-access-code-integration.ts
|
|
3269
2621
|
function useAccessCodeIntegration() {
|
|
3270
2622
|
const runtime = _chunk27APPAJNcjs.useRequiredEndpointsRuntime.call(void 0, );
|
|
3271
2623
|
const endpoints = runtime.accessCode;
|
|
@@ -3274,7 +2626,7 @@ function useAccessCodeIntegration() {
|
|
|
3274
2626
|
const validate = async (email, code) => {
|
|
3275
2627
|
setIsValidating(true);
|
|
3276
2628
|
try {
|
|
3277
|
-
return await validateAccessCode(email, code, endpoints);
|
|
2629
|
+
return await _chunkLFGGF7OTcjs.validateAccessCode.call(void 0, email, code, endpoints);
|
|
3278
2630
|
} finally {
|
|
3279
2631
|
setIsValidating(false);
|
|
3280
2632
|
}
|
|
@@ -3282,7 +2634,7 @@ function useAccessCodeIntegration() {
|
|
|
3282
2634
|
const consume = async (email, code) => {
|
|
3283
2635
|
setIsConsuming(true);
|
|
3284
2636
|
try {
|
|
3285
|
-
return await consumeAccessCode(email, code, endpoints);
|
|
2637
|
+
return await _chunkLFGGF7OTcjs.consumeAccessCode.call(void 0, email, code, endpoints);
|
|
3286
2638
|
} finally {
|
|
3287
2639
|
setIsConsuming(false);
|
|
3288
2640
|
}
|
|
@@ -3291,7 +2643,7 @@ function useAccessCodeIntegration() {
|
|
|
3291
2643
|
setIsValidating(true);
|
|
3292
2644
|
setIsConsuming(true);
|
|
3293
2645
|
try {
|
|
3294
|
-
return await validateAndConsumeAccessCode(email, code, endpoints);
|
|
2646
|
+
return await _chunkLFGGF7OTcjs.validateAndConsumeAccessCode.call(void 0, email, code, endpoints);
|
|
3295
2647
|
} finally {
|
|
3296
2648
|
setIsValidating(false);
|
|
3297
2649
|
setIsConsuming(false);
|
|
@@ -3307,157 +2659,11 @@ function useAccessCodeIntegration() {
|
|
|
3307
2659
|
};
|
|
3308
2660
|
}
|
|
3309
2661
|
|
|
3310
|
-
// src/hooks/use-og-placeholder.ts
|
|
3311
|
-
|
|
3312
|
-
function useOgPlaceholder(buildUrl, title, siteName = "", enabled = true, aspect = "wide") {
|
|
3313
|
-
return _react.useMemo.call(void 0, () => {
|
|
3314
|
-
if (!enabled || !title) return null;
|
|
3315
|
-
const options = {};
|
|
3316
|
-
if (siteName) options.site = siteName;
|
|
3317
|
-
if (aspect === "square") options.aspect = "square";
|
|
3318
|
-
return buildUrl(title, options);
|
|
3319
|
-
}, [buildUrl, title, siteName, enabled, aspect]);
|
|
3320
|
-
}
|
|
3321
|
-
|
|
3322
2662
|
// src/hooks/use-scroll-to-hash.ts
|
|
3323
2663
|
|
|
3324
|
-
|
|
3325
|
-
// src/utils/scroll-into-view.ts
|
|
3326
|
-
var activeRaf = 0;
|
|
3327
|
-
var teardownActive = null;
|
|
3328
|
-
function cancelActiveScroll() {
|
|
3329
|
-
if (activeRaf) {
|
|
3330
|
-
cancelAnimationFrame(activeRaf);
|
|
3331
|
-
activeRaf = 0;
|
|
3332
|
-
}
|
|
3333
|
-
if (teardownActive) {
|
|
3334
|
-
teardownActive();
|
|
3335
|
-
teardownActive = null;
|
|
3336
|
-
}
|
|
3337
|
-
}
|
|
3338
|
-
var easeOutCubic = (t) => 1 - Math.pow(1 - t, 3);
|
|
3339
|
-
function getScrollableAncestor(el) {
|
|
3340
|
-
for (let node = el.parentElement; node; node = node.parentElement) {
|
|
3341
|
-
const overflowY = getComputedStyle(node).overflowY;
|
|
3342
|
-
if ((overflowY === "auto" || overflowY === "scroll" || overflowY === "overlay") && node.scrollHeight > node.clientHeight) {
|
|
3343
|
-
return node;
|
|
3344
|
-
}
|
|
3345
|
-
}
|
|
3346
|
-
return null;
|
|
3347
|
-
}
|
|
3348
|
-
function scrollElementIntoView(target, options = {}) {
|
|
3349
|
-
if (typeof window === "undefined" || !target) return;
|
|
3350
|
-
const { headerOffset = 0, behavior = "smooth", adjustTargetY, durationMs = 320 } = options;
|
|
3351
|
-
const container = getScrollableAncestor(target);
|
|
3352
|
-
const readCurrent = () => container ? container.scrollTop : window.scrollY;
|
|
3353
|
-
const writeTo = (y) => {
|
|
3354
|
-
if (container) container.scrollTop = y;
|
|
3355
|
-
else window.scrollTo(0, y);
|
|
3356
|
-
};
|
|
3357
|
-
const computeTarget = () => {
|
|
3358
|
-
const raw = container ? container.scrollTop + (target.getBoundingClientRect().top - container.getBoundingClientRect().top) - headerOffset : target.getBoundingClientRect().top + window.scrollY - headerOffset;
|
|
3359
|
-
const adjusted = adjustTargetY ? adjustTargetY(raw) : raw;
|
|
3360
|
-
const maxScroll = container ? Math.max(0, container.scrollHeight - container.clientHeight) : Math.max(0, document.documentElement.scrollHeight - window.innerHeight);
|
|
3361
|
-
return Math.min(Math.max(0, adjusted), maxScroll);
|
|
3362
|
-
};
|
|
3363
|
-
cancelActiveScroll();
|
|
3364
|
-
const prefersReduced = typeof window.matchMedia === "function" && window.matchMedia("(prefers-reduced-motion: reduce)").matches;
|
|
3365
|
-
if (behavior === "instant" || behavior === "auto" || prefersReduced) {
|
|
3366
|
-
writeTo(computeTarget());
|
|
3367
|
-
return;
|
|
3368
|
-
}
|
|
3369
|
-
let startY = null;
|
|
3370
|
-
let startTime = 0;
|
|
3371
|
-
const onUserGesture = () => cancelActiveScroll();
|
|
3372
|
-
window.addEventListener("wheel", onUserGesture, { passive: true });
|
|
3373
|
-
window.addEventListener("touchmove", onUserGesture, { passive: true });
|
|
3374
|
-
teardownActive = () => {
|
|
3375
|
-
window.removeEventListener("wheel", onUserGesture);
|
|
3376
|
-
window.removeEventListener("touchmove", onUserGesture);
|
|
3377
|
-
};
|
|
3378
|
-
const step = (now) => {
|
|
3379
|
-
if (startY === null) {
|
|
3380
|
-
startY = readCurrent();
|
|
3381
|
-
startTime = now;
|
|
3382
|
-
}
|
|
3383
|
-
const targetY = computeTarget();
|
|
3384
|
-
const t = Math.min(1, (now - startTime) / durationMs);
|
|
3385
|
-
const y = startY + (targetY - startY) * easeOutCubic(t);
|
|
3386
|
-
writeTo(y);
|
|
3387
|
-
if (t < 1) {
|
|
3388
|
-
activeRaf = requestAnimationFrame(step);
|
|
3389
|
-
} else {
|
|
3390
|
-
writeTo(computeTarget());
|
|
3391
|
-
activeRaf = 0;
|
|
3392
|
-
if (teardownActive) {
|
|
3393
|
-
teardownActive();
|
|
3394
|
-
teardownActive = null;
|
|
3395
|
-
}
|
|
3396
|
-
}
|
|
3397
|
-
};
|
|
3398
|
-
activeRaf = requestAnimationFrame(step);
|
|
3399
|
-
}
|
|
3400
|
-
|
|
3401
|
-
// src/utils/same-page-hash-nav.ts
|
|
3402
|
-
var STICKY_HEADER_OFFSET_PX = 96;
|
|
3403
|
-
var HUB_HEADER_OFFSET_PX = 80;
|
|
3404
|
-
function normalizeHashFragment(hash) {
|
|
3405
|
-
if (!hash) return "";
|
|
3406
|
-
const second = hash.indexOf("#", 1);
|
|
3407
|
-
return second < 0 ? hash : hash.slice(0, second);
|
|
3408
|
-
}
|
|
3409
|
-
function navigateSamePageHash(target, options = {}) {
|
|
3410
|
-
if (typeof window === "undefined") return false;
|
|
3411
|
-
const { headerOffset = 0, history: historyMode = "push" } = options;
|
|
3412
|
-
const normalizedTarget = target.startsWith("#") ? window.location.pathname + window.location.search + target : target;
|
|
3413
|
-
let url;
|
|
3414
|
-
try {
|
|
3415
|
-
url = new URL(normalizedTarget, window.location.href);
|
|
3416
|
-
} catch (e7) {
|
|
3417
|
-
return false;
|
|
3418
|
-
}
|
|
3419
|
-
if (url.origin !== window.location.origin || url.pathname !== window.location.pathname || url.search !== window.location.search) {
|
|
3420
|
-
return false;
|
|
3421
|
-
}
|
|
3422
|
-
const current = window.location.pathname + window.location.search + window.location.hash;
|
|
3423
|
-
const normalizedHash = normalizeHashFragment(url.hash);
|
|
3424
|
-
if (process.env.NODE_ENV === "development" && normalizedHash !== url.hash) {
|
|
3425
|
-
console.warn(
|
|
3426
|
-
`[navigateSamePageHash] malformed fragment "${url.hash}" \u2192 normalizing to "${normalizedHash}". Fix the upstream composer.`
|
|
3427
|
-
);
|
|
3428
|
-
}
|
|
3429
|
-
const next = url.pathname + url.search + normalizedHash;
|
|
3430
|
-
const id = normalizedHash && normalizedHash !== "#" ? normalizedHash.slice(1) : "";
|
|
3431
|
-
if (!id && next !== current) return false;
|
|
3432
|
-
if (next !== current) {
|
|
3433
|
-
const oldURL = window.location.href;
|
|
3434
|
-
if (historyMode === "replace") {
|
|
3435
|
-
window.history.replaceState(null, "", next);
|
|
3436
|
-
} else {
|
|
3437
|
-
window.history.pushState(null, "", next);
|
|
3438
|
-
}
|
|
3439
|
-
window.dispatchEvent(new HashChangeEvent("hashchange", {
|
|
3440
|
-
oldURL,
|
|
3441
|
-
newURL: window.location.href
|
|
3442
|
-
}));
|
|
3443
|
-
}
|
|
3444
|
-
const el = id ? document.getElementById(id) : null;
|
|
3445
|
-
if (id && !el && process.env.NODE_ENV === "development") {
|
|
3446
|
-
console.warn(
|
|
3447
|
-
`[navigateSamePageHash] anchor "#${id}" not found \u2014 scrolling to top.`
|
|
3448
|
-
);
|
|
3449
|
-
}
|
|
3450
|
-
scrollElementIntoView(_nullishCoalesce(el, () => ( document.documentElement)), {
|
|
3451
|
-
behavior: "smooth",
|
|
3452
|
-
headerOffset
|
|
3453
|
-
});
|
|
3454
|
-
return true;
|
|
3455
|
-
}
|
|
3456
|
-
|
|
3457
|
-
// src/hooks/use-scroll-to-hash.ts
|
|
3458
2664
|
var MAX_POLL_FRAMES = 60;
|
|
3459
2665
|
function useScrollToHash(readyDep = true, options) {
|
|
3460
|
-
const headerOffset = _nullishCoalesce(_optionalChain([options, 'optionalAccess',
|
|
2666
|
+
const headerOffset = _nullishCoalesce(_optionalChain([options, 'optionalAccess', _16 => _16.headerOffset]), () => ( 0));
|
|
3461
2667
|
_react.useEffect.call(void 0, () => {
|
|
3462
2668
|
if (typeof window === "undefined") return;
|
|
3463
2669
|
if (readyDep === null || readyDep === false) return;
|
|
@@ -3469,7 +2675,7 @@ function useScrollToHash(readyDep = true, options) {
|
|
|
3469
2675
|
}
|
|
3470
2676
|
};
|
|
3471
2677
|
const tryScrollToHash = () => {
|
|
3472
|
-
const hash = normalizeHashFragment(window.location.hash).slice(1);
|
|
2678
|
+
const hash = _chunkLFGGF7OTcjs.normalizeHashFragment.call(void 0, window.location.hash).slice(1);
|
|
3473
2679
|
if (!hash) return;
|
|
3474
2680
|
cancelPoll();
|
|
3475
2681
|
let frames = 0;
|
|
@@ -3477,7 +2683,7 @@ function useScrollToHash(readyDep = true, options) {
|
|
|
3477
2683
|
const el = document.getElementById(hash);
|
|
3478
2684
|
if (el) {
|
|
3479
2685
|
rafId = null;
|
|
3480
|
-
scrollElementIntoView(el, { headerOffset });
|
|
2686
|
+
_chunkLFGGF7OTcjs.scrollElementIntoView.call(void 0, el, { headerOffset });
|
|
3481
2687
|
return;
|
|
3482
2688
|
}
|
|
3483
2689
|
if (frames++ < MAX_POLL_FRAMES) {
|
|
@@ -3499,35 +2705,13 @@ function useScrollToHash(readyDep = true, options) {
|
|
|
3499
2705
|
|
|
3500
2706
|
// src/hooks/use-humanity-signals.ts
|
|
3501
2707
|
|
|
3502
|
-
|
|
3503
|
-
// src/utils/humanity-signals.ts
|
|
3504
|
-
var HONEYPOT_FIELD = "contact_url_confirm";
|
|
3505
|
-
var ELAPSED_MS_FIELD = "form_elapsed_ms";
|
|
3506
|
-
var DEFAULT_MIN_FILL_MS = 700;
|
|
3507
|
-
function extractHumanitySignals(body) {
|
|
3508
|
-
const b = _nullishCoalesce(body, () => ( {}));
|
|
3509
|
-
const rawHp = b[HONEYPOT_FIELD];
|
|
3510
|
-
const honeypot = rawHp == null ? "" : String(rawHp);
|
|
3511
|
-
const rawMs = b[ELAPSED_MS_FIELD];
|
|
3512
|
-
const elapsedMs = typeof rawMs === "number" && Number.isFinite(rawMs) ? rawMs : null;
|
|
3513
|
-
return { honeypot, elapsedMs };
|
|
3514
|
-
}
|
|
3515
|
-
function evaluateHumanitySignals(body, opts) {
|
|
3516
|
-
const { honeypot, elapsedMs } = extractHumanitySignals(body);
|
|
3517
|
-
if (honeypot.trim() !== "") return { ok: false, reason: "honeypot" };
|
|
3518
|
-
if (elapsedMs !== null && elapsedMs < opts.minFillMs) return { ok: false, reason: "too_fast" };
|
|
3519
|
-
return { ok: true };
|
|
3520
|
-
}
|
|
3521
|
-
var splitCsvEnv = (s) => _nullishCoalesce(_optionalChain([s, 'optionalAccess', _45 => _45.split, 'call', _46 => _46(","), 'access', _47 => _47.map, 'call', _48 => _48((t) => t.trim()), 'access', _49 => _49.filter, 'call', _50 => _50(Boolean)]), () => ( []));
|
|
3522
|
-
|
|
3523
|
-
// src/hooks/use-humanity-signals.ts
|
|
3524
2708
|
function useHumanitySignals() {
|
|
3525
2709
|
const ref = _react.useRef.call(void 0, null);
|
|
3526
2710
|
const mountedAt = _react.useRef.call(void 0, typeof performance !== "undefined" ? performance.now() : 0);
|
|
3527
2711
|
const getSignals = _react.useCallback.call(void 0,
|
|
3528
2712
|
() => ({
|
|
3529
|
-
[HONEYPOT_FIELD]: _nullishCoalesce(_optionalChain([ref, 'access',
|
|
3530
|
-
[ELAPSED_MS_FIELD]: typeof performance !== "undefined" ? Math.round(performance.now() - mountedAt.current) : 0
|
|
2713
|
+
[_chunkLFGGF7OTcjs.HONEYPOT_FIELD]: _nullishCoalesce(_optionalChain([ref, 'access', _17 => _17.current, 'optionalAccess', _18 => _18.value]), () => ( "")),
|
|
2714
|
+
[_chunkLFGGF7OTcjs.ELAPSED_MS_FIELD]: typeof performance !== "undefined" ? Math.round(performance.now() - mountedAt.current) : 0
|
|
3531
2715
|
}),
|
|
3532
2716
|
[]
|
|
3533
2717
|
);
|
|
@@ -3535,7 +2719,7 @@ function useHumanitySignals() {
|
|
|
3535
2719
|
if (ref.current) ref.current.value = "";
|
|
3536
2720
|
if (typeof performance !== "undefined") mountedAt.current = performance.now();
|
|
3537
2721
|
}, []);
|
|
3538
|
-
return { honeypotInputProps: { ref, name: HONEYPOT_FIELD }, getSignals, resetSignals };
|
|
2722
|
+
return { honeypotInputProps: { ref, name: _chunkLFGGF7OTcjs.HONEYPOT_FIELD }, getSignals, resetSignals };
|
|
3539
2723
|
}
|
|
3540
2724
|
|
|
3541
2725
|
|
|
@@ -3603,51 +2787,5 @@ function useHumanitySignals() {
|
|
|
3603
2787
|
|
|
3604
2788
|
|
|
3605
2789
|
|
|
3606
|
-
|
|
3607
|
-
|
|
3608
|
-
|
|
3609
|
-
|
|
3610
|
-
|
|
3611
|
-
|
|
3612
|
-
|
|
3613
|
-
|
|
3614
|
-
|
|
3615
|
-
|
|
3616
|
-
|
|
3617
|
-
|
|
3618
|
-
|
|
3619
|
-
|
|
3620
|
-
|
|
3621
|
-
|
|
3622
|
-
|
|
3623
|
-
|
|
3624
|
-
|
|
3625
|
-
|
|
3626
|
-
|
|
3627
|
-
|
|
3628
|
-
|
|
3629
|
-
|
|
3630
|
-
|
|
3631
|
-
|
|
3632
|
-
|
|
3633
|
-
|
|
3634
|
-
|
|
3635
|
-
|
|
3636
|
-
|
|
3637
|
-
|
|
3638
|
-
|
|
3639
|
-
|
|
3640
|
-
|
|
3641
|
-
|
|
3642
|
-
|
|
3643
|
-
|
|
3644
|
-
|
|
3645
|
-
|
|
3646
|
-
|
|
3647
|
-
|
|
3648
|
-
|
|
3649
|
-
|
|
3650
|
-
|
|
3651
|
-
|
|
3652
|
-
exports.useAutoLimitTags = useAutoLimitTags; exports.useDebounce = useDebounce; exports.useHeaderHeight = useHeaderHeight; exports.useHorizontalScrollbar = useHorizontalScrollbar; exports.useImageEdgeColor = useImageEdgeColor; exports.useLocalStorage = useLocalStorage; exports.useMediaQuery = useMediaQuery; exports.breakpoints = breakpoints; exports.useSmUp = useSmUp; exports.useMdUp = useMdUp; exports.useLgUp = useLgUp; exports.useMemoizedCallback = useMemoizedCallback; exports.useNotificationPermission = useNotificationPermission; exports.useOnboardingState = useOnboardingState; exports.useSearch = useSearch; exports.useTablePagination = useTablePagination; exports.useThrottle = useThrottle; exports.useWindowSize = useWindowSize; exports.platformIcons = platformIcons; exports.platformColors = platformColors; exports.platformDisplayNames = platformDisplayNames; exports.platformDescriptions = platformDescriptions; exports.platformSlogans = platformSlogans; exports.platformHexColors = platformHexColors; exports.platformIconNames = platformIconNames; exports.getDefaultColorForPlatform = getDefaultColorForPlatform; exports.getDefaultIconForPlatform = getDefaultIconForPlatform; exports.transformPlatformConfigsToOptions = transformPlatformConfigsToOptions; exports.getPlatformIcon = getPlatformIcon; exports.getPlatformColor = getPlatformColor; exports.getPlatformDisplayName = getPlatformDisplayName; exports.getPlatformDescription = getPlatformDescription; exports.getPlatformSlogan = getPlatformSlogan; exports.getSmallPlatformIcon = getSmallPlatformIcon; exports.getPlatformIconComponent = getPlatformIconComponent; exports.usePlatformConfig = usePlatformConfig; exports.usePlatformByValue = usePlatformByValue; exports.useValidatePlatform = useValidatePlatform; exports.ToolTypeValues = ToolTypeValues; exports.toolLabels = toolLabels; exports.ToolIcon = ToolIcon; exports.dotColorByVariant = dotColorByVariant; exports.progressColorByVariant = progressColorByVariant; exports.ToastCard = ToastCard; exports.CommandApprovalToast = CommandApprovalToast; exports.Toaster = Toaster; exports.showToast = showToast; exports.showCommandApprovalToast = showCommandApprovalToast; exports.toast = toast; exports.useToast = useToast; exports.getAppType = getAppType; exports.getEmbedProxyAuth = getEmbedProxyAuth; exports.getPersistedProxyEmail = getPersistedProxyEmail; exports.setEmbedProxyAuth = setEmbedProxyAuth; exports.clearEmbedProxyAuth = clearEmbedProxyAuth; exports.applyProxyAuth = applyProxyAuth; exports.setEmbedAuthAdapter = setEmbedAuthAdapter; exports.embedAuthedFetch = embedAuthedFetch; exports.contentFetch = contentFetch; exports.useContactSubmission = useContactSubmission; exports.useQuickActionHint = useQuickActionHint; exports.useCopyToClipboard = useCopyToClipboard; exports.configureBatchImageFetch = configureBatchImageFetch; exports.batchFetchAuthenticatedImages = batchFetchAuthenticatedImages; exports.useBatchImages = useBatchImages; exports.configureAuthenticatedImage = configureAuthenticatedImage; exports.useAuthenticatedImage = useAuthenticatedImage; exports.extractVariablesFromQuery = extractVariablesFromQuery; exports.isScalarType = isScalarType; exports.isInputObjectType = isInputObjectType; exports.flattenQueryVariables = flattenQueryVariables; exports.mergeDefaults = mergeDefaults; exports.validateSchema = validateSchema; exports.getArrayParams = getArrayParams; exports.getRequiredParams = getRequiredParams; exports.shouldIncludeInUrl = shouldIncludeInUrl; exports.urlParamsToVariables = urlParamsToVariables; exports.variablesToUrlParams = variablesToUrlParams; exports.coerceValue = coerceValue; exports.setNestedValue = setNestedValue; exports.getNestedValue = getNestedValue; exports.mergeVariables = mergeVariables; exports.clearParams = clearParams; exports.validateVariables = validateVariables; exports.GraphQLIntrospector = GraphQLIntrospector; exports.introspector = introspector; exports.useQueryParams = useQueryParams; exports.useApiParams = useApiParams; exports.createSearchParams = createSearchParams; exports.useCursorPaginationState = useCursorPaginationState; exports.useNatsClient = useNatsClient; exports.useNearViewport = useNearViewport; exports.validateAccessCode = validateAccessCode; exports.consumeAccessCode = consumeAccessCode; exports.validateAndConsumeAccessCode = validateAndConsumeAccessCode; exports.useAccessCodeIntegration = useAccessCodeIntegration; exports.useOgPlaceholder = useOgPlaceholder; exports.scrollElementIntoView = scrollElementIntoView; exports.STICKY_HEADER_OFFSET_PX = STICKY_HEADER_OFFSET_PX; exports.HUB_HEADER_OFFSET_PX = HUB_HEADER_OFFSET_PX; exports.normalizeHashFragment = normalizeHashFragment; exports.navigateSamePageHash = navigateSamePageHash; exports.useScrollToHash = useScrollToHash; exports.HONEYPOT_FIELD = HONEYPOT_FIELD; exports.ELAPSED_MS_FIELD = ELAPSED_MS_FIELD; exports.DEFAULT_MIN_FILL_MS = DEFAULT_MIN_FILL_MS; exports.extractHumanitySignals = extractHumanitySignals; exports.evaluateHumanitySignals = evaluateHumanitySignals; exports.splitCsvEnv = splitCsvEnv; exports.useHumanitySignals = useHumanitySignals;
|
|
3653
|
-
//# sourceMappingURL=chunk-WMSTJAZT.cjs.map
|
|
2790
|
+
exports.useHeaderHeight = useHeaderHeight; exports.useHorizontalScrollbar = useHorizontalScrollbar; exports.useImageEdgeColor = useImageEdgeColor; exports.useLocalStorage = useLocalStorage; exports.useMediaQuery = useMediaQuery; exports.breakpoints = breakpoints; exports.useSmUp = useSmUp; exports.useMdUp = useMdUp; exports.useLgUp = useLgUp; exports.useMemoizedCallback = useMemoizedCallback; exports.useNotificationPermission = useNotificationPermission; exports.useOnboardingState = useOnboardingState; exports.useSearch = useSearch; exports.useTablePagination = useTablePagination; exports.useThrottle = useThrottle; exports.useWindowSize = useWindowSize; exports.usePlatformConfig = usePlatformConfig; exports.usePlatformByValue = usePlatformByValue; exports.useValidatePlatform = useValidatePlatform; exports.ToolIcon = ToolIcon; exports.dotColorByVariant = dotColorByVariant; exports.progressColorByVariant = progressColorByVariant; exports.ToastCard = ToastCard; exports.CommandApprovalToast = CommandApprovalToast; exports.Toaster = Toaster; exports.showToast = showToast; exports.showCommandApprovalToast = showCommandApprovalToast; exports.toast = toast; exports.useToast = useToast; exports.useContactSubmission = useContactSubmission; exports.useQuickActionHint = useQuickActionHint; exports.useCopyToClipboard = useCopyToClipboard; exports.configureBatchImageFetch = configureBatchImageFetch; exports.batchFetchAuthenticatedImages = batchFetchAuthenticatedImages; exports.useBatchImages = useBatchImages; exports.configureAuthenticatedImage = configureAuthenticatedImage; exports.useAuthenticatedImage = useAuthenticatedImage; exports.extractVariablesFromQuery = extractVariablesFromQuery; exports.isScalarType = isScalarType; exports.isInputObjectType = isInputObjectType; exports.flattenQueryVariables = flattenQueryVariables; exports.mergeDefaults = mergeDefaults; exports.validateSchema = validateSchema; exports.getArrayParams = getArrayParams; exports.getRequiredParams = getRequiredParams; exports.shouldIncludeInUrl = shouldIncludeInUrl; exports.urlParamsToVariables = urlParamsToVariables; exports.variablesToUrlParams = variablesToUrlParams; exports.coerceValue = coerceValue; exports.setNestedValue = setNestedValue; exports.getNestedValue = getNestedValue; exports.mergeVariables = mergeVariables; exports.clearParams = clearParams; exports.validateVariables = validateVariables; exports.GraphQLIntrospector = GraphQLIntrospector; exports.introspector = introspector; exports.useQueryParams = useQueryParams; exports.useApiParams = useApiParams; exports.createSearchParams = createSearchParams; exports.useCursorPaginationState = useCursorPaginationState; exports.useNatsClient = useNatsClient; exports.useAccessCodeIntegration = useAccessCodeIntegration; exports.useScrollToHash = useScrollToHash; exports.useHumanitySignals = useHumanitySignals;
|
|
2791
|
+
//# sourceMappingURL=chunk-5E2HOSSH.cjs.map
|