@flamingo-stack/openframe-frontend-core 0.0.296 → 0.0.297
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 +9 -0
- package/dist/{chunk-7RIYT7ZH.js → chunk-2QG57XOJ.js} +1067 -205
- package/dist/chunk-2QG57XOJ.js.map +1 -0
- package/dist/{chunk-WHMATDVP.js → chunk-3JIQVE7T.js} +9 -15
- package/dist/{chunk-WHMATDVP.js.map → chunk-3JIQVE7T.js.map} +1 -1
- package/dist/{chunk-GLLDTKZK.cjs → chunk-4PSQS3SW.cjs} +7 -9
- package/dist/chunk-4PSQS3SW.cjs.map +1 -0
- package/dist/{chunk-OY7OF7E7.js → chunk-4TLE6VLU.js} +30 -24
- package/dist/chunk-4TLE6VLU.js.map +1 -0
- package/dist/{chunk-W6M2FLLT.cjs → chunk-53FUMSZ5.cjs} +40 -46
- package/dist/chunk-53FUMSZ5.cjs.map +1 -0
- package/dist/{chunk-D3LEFMOA.cjs → chunk-54KNMC2R.cjs} +3 -3
- package/dist/{chunk-D3LEFMOA.cjs.map → chunk-54KNMC2R.cjs.map} +1 -1
- package/dist/{chunk-EYEW6PTA.cjs → chunk-6C526VNN.cjs} +358 -118
- package/dist/chunk-6C526VNN.cjs.map +1 -0
- package/dist/{chunk-XREEV72C.cjs → chunk-7OVGB2DQ.cjs} +19 -25
- package/dist/chunk-7OVGB2DQ.cjs.map +1 -0
- package/dist/{chunk-6GCI7JOE.js → chunk-AD6C23QY.js} +8 -7
- package/dist/{chunk-6GCI7JOE.js.map → chunk-AD6C23QY.js.map} +1 -1
- package/dist/chunk-F5OB2YAL.cjs +144 -0
- package/dist/chunk-F5OB2YAL.cjs.map +1 -0
- package/dist/chunk-FBWXMMRB.cjs +2 -0
- package/dist/chunk-FBWXMMRB.cjs.map +1 -0
- package/dist/{chunk-YIGPRLQY.cjs → chunk-FCDQNTDG.cjs} +21 -20
- package/dist/chunk-FCDQNTDG.cjs.map +1 -0
- package/dist/{chunk-IE6OU3WQ.cjs → chunk-FQOTC3UU.cjs} +318 -16
- package/dist/chunk-FQOTC3UU.cjs.map +1 -0
- package/dist/{chunk-QHIXS3W2.cjs → chunk-GUTS7HGA.cjs} +11590 -2105
- package/dist/chunk-GUTS7HGA.cjs.map +1 -0
- package/dist/chunk-GZ4C3XW6.js +2 -0
- package/dist/chunk-GZ4C3XW6.js.map +1 -0
- package/dist/{chunk-5P3B2LZW.js → chunk-IL47XWV5.js} +8 -14
- package/dist/{chunk-5P3B2LZW.js.map → chunk-IL47XWV5.js.map} +1 -1
- package/dist/{chunk-LCNMR277.js → chunk-IZ7JSBFP.js} +1 -1
- package/dist/chunk-IZ7JSBFP.js.map +1 -0
- package/dist/{chunk-EL6QLAWX.js → chunk-JALO4TAZ.js} +357 -55
- package/dist/chunk-JALO4TAZ.js.map +1 -0
- package/dist/{chunk-AQOWFSMB.cjs → chunk-L6PSSIUQ.cjs} +1 -1
- package/dist/chunk-L6PSSIUQ.cjs.map +1 -0
- package/dist/{chunk-MBFWU2EM.js → chunk-L7ULJKG7.js} +6 -10
- package/dist/{chunk-MBFWU2EM.js.map → chunk-L7ULJKG7.js.map} +1 -1
- package/dist/{chunk-K2PFPBMF.js → chunk-PC746XCO.js} +15050 -5565
- package/dist/chunk-PC746XCO.js.map +1 -0
- package/dist/{chunk-3ZXUQQL4.js → chunk-PI4WSYQV.js} +2 -2
- package/dist/{chunk-E4XABBSU.js → chunk-PWQUAVA3.js} +338 -98
- package/dist/chunk-PWQUAVA3.js.map +1 -0
- package/dist/chunk-SA2WPJVO.js +144 -0
- package/dist/chunk-SA2WPJVO.js.map +1 -0
- package/dist/{chunk-X6BV7MB7.cjs → chunk-UNVE2SDJ.cjs} +37 -31
- package/dist/chunk-UNVE2SDJ.cjs.map +1 -0
- package/dist/{chunk-5E2HOSSH.cjs → chunk-WMSTJAZT.cjs} +913 -51
- package/dist/chunk-WMSTJAZT.cjs.map +1 -0
- package/dist/{chunk-ZP4AVIZP.js → chunk-X4DOXQRT.js} +4 -6
- package/dist/{chunk-ZP4AVIZP.js.map → chunk-X4DOXQRT.js.map} +1 -1
- package/dist/{chunk-X647HY3F.cjs → chunk-YBYI62OE.cjs} +33 -37
- package/dist/chunk-YBYI62OE.cjs.map +1 -0
- package/dist/components/case-studies/index.cjs +126 -0
- package/dist/components/case-studies/index.cjs.map +1 -0
- package/dist/components/case-studies/index.d.ts +2 -0
- package/dist/components/case-studies/index.d.ts.map +1 -0
- package/dist/components/case-studies/index.js +126 -0
- package/dist/components/case-studies/index.js.map +1 -0
- package/dist/components/case-studies/share-experience-section.d.ts +48 -0
- package/dist/components/case-studies/share-experience-section.d.ts.map +1 -0
- package/dist/components/chat/index.cjs +8 -18
- package/dist/components/chat/index.cjs.map +1 -1
- package/dist/components/chat/index.js +75 -85
- package/dist/components/contact/index.cjs +8 -15
- package/dist/components/contact/index.cjs.map +1 -1
- package/dist/components/contact/index.js +7 -14
- package/dist/components/docs/doc-viewer.d.ts +39 -2
- package/dist/components/docs/doc-viewer.d.ts.map +1 -1
- package/dist/components/docs/docs-hub-page.d.ts +46 -0
- package/dist/components/docs/docs-hub-page.d.ts.map +1 -0
- package/dist/components/docs/index.cjs +17 -9
- package/dist/components/docs/index.cjs.map +1 -1
- package/dist/components/docs/index.d.ts +4 -0
- package/dist/components/docs/index.d.ts.map +1 -1
- package/dist/components/docs/index.js +16 -8
- package/dist/components/docs/skeletons.d.ts +32 -0
- package/dist/components/docs/skeletons.d.ts.map +1 -0
- package/dist/components/docs/use-docs-resolve-link.d.ts +20 -0
- package/dist/components/docs/use-docs-resolve-link.d.ts.map +1 -0
- package/dist/components/docs/use-document-tree.d.ts.map +1 -1
- package/dist/components/embeds/embed-container.d.ts +37 -0
- package/dist/components/embeds/embed-container.d.ts.map +1 -0
- package/dist/components/embeds/embed-iframe.d.ts.map +1 -1
- package/dist/components/embeds/file-download-card.d.ts +18 -0
- package/dist/components/embeds/file-download-card.d.ts.map +1 -0
- package/dist/components/embeds/index.cjs +38 -15
- package/dist/components/embeds/index.cjs.map +1 -1
- package/dist/components/embeds/index.d.ts +8 -0
- package/dist/components/embeds/index.d.ts.map +1 -1
- package/dist/components/embeds/index.js +40 -17
- package/dist/components/embeds/linkedin-embed-client.d.ts +8 -0
- package/dist/components/embeds/linkedin-embed-client.d.ts.map +1 -0
- package/dist/components/embeds/markdown-image.d.ts +5 -0
- package/dist/components/embeds/markdown-image.d.ts.map +1 -0
- package/dist/components/embeds/reddit-embed-client.d.ts +7 -0
- package/dist/components/embeds/reddit-embed-client.d.ts.map +1 -0
- package/dist/components/embeds/rich-markdown-runtime.d.ts +46 -0
- package/dist/components/embeds/rich-markdown-runtime.d.ts.map +1 -0
- package/dist/components/embeds/twitter-embed-client.d.ts +8 -0
- package/dist/components/embeds/twitter-embed-client.d.ts.map +1 -0
- package/dist/components/faq/index.cjs +9 -16
- package/dist/components/faq/index.cjs.map +1 -1
- package/dist/components/faq/index.js +8 -15
- package/dist/components/features/index.cjs +8 -16
- package/dist/components/features/index.cjs.map +1 -1
- package/dist/components/features/index.js +24 -32
- package/dist/components/index.cjs +257 -452
- package/dist/components/index.cjs.map +1 -1
- package/dist/components/index.js +781 -976
- package/dist/components/index.js.map +1 -1
- package/dist/components/layout/page-header.d.ts +78 -0
- package/dist/components/layout/page-header.d.ts.map +1 -0
- package/dist/components/layout/page-layout.d.ts +10 -1
- package/dist/components/layout/page-layout.d.ts.map +1 -1
- package/dist/components/layout/page-with-header.d.ts +67 -0
- package/dist/components/layout/page-with-header.d.ts.map +1 -0
- package/dist/components/layout/title-block.d.ts +17 -1
- package/dist/components/layout/title-block.d.ts.map +1 -1
- package/dist/components/navigation/index.cjs +7 -15
- package/dist/components/navigation/index.cjs.map +1 -1
- package/dist/components/navigation/index.js +9 -17
- package/dist/components/onboarding-guides/index.cjs +35 -36
- package/dist/components/onboarding-guides/index.cjs.map +1 -1
- package/dist/components/onboarding-guides/index.js +13 -14
- 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 +9 -16
- package/dist/components/related-content/index.cjs.map +1 -1
- package/dist/components/related-content/index.js +8 -15
- package/dist/components/shared/dev-section/dev-section-page.d.ts +9 -0
- 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 +100 -112
- package/dist/components/tickets/index.cjs.map +1 -1
- package/dist/components/tickets/index.js +20 -32
- package/dist/components/tickets/index.js.map +1 -1
- package/dist/components/ui/file-manager/index.cjs +50 -52
- package/dist/components/ui/file-manager/index.cjs.map +1 -1
- package/dist/components/ui/file-manager/index.js +4 -6
- package/dist/components/ui/file-manager/index.js.map +1 -1
- package/dist/components/ui/index.cjs +13 -19
- package/dist/components/ui/index.cjs.map +1 -1
- package/dist/components/ui/index.d.ts +2 -0
- package/dist/components/ui/index.d.ts.map +1 -1
- package/dist/components/ui/index.js +133 -139
- package/dist/components/ui/release-changelog-section.d.ts +6 -2
- package/dist/components/ui/release-changelog-section.d.ts.map +1 -1
- package/dist/components/ui/rich-markdown-renderer.d.ts +34 -0
- package/dist/components/ui/rich-markdown-renderer.d.ts.map +1 -0
- package/dist/components/ui/simple-markdown-renderer.d.ts +2 -8
- package/dist/components/ui/simple-markdown-renderer.d.ts.map +1 -1
- package/dist/contexts/chat-runtime-context.d.ts +14 -0
- 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 +4 -9
- package/dist/hooks/index.cjs.map +1 -1
- package/dist/hooks/index.js +6 -11
- package/dist/index.cjs +14 -20
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +362 -368
- package/dist/types/doc-source.d.ts +31 -1
- package/dist/types/doc-source.d.ts.map +1 -1
- package/dist/utils/index.cjs +4 -0
- package/dist/utils/index.cjs.map +1 -1
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +4 -1
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/page-header-constants.d.ts +15 -0
- package/dist/utils/page-header-constants.d.ts.map +1 -0
- package/dist/utils/social-embed-cache.d.ts +29 -0
- package/dist/utils/social-embed-cache.d.ts.map +1 -0
- package/package.json +7 -1
- package/src/components/case-studies/index.ts +4 -0
- package/src/components/case-studies/share-experience-section.tsx +185 -0
- package/src/components/chat/embeddable-chat.tsx +1 -1
- package/src/components/docs/doc-viewer.tsx +111 -19
- package/src/components/docs/docs-hub-page.tsx +149 -0
- package/src/components/docs/index.ts +17 -0
- package/src/components/docs/skeletons.tsx +138 -0
- package/src/components/docs/use-docs-resolve-link.ts +52 -0
- package/src/components/docs/use-document-tree.ts +21 -0
- package/src/components/embeds/embed-container.tsx +80 -0
- package/src/components/embeds/embed-iframe.tsx +7 -9
- package/src/components/embeds/file-download-card.tsx +54 -0
- package/src/components/embeds/index.ts +30 -0
- package/src/components/embeds/linkedin-embed-client.tsx +100 -0
- package/src/components/embeds/markdown-image.tsx +88 -0
- package/src/components/embeds/og-link-preview.tsx +13 -13
- package/src/components/embeds/reddit-embed-client.tsx +550 -0
- package/src/components/embeds/rich-markdown-runtime.tsx +79 -0
- package/src/components/embeds/twitter-embed-client.tsx +308 -0
- package/src/components/layout/page-header.tsx +182 -0
- package/src/components/layout/page-layout.tsx +14 -1
- package/src/components/layout/page-with-header.tsx +110 -0
- package/src/components/layout/title-block.tsx +40 -62
- package/src/components/onboarding-guides/onboarding-guide-detail-view.tsx +3 -3
- package/src/components/shared/dev-section/dev-section-page.tsx +9 -1
- package/src/components/shared/dev-section/dev-section-view.tsx +14 -9
- package/src/components/shared/dev-section/index.ts +1 -1
- package/src/components/shared/doc-search/use-doc-search.ts +7 -3
- package/src/components/shared/legal-document/legal-document-page.tsx +2 -2
- package/src/components/shared/product-release/release-detail-page.tsx +6 -4
- package/src/components/ui/index.ts +2 -0
- package/src/components/ui/release-changelog-section.tsx +7 -2
- package/src/components/ui/rich-markdown-renderer.tsx +1203 -0
- package/src/components/ui/simple-markdown-renderer.tsx +7 -11
- package/src/contexts/chat-runtime-context.tsx +14 -0
- package/src/types/doc-source.ts +33 -1
- package/src/utils/index.ts +1 -0
- package/src/utils/page-header-constants.ts +15 -0
- package/src/utils/social-embed-cache.ts +391 -0
- package/dist/chunk-26PKDALD.js +0 -2379
- package/dist/chunk-26PKDALD.js.map +0 -1
- package/dist/chunk-3MCHAFHB.js +0 -89
- package/dist/chunk-3MCHAFHB.js.map +0 -1
- package/dist/chunk-5E2HOSSH.cjs.map +0 -1
- package/dist/chunk-66AANIOC.cjs +0 -619
- package/dist/chunk-66AANIOC.cjs.map +0 -1
- package/dist/chunk-6JINAOI7.cjs +0 -311
- package/dist/chunk-6JINAOI7.cjs.map +0 -1
- package/dist/chunk-7RIYT7ZH.js.map +0 -1
- package/dist/chunk-AQOWFSMB.cjs.map +0 -1
- package/dist/chunk-BOCFIKYS.cjs +0 -3009
- package/dist/chunk-BOCFIKYS.cjs.map +0 -1
- package/dist/chunk-D652TJBQ.js +0 -3009
- package/dist/chunk-D652TJBQ.js.map +0 -1
- package/dist/chunk-E4XABBSU.js.map +0 -1
- package/dist/chunk-EL6QLAWX.js.map +0 -1
- package/dist/chunk-EYEW6PTA.cjs.map +0 -1
- package/dist/chunk-FQJK446R.js +0 -1606
- package/dist/chunk-FQJK446R.js.map +0 -1
- package/dist/chunk-GLLDTKZK.cjs.map +0 -1
- package/dist/chunk-IE6OU3WQ.cjs.map +0 -1
- package/dist/chunk-J54Z3OCR.cjs +0 -1606
- package/dist/chunk-J54Z3OCR.cjs.map +0 -1
- package/dist/chunk-K2PFPBMF.js.map +0 -1
- package/dist/chunk-KXCRGTRN.cjs +0 -2379
- package/dist/chunk-KXCRGTRN.cjs.map +0 -1
- package/dist/chunk-LCNMR277.js.map +0 -1
- package/dist/chunk-LFGGF7OT.cjs +0 -449
- package/dist/chunk-LFGGF7OT.cjs.map +0 -1
- package/dist/chunk-M2OCXTNT.js +0 -311
- package/dist/chunk-M2OCXTNT.js.map +0 -1
- package/dist/chunk-ME4EVDFP.js +0 -619
- package/dist/chunk-ME4EVDFP.js.map +0 -1
- package/dist/chunk-OQ6X7ZOC.js +0 -449
- package/dist/chunk-OQ6X7ZOC.js.map +0 -1
- package/dist/chunk-OY7OF7E7.js.map +0 -1
- package/dist/chunk-POKKCWKF.js +0 -354
- package/dist/chunk-POKKCWKF.js.map +0 -1
- package/dist/chunk-QHIXS3W2.cjs.map +0 -1
- package/dist/chunk-TFSYSWPS.cjs +0 -89
- package/dist/chunk-TFSYSWPS.cjs.map +0 -1
- package/dist/chunk-W6M2FLLT.cjs.map +0 -1
- package/dist/chunk-X647HY3F.cjs.map +0 -1
- package/dist/chunk-X6BV7MB7.cjs.map +0 -1
- package/dist/chunk-XREEV72C.cjs.map +0 -1
- package/dist/chunk-YETA25JW.cjs +0 -354
- package/dist/chunk-YETA25JW.cjs.map +0 -1
- package/dist/chunk-YIGPRLQY.cjs.map +0 -1
- /package/dist/{chunk-3ZXUQQL4.js.map → chunk-PI4WSYQV.js.map} +0 -0
package/dist/components/index.js
CHANGED
|
@@ -10,8 +10,11 @@ import {
|
|
|
10
10
|
CategorySidebarSkeleton,
|
|
11
11
|
DocNavigationProvider,
|
|
12
12
|
DocViewer,
|
|
13
|
+
DocsHubPage,
|
|
14
|
+
EmbedSkeleton,
|
|
13
15
|
HeroSkeleton,
|
|
14
16
|
InteractiveSkeleton,
|
|
17
|
+
MarkdownSkeleton,
|
|
15
18
|
MediaSkeleton,
|
|
16
19
|
PersistentFilterControls,
|
|
17
20
|
PersistentMobileDropdown,
|
|
@@ -29,24 +32,22 @@ import {
|
|
|
29
32
|
useDocNavigation,
|
|
30
33
|
useDocumentTree,
|
|
31
34
|
useScrollSpy
|
|
32
|
-
} from "../chunk-
|
|
35
|
+
} from "../chunk-PWQUAVA3.js";
|
|
36
|
+
import "../chunk-GZ4C3XW6.js";
|
|
33
37
|
import {
|
|
34
|
-
|
|
35
|
-
FigmaEmbed,
|
|
38
|
+
FileDownloadCard,
|
|
36
39
|
GoogleSheetsViewer,
|
|
37
|
-
OGLinkErrorBoundary,
|
|
38
|
-
OGLinkPreview,
|
|
39
40
|
PdfViewer
|
|
40
|
-
} from "../chunk-
|
|
41
|
+
} from "../chunk-SA2WPJVO.js";
|
|
41
42
|
import {
|
|
42
43
|
FaqAccordion,
|
|
43
44
|
FaqDocumentPage,
|
|
44
45
|
FaqSection
|
|
45
|
-
} from "../chunk-
|
|
46
|
+
} from "../chunk-IL47XWV5.js";
|
|
46
47
|
import {
|
|
47
48
|
GROUP_PAGE_SIZE,
|
|
48
49
|
RelatedContentSection
|
|
49
|
-
} from "../chunk-
|
|
50
|
+
} from "../chunk-3JIQVE7T.js";
|
|
50
51
|
import {
|
|
51
52
|
DeliveryRow,
|
|
52
53
|
DevCardRowContent,
|
|
@@ -58,11 +59,11 @@ import {
|
|
|
58
59
|
UnifiedPagination,
|
|
59
60
|
init_unified_pagination,
|
|
60
61
|
unified_pagination_exports
|
|
61
|
-
} from "../chunk-
|
|
62
|
+
} from "../chunk-4TLE6VLU.js";
|
|
62
63
|
import {
|
|
63
64
|
ArticleAuthorByline,
|
|
64
65
|
DetailPageSkeleton
|
|
65
|
-
} from "../chunk-
|
|
66
|
+
} from "../chunk-X4DOXQRT.js";
|
|
66
67
|
import {
|
|
67
68
|
DocSearchBar,
|
|
68
69
|
DocSearchResultRow,
|
|
@@ -70,10 +71,10 @@ import {
|
|
|
70
71
|
mapDocSearchResults,
|
|
71
72
|
resolveSearchResultAction,
|
|
72
73
|
useDocSearch
|
|
73
|
-
} from "../chunk-
|
|
74
|
+
} from "../chunk-AD6C23QY.js";
|
|
74
75
|
import {
|
|
75
76
|
useSelfFetch
|
|
76
|
-
} from "../chunk-
|
|
77
|
+
} from "../chunk-PI4WSYQV.js";
|
|
77
78
|
import "../chunk-4XLJWX2N.js";
|
|
78
79
|
import {
|
|
79
80
|
ADMIN_APPROVAL_REQUEST_CONTEXT_TYPE,
|
|
@@ -82,13 +83,17 @@ import {
|
|
|
82
83
|
AIRequiredBadge,
|
|
83
84
|
AIStatusIndicator,
|
|
84
85
|
AIWarningsSection,
|
|
86
|
+
ANTHROPIC_SUPPORTED_IMAGE_MIME,
|
|
85
87
|
APPROVAL_STATUS,
|
|
86
88
|
ASSISTANT_TYPE,
|
|
87
89
|
AUTHOR_TYPE,
|
|
90
|
+
AUTO_CONTINUATION_DIRECTIVE_PREFIX,
|
|
88
91
|
Accordion,
|
|
89
92
|
AccordionContent,
|
|
90
93
|
AccordionItem,
|
|
91
94
|
AccordionTrigger,
|
|
95
|
+
ActionsMenu,
|
|
96
|
+
ActionsMenuDropdown,
|
|
92
97
|
AdminContentCard,
|
|
93
98
|
Alert,
|
|
94
99
|
AlertDescription,
|
|
@@ -122,6 +127,7 @@ import {
|
|
|
122
127
|
ArchiveChatModal,
|
|
123
128
|
ArgRow,
|
|
124
129
|
ArrayEntryManager,
|
|
130
|
+
ArticleDetailLayout,
|
|
125
131
|
AspectRatio,
|
|
126
132
|
AssigneeDropdown,
|
|
127
133
|
AuthProvidersList,
|
|
@@ -132,6 +138,7 @@ import {
|
|
|
132
138
|
BlockCard,
|
|
133
139
|
BlogCard,
|
|
134
140
|
BlogCardSkeleton,
|
|
141
|
+
BlogImagePlaceholder,
|
|
135
142
|
Board,
|
|
136
143
|
BoardColumn,
|
|
137
144
|
BoardColumnHeader,
|
|
@@ -147,10 +154,28 @@ import {
|
|
|
147
154
|
BreadcrumbSeparator,
|
|
148
155
|
BulletList,
|
|
149
156
|
CHAT_ATTACHMENT_CONCURRENT_UPLOADS_PER_USER,
|
|
157
|
+
CHAT_ATTACHMENT_MARKDOWN_PATTERN,
|
|
150
158
|
CHAT_ATTACHMENT_MIME_TYPES,
|
|
159
|
+
CHAT_ATTACHMENT_VIEW_TOKEN_QUERY_PARAM,
|
|
160
|
+
CHAT_ATTACHMENT_VIEW_URL_PREFIX,
|
|
161
|
+
CHAT_ATTACHMENT_VIEW_URL_PREFIX_REGEX_ESCAPED,
|
|
151
162
|
CHAT_CONTEXT_ITEMS_DEFAULT_MAX,
|
|
152
163
|
CHAT_TYPE,
|
|
153
164
|
CHIP_ACTION_BUTTON_CLASS,
|
|
165
|
+
COMPACT_CARD_ICON_SLOT,
|
|
166
|
+
COMPACT_CARD_IMAGE_SLOT,
|
|
167
|
+
COMPACT_CARD_META_ROW,
|
|
168
|
+
COMPACT_CARD_META_ROW_BOX,
|
|
169
|
+
COMPACT_CARD_OUTER,
|
|
170
|
+
COMPACT_CARD_OUTER_STATIC,
|
|
171
|
+
COMPACT_CARD_ROW_FILLER,
|
|
172
|
+
COMPACT_CARD_SKELETON_IMAGE_SLOT,
|
|
173
|
+
COMPACT_CARD_SKELETON_OUTER,
|
|
174
|
+
COMPACT_CARD_SUBTITLE,
|
|
175
|
+
COMPACT_CARD_SUMMARY,
|
|
176
|
+
COMPACT_CARD_TEXT_COL,
|
|
177
|
+
COMPACT_CARD_TITLE,
|
|
178
|
+
COMPACT_CARD_TITLE_ROW,
|
|
154
179
|
COMPACT_HEADER_BUTTON,
|
|
155
180
|
CONNECTION_STATUS,
|
|
156
181
|
CONTEXT_BACK_CLASS,
|
|
@@ -158,10 +183,18 @@ import {
|
|
|
158
183
|
CONTEXT_LABEL_CLASS,
|
|
159
184
|
CONTEXT_ROW_CLASS,
|
|
160
185
|
CONTEXT_STATE_CLASS,
|
|
186
|
+
CUSTOM_ITEM_ID,
|
|
161
187
|
CUSTOM_PRESET_KEY,
|
|
162
188
|
CampaignCardAdmin,
|
|
163
189
|
CampaignCardAdminSkeleton,
|
|
190
|
+
Card,
|
|
191
|
+
CardContent,
|
|
192
|
+
CardDescription,
|
|
193
|
+
CardFooter,
|
|
194
|
+
CardHeader,
|
|
195
|
+
CardHorizontal,
|
|
164
196
|
CardLoader,
|
|
197
|
+
CardTitle,
|
|
165
198
|
CaseStudyCard,
|
|
166
199
|
CaseStudyCardSkeleton,
|
|
167
200
|
ChangelogManager,
|
|
@@ -223,7 +256,9 @@ import {
|
|
|
223
256
|
CustomerInterviewCardSkeleton,
|
|
224
257
|
CveLink,
|
|
225
258
|
DEFAULT_CUSTOM_STATUS_COLOR,
|
|
259
|
+
DEFAULT_DOCUMENT_TYPE_TO_TABLE_ID,
|
|
226
260
|
DEFAULT_THEME,
|
|
261
|
+
DEV_SECTION_PARAM_KEYS,
|
|
227
262
|
DashboardInfoCard,
|
|
228
263
|
DataRoomDocCard,
|
|
229
264
|
DataRoomDocCardSkeleton,
|
|
@@ -268,19 +303,32 @@ import {
|
|
|
268
303
|
DrawerTrigger,
|
|
269
304
|
DropdownButton,
|
|
270
305
|
DynamicThemeProvider,
|
|
306
|
+
EMBED_SIZES,
|
|
307
|
+
EMPTY_AUTHOR_PLACEHOLDER,
|
|
308
|
+
EmbedContainer,
|
|
309
|
+
EmbedIframe,
|
|
271
310
|
EmbeddableChat,
|
|
311
|
+
EntityAuthorCard,
|
|
312
|
+
EntityImage,
|
|
313
|
+
EntityMetadataAuthorCell,
|
|
314
|
+
EntityMetadataValueCell,
|
|
272
315
|
EntitySummaryEditor,
|
|
316
|
+
EntityTagBadges,
|
|
317
|
+
EntityVideoSection,
|
|
273
318
|
ErrorBoundary,
|
|
274
319
|
ErrorMessageDisplay,
|
|
320
|
+
ErrorState,
|
|
275
321
|
ExpandChevron,
|
|
276
322
|
FeatureCardGrid,
|
|
277
323
|
FeatureList,
|
|
324
|
+
FigmaEmbed,
|
|
278
325
|
FigmaPrototypeViewer,
|
|
279
326
|
FileUpload,
|
|
280
327
|
FilterCheckboxItem,
|
|
281
328
|
FilterList,
|
|
282
329
|
FilterListItem,
|
|
283
330
|
FilterModal,
|
|
331
|
+
FilterPillRow,
|
|
284
332
|
FiltersDropdown,
|
|
285
333
|
FlamingoLogo as FlamingoLogo2,
|
|
286
334
|
FloatingTooltip,
|
|
@@ -299,6 +347,7 @@ import {
|
|
|
299
347
|
HeaderMingoButton,
|
|
300
348
|
HeaderOrganizationFilter,
|
|
301
349
|
HeaderSkeleton,
|
|
350
|
+
HiddenTagsPopup,
|
|
302
351
|
HighlightCard,
|
|
303
352
|
HighlightCardGrid,
|
|
304
353
|
HighlightConfigSection,
|
|
@@ -313,6 +362,7 @@ import {
|
|
|
313
362
|
HoverDropdown,
|
|
314
363
|
HubspotTicketCard,
|
|
315
364
|
HubspotTicketCardSkeleton,
|
|
365
|
+
ICON_REGISTRY,
|
|
316
366
|
IconsBlock,
|
|
317
367
|
ImageGalleryModal,
|
|
318
368
|
ImageUploader,
|
|
@@ -324,12 +374,21 @@ import {
|
|
|
324
374
|
InvestorUpdateCardSkeleton,
|
|
325
375
|
KnowledgeBaseLinksManager,
|
|
326
376
|
Label,
|
|
377
|
+
LinkPreviewContainer,
|
|
378
|
+
LinkedInContainer,
|
|
379
|
+
LinkedInEmbedClient,
|
|
327
380
|
ListLoader,
|
|
328
381
|
ListPageContainer,
|
|
329
382
|
ListPageLayout,
|
|
383
|
+
LoadError,
|
|
330
384
|
LoadingProvider,
|
|
331
385
|
MESSAGE_ROLE,
|
|
386
|
+
MESSAGE_TYPE,
|
|
387
|
+
MUX_IMAGE_ORIGIN,
|
|
388
|
+
MUX_STREAM_ORIGIN,
|
|
332
389
|
MarkdownEditor,
|
|
390
|
+
MarkdownImage,
|
|
391
|
+
MediaCarousel,
|
|
333
392
|
MediaGalleryManager,
|
|
334
393
|
MediaTypeSelector,
|
|
335
394
|
MemoizedChatMessageEnhanced,
|
|
@@ -359,6 +418,7 @@ import {
|
|
|
359
418
|
MinusIcon,
|
|
360
419
|
MobileBurgerMenu,
|
|
361
420
|
MobileNavPanel,
|
|
421
|
+
MobileNavigationDropdown,
|
|
362
422
|
Modal,
|
|
363
423
|
Modal2,
|
|
364
424
|
ModalContent,
|
|
@@ -373,7 +433,9 @@ import {
|
|
|
373
433
|
ModelDisplaySkeleton,
|
|
374
434
|
MoreAboutButton,
|
|
375
435
|
MoreActionsMenu,
|
|
436
|
+
MultiLevelNavigation,
|
|
376
437
|
NETWORK_CONFIG,
|
|
438
|
+
NEW_TAB_FEATURES,
|
|
377
439
|
NavLinkAnchorViaRuntime,
|
|
378
440
|
NavigationMenu,
|
|
379
441
|
NavigationMenuContent,
|
|
@@ -388,10 +450,13 @@ import {
|
|
|
388
450
|
NoDataAction,
|
|
389
451
|
NoDataActions,
|
|
390
452
|
NoDataMessage,
|
|
453
|
+
NotFoundError,
|
|
391
454
|
NotificationDrawer,
|
|
392
455
|
NotificationPopups,
|
|
393
456
|
NotificationTile,
|
|
394
457
|
NotificationsProvider,
|
|
458
|
+
OGLinkErrorBoundary,
|
|
459
|
+
OGLinkPreview,
|
|
395
460
|
ONBOARDING_ICONS,
|
|
396
461
|
ONBOARDING_ICON_OPTIONS,
|
|
397
462
|
OPENFRAME_PATHS,
|
|
@@ -400,12 +465,22 @@ import {
|
|
|
400
465
|
OSTypeIcon,
|
|
401
466
|
OSTypeLabel,
|
|
402
467
|
OWNER_TYPE,
|
|
468
|
+
OnboardingGuideCard,
|
|
469
|
+
OnboardingGuideCardSkeleton,
|
|
403
470
|
OnboardingStepCard,
|
|
404
471
|
OnboardingWalkthrough,
|
|
405
472
|
OpenmspLogo as OpenmspLogo2,
|
|
406
473
|
OrganizationCard,
|
|
474
|
+
PAGE_HEADING_CLASS,
|
|
475
|
+
PageActions,
|
|
407
476
|
PageContainer,
|
|
477
|
+
PageError,
|
|
478
|
+
PageHeader,
|
|
479
|
+
PageHeading,
|
|
480
|
+
PageLayout,
|
|
408
481
|
PageLoader,
|
|
482
|
+
PageShell,
|
|
483
|
+
PageWithHeader,
|
|
409
484
|
Pagination,
|
|
410
485
|
PaginationContent,
|
|
411
486
|
PaginationEllipsis,
|
|
@@ -431,22 +506,36 @@ import {
|
|
|
431
506
|
QueryReportTableHeader,
|
|
432
507
|
QueryReportTableRow,
|
|
433
508
|
QueryReportTableSkeleton,
|
|
509
|
+
RATIO_DISPLAY_GRID_CLASS,
|
|
510
|
+
RATIO_GRID_CLASS,
|
|
434
511
|
ROW_HEIGHT_DESKTOP,
|
|
435
512
|
ROW_HEIGHT_MOBILE,
|
|
436
513
|
RadioGroup,
|
|
437
514
|
RadioGroupBlock,
|
|
438
515
|
RadioGroupItem,
|
|
516
|
+
RatioTabs,
|
|
517
|
+
RedditContainer,
|
|
518
|
+
RedditEmbedClient,
|
|
439
519
|
ReleaseChangelogSection,
|
|
440
520
|
ReleaseMediaManager,
|
|
441
521
|
RenameChatModal,
|
|
442
522
|
ResultBlock,
|
|
523
|
+
RichMarkdownRenderer,
|
|
524
|
+
RichMarkdownRuntimeProvider,
|
|
443
525
|
RoadmapCard,
|
|
444
526
|
RoadmapCardSkeleton,
|
|
445
527
|
RoadmapVoteButton,
|
|
528
|
+
SCROLL_ANCHOR,
|
|
529
|
+
SCROLL_ANCHOR_WIRE_KEY,
|
|
530
|
+
SECTION_HEADING_CLASS,
|
|
531
|
+
SECTION_HERO_ICON_CLASS,
|
|
446
532
|
SEOEditorPreview,
|
|
533
|
+
SOURCE_ICON_NAMES,
|
|
534
|
+
SOURCE_LABELS_BY_TABLE,
|
|
447
535
|
SYNTHETIC_REALTIME_ID_PREFIXES,
|
|
448
536
|
ScriptArguments,
|
|
449
537
|
ScriptInfoSection,
|
|
538
|
+
SearchInput,
|
|
450
539
|
SectionSelector,
|
|
451
540
|
Select,
|
|
452
541
|
SelectButton,
|
|
@@ -472,6 +561,7 @@ import {
|
|
|
472
561
|
SheetTitle,
|
|
473
562
|
SheetTrigger,
|
|
474
563
|
ShellTypeBadge,
|
|
564
|
+
SimpleMarkdownRenderer,
|
|
475
565
|
SlackMessageCard,
|
|
476
566
|
SlackMessageCardSkeleton,
|
|
477
567
|
SlashCommandSuggestions,
|
|
@@ -481,10 +571,14 @@ import {
|
|
|
481
571
|
SoftwareInfo,
|
|
482
572
|
SoftwareSourceBadge,
|
|
483
573
|
SourceActionButton,
|
|
574
|
+
SquareAvatar,
|
|
484
575
|
StartWithOpenFrameButton,
|
|
576
|
+
StatusBadge,
|
|
485
577
|
StatusFilterComponent,
|
|
486
578
|
StatusIndicator,
|
|
579
|
+
StickySectionNav,
|
|
487
580
|
Switch,
|
|
581
|
+
TAG_BADGE_CLASS,
|
|
488
582
|
THEME_ATTRIBUTE,
|
|
489
583
|
THEME_STORAGE_KEY,
|
|
490
584
|
TICKET_STATUS_COLOR_PRESETS,
|
|
@@ -499,6 +593,11 @@ import {
|
|
|
499
593
|
TableHeader,
|
|
500
594
|
TableRow,
|
|
501
595
|
TableTimestampCell,
|
|
596
|
+
Tabs,
|
|
597
|
+
TabsContent,
|
|
598
|
+
TabsList,
|
|
599
|
+
TabsTrigger,
|
|
600
|
+
Tag,
|
|
502
601
|
TagKeyValueFilter,
|
|
503
602
|
TagSearchInput,
|
|
504
603
|
TagsInput,
|
|
@@ -521,6 +620,7 @@ import {
|
|
|
521
620
|
TimeTrackerHeaderButton,
|
|
522
621
|
TimeTrackerPanel,
|
|
523
622
|
TimeTrackerProvider,
|
|
623
|
+
TitleBlock,
|
|
524
624
|
TitleContentBlock,
|
|
525
625
|
Toggle,
|
|
526
626
|
ToggleGroup,
|
|
@@ -535,7 +635,12 @@ import {
|
|
|
535
635
|
TranscribeSummarizeSection,
|
|
536
636
|
TranscriptSummaryEditor,
|
|
537
637
|
TruncateText,
|
|
638
|
+
TwitterContainer,
|
|
639
|
+
TwitterEmbedClient,
|
|
538
640
|
UnarchiveChatModal,
|
|
641
|
+
Video,
|
|
642
|
+
VideoBiteCard,
|
|
643
|
+
VideoBitesDisplay,
|
|
539
644
|
VideoClipsSection,
|
|
540
645
|
VideoSourceSelector,
|
|
541
646
|
ViewToggle,
|
|
@@ -544,73 +649,120 @@ import {
|
|
|
544
649
|
WhatIShippedCardSkeleton,
|
|
545
650
|
XCircleIcon,
|
|
546
651
|
XIcon as XIcon2,
|
|
652
|
+
YouTubeContainer,
|
|
547
653
|
alignJustify,
|
|
548
654
|
approvalMetaToBatchData,
|
|
549
655
|
badgeVariants,
|
|
656
|
+
buildAnchorProps,
|
|
657
|
+
buildAutoContinuationDirective,
|
|
658
|
+
buildChatAttachmentViewUrl,
|
|
550
659
|
buildChatRefKey,
|
|
660
|
+
buildDiscussAddendum,
|
|
551
661
|
buildNatsWsUrl,
|
|
552
662
|
buildProductReleaseCardProps,
|
|
553
663
|
chatChipClass,
|
|
664
|
+
clickupTaskUrl,
|
|
554
665
|
columnFromTicketStatus,
|
|
555
666
|
computeHistoryPrepend,
|
|
667
|
+
computeIsNewTab,
|
|
556
668
|
createColumnHelper,
|
|
557
669
|
createMessageSegmentAccumulator,
|
|
670
|
+
decideNewTab,
|
|
558
671
|
defaultBuildProductReleaseCardProps,
|
|
672
|
+
defaultTableIdForDocumentType,
|
|
559
673
|
deriveColumns,
|
|
674
|
+
detectAspectRatio,
|
|
675
|
+
devSectionAnchorId,
|
|
676
|
+
escapeMarkdownInline,
|
|
560
677
|
executeNavigation,
|
|
561
678
|
executeNavigationImperative,
|
|
562
679
|
exportToCSV,
|
|
680
|
+
extractEntityIdFilter,
|
|
563
681
|
extractErrorMessages,
|
|
564
682
|
extractIncompleteMessageState,
|
|
565
683
|
extractTextFromChunk,
|
|
684
|
+
extractYouTubeId,
|
|
566
685
|
fetchEmptyStateConfig,
|
|
567
686
|
fetchSlashCommands,
|
|
687
|
+
flattenAssistantContent,
|
|
568
688
|
flattenMessagePagesChronological,
|
|
569
689
|
flexRender,
|
|
690
|
+
formatBioText,
|
|
691
|
+
formatChatAttachmentMarkdownForBubble,
|
|
570
692
|
formatInvestorUpdatePeriod,
|
|
693
|
+
formatLegalDate,
|
|
694
|
+
formatRelativeTime,
|
|
695
|
+
formatReleaseDate,
|
|
696
|
+
formatSingularLookupInvocation,
|
|
571
697
|
getApprovalMeta,
|
|
698
|
+
getCaptionsUrl,
|
|
572
699
|
getCommandText,
|
|
573
700
|
getCoreRowModel,
|
|
701
|
+
getDynamicIcon,
|
|
574
702
|
getExpandedRowModel,
|
|
575
703
|
getFacetedRowModel,
|
|
576
704
|
getFacetedUniqueValues,
|
|
577
705
|
getFilteredRowModel,
|
|
578
706
|
getGroupedRowModel,
|
|
579
707
|
getHideClasses,
|
|
708
|
+
getIconComponent,
|
|
580
709
|
getOpenFramePaths,
|
|
581
710
|
getPaginationRowModel,
|
|
582
|
-
getProxiedImageUrl
|
|
711
|
+
getProxiedImageUrl,
|
|
712
|
+
getProxiedImageUrl2,
|
|
583
713
|
getSortedRowModel,
|
|
714
|
+
getSourceIconName,
|
|
715
|
+
getSourceLabel,
|
|
716
|
+
getStatusColorScheme,
|
|
584
717
|
getTabById,
|
|
585
718
|
getTabComponent,
|
|
719
|
+
getTaskTypeLabel,
|
|
586
720
|
getTicketStatusConfig,
|
|
587
721
|
getTicketStatusTag,
|
|
722
|
+
groupByAspectRatio,
|
|
588
723
|
groupTicketsByStatus,
|
|
589
724
|
handleChatNavClick,
|
|
590
725
|
init_pagination,
|
|
591
726
|
isApprovalNotification,
|
|
592
727
|
isControlChunk,
|
|
728
|
+
isCrossOriginUrl,
|
|
593
729
|
isErrorChunk,
|
|
594
730
|
isMetadataChunk,
|
|
731
|
+
isModifierClick,
|
|
595
732
|
isStructuredContent,
|
|
596
733
|
kindToCanonicalStatus,
|
|
597
734
|
maxPersistedStreamSeq,
|
|
598
735
|
mergeHistoryWithRealtime,
|
|
599
736
|
multiSelectFilterFn,
|
|
600
737
|
navigationMenuTriggerStyle,
|
|
738
|
+
newTabAnchorAttrs,
|
|
601
739
|
noDataActionsVariants,
|
|
602
740
|
noDataIconClasses,
|
|
603
741
|
normalizeContent,
|
|
742
|
+
normalizeIconKey,
|
|
604
743
|
parseChunkToAction,
|
|
744
|
+
parseScrollAnchor,
|
|
745
|
+
parseWireCommandOverride,
|
|
605
746
|
processHistoricalMessages,
|
|
606
747
|
processHistoricalMessagesWithErrors,
|
|
748
|
+
ratioToCategory,
|
|
607
749
|
remarkCardLinks,
|
|
608
750
|
remarkMentionChips,
|
|
609
751
|
renderChatInlineEntityCard,
|
|
610
752
|
resolutionToStatus,
|
|
753
|
+
resolveContentHref,
|
|
754
|
+
resolveExternalNavigation,
|
|
611
755
|
resolveOnboardingIcon,
|
|
756
|
+
resolveSourceIcon,
|
|
757
|
+
resolveSourceRowCTA,
|
|
612
758
|
resolveStatusTagProps,
|
|
613
759
|
resolveTicketStatus,
|
|
760
|
+
safeHref,
|
|
761
|
+
sanitizeTitleForChat,
|
|
762
|
+
statusBadgeVariants,
|
|
763
|
+
stripChatAttachmentMarkdown,
|
|
764
|
+
stripSameOriginToPath,
|
|
765
|
+
tagVariants,
|
|
614
766
|
tintOnDark,
|
|
615
767
|
toggleVariants,
|
|
616
768
|
transformEventToProgram,
|
|
@@ -630,6 +782,7 @@ import {
|
|
|
630
782
|
useDataTableContext,
|
|
631
783
|
useDynamicTheme,
|
|
632
784
|
useEmptyStateConfig,
|
|
785
|
+
useEntityCardLink,
|
|
633
786
|
useFiltersDropdown,
|
|
634
787
|
useJetStreamDialogSubscription,
|
|
635
788
|
useLoading,
|
|
@@ -638,9 +791,12 @@ import {
|
|
|
638
791
|
useNotifications,
|
|
639
792
|
useOptionalNotifications,
|
|
640
793
|
useOptionalTimeTracker,
|
|
794
|
+
usePageActionsBottomPadding,
|
|
641
795
|
useProxiedImageUrl,
|
|
642
796
|
useRealtimeChunkProcessor,
|
|
797
|
+
useRichMarkdownRuntime,
|
|
643
798
|
useSSE,
|
|
799
|
+
useSectionNavigation,
|
|
644
800
|
useSlashCommandRegistry,
|
|
645
801
|
useSlashCommands,
|
|
646
802
|
useSseChatAdapter,
|
|
@@ -649,196 +805,38 @@ import {
|
|
|
649
805
|
useTimeTracker,
|
|
650
806
|
useTrackerClock,
|
|
651
807
|
useUnifiedChat,
|
|
808
|
+
useVideoOriginPreconnect,
|
|
809
|
+
useVideoWarmup,
|
|
652
810
|
usesCanonicalStatusStyle
|
|
653
|
-
} from "../chunk-
|
|
654
|
-
import {
|
|
655
|
-
ANTHROPIC_SUPPORTED_IMAGE_MIME,
|
|
656
|
-
AUTO_CONTINUATION_DIRECTIVE_PREFIX,
|
|
657
|
-
CHAT_ATTACHMENT_MARKDOWN_PATTERN,
|
|
658
|
-
CHAT_ATTACHMENT_VIEW_TOKEN_QUERY_PARAM,
|
|
659
|
-
CHAT_ATTACHMENT_VIEW_URL_PREFIX,
|
|
660
|
-
CHAT_ATTACHMENT_VIEW_URL_PREFIX_REGEX_ESCAPED,
|
|
661
|
-
CUSTOM_ITEM_ID,
|
|
662
|
-
DEV_SECTION_PARAM_KEYS,
|
|
663
|
-
MESSAGE_TYPE,
|
|
664
|
-
MobileNavigationDropdown,
|
|
665
|
-
MultiLevelNavigation,
|
|
666
|
-
SCROLL_ANCHOR,
|
|
667
|
-
SCROLL_ANCHOR_WIRE_KEY,
|
|
668
|
-
StickySectionNav,
|
|
669
|
-
buildAutoContinuationDirective,
|
|
670
|
-
buildChatAttachmentViewUrl,
|
|
671
|
-
buildDiscussAddendum,
|
|
672
|
-
clickupTaskUrl,
|
|
673
|
-
devSectionAnchorId,
|
|
674
|
-
escapeMarkdownInline,
|
|
675
|
-
extractEntityIdFilter,
|
|
676
|
-
flattenAssistantContent,
|
|
677
|
-
formatChatAttachmentMarkdownForBubble,
|
|
678
|
-
formatRelativeTime,
|
|
679
|
-
formatReleaseDate,
|
|
680
|
-
formatSingularLookupInvocation,
|
|
681
|
-
getStatusColorScheme,
|
|
682
|
-
getTaskTypeLabel,
|
|
683
|
-
parseScrollAnchor,
|
|
684
|
-
parseWireCommandOverride,
|
|
685
|
-
sanitizeTitleForChat,
|
|
686
|
-
stripChatAttachmentMarkdown,
|
|
687
|
-
useSectionNavigation
|
|
688
|
-
} from "../chunk-26PKDALD.js";
|
|
811
|
+
} from "../chunk-PC746XCO.js";
|
|
689
812
|
import {
|
|
690
813
|
CommandApprovalToast,
|
|
814
|
+
STICKY_HEADER_OFFSET_PX,
|
|
691
815
|
ToastCard,
|
|
692
816
|
Toaster,
|
|
817
|
+
applyProxyAuth,
|
|
818
|
+
clearEmbedProxyAuth,
|
|
819
|
+
contentFetch,
|
|
693
820
|
dotColorByVariant,
|
|
821
|
+
embedAuthedFetch,
|
|
822
|
+
getAppType,
|
|
823
|
+
getEmbedProxyAuth,
|
|
824
|
+
getPersistedProxyEmail,
|
|
694
825
|
progressColorByVariant,
|
|
826
|
+
setEmbedProxyAuth,
|
|
695
827
|
showCommandApprovalToast,
|
|
696
828
|
showToast,
|
|
697
829
|
useOnboardingState,
|
|
698
830
|
useScrollToHash,
|
|
699
831
|
useToast
|
|
700
|
-
} from "../chunk-
|
|
832
|
+
} from "../chunk-2QG57XOJ.js";
|
|
701
833
|
import {
|
|
702
|
-
|
|
703
|
-
} from "../chunk-
|
|
834
|
+
useChatRuntime
|
|
835
|
+
} from "../chunk-IZ7JSBFP.js";
|
|
704
836
|
import {
|
|
705
837
|
useEndpointsRuntime
|
|
706
838
|
} from "../chunk-MJNXIEV2.js";
|
|
707
|
-
import
|
|
708
|
-
Checkbox,
|
|
709
|
-
FieldWrapper,
|
|
710
|
-
Input,
|
|
711
|
-
Skeleton,
|
|
712
|
-
SkeletonButton,
|
|
713
|
-
SkeletonCard,
|
|
714
|
-
SkeletonGrid,
|
|
715
|
-
SkeletonHeading,
|
|
716
|
-
SkeletonList,
|
|
717
|
-
SkeletonNavigation,
|
|
718
|
-
SkeletonText
|
|
719
|
-
} from "../chunk-M2OCXTNT.js";
|
|
720
|
-
import "../chunk-PHWQLKVE.js";
|
|
721
|
-
import {
|
|
722
|
-
ActionsMenu,
|
|
723
|
-
ActionsMenuDropdown,
|
|
724
|
-
ArticleDetailLayout,
|
|
725
|
-
BlogImagePlaceholder,
|
|
726
|
-
Card,
|
|
727
|
-
CardContent,
|
|
728
|
-
CardDescription,
|
|
729
|
-
CardFooter,
|
|
730
|
-
CardHeader,
|
|
731
|
-
CardHorizontal,
|
|
732
|
-
CardTitle,
|
|
733
|
-
EMPTY_AUTHOR_PLACEHOLDER,
|
|
734
|
-
EntityAuthorCard,
|
|
735
|
-
EntityImage,
|
|
736
|
-
EntityMetadataAuthorCell,
|
|
737
|
-
EntityMetadataValueCell,
|
|
738
|
-
EntityTagBadges,
|
|
739
|
-
EntityVideoSection,
|
|
740
|
-
ErrorState,
|
|
741
|
-
FilterPillRow,
|
|
742
|
-
LoadError,
|
|
743
|
-
MUX_IMAGE_ORIGIN,
|
|
744
|
-
MUX_STREAM_ORIGIN,
|
|
745
|
-
NotFoundError,
|
|
746
|
-
OnboardingGuideCard,
|
|
747
|
-
OnboardingGuideCardSkeleton,
|
|
748
|
-
PageActions,
|
|
749
|
-
PageError,
|
|
750
|
-
PageLayout,
|
|
751
|
-
PageShell,
|
|
752
|
-
RATIO_DISPLAY_GRID_CLASS,
|
|
753
|
-
RATIO_GRID_CLASS,
|
|
754
|
-
RatioTabs,
|
|
755
|
-
SimpleMarkdownRenderer,
|
|
756
|
-
SquareAvatar,
|
|
757
|
-
StatusBadge,
|
|
758
|
-
TAG_BADGE_CLASS,
|
|
759
|
-
Tabs,
|
|
760
|
-
TabsContent,
|
|
761
|
-
TabsList,
|
|
762
|
-
TabsTrigger,
|
|
763
|
-
TitleBlock,
|
|
764
|
-
Video,
|
|
765
|
-
VideoBiteCard,
|
|
766
|
-
VideoBitesDisplay,
|
|
767
|
-
buildAnchorProps,
|
|
768
|
-
computeIsNewTab,
|
|
769
|
-
detectAspectRatio,
|
|
770
|
-
extractYouTubeId,
|
|
771
|
-
getCaptionsUrl,
|
|
772
|
-
groupByAspectRatio,
|
|
773
|
-
newTabAnchorAttrs,
|
|
774
|
-
ratioToCategory,
|
|
775
|
-
statusBadgeVariants,
|
|
776
|
-
useEntityCardLink,
|
|
777
|
-
usePageActionsBottomPadding,
|
|
778
|
-
useVideoOriginPreconnect,
|
|
779
|
-
useVideoWarmup
|
|
780
|
-
} from "../chunk-D652TJBQ.js";
|
|
781
|
-
import {
|
|
782
|
-
COMPACT_CARD_ICON_SLOT,
|
|
783
|
-
COMPACT_CARD_IMAGE_SLOT,
|
|
784
|
-
COMPACT_CARD_META_ROW,
|
|
785
|
-
COMPACT_CARD_META_ROW_BOX,
|
|
786
|
-
COMPACT_CARD_OUTER,
|
|
787
|
-
COMPACT_CARD_OUTER_STATIC,
|
|
788
|
-
COMPACT_CARD_ROW_FILLER,
|
|
789
|
-
COMPACT_CARD_SKELETON_IMAGE_SLOT,
|
|
790
|
-
COMPACT_CARD_SKELETON_OUTER,
|
|
791
|
-
COMPACT_CARD_SUBTITLE,
|
|
792
|
-
COMPACT_CARD_SUMMARY,
|
|
793
|
-
COMPACT_CARD_TEXT_COL,
|
|
794
|
-
COMPACT_CARD_TITLE,
|
|
795
|
-
COMPACT_CARD_TITLE_ROW,
|
|
796
|
-
DEFAULT_DOCUMENT_TYPE_TO_TABLE_ID,
|
|
797
|
-
HiddenTagsPopup,
|
|
798
|
-
ICON_REGISTRY,
|
|
799
|
-
NEW_TAB_FEATURES,
|
|
800
|
-
PAGE_HEADING_CLASS,
|
|
801
|
-
PageHeading,
|
|
802
|
-
SECTION_HEADING_CLASS,
|
|
803
|
-
SOURCE_ICON_NAMES,
|
|
804
|
-
SOURCE_LABELS_BY_TABLE,
|
|
805
|
-
SearchInput,
|
|
806
|
-
Tag,
|
|
807
|
-
decideNewTab,
|
|
808
|
-
defaultTableIdForDocumentType,
|
|
809
|
-
formatBioText,
|
|
810
|
-
formatLegalDate,
|
|
811
|
-
getDynamicIcon,
|
|
812
|
-
getIconComponent,
|
|
813
|
-
getProxiedImageUrl,
|
|
814
|
-
getSourceIconName,
|
|
815
|
-
getSourceLabel,
|
|
816
|
-
isCrossOriginUrl,
|
|
817
|
-
isModifierClick,
|
|
818
|
-
normalizeIconKey,
|
|
819
|
-
resolveContentHref,
|
|
820
|
-
resolveExternalNavigation,
|
|
821
|
-
resolveSourceIcon,
|
|
822
|
-
resolveSourceRowCTA,
|
|
823
|
-
safeHref,
|
|
824
|
-
stripSameOriginToPath,
|
|
825
|
-
tagVariants
|
|
826
|
-
} from "../chunk-FQJK446R.js";
|
|
827
|
-
import {
|
|
828
|
-
contentFetch
|
|
829
|
-
} from "../chunk-3MCHAFHB.js";
|
|
830
|
-
import {
|
|
831
|
-
applyProxyAuth,
|
|
832
|
-
clearEmbedProxyAuth,
|
|
833
|
-
embedAuthedFetch,
|
|
834
|
-
getAppType,
|
|
835
|
-
getEmbedProxyAuth,
|
|
836
|
-
getPersistedProxyEmail,
|
|
837
|
-
setEmbedProxyAuth
|
|
838
|
-
} from "../chunk-POKKCWKF.js";
|
|
839
|
-
import {
|
|
840
|
-
useChatRuntime
|
|
841
|
-
} from "../chunk-LCNMR277.js";
|
|
839
|
+
import "../chunk-EL5YVPD5.js";
|
|
842
840
|
import {
|
|
843
841
|
init_next_navigation,
|
|
844
842
|
usePathname,
|
|
@@ -848,9 +846,9 @@ import {
|
|
|
848
846
|
import {
|
|
849
847
|
next_image_default
|
|
850
848
|
} from "../chunk-LXC6P2EO.js";
|
|
851
|
-
import "../chunk-EL5YVPD5.js";
|
|
852
849
|
import {
|
|
853
850
|
Button,
|
|
851
|
+
Checkbox,
|
|
854
852
|
DropdownMenu,
|
|
855
853
|
DropdownMenuCheckboxItem,
|
|
856
854
|
DropdownMenuContent,
|
|
@@ -866,10 +864,20 @@ import {
|
|
|
866
864
|
DropdownMenuSubContent,
|
|
867
865
|
DropdownMenuSubTrigger,
|
|
868
866
|
DropdownMenuTrigger,
|
|
867
|
+
FieldWrapper,
|
|
868
|
+
Input,
|
|
869
|
+
Skeleton,
|
|
870
|
+
SkeletonButton,
|
|
871
|
+
SkeletonCard,
|
|
872
|
+
SkeletonGrid,
|
|
873
|
+
SkeletonHeading,
|
|
874
|
+
SkeletonList,
|
|
875
|
+
SkeletonNavigation,
|
|
876
|
+
SkeletonText,
|
|
869
877
|
SplitButton,
|
|
870
878
|
buttonVariants,
|
|
871
879
|
init_button2 as init_button
|
|
872
|
-
} from "../chunk-
|
|
880
|
+
} from "../chunk-JALO4TAZ.js";
|
|
873
881
|
import {
|
|
874
882
|
init_next_link,
|
|
875
883
|
next_link_default
|
|
@@ -1031,11 +1039,10 @@ import {
|
|
|
1031
1039
|
getBaseUrl,
|
|
1032
1040
|
init_cn
|
|
1033
1041
|
} from "../chunk-XTCBRQN2.js";
|
|
1034
|
-
import
|
|
1035
|
-
PlayIcon
|
|
1036
|
-
} from "../chunk-J7AV6H63.js";
|
|
1042
|
+
import "../chunk-J7AV6H63.js";
|
|
1037
1043
|
import "../chunk-6U3IUD57.js";
|
|
1038
1044
|
import "../chunk-W72U7OU7.js";
|
|
1045
|
+
import "../chunk-PHWQLKVE.js";
|
|
1039
1046
|
import {
|
|
1040
1047
|
__toCommonJS
|
|
1041
1048
|
} from "../chunk-GGWZFCYS.js";
|
|
@@ -3144,234 +3151,13 @@ var ImageCropper = ({
|
|
|
3144
3151
|
);
|
|
3145
3152
|
};
|
|
3146
3153
|
|
|
3147
|
-
// src/components/media-carousel.tsx
|
|
3148
|
-
init_cn();
|
|
3149
|
-
import { useState as useState5, useRef as useRef4, useEffect as useEffect4, memo, useCallback as useCallback3 } from "react";
|
|
3150
|
-
import { Fragment as Fragment5, jsx as jsx20, jsxs as jsxs15 } from "react/jsx-runtime";
|
|
3151
|
-
var ChevronLeftIcon = () => /* @__PURE__ */ jsx20("svg", { width: "24", height: "24", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ jsx20("polyline", { points: "15,18 9,12 15,6" }) });
|
|
3152
|
-
var ChevronRightIcon = () => /* @__PURE__ */ jsx20("svg", { width: "24", height: "24", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ jsx20("polyline", { points: "9,18 15,12 9,6" }) });
|
|
3153
|
-
var MediaCarousel = memo(function MediaCarousel2({
|
|
3154
|
-
media,
|
|
3155
|
-
className,
|
|
3156
|
-
aspectRatio = "16/9",
|
|
3157
|
-
showThumbnails = true,
|
|
3158
|
-
autoPlay = false,
|
|
3159
|
-
objectFit = "contain"
|
|
3160
|
-
}) {
|
|
3161
|
-
const [currentIndex, setCurrentIndex] = useState5(0);
|
|
3162
|
-
const [touchStart, setTouchStart] = useState5(null);
|
|
3163
|
-
const [touchEnd, setTouchEnd] = useState5(null);
|
|
3164
|
-
const carouselRef = useRef4(null);
|
|
3165
|
-
const thumbnailsRef = useRef4(null);
|
|
3166
|
-
useEffect4(() => {
|
|
3167
|
-
if (currentIndex >= media.length && media.length > 0) {
|
|
3168
|
-
setCurrentIndex(media.length - 1);
|
|
3169
|
-
}
|
|
3170
|
-
}, [media.length, currentIndex]);
|
|
3171
|
-
if (!media || media.length === 0) {
|
|
3172
|
-
return null;
|
|
3173
|
-
}
|
|
3174
|
-
const currentItem = media[currentIndex] || media[0];
|
|
3175
|
-
if (!currentItem) {
|
|
3176
|
-
return null;
|
|
3177
|
-
}
|
|
3178
|
-
const nextSlide = useCallback3(() => {
|
|
3179
|
-
setCurrentIndex((prev) => (prev + 1) % media.length);
|
|
3180
|
-
}, [media.length]);
|
|
3181
|
-
const prevSlide = useCallback3(() => {
|
|
3182
|
-
setCurrentIndex((prev) => (prev - 1 + media.length) % media.length);
|
|
3183
|
-
}, [media.length]);
|
|
3184
|
-
const selectSlide = useCallback3((index) => {
|
|
3185
|
-
if (index === currentIndex) return;
|
|
3186
|
-
setCurrentIndex(index);
|
|
3187
|
-
}, [currentIndex]);
|
|
3188
|
-
const handleKeyDown = useCallback3((e) => {
|
|
3189
|
-
if (media.length <= 1) return;
|
|
3190
|
-
if (e.key === "ArrowLeft") {
|
|
3191
|
-
e.preventDefault();
|
|
3192
|
-
prevSlide();
|
|
3193
|
-
} else if (e.key === "ArrowRight") {
|
|
3194
|
-
e.preventDefault();
|
|
3195
|
-
nextSlide();
|
|
3196
|
-
}
|
|
3197
|
-
}, [nextSlide, prevSlide, media.length]);
|
|
3198
|
-
const minSwipeDistance = 50;
|
|
3199
|
-
const onTouchStart = (e) => {
|
|
3200
|
-
setTouchEnd(null);
|
|
3201
|
-
setTouchStart(e.targetTouches[0].clientX);
|
|
3202
|
-
};
|
|
3203
|
-
const onTouchMove = (e) => {
|
|
3204
|
-
setTouchEnd(e.targetTouches[0].clientX);
|
|
3205
|
-
};
|
|
3206
|
-
const onTouchEnd = () => {
|
|
3207
|
-
if (!touchStart || !touchEnd) return;
|
|
3208
|
-
const distance = touchStart - touchEnd;
|
|
3209
|
-
const isLeftSwipe = distance > minSwipeDistance;
|
|
3210
|
-
const isRightSwipe = distance < -minSwipeDistance;
|
|
3211
|
-
if (isLeftSwipe && media.length > 1) {
|
|
3212
|
-
nextSlide();
|
|
3213
|
-
}
|
|
3214
|
-
if (isRightSwipe && media.length > 1) {
|
|
3215
|
-
prevSlide();
|
|
3216
|
-
}
|
|
3217
|
-
};
|
|
3218
|
-
const renderYouTubeEmbed = (item, index) => /* @__PURE__ */ jsx20(
|
|
3219
|
-
Video,
|
|
3220
|
-
{
|
|
3221
|
-
kind: "youtube",
|
|
3222
|
-
url: item.src,
|
|
3223
|
-
title: item.alt || `Video ${index + 1}`,
|
|
3224
|
-
layout: "fill",
|
|
3225
|
-
priority: index === currentIndex
|
|
3226
|
-
}
|
|
3227
|
-
);
|
|
3228
|
-
const renderVideo = (item, index) => /* @__PURE__ */ jsx20(
|
|
3229
|
-
Video,
|
|
3230
|
-
{
|
|
3231
|
-
url: item.src,
|
|
3232
|
-
poster: item.poster,
|
|
3233
|
-
muted: true,
|
|
3234
|
-
layout: "fill",
|
|
3235
|
-
priority: index === currentIndex
|
|
3236
|
-
}
|
|
3237
|
-
);
|
|
3238
|
-
const renderImage = (item, index) => /* @__PURE__ */ jsx20("div", { className: "absolute inset-0 bg-black", children: /* @__PURE__ */ jsx20(
|
|
3239
|
-
"img",
|
|
3240
|
-
{
|
|
3241
|
-
src: item.src,
|
|
3242
|
-
alt: item.alt || `Media ${index + 1}`,
|
|
3243
|
-
className: `w-full h-full object-${objectFit}`,
|
|
3244
|
-
loading: "lazy",
|
|
3245
|
-
onError: (e) => {
|
|
3246
|
-
const target = e.target;
|
|
3247
|
-
target.style.display = "none";
|
|
3248
|
-
}
|
|
3249
|
-
}
|
|
3250
|
-
) });
|
|
3251
|
-
const renderMainMedia = (item, index) => {
|
|
3252
|
-
switch (item.type) {
|
|
3253
|
-
case "youtube":
|
|
3254
|
-
return renderYouTubeEmbed(item, index);
|
|
3255
|
-
case "video":
|
|
3256
|
-
return renderVideo(item, index);
|
|
3257
|
-
case "image":
|
|
3258
|
-
default:
|
|
3259
|
-
return renderImage(item, index);
|
|
3260
|
-
}
|
|
3261
|
-
};
|
|
3262
|
-
const renderThumbnail = (item, index) => {
|
|
3263
|
-
const isActive = index === currentIndex;
|
|
3264
|
-
let thumbnailSrc = item.src;
|
|
3265
|
-
if (item.type === "youtube") {
|
|
3266
|
-
const videoId = extractYouTubeId(item.src);
|
|
3267
|
-
thumbnailSrc = videoId ? `https://img.youtube.com/vi/${videoId}/mqdefault.jpg` : item.src;
|
|
3268
|
-
} else if (item.type === "video" && item.poster) {
|
|
3269
|
-
thumbnailSrc = item.poster;
|
|
3270
|
-
}
|
|
3271
|
-
return /* @__PURE__ */ jsxs15(
|
|
3272
|
-
"button",
|
|
3273
|
-
{
|
|
3274
|
-
onClick: () => selectSlide(index),
|
|
3275
|
-
className: cn(
|
|
3276
|
-
"relative flex-shrink-0 overflow-hidden transition-all duration-200",
|
|
3277
|
-
"w-20 h-20 md:w-24 md:h-24 rounded-lg border-2",
|
|
3278
|
-
isActive ? "border-[#FFC008] ring-2 ring-[#FFC008]/20" : "border-ods-border hover:border-[#888888]"
|
|
3279
|
-
),
|
|
3280
|
-
children: [
|
|
3281
|
-
/* @__PURE__ */ jsx20(
|
|
3282
|
-
"img",
|
|
3283
|
-
{
|
|
3284
|
-
src: thumbnailSrc,
|
|
3285
|
-
alt: item.alt || `Thumbnail ${index + 1}`,
|
|
3286
|
-
className: "w-full h-full object-cover",
|
|
3287
|
-
loading: "lazy"
|
|
3288
|
-
}
|
|
3289
|
-
),
|
|
3290
|
-
(item.type === "video" || item.type === "youtube") && /* @__PURE__ */ jsx20("div", { className: "absolute inset-0 flex items-center justify-center bg-black/30", children: /* @__PURE__ */ jsx20("div", { className: "bg-black/70 rounded-full p-1", children: /* @__PURE__ */ jsx20(PlayIcon, { size: 12, color: "white" }) }) }),
|
|
3291
|
-
isActive && /* @__PURE__ */ jsx20("div", { className: "absolute bottom-1 right-1 w-2 h-2 bg-[#FFC008] rounded-full" })
|
|
3292
|
-
]
|
|
3293
|
-
},
|
|
3294
|
-
index
|
|
3295
|
-
);
|
|
3296
|
-
};
|
|
3297
|
-
const getAspectRatioClass = () => {
|
|
3298
|
-
switch (aspectRatio) {
|
|
3299
|
-
case "4/3":
|
|
3300
|
-
return "aspect-[4/3]";
|
|
3301
|
-
case "3/2":
|
|
3302
|
-
return "aspect-[3/2]";
|
|
3303
|
-
case "1/1":
|
|
3304
|
-
return "aspect-square";
|
|
3305
|
-
case "16/9":
|
|
3306
|
-
default:
|
|
3307
|
-
return "aspect-video";
|
|
3308
|
-
}
|
|
3309
|
-
};
|
|
3310
|
-
return /* @__PURE__ */ jsxs15("div", { className: cn("space-y-4", className), children: [
|
|
3311
|
-
/* @__PURE__ */ jsxs15(
|
|
3312
|
-
"div",
|
|
3313
|
-
{
|
|
3314
|
-
ref: carouselRef,
|
|
3315
|
-
className: cn(
|
|
3316
|
-
"relative bg-ods-bg border border-ods-border rounded-2xl overflow-hidden group w-full",
|
|
3317
|
-
getAspectRatioClass()
|
|
3318
|
-
),
|
|
3319
|
-
onTouchStart,
|
|
3320
|
-
onTouchMove,
|
|
3321
|
-
onTouchEnd,
|
|
3322
|
-
onKeyDown: media.length > 1 ? handleKeyDown : void 0,
|
|
3323
|
-
tabIndex: media.length > 1 ? 0 : void 0,
|
|
3324
|
-
role: media.length > 1 ? "region" : void 0,
|
|
3325
|
-
"aria-label": media.length > 1 ? "Media carousel, use arrow keys to navigate" : void 0,
|
|
3326
|
-
children: [
|
|
3327
|
-
renderMainMedia(currentItem, currentIndex),
|
|
3328
|
-
media.length > 1 && /* @__PURE__ */ jsxs15(Fragment5, { children: [
|
|
3329
|
-
/* @__PURE__ */ jsx20(
|
|
3330
|
-
"button",
|
|
3331
|
-
{
|
|
3332
|
-
onClick: prevSlide,
|
|
3333
|
-
className: "absolute left-3 top-1/2 transform -translate-y-1/2 bg-black/50 text-white rounded-full p-2 opacity-0 group-hover:opacity-100 transition-opacity duration-200 hover:bg-black/70 z-10",
|
|
3334
|
-
"aria-label": "Previous media",
|
|
3335
|
-
children: /* @__PURE__ */ jsx20(ChevronLeftIcon, {})
|
|
3336
|
-
}
|
|
3337
|
-
),
|
|
3338
|
-
/* @__PURE__ */ jsx20(
|
|
3339
|
-
"button",
|
|
3340
|
-
{
|
|
3341
|
-
onClick: nextSlide,
|
|
3342
|
-
className: "absolute right-3 top-1/2 transform -translate-y-1/2 bg-black/50 text-white rounded-full p-2 opacity-0 group-hover:opacity-100 transition-opacity duration-200 hover:bg-black/70 z-10",
|
|
3343
|
-
"aria-label": "Next media",
|
|
3344
|
-
children: /* @__PURE__ */ jsx20(ChevronRightIcon, {})
|
|
3345
|
-
}
|
|
3346
|
-
),
|
|
3347
|
-
/* @__PURE__ */ jsxs15("div", { className: "absolute top-3 right-3 bg-black/70 text-white px-3 py-1 rounded-lg text-sm font-medium", children: [
|
|
3348
|
-
currentIndex + 1,
|
|
3349
|
-
" / ",
|
|
3350
|
-
media.length
|
|
3351
|
-
] })
|
|
3352
|
-
] })
|
|
3353
|
-
]
|
|
3354
|
-
}
|
|
3355
|
-
),
|
|
3356
|
-
media.length > 1 && showThumbnails && /* @__PURE__ */ jsx20("div", { className: "w-full", children: /* @__PURE__ */ jsx20(
|
|
3357
|
-
"div",
|
|
3358
|
-
{
|
|
3359
|
-
ref: thumbnailsRef,
|
|
3360
|
-
className: "flex gap-2 overflow-x-auto scrollbar-none py-2",
|
|
3361
|
-
style: { scrollbarWidth: "none", msOverflowStyle: "none" },
|
|
3362
|
-
children: media.map((item, index) => renderThumbnail(item, index))
|
|
3363
|
-
}
|
|
3364
|
-
) })
|
|
3365
|
-
] });
|
|
3366
|
-
});
|
|
3367
|
-
|
|
3368
3154
|
// src/components/metric-value.tsx
|
|
3369
3155
|
init_cn();
|
|
3370
|
-
import { jsx as
|
|
3156
|
+
import { jsx as jsx20, jsxs as jsxs15 } from "react/jsx-runtime";
|
|
3371
3157
|
function MetricValue({ value, label, className }) {
|
|
3372
|
-
return /* @__PURE__ */
|
|
3158
|
+
return /* @__PURE__ */ jsxs15("div", { className: cn('flex items-end gap-2 whitespace-nowrap font-["DM_Sans"] text-lg leading-[24px] text-ods-text-primary', className), children: [
|
|
3373
3159
|
value,
|
|
3374
|
-
/* @__PURE__ */
|
|
3160
|
+
/* @__PURE__ */ jsx20("span", { className: "text-sm text-ods-text-secondary", children: label })
|
|
3375
3161
|
] });
|
|
3376
3162
|
}
|
|
3377
3163
|
|
|
@@ -3381,14 +3167,14 @@ init_cn();
|
|
|
3381
3167
|
// src/components/square-avatar.tsx
|
|
3382
3168
|
init_cn();
|
|
3383
3169
|
import React4 from "react";
|
|
3384
|
-
import { jsx as
|
|
3170
|
+
import { jsx as jsx21 } from "react/jsx-runtime";
|
|
3385
3171
|
function SquareAvatar2({ src, fallbackName = "", size = 56, fullWidth = false, className }) {
|
|
3386
3172
|
const initials = React4.useMemo(() => {
|
|
3387
3173
|
if (!fallbackName) return "";
|
|
3388
3174
|
return fallbackName.split(" ").map((n) => n.charAt(0)).join("").slice(0, 2).toUpperCase();
|
|
3389
3175
|
}, [fallbackName]);
|
|
3390
3176
|
const style = fullWidth ? {} : { width: size, height: size };
|
|
3391
|
-
return /* @__PURE__ */
|
|
3177
|
+
return /* @__PURE__ */ jsx21(
|
|
3392
3178
|
"div",
|
|
3393
3179
|
{
|
|
3394
3180
|
className: cn(
|
|
@@ -3399,8 +3185,8 @@ function SquareAvatar2({ src, fallbackName = "", size = 56, fullWidth = false, c
|
|
|
3399
3185
|
style,
|
|
3400
3186
|
children: src ? (
|
|
3401
3187
|
// eslint-disable-next-line @next/next/no-img-element
|
|
3402
|
-
/* @__PURE__ */
|
|
3403
|
-
) : /* @__PURE__ */
|
|
3188
|
+
/* @__PURE__ */ jsx21("img", { src: getProxiedImageUrl(src) || src, alt: "Avatar", className: "object-cover w-full h-full" })
|
|
3189
|
+
) : /* @__PURE__ */ jsx21("span", { className: cn(
|
|
3404
3190
|
"font-['DM_Sans'] text-ods-text-primary font-bold",
|
|
3405
3191
|
fullWidth ? "text-4xl" : "text-lg"
|
|
3406
3192
|
), children: initials })
|
|
@@ -3409,24 +3195,24 @@ function SquareAvatar2({ src, fallbackName = "", size = 56, fullWidth = false, c
|
|
|
3409
3195
|
}
|
|
3410
3196
|
|
|
3411
3197
|
// src/components/msp-display.tsx
|
|
3412
|
-
import { jsx as
|
|
3198
|
+
import { jsx as jsx22, jsxs as jsxs16 } from "react/jsx-runtime";
|
|
3413
3199
|
function MSPDisplay({ name, logoUrl, size = 40, className }) {
|
|
3414
|
-
return /* @__PURE__ */
|
|
3415
|
-
/* @__PURE__ */
|
|
3416
|
-
/* @__PURE__ */
|
|
3200
|
+
return /* @__PURE__ */ jsxs16("div", { className: cn("flex items-center gap-2 min-w-0", className), children: [
|
|
3201
|
+
/* @__PURE__ */ jsx22(SquareAvatar2, { src: logoUrl ?? void 0, fallbackName: name, size }),
|
|
3202
|
+
/* @__PURE__ */ jsx22("h2", { className: "truncate pl-2", children: name })
|
|
3417
3203
|
] });
|
|
3418
3204
|
}
|
|
3419
3205
|
|
|
3420
3206
|
// src/components/open-source-features.tsx
|
|
3421
3207
|
import { Terminal, DollarSign as DollarSign2, Network, Users as Users2 } from "lucide-react";
|
|
3422
|
-
import { jsx as
|
|
3208
|
+
import { jsx as jsx23, jsxs as jsxs17 } from "react/jsx-runtime";
|
|
3423
3209
|
|
|
3424
3210
|
// src/components/index.ts
|
|
3425
3211
|
init_pagination();
|
|
3426
3212
|
|
|
3427
3213
|
// src/components/persistent-pagination.tsx
|
|
3428
3214
|
init_cn();
|
|
3429
|
-
import { jsx as
|
|
3215
|
+
import { jsx as jsx24, jsxs as jsxs18 } from "react/jsx-runtime";
|
|
3430
3216
|
function PersistentPagination({
|
|
3431
3217
|
isLoading,
|
|
3432
3218
|
children,
|
|
@@ -3437,7 +3223,7 @@ function PersistentPagination({
|
|
|
3437
3223
|
transitionDuration = 300,
|
|
3438
3224
|
showLoadingState = true
|
|
3439
3225
|
}) {
|
|
3440
|
-
return /* @__PURE__ */
|
|
3226
|
+
return /* @__PURE__ */ jsxs18(
|
|
3441
3227
|
"div",
|
|
3442
3228
|
{
|
|
3443
3229
|
className: cn(
|
|
@@ -3455,7 +3241,7 @@ function PersistentPagination({
|
|
|
3455
3241
|
"aria-busy": isLoading,
|
|
3456
3242
|
"data-loading": isLoading,
|
|
3457
3243
|
children: [
|
|
3458
|
-
isLoading && /* @__PURE__ */
|
|
3244
|
+
isLoading && /* @__PURE__ */ jsxs18(
|
|
3459
3245
|
"div",
|
|
3460
3246
|
{
|
|
3461
3247
|
className: "sr-only",
|
|
@@ -3469,7 +3255,7 @@ function PersistentPagination({
|
|
|
3469
3255
|
]
|
|
3470
3256
|
}
|
|
3471
3257
|
),
|
|
3472
|
-
/* @__PURE__ */
|
|
3258
|
+
/* @__PURE__ */ jsx24(
|
|
3473
3259
|
"div",
|
|
3474
3260
|
{
|
|
3475
3261
|
className: cn(
|
|
@@ -3526,7 +3312,7 @@ function PersistentPaginationWrapper({
|
|
|
3526
3312
|
const isPaginationDisabled = isLoading;
|
|
3527
3313
|
const hasNoResults = !hasResults && !isLoading;
|
|
3528
3314
|
const PaginationComponent = (init_unified_pagination(), __toCommonJS(unified_pagination_exports)).UnifiedPagination;
|
|
3529
|
-
return /* @__PURE__ */
|
|
3315
|
+
return /* @__PURE__ */ jsxs18(
|
|
3530
3316
|
"div",
|
|
3531
3317
|
{
|
|
3532
3318
|
className: cn(
|
|
@@ -3544,7 +3330,7 @@ function PersistentPaginationWrapper({
|
|
|
3544
3330
|
"data-loading": isLoading,
|
|
3545
3331
|
"data-has-results": hasResults,
|
|
3546
3332
|
children: [
|
|
3547
|
-
(isLoading || !hasResults) && /* @__PURE__ */
|
|
3333
|
+
(isLoading || !hasResults) && /* @__PURE__ */ jsx24(
|
|
3548
3334
|
"div",
|
|
3549
3335
|
{
|
|
3550
3336
|
className: "sr-only",
|
|
@@ -3553,7 +3339,7 @@ function PersistentPaginationWrapper({
|
|
|
3553
3339
|
children: isLoading ? `Pagination temporarily disabled while loading page ${displayCurrentPage} of ${displayTotalPages}` : `No results available - pagination disabled`
|
|
3554
3340
|
}
|
|
3555
3341
|
),
|
|
3556
|
-
/* @__PURE__ */
|
|
3342
|
+
/* @__PURE__ */ jsx24(
|
|
3557
3343
|
"div",
|
|
3558
3344
|
{
|
|
3559
3345
|
className: cn(
|
|
@@ -3564,7 +3350,7 @@ function PersistentPaginationWrapper({
|
|
|
3564
3350
|
transitionDuration: "300ms"
|
|
3565
3351
|
},
|
|
3566
3352
|
"aria-hidden": isPaginationDisabled,
|
|
3567
|
-
children: /* @__PURE__ */
|
|
3353
|
+
children: /* @__PURE__ */ jsx24(
|
|
3568
3354
|
PaginationComponent,
|
|
3569
3355
|
{
|
|
3570
3356
|
currentPage: displayCurrentPage,
|
|
@@ -3581,7 +3367,7 @@ function PersistentPaginationWrapper({
|
|
|
3581
3367
|
}
|
|
3582
3368
|
|
|
3583
3369
|
// src/components/pricing-display.tsx
|
|
3584
|
-
import { jsx as
|
|
3370
|
+
import { jsx as jsx25, jsxs as jsxs19 } from "react/jsx-runtime";
|
|
3585
3371
|
var PRICING_STYLES = {
|
|
3586
3372
|
// Comparison table style (current default)
|
|
3587
3373
|
comparison: {
|
|
@@ -3617,19 +3403,19 @@ function PricingDisplay({
|
|
|
3617
3403
|
styleConfig = PRICING_STYLES.comparison
|
|
3618
3404
|
}) {
|
|
3619
3405
|
if (typeof pricing === "string") {
|
|
3620
|
-
return /* @__PURE__ */
|
|
3406
|
+
return /* @__PURE__ */ jsx25(LegacyPricingDisplay, { pricing, className, styleConfig });
|
|
3621
3407
|
}
|
|
3622
3408
|
const pricingArray = Array.isArray(pricing) ? pricing : [pricing];
|
|
3623
3409
|
if (!pricingArray || pricingArray.length === 0) {
|
|
3624
|
-
return /* @__PURE__ */
|
|
3410
|
+
return /* @__PURE__ */ jsx25("span", { className: `${styleConfig.priceTextColor} ${styleConfig.priceTextSize} ${styleConfig.fontFamily} ${className}`, children: "No pricing data" });
|
|
3625
3411
|
}
|
|
3626
3412
|
if (pricingArray.length === 1) {
|
|
3627
3413
|
const item = pricingArray[0];
|
|
3628
3414
|
const price = item.ranges?.[0]?.min || 0;
|
|
3629
3415
|
const unit = item.ranges?.[0]?.unit;
|
|
3630
|
-
return /* @__PURE__ */
|
|
3631
|
-
/* @__PURE__ */
|
|
3632
|
-
unit && /* @__PURE__ */
|
|
3416
|
+
return /* @__PURE__ */ jsxs19("span", { className: `${styleConfig.fontFamily} ${className}`, children: [
|
|
3417
|
+
/* @__PURE__ */ jsx25("span", { className: `${styleConfig.priceTextColor} ${styleConfig.priceTextSize}`, children: formatPriceValue(price, styleConfig.showTildePrefix) }),
|
|
3418
|
+
unit && /* @__PURE__ */ jsxs19("span", { className: `${styleConfig.secondaryTextColor} ${styleConfig.secondaryTextSize}`, children: [
|
|
3633
3419
|
"/",
|
|
3634
3420
|
unit
|
|
3635
3421
|
] })
|
|
@@ -3637,9 +3423,9 @@ function PricingDisplay({
|
|
|
3637
3423
|
}
|
|
3638
3424
|
const priceValues = pricingArray.map((item) => formatPriceValue(item.ranges?.[0]?.min || 0, styleConfig.showTildePrefix));
|
|
3639
3425
|
const itemWithUnit = pricingArray.find((item) => item.ranges?.[0]?.unit);
|
|
3640
|
-
return /* @__PURE__ */
|
|
3641
|
-
/* @__PURE__ */
|
|
3642
|
-
itemWithUnit && itemWithUnit.ranges?.[0]?.unit && /* @__PURE__ */
|
|
3426
|
+
return /* @__PURE__ */ jsxs19("span", { className: `${styleConfig.fontFamily} ${className}`, children: [
|
|
3427
|
+
/* @__PURE__ */ jsx25("span", { className: `${styleConfig.priceTextColor} ${styleConfig.priceTextSize}`, children: priceValues.join(" | ") }),
|
|
3428
|
+
itemWithUnit && itemWithUnit.ranges?.[0]?.unit && /* @__PURE__ */ jsxs19("span", { className: `${styleConfig.secondaryTextColor} ${styleConfig.secondaryTextSize}`, children: [
|
|
3643
3429
|
"/",
|
|
3644
3430
|
itemWithUnit.ranges[0].unit
|
|
3645
3431
|
] })
|
|
@@ -3660,7 +3446,7 @@ function LegacyPricingDisplay({
|
|
|
3660
3446
|
styleConfig = PRICING_STYLES.comparison
|
|
3661
3447
|
}) {
|
|
3662
3448
|
if (pricing === "Free" || pricing === "No pricing data") {
|
|
3663
|
-
return /* @__PURE__ */
|
|
3449
|
+
return /* @__PURE__ */ jsx25("span", { className: `${styleConfig.priceTextColor} ${styleConfig.priceTextSize} ${styleConfig.fontFamily} ${className}`, children: pricing });
|
|
3664
3450
|
}
|
|
3665
3451
|
const parsePricing = (pricingStr) => {
|
|
3666
3452
|
if (pricingStr.includes(", ")) {
|
|
@@ -3716,9 +3502,9 @@ function LegacyPricingDisplay({
|
|
|
3716
3502
|
};
|
|
3717
3503
|
};
|
|
3718
3504
|
const { mainValue, secondaryInfo } = parsePricing(pricing);
|
|
3719
|
-
return /* @__PURE__ */
|
|
3720
|
-
/* @__PURE__ */
|
|
3721
|
-
secondaryInfo && /* @__PURE__ */
|
|
3505
|
+
return /* @__PURE__ */ jsxs19("span", { className: `${styleConfig.fontFamily} ${className}`, children: [
|
|
3506
|
+
/* @__PURE__ */ jsx25("span", { className: `${styleConfig.priceTextColor} ${styleConfig.priceTextSize}`, children: mainValue }),
|
|
3507
|
+
secondaryInfo && /* @__PURE__ */ jsx25("span", { className: `${styleConfig.secondaryTextColor} ${styleConfig.secondaryTextSize}`, children: secondaryInfo })
|
|
3722
3508
|
] });
|
|
3723
3509
|
}
|
|
3724
3510
|
function formatPricingForDisplay(pricing) {
|
|
@@ -3726,7 +3512,7 @@ function formatPricingForDisplay(pricing) {
|
|
|
3726
3512
|
}
|
|
3727
3513
|
|
|
3728
3514
|
// src/components/results-count.tsx
|
|
3729
|
-
import { Fragment as
|
|
3515
|
+
import { Fragment as Fragment5, jsx as jsx26, jsxs as jsxs20 } from "react/jsx-runtime";
|
|
3730
3516
|
function ResultsCount({
|
|
3731
3517
|
currentPage,
|
|
3732
3518
|
pageSize,
|
|
@@ -3742,7 +3528,7 @@ function ResultsCount({
|
|
|
3742
3528
|
const plural = resultType === "vendors" ? "vendors" : "posts";
|
|
3743
3529
|
const singular = resultType === "vendors" ? "vendor" : "post";
|
|
3744
3530
|
const displayType = totalResults === 1 ? singular : plural;
|
|
3745
|
-
return /* @__PURE__ */
|
|
3531
|
+
return /* @__PURE__ */ jsx26("div", { className: "mb-6", children: /* @__PURE__ */ jsx26("p", { className: "text-ods-text-secondary text-sm font-['DM_Sans']", children: totalResults > 0 && /* @__PURE__ */ jsxs20(Fragment5, { children: [
|
|
3746
3532
|
"Showing ",
|
|
3747
3533
|
startIndex,
|
|
3748
3534
|
"-",
|
|
@@ -3751,7 +3537,7 @@ function ResultsCount({
|
|
|
3751
3537
|
totalResults,
|
|
3752
3538
|
" ",
|
|
3753
3539
|
displayType,
|
|
3754
|
-
sortingMessage && /* @__PURE__ */
|
|
3540
|
+
sortingMessage && /* @__PURE__ */ jsxs20("span", { className: "ml-2 text-ods-accent", children: [
|
|
3755
3541
|
"\u2022 ",
|
|
3756
3542
|
sortingMessage
|
|
3757
3543
|
] })
|
|
@@ -3761,7 +3547,7 @@ function ResultsCount({
|
|
|
3761
3547
|
// src/components/vendor-tag.tsx
|
|
3762
3548
|
init_cn();
|
|
3763
3549
|
import { Hand, Sparkles } from "lucide-react";
|
|
3764
|
-
import { jsx as
|
|
3550
|
+
import { jsx as jsx27, jsxs as jsxs21 } from "react/jsx-runtime";
|
|
3765
3551
|
function VendorTag({
|
|
3766
3552
|
type,
|
|
3767
3553
|
text,
|
|
@@ -3780,89 +3566,89 @@ function VendorTag({
|
|
|
3780
3566
|
return {
|
|
3781
3567
|
text: "Placeholder",
|
|
3782
3568
|
textColor: "text-ods-text-primary",
|
|
3783
|
-
icon: /* @__PURE__ */
|
|
3569
|
+
icon: /* @__PURE__ */ jsx27("div", { className: "w-4 h-4 rounded-sm flex items-center justify-center flex-shrink-0", children: /* @__PURE__ */ jsx27(Sparkles, { width: 10, height: 10, className: "text-ods-text-primary" }) })
|
|
3784
3570
|
};
|
|
3785
3571
|
case "ai":
|
|
3786
3572
|
return {
|
|
3787
3573
|
text: "AI Selected",
|
|
3788
3574
|
textColor: "text-ods-text-primary",
|
|
3789
|
-
icon: /* @__PURE__ */
|
|
3575
|
+
icon: /* @__PURE__ */ jsx27("div", { className: "w-4 h-4 rounded-sm flex items-center justify-center flex-shrink-0", children: /* @__PURE__ */ jsx27(Sparkles, { width: 10, height: 10, className: "text-ods-text-primary" }) })
|
|
3790
3576
|
};
|
|
3791
3577
|
case "manual":
|
|
3792
3578
|
return {
|
|
3793
3579
|
text: "Manually Selected",
|
|
3794
3580
|
textColor: "text-ods-text-secondary",
|
|
3795
|
-
icon: /* @__PURE__ */
|
|
3581
|
+
icon: /* @__PURE__ */ jsx27("div", { className: "w-4 h-4 rounded-sm flex items-center justify-center flex-shrink-0", children: /* @__PURE__ */ jsx27(Hand, { width: 10, height: 10, className: "text-ods-text-secondary" }) })
|
|
3796
3582
|
};
|
|
3797
3583
|
case "open-source":
|
|
3798
3584
|
return {
|
|
3799
3585
|
text: text || "Open Source",
|
|
3800
|
-
icon: /* @__PURE__ */
|
|
3586
|
+
icon: /* @__PURE__ */ jsx27(
|
|
3801
3587
|
"div",
|
|
3802
3588
|
{
|
|
3803
3589
|
className: "w-4 h-4 bg-ods-accent rounded-sm flex items-center justify-center flex-shrink-0",
|
|
3804
3590
|
style: accentColor ? { backgroundColor: accentColor } : void 0,
|
|
3805
|
-
children: /* @__PURE__ */
|
|
3591
|
+
children: /* @__PURE__ */ jsx27(OpenSourceIcon2, { width: 10, height: 10, className: "text-[#1A1A1A]" })
|
|
3806
3592
|
}
|
|
3807
3593
|
)
|
|
3808
3594
|
};
|
|
3809
3595
|
case "commercial":
|
|
3810
3596
|
return {
|
|
3811
3597
|
text: text || "Commercial Vendor",
|
|
3812
|
-
icon: /* @__PURE__ */
|
|
3598
|
+
icon: /* @__PURE__ */ jsx27("div", { className: "w-4 h-4 bg-ods-border rounded-sm flex items-center justify-center flex-shrink-0", children: /* @__PURE__ */ jsx27(CoinsIcon2, { width: 10, height: 10, className: "text-ods-text-secondary" }) })
|
|
3813
3599
|
};
|
|
3814
3600
|
case "free":
|
|
3815
3601
|
return {
|
|
3816
3602
|
text: text || "Free",
|
|
3817
|
-
icon: /* @__PURE__ */
|
|
3603
|
+
icon: /* @__PURE__ */ jsx27("div", { className: "w-4 h-4 bg-ods-accent rounded-sm flex items-center justify-center flex-shrink-0", children: /* @__PURE__ */ jsx27("span", { className: "text-[#1A1A1A] text-[8px] font-bold", children: "$" }) })
|
|
3818
3604
|
};
|
|
3819
3605
|
case "freemium":
|
|
3820
3606
|
return {
|
|
3821
3607
|
text: text || "Freemium",
|
|
3822
|
-
icon: /* @__PURE__ */
|
|
3608
|
+
icon: /* @__PURE__ */ jsx27("div", { className: "w-4 h-4 bg-ods-accent rounded-sm flex items-center justify-center flex-shrink-0", children: /* @__PURE__ */ jsx27("span", { className: "text-[#1A1A1A] text-[8px] font-bold", children: "$" }) })
|
|
3823
3609
|
};
|
|
3824
3610
|
case "paid":
|
|
3825
3611
|
return {
|
|
3826
3612
|
text: text || "Paid",
|
|
3827
|
-
icon: /* @__PURE__ */
|
|
3613
|
+
icon: /* @__PURE__ */ jsx27("div", { className: "w-4 h-4 bg-ods-border rounded-sm flex items-center justify-center flex-shrink-0", children: /* @__PURE__ */ jsx27(CoinsIcon2, { width: 10, height: 10, className: "text-ods-text-secondary" }) })
|
|
3828
3614
|
};
|
|
3829
3615
|
case "enterprise":
|
|
3830
3616
|
return {
|
|
3831
3617
|
text: text || "Enterprise",
|
|
3832
|
-
icon: /* @__PURE__ */
|
|
3618
|
+
icon: /* @__PURE__ */ jsx27("div", { className: "w-4 h-4 bg-ods-accent rounded-sm flex items-center justify-center flex-shrink-0", children: /* @__PURE__ */ jsx27("span", { className: "text-[#1A1A1A] text-[8px] font-bold", children: "E" }) })
|
|
3833
3619
|
};
|
|
3834
3620
|
case "recommended":
|
|
3835
3621
|
return {
|
|
3836
3622
|
text: text || "Recommended",
|
|
3837
|
-
icon: /* @__PURE__ */
|
|
3623
|
+
icon: /* @__PURE__ */ jsx27("div", { className: "w-4 h-4 bg-ods-accent rounded-sm flex items-center justify-center flex-shrink-0", children: /* @__PURE__ */ jsx27("span", { className: "text-[#1A1A1A] text-[8px] font-bold", children: "\u2605" }) })
|
|
3838
3624
|
};
|
|
3839
3625
|
case "classification":
|
|
3840
3626
|
const classificationType = text?.toLowerCase();
|
|
3841
3627
|
if (classificationType === "open_source") {
|
|
3842
3628
|
return {
|
|
3843
3629
|
text: "Open Source",
|
|
3844
|
-
icon: /* @__PURE__ */
|
|
3630
|
+
icon: /* @__PURE__ */ jsx27("div", { className: "w-4 h-4 bg-ods-accent rounded-sm flex items-center justify-center flex-shrink-0", children: /* @__PURE__ */ jsx27(OpenSourceIcon2, { width: 10, height: 10, className: "text-[#1A1A1A]" }) })
|
|
3845
3631
|
};
|
|
3846
3632
|
} else if (classificationType === "commercial") {
|
|
3847
3633
|
return {
|
|
3848
3634
|
text: "Commercial Vendor",
|
|
3849
|
-
icon: /* @__PURE__ */
|
|
3635
|
+
icon: /* @__PURE__ */ jsx27("div", { className: "w-4 h-4 bg-ods-border rounded-sm flex items-center justify-center flex-shrink-0", children: /* @__PURE__ */ jsx27(CoinsIcon2, { width: 10, height: 10, className: "text-ods-text-secondary" }) })
|
|
3850
3636
|
};
|
|
3851
3637
|
} else if (classificationType === "openframe_selected") {
|
|
3852
3638
|
return {
|
|
3853
3639
|
text: "OpenFrame Selected",
|
|
3854
|
-
icon: /* @__PURE__ */
|
|
3640
|
+
icon: /* @__PURE__ */ jsx27(OpenFrameLogo2, { lowerPathColor: "currentColor", upperPathColor: "currentColor", className: "h-4 w-4 text-ods-accent" })
|
|
3855
3641
|
};
|
|
3856
3642
|
} else {
|
|
3857
3643
|
return {
|
|
3858
3644
|
text: text || "Classification",
|
|
3859
|
-
icon: /* @__PURE__ */
|
|
3645
|
+
icon: /* @__PURE__ */ jsx27("div", { className: "w-4 h-4 bg-ods-accent rounded-sm flex items-center justify-center flex-shrink-0", children: /* @__PURE__ */ jsx27("span", { className: "text-[#1A1A1A] text-[8px] font-bold", children: "C" }) })
|
|
3860
3646
|
};
|
|
3861
3647
|
}
|
|
3862
3648
|
case "openframe_selected":
|
|
3863
3649
|
return {
|
|
3864
3650
|
text: text || "OpenFrame Selected",
|
|
3865
|
-
icon: /* @__PURE__ */
|
|
3651
|
+
icon: /* @__PURE__ */ jsx27(OpenFrameLogo2, { lowerPathColor: "currentColor", upperPathColor: "currentColor", className: "h-4 w-4 text-ods-accent" })
|
|
3866
3652
|
};
|
|
3867
3653
|
default:
|
|
3868
3654
|
return {
|
|
@@ -3872,9 +3658,9 @@ function VendorTag({
|
|
|
3872
3658
|
}
|
|
3873
3659
|
};
|
|
3874
3660
|
const { text: displayText, icon, textColor } = getTagContent();
|
|
3875
|
-
return /* @__PURE__ */
|
|
3661
|
+
return /* @__PURE__ */ jsxs21("div", { className: cn(baseClasses, className, hidden && "invisible"), children: [
|
|
3876
3662
|
icon,
|
|
3877
|
-
/* @__PURE__ */
|
|
3663
|
+
/* @__PURE__ */ jsx27("span", { className: cn(
|
|
3878
3664
|
"font-mono font-semibold uppercase",
|
|
3879
3665
|
textColor ? textColor : "text-ods-text-primary",
|
|
3880
3666
|
size === "sm" ? "text-[10px]" : "text-xs"
|
|
@@ -3883,12 +3669,12 @@ function VendorTag({
|
|
|
3883
3669
|
}
|
|
3884
3670
|
|
|
3885
3671
|
// src/components/selection-source-badge.tsx
|
|
3886
|
-
import { jsx as
|
|
3672
|
+
import { jsx as jsx28 } from "react/jsx-runtime";
|
|
3887
3673
|
function SelectionSourceBadge({ source, hidden = false }) {
|
|
3888
3674
|
if (!source) {
|
|
3889
3675
|
return null;
|
|
3890
3676
|
}
|
|
3891
|
-
return /* @__PURE__ */
|
|
3677
|
+
return /* @__PURE__ */ jsx28(
|
|
3892
3678
|
VendorTag,
|
|
3893
3679
|
{
|
|
3894
3680
|
type: source?.toLowerCase(),
|
|
@@ -3901,26 +3687,26 @@ function SelectionSourceBadge({ source, hidden = false }) {
|
|
|
3901
3687
|
|
|
3902
3688
|
// src/components/user-display.tsx
|
|
3903
3689
|
init_cn();
|
|
3904
|
-
import { jsx as
|
|
3690
|
+
import { jsx as jsx29, jsxs as jsxs22 } from "react/jsx-runtime";
|
|
3905
3691
|
function UserDisplay({ name, avatarUrl, subtitle, size = 32, className }) {
|
|
3906
|
-
return /* @__PURE__ */
|
|
3907
|
-
/* @__PURE__ */
|
|
3908
|
-
/* @__PURE__ */
|
|
3909
|
-
/* @__PURE__ */
|
|
3910
|
-
subtitle && /* @__PURE__ */
|
|
3692
|
+
return /* @__PURE__ */ jsxs22("div", { className: cn("flex items-center gap-2 min-w-0", className), children: [
|
|
3693
|
+
/* @__PURE__ */ jsx29(SquareAvatar2, { src: avatarUrl ?? void 0, fallbackName: name, size }),
|
|
3694
|
+
/* @__PURE__ */ jsxs22("div", { className: "min-w-0 flex-1", children: [
|
|
3695
|
+
/* @__PURE__ */ jsx29("p", { className: "font-['DM_Sans'] text-lg leading-[22px] text-ods-text-primary truncate", children: name }),
|
|
3696
|
+
subtitle && /* @__PURE__ */ jsx29("span", { className: "font-['DM_Sans'] text-md leading-[16px] text-ods-text-secondary truncate", children: subtitle })
|
|
3911
3697
|
] })
|
|
3912
3698
|
] });
|
|
3913
3699
|
}
|
|
3914
3700
|
|
|
3915
3701
|
// src/components/loading/content-skeleton.tsx
|
|
3916
3702
|
init_cn();
|
|
3917
|
-
import { jsx as
|
|
3703
|
+
import { jsx as jsx30, jsxs as jsxs23 } from "react/jsx-runtime";
|
|
3918
3704
|
function ParagraphSkeleton({
|
|
3919
3705
|
className,
|
|
3920
3706
|
lines = 4
|
|
3921
3707
|
}) {
|
|
3922
3708
|
const lineWidths = ["w-full", "w-full", "w-5/6", "w-3/4", "w-4/5", "w-2/3"];
|
|
3923
|
-
return /* @__PURE__ */
|
|
3709
|
+
return /* @__PURE__ */ jsx30("div", { className: cn("space-y-2", className), children: Array.from({ length: lines }).map((_, index) => /* @__PURE__ */ jsx30(
|
|
3924
3710
|
TextSkeleton.Body,
|
|
3925
3711
|
{
|
|
3926
3712
|
className: lineWidths[index % lineWidths.length]
|
|
@@ -3934,14 +3720,14 @@ function ListSkeleton({
|
|
|
3934
3720
|
showIcons = false,
|
|
3935
3721
|
showActions = false
|
|
3936
3722
|
}) {
|
|
3937
|
-
return /* @__PURE__ */
|
|
3938
|
-
/* @__PURE__ */
|
|
3939
|
-
showIcons && /* @__PURE__ */
|
|
3940
|
-
/* @__PURE__ */
|
|
3723
|
+
return /* @__PURE__ */ jsx30("div", { className: cn("space-y-3", className), children: Array.from({ length: items }).map((_, index) => /* @__PURE__ */ jsxs23("div", { className: "flex items-center justify-between", children: [
|
|
3724
|
+
/* @__PURE__ */ jsxs23("div", { className: "flex items-center gap-3", children: [
|
|
3725
|
+
showIcons && /* @__PURE__ */ jsx30(MediaSkeleton.Icon, { size: "sm" }),
|
|
3726
|
+
/* @__PURE__ */ jsx30(TextSkeleton.Body, { className: "w-32 md:w-48" })
|
|
3941
3727
|
] }),
|
|
3942
|
-
showActions && /* @__PURE__ */
|
|
3943
|
-
/* @__PURE__ */
|
|
3944
|
-
/* @__PURE__ */
|
|
3728
|
+
showActions && /* @__PURE__ */ jsxs23("div", { className: "flex items-center gap-2", children: [
|
|
3729
|
+
/* @__PURE__ */ jsx30(TextSkeleton.Caption, { className: "w-8" }),
|
|
3730
|
+
/* @__PURE__ */ jsx30(UnifiedSkeleton, { variant: "default", className: "w-4 h-4" })
|
|
3945
3731
|
] })
|
|
3946
3732
|
] }, index)) });
|
|
3947
3733
|
}
|
|
@@ -3950,14 +3736,14 @@ function TableSkeleton({
|
|
|
3950
3736
|
rows = 5,
|
|
3951
3737
|
columns = 4
|
|
3952
3738
|
}) {
|
|
3953
|
-
return /* @__PURE__ */
|
|
3954
|
-
/* @__PURE__ */
|
|
3955
|
-
/* @__PURE__ */
|
|
3739
|
+
return /* @__PURE__ */ jsxs23("div", { className: cn("space-y-4", className), children: [
|
|
3740
|
+
/* @__PURE__ */ jsx30("div", { className: "grid gap-4", style: { gridTemplateColumns: `repeat(${columns}, 1fr)` }, children: Array.from({ length: columns }).map((_, index) => /* @__PURE__ */ jsx30(TextSkeleton.Subheading, { className: "w-3/4" }, index)) }),
|
|
3741
|
+
/* @__PURE__ */ jsx30("div", { className: "space-y-3", children: Array.from({ length: rows }).map((_, rowIndex) => /* @__PURE__ */ jsx30(
|
|
3956
3742
|
"div",
|
|
3957
3743
|
{
|
|
3958
3744
|
className: "grid gap-4 py-2 border-b border-ods-divider",
|
|
3959
3745
|
style: { gridTemplateColumns: `repeat(${columns}, 1fr)` },
|
|
3960
|
-
children: Array.from({ length: columns }).map((_2, colIndex) => /* @__PURE__ */
|
|
3746
|
+
children: Array.from({ length: columns }).map((_2, colIndex) => /* @__PURE__ */ jsx30(TextSkeleton.Body, { className: "w-2/3" }, colIndex))
|
|
3961
3747
|
},
|
|
3962
3748
|
rowIndex
|
|
3963
3749
|
)) })
|
|
@@ -3967,15 +3753,15 @@ function FormSkeleton({
|
|
|
3967
3753
|
className,
|
|
3968
3754
|
fields = 4
|
|
3969
3755
|
}) {
|
|
3970
|
-
return /* @__PURE__ */
|
|
3971
|
-
Array.from({ length: fields }).map((_, index) => /* @__PURE__ */
|
|
3972
|
-
/* @__PURE__ */
|
|
3973
|
-
/* @__PURE__ */
|
|
3974
|
-
index % 3 === 0 && /* @__PURE__ */
|
|
3756
|
+
return /* @__PURE__ */ jsxs23("div", { className: cn("space-y-6", className), children: [
|
|
3757
|
+
Array.from({ length: fields }).map((_, index) => /* @__PURE__ */ jsxs23("div", { className: "space-y-2", children: [
|
|
3758
|
+
/* @__PURE__ */ jsx30(TextSkeleton.Body, { className: "w-24" }),
|
|
3759
|
+
/* @__PURE__ */ jsx30(InteractiveSkeleton.Input, {}),
|
|
3760
|
+
index % 3 === 0 && /* @__PURE__ */ jsx30(TextSkeleton.Caption, { className: "w-48" })
|
|
3975
3761
|
] }, index)),
|
|
3976
|
-
/* @__PURE__ */
|
|
3977
|
-
/* @__PURE__ */
|
|
3978
|
-
/* @__PURE__ */
|
|
3762
|
+
/* @__PURE__ */ jsxs23("div", { className: "flex gap-4 pt-4", children: [
|
|
3763
|
+
/* @__PURE__ */ jsx30(InteractiveSkeleton.Button, {}),
|
|
3764
|
+
/* @__PURE__ */ jsx30(InteractiveSkeleton.Button, { className: "bg-ods-border" })
|
|
3979
3765
|
] })
|
|
3980
3766
|
] });
|
|
3981
3767
|
}
|
|
@@ -3984,7 +3770,7 @@ function NavigationSkeleton({
|
|
|
3984
3770
|
items = 6,
|
|
3985
3771
|
horizontal = true
|
|
3986
3772
|
}) {
|
|
3987
|
-
return /* @__PURE__ */
|
|
3773
|
+
return /* @__PURE__ */ jsx30(
|
|
3988
3774
|
"nav",
|
|
3989
3775
|
{
|
|
3990
3776
|
className: cn(
|
|
@@ -3994,7 +3780,7 @@ function NavigationSkeleton({
|
|
|
3994
3780
|
),
|
|
3995
3781
|
role: "status",
|
|
3996
3782
|
"aria-label": "Loading navigation",
|
|
3997
|
-
children: Array.from({ length: items }).map((_, index) => /* @__PURE__ */
|
|
3783
|
+
children: Array.from({ length: items }).map((_, index) => /* @__PURE__ */ jsx30(TextSkeleton.Body, { className: "w-16 md:w-20" }, index))
|
|
3998
3784
|
}
|
|
3999
3785
|
);
|
|
4000
3786
|
}
|
|
@@ -4003,32 +3789,32 @@ function ProfileSkeleton({
|
|
|
4003
3789
|
showBio = true,
|
|
4004
3790
|
showStats = true
|
|
4005
3791
|
}) {
|
|
4006
|
-
return /* @__PURE__ */
|
|
4007
|
-
/* @__PURE__ */
|
|
4008
|
-
/* @__PURE__ */
|
|
4009
|
-
/* @__PURE__ */
|
|
4010
|
-
/* @__PURE__ */
|
|
4011
|
-
/* @__PURE__ */
|
|
4012
|
-
/* @__PURE__ */
|
|
3792
|
+
return /* @__PURE__ */ jsxs23("div", { className: cn("space-y-4", className), children: [
|
|
3793
|
+
/* @__PURE__ */ jsxs23("div", { className: "flex items-start gap-4", children: [
|
|
3794
|
+
/* @__PURE__ */ jsx30(MediaSkeleton.Avatar, { size: "lg" }),
|
|
3795
|
+
/* @__PURE__ */ jsxs23("div", { className: "flex-1 space-y-2", children: [
|
|
3796
|
+
/* @__PURE__ */ jsx30(TextSkeleton.Subheading, { className: "w-1/2" }),
|
|
3797
|
+
/* @__PURE__ */ jsx30(TextSkeleton.Caption, { className: "w-1/3" }),
|
|
3798
|
+
/* @__PURE__ */ jsx30(TextSkeleton.Body, { className: "w-2/3" })
|
|
4013
3799
|
] })
|
|
4014
3800
|
] }),
|
|
4015
|
-
showBio && /* @__PURE__ */
|
|
4016
|
-
/* @__PURE__ */
|
|
4017
|
-
/* @__PURE__ */
|
|
4018
|
-
/* @__PURE__ */
|
|
3801
|
+
showBio && /* @__PURE__ */ jsxs23("div", { className: "space-y-2", children: [
|
|
3802
|
+
/* @__PURE__ */ jsx30(TextSkeleton.Body, { className: "w-full" }),
|
|
3803
|
+
/* @__PURE__ */ jsx30(TextSkeleton.Body, { className: "w-4/5" }),
|
|
3804
|
+
/* @__PURE__ */ jsx30(TextSkeleton.Body, { className: "w-3/4" })
|
|
4019
3805
|
] }),
|
|
4020
|
-
showStats && /* @__PURE__ */
|
|
4021
|
-
/* @__PURE__ */
|
|
4022
|
-
/* @__PURE__ */
|
|
4023
|
-
/* @__PURE__ */
|
|
3806
|
+
showStats && /* @__PURE__ */ jsxs23("div", { className: "flex gap-6", children: [
|
|
3807
|
+
/* @__PURE__ */ jsxs23("div", { className: "text-center", children: [
|
|
3808
|
+
/* @__PURE__ */ jsx30(TextSkeleton.Subheading, { className: "w-8 mx-auto" }),
|
|
3809
|
+
/* @__PURE__ */ jsx30(TextSkeleton.Caption, { className: "w-12 mx-auto" })
|
|
4024
3810
|
] }),
|
|
4025
|
-
/* @__PURE__ */
|
|
4026
|
-
/* @__PURE__ */
|
|
4027
|
-
/* @__PURE__ */
|
|
3811
|
+
/* @__PURE__ */ jsxs23("div", { className: "text-center", children: [
|
|
3812
|
+
/* @__PURE__ */ jsx30(TextSkeleton.Subheading, { className: "w-8 mx-auto" }),
|
|
3813
|
+
/* @__PURE__ */ jsx30(TextSkeleton.Caption, { className: "w-16 mx-auto" })
|
|
4028
3814
|
] }),
|
|
4029
|
-
/* @__PURE__ */
|
|
4030
|
-
/* @__PURE__ */
|
|
4031
|
-
/* @__PURE__ */
|
|
3815
|
+
/* @__PURE__ */ jsxs23("div", { className: "text-center", children: [
|
|
3816
|
+
/* @__PURE__ */ jsx30(TextSkeleton.Subheading, { className: "w-8 mx-auto" }),
|
|
3817
|
+
/* @__PURE__ */ jsx30(TextSkeleton.Caption, { className: "w-14 mx-auto" })
|
|
4032
3818
|
] })
|
|
4033
3819
|
] })
|
|
4034
3820
|
] });
|
|
@@ -4038,34 +3824,34 @@ function CommentSkeleton({
|
|
|
4038
3824
|
showRating = false,
|
|
4039
3825
|
showReplies = false
|
|
4040
3826
|
}) {
|
|
4041
|
-
return /* @__PURE__ */
|
|
4042
|
-
/* @__PURE__ */
|
|
4043
|
-
/* @__PURE__ */
|
|
4044
|
-
/* @__PURE__ */
|
|
4045
|
-
/* @__PURE__ */
|
|
4046
|
-
/* @__PURE__ */
|
|
4047
|
-
showRating && /* @__PURE__ */
|
|
3827
|
+
return /* @__PURE__ */ jsxs23("div", { className: cn("space-y-3", className), children: [
|
|
3828
|
+
/* @__PURE__ */ jsxs23("div", { className: "flex items-center gap-3", children: [
|
|
3829
|
+
/* @__PURE__ */ jsx30(MediaSkeleton.Avatar, { size: "sm" }),
|
|
3830
|
+
/* @__PURE__ */ jsxs23("div", { className: "flex-1 flex items-center gap-4", children: [
|
|
3831
|
+
/* @__PURE__ */ jsx30(TextSkeleton.Body, { className: "w-24" }),
|
|
3832
|
+
/* @__PURE__ */ jsx30(TextSkeleton.Caption, { className: "w-16" }),
|
|
3833
|
+
showRating && /* @__PURE__ */ jsx30("div", { className: "flex gap-1", children: Array.from({ length: 5 }).map((_, i) => /* @__PURE__ */ jsx30(MediaSkeleton.Icon, { size: "sm" }, i)) })
|
|
4048
3834
|
] })
|
|
4049
3835
|
] }),
|
|
4050
|
-
/* @__PURE__ */
|
|
4051
|
-
/* @__PURE__ */
|
|
4052
|
-
/* @__PURE__ */
|
|
4053
|
-
/* @__PURE__ */
|
|
3836
|
+
/* @__PURE__ */ jsxs23("div", { className: "ml-11 space-y-2", children: [
|
|
3837
|
+
/* @__PURE__ */ jsx30(TextSkeleton.Body, { className: "w-full" }),
|
|
3838
|
+
/* @__PURE__ */ jsx30(TextSkeleton.Body, { className: "w-3/4" }),
|
|
3839
|
+
/* @__PURE__ */ jsx30(TextSkeleton.Body, { className: "w-1/2" })
|
|
4054
3840
|
] }),
|
|
4055
|
-
/* @__PURE__ */
|
|
4056
|
-
/* @__PURE__ */
|
|
4057
|
-
/* @__PURE__ */
|
|
4058
|
-
/* @__PURE__ */
|
|
3841
|
+
/* @__PURE__ */ jsxs23("div", { className: "ml-11 flex gap-4", children: [
|
|
3842
|
+
/* @__PURE__ */ jsx30(TextSkeleton.Caption, { className: "w-12" }),
|
|
3843
|
+
/* @__PURE__ */ jsx30(TextSkeleton.Caption, { className: "w-16" }),
|
|
3844
|
+
/* @__PURE__ */ jsx30(TextSkeleton.Caption, { className: "w-8" })
|
|
4059
3845
|
] }),
|
|
4060
|
-
showReplies && /* @__PURE__ */
|
|
4061
|
-
/* @__PURE__ */
|
|
4062
|
-
/* @__PURE__ */
|
|
4063
|
-
/* @__PURE__ */
|
|
4064
|
-
/* @__PURE__ */
|
|
3846
|
+
showReplies && /* @__PURE__ */ jsx30("div", { className: "ml-11 pl-4 border-l border-ods-divider space-y-4", children: Array.from({ length: 2 }).map((_, index) => /* @__PURE__ */ jsxs23("div", { className: "space-y-2", children: [
|
|
3847
|
+
/* @__PURE__ */ jsxs23("div", { className: "flex items-center gap-3", children: [
|
|
3848
|
+
/* @__PURE__ */ jsx30(MediaSkeleton.Avatar, { size: "sm" }),
|
|
3849
|
+
/* @__PURE__ */ jsx30(TextSkeleton.Body, { className: "w-20" }),
|
|
3850
|
+
/* @__PURE__ */ jsx30(TextSkeleton.Caption, { className: "w-12" })
|
|
4065
3851
|
] }),
|
|
4066
|
-
/* @__PURE__ */
|
|
4067
|
-
/* @__PURE__ */
|
|
4068
|
-
/* @__PURE__ */
|
|
3852
|
+
/* @__PURE__ */ jsxs23("div", { className: "ml-11", children: [
|
|
3853
|
+
/* @__PURE__ */ jsx30(TextSkeleton.Body, { className: "w-full" }),
|
|
3854
|
+
/* @__PURE__ */ jsx30(TextSkeleton.Body, { className: "w-2/3" })
|
|
4069
3855
|
] })
|
|
4070
3856
|
] }, index)) })
|
|
4071
3857
|
] });
|
|
@@ -4077,35 +3863,35 @@ function FeatureListSkeleton({
|
|
|
4077
3863
|
grouped = false
|
|
4078
3864
|
}) {
|
|
4079
3865
|
if (grouped) {
|
|
4080
|
-
return /* @__PURE__ */
|
|
4081
|
-
/* @__PURE__ */
|
|
4082
|
-
/* @__PURE__ */
|
|
4083
|
-
showIcons && /* @__PURE__ */
|
|
4084
|
-
/* @__PURE__ */
|
|
3866
|
+
return /* @__PURE__ */ jsx30("div", { className: cn("space-y-6", className), children: Array.from({ length: 3 }).map((_, groupIndex) => /* @__PURE__ */ jsxs23("div", { className: "space-y-3", children: [
|
|
3867
|
+
/* @__PURE__ */ jsx30(TextSkeleton.Subheading, { className: "w-1/3" }),
|
|
3868
|
+
/* @__PURE__ */ jsx30("div", { className: "space-y-2", children: Array.from({ length: features / 3 }).map((_2, featureIndex) => /* @__PURE__ */ jsxs23("div", { className: "flex items-center gap-3", children: [
|
|
3869
|
+
showIcons && /* @__PURE__ */ jsx30(MediaSkeleton.Icon, { size: "sm" }),
|
|
3870
|
+
/* @__PURE__ */ jsx30(TextSkeleton.Body, { className: "w-2/3" })
|
|
4085
3871
|
] }, featureIndex)) })
|
|
4086
3872
|
] }, groupIndex)) });
|
|
4087
3873
|
}
|
|
4088
|
-
return /* @__PURE__ */
|
|
4089
|
-
showIcons && /* @__PURE__ */
|
|
4090
|
-
/* @__PURE__ */
|
|
3874
|
+
return /* @__PURE__ */ jsx30("div", { className: cn("space-y-3", className), children: Array.from({ length: features }).map((_, index) => /* @__PURE__ */ jsxs23("div", { className: "flex items-center gap-3", children: [
|
|
3875
|
+
showIcons && /* @__PURE__ */ jsx30(MediaSkeleton.Icon, { size: "sm" }),
|
|
3876
|
+
/* @__PURE__ */ jsx30(TextSkeleton.Body, { className: "w-2/3" })
|
|
4091
3877
|
] }, index)) });
|
|
4092
3878
|
}
|
|
4093
3879
|
function TimelineSkeleton({
|
|
4094
3880
|
className,
|
|
4095
3881
|
items = 5
|
|
4096
3882
|
}) {
|
|
4097
|
-
return /* @__PURE__ */
|
|
4098
|
-
/* @__PURE__ */
|
|
4099
|
-
/* @__PURE__ */
|
|
4100
|
-
index < items - 1 && /* @__PURE__ */
|
|
3883
|
+
return /* @__PURE__ */ jsx30("div", { className: cn("space-y-6", className), children: Array.from({ length: items }).map((_, index) => /* @__PURE__ */ jsxs23("div", { className: "flex gap-4", children: [
|
|
3884
|
+
/* @__PURE__ */ jsxs23("div", { className: "flex flex-col items-center", children: [
|
|
3885
|
+
/* @__PURE__ */ jsx30(MediaSkeleton.Icon, { size: "sm" }),
|
|
3886
|
+
index < items - 1 && /* @__PURE__ */ jsx30("div", { className: "w-px h-12 bg-ods-border mt-2" })
|
|
4101
3887
|
] }),
|
|
4102
|
-
/* @__PURE__ */
|
|
4103
|
-
/* @__PURE__ */
|
|
4104
|
-
/* @__PURE__ */
|
|
4105
|
-
/* @__PURE__ */
|
|
3888
|
+
/* @__PURE__ */ jsxs23("div", { className: "flex-1 space-y-2", children: [
|
|
3889
|
+
/* @__PURE__ */ jsxs23("div", { className: "flex items-center gap-3", children: [
|
|
3890
|
+
/* @__PURE__ */ jsx30(TextSkeleton.Body, { className: "w-1/3" }),
|
|
3891
|
+
/* @__PURE__ */ jsx30(TextSkeleton.Caption, { className: "w-16" })
|
|
4106
3892
|
] }),
|
|
4107
|
-
/* @__PURE__ */
|
|
4108
|
-
/* @__PURE__ */
|
|
3893
|
+
/* @__PURE__ */ jsx30(TextSkeleton.Body, { className: "w-full" }),
|
|
3894
|
+
/* @__PURE__ */ jsx30(TextSkeleton.Body, { className: "w-3/4" })
|
|
4109
3895
|
] })
|
|
4110
3896
|
] }, index)) });
|
|
4111
3897
|
}
|
|
@@ -4113,54 +3899,54 @@ function PricingSkeleton({
|
|
|
4113
3899
|
className,
|
|
4114
3900
|
plans = 3
|
|
4115
3901
|
}) {
|
|
4116
|
-
return /* @__PURE__ */
|
|
3902
|
+
return /* @__PURE__ */ jsx30("div", { className: cn(
|
|
4117
3903
|
"grid gap-6",
|
|
4118
3904
|
plans === 2 && "grid-cols-1 md:grid-cols-2",
|
|
4119
3905
|
plans === 3 && "grid-cols-1 md:grid-cols-3",
|
|
4120
3906
|
plans === 4 && "grid-cols-1 md:grid-cols-2 lg:grid-cols-4",
|
|
4121
3907
|
className
|
|
4122
|
-
), children: Array.from({ length: plans }).map((_, index) => /* @__PURE__ */
|
|
4123
|
-
/* @__PURE__ */
|
|
4124
|
-
/* @__PURE__ */
|
|
4125
|
-
/* @__PURE__ */
|
|
4126
|
-
/* @__PURE__ */
|
|
3908
|
+
), children: Array.from({ length: plans }).map((_, index) => /* @__PURE__ */ jsx30("div", { className: "bg-ods-card border border-ods-border rounded-lg p-6", children: /* @__PURE__ */ jsxs23("div", { className: "space-y-4", children: [
|
|
3909
|
+
/* @__PURE__ */ jsx30(TextSkeleton.Subheading, { className: "w-1/2" }),
|
|
3910
|
+
/* @__PURE__ */ jsxs23("div", { className: "space-y-1", children: [
|
|
3911
|
+
/* @__PURE__ */ jsx30(TextSkeleton.Heading, { className: "w-1/3" }),
|
|
3912
|
+
/* @__PURE__ */ jsx30(TextSkeleton.Caption, { className: "w-1/4" })
|
|
4127
3913
|
] }),
|
|
4128
|
-
/* @__PURE__ */
|
|
4129
|
-
/* @__PURE__ */
|
|
4130
|
-
/* @__PURE__ */
|
|
3914
|
+
/* @__PURE__ */ jsx30("div", { className: "space-y-3 py-4", children: Array.from({ length: 5 }).map((_2, featureIndex) => /* @__PURE__ */ jsxs23("div", { className: "flex items-center gap-2", children: [
|
|
3915
|
+
/* @__PURE__ */ jsx30(MediaSkeleton.Icon, { size: "sm" }),
|
|
3916
|
+
/* @__PURE__ */ jsx30(TextSkeleton.Body, { className: "w-3/4" })
|
|
4131
3917
|
] }, featureIndex)) }),
|
|
4132
|
-
/* @__PURE__ */
|
|
3918
|
+
/* @__PURE__ */ jsx30(InteractiveSkeleton.Button, { className: "w-full" })
|
|
4133
3919
|
] }) }, index)) });
|
|
4134
3920
|
}
|
|
4135
3921
|
|
|
4136
3922
|
// src/components/profile/ProfileLoadingSkeleton.tsx
|
|
4137
3923
|
init_cn();
|
|
4138
|
-
import { jsx as
|
|
3924
|
+
import { jsx as jsx31, jsxs as jsxs24 } from "react/jsx-runtime";
|
|
4139
3925
|
function ProfileLoadingSkeleton({ className }) {
|
|
4140
|
-
return /* @__PURE__ */
|
|
4141
|
-
/* @__PURE__ */
|
|
4142
|
-
/* @__PURE__ */
|
|
4143
|
-
/* @__PURE__ */
|
|
4144
|
-
/* @__PURE__ */
|
|
4145
|
-
/* @__PURE__ */
|
|
3926
|
+
return /* @__PURE__ */ jsxs24("div", { className: cn("space-y-6", className), children: [
|
|
3927
|
+
/* @__PURE__ */ jsxs24("div", { className: "flex items-center space-x-4", children: [
|
|
3928
|
+
/* @__PURE__ */ jsx31("div", { className: "h-16 w-16 bg-gray-200 rounded-full animate-pulse" }),
|
|
3929
|
+
/* @__PURE__ */ jsxs24("div", { className: "space-y-2", children: [
|
|
3930
|
+
/* @__PURE__ */ jsx31("div", { className: "h-4 w-32 bg-gray-200 rounded animate-pulse" }),
|
|
3931
|
+
/* @__PURE__ */ jsx31("div", { className: "h-3 w-24 bg-gray-200 rounded animate-pulse" })
|
|
4146
3932
|
] })
|
|
4147
3933
|
] }),
|
|
4148
|
-
/* @__PURE__ */
|
|
4149
|
-
/* @__PURE__ */
|
|
4150
|
-
/* @__PURE__ */
|
|
4151
|
-
/* @__PURE__ */
|
|
3934
|
+
/* @__PURE__ */ jsxs24("div", { className: "space-y-4", children: [
|
|
3935
|
+
/* @__PURE__ */ jsx31("div", { className: "h-4 w-full bg-gray-200 rounded animate-pulse" }),
|
|
3936
|
+
/* @__PURE__ */ jsx31("div", { className: "h-4 w-3/4 bg-gray-200 rounded animate-pulse" }),
|
|
3937
|
+
/* @__PURE__ */ jsx31("div", { className: "h-4 w-1/2 bg-gray-200 rounded animate-pulse" })
|
|
4152
3938
|
] })
|
|
4153
3939
|
] });
|
|
4154
3940
|
}
|
|
4155
3941
|
|
|
4156
3942
|
// src/components/loading/msp-profile-form-skeleton.tsx
|
|
4157
3943
|
init_cn();
|
|
4158
|
-
import { jsx as
|
|
3944
|
+
import { jsx as jsx32, jsxs as jsxs25 } from "react/jsx-runtime";
|
|
4159
3945
|
function MspProfileFormSkeleton({
|
|
4160
3946
|
className,
|
|
4161
3947
|
fields = 4
|
|
4162
3948
|
}) {
|
|
4163
|
-
return /* @__PURE__ */
|
|
3949
|
+
return /* @__PURE__ */ jsxs25(
|
|
4164
3950
|
"div",
|
|
4165
3951
|
{
|
|
4166
3952
|
className: cn(
|
|
@@ -4170,13 +3956,13 @@ function MspProfileFormSkeleton({
|
|
|
4170
3956
|
role: "status",
|
|
4171
3957
|
"aria-label": "Loading MSP profile form",
|
|
4172
3958
|
children: [
|
|
4173
|
-
/* @__PURE__ */
|
|
4174
|
-
/* @__PURE__ */
|
|
4175
|
-
/* @__PURE__ */
|
|
3959
|
+
/* @__PURE__ */ jsxs25("div", { className: "flex flex-col space-y-2 h-full", children: [
|
|
3960
|
+
/* @__PURE__ */ jsx32(TextSkeleton.Body, { className: "w-28" }),
|
|
3961
|
+
/* @__PURE__ */ jsx32("div", { className: "flex-1 min-h-[180px] md:min-h-full", children: /* @__PURE__ */ jsx32(UnifiedSkeleton, { className: "w-full h-full rounded-lg", "aria-label": "Loading company logo" }) })
|
|
4176
3962
|
] }),
|
|
4177
|
-
/* @__PURE__ */
|
|
4178
|
-
/* @__PURE__ */
|
|
4179
|
-
/* @__PURE__ */
|
|
3963
|
+
/* @__PURE__ */ jsx32("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-4", children: Array.from({ length: fields }).map((_, idx) => /* @__PURE__ */ jsxs25("div", { className: "space-y-2 flex flex-col", children: [
|
|
3964
|
+
/* @__PURE__ */ jsx32(TextSkeleton.Body, { className: "w-40" }),
|
|
3965
|
+
/* @__PURE__ */ jsx32(InteractiveSkeleton.Input, {})
|
|
4180
3966
|
] }, idx)) })
|
|
4181
3967
|
]
|
|
4182
3968
|
}
|
|
@@ -4185,9 +3971,9 @@ function MspProfileFormSkeleton({
|
|
|
4185
3971
|
|
|
4186
3972
|
// src/components/loading/category-card-skeleton.tsx
|
|
4187
3973
|
init_cn();
|
|
4188
|
-
import { jsx as
|
|
3974
|
+
import { jsx as jsx33, jsxs as jsxs26 } from "react/jsx-runtime";
|
|
4189
3975
|
function CategoryCardSkeleton({ className }) {
|
|
4190
|
-
return /* @__PURE__ */
|
|
3976
|
+
return /* @__PURE__ */ jsxs26(
|
|
4191
3977
|
"article",
|
|
4192
3978
|
{
|
|
4193
3979
|
className: cn(
|
|
@@ -4197,7 +3983,7 @@ function CategoryCardSkeleton({ className }) {
|
|
|
4197
3983
|
role: "status",
|
|
4198
3984
|
"aria-label": "Loading category card",
|
|
4199
3985
|
children: [
|
|
4200
|
-
/* @__PURE__ */
|
|
3986
|
+
/* @__PURE__ */ jsx33("div", { className: "flex gap-6 mb-8 justify-center items-center", children: Array.from({ length: 10 }).map((_, i) => /* @__PURE__ */ jsx33(
|
|
4201
3987
|
UnifiedSkeleton,
|
|
4202
3988
|
{
|
|
4203
3989
|
variant: "circular",
|
|
@@ -4206,12 +3992,12 @@ function CategoryCardSkeleton({ className }) {
|
|
|
4206
3992
|
},
|
|
4207
3993
|
i
|
|
4208
3994
|
)) }),
|
|
4209
|
-
/* @__PURE__ */
|
|
4210
|
-
/* @__PURE__ */
|
|
4211
|
-
/* @__PURE__ */
|
|
4212
|
-
/* @__PURE__ */
|
|
3995
|
+
/* @__PURE__ */ jsxs26("div", { className: "flex-1 flex flex-col space-y-3", children: [
|
|
3996
|
+
/* @__PURE__ */ jsx33(TextSkeleton.Heading, { className: "w-3/4" }),
|
|
3997
|
+
/* @__PURE__ */ jsx33(TextSkeleton.Body, { className: "w-1/2" }),
|
|
3998
|
+
/* @__PURE__ */ jsx33(TextSkeleton.Body, { className: "w-full" })
|
|
4213
3999
|
] }),
|
|
4214
|
-
/* @__PURE__ */
|
|
4000
|
+
/* @__PURE__ */ jsx33("div", { className: "mt-4 flex justify-end", children: /* @__PURE__ */ jsx33(UnifiedSkeleton, { className: "w-12 h-12 rounded-[6px]", "aria-label": "Loading button" }) })
|
|
4215
4001
|
]
|
|
4216
4002
|
}
|
|
4217
4003
|
);
|
|
@@ -4219,22 +4005,22 @@ function CategoryCardSkeleton({ className }) {
|
|
|
4219
4005
|
|
|
4220
4006
|
// src/components/loading/category-vendor-selector-skeleton.tsx
|
|
4221
4007
|
init_cn();
|
|
4222
|
-
import { jsx as
|
|
4008
|
+
import { jsx as jsx34, jsxs as jsxs27 } from "react/jsx-runtime";
|
|
4223
4009
|
function CategoryVendorSelectorSkeleton({ subcategories = 3, className }) {
|
|
4224
|
-
return /* @__PURE__ */
|
|
4010
|
+
return /* @__PURE__ */ jsxs27(
|
|
4225
4011
|
"div",
|
|
4226
4012
|
{
|
|
4227
4013
|
className: cn("bg-ods-card border border-ods-border rounded-lg p-6", className),
|
|
4228
4014
|
role: "status",
|
|
4229
4015
|
"aria-label": "Loading category section",
|
|
4230
4016
|
children: [
|
|
4231
|
-
/* @__PURE__ */
|
|
4232
|
-
/* @__PURE__ */
|
|
4233
|
-
/* @__PURE__ */
|
|
4017
|
+
/* @__PURE__ */ jsxs27("div", { className: "mb-6 space-y-2 max-w-xl", children: [
|
|
4018
|
+
/* @__PURE__ */ jsx34(TextSkeleton.Heading, { className: "w-1/2" }),
|
|
4019
|
+
/* @__PURE__ */ jsx34(TextSkeleton.Body, { className: "w-3/4" })
|
|
4234
4020
|
] }),
|
|
4235
|
-
/* @__PURE__ */
|
|
4236
|
-
/* @__PURE__ */
|
|
4237
|
-
/* @__PURE__ */
|
|
4021
|
+
/* @__PURE__ */ jsx34("div", { className: "space-y-6", children: Array.from({ length: subcategories }).map((_, idx) => /* @__PURE__ */ jsxs27("div", { className: "space-y-2", children: [
|
|
4022
|
+
/* @__PURE__ */ jsx34(TextSkeleton.Subheading, { className: "w-1/3" }),
|
|
4023
|
+
/* @__PURE__ */ jsx34("div", { className: "grid grid-cols-2 md:grid-cols-3 gap-4", children: Array.from({ length: 2 }).map((__, j) => /* @__PURE__ */ jsx34(UnifiedSkeleton, { className: "h-20 rounded-lg" }, j)) })
|
|
4238
4024
|
] }, idx)) })
|
|
4239
4025
|
]
|
|
4240
4026
|
}
|
|
@@ -4243,90 +4029,90 @@ function CategoryVendorSelectorSkeleton({ subcategories = 3, className }) {
|
|
|
4243
4029
|
|
|
4244
4030
|
// src/components/loading/wizard-layout-skeleton.tsx
|
|
4245
4031
|
init_cn();
|
|
4246
|
-
import { jsx as
|
|
4032
|
+
import { jsx as jsx35, jsxs as jsxs28 } from "react/jsx-runtime";
|
|
4247
4033
|
function WizardLayoutSkeleton({ steps = 6, className }) {
|
|
4248
|
-
return /* @__PURE__ */
|
|
4249
|
-
/* @__PURE__ */
|
|
4250
|
-
/* @__PURE__ */
|
|
4251
|
-
/* @__PURE__ */
|
|
4252
|
-
/* @__PURE__ */
|
|
4034
|
+
return /* @__PURE__ */ jsxs28("div", { className: cn("space-y-6", className), role: "status", "aria-label": "Loading wizard layout", children: [
|
|
4035
|
+
/* @__PURE__ */ jsx35("div", { className: "flex flex-wrap items-center gap-2", children: Array.from({ length: steps }).map((_, i) => /* @__PURE__ */ jsx35(UnifiedSkeleton, { className: "h-6 w-24 rounded" }, i)) }),
|
|
4036
|
+
/* @__PURE__ */ jsxs28("div", { className: "space-y-2 max-w-2xl", children: [
|
|
4037
|
+
/* @__PURE__ */ jsx35(TextSkeleton.Heading, { className: "w-2/3" }),
|
|
4038
|
+
/* @__PURE__ */ jsx35(TextSkeleton.Body, { className: "w-1/2" })
|
|
4253
4039
|
] }),
|
|
4254
|
-
/* @__PURE__ */
|
|
4255
|
-
/* @__PURE__ */
|
|
4256
|
-
/* @__PURE__ */
|
|
4040
|
+
/* @__PURE__ */ jsxs28("div", { className: "flex justify-between mt-10", children: [
|
|
4041
|
+
/* @__PURE__ */ jsx35(UnifiedSkeleton, { className: "h-10 w-24 rounded" }),
|
|
4042
|
+
/* @__PURE__ */ jsx35(UnifiedSkeleton, { className: "h-10 w-32 rounded" })
|
|
4257
4043
|
] })
|
|
4258
4044
|
] });
|
|
4259
4045
|
}
|
|
4260
4046
|
|
|
4261
4047
|
// src/components/loading/margin-report-skeleton.tsx
|
|
4262
|
-
import { jsx as
|
|
4048
|
+
import { jsx as jsx36, jsxs as jsxs29 } from "react/jsx-runtime";
|
|
4263
4049
|
function MarginReportSkeleton({ animate = true, description, overlayContent }) {
|
|
4264
|
-
return /* @__PURE__ */
|
|
4265
|
-
/* @__PURE__ */
|
|
4266
|
-
/* @__PURE__ */
|
|
4267
|
-
/* @__PURE__ */
|
|
4268
|
-
/* @__PURE__ */
|
|
4050
|
+
return /* @__PURE__ */ jsxs29("main", { className: `bg-ods-bg ${animate ? "animate-pulse" : ""} relative min-h-screen`, children: [
|
|
4051
|
+
/* @__PURE__ */ jsxs29("div", { className: "max-w-[1920px] px-6 md:px-20 py-6 md:py-10 mx-auto space-y-10", children: [
|
|
4052
|
+
/* @__PURE__ */ jsxs29("div", { className: "space-y-3", children: [
|
|
4053
|
+
/* @__PURE__ */ jsx36("div", { className: "h-10 w-72 bg-[#2A2A2A] rounded" }),
|
|
4054
|
+
/* @__PURE__ */ jsx36("div", { className: "h-4 w-80 bg-[#2A2A2A] rounded" })
|
|
4269
4055
|
] }),
|
|
4270
|
-
/* @__PURE__ */
|
|
4271
|
-
/* @__PURE__ */
|
|
4272
|
-
/* @__PURE__ */
|
|
4273
|
-
/* @__PURE__ */
|
|
4274
|
-
/* @__PURE__ */
|
|
4275
|
-
/* @__PURE__ */
|
|
4276
|
-
/* @__PURE__ */
|
|
4056
|
+
/* @__PURE__ */ jsx36("div", { className: "grid grid-cols-1 md:grid-cols-3 gap-6", children: Array.from({ length: 3 }).map((_, i) => /* @__PURE__ */ jsx36("div", { className: "h-32 bg-ods-card border border-ods-border rounded" }, i)) }),
|
|
4057
|
+
/* @__PURE__ */ jsxs29("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-6", children: [
|
|
4058
|
+
/* @__PURE__ */ jsxs29("div", { className: "bg-ods-card border border-ods-border rounded-lg p-6 flex items-center gap-4 animate-pulse", children: [
|
|
4059
|
+
/* @__PURE__ */ jsx36("div", { className: "w-14 h-14 rounded-lg bg-[#2A2A2A]" }),
|
|
4060
|
+
/* @__PURE__ */ jsxs29("div", { className: "flex-1 space-y-2", children: [
|
|
4061
|
+
/* @__PURE__ */ jsx36("div", { className: "h-4 bg-[#2A2A2A] rounded w-3/4" }),
|
|
4062
|
+
/* @__PURE__ */ jsx36("div", { className: "h-3 bg-[#2A2A2A] rounded w-1/2" })
|
|
4277
4063
|
] })
|
|
4278
4064
|
] }),
|
|
4279
|
-
/* @__PURE__ */
|
|
4280
|
-
/* @__PURE__ */
|
|
4281
|
-
/* @__PURE__ */
|
|
4282
|
-
/* @__PURE__ */
|
|
4283
|
-
/* @__PURE__ */
|
|
4284
|
-
/* @__PURE__ */
|
|
4285
|
-
/* @__PURE__ */
|
|
4065
|
+
/* @__PURE__ */ jsxs29("div", { className: "bg-ods-card border border-ods-border rounded-lg p-6 flex flex-col gap-4 animate-pulse", children: [
|
|
4066
|
+
/* @__PURE__ */ jsxs29("div", { className: "flex items-center justify-between gap-4", children: [
|
|
4067
|
+
/* @__PURE__ */ jsxs29("div", { className: "flex items-center gap-2", children: [
|
|
4068
|
+
/* @__PURE__ */ jsx36("div", { className: "w-10 h-10 rounded-lg bg-[#2A2A2A]" }),
|
|
4069
|
+
/* @__PURE__ */ jsxs29("div", { className: "space-y-1", children: [
|
|
4070
|
+
/* @__PURE__ */ jsx36("div", { className: "h-4 w-32 bg-[#2A2A2A] rounded" }),
|
|
4071
|
+
/* @__PURE__ */ jsx36("div", { className: "h-3 w-20 bg-[#2A2A2A] rounded" })
|
|
4286
4072
|
] })
|
|
4287
4073
|
] }),
|
|
4288
|
-
/* @__PURE__ */
|
|
4074
|
+
/* @__PURE__ */ jsx36("div", { className: "h-6 w-36 bg-[#2A2A2A] rounded" })
|
|
4289
4075
|
] }),
|
|
4290
|
-
/* @__PURE__ */
|
|
4076
|
+
/* @__PURE__ */ jsx36("div", { className: "h-4 w-40 bg-[#2A2A2A] rounded mt-4" })
|
|
4291
4077
|
] })
|
|
4292
4078
|
] }),
|
|
4293
|
-
/* @__PURE__ */
|
|
4294
|
-
/* @__PURE__ */
|
|
4295
|
-
/* @__PURE__ */
|
|
4296
|
-
/* @__PURE__ */
|
|
4297
|
-
/* @__PURE__ */
|
|
4298
|
-
/* @__PURE__ */
|
|
4079
|
+
/* @__PURE__ */ jsx36("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-6", children: ["Commercial Stack", "Open-Source Stack"].map((label, idx) => /* @__PURE__ */ jsxs29("div", { className: "bg-ods-card border border-ods-border rounded-lg overflow-hidden flex flex-col animate-pulse", children: [
|
|
4080
|
+
/* @__PURE__ */ jsxs29("div", { className: "flex items-center justify-between px-6 py-4", children: [
|
|
4081
|
+
/* @__PURE__ */ jsx36("div", { className: "h-6 w-40 bg-[#2A2A2A] rounded" }),
|
|
4082
|
+
/* @__PURE__ */ jsxs29("div", { className: "flex items-center gap-2", children: [
|
|
4083
|
+
/* @__PURE__ */ jsx36("div", { className: "h-5 w-20 bg-[#2A2A2A] rounded" }),
|
|
4084
|
+
/* @__PURE__ */ jsx36("div", { className: "h-4 w-10 bg-[#2A2A2A] rounded" })
|
|
4299
4085
|
] })
|
|
4300
4086
|
] }),
|
|
4301
|
-
/* @__PURE__ */
|
|
4302
|
-
/* @__PURE__ */
|
|
4303
|
-
/* @__PURE__ */
|
|
4304
|
-
/* @__PURE__ */
|
|
4305
|
-
/* @__PURE__ */
|
|
4306
|
-
/* @__PURE__ */
|
|
4087
|
+
/* @__PURE__ */ jsx36("div", { className: "flex-1 flex flex-col gap-3 p-3", children: Array.from({ length: 5 }).map((_, j) => /* @__PURE__ */ jsxs29("div", { className: "bg-ods-bg border border-ods-border rounded-lg px-4 py-3 flex items-center justify-between", children: [
|
|
4088
|
+
/* @__PURE__ */ jsxs29("div", { className: "flex items-center gap-3 min-w-0", children: [
|
|
4089
|
+
/* @__PURE__ */ jsx36("div", { className: "w-12 h-12 bg-[#2A2A2A] rounded-lg flex-shrink-0" }),
|
|
4090
|
+
/* @__PURE__ */ jsxs29("div", { className: "flex flex-col min-w-0", children: [
|
|
4091
|
+
/* @__PURE__ */ jsx36("div", { className: "h-4 w-32 bg-[#2A2A2A] rounded" }),
|
|
4092
|
+
/* @__PURE__ */ jsx36("div", { className: "hidden md:block h-3 w-24 bg-[#2A2A2A] rounded mt-1" })
|
|
4307
4093
|
] })
|
|
4308
4094
|
] }),
|
|
4309
|
-
/* @__PURE__ */
|
|
4310
|
-
/* @__PURE__ */
|
|
4311
|
-
/* @__PURE__ */
|
|
4095
|
+
/* @__PURE__ */ jsxs29("div", { className: "flex items-center gap-1 flex-shrink-0", children: [
|
|
4096
|
+
/* @__PURE__ */ jsx36("div", { className: "h-4 w-16 bg-[#2A2A2A] rounded" }),
|
|
4097
|
+
/* @__PURE__ */ jsx36("div", { className: "h-3 w-8 bg-[#2A2A2A] rounded" })
|
|
4312
4098
|
] })
|
|
4313
4099
|
] }, j)) })
|
|
4314
4100
|
] }, idx)) }),
|
|
4315
|
-
/* @__PURE__ */
|
|
4316
|
-
/* @__PURE__ */
|
|
4317
|
-
/* @__PURE__ */
|
|
4318
|
-
/* @__PURE__ */
|
|
4319
|
-
/* @__PURE__ */
|
|
4320
|
-
/* @__PURE__ */
|
|
4321
|
-
/* @__PURE__ */
|
|
4101
|
+
/* @__PURE__ */ jsx36("div", { className: "h-6 w-60 bg-[#2A2A2A] rounded" }),
|
|
4102
|
+
/* @__PURE__ */ jsx36("div", { className: "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6", children: Array.from({ length: 3 }).map((_, i) => /* @__PURE__ */ jsx36("div", { className: "h-48 bg-ods-card border border-ods-border rounded" }, i)) }),
|
|
4103
|
+
/* @__PURE__ */ jsxs29("div", { className: "border border-ods-border rounded-3xl p-8 space-y-6", children: [
|
|
4104
|
+
/* @__PURE__ */ jsxs29("div", { className: "flex items-start gap-6", children: [
|
|
4105
|
+
/* @__PURE__ */ jsxs29("div", { className: "flex-1 space-y-2 min-w-0", children: [
|
|
4106
|
+
/* @__PURE__ */ jsx36("div", { className: "h-8 w-72 bg-[#2A2A2A] rounded" }),
|
|
4107
|
+
/* @__PURE__ */ jsx36("div", { className: "h-4 w-3/4 bg-[#2A2A2A] rounded" })
|
|
4322
4108
|
] }),
|
|
4323
|
-
/* @__PURE__ */
|
|
4109
|
+
/* @__PURE__ */ jsx36("div", { className: "w-12 h-12 bg-[#2A2A2A] rounded-md shrink-0" })
|
|
4324
4110
|
] }),
|
|
4325
|
-
/* @__PURE__ */
|
|
4111
|
+
/* @__PURE__ */ jsx36("div", { className: "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6", children: Array.from({ length: 3 }).map((_, i) => /* @__PURE__ */ jsx36("div", { className: "h-32 bg-ods-card border border-ods-border rounded" }, i)) })
|
|
4326
4112
|
] })
|
|
4327
4113
|
] }),
|
|
4328
|
-
overlayContent && /* @__PURE__ */
|
|
4329
|
-
description && /* @__PURE__ */
|
|
4114
|
+
overlayContent && /* @__PURE__ */ jsx36("div", { className: "absolute inset-0 bg-ods-card/80 z-10 rounded-lg pointer-events-none", children: /* @__PURE__ */ jsxs29("div", { className: "fixed top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 pointer-events-auto flex flex-col items-center gap-4 text-center px-4", children: [
|
|
4115
|
+
description && /* @__PURE__ */ jsx36("h3", { children: description }),
|
|
4330
4116
|
overlayContent
|
|
4331
4117
|
] }) })
|
|
4332
4118
|
] });
|
|
@@ -4334,18 +4120,18 @@ function MarginReportSkeleton({ animate = true, description, overlayContent }) {
|
|
|
4334
4120
|
|
|
4335
4121
|
// src/components/loading/users-grid-skeleton.tsx
|
|
4336
4122
|
init_cn();
|
|
4337
|
-
import { jsx as
|
|
4123
|
+
import { jsx as jsx37, jsxs as jsxs30 } from "react/jsx-runtime";
|
|
4338
4124
|
function UsersGridSkeleton({ rows = 10, className }) {
|
|
4339
4125
|
const skeletonRows = Array.from({ length: rows });
|
|
4340
|
-
return /* @__PURE__ */
|
|
4341
|
-
/* @__PURE__ */
|
|
4342
|
-
/* @__PURE__ */
|
|
4126
|
+
return /* @__PURE__ */ jsx37("div", { className: cn("overflow-x-auto rounded-lg border border-ods-border bg-ods-card animate-pulse", className), children: /* @__PURE__ */ jsxs30("table", { className: "min-w-full divide-y divide-ods-border", children: [
|
|
4127
|
+
/* @__PURE__ */ jsx37("thead", { className: "bg-[#2A2A2A]", children: /* @__PURE__ */ jsx37("tr", { children: ["Name", "Email", "Role", "Created", "Last Sign-In"].map((h) => /* @__PURE__ */ jsx37("th", { className: "px-4 py-3 text-left text-[12px] font-medium text-ods-text-primary font-['DM_Sans']", children: h }, h)) }) }),
|
|
4128
|
+
/* @__PURE__ */ jsx37("tbody", { className: "divide-y divide-ods-border", children: skeletonRows.map((_, idx) => /* @__PURE__ */ jsx37("tr", { children: Array.from({ length: 5 }).map((__, cell) => /* @__PURE__ */ jsx37("td", { className: "px-4 py-3 whitespace-nowrap", children: /* @__PURE__ */ jsx37("div", { className: "h-4 bg-ods-border rounded w-full" }) }, cell)) }, idx)) })
|
|
4343
4129
|
] }) });
|
|
4344
4130
|
}
|
|
4345
4131
|
|
|
4346
4132
|
// src/components/loading/organization-icon-skeleton.tsx
|
|
4347
4133
|
init_cn();
|
|
4348
|
-
import { jsx as
|
|
4134
|
+
import { jsx as jsx38 } from "react/jsx-runtime";
|
|
4349
4135
|
var sizeClasses2 = {
|
|
4350
4136
|
xs: "w-6 h-6",
|
|
4351
4137
|
sm: "w-8 h-8",
|
|
@@ -4372,27 +4158,27 @@ function OrganizationIconSkeleton({
|
|
|
4372
4158
|
!showBackground && "overflow-hidden",
|
|
4373
4159
|
className
|
|
4374
4160
|
);
|
|
4375
|
-
return /* @__PURE__ */
|
|
4161
|
+
return /* @__PURE__ */ jsx38(
|
|
4376
4162
|
"div",
|
|
4377
4163
|
{
|
|
4378
4164
|
className: containerClasses,
|
|
4379
4165
|
role: "status",
|
|
4380
4166
|
"aria-label": "Loading organization icon",
|
|
4381
|
-
children: /* @__PURE__ */
|
|
4167
|
+
children: /* @__PURE__ */ jsx38("div", { className: "w-1/2 h-1/2 bg-ods-border rounded-sm animate-pulse" })
|
|
4382
4168
|
}
|
|
4383
4169
|
);
|
|
4384
4170
|
}
|
|
4385
4171
|
|
|
4386
4172
|
// src/components/loading/organization-card-skeleton.tsx
|
|
4387
4173
|
init_cn();
|
|
4388
|
-
import { jsx as
|
|
4174
|
+
import { jsx as jsx39, jsxs as jsxs31 } from "react/jsx-runtime";
|
|
4389
4175
|
function OrganizationCardSkeleton({
|
|
4390
4176
|
className,
|
|
4391
4177
|
containerClassName,
|
|
4392
4178
|
showFooter = true,
|
|
4393
4179
|
showDescription = true
|
|
4394
4180
|
}) {
|
|
4395
|
-
return /* @__PURE__ */
|
|
4181
|
+
return /* @__PURE__ */ jsx39(
|
|
4396
4182
|
"div",
|
|
4397
4183
|
{
|
|
4398
4184
|
className: cn(
|
|
@@ -4402,9 +4188,9 @@ function OrganizationCardSkeleton({
|
|
|
4402
4188
|
),
|
|
4403
4189
|
role: "status",
|
|
4404
4190
|
"aria-label": "Loading organization card",
|
|
4405
|
-
children: /* @__PURE__ */
|
|
4406
|
-
/* @__PURE__ */
|
|
4407
|
-
/* @__PURE__ */
|
|
4191
|
+
children: /* @__PURE__ */ jsxs31("div", { className: "p-4 gap-3 flex flex-col", children: [
|
|
4192
|
+
/* @__PURE__ */ jsxs31("div", { className: "flex items-start gap-3 w-full", children: [
|
|
4193
|
+
/* @__PURE__ */ jsx39(
|
|
4408
4194
|
OrganizationIconSkeleton,
|
|
4409
4195
|
{
|
|
4410
4196
|
size: "xl",
|
|
@@ -4413,29 +4199,29 @@ function OrganizationCardSkeleton({
|
|
|
4413
4199
|
className: "w-[60px] h-[60px]"
|
|
4414
4200
|
}
|
|
4415
4201
|
),
|
|
4416
|
-
/* @__PURE__ */
|
|
4417
|
-
/* @__PURE__ */
|
|
4418
|
-
/* @__PURE__ */
|
|
4202
|
+
/* @__PURE__ */ jsxs31("div", { className: "flex-1 flex flex-col justify-center py-2 min-w-0 space-y-1", children: [
|
|
4203
|
+
/* @__PURE__ */ jsx39(TextSkeleton.Subheading, { className: "w-3/4" }),
|
|
4204
|
+
/* @__PURE__ */ jsx39(TextSkeleton.Caption, { className: "w-1/2" })
|
|
4419
4205
|
] })
|
|
4420
4206
|
] }),
|
|
4421
|
-
showDescription && /* @__PURE__ */
|
|
4422
|
-
/* @__PURE__ */
|
|
4423
|
-
/* @__PURE__ */
|
|
4207
|
+
showDescription && /* @__PURE__ */ jsx39("div", { className: "w-full h-12 overflow-hidden flex items-center", children: /* @__PURE__ */ jsxs31("div", { className: "space-y-1 w-full", children: [
|
|
4208
|
+
/* @__PURE__ */ jsx39(TextSkeleton.Body, { className: "w-full" }),
|
|
4209
|
+
/* @__PURE__ */ jsx39(TextSkeleton.Body, { className: "w-2/3" })
|
|
4424
4210
|
] }) }),
|
|
4425
|
-
showFooter && /* @__PURE__ */
|
|
4426
|
-
/* @__PURE__ */
|
|
4427
|
-
/* @__PURE__ */
|
|
4428
|
-
/* @__PURE__ */
|
|
4429
|
-
/* @__PURE__ */
|
|
4211
|
+
showFooter && /* @__PURE__ */ jsxs31("div", { className: "flex items-center justify-between gap-2 w-full min-w-0", children: [
|
|
4212
|
+
/* @__PURE__ */ jsxs31("div", { className: "flex items-center gap-3 md:gap-4 min-w-0 flex-shrink", children: [
|
|
4213
|
+
/* @__PURE__ */ jsxs31("div", { className: "flex items-center gap-1 flex-shrink-0", children: [
|
|
4214
|
+
/* @__PURE__ */ jsx39(MediaSkeleton.Icon, { size: "sm", className: "w-5 h-5" }),
|
|
4215
|
+
/* @__PURE__ */ jsx39(TextSkeleton.Caption, { className: "w-8" })
|
|
4430
4216
|
] }),
|
|
4431
|
-
/* @__PURE__ */
|
|
4432
|
-
/* @__PURE__ */
|
|
4433
|
-
/* @__PURE__ */
|
|
4217
|
+
/* @__PURE__ */ jsxs31("div", { className: "flex items-center gap-1 flex-shrink-0", children: [
|
|
4218
|
+
/* @__PURE__ */ jsx39(MediaSkeleton.Icon, { size: "sm", className: "w-5 h-5" }),
|
|
4219
|
+
/* @__PURE__ */ jsx39(TextSkeleton.Caption, { className: "w-10" })
|
|
4434
4220
|
] })
|
|
4435
4221
|
] }),
|
|
4436
|
-
/* @__PURE__ */
|
|
4437
|
-
/* @__PURE__ */
|
|
4438
|
-
/* @__PURE__ */
|
|
4222
|
+
/* @__PURE__ */ jsx39("div", { className: "flex-shrink-0", children: /* @__PURE__ */ jsxs31("div", { className: "flex items-center gap-1.5 bg-ods-bg border border-ods-border rounded px-2.5 py-1.5", children: [
|
|
4223
|
+
/* @__PURE__ */ jsx39("div", { className: "w-4 h-4 bg-ods-border rounded-sm flex items-center justify-center flex-shrink-0", children: /* @__PURE__ */ jsx39(MediaSkeleton.Icon, { size: "sm", className: "w-2.5 h-2.5" }) }),
|
|
4224
|
+
/* @__PURE__ */ jsx39(TextSkeleton.Caption, { className: "w-16" })
|
|
4439
4225
|
] }) })
|
|
4440
4226
|
] })
|
|
4441
4227
|
] })
|
|
@@ -4449,7 +4235,7 @@ function OrganizationCardSkeletonGrid({
|
|
|
4449
4235
|
showFooter = true,
|
|
4450
4236
|
showDescription = true
|
|
4451
4237
|
}) {
|
|
4452
|
-
return /* @__PURE__ */
|
|
4238
|
+
return /* @__PURE__ */ jsx39(
|
|
4453
4239
|
"div",
|
|
4454
4240
|
{
|
|
4455
4241
|
className: cn(
|
|
@@ -4458,7 +4244,7 @@ function OrganizationCardSkeletonGrid({
|
|
|
4458
4244
|
),
|
|
4459
4245
|
role: "status",
|
|
4460
4246
|
"aria-label": `Loading ${count} organization cards`,
|
|
4461
|
-
children: Array.from({ length: count }, (_, index) => /* @__PURE__ */
|
|
4247
|
+
children: Array.from({ length: count }, (_, index) => /* @__PURE__ */ jsx39(
|
|
4462
4248
|
OrganizationCardSkeleton,
|
|
4463
4249
|
{
|
|
4464
4250
|
containerClassName,
|
|
@@ -4473,9 +4259,9 @@ function OrganizationCardSkeletonGrid({
|
|
|
4473
4259
|
|
|
4474
4260
|
// src/components/loading/device-card-skeleton.tsx
|
|
4475
4261
|
init_cn();
|
|
4476
|
-
import { jsx as
|
|
4262
|
+
import { jsx as jsx40, jsxs as jsxs32 } from "react/jsx-runtime";
|
|
4477
4263
|
function DeviceCardSkeleton({ className }) {
|
|
4478
|
-
return /* @__PURE__ */
|
|
4264
|
+
return /* @__PURE__ */ jsxs32(
|
|
4479
4265
|
"div",
|
|
4480
4266
|
{
|
|
4481
4267
|
className: cn(
|
|
@@ -4485,19 +4271,19 @@ function DeviceCardSkeleton({ className }) {
|
|
|
4485
4271
|
role: "status",
|
|
4486
4272
|
"aria-label": "Loading device card",
|
|
4487
4273
|
children: [
|
|
4488
|
-
/* @__PURE__ */
|
|
4489
|
-
/* @__PURE__ */
|
|
4490
|
-
/* @__PURE__ */
|
|
4491
|
-
/* @__PURE__ */
|
|
4274
|
+
/* @__PURE__ */ jsxs32("div", { className: "flex gap-4 items-center px-4 py-3", children: [
|
|
4275
|
+
/* @__PURE__ */ jsx40("div", { className: "w-8 h-8 bg-ods-bg border border-ods-border rounded-[6px] flex items-center justify-center flex-shrink-0", children: /* @__PURE__ */ jsx40("div", { className: "w-4 h-4 bg-ods-border rounded animate-pulse" }) }),
|
|
4276
|
+
/* @__PURE__ */ jsx40("div", { className: "flex-1 min-w-0", children: /* @__PURE__ */ jsx40("div", { className: "h-6 w-3/4 bg-ods-border rounded animate-pulse" }) }),
|
|
4277
|
+
/* @__PURE__ */ jsx40("div", { className: "w-12 h-12 bg-ods-border rounded-[6px] flex-shrink-0 animate-pulse" })
|
|
4492
4278
|
] }),
|
|
4493
|
-
/* @__PURE__ */
|
|
4494
|
-
/* @__PURE__ */
|
|
4495
|
-
/* @__PURE__ */
|
|
4496
|
-
/* @__PURE__ */
|
|
4279
|
+
/* @__PURE__ */ jsxs32("div", { className: "flex gap-4 items-center px-4 py-2", children: [
|
|
4280
|
+
/* @__PURE__ */ jsx40("div", { className: "w-24 h-6 bg-ods-border rounded flex-shrink-0 animate-pulse" }),
|
|
4281
|
+
/* @__PURE__ */ jsx40(OrganizationIconSkeleton, { size: "sm" }),
|
|
4282
|
+
/* @__PURE__ */ jsx40("div", { className: "flex-1 min-w-0", children: /* @__PURE__ */ jsx40("div", { className: "h-5 w-1/2 bg-ods-border rounded animate-pulse" }) })
|
|
4497
4283
|
] }),
|
|
4498
|
-
/* @__PURE__ */
|
|
4499
|
-
/* @__PURE__ */
|
|
4500
|
-
/* @__PURE__ */
|
|
4284
|
+
/* @__PURE__ */ jsxs32("div", { className: "flex gap-4 items-center px-4 py-2", children: [
|
|
4285
|
+
/* @__PURE__ */ jsx40("div", { className: "w-20 h-6 bg-ods-border rounded-full flex-shrink-0 animate-pulse" }),
|
|
4286
|
+
/* @__PURE__ */ jsx40("div", { className: "flex-1", children: /* @__PURE__ */ jsx40("div", { className: "h-5 w-40 bg-ods-border rounded animate-pulse" }) })
|
|
4501
4287
|
] })
|
|
4502
4288
|
]
|
|
4503
4289
|
}
|
|
@@ -4507,7 +4293,7 @@ function DeviceCardSkeletonGrid({
|
|
|
4507
4293
|
count = 12,
|
|
4508
4294
|
className
|
|
4509
4295
|
}) {
|
|
4510
|
-
return /* @__PURE__ */
|
|
4296
|
+
return /* @__PURE__ */ jsx40(
|
|
4511
4297
|
"div",
|
|
4512
4298
|
{
|
|
4513
4299
|
className: cn(
|
|
@@ -4516,22 +4302,22 @@ function DeviceCardSkeletonGrid({
|
|
|
4516
4302
|
),
|
|
4517
4303
|
role: "status",
|
|
4518
4304
|
"aria-label": `Loading ${count} device cards`,
|
|
4519
|
-
children: Array.from({ length: count }, (_, index) => /* @__PURE__ */
|
|
4305
|
+
children: Array.from({ length: count }, (_, index) => /* @__PURE__ */ jsx40(DeviceCardSkeleton, {}, index))
|
|
4520
4306
|
}
|
|
4521
4307
|
);
|
|
4522
4308
|
}
|
|
4523
4309
|
|
|
4524
4310
|
// src/components/vendor-page-skeleton.tsx
|
|
4525
|
-
import { jsx as
|
|
4311
|
+
import { jsx as jsx41 } from "react/jsx-runtime";
|
|
4526
4312
|
function VendorPageSkeleton() {
|
|
4527
|
-
return /* @__PURE__ */
|
|
4313
|
+
return /* @__PURE__ */ jsx41(VendorDetailLayoutSkeleton, {});
|
|
4528
4314
|
}
|
|
4529
4315
|
|
|
4530
4316
|
// src/components/why-it-matters.tsx
|
|
4531
|
-
import { jsx as
|
|
4317
|
+
import { jsx as jsx42, jsxs as jsxs33 } from "react/jsx-runtime";
|
|
4532
4318
|
|
|
4533
4319
|
// src/components/yes-no-display.tsx
|
|
4534
|
-
import { jsx as
|
|
4320
|
+
import { jsx as jsx43, jsxs as jsxs34 } from "react/jsx-runtime";
|
|
4535
4321
|
function YesNoDisplay({
|
|
4536
4322
|
value,
|
|
4537
4323
|
yesText = "Yes",
|
|
@@ -4540,20 +4326,20 @@ function YesNoDisplay({
|
|
|
4540
4326
|
className = ""
|
|
4541
4327
|
}) {
|
|
4542
4328
|
if (customText) {
|
|
4543
|
-
return /* @__PURE__ */
|
|
4544
|
-
/* @__PURE__ */
|
|
4545
|
-
/* @__PURE__ */
|
|
4329
|
+
return /* @__PURE__ */ jsxs34("div", { className: `flex items-center gap-2 ${className}`, children: [
|
|
4330
|
+
/* @__PURE__ */ jsx43(CheckCircleIcon2, { className: "h-6 w-6" }),
|
|
4331
|
+
/* @__PURE__ */ jsx43("span", { className: "text-ods-text-primary text-[16px]", children: customText })
|
|
4546
4332
|
] });
|
|
4547
4333
|
}
|
|
4548
4334
|
if (value) {
|
|
4549
|
-
return /* @__PURE__ */
|
|
4550
|
-
/* @__PURE__ */
|
|
4551
|
-
/* @__PURE__ */
|
|
4335
|
+
return /* @__PURE__ */ jsxs34("div", { className: `flex items-center gap-2 ${className}`, children: [
|
|
4336
|
+
/* @__PURE__ */ jsx43(CheckCircleIcon2, { className: "h-6 w-6" }),
|
|
4337
|
+
/* @__PURE__ */ jsx43("span", { className: "text-ods-text-primary text-[16px]", children: yesText })
|
|
4552
4338
|
] });
|
|
4553
4339
|
}
|
|
4554
|
-
return /* @__PURE__ */
|
|
4555
|
-
/* @__PURE__ */
|
|
4556
|
-
/* @__PURE__ */
|
|
4340
|
+
return /* @__PURE__ */ jsxs34("div", { className: `flex items-center gap-2 ${className}`, children: [
|
|
4341
|
+
/* @__PURE__ */ jsx43(XCircleIcon, { className: "h-6 w-6" }),
|
|
4342
|
+
/* @__PURE__ */ jsx43("span", { className: "text-ods-text-secondary text-[16px]", children: noText })
|
|
4557
4343
|
] });
|
|
4558
4344
|
}
|
|
4559
4345
|
function evaluateFeatureValue(value, dataType) {
|
|
@@ -4587,16 +4373,16 @@ function evaluateFeatureValue(value, dataType) {
|
|
|
4587
4373
|
}
|
|
4588
4374
|
|
|
4589
4375
|
// src/components/made-with-love.tsx
|
|
4590
|
-
import { useState as
|
|
4591
|
-
import { jsx as
|
|
4376
|
+
import { useState as useState5, useEffect as useEffect4 } from "react";
|
|
4377
|
+
import { jsx as jsx44, jsxs as jsxs35 } from "react/jsx-runtime";
|
|
4592
4378
|
function MadeWithLove({
|
|
4593
4379
|
className = "",
|
|
4594
4380
|
size = "md",
|
|
4595
4381
|
showOnMobile = true
|
|
4596
4382
|
}) {
|
|
4597
|
-
const [isMobile, setIsMobile] =
|
|
4598
|
-
const [isHovered, setIsHovered] =
|
|
4599
|
-
|
|
4383
|
+
const [isMobile, setIsMobile] = useState5(false);
|
|
4384
|
+
const [isHovered, setIsHovered] = useState5(false);
|
|
4385
|
+
useEffect4(() => {
|
|
4600
4386
|
const checkMobile = () => {
|
|
4601
4387
|
setIsMobile(window.innerWidth < 640);
|
|
4602
4388
|
};
|
|
@@ -4662,14 +4448,14 @@ function MadeWithLove({
|
|
|
4662
4448
|
marginLeft: "4px",
|
|
4663
4449
|
textDecoration: "none"
|
|
4664
4450
|
};
|
|
4665
|
-
return /* @__PURE__ */
|
|
4451
|
+
return /* @__PURE__ */ jsxs35(
|
|
4666
4452
|
"div",
|
|
4667
4453
|
{
|
|
4668
4454
|
style: containerStyle,
|
|
4669
4455
|
className,
|
|
4670
4456
|
children: [
|
|
4671
4457
|
"Made with love by",
|
|
4672
|
-
/* @__PURE__ */
|
|
4458
|
+
/* @__PURE__ */ jsxs35(
|
|
4673
4459
|
"a",
|
|
4674
4460
|
{
|
|
4675
4461
|
href: flamingoUrl,
|
|
@@ -4679,14 +4465,14 @@ function MadeWithLove({
|
|
|
4679
4465
|
onMouseEnter: () => setIsHovered(true),
|
|
4680
4466
|
onMouseLeave: () => setIsHovered(false),
|
|
4681
4467
|
children: [
|
|
4682
|
-
/* @__PURE__ */
|
|
4468
|
+
/* @__PURE__ */ jsx44("div", { style: logoStyle, children: /* @__PURE__ */ jsx44(
|
|
4683
4469
|
FlamingoLogo2,
|
|
4684
4470
|
{
|
|
4685
4471
|
size: config.logoSize,
|
|
4686
4472
|
color: "#f357bb"
|
|
4687
4473
|
}
|
|
4688
4474
|
) }),
|
|
4689
|
-
/* @__PURE__ */
|
|
4475
|
+
/* @__PURE__ */ jsx44("span", { style: textStyle, children: "Flamingo" })
|
|
4690
4476
|
]
|
|
4691
4477
|
}
|
|
4692
4478
|
)
|
|
@@ -4698,7 +4484,7 @@ function MadeWithLove({
|
|
|
4698
4484
|
// src/components/date-time-picker.tsx
|
|
4699
4485
|
init_cn();
|
|
4700
4486
|
import DatePicker2 from "react-datepicker";
|
|
4701
|
-
import { jsx as
|
|
4487
|
+
import { jsx as jsx45, jsxs as jsxs36 } from "react/jsx-runtime";
|
|
4702
4488
|
var inputClassName = cn(
|
|
4703
4489
|
"flex h-10 w-full rounded-md border px-3 py-2 text-sm ring-offset-background",
|
|
4704
4490
|
"file:border-0 file:bg-transparent file:text-sm file:font-medium",
|
|
@@ -4722,9 +4508,9 @@ function DateTimePicker({
|
|
|
4722
4508
|
timeIntervals = 15,
|
|
4723
4509
|
dateFormat = "MMMM d, yyyy h:mm aa"
|
|
4724
4510
|
}) {
|
|
4725
|
-
return /* @__PURE__ */
|
|
4726
|
-
label && /* @__PURE__ */
|
|
4727
|
-
/* @__PURE__ */
|
|
4511
|
+
return /* @__PURE__ */ jsxs36("div", { className: cn("space-y-2", className), children: [
|
|
4512
|
+
label && /* @__PURE__ */ jsx45(Label, { className: "font-['Azeret_Mono'] text-[12px] font-semibold leading-[1em] tracking-[-0.02em] text-ods-text-secondary uppercase", children: label }),
|
|
4513
|
+
/* @__PURE__ */ jsx45("div", { className: "w-full", children: /* @__PURE__ */ jsx45(
|
|
4728
4514
|
DatePicker2,
|
|
4729
4515
|
{
|
|
4730
4516
|
selected: value,
|
|
@@ -4739,7 +4525,7 @@ function DateTimePicker({
|
|
|
4739
4525
|
className: inputClassName
|
|
4740
4526
|
}
|
|
4741
4527
|
) }),
|
|
4742
|
-
/* @__PURE__ */
|
|
4528
|
+
/* @__PURE__ */ jsx45("style", { dangerouslySetInnerHTML: { __html: `
|
|
4743
4529
|
.react-datepicker-wrapper {
|
|
4744
4530
|
width: 100% !important;
|
|
4745
4531
|
display: block !important;
|
|
@@ -4844,7 +4630,7 @@ function DateTimePicker({
|
|
|
4844
4630
|
|
|
4845
4631
|
// src/components/shared/product-release/product-releases-view.tsx
|
|
4846
4632
|
init_cn();
|
|
4847
|
-
import { Fragment as
|
|
4633
|
+
import { Fragment as Fragment6, jsx as jsx46, jsxs as jsxs37 } from "react/jsx-runtime";
|
|
4848
4634
|
var DEFAULT_ENDPOINT = "/api/releases";
|
|
4849
4635
|
var DEFAULT_SEARCH_PARAM_KEY = DEV_SECTION_PARAM_KEYS.search;
|
|
4850
4636
|
var DEFAULT_STATUS_PARAM_KEY = DEV_SECTION_PARAM_KEYS.releaseStatus;
|
|
@@ -4873,7 +4659,7 @@ function ReleaseRow({
|
|
|
4873
4659
|
fallbackNavigate: router.push
|
|
4874
4660
|
});
|
|
4875
4661
|
};
|
|
4876
|
-
return /* @__PURE__ */
|
|
4662
|
+
return /* @__PURE__ */ jsx46(
|
|
4877
4663
|
ProductReleaseCard,
|
|
4878
4664
|
{
|
|
4879
4665
|
size: "lg",
|
|
@@ -4928,9 +4714,9 @@ function ProductReleasesView({
|
|
|
4928
4714
|
router.replace(`${pathname}?${params.toString()}`, { scroll: false });
|
|
4929
4715
|
};
|
|
4930
4716
|
if (error) {
|
|
4931
|
-
return /* @__PURE__ */
|
|
4717
|
+
return /* @__PURE__ */ jsx46("div", { className: cn("w-full", className), children: /* @__PURE__ */ jsx46(LoadError, { message: "Failed to load releases.", onRetry: reload }) });
|
|
4932
4718
|
}
|
|
4933
|
-
return /* @__PURE__ */
|
|
4719
|
+
return /* @__PURE__ */ jsx46("div", { className: cn("w-full flex flex-col gap-[40px]", className), children: /* @__PURE__ */ jsx46("div", { className: "min-h-[600px]", children: showEmpty ? /* @__PURE__ */ jsx46("div", { className: "h-[600px] flex items-center justify-center", children: hasActiveFilters ? /* @__PURE__ */ jsx46(
|
|
4934
4720
|
EmptyState,
|
|
4935
4721
|
{
|
|
4936
4722
|
type: "search",
|
|
@@ -4940,7 +4726,7 @@ function ProductReleasesView({
|
|
|
4940
4726
|
ctaText: "Reset Filters",
|
|
4941
4727
|
onCtaClick: resetFilters
|
|
4942
4728
|
}
|
|
4943
|
-
) : /* @__PURE__ */
|
|
4729
|
+
) : /* @__PURE__ */ jsx46(
|
|
4944
4730
|
EmptyState,
|
|
4945
4731
|
{
|
|
4946
4732
|
type: "generic",
|
|
@@ -4948,20 +4734,20 @@ function ProductReleasesView({
|
|
|
4948
4734
|
description: "Check back soon for product updates!",
|
|
4949
4735
|
showCTA: false
|
|
4950
4736
|
}
|
|
4951
|
-
) }) : /* @__PURE__ */
|
|
4952
|
-
/* @__PURE__ */
|
|
4737
|
+
) }) : /* @__PURE__ */ jsxs37(Fragment6, { children: [
|
|
4738
|
+
/* @__PURE__ */ jsx46("div", { className: "flex flex-col gap-6", children: Array.from({ length: itemsPerPage }).map((_, i) => {
|
|
4953
4739
|
const release = releases[i];
|
|
4954
4740
|
const hasData = !!release;
|
|
4955
|
-
return /* @__PURE__ */
|
|
4741
|
+
return /* @__PURE__ */ jsx46(
|
|
4956
4742
|
"div",
|
|
4957
4743
|
{
|
|
4958
4744
|
style: { visibility: isLoading || hasData ? "visible" : "hidden" },
|
|
4959
|
-
children: isLoading ? /* @__PURE__ */
|
|
4745
|
+
children: isLoading ? /* @__PURE__ */ jsx46(ProductReleaseCardSkeleton, { size: "lg" }) : release ? /* @__PURE__ */ jsx46(ReleaseRow, { release, basePath, buildCardProps }) : /* @__PURE__ */ jsx46(ProductReleaseCardSkeleton, { size: "lg" })
|
|
4960
4746
|
},
|
|
4961
4747
|
release?.id ?? `slot-${i}`
|
|
4962
4748
|
);
|
|
4963
4749
|
}) }),
|
|
4964
|
-
/* @__PURE__ */
|
|
4750
|
+
/* @__PURE__ */ jsx46("div", { className: "mt-6 md:mt-8 flex justify-center", children: isLoading ? /* @__PURE__ */ jsx46("div", { className: "h-12 m-3 w-64" }) : releases.length > 0 && totalPages > 1 ? /* @__PURE__ */ jsx46(
|
|
4965
4751
|
PersistentPaginationWrapper,
|
|
4966
4752
|
{
|
|
4967
4753
|
isLoading: false,
|
|
@@ -4970,32 +4756,32 @@ function ProductReleasesView({
|
|
|
4970
4756
|
onPageChange: goToPage,
|
|
4971
4757
|
variant: "blog"
|
|
4972
4758
|
}
|
|
4973
|
-
) : /* @__PURE__ */
|
|
4759
|
+
) : /* @__PURE__ */ jsx46("div", { className: "h-12 m-3 w-64", style: { visibility: "hidden" } }) })
|
|
4974
4760
|
] }) }) });
|
|
4975
4761
|
}
|
|
4976
4762
|
|
|
4977
4763
|
// src/components/shared/product-release/release-detail-page.tsx
|
|
4978
4764
|
init_next_link();
|
|
4979
4765
|
init_next_navigation();
|
|
4980
|
-
import { useState as
|
|
4766
|
+
import { useState as useState7, useEffect as useEffect5 } from "react";
|
|
4981
4767
|
|
|
4982
4768
|
// src/components/shared/media-gallery-strip.tsx
|
|
4983
|
-
import { useState as
|
|
4984
|
-
import { Fragment as
|
|
4769
|
+
import { useState as useState6 } from "react";
|
|
4770
|
+
import { Fragment as Fragment7, jsx as jsx47, jsxs as jsxs38 } from "react/jsx-runtime";
|
|
4985
4771
|
function isGalleryImage(mediaType) {
|
|
4986
4772
|
return mediaType !== "video" && mediaType !== "demo";
|
|
4987
4773
|
}
|
|
4988
4774
|
function MediaGalleryStrip({ items, maxDisplay, className }) {
|
|
4989
|
-
const [galleryOpen, setGalleryOpen] =
|
|
4990
|
-
const [galleryIndex, setGalleryIndex] =
|
|
4775
|
+
const [galleryOpen, setGalleryOpen] = useState6(false);
|
|
4776
|
+
const [galleryIndex, setGalleryIndex] = useState6(0);
|
|
4991
4777
|
if (!items || items.length === 0) return null;
|
|
4992
4778
|
const display = typeof maxDisplay === "number" ? items.slice(0, Math.max(0, maxDisplay)) : items;
|
|
4993
4779
|
const galleryImages = display.filter((m) => isGalleryImage(m.media_type)).map((m) => m.media_url);
|
|
4994
4780
|
const tileClass = "shrink-0 w-[240px] h-[200px] rounded-md overflow-hidden border border-ods-border bg-black transition-opacity";
|
|
4995
|
-
return /* @__PURE__ */
|
|
4996
|
-
/* @__PURE__ */
|
|
4781
|
+
return /* @__PURE__ */ jsxs38(Fragment7, { children: [
|
|
4782
|
+
/* @__PURE__ */ jsx47("div", { className: `flex gap-6 overflow-x-auto w-full ${className ?? ""}`, children: display.map((mediaItem, index) => {
|
|
4997
4783
|
if (isGalleryImage(mediaItem.media_type)) {
|
|
4998
|
-
return /* @__PURE__ */
|
|
4784
|
+
return /* @__PURE__ */ jsx47(
|
|
4999
4785
|
"button",
|
|
5000
4786
|
{
|
|
5001
4787
|
type: "button",
|
|
@@ -5005,14 +4791,14 @@ function MediaGalleryStrip({ items, maxDisplay, className }) {
|
|
|
5005
4791
|
setGalleryIndex(display.slice(0, index).filter((m) => isGalleryImage(m.media_type)).length);
|
|
5006
4792
|
setGalleryOpen(true);
|
|
5007
4793
|
},
|
|
5008
|
-
children: /* @__PURE__ */
|
|
4794
|
+
children: /* @__PURE__ */ jsx47("img", { src: mediaItem.media_url, alt: mediaItem.title || `Media ${index + 1}`, className: "w-full h-full object-cover" })
|
|
5009
4795
|
},
|
|
5010
4796
|
mediaItem.id || index
|
|
5011
4797
|
);
|
|
5012
4798
|
}
|
|
5013
|
-
return /* @__PURE__ */
|
|
4799
|
+
return /* @__PURE__ */ jsx47("div", { className: tileClass, children: /* @__PURE__ */ jsx47(Video, { url: mediaItem.media_url, layout: "native" }) }, mediaItem.id || index);
|
|
5014
4800
|
}) }),
|
|
5015
|
-
galleryImages.length > 0 && /* @__PURE__ */
|
|
4801
|
+
galleryImages.length > 0 && /* @__PURE__ */ jsx47(
|
|
5016
4802
|
ImageGalleryModal,
|
|
5017
4803
|
{
|
|
5018
4804
|
images: galleryImages,
|
|
@@ -5026,10 +4812,8 @@ function MediaGalleryStrip({ items, maxDisplay, className }) {
|
|
|
5026
4812
|
|
|
5027
4813
|
// src/components/shared/product-release/release-detail-page.tsx
|
|
5028
4814
|
import { AlertTriangle, ExternalLink, BookMarked, Sparkles as Sparkles2, TrendingUp, Wrench } from "lucide-react";
|
|
5029
|
-
import { Fragment as
|
|
5030
|
-
|
|
5031
|
-
return /* @__PURE__ */ jsx49("div", { className: "whitespace-pre-wrap", children: content });
|
|
5032
|
-
}
|
|
4815
|
+
import { Fragment as Fragment8, jsx as jsx48, jsxs as jsxs39 } from "react/jsx-runtime";
|
|
4816
|
+
var DefaultMarkdownRenderer = RichMarkdownRenderer;
|
|
5033
4817
|
function ReleaseDetailPage({
|
|
5034
4818
|
authorHref,
|
|
5035
4819
|
slug,
|
|
@@ -5050,11 +4834,11 @@ function ReleaseDetailPage({
|
|
|
5050
4834
|
const showBackButton = backButton !== false;
|
|
5051
4835
|
const backLabel = (backButton ? backButton.label : void 0) ?? "Back to home";
|
|
5052
4836
|
const backHref = (backButton ? backButton.href : void 0) ?? "/";
|
|
5053
|
-
const [roadmapTasks, setRoadmapTasks] =
|
|
5054
|
-
const [deliveryData, setDeliveryData] =
|
|
5055
|
-
const [roadmapLoading, setRoadmapLoading] =
|
|
5056
|
-
const [deliveryLoading, setDeliveryLoading] =
|
|
5057
|
-
|
|
4837
|
+
const [roadmapTasks, setRoadmapTasks] = useState7([]);
|
|
4838
|
+
const [deliveryData, setDeliveryData] = useState7(null);
|
|
4839
|
+
const [roadmapLoading, setRoadmapLoading] = useState7(false);
|
|
4840
|
+
const [deliveryLoading, setDeliveryLoading] = useState7(false);
|
|
4841
|
+
useEffect5(() => {
|
|
5058
4842
|
async function fetchLinkedTasks() {
|
|
5059
4843
|
if (!release) return;
|
|
5060
4844
|
try {
|
|
@@ -5085,12 +4869,12 @@ function ReleaseDetailPage({
|
|
|
5085
4869
|
fetchLinkedTasks();
|
|
5086
4870
|
}, [release, RoadmapSection, DeliverySection, roadmapApiEndpoint, deliveryApiEndpoint]);
|
|
5087
4871
|
if (!initialData && isLoading) {
|
|
5088
|
-
return /* @__PURE__ */
|
|
4872
|
+
return /* @__PURE__ */ jsx48(PageShell, { children: /* @__PURE__ */ jsx48("div", { className: "pt-[var(--spacing-system-l)]", children: /* @__PURE__ */ jsx48(DetailPageSkeleton, { bare: true, metadataColumns: 4, showImageGallery: true }) }) });
|
|
5089
4873
|
}
|
|
5090
4874
|
if (error || !release) {
|
|
5091
|
-
return /* @__PURE__ */
|
|
5092
|
-
/* @__PURE__ */
|
|
5093
|
-
/* @__PURE__ */
|
|
4875
|
+
return /* @__PURE__ */ jsx48(PageShell, { children: /* @__PURE__ */ jsxs39("div", { className: "text-center py-16", children: [
|
|
4876
|
+
/* @__PURE__ */ jsx48("h1", { className: "text-4xl font-bold text-ods-text-primary mb-4", children: "Release Not Found" }),
|
|
4877
|
+
/* @__PURE__ */ jsx48("p", { className: "text-xl text-ods-text-secondary", children: "The release you're looking for doesn't exist." })
|
|
5094
4878
|
] }) });
|
|
5095
4879
|
}
|
|
5096
4880
|
const hasBreakingChanges = Array.isArray(release.breaking_changes) && release.breaking_changes.length > 0;
|
|
@@ -5116,33 +4900,33 @@ function ReleaseDetailPage({
|
|
|
5116
4900
|
const featuresAdded = release.features_added;
|
|
5117
4901
|
const bugFixed = release.bugs_fixed;
|
|
5118
4902
|
const improvements = release.improvements;
|
|
5119
|
-
return /* @__PURE__ */
|
|
4903
|
+
return /* @__PURE__ */ jsx48(PageShell, { children: /* @__PURE__ */ jsx48(
|
|
5120
4904
|
PageLayout,
|
|
5121
4905
|
{
|
|
5122
4906
|
backButton: showBackButton ? { label: backLabel, onClick: () => router.push(backHref) } : void 0,
|
|
5123
|
-
children: /* @__PURE__ */
|
|
5124
|
-
/* @__PURE__ */
|
|
5125
|
-
/* @__PURE__ */
|
|
5126
|
-
/* @__PURE__ */
|
|
4907
|
+
children: /* @__PURE__ */ jsxs39("div", { className: "space-y-6 md:space-y-8", children: [
|
|
4908
|
+
/* @__PURE__ */ jsx48("div", { className: "flex flex-col md:flex-row md:items-end gap-4 w-full", children: /* @__PURE__ */ jsxs39("div", { className: "flex-1 flex flex-col gap-2", children: [
|
|
4909
|
+
/* @__PURE__ */ jsx48("h1", { className: "text-h1 tracking-[-1.12px] text-ods-text-primary", children: releaseTitle }),
|
|
4910
|
+
/* @__PURE__ */ jsxs39("p", { className: "text-h4 text-ods-text-secondary", children: [
|
|
5127
4911
|
"Version: ",
|
|
5128
4912
|
releaseVersion
|
|
5129
4913
|
] })
|
|
5130
4914
|
] }) }),
|
|
5131
|
-
/* @__PURE__ */
|
|
5132
|
-
/* @__PURE__ */
|
|
5133
|
-
/* @__PURE__ */
|
|
5134
|
-
/* @__PURE__ */
|
|
5135
|
-
/* @__PURE__ */
|
|
4915
|
+
/* @__PURE__ */ jsx48(EntityTagBadges, { tags: release.product_release_tags }),
|
|
4916
|
+
/* @__PURE__ */ jsxs39("div", { className: "grid grid-cols-1 md:grid-cols-4 border border-ods-border rounded-md overflow-hidden w-full", children: [
|
|
4917
|
+
/* @__PURE__ */ jsx48("div", { className: "bg-ods-card border-b md:border-b-0 md:border-r border-ods-border p-4 flex flex-col gap-3", children: /* @__PURE__ */ jsxs39("div", { className: "flex flex-col gap-0", children: [
|
|
4918
|
+
/* @__PURE__ */ jsx48("p", { className: "text-h4 text-ods-text-primary", children: releaseType.toLocaleUpperCase() }),
|
|
4919
|
+
/* @__PURE__ */ jsx48("p", { className: "font-['DM_Sans'] font-medium text-[14px] leading-[20px] text-ods-text-secondary", children: "Release Type" })
|
|
5136
4920
|
] }) }),
|
|
5137
|
-
/* @__PURE__ */
|
|
5138
|
-
/* @__PURE__ */
|
|
5139
|
-
/* @__PURE__ */
|
|
4921
|
+
/* @__PURE__ */ jsx48("div", { className: "bg-ods-card border-b md:border-b-0 md:border-r border-ods-border p-4 flex flex-col gap-3", children: /* @__PURE__ */ jsxs39("div", { className: "flex flex-col gap-0", children: [
|
|
4922
|
+
/* @__PURE__ */ jsx48("p", { className: "text-h4 text-ods-text-primary", children: releaseStatus.toLocaleUpperCase() }),
|
|
4923
|
+
/* @__PURE__ */ jsx48("p", { className: "font-['DM_Sans'] font-medium text-[14px] leading-[20px] text-ods-text-secondary", children: "Release Status" })
|
|
5140
4924
|
] }) }),
|
|
5141
|
-
/* @__PURE__ */
|
|
5142
|
-
/* @__PURE__ */
|
|
5143
|
-
/* @__PURE__ */
|
|
4925
|
+
/* @__PURE__ */ jsx48("div", { className: "bg-ods-card border-b md:border-b-0 md:border-r border-ods-border p-4 flex flex-col gap-3", children: /* @__PURE__ */ jsxs39("div", { className: "flex flex-col gap-0", children: [
|
|
4926
|
+
/* @__PURE__ */ jsx48("p", { className: "text-h4 text-ods-text-primary", children: formatReleaseDate(releaseDate) }),
|
|
4927
|
+
/* @__PURE__ */ jsx48("p", { className: "font-['DM_Sans'] font-medium text-[14px] leading-[20px] text-ods-text-secondary", children: "Release Date" })
|
|
5144
4928
|
] }) }),
|
|
5145
|
-
/* @__PURE__ */
|
|
4929
|
+
/* @__PURE__ */ jsx48(
|
|
5146
4930
|
EntityMetadataAuthorCell,
|
|
5147
4931
|
{
|
|
5148
4932
|
author: author ?? { full_name: null, avatar_url: null },
|
|
@@ -5150,9 +4934,9 @@ function ReleaseDetailPage({
|
|
|
5150
4934
|
}
|
|
5151
4935
|
)
|
|
5152
4936
|
] }),
|
|
5153
|
-
/* @__PURE__ */
|
|
5154
|
-
releaseSummary && /* @__PURE__ */
|
|
5155
|
-
VideoDisplaySection ? /* @__PURE__ */
|
|
4937
|
+
/* @__PURE__ */ jsx48(MediaGalleryStrip, { items: releaseMedia ?? [], maxDisplay: 5 }),
|
|
4938
|
+
releaseSummary && /* @__PURE__ */ jsx48("div", { className: "text-h4 text-ods-text-primary", children: /* @__PURE__ */ jsx48("p", { children: releaseSummary }) }),
|
|
4939
|
+
VideoDisplaySection ? /* @__PURE__ */ jsx48(
|
|
5156
4940
|
VideoDisplaySection,
|
|
5157
4941
|
{
|
|
5158
4942
|
mainVideoUrl,
|
|
@@ -5166,8 +4950,8 @@ function ReleaseDetailPage({
|
|
|
5166
4950
|
srtContent: release?.srt_content,
|
|
5167
4951
|
captionsUrl: release?.captionsUrl
|
|
5168
4952
|
}
|
|
5169
|
-
) : /* @__PURE__ */
|
|
5170
|
-
youtubeUrl && /* @__PURE__ */
|
|
4953
|
+
) : /* @__PURE__ */ jsxs39(Fragment8, { children: [
|
|
4954
|
+
youtubeUrl && /* @__PURE__ */ jsx48(
|
|
5171
4955
|
Video,
|
|
5172
4956
|
{
|
|
5173
4957
|
kind: "youtube",
|
|
@@ -5176,7 +4960,7 @@ function ReleaseDetailPage({
|
|
|
5176
4960
|
layout: "native"
|
|
5177
4961
|
}
|
|
5178
4962
|
),
|
|
5179
|
-
!youtubeUrl && mainVideoUrl && /* @__PURE__ */
|
|
4963
|
+
!youtubeUrl && mainVideoUrl && /* @__PURE__ */ jsx48(
|
|
5180
4964
|
Video,
|
|
5181
4965
|
{
|
|
5182
4966
|
url: mainVideoUrl,
|
|
@@ -5185,7 +4969,7 @@ function ReleaseDetailPage({
|
|
|
5185
4969
|
layout: "centered"
|
|
5186
4970
|
}
|
|
5187
4971
|
),
|
|
5188
|
-
highlightVideoUrl && /* @__PURE__ */
|
|
4972
|
+
highlightVideoUrl && /* @__PURE__ */ jsx48(
|
|
5189
4973
|
Video,
|
|
5190
4974
|
{
|
|
5191
4975
|
url: highlightVideoUrl,
|
|
@@ -5194,56 +4978,56 @@ function ReleaseDetailPage({
|
|
|
5194
4978
|
}
|
|
5195
4979
|
)
|
|
5196
4980
|
] }),
|
|
5197
|
-
releaseContent && /* @__PURE__ */
|
|
5198
|
-
hasBreakingChanges && /* @__PURE__ */
|
|
5199
|
-
/* @__PURE__ */
|
|
5200
|
-
/* @__PURE__ */
|
|
5201
|
-
/* @__PURE__ */
|
|
5202
|
-
/* @__PURE__ */
|
|
4981
|
+
releaseContent && /* @__PURE__ */ jsx48("div", { className: "text-h4 text-ods-text-primary", children: /* @__PURE__ */ jsx48(MarkdownRenderer, { content: releaseContent }) }),
|
|
4982
|
+
hasBreakingChanges && /* @__PURE__ */ jsx48(Card, { className: "border-red-500 bg-red-500/10", children: /* @__PURE__ */ jsx48(CardContent, { className: "p-6", children: /* @__PURE__ */ jsxs39("div", { className: "flex items-center gap-3", children: [
|
|
4983
|
+
/* @__PURE__ */ jsx48(AlertTriangle, { className: "h-6 w-6 text-red-500" }),
|
|
4984
|
+
/* @__PURE__ */ jsxs39("div", { children: [
|
|
4985
|
+
/* @__PURE__ */ jsx48("h3", { className: "font-bold text-red-500 text-lg", children: "Breaking Changes" }),
|
|
4986
|
+
/* @__PURE__ */ jsx48("p", { className: "text-ods-text-secondary", children: "This release contains breaking changes. Review carefully before upgrading." })
|
|
5203
4987
|
] })
|
|
5204
4988
|
] }) }) }),
|
|
5205
|
-
/* @__PURE__ */
|
|
4989
|
+
/* @__PURE__ */ jsx48(
|
|
5206
4990
|
ReleaseChangelogSection,
|
|
5207
4991
|
{
|
|
5208
4992
|
title: "Breaking Changes",
|
|
5209
4993
|
entries: breakingChanges || [],
|
|
5210
4994
|
isBreaking: true,
|
|
5211
4995
|
hideTitle: true,
|
|
5212
|
-
icon: /* @__PURE__ */
|
|
4996
|
+
icon: /* @__PURE__ */ jsx48(AlertTriangle, { className: "h-6 w-6" }),
|
|
5213
4997
|
SimpleMarkdownRenderer: MarkdownRenderer
|
|
5214
4998
|
}
|
|
5215
4999
|
),
|
|
5216
|
-
/* @__PURE__ */
|
|
5000
|
+
/* @__PURE__ */ jsx48(
|
|
5217
5001
|
ReleaseChangelogSection,
|
|
5218
5002
|
{
|
|
5219
5003
|
title: "Features Added",
|
|
5220
5004
|
entries: featuresAdded || [],
|
|
5221
|
-
icon: /* @__PURE__ */
|
|
5005
|
+
icon: /* @__PURE__ */ jsx48(Sparkles2, { className: "h-6 w-6" }),
|
|
5222
5006
|
previewFirst: true,
|
|
5223
5007
|
SimpleMarkdownRenderer: MarkdownRenderer
|
|
5224
5008
|
}
|
|
5225
5009
|
),
|
|
5226
|
-
/* @__PURE__ */
|
|
5010
|
+
/* @__PURE__ */ jsx48(
|
|
5227
5011
|
ReleaseChangelogSection,
|
|
5228
5012
|
{
|
|
5229
5013
|
title: "Bugs Fixed",
|
|
5230
5014
|
entries: bugFixed || [],
|
|
5231
|
-
icon: /* @__PURE__ */
|
|
5015
|
+
icon: /* @__PURE__ */ jsx48(Wrench, { className: "h-6 w-6" }),
|
|
5232
5016
|
previewFirst: true,
|
|
5233
5017
|
SimpleMarkdownRenderer: MarkdownRenderer
|
|
5234
5018
|
}
|
|
5235
5019
|
),
|
|
5236
|
-
/* @__PURE__ */
|
|
5020
|
+
/* @__PURE__ */ jsx48(
|
|
5237
5021
|
ReleaseChangelogSection,
|
|
5238
5022
|
{
|
|
5239
5023
|
title: "Improvements",
|
|
5240
5024
|
entries: improvements || [],
|
|
5241
|
-
icon: /* @__PURE__ */
|
|
5025
|
+
icon: /* @__PURE__ */ jsx48(TrendingUp, { className: "h-6 w-6" }),
|
|
5242
5026
|
previewFirst: true,
|
|
5243
5027
|
SimpleMarkdownRenderer: MarkdownRenderer
|
|
5244
5028
|
}
|
|
5245
5029
|
),
|
|
5246
|
-
!VideoDisplaySection && VideoSection && videoBites && videoBites.length > 0 && /* @__PURE__ */
|
|
5030
|
+
!VideoDisplaySection && VideoSection && videoBites && videoBites.length > 0 && /* @__PURE__ */ jsx48(
|
|
5247
5031
|
VideoSection,
|
|
5248
5032
|
{
|
|
5249
5033
|
bites: videoBites,
|
|
@@ -5251,9 +5035,9 @@ function ReleaseDetailPage({
|
|
|
5251
5035
|
filterPublished: true
|
|
5252
5036
|
}
|
|
5253
5037
|
),
|
|
5254
|
-
RoadmapSection && (roadmapLoading || roadmapTasks.length > 0) && /* @__PURE__ */
|
|
5255
|
-
/* @__PURE__ */
|
|
5256
|
-
/* @__PURE__ */
|
|
5038
|
+
RoadmapSection && (roadmapLoading || roadmapTasks.length > 0) && /* @__PURE__ */ jsxs39("div", { className: "space-y-4 w-full", children: [
|
|
5039
|
+
/* @__PURE__ */ jsx48("p", { className: "text-h5 tracking-[-0.28px] text-ods-text-secondary", children: "Related Roadmap Items" }),
|
|
5040
|
+
/* @__PURE__ */ jsx48(
|
|
5257
5041
|
RoadmapSection,
|
|
5258
5042
|
{
|
|
5259
5043
|
items: roadmapTasks,
|
|
@@ -5268,9 +5052,9 @@ function ReleaseDetailPage({
|
|
|
5268
5052
|
}
|
|
5269
5053
|
)
|
|
5270
5054
|
] }),
|
|
5271
|
-
DeliverySection && (deliveryLoading || deliveryData && (deliveryData.completed.length > 0 || deliveryData.inProgress.length > 0)) && /* @__PURE__ */
|
|
5272
|
-
/* @__PURE__ */
|
|
5273
|
-
/* @__PURE__ */
|
|
5055
|
+
DeliverySection && (deliveryLoading || deliveryData && (deliveryData.completed.length > 0 || deliveryData.inProgress.length > 0)) && /* @__PURE__ */ jsxs39("div", { className: "w-full space-y-4", children: [
|
|
5056
|
+
/* @__PURE__ */ jsx48("p", { className: "text-h5 tracking-[-0.28px] text-ods-text-secondary", children: "Related Enhancements and Bug-fixes" }),
|
|
5057
|
+
/* @__PURE__ */ jsx48(
|
|
5274
5058
|
DeliverySection,
|
|
5275
5059
|
{
|
|
5276
5060
|
data: deliveryData,
|
|
@@ -5278,13 +5062,13 @@ function ReleaseDetailPage({
|
|
|
5278
5062
|
}
|
|
5279
5063
|
)
|
|
5280
5064
|
] }),
|
|
5281
|
-
(githubReleases?.length || knowledgeBaseLinks?.length || migrationGuideUrl || documentationUrl) && /* @__PURE__ */
|
|
5282
|
-
/* @__PURE__ */
|
|
5283
|
-
/* @__PURE__ */
|
|
5284
|
-
githubReleases && githubReleases.length > 0 && /* @__PURE__ */
|
|
5285
|
-
/* @__PURE__ */
|
|
5286
|
-
/* @__PURE__ */
|
|
5287
|
-
/* @__PURE__ */
|
|
5065
|
+
(githubReleases?.length || knowledgeBaseLinks?.length || migrationGuideUrl || documentationUrl) && /* @__PURE__ */ jsxs39("div", { className: "space-y-1 w-full", children: [
|
|
5066
|
+
/* @__PURE__ */ jsx48("p", { className: "text-h5 tracking-[-0.28px] text-ods-text-secondary", children: "Related Links" }),
|
|
5067
|
+
/* @__PURE__ */ jsx48(Card, { className: "bg-ods-card border-ods-border p-6", children: /* @__PURE__ */ jsxs39("div", { className: "space-y-4", children: [
|
|
5068
|
+
githubReleases && githubReleases.length > 0 && /* @__PURE__ */ jsx48(Fragment8, { children: githubReleases.map((ghRelease) => /* @__PURE__ */ jsxs39("div", { className: "flex items-start gap-1", children: [
|
|
5069
|
+
/* @__PURE__ */ jsx48(GitHubIcon, { className: "shrink-0", width: 24, height: 24, color: "var(--color-text-secondary)" }),
|
|
5070
|
+
/* @__PURE__ */ jsx48("span", { className: "text-h4 text-ods-text-primary", children: "Github Release" }),
|
|
5071
|
+
/* @__PURE__ */ jsx48(
|
|
5288
5072
|
"a",
|
|
5289
5073
|
{
|
|
5290
5074
|
href: ghRelease.github_release_url,
|
|
@@ -5294,15 +5078,15 @@ function ReleaseDetailPage({
|
|
|
5294
5078
|
children: ghRelease.github_release_url.split("/").pop()
|
|
5295
5079
|
}
|
|
5296
5080
|
),
|
|
5297
|
-
/* @__PURE__ */
|
|
5081
|
+
/* @__PURE__ */ jsx48(ExternalLink, { className: "h-6 w-6 text-[#ffc008] shrink-0" })
|
|
5298
5082
|
] }, ghRelease.id)) }),
|
|
5299
|
-
knowledgeBaseLinks && knowledgeBaseLinks.length > 0 && /* @__PURE__ */
|
|
5083
|
+
knowledgeBaseLinks && knowledgeBaseLinks.length > 0 && /* @__PURE__ */ jsx48(Fragment8, { children: knowledgeBaseLinks.map((linkObj) => {
|
|
5300
5084
|
const path = typeof linkObj === "string" ? linkObj : linkObj.kb_article_path;
|
|
5301
5085
|
const linkId = typeof linkObj === "string" ? path : linkObj.id || path;
|
|
5302
|
-
return /* @__PURE__ */
|
|
5303
|
-
/* @__PURE__ */
|
|
5304
|
-
/* @__PURE__ */
|
|
5305
|
-
/* @__PURE__ */
|
|
5086
|
+
return /* @__PURE__ */ jsxs39("div", { className: "flex items-start gap-1", children: [
|
|
5087
|
+
/* @__PURE__ */ jsx48(BookMarked, { className: "h-6 w-6 text-ods-text-secondary shrink-0" }),
|
|
5088
|
+
/* @__PURE__ */ jsx48("span", { className: "text-h4 text-ods-text-primary", children: "Knowledge Base" }),
|
|
5089
|
+
/* @__PURE__ */ jsx48(
|
|
5306
5090
|
next_link_default,
|
|
5307
5091
|
{
|
|
5308
5092
|
href: path.startsWith("http") ? path : `/knowledge-base${path.startsWith("/") ? "" : "/"}${path}`,
|
|
@@ -5310,12 +5094,12 @@ function ReleaseDetailPage({
|
|
|
5310
5094
|
children: path.replace(/^\//, "").split("/").pop()?.replace(/-/g, " ") || "View Article"
|
|
5311
5095
|
}
|
|
5312
5096
|
),
|
|
5313
|
-
/* @__PURE__ */
|
|
5097
|
+
/* @__PURE__ */ jsx48(ExternalLink, { className: "h-6 w-6 text-[#ffc008] shrink-0" })
|
|
5314
5098
|
] }, linkId);
|
|
5315
5099
|
}) }),
|
|
5316
|
-
migrationGuideUrl && /* @__PURE__ */
|
|
5317
|
-
/* @__PURE__ */
|
|
5318
|
-
/* @__PURE__ */
|
|
5100
|
+
migrationGuideUrl && /* @__PURE__ */ jsxs39("div", { className: "flex items-start gap-1", children: [
|
|
5101
|
+
/* @__PURE__ */ jsx48(BookMarked, { className: "h-6 w-6 text-ods-text-secondary shrink-0" }),
|
|
5102
|
+
/* @__PURE__ */ jsx48(
|
|
5319
5103
|
"a",
|
|
5320
5104
|
{
|
|
5321
5105
|
href: migrationGuideUrl,
|
|
@@ -5325,11 +5109,11 @@ function ReleaseDetailPage({
|
|
|
5325
5109
|
children: "\u{1F4D6} Migration Guide"
|
|
5326
5110
|
}
|
|
5327
5111
|
),
|
|
5328
|
-
/* @__PURE__ */
|
|
5112
|
+
/* @__PURE__ */ jsx48(ExternalLink, { className: "h-6 w-6 text-[#ffc008] shrink-0" })
|
|
5329
5113
|
] }),
|
|
5330
|
-
documentationUrl && /* @__PURE__ */
|
|
5331
|
-
/* @__PURE__ */
|
|
5332
|
-
/* @__PURE__ */
|
|
5114
|
+
documentationUrl && /* @__PURE__ */ jsxs39("div", { className: "flex items-start gap-1", children: [
|
|
5115
|
+
/* @__PURE__ */ jsx48(BookMarked, { className: "h-6 w-6 text-ods-text-secondary shrink-0" }),
|
|
5116
|
+
/* @__PURE__ */ jsx48(
|
|
5333
5117
|
"a",
|
|
5334
5118
|
{
|
|
5335
5119
|
href: documentationUrl,
|
|
@@ -5339,7 +5123,7 @@ function ReleaseDetailPage({
|
|
|
5339
5123
|
children: "\u{1F4DA} Documentation"
|
|
5340
5124
|
}
|
|
5341
5125
|
),
|
|
5342
|
-
/* @__PURE__ */
|
|
5126
|
+
/* @__PURE__ */ jsx48(ExternalLink, { className: "h-6 w-6 text-[#ffc008] shrink-0" })
|
|
5343
5127
|
] })
|
|
5344
5128
|
] }) })
|
|
5345
5129
|
] })
|
|
@@ -5349,24 +5133,24 @@ function ReleaseDetailPage({
|
|
|
5349
5133
|
}
|
|
5350
5134
|
|
|
5351
5135
|
// src/components/shared/product-release/release-detail-skeleton.tsx
|
|
5352
|
-
import { jsx as
|
|
5136
|
+
import { jsx as jsx49 } from "react/jsx-runtime";
|
|
5353
5137
|
function ReleaseDetailSkeleton() {
|
|
5354
|
-
return /* @__PURE__ */
|
|
5138
|
+
return /* @__PURE__ */ jsx49(DetailPageSkeleton, { metadataColumns: 4, showImageGallery: true });
|
|
5355
5139
|
}
|
|
5356
5140
|
|
|
5357
5141
|
// src/components/shared/roadmap/roadmap-grid.tsx
|
|
5358
|
-
import { useEffect as
|
|
5142
|
+
import { useEffect as useEffect7, useRef as useRef4, useState as useState9 } from "react";
|
|
5359
5143
|
|
|
5360
5144
|
// src/components/shared/roadmap/use-roadmap-voting.ts
|
|
5361
|
-
import { useState as
|
|
5145
|
+
import { useState as useState8, useEffect as useEffect6, useCallback as useCallback3 } from "react";
|
|
5362
5146
|
var DEFAULT_VOTE_ENDPOINT = "/api/roadmap/vote";
|
|
5363
5147
|
var DEFAULT_STORAGE_KEY = "roadmap_votes_v1";
|
|
5364
5148
|
function useRoadmapVoting(options = {}) {
|
|
5365
5149
|
const voteApiEndpoint = options.voteApiEndpoint ?? DEFAULT_VOTE_ENDPOINT;
|
|
5366
5150
|
const storageKey = options.storageKey ?? DEFAULT_STORAGE_KEY;
|
|
5367
|
-
const [votes, setVotes] =
|
|
5368
|
-
const [isLoading, setIsLoading] =
|
|
5369
|
-
|
|
5151
|
+
const [votes, setVotes] = useState8({});
|
|
5152
|
+
const [isLoading, setIsLoading] = useState8(true);
|
|
5153
|
+
useEffect6(() => {
|
|
5370
5154
|
setIsLoading(true);
|
|
5371
5155
|
setVotes({});
|
|
5372
5156
|
try {
|
|
@@ -5380,7 +5164,7 @@ function useRoadmapVoting(options = {}) {
|
|
|
5380
5164
|
setIsLoading(false);
|
|
5381
5165
|
}
|
|
5382
5166
|
}, [storageKey]);
|
|
5383
|
-
|
|
5167
|
+
useEffect6(() => {
|
|
5384
5168
|
if (!isLoading) {
|
|
5385
5169
|
try {
|
|
5386
5170
|
localStorage.setItem(storageKey, JSON.stringify(votes));
|
|
@@ -5389,13 +5173,13 @@ function useRoadmapVoting(options = {}) {
|
|
|
5389
5173
|
}
|
|
5390
5174
|
}
|
|
5391
5175
|
}, [votes, isLoading, storageKey]);
|
|
5392
|
-
const getVote =
|
|
5176
|
+
const getVote = useCallback3(
|
|
5393
5177
|
(taskId) => {
|
|
5394
5178
|
return votes[taskId] || null;
|
|
5395
5179
|
},
|
|
5396
5180
|
[votes]
|
|
5397
5181
|
);
|
|
5398
|
-
const toggleVote =
|
|
5182
|
+
const toggleVote = useCallback3(
|
|
5399
5183
|
async (taskId, voteType) => {
|
|
5400
5184
|
const currentVote = votes[taskId];
|
|
5401
5185
|
let newVote = null;
|
|
@@ -5443,7 +5227,7 @@ function useRoadmapVoting(options = {}) {
|
|
|
5443
5227
|
},
|
|
5444
5228
|
[votes, voteApiEndpoint]
|
|
5445
5229
|
);
|
|
5446
|
-
const clearVotes =
|
|
5230
|
+
const clearVotes = useCallback3(() => {
|
|
5447
5231
|
setVotes({});
|
|
5448
5232
|
localStorage.removeItem(storageKey);
|
|
5449
5233
|
}, [storageKey]);
|
|
@@ -5458,7 +5242,7 @@ function useRoadmapVoting(options = {}) {
|
|
|
5458
5242
|
|
|
5459
5243
|
// src/components/shared/roadmap/roadmap-grid.tsx
|
|
5460
5244
|
init_cn();
|
|
5461
|
-
import { jsx as
|
|
5245
|
+
import { jsx as jsx50, jsxs as jsxs40 } from "react/jsx-runtime";
|
|
5462
5246
|
var DEFAULT_BUILD_REFRESH_URL = (taskId) => `/api/roadmap/${taskId}`;
|
|
5463
5247
|
var BACKLOG = "Backlog";
|
|
5464
5248
|
function getStatusPriority(status) {
|
|
@@ -5507,13 +5291,13 @@ function RoadmapGridSingle({
|
|
|
5507
5291
|
onVote,
|
|
5508
5292
|
votingTasks
|
|
5509
5293
|
}) {
|
|
5510
|
-
return /* @__PURE__ */
|
|
5294
|
+
return /* @__PURE__ */ jsx50("div", { className: `grid grid-cols-1 md:grid-cols-2 gap-6 ${showLeftMargin ? "md:ml-[120px]" : ""}`, children: items.map((item) => (
|
|
5511
5295
|
// DOM id + sticky-header scroll offset live ON RoadmapCard's own
|
|
5512
5296
|
// outer element (no wrapper div). Anchor mirrors
|
|
5513
5297
|
// `buildDevSectionUrl('roadmap', <id>)` → `#roadmap-<external_id>`;
|
|
5514
5298
|
// `useScrollToHash` in `roadmap-view.tsx` finds the card by id
|
|
5515
5299
|
// and scrolls.
|
|
5516
|
-
/* @__PURE__ */
|
|
5300
|
+
/* @__PURE__ */ jsx50(
|
|
5517
5301
|
RoadmapCard,
|
|
5518
5302
|
{
|
|
5519
5303
|
item,
|
|
@@ -5537,7 +5321,7 @@ function RoadmapGrid({
|
|
|
5537
5321
|
quartersToKeepClosed = 2
|
|
5538
5322
|
}) {
|
|
5539
5323
|
const { getVote, toggleVote } = useRoadmapVoting(votingOptions);
|
|
5540
|
-
const [votingTasks, setVotingTasks] =
|
|
5324
|
+
const [votingTasks, setVotingTasks] = useState9(/* @__PURE__ */ new Set());
|
|
5541
5325
|
const handleVote = async (taskId, voteType) => {
|
|
5542
5326
|
if (votingTasks.has(taskId)) return;
|
|
5543
5327
|
setVotingTasks((prev) => new Set(prev).add(taskId));
|
|
@@ -5574,11 +5358,11 @@ function RoadmapGrid({
|
|
|
5574
5358
|
return compareQuarters(aD, bD);
|
|
5575
5359
|
});
|
|
5576
5360
|
const sortedQuartersKey = sortedQuarters.join(",");
|
|
5577
|
-
const [expandedQuarters, setExpandedQuarters] =
|
|
5578
|
-
const [isInitialized, setIsInitialized] =
|
|
5579
|
-
const hasSetInitialState =
|
|
5580
|
-
const prevItemsLength =
|
|
5581
|
-
|
|
5361
|
+
const [expandedQuarters, setExpandedQuarters] = useState9([]);
|
|
5362
|
+
const [isInitialized, setIsInitialized] = useState9(false);
|
|
5363
|
+
const hasSetInitialState = useRef4(false);
|
|
5364
|
+
const prevItemsLength = useRef4(0);
|
|
5365
|
+
useEffect7(() => {
|
|
5582
5366
|
const itemsJustLoaded = prevItemsLength.current === 0 && items.length > 0;
|
|
5583
5367
|
prevItemsLength.current = items.length;
|
|
5584
5368
|
if (sortedQuarters.length > 0 && (!hasSetInitialState.current || itemsJustLoaded)) {
|
|
@@ -5589,14 +5373,14 @@ function RoadmapGrid({
|
|
|
5589
5373
|
setIsInitialized(true);
|
|
5590
5374
|
}
|
|
5591
5375
|
}, [sortedQuarters.length, items.length]);
|
|
5592
|
-
|
|
5376
|
+
useEffect7(() => {
|
|
5593
5377
|
if (!isInitialized || sortedQuarters.length === 0) return;
|
|
5594
5378
|
setExpandedQuarters(
|
|
5595
5379
|
hasActiveFilters ? [...sortedQuarters] : computeDefaultExpandedQuarters(sortedQuarters, quartersToKeepClosed)
|
|
5596
5380
|
);
|
|
5597
5381
|
}, [hasActiveFilters, sortedQuartersKey, isInitialized, quartersToKeepClosed]);
|
|
5598
5382
|
if (items.length === 0) {
|
|
5599
|
-
return /* @__PURE__ */
|
|
5383
|
+
return /* @__PURE__ */ jsx50(
|
|
5600
5384
|
EmptyState,
|
|
5601
5385
|
{
|
|
5602
5386
|
type: "generic",
|
|
@@ -5606,7 +5390,7 @@ function RoadmapGrid({
|
|
|
5606
5390
|
);
|
|
5607
5391
|
}
|
|
5608
5392
|
if (!groupByQuarter) {
|
|
5609
|
-
return /* @__PURE__ */
|
|
5393
|
+
return /* @__PURE__ */ jsx50(
|
|
5610
5394
|
RoadmapGridSingle,
|
|
5611
5395
|
{
|
|
5612
5396
|
items,
|
|
@@ -5617,7 +5401,7 @@ function RoadmapGrid({
|
|
|
5617
5401
|
}
|
|
5618
5402
|
);
|
|
5619
5403
|
}
|
|
5620
|
-
return /* @__PURE__ */
|
|
5404
|
+
return /* @__PURE__ */ jsx50(
|
|
5621
5405
|
Accordion,
|
|
5622
5406
|
{
|
|
5623
5407
|
type: "multiple",
|
|
@@ -5627,15 +5411,15 @@ function RoadmapGrid({
|
|
|
5627
5411
|
children: sortedQuarters.map((quarter) => {
|
|
5628
5412
|
const itemCount = itemsByQuarter[quarter]?.length || 0;
|
|
5629
5413
|
const isExpanded = expandedQuarters.includes(quarter);
|
|
5630
|
-
return /* @__PURE__ */
|
|
5414
|
+
return /* @__PURE__ */ jsxs40(
|
|
5631
5415
|
AccordionItem,
|
|
5632
5416
|
{
|
|
5633
5417
|
value: quarter,
|
|
5634
5418
|
id: `quarter-${quarter.replace(/\s+/g, "-").toLowerCase()}`,
|
|
5635
5419
|
className: "border-0",
|
|
5636
5420
|
children: [
|
|
5637
|
-
/* @__PURE__ */
|
|
5638
|
-
/* @__PURE__ */
|
|
5421
|
+
/* @__PURE__ */ jsx50(AccordionTrigger, { className: "w-full p-0 hover:no-underline [&>svg]:h-5 [&>svg]:w-5 [&>svg]:text-ods-text-secondary [&>svg]:ml-auto [&>svg]:shrink-0", children: /* @__PURE__ */ jsxs40("div", { className: "flex items-center gap-3", children: [
|
|
5422
|
+
/* @__PURE__ */ jsxs40(
|
|
5639
5423
|
"h3",
|
|
5640
5424
|
{
|
|
5641
5425
|
className: cn(
|
|
@@ -5644,11 +5428,11 @@ function RoadmapGrid({
|
|
|
5644
5428
|
),
|
|
5645
5429
|
children: [
|
|
5646
5430
|
quarter,
|
|
5647
|
-
/* @__PURE__ */
|
|
5431
|
+
/* @__PURE__ */ jsx50("span", { className: "text-ods-accent", children: ":" })
|
|
5648
5432
|
]
|
|
5649
5433
|
}
|
|
5650
5434
|
),
|
|
5651
|
-
/* @__PURE__ */
|
|
5435
|
+
/* @__PURE__ */ jsxs40(
|
|
5652
5436
|
"span",
|
|
5653
5437
|
{
|
|
5654
5438
|
className: cn(
|
|
@@ -5659,12 +5443,12 @@ function RoadmapGrid({
|
|
|
5659
5443
|
itemCount,
|
|
5660
5444
|
" ",
|
|
5661
5445
|
itemCount === 1 ? "item" : "items",
|
|
5662
|
-
isInitialized && !isExpanded && /* @__PURE__ */
|
|
5446
|
+
isInitialized && !isExpanded && /* @__PURE__ */ jsx50("span", { className: "ml-2 text-ods-accent", children: "Click to expand" })
|
|
5663
5447
|
]
|
|
5664
5448
|
}
|
|
5665
5449
|
)
|
|
5666
5450
|
] }) }),
|
|
5667
|
-
/* @__PURE__ */
|
|
5451
|
+
/* @__PURE__ */ jsx50(AccordionContent, { className: "pt-4 pb-0 overflow-hidden data-[state=closed]:animate-none data-[state=open]:animate-none", children: /* @__PURE__ */ jsx50(
|
|
5668
5452
|
RoadmapGridSingle,
|
|
5669
5453
|
{
|
|
5670
5454
|
items: itemsByQuarter[quarter],
|
|
@@ -5684,36 +5468,36 @@ function RoadmapGrid({
|
|
|
5684
5468
|
}
|
|
5685
5469
|
|
|
5686
5470
|
// src/components/shared/roadmap/roadmap-grid-skeleton.tsx
|
|
5687
|
-
import { jsx as
|
|
5471
|
+
import { jsx as jsx51, jsxs as jsxs41 } from "react/jsx-runtime";
|
|
5688
5472
|
function RoadmapCardSkeleton2() {
|
|
5689
|
-
return /* @__PURE__ */
|
|
5690
|
-
/* @__PURE__ */
|
|
5691
|
-
/* @__PURE__ */
|
|
5692
|
-
/* @__PURE__ */
|
|
5693
|
-
/* @__PURE__ */
|
|
5694
|
-
/* @__PURE__ */
|
|
5695
|
-
/* @__PURE__ */
|
|
5473
|
+
return /* @__PURE__ */ jsxs41("div", { className: "bg-ods-card border border-ods-border rounded-[6px] p-[24px] flex flex-col gap-[16px] min-h-[340px] relative", children: [
|
|
5474
|
+
/* @__PURE__ */ jsx51("div", { className: "absolute top-[24px] right-[24px]", children: /* @__PURE__ */ jsx51("div", { className: "h-[20px] w-[80px] bg-ods-border rounded animate-pulse" }) }),
|
|
5475
|
+
/* @__PURE__ */ jsxs41("div", { className: "flex items-center gap-[16px] pr-[120px]", children: [
|
|
5476
|
+
/* @__PURE__ */ jsx51("div", { className: "w-[80px] h-[80px] bg-ods-border rounded-lg flex-shrink-0 animate-pulse" }),
|
|
5477
|
+
/* @__PURE__ */ jsxs41("div", { className: "flex-1 min-w-0 flex flex-col gap-1", children: [
|
|
5478
|
+
/* @__PURE__ */ jsx51("div", { className: "min-h-[48px] flex items-center", children: /* @__PURE__ */ jsx51("div", { className: "h-[24px] w-full bg-ods-border rounded animate-pulse" }) }),
|
|
5479
|
+
/* @__PURE__ */ jsx51("div", { className: "min-h-[20px] flex items-center", children: /* @__PURE__ */ jsx51("div", { className: "h-[14px] w-1/2 bg-ods-border rounded animate-pulse" }) })
|
|
5696
5480
|
] })
|
|
5697
5481
|
] }),
|
|
5698
|
-
/* @__PURE__ */
|
|
5699
|
-
/* @__PURE__ */
|
|
5700
|
-
/* @__PURE__ */
|
|
5701
|
-
/* @__PURE__ */
|
|
5482
|
+
/* @__PURE__ */ jsx51("div", { className: "min-h-[72px] flex items-center", children: /* @__PURE__ */ jsxs41("div", { className: "w-full space-y-2", children: [
|
|
5483
|
+
/* @__PURE__ */ jsx51("div", { className: "h-[24px] bg-ods-border rounded animate-pulse" }),
|
|
5484
|
+
/* @__PURE__ */ jsx51("div", { className: "h-[24px] bg-ods-border rounded animate-pulse" }),
|
|
5485
|
+
/* @__PURE__ */ jsx51("div", { className: "h-[24px] w-4/5 bg-ods-border rounded animate-pulse" })
|
|
5702
5486
|
] }) }),
|
|
5703
|
-
/* @__PURE__ */
|
|
5704
|
-
/* @__PURE__ */
|
|
5705
|
-
/* @__PURE__ */
|
|
5706
|
-
/* @__PURE__ */
|
|
5487
|
+
/* @__PURE__ */ jsx51("div", { className: "flex-1" }),
|
|
5488
|
+
/* @__PURE__ */ jsxs41("div", { className: "flex items-center justify-between", children: [
|
|
5489
|
+
/* @__PURE__ */ jsx51("div", { className: "h-[48px] w-[120px] bg-ods-border rounded animate-pulse" }),
|
|
5490
|
+
/* @__PURE__ */ jsx51("div", { className: "h-[32px] w-[100px] bg-ods-border rounded animate-pulse" })
|
|
5707
5491
|
] })
|
|
5708
5492
|
] });
|
|
5709
5493
|
}
|
|
5710
5494
|
function RoadmapGridSkeleton({ count = 4, showLeftMargin = true }) {
|
|
5711
|
-
return /* @__PURE__ */
|
|
5495
|
+
return /* @__PURE__ */ jsx51("div", { className: `grid grid-cols-1 md:grid-cols-2 gap-6 ${showLeftMargin ? "md:ml-[120px]" : ""}`, children: Array.from({ length: count }).map((_, i) => /* @__PURE__ */ jsx51(RoadmapCardSkeleton2, {}, i)) });
|
|
5712
5496
|
}
|
|
5713
5497
|
|
|
5714
5498
|
// src/components/shared/roadmap/roadmap-view.tsx
|
|
5715
5499
|
import { useMemo as useMemo2 } from "react";
|
|
5716
|
-
import { jsx as
|
|
5500
|
+
import { jsx as jsx52 } from "react/jsx-runtime";
|
|
5717
5501
|
var DEFAULT_ENDPOINT2 = "/api/roadmap";
|
|
5718
5502
|
var DEFAULT_SEARCH_PARAM_KEY2 = DEV_SECTION_PARAM_KEYS.search;
|
|
5719
5503
|
var DEFAULT_STATUS_PARAM_KEY2 = DEV_SECTION_PARAM_KEYS.status;
|
|
@@ -5742,12 +5526,12 @@ function RoadmapView({
|
|
|
5742
5526
|
const items = data?.items ?? [];
|
|
5743
5527
|
useScrollToHash(data, { headerOffset: STICKY_HEADER_OFFSET_PX });
|
|
5744
5528
|
if (error) {
|
|
5745
|
-
return /* @__PURE__ */
|
|
5529
|
+
return /* @__PURE__ */ jsx52(LoadError, { message: "Failed to load roadmap.", onRetry: reload });
|
|
5746
5530
|
}
|
|
5747
5531
|
if (isLoading && !data) {
|
|
5748
|
-
return /* @__PURE__ */
|
|
5532
|
+
return /* @__PURE__ */ jsx52(RoadmapGridSkeleton, { showLeftMargin });
|
|
5749
5533
|
}
|
|
5750
|
-
return /* @__PURE__ */
|
|
5534
|
+
return /* @__PURE__ */ jsx52(
|
|
5751
5535
|
RoadmapGrid,
|
|
5752
5536
|
{
|
|
5753
5537
|
items,
|
|
@@ -5764,45 +5548,45 @@ function RoadmapView({
|
|
|
5764
5548
|
}
|
|
5765
5549
|
|
|
5766
5550
|
// src/components/shared/delivery/delivery-lists.tsx
|
|
5767
|
-
import { useEffect as
|
|
5551
|
+
import { useEffect as useEffect8, useState as useState10 } from "react";
|
|
5768
5552
|
|
|
5769
5553
|
// src/components/shared/delivery/delivery-table.tsx
|
|
5770
|
-
import { jsx as
|
|
5554
|
+
import { jsx as jsx53, jsxs as jsxs42 } from "react/jsx-runtime";
|
|
5771
5555
|
function SkeletonRow() {
|
|
5772
|
-
return /* @__PURE__ */
|
|
5773
|
-
/* @__PURE__ */
|
|
5774
|
-
/* @__PURE__ */
|
|
5775
|
-
/* @__PURE__ */
|
|
5776
|
-
/* @__PURE__ */
|
|
5777
|
-
/* @__PURE__ */
|
|
5778
|
-
/* @__PURE__ */
|
|
5779
|
-
/* @__PURE__ */
|
|
5556
|
+
return /* @__PURE__ */ jsx53("div", { className: "border-b border-ods-border last:border-b-0 p-[12px] md:p-[16px]", children: /* @__PURE__ */ jsxs42("div", { className: "flex flex-col md:flex-row items-start justify-between gap-[12px] md:gap-[16px] w-full", children: [
|
|
5557
|
+
/* @__PURE__ */ jsxs42("div", { className: "flex-1 min-w-0 w-full md:w-auto flex flex-col gap-[12px] md:gap-[16px]", children: [
|
|
5558
|
+
/* @__PURE__ */ jsx53("div", { className: "min-h-[24px] flex items-center", children: /* @__PURE__ */ jsx53("div", { className: "h-[20px] bg-ods-border rounded animate-pulse w-full" }) }),
|
|
5559
|
+
/* @__PURE__ */ jsx53("div", { className: "min-h-[20px] flex items-center", children: /* @__PURE__ */ jsx53("div", { className: "h-[20px] bg-ods-border rounded animate-pulse w-1/2" }) }),
|
|
5560
|
+
/* @__PURE__ */ jsx53("div", { className: "min-h-[72px] flex items-center", children: /* @__PURE__ */ jsxs42("div", { className: "flex-1 space-y-1", children: [
|
|
5561
|
+
/* @__PURE__ */ jsx53("div", { className: "h-[20px] bg-ods-border rounded animate-pulse w-full" }),
|
|
5562
|
+
/* @__PURE__ */ jsx53("div", { className: "h-[20px] bg-ods-border rounded animate-pulse w-full" }),
|
|
5563
|
+
/* @__PURE__ */ jsx53("div", { className: "h-[20px] bg-ods-border rounded animate-pulse w-2/3" })
|
|
5780
5564
|
] }) })
|
|
5781
5565
|
] }),
|
|
5782
|
-
/* @__PURE__ */
|
|
5783
|
-
/* @__PURE__ */
|
|
5784
|
-
/* @__PURE__ */
|
|
5566
|
+
/* @__PURE__ */ jsxs42("div", { className: "flex-shrink-0 self-start flex flex-col gap-2", children: [
|
|
5567
|
+
/* @__PURE__ */ jsx53("div", { className: "h-[32px] w-[100px] bg-ods-border rounded animate-pulse" }),
|
|
5568
|
+
/* @__PURE__ */ jsx53("div", { className: "h-[32px] w-[120px] bg-ods-border rounded animate-pulse" })
|
|
5785
5569
|
] })
|
|
5786
5570
|
] }) });
|
|
5787
5571
|
}
|
|
5788
5572
|
function DeliveryTable({ items, isLoading = false }) {
|
|
5789
5573
|
if (isLoading) {
|
|
5790
|
-
return /* @__PURE__ */
|
|
5574
|
+
return /* @__PURE__ */ jsx53("div", { className: "bg-ods-card border border-ods-border rounded-[6px] overflow-hidden w-full", children: /* @__PURE__ */ jsx53("div", { className: "w-full", children: [1, 2, 3, 4, 5].map((i) => /* @__PURE__ */ jsx53(SkeletonRow, {}, i)) }) });
|
|
5791
5575
|
}
|
|
5792
5576
|
if (items.length === 0) {
|
|
5793
|
-
return /* @__PURE__ */
|
|
5577
|
+
return /* @__PURE__ */ jsx53("div", { className: "bg-ods-card border border-ods-border rounded-[6px] p-[40px] text-center w-full", children: /* @__PURE__ */ jsx53("p", { className: "text-ods-text-secondary text-[14px] font-['DM_Sans'] font-medium", children: "No tasks available" }) });
|
|
5794
5578
|
}
|
|
5795
|
-
return /* @__PURE__ */
|
|
5579
|
+
return /* @__PURE__ */ jsx53("div", { className: "bg-ods-card border border-ods-border rounded-[6px] overflow-hidden w-full", children: /* @__PURE__ */ jsx53("div", { className: "w-full", children: items.map((item) => (
|
|
5796
5580
|
// DOM id lives on DeliveryRow's own outer element (no wrapper
|
|
5797
5581
|
// div). Anchor mirrors `buildDevSectionUrl('delivery', <id>)`
|
|
5798
5582
|
// → `#delivery-<external_id>`; `useScrollToHash` in
|
|
5799
5583
|
// `delivery-lists.tsx` finds the row by id and scrolls. The
|
|
5800
5584
|
// outer wrapper here ONLY exists for the row separators.
|
|
5801
|
-
/* @__PURE__ */
|
|
5585
|
+
/* @__PURE__ */ jsx53(
|
|
5802
5586
|
"div",
|
|
5803
5587
|
{
|
|
5804
5588
|
className: "border-b border-ods-border last:border-b-0",
|
|
5805
|
-
children: /* @__PURE__ */
|
|
5589
|
+
children: /* @__PURE__ */ jsx53(DeliveryRow, { item, id: devSectionAnchorId("delivery", item.id) })
|
|
5806
5590
|
},
|
|
5807
5591
|
item.id
|
|
5808
5592
|
)
|
|
@@ -5810,7 +5594,7 @@ function DeliveryTable({ items, isLoading = false }) {
|
|
|
5810
5594
|
}
|
|
5811
5595
|
|
|
5812
5596
|
// src/components/shared/delivery/delivery-lists.tsx
|
|
5813
|
-
import { jsx as
|
|
5597
|
+
import { jsx as jsx54, jsxs as jsxs43 } from "react/jsx-runtime";
|
|
5814
5598
|
var DEFAULT_COMPLETED_ENDPOINT = "/api/delivery/completed";
|
|
5815
5599
|
var DEFAULT_IN_PROGRESS_ENDPOINT = "/api/delivery/in-progress";
|
|
5816
5600
|
var DEFAULT_SEARCH_PARAM_KEY3 = DEV_SECTION_PARAM_KEYS.search;
|
|
@@ -5824,12 +5608,12 @@ function DeliveryLists({
|
|
|
5824
5608
|
const searchParams = useSearchParams();
|
|
5825
5609
|
const router = useRouter();
|
|
5826
5610
|
const pathname = usePathname();
|
|
5827
|
-
const [data, setData] =
|
|
5828
|
-
const [isLoading, setIsLoading] =
|
|
5829
|
-
const [error, setError] =
|
|
5611
|
+
const [data, setData] = useState10(null);
|
|
5612
|
+
const [isLoading, setIsLoading] = useState10(true);
|
|
5613
|
+
const [error, setError] = useState10(null);
|
|
5830
5614
|
const searchQuery = searchParams.get(searchParamKey) || "";
|
|
5831
5615
|
const taskTypeFilter = searchParams.get(taskTypeParamKey) || "all";
|
|
5832
|
-
|
|
5616
|
+
useEffect8(() => {
|
|
5833
5617
|
async function fetchDeliveryData() {
|
|
5834
5618
|
try {
|
|
5835
5619
|
setIsLoading(true);
|
|
@@ -5875,10 +5659,10 @@ function DeliveryLists({
|
|
|
5875
5659
|
const hasActiveFilters = searchQuery !== "" || taskTypeFilter !== "all";
|
|
5876
5660
|
const hasResults = showCompleted && filteredCompleted.length > 0 || showInProgress && filteredInProgress.length > 0;
|
|
5877
5661
|
if (error) {
|
|
5878
|
-
return /* @__PURE__ */
|
|
5662
|
+
return /* @__PURE__ */ jsx54("div", { className: "w-full", children: /* @__PURE__ */ jsx54(LoadError, { message: error, onRetry: () => window.location.reload() }) });
|
|
5879
5663
|
}
|
|
5880
|
-
return /* @__PURE__ */
|
|
5881
|
-
!isLoading && !hasResults && (hasActiveFilters ? /* @__PURE__ */
|
|
5664
|
+
return /* @__PURE__ */ jsxs43("div", { className: "w-full flex flex-col gap-[40px]", children: [
|
|
5665
|
+
!isLoading && !hasResults && (hasActiveFilters ? /* @__PURE__ */ jsx54(
|
|
5882
5666
|
EmptyState,
|
|
5883
5667
|
{
|
|
5884
5668
|
type: "search",
|
|
@@ -5893,7 +5677,7 @@ function DeliveryLists({
|
|
|
5893
5677
|
router.replace(`${pathname}?${params.toString()}`, { scroll: false });
|
|
5894
5678
|
}
|
|
5895
5679
|
}
|
|
5896
|
-
) : /* @__PURE__ */
|
|
5680
|
+
) : /* @__PURE__ */ jsx54(
|
|
5897
5681
|
EmptyState,
|
|
5898
5682
|
{
|
|
5899
5683
|
type: "generic",
|
|
@@ -5902,12 +5686,12 @@ function DeliveryLists({
|
|
|
5902
5686
|
showCTA: false
|
|
5903
5687
|
}
|
|
5904
5688
|
)),
|
|
5905
|
-
showCompleted && (hasResults || isLoading) && /* @__PURE__ */
|
|
5906
|
-
/* @__PURE__ */
|
|
5689
|
+
showCompleted && (hasResults || isLoading) && /* @__PURE__ */ jsxs43("div", { className: "w-full", children: [
|
|
5690
|
+
/* @__PURE__ */ jsxs43("h3", { className: "text-h2 text-ods-text-primary tracking-[-0.48px] md:tracking-[-0.56px] lg:tracking-[-0.64px] mb-4", children: [
|
|
5907
5691
|
"Recently Completed",
|
|
5908
|
-
/* @__PURE__ */
|
|
5692
|
+
/* @__PURE__ */ jsx54("span", { className: "text-ods-accent", children: ":" })
|
|
5909
5693
|
] }),
|
|
5910
|
-
/* @__PURE__ */
|
|
5694
|
+
/* @__PURE__ */ jsx54(
|
|
5911
5695
|
DeliveryTable,
|
|
5912
5696
|
{
|
|
5913
5697
|
items: filteredCompleted,
|
|
@@ -5915,12 +5699,12 @@ function DeliveryLists({
|
|
|
5915
5699
|
}
|
|
5916
5700
|
)
|
|
5917
5701
|
] }),
|
|
5918
|
-
showInProgress && (hasResults || isLoading) && /* @__PURE__ */
|
|
5919
|
-
/* @__PURE__ */
|
|
5702
|
+
showInProgress && (hasResults || isLoading) && /* @__PURE__ */ jsxs43("div", { className: "w-full", children: [
|
|
5703
|
+
/* @__PURE__ */ jsxs43("h3", { className: "text-h2 text-ods-text-primary tracking-[-0.48px] md:tracking-[-0.56px] lg:tracking-[-0.64px] mb-4", children: [
|
|
5920
5704
|
"Active Tasks",
|
|
5921
|
-
/* @__PURE__ */
|
|
5705
|
+
/* @__PURE__ */ jsx54("span", { className: "text-ods-accent", children: ":" })
|
|
5922
5706
|
] }),
|
|
5923
|
-
/* @__PURE__ */
|
|
5707
|
+
/* @__PURE__ */ jsx54(
|
|
5924
5708
|
DeliveryTable,
|
|
5925
5709
|
{
|
|
5926
5710
|
items: filteredInProgress,
|
|
@@ -5935,14 +5719,14 @@ function DeliveryLists({
|
|
|
5935
5719
|
init_next_navigation();
|
|
5936
5720
|
|
|
5937
5721
|
// src/components/shared/legal-document/use-legal-docs.ts
|
|
5938
|
-
import { useState as
|
|
5722
|
+
import { useState as useState11, useEffect as useEffect9, useCallback as useCallback4 } from "react";
|
|
5939
5723
|
function useLegalDocs(docType, options = {}) {
|
|
5940
5724
|
const { initialData = null, apiEndpoint } = options;
|
|
5941
5725
|
const effectiveEndpoint = apiEndpoint ?? `/api/legal/${docType}`;
|
|
5942
|
-
const [data, setData] =
|
|
5943
|
-
const [isLoading, setIsLoading] =
|
|
5944
|
-
const [error, setError] =
|
|
5945
|
-
const fetchDocument =
|
|
5726
|
+
const [data, setData] = useState11(initialData ?? null);
|
|
5727
|
+
const [isLoading, setIsLoading] = useState11(!initialData);
|
|
5728
|
+
const [error, setError] = useState11(null);
|
|
5729
|
+
const fetchDocument = useCallback4(async () => {
|
|
5946
5730
|
try {
|
|
5947
5731
|
setIsLoading(true);
|
|
5948
5732
|
setError(null);
|
|
@@ -5965,12 +5749,12 @@ function useLegalDocs(docType, options = {}) {
|
|
|
5965
5749
|
setIsLoading(false);
|
|
5966
5750
|
}
|
|
5967
5751
|
}, [docType, effectiveEndpoint]);
|
|
5968
|
-
|
|
5752
|
+
useEffect9(() => {
|
|
5969
5753
|
setData(initialData ?? null);
|
|
5970
5754
|
setError(null);
|
|
5971
5755
|
setIsLoading(!initialData);
|
|
5972
5756
|
}, [docType, initialData]);
|
|
5973
|
-
|
|
5757
|
+
useEffect9(() => {
|
|
5974
5758
|
if (initialData) return;
|
|
5975
5759
|
fetchDocument();
|
|
5976
5760
|
}, [fetchDocument, initialData]);
|
|
@@ -5986,7 +5770,7 @@ function useLegalDocs(docType, options = {}) {
|
|
|
5986
5770
|
}
|
|
5987
5771
|
|
|
5988
5772
|
// src/components/shared/legal-document/legal-document-page.tsx
|
|
5989
|
-
import { jsx as
|
|
5773
|
+
import { jsx as jsx55, jsxs as jsxs44 } from "react/jsx-runtime";
|
|
5990
5774
|
function LegalDocumentPage({
|
|
5991
5775
|
docType,
|
|
5992
5776
|
title,
|
|
@@ -5998,7 +5782,7 @@ function LegalDocumentPage({
|
|
|
5998
5782
|
initialData = null,
|
|
5999
5783
|
initialLastUpdatedLabel = null,
|
|
6000
5784
|
apiEndpoint,
|
|
6001
|
-
MarkdownRenderer =
|
|
5785
|
+
MarkdownRenderer = RichMarkdownRenderer,
|
|
6002
5786
|
backButton
|
|
6003
5787
|
}) {
|
|
6004
5788
|
const router = useRouter();
|
|
@@ -6009,58 +5793,58 @@ function LegalDocumentPage({
|
|
|
6009
5793
|
};
|
|
6010
5794
|
const fallbackLastUpdatedLabel = data?.lastSynced != null ? formatLegalDate(data.lastSynced) : null;
|
|
6011
5795
|
const effectiveLastUpdatedLabel = initialLastUpdatedLabel ?? fallbackLastUpdatedLabel;
|
|
6012
|
-
const customTitle = /* @__PURE__ */
|
|
6013
|
-
/* @__PURE__ */
|
|
6014
|
-
/* @__PURE__ */
|
|
6015
|
-
/* @__PURE__ */
|
|
5796
|
+
const customTitle = /* @__PURE__ */ jsxs44("div", { className: "flex flex-col gap-4", children: [
|
|
5797
|
+
/* @__PURE__ */ jsxs44(PageHeading, { children: [
|
|
5798
|
+
/* @__PURE__ */ jsx55("span", { children: title }),
|
|
5799
|
+
/* @__PURE__ */ jsx55("span", { className: "text-ods-accent", children: "." })
|
|
6016
5800
|
] }),
|
|
6017
|
-
/* @__PURE__ */
|
|
5801
|
+
/* @__PURE__ */ jsxs44("p", { className: "font-['DM_Sans'] text-base md:text-lg text-ods-text-secondary max-w-2xl", children: [
|
|
6018
5802
|
effectiveLastUpdatedLabel ? `Last Updated: ${effectiveLastUpdatedLabel}` : fallbackDescription,
|
|
6019
|
-
data?.sourceFile && /* @__PURE__ */
|
|
5803
|
+
data?.sourceFile && /* @__PURE__ */ jsxs44("span", { className: "block text-sm mt-1 opacity-75", children: [
|
|
6020
5804
|
"Source: ",
|
|
6021
5805
|
data.sourceFile
|
|
6022
5806
|
] })
|
|
6023
5807
|
] })
|
|
6024
5808
|
] });
|
|
6025
|
-
return /* @__PURE__ */
|
|
6026
|
-
/* @__PURE__ */
|
|
6027
|
-
/* @__PURE__ */
|
|
5809
|
+
return /* @__PURE__ */ jsx55(PageShell, { children: /* @__PURE__ */ jsxs44(PageLayout, { backButton: backCfg, children: [
|
|
5810
|
+
/* @__PURE__ */ jsx55("div", { className: "flex flex-col gap-4", children: customTitle }),
|
|
5811
|
+
/* @__PURE__ */ jsx55("div", { className: "flex flex-col lg:flex-row gap-6 lg:gap-10 items-start flex-1", children: /* @__PURE__ */ jsx55("div", { className: "flex-1", children: /* @__PURE__ */ jsx55("div", { className: "w-full", children: /* @__PURE__ */ jsx55("article", { className: "space-y-2", children: isLoading ? (
|
|
6028
5812
|
// Loading skeleton matching Knowledge Hub pattern
|
|
6029
|
-
/* @__PURE__ */
|
|
6030
|
-
/* @__PURE__ */
|
|
6031
|
-
/* @__PURE__ */
|
|
6032
|
-
/* @__PURE__ */
|
|
6033
|
-
/* @__PURE__ */
|
|
6034
|
-
/* @__PURE__ */
|
|
5813
|
+
/* @__PURE__ */ jsxs44("div", { className: "space-y-6", children: [
|
|
5814
|
+
/* @__PURE__ */ jsx55("div", { className: "h-10 bg-ods-skeleton rounded-lg w-3/4 animate-pulse" }),
|
|
5815
|
+
/* @__PURE__ */ jsxs44("div", { className: "space-y-4", children: [
|
|
5816
|
+
/* @__PURE__ */ jsx55("div", { className: "h-4 bg-ods-skeleton rounded w-full animate-pulse" }),
|
|
5817
|
+
/* @__PURE__ */ jsx55("div", { className: "h-4 bg-ods-skeleton rounded w-full animate-pulse" }),
|
|
5818
|
+
/* @__PURE__ */ jsx55("div", { className: "h-4 bg-ods-skeleton rounded w-5/6 animate-pulse" })
|
|
6035
5819
|
] }),
|
|
6036
|
-
/* @__PURE__ */
|
|
6037
|
-
/* @__PURE__ */
|
|
6038
|
-
/* @__PURE__ */
|
|
6039
|
-
/* @__PURE__ */
|
|
5820
|
+
/* @__PURE__ */ jsx55("div", { className: "h-32 bg-ods-card border border-ods-border rounded-lg animate-pulse" }),
|
|
5821
|
+
/* @__PURE__ */ jsxs44("div", { className: "space-y-4", children: [
|
|
5822
|
+
/* @__PURE__ */ jsx55("div", { className: "h-4 bg-ods-skeleton rounded w-full animate-pulse" }),
|
|
5823
|
+
/* @__PURE__ */ jsx55("div", { className: "h-4 bg-ods-skeleton rounded w-4/5 animate-pulse" })
|
|
6040
5824
|
] })
|
|
6041
5825
|
] })
|
|
6042
|
-
) : error ? /* @__PURE__ */
|
|
6043
|
-
/* @__PURE__ */
|
|
6044
|
-
/* @__PURE__ */
|
|
6045
|
-
/* @__PURE__ */
|
|
5826
|
+
) : error ? /* @__PURE__ */ jsxs44("div", { className: "text-center space-y-4", children: [
|
|
5827
|
+
/* @__PURE__ */ jsxs44("div", { className: "bg-red-900/20 border border-red-700 rounded-lg p-6", children: [
|
|
5828
|
+
/* @__PURE__ */ jsx55("p", { className: "text-red-400 mb-2", children: errorTitle }),
|
|
5829
|
+
/* @__PURE__ */ jsx55("p", { className: "text-red-300 text-sm", children: error })
|
|
6046
5830
|
] }),
|
|
6047
|
-
/* @__PURE__ */
|
|
6048
|
-
/* @__PURE__ */
|
|
6049
|
-
/* @__PURE__ */
|
|
5831
|
+
/* @__PURE__ */ jsxs44("div", { className: "text-ods-text-secondary", children: [
|
|
5832
|
+
/* @__PURE__ */ jsx55("p", { children: errorContactPrompt }),
|
|
5833
|
+
/* @__PURE__ */ jsx55("a", { href: `mailto:${contactEmail}`, className: "text-ods-accent hover:underline", children: contactEmail })
|
|
6050
5834
|
] })
|
|
6051
|
-
] }) : data ? /* @__PURE__ */
|
|
5835
|
+
] }) : data ? /* @__PURE__ */ jsx55(
|
|
6052
5836
|
MarkdownRenderer,
|
|
6053
5837
|
{
|
|
6054
5838
|
content: data.content,
|
|
6055
5839
|
sectionIds: data.sections || [],
|
|
6056
5840
|
demoteMarkdownH1ToH2: true
|
|
6057
5841
|
}
|
|
6058
|
-
) : /* @__PURE__ */
|
|
6059
|
-
/* @__PURE__ */
|
|
6060
|
-
/* @__PURE__ */
|
|
5842
|
+
) : /* @__PURE__ */ jsxs44("div", { className: "text-center text-ods-text-secondary py-16", children: [
|
|
5843
|
+
/* @__PURE__ */ jsx55("p", { className: "text-xl", children: emptyStateMessage }),
|
|
5844
|
+
/* @__PURE__ */ jsxs44("p", { className: "mt-2", children: [
|
|
6061
5845
|
"Please contact",
|
|
6062
5846
|
" ",
|
|
6063
|
-
/* @__PURE__ */
|
|
5847
|
+
/* @__PURE__ */ jsx55("a", { href: `mailto:${contactEmail}`, className: "text-ods-accent hover:underline", children: contactEmail }),
|
|
6064
5848
|
" ",
|
|
6065
5849
|
"for more information."
|
|
6066
5850
|
] })
|
|
@@ -6070,7 +5854,7 @@ function LegalDocumentPage({
|
|
|
6070
5854
|
|
|
6071
5855
|
// src/components/authors/author-detail-view.tsx
|
|
6072
5856
|
init_cn();
|
|
6073
|
-
import { jsx as
|
|
5857
|
+
import { jsx as jsx56, jsxs as jsxs45 } from "react/jsx-runtime";
|
|
6074
5858
|
function AuthorDetailView({
|
|
6075
5859
|
author,
|
|
6076
5860
|
proxyImageUrl,
|
|
@@ -6085,9 +5869,9 @@ function AuthorDetailView({
|
|
|
6085
5869
|
}) ?? author.avatarUrl : null;
|
|
6086
5870
|
const subtitle = [author.jobTitle, author.company].filter(Boolean).join(" @ ");
|
|
6087
5871
|
const bioText = formatBioText(author.about);
|
|
6088
|
-
return /* @__PURE__ */
|
|
6089
|
-
/* @__PURE__ */
|
|
6090
|
-
/* @__PURE__ */
|
|
5872
|
+
return /* @__PURE__ */ jsxs45("div", { className: cn("flex flex-col gap-5 md:gap-6", className), children: [
|
|
5873
|
+
/* @__PURE__ */ jsxs45("div", { className: "flex gap-6 w-full items-start", children: [
|
|
5874
|
+
/* @__PURE__ */ jsx56("div", { className: "relative shrink-0 h-24 w-24", children: /* @__PURE__ */ jsx56("div", { className: "rounded-full overflow-hidden bg-ods-bg-secondary border border-ods-border w-full h-full relative", children: proxiedAvatar ? /* @__PURE__ */ jsx56(
|
|
6091
5875
|
next_image_default,
|
|
6092
5876
|
{
|
|
6093
5877
|
src: proxiedAvatar,
|
|
@@ -6096,12 +5880,12 @@ function AuthorDetailView({
|
|
|
6096
5880
|
className: "object-cover",
|
|
6097
5881
|
unoptimized: true
|
|
6098
5882
|
}
|
|
6099
|
-
) : /* @__PURE__ */
|
|
6100
|
-
/* @__PURE__ */
|
|
6101
|
-
/* @__PURE__ */
|
|
6102
|
-
subtitle && /* @__PURE__ */
|
|
5883
|
+
) : /* @__PURE__ */ jsx56("div", { className: "flex items-center justify-center h-full w-full text-3xl text-ods-text-secondary font-['Azeret_Mono']", children: author.fullName.charAt(0).toUpperCase() }) }) }),
|
|
5884
|
+
/* @__PURE__ */ jsxs45("div", { className: "min-w-0 flex flex-col justify-center gap-2", children: [
|
|
5885
|
+
/* @__PURE__ */ jsx56("p", { className: "text-h2 text-ods-text-primary leading-none truncate", children: author.fullName }),
|
|
5886
|
+
subtitle && /* @__PURE__ */ jsx56("p", { className: "font-body text-lg text-ods-text-secondary leading-none truncate", children: subtitle }),
|
|
6103
5887
|
author.socialLinks.length > 0 && // Ghost compact row (transparent 32px) — metadata, not CTAs.
|
|
6104
|
-
/* @__PURE__ */
|
|
5888
|
+
/* @__PURE__ */ jsx56(
|
|
6105
5889
|
SocialIconRow,
|
|
6106
5890
|
{
|
|
6107
5891
|
compact: true,
|
|
@@ -6114,8 +5898,8 @@ function AuthorDetailView({
|
|
|
6114
5898
|
)
|
|
6115
5899
|
] })
|
|
6116
5900
|
] }),
|
|
6117
|
-
bioText && /* @__PURE__ */
|
|
6118
|
-
author.knowsAbout.length > 0 && /* @__PURE__ */
|
|
5901
|
+
bioText && /* @__PURE__ */ jsx56("p", { className: "font-body text-base leading-relaxed text-ods-text-secondary", children: bioText }),
|
|
5902
|
+
author.knowsAbout.length > 0 && /* @__PURE__ */ jsx56("div", { className: "flex flex-wrap gap-2", children: author.knowsAbout.map((topic) => /* @__PURE__ */ jsx56(StatusBadge, { text: topic, variant: "button", colorScheme: "cyan", singleLine: true }, topic)) }),
|
|
6119
5903
|
children
|
|
6120
5904
|
] });
|
|
6121
5905
|
}
|
|
@@ -6402,6 +6186,7 @@ export {
|
|
|
6402
6186
|
DocSearchBar,
|
|
6403
6187
|
DocSearchResultRow,
|
|
6404
6188
|
DocViewer,
|
|
6189
|
+
DocsHubPage,
|
|
6405
6190
|
DocumentIcon,
|
|
6406
6191
|
DonutIcon,
|
|
6407
6192
|
DoubleChevronIcon,
|
|
@@ -6434,10 +6219,13 @@ export {
|
|
|
6434
6219
|
DropdownMenuTrigger,
|
|
6435
6220
|
DynamicSkeleton,
|
|
6436
6221
|
DynamicThemeProvider,
|
|
6222
|
+
EMBED_SIZES,
|
|
6437
6223
|
EMPTY_AUTHOR_PLACEHOLDER,
|
|
6438
6224
|
EditProfileIcon,
|
|
6439
6225
|
ElestioLogo,
|
|
6226
|
+
EmbedContainer,
|
|
6440
6227
|
EmbedIframe,
|
|
6228
|
+
EmbedSkeleton,
|
|
6441
6229
|
EmbeddableChat,
|
|
6442
6230
|
EmptyState,
|
|
6443
6231
|
EmptyVendorIcon,
|
|
@@ -6469,6 +6257,7 @@ export {
|
|
|
6469
6257
|
FigmaIcon,
|
|
6470
6258
|
FigmaPrototypeViewer,
|
|
6471
6259
|
FileCheckIcon,
|
|
6260
|
+
FileDownloadCard,
|
|
6472
6261
|
FileTextIcon,
|
|
6473
6262
|
FileUpload,
|
|
6474
6263
|
FilterCheckboxItem,
|
|
@@ -6553,6 +6342,9 @@ export {
|
|
|
6553
6342
|
Label,
|
|
6554
6343
|
LaptopIcon,
|
|
6555
6344
|
LegalDocumentPage,
|
|
6345
|
+
LinkPreviewContainer,
|
|
6346
|
+
LinkedInContainer,
|
|
6347
|
+
LinkedInEmbedClient,
|
|
6556
6348
|
LinkedInIcon,
|
|
6557
6349
|
LinuxIcon,
|
|
6558
6350
|
ListLoader,
|
|
@@ -6578,6 +6370,8 @@ export {
|
|
|
6578
6370
|
MarginCrisisIcon,
|
|
6579
6371
|
MarginReportSkeleton,
|
|
6580
6372
|
MarkdownEditor,
|
|
6373
|
+
MarkdownImage,
|
|
6374
|
+
MarkdownSkeleton,
|
|
6581
6375
|
MediaCarousel,
|
|
6582
6376
|
MediaGalleryManager,
|
|
6583
6377
|
MediaGalleryStrip,
|
|
@@ -6694,10 +6488,12 @@ export {
|
|
|
6694
6488
|
PageActions,
|
|
6695
6489
|
PageContainer,
|
|
6696
6490
|
PageError,
|
|
6491
|
+
PageHeader,
|
|
6697
6492
|
PageHeading,
|
|
6698
6493
|
PageLayout,
|
|
6699
6494
|
PageLoader,
|
|
6700
6495
|
PageShell,
|
|
6496
|
+
PageWithHeader,
|
|
6701
6497
|
Pagination,
|
|
6702
6498
|
PaginationContent,
|
|
6703
6499
|
PaginationEllipsis,
|
|
@@ -6756,6 +6552,8 @@ export {
|
|
|
6756
6552
|
RapidInnovationIcon,
|
|
6757
6553
|
RatioTabs,
|
|
6758
6554
|
ReclaimProfitsIcon,
|
|
6555
|
+
RedditContainer,
|
|
6556
|
+
RedditEmbedClient,
|
|
6759
6557
|
RedditIcon,
|
|
6760
6558
|
RelatedContentSection,
|
|
6761
6559
|
ReleaseChangelogSection,
|
|
@@ -6768,6 +6566,8 @@ export {
|
|
|
6768
6566
|
ResultBlock,
|
|
6769
6567
|
ResultsCount,
|
|
6770
6568
|
ResultsHeaderSkeleton,
|
|
6569
|
+
RichMarkdownRenderer,
|
|
6570
|
+
RichMarkdownRuntimeProvider,
|
|
6771
6571
|
RoadmapCard,
|
|
6772
6572
|
RoadmapCardSkeleton,
|
|
6773
6573
|
RoadmapGrid,
|
|
@@ -6777,6 +6577,7 @@ export {
|
|
|
6777
6577
|
SCROLL_ANCHOR,
|
|
6778
6578
|
SCROLL_ANCHOR_WIRE_KEY,
|
|
6779
6579
|
SECTION_HEADING_CLASS,
|
|
6580
|
+
SECTION_HERO_ICON_CLASS,
|
|
6780
6581
|
SEOEditorPreview,
|
|
6781
6582
|
SOCIcon,
|
|
6782
6583
|
SOURCE_ICON_NAMES,
|
|
@@ -6929,6 +6730,8 @@ export {
|
|
|
6929
6730
|
TransparentTrustedIcon,
|
|
6930
6731
|
TruncateText,
|
|
6931
6732
|
TrustpilotIcon,
|
|
6733
|
+
TwitterContainer,
|
|
6734
|
+
TwitterEmbedClient,
|
|
6932
6735
|
TwoColumnLayoutSkeleton,
|
|
6933
6736
|
UnarchiveChatModal,
|
|
6934
6737
|
UnifiedPagination,
|
|
@@ -6962,6 +6765,7 @@ export {
|
|
|
6962
6765
|
XCircleIcon,
|
|
6963
6766
|
XLogo,
|
|
6964
6767
|
YesNoDisplay,
|
|
6768
|
+
YouTubeContainer,
|
|
6965
6769
|
YouTubeIcon,
|
|
6966
6770
|
alignJustify,
|
|
6967
6771
|
applyProxyAuth,
|
|
@@ -7126,6 +6930,7 @@ export {
|
|
|
7126
6930
|
usePaginationLoading,
|
|
7127
6931
|
useProxiedImageUrl,
|
|
7128
6932
|
useRealtimeChunkProcessor,
|
|
6933
|
+
useRichMarkdownRuntime,
|
|
7129
6934
|
useRoadmapVoting,
|
|
7130
6935
|
useSSE,
|
|
7131
6936
|
useScrollSpy,
|