@flamingo-stack/openframe-frontend-core 0.0.348 → 0.0.349
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{chunk-3JIUN64F.cjs → chunk-26DV5GSP.cjs} +25 -25
- package/dist/{chunk-3JIUN64F.cjs.map → chunk-26DV5GSP.cjs.map} +1 -1
- package/dist/{chunk-YWEWRAMA.js → chunk-2CKA3CCD.js} +4 -4
- package/dist/{chunk-4UUFNLXQ.cjs → chunk-3DMOLXLC.cjs} +7 -7
- package/dist/{chunk-4UUFNLXQ.cjs.map → chunk-3DMOLXLC.cjs.map} +1 -1
- package/dist/{chunk-RDJNK5AV.js → chunk-63EJ7OVZ.js} +2 -2
- package/dist/{chunk-O5D3YWMW.cjs → chunk-6GQWIOOD.cjs} +936 -861
- package/dist/chunk-6GQWIOOD.cjs.map +1 -0
- package/dist/{chunk-ZS7YHQXO.js → chunk-CVFEPMED.js} +2 -2
- package/dist/{chunk-7CBXPBSB.js → chunk-CWNVR32U.js} +3536 -3461
- package/dist/chunk-CWNVR32U.js.map +1 -0
- package/dist/{chunk-RT6GEODM.js → chunk-ETCT2IBA.js} +2 -2
- package/dist/{chunk-6BW37KWJ.js → chunk-G2PUXREK.js} +4 -4
- package/dist/{chunk-4RMUTJTZ.js → chunk-GPLQR3AR.js} +2 -2
- package/dist/{chunk-WADLOXCY.js → chunk-H4AQ3DSB.js} +4 -4
- package/dist/{chunk-CH2F32CW.cjs → chunk-JENZN2RS.cjs} +56 -56
- package/dist/{chunk-CH2F32CW.cjs.map → chunk-JENZN2RS.cjs.map} +1 -1
- package/dist/{chunk-YFOLFU7F.cjs → chunk-NBZSABAO.cjs} +9 -9
- package/dist/{chunk-YFOLFU7F.cjs.map → chunk-NBZSABAO.cjs.map} +1 -1
- package/dist/{chunk-K5G3JKIU.cjs → chunk-NFUMSUOV.cjs} +5 -5
- package/dist/{chunk-K5G3JKIU.cjs.map → chunk-NFUMSUOV.cjs.map} +1 -1
- package/dist/{chunk-DU5LLHRI.js → chunk-O36624LY.js} +4 -4
- package/dist/{chunk-PQG3L4MK.cjs → chunk-O36BKXM2.cjs} +37 -37
- package/dist/{chunk-PQG3L4MK.cjs.map → chunk-O36BKXM2.cjs.map} +1 -1
- package/dist/{chunk-YTSX3CIK.cjs → chunk-PGBKYPM7.cjs} +12 -12
- package/dist/{chunk-YTSX3CIK.cjs.map → chunk-PGBKYPM7.cjs.map} +1 -1
- package/dist/{chunk-IROBEIGB.cjs → chunk-T4GH47TR.cjs} +31 -31
- package/dist/{chunk-IROBEIGB.cjs.map → chunk-T4GH47TR.cjs.map} +1 -1
- package/dist/{chunk-LBBRR56M.cjs → chunk-TAMJE3SX.cjs} +26 -26
- package/dist/{chunk-LBBRR56M.cjs.map → chunk-TAMJE3SX.cjs.map} +1 -1
- package/dist/{chunk-QZVKSUPR.cjs → chunk-UE4B7KNL.cjs} +62 -62
- package/dist/{chunk-QZVKSUPR.cjs.map → chunk-UE4B7KNL.cjs.map} +1 -1
- package/dist/{chunk-NUO4JXTS.js → chunk-UKEJUXQY.js} +2 -2
- package/dist/{chunk-XBJJIMIG.js → chunk-WY35YHCG.js} +2 -2
- package/dist/{chunk-YOVM7KGM.js → chunk-XKXJB4D4.js} +2 -2
- package/dist/{chunk-MZGJBQ72.cjs → chunk-Y2VXGKNP.cjs} +15 -15
- package/dist/{chunk-MZGJBQ72.cjs.map → chunk-Y2VXGKNP.cjs.map} +1 -1
- package/dist/components/announcement-bar.d.ts.map +1 -1
- package/dist/components/case-studies/index.cjs +8 -8
- package/dist/components/case-studies/index.js +2 -2
- package/dist/components/chat/embeddable-chat.d.ts.map +1 -1
- package/dist/components/chat/guide-welcome.d.ts +6 -0
- package/dist/components/chat/guide-welcome.d.ts.map +1 -1
- package/dist/components/chat/index.cjs +2 -2
- package/dist/components/chat/index.cjs.map +1 -1
- package/dist/components/chat/index.js +7 -7
- package/dist/components/chat/slash-command-suggestions.d.ts +3 -3
- package/dist/components/chat/utils/{onboarding-icons.d.ts → icon-library.d.ts} +25 -15
- package/dist/components/chat/utils/icon-library.d.ts.map +1 -0
- package/dist/components/chat/utils/index.d.ts +1 -1
- package/dist/components/chat/utils/index.d.ts.map +1 -1
- package/dist/components/contact/index.cjs +3 -3
- package/dist/components/contact/index.js +2 -2
- package/dist/components/docs/index.cjs +5 -5
- package/dist/components/docs/index.js +4 -4
- package/dist/components/embeds/index.cjs +3 -3
- package/dist/components/embeds/index.js +2 -2
- package/dist/components/faq/index.cjs +3 -3
- package/dist/components/faq/index.js +2 -2
- package/dist/components/features/index.cjs +2 -2
- package/dist/components/features/index.js +1 -1
- package/dist/components/help-center-pages/index.cjs +20 -20
- package/dist/components/help-center-pages/index.js +11 -11
- package/dist/components/icon-display.d.ts +27 -0
- package/dist/components/icon-display.d.ts.map +1 -0
- package/dist/components/index.cjs +201 -241
- package/dist/components/index.cjs.map +1 -1
- package/dist/components/index.d.ts +1 -0
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +588 -628
- package/dist/components/index.js.map +1 -1
- package/dist/components/navigation/index.cjs +2 -2
- package/dist/components/navigation/index.js +1 -1
- package/dist/components/onboarding-guides/index.cjs +5 -5
- package/dist/components/onboarding-guides/index.js +4 -4
- package/dist/components/related-content/index.cjs +3 -3
- package/dist/components/related-content/index.js +2 -2
- package/dist/components/tickets/index.cjs +5 -5
- package/dist/components/tickets/index.js +4 -4
- package/dist/components/ui/index.cjs +2 -2
- package/dist/components/ui/index.cjs.map +1 -1
- package/dist/components/ui/index.js +7 -7
- package/dist/index.cjs +2 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +7 -7
- package/package.json +1 -1
- package/src/components/announcement-bar.tsx +19 -40
- package/src/components/chat/embeddable-chat.tsx +4 -5
- package/src/components/chat/guide-welcome.tsx +15 -0
- package/src/components/chat/slash-command-suggestions.tsx +5 -5
- package/src/components/chat/utils/__tests__/icon-resolver.test.ts +51 -0
- package/src/components/chat/utils/{onboarding-icons.tsx → icon-library.tsx} +68 -22
- package/src/components/chat/utils/index.ts +10 -10
- package/src/components/icon-display.tsx +67 -0
- package/src/components/index.ts +2 -0
- package/src/stories/MingoOnboardingCard.stories.tsx +3 -3
- package/src/stories/SlashCommandSuggestions.stories.tsx +1 -1
- package/dist/chunk-7CBXPBSB.js.map +0 -1
- package/dist/chunk-O5D3YWMW.cjs.map +0 -1
- package/dist/components/chat/utils/onboarding-icons.d.ts.map +0 -1
- /package/dist/{chunk-YWEWRAMA.js.map → chunk-2CKA3CCD.js.map} +0 -0
- /package/dist/{chunk-RDJNK5AV.js.map → chunk-63EJ7OVZ.js.map} +0 -0
- /package/dist/{chunk-ZS7YHQXO.js.map → chunk-CVFEPMED.js.map} +0 -0
- /package/dist/{chunk-RT6GEODM.js.map → chunk-ETCT2IBA.js.map} +0 -0
- /package/dist/{chunk-6BW37KWJ.js.map → chunk-G2PUXREK.js.map} +0 -0
- /package/dist/{chunk-4RMUTJTZ.js.map → chunk-GPLQR3AR.js.map} +0 -0
- /package/dist/{chunk-WADLOXCY.js.map → chunk-H4AQ3DSB.js.map} +0 -0
- /package/dist/{chunk-DU5LLHRI.js.map → chunk-O36624LY.js.map} +0 -0
- /package/dist/{chunk-NUO4JXTS.js.map → chunk-UKEJUXQY.js.map} +0 -0
- /package/dist/{chunk-XBJJIMIG.js.map → chunk-WY35YHCG.js.map} +0 -0
- /package/dist/{chunk-YOVM7KGM.js.map → chunk-XKXJB4D4.js.map} +0 -0
- /package/src/components/chat/utils/{.icon-registry.md → .icon-library.md} +0 -0
package/dist/components/index.js
CHANGED
|
@@ -4,7 +4,7 @@ import "../chunk-GZ4C3XW6.js";
|
|
|
4
4
|
import {
|
|
5
5
|
GROUP_PAGE_SIZE,
|
|
6
6
|
RelatedContentSection
|
|
7
|
-
} from "../chunk-
|
|
7
|
+
} from "../chunk-XKXJB4D4.js";
|
|
8
8
|
import {
|
|
9
9
|
DeliveryLists,
|
|
10
10
|
DeliveryTable,
|
|
@@ -21,7 +21,7 @@ import {
|
|
|
21
21
|
useLegalDocs,
|
|
22
22
|
usePaginationLoading,
|
|
23
23
|
useRoadmapVoting
|
|
24
|
-
} from "../chunk-
|
|
24
|
+
} from "../chunk-G2PUXREK.js";
|
|
25
25
|
import {
|
|
26
26
|
AnnouncementBarSkeleton,
|
|
27
27
|
ArticleLayoutSkeleton,
|
|
@@ -54,17 +54,17 @@ import {
|
|
|
54
54
|
useDocNavigation,
|
|
55
55
|
useDocumentTree,
|
|
56
56
|
useScrollSpy
|
|
57
|
-
} from "../chunk-
|
|
57
|
+
} from "../chunk-2CKA3CCD.js";
|
|
58
58
|
import {
|
|
59
59
|
FileDownloadCard,
|
|
60
60
|
GoogleSheetsViewer,
|
|
61
61
|
PdfViewer
|
|
62
|
-
} from "../chunk-
|
|
62
|
+
} from "../chunk-UKEJUXQY.js";
|
|
63
63
|
import {
|
|
64
64
|
FaqAccordion,
|
|
65
65
|
FaqDocumentPage,
|
|
66
66
|
FaqSection
|
|
67
|
-
} from "../chunk-
|
|
67
|
+
} from "../chunk-WY35YHCG.js";
|
|
68
68
|
import {
|
|
69
69
|
DeliveryRow,
|
|
70
70
|
DevCardRowContent,
|
|
@@ -75,11 +75,11 @@ import {
|
|
|
75
75
|
EmptyState,
|
|
76
76
|
UnifiedPagination,
|
|
77
77
|
init_unified_pagination
|
|
78
|
-
} from "../chunk-
|
|
78
|
+
} from "../chunk-63EJ7OVZ.js";
|
|
79
79
|
import {
|
|
80
80
|
ArticleAuthorByline,
|
|
81
81
|
DetailPageSkeleton
|
|
82
|
-
} from "../chunk-
|
|
82
|
+
} from "../chunk-GPLQR3AR.js";
|
|
83
83
|
import {
|
|
84
84
|
DocSearchBar,
|
|
85
85
|
DocSearchResultRow,
|
|
@@ -87,7 +87,7 @@ import {
|
|
|
87
87
|
mapDocSearchResults,
|
|
88
88
|
resolveSearchResultAction,
|
|
89
89
|
useDocSearch
|
|
90
|
-
} from "../chunk-
|
|
90
|
+
} from "../chunk-ETCT2IBA.js";
|
|
91
91
|
import "../chunk-KYCZ4ISB.js";
|
|
92
92
|
import "../chunk-4XLJWX2N.js";
|
|
93
93
|
import {
|
|
@@ -110,6 +110,7 @@ import {
|
|
|
110
110
|
ActionsMenu,
|
|
111
111
|
ActionsMenuDropdown,
|
|
112
112
|
AdminContentCard,
|
|
113
|
+
AgentMark,
|
|
113
114
|
Alert,
|
|
114
115
|
AlertDescription,
|
|
115
116
|
AlertDialog,
|
|
@@ -325,6 +326,7 @@ import {
|
|
|
325
326
|
EmbedIframe,
|
|
326
327
|
EmbeddableChat,
|
|
327
328
|
EntityAuthorCard,
|
|
329
|
+
EntityIcon,
|
|
328
330
|
EntityImage,
|
|
329
331
|
EntityMetadataAuthorCell,
|
|
330
332
|
EntityMetadataValueCell,
|
|
@@ -335,7 +337,6 @@ import {
|
|
|
335
337
|
ErrorMessageDisplay,
|
|
336
338
|
ErrorState,
|
|
337
339
|
ExpandChevron,
|
|
338
|
-
FAE_AVATAR_DATA_URI,
|
|
339
340
|
FeatureCardGrid,
|
|
340
341
|
FeatureList,
|
|
341
342
|
FigmaEmbed,
|
|
@@ -379,6 +380,8 @@ import {
|
|
|
379
380
|
HoverDropdown,
|
|
380
381
|
HubspotTicketCard,
|
|
381
382
|
HubspotTicketCardSkeleton,
|
|
383
|
+
ICON_ALIASES,
|
|
384
|
+
ICON_OPTIONS,
|
|
382
385
|
ICON_REGISTRY,
|
|
383
386
|
IconsBlock,
|
|
384
387
|
ImageGalleryModal,
|
|
@@ -477,8 +480,6 @@ import {
|
|
|
477
480
|
NotificationsProvider,
|
|
478
481
|
OGLinkErrorBoundary,
|
|
479
482
|
OGLinkPreview,
|
|
480
|
-
ONBOARDING_ICONS,
|
|
481
|
-
ONBOARDING_ICON_OPTIONS,
|
|
482
483
|
OPENFRAME_DOCTOR_COMMANDS,
|
|
483
484
|
OPENFRAME_PATHS,
|
|
484
485
|
OSTypeBadge,
|
|
@@ -490,7 +491,6 @@ import {
|
|
|
490
491
|
OnboardingGuideCardSkeleton,
|
|
491
492
|
OnboardingStepCard,
|
|
492
493
|
OnboardingWalkthrough,
|
|
493
|
-
OpenmspLogo as OpenmspLogo2,
|
|
494
494
|
OrganizationCard,
|
|
495
495
|
PAGE_HEADING_CLASS,
|
|
496
496
|
PageActions,
|
|
@@ -771,7 +771,7 @@ import {
|
|
|
771
771
|
renderChatInlineEntityCard,
|
|
772
772
|
resolutionToStatus,
|
|
773
773
|
resolveExternalNavigation,
|
|
774
|
-
|
|
774
|
+
resolveIcon,
|
|
775
775
|
resolveSourceIcon,
|
|
776
776
|
resolveSourceRowCTA,
|
|
777
777
|
resolveStatusTagProps,
|
|
@@ -826,7 +826,7 @@ import {
|
|
|
826
826
|
useVideoOriginPreconnect,
|
|
827
827
|
useVideoWarmup,
|
|
828
828
|
usesCanonicalStatusStyle
|
|
829
|
-
} from "../chunk-
|
|
829
|
+
} from "../chunk-CWNVR32U.js";
|
|
830
830
|
import {
|
|
831
831
|
CommandApprovalToast,
|
|
832
832
|
ToastCard,
|
|
@@ -1058,98 +1058,10 @@ import "../chunk-PHWQLKVE.js";
|
|
|
1058
1058
|
import "../chunk-GGWZFCYS.js";
|
|
1059
1059
|
|
|
1060
1060
|
// src/components/announcement-bar.tsx
|
|
1061
|
-
import { useState, useEffect } from "react";
|
|
1062
1061
|
init_button();
|
|
1062
|
+
import { useState, useEffect } from "react";
|
|
1063
1063
|
import { X } from "lucide-react";
|
|
1064
1064
|
|
|
1065
|
-
// src/components/icon-utils.tsx
|
|
1066
|
-
import {
|
|
1067
|
-
Megaphone,
|
|
1068
|
-
Bell,
|
|
1069
|
-
Info,
|
|
1070
|
-
Star,
|
|
1071
|
-
Rocket,
|
|
1072
|
-
Package
|
|
1073
|
-
} from "lucide-react";
|
|
1074
|
-
|
|
1075
|
-
// src/components/openframe-logo.tsx
|
|
1076
|
-
import { jsx, jsxs } from "react/jsx-runtime";
|
|
1077
|
-
var OpenFrameLogo2 = ({ className, lowerPathColor, upperPathColor, ...props }) => {
|
|
1078
|
-
return /* @__PURE__ */ jsx(
|
|
1079
|
-
"svg",
|
|
1080
|
-
{
|
|
1081
|
-
...props,
|
|
1082
|
-
className,
|
|
1083
|
-
width: "32",
|
|
1084
|
-
height: "32",
|
|
1085
|
-
viewBox: "0 0 32 32",
|
|
1086
|
-
fill: "none",
|
|
1087
|
-
xmlns: "http://www.w3.org/2000/svg",
|
|
1088
|
-
style: {
|
|
1089
|
-
"--fill-0": "currentColor",
|
|
1090
|
-
...props.style
|
|
1091
|
-
},
|
|
1092
|
-
children: /* @__PURE__ */ jsxs("g", { children: [
|
|
1093
|
-
/* @__PURE__ */ jsxs("g", { children: [
|
|
1094
|
-
/* @__PURE__ */ jsx(
|
|
1095
|
-
"path",
|
|
1096
|
-
{
|
|
1097
|
-
d: "M21.3333 16.5333C21.3333 16.2388 21.5721 16 21.8667 16H26.1333C26.4279 16 26.6667 16.2388 26.6667 16.5333V20.8C26.6667 21.0946 26.4279 21.3333 26.1333 21.3333H21.8667C21.5721 21.3333 21.3333 21.0946 21.3333 20.8V16.5333Z",
|
|
1098
|
-
fill: lowerPathColor ?? "#ffffff"
|
|
1099
|
-
}
|
|
1100
|
-
),
|
|
1101
|
-
/* @__PURE__ */ jsx(
|
|
1102
|
-
"path",
|
|
1103
|
-
{
|
|
1104
|
-
d: "M16 21.8667C16 21.5721 16.2388 21.3333 16.5333 21.3333H20.8C21.0946 21.3333 21.3333 21.5721 21.3333 21.8667V26.1333C21.3333 26.4279 21.0946 26.6667 20.8 26.6667H16.5333C16.2388 26.6667 16 26.4279 16 26.1333V21.8667Z",
|
|
1105
|
-
fill: lowerPathColor ?? "#ffffff"
|
|
1106
|
-
}
|
|
1107
|
-
),
|
|
1108
|
-
/* @__PURE__ */ jsx(
|
|
1109
|
-
"path",
|
|
1110
|
-
{
|
|
1111
|
-
d: "M26.6667 21.8667C26.6667 21.5721 26.9054 21.3333 27.2 21.3333H31.4667C31.7612 21.3333 32 21.5721 32 21.8667V26.1333C32 26.4279 31.7612 26.6667 31.4667 26.6667H27.2C26.9054 26.6667 26.6667 26.4279 26.6667 26.1333V21.8667Z",
|
|
1112
|
-
fill: lowerPathColor ?? "#ffffff"
|
|
1113
|
-
}
|
|
1114
|
-
),
|
|
1115
|
-
/* @__PURE__ */ jsx(
|
|
1116
|
-
"path",
|
|
1117
|
-
{
|
|
1118
|
-
d: "M21.3333 27.2C21.3333 26.9054 21.5721 26.6667 21.8667 26.6667H26.1333C26.4279 26.6667 26.6667 26.9054 26.6667 27.2V31.4667C26.6667 31.7612 26.4279 32 26.1333 32H21.8667C21.5721 32 21.3333 31.7612 21.3333 31.4667V27.2Z",
|
|
1119
|
-
fill: lowerPathColor ?? "#ffffff"
|
|
1120
|
-
}
|
|
1121
|
-
)
|
|
1122
|
-
] }),
|
|
1123
|
-
/* @__PURE__ */ jsx(
|
|
1124
|
-
"path",
|
|
1125
|
-
{
|
|
1126
|
-
d: "M30.9333 0H1.06667C0.477563 0 0 0.477564 0 1.06667V30.9333C0 31.5224 0.477563 32 1.06667 32H14.9333C15.5224 32 16 31.5224 16 30.9333V27.7333C16 27.1442 15.5224 26.6667 14.9333 26.6667H5.86667C5.57211 26.6667 5.33333 26.4279 5.33333 26.1333V5.86667C5.33333 5.57211 5.57211 5.33333 5.86667 5.33333H26.1333C26.4279 5.33333 26.6667 5.57212 26.6667 5.86667V14.9333C26.6667 15.5224 27.1442 16 27.7333 16H30.9333C31.5224 16 32 15.5224 32 14.9333V1.06667C32 0.477563 31.5224 0 30.9333 0Z",
|
|
1127
|
-
fill: upperPathColor ?? "#1A1A1A"
|
|
1128
|
-
}
|
|
1129
|
-
)
|
|
1130
|
-
] })
|
|
1131
|
-
}
|
|
1132
|
-
);
|
|
1133
|
-
};
|
|
1134
|
-
|
|
1135
|
-
// src/components/icon-utils.tsx
|
|
1136
|
-
import { jsx as jsx2 } from "react/jsx-runtime";
|
|
1137
|
-
function renderSvgIcon2(name, props = {}) {
|
|
1138
|
-
const map = {
|
|
1139
|
-
megaphone: (p) => /* @__PURE__ */ jsx2(Megaphone, { ...p }),
|
|
1140
|
-
bell: (p) => /* @__PURE__ */ jsx2(Bell, { ...p }),
|
|
1141
|
-
info: (p) => /* @__PURE__ */ jsx2(Info, { ...p }),
|
|
1142
|
-
star: (p) => /* @__PURE__ */ jsx2(Star, { ...p }),
|
|
1143
|
-
rocket: (p) => /* @__PURE__ */ jsx2(Rocket, { ...p }),
|
|
1144
|
-
package: (p) => /* @__PURE__ */ jsx2(Package, { ...p }),
|
|
1145
|
-
"openframe-logo": (p) => /* @__PURE__ */ jsx2(OpenFrameLogo2, { ...p }),
|
|
1146
|
-
"openmsp-logo": (p) => /* @__PURE__ */ jsx2(OpenmspLogo2, { ...p }),
|
|
1147
|
-
"flamingo": (p) => /* @__PURE__ */ jsx2(FlamingoLogo2, { ...p })
|
|
1148
|
-
};
|
|
1149
|
-
const renderer = map[name] || map["megaphone"];
|
|
1150
|
-
return renderer(props);
|
|
1151
|
-
}
|
|
1152
|
-
|
|
1153
1065
|
// src/utils/announcement-storage.ts
|
|
1154
1066
|
function getStoredAnnouncement(key) {
|
|
1155
1067
|
if (typeof window !== "undefined") {
|
|
@@ -1179,11 +1091,7 @@ function clearStoredAnnouncement(key = "announcement") {
|
|
|
1179
1091
|
}
|
|
1180
1092
|
|
|
1181
1093
|
// src/components/announcement-bar.tsx
|
|
1182
|
-
import { jsx
|
|
1183
|
-
var getSvgIcon = (name, size = "main", extra = {}) => {
|
|
1184
|
-
const cls = size === "cta" ? "relative shrink-0 w-3 h-3 md:w-4 md:h-4" : "relative shrink-0 w-6 h-6 md:w-8 md:h-8";
|
|
1185
|
-
return renderSvgIcon2(name, { className: cls, ...extra });
|
|
1186
|
-
};
|
|
1094
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
1187
1095
|
function AnnouncementBar() {
|
|
1188
1096
|
const [announcement, setAnnouncement] = useState(null);
|
|
1189
1097
|
const [isVisible, setIsVisible] = useState(false);
|
|
@@ -1244,34 +1152,28 @@ function AnnouncementBar() {
|
|
|
1244
1152
|
};
|
|
1245
1153
|
const renderIcon = () => {
|
|
1246
1154
|
if (!announcement) return null;
|
|
1247
|
-
|
|
1248
|
-
|
|
1249
|
-
|
|
1250
|
-
{
|
|
1251
|
-
|
|
1252
|
-
|
|
1253
|
-
|
|
1254
|
-
|
|
1255
|
-
|
|
1256
|
-
|
|
1257
|
-
|
|
1258
|
-
);
|
|
1259
|
-
}
|
|
1260
|
-
return getSvgIcon(
|
|
1261
|
-
announcement.icon_name || "openframe-logo",
|
|
1262
|
-
"main",
|
|
1263
|
-
announcement.icon_props ?? {}
|
|
1155
|
+
return /* @__PURE__ */ jsx(
|
|
1156
|
+
EntityIcon,
|
|
1157
|
+
{
|
|
1158
|
+
icon: {
|
|
1159
|
+
name: announcement.icon_name || "openframe-logo",
|
|
1160
|
+
url: announcement.icon_url,
|
|
1161
|
+
props: announcement.icon_props
|
|
1162
|
+
},
|
|
1163
|
+
size: 32,
|
|
1164
|
+
className: "relative shrink-0 w-6 h-6 md:w-8 md:h-8"
|
|
1165
|
+
}
|
|
1264
1166
|
);
|
|
1265
1167
|
};
|
|
1266
1168
|
if (!announcement || !isVisible) return null;
|
|
1267
|
-
return /* @__PURE__ */
|
|
1169
|
+
return /* @__PURE__ */ jsx(
|
|
1268
1170
|
"div",
|
|
1269
1171
|
{
|
|
1270
1172
|
className: "relative w-full z-50",
|
|
1271
1173
|
style: { backgroundColor: announcement.background_color },
|
|
1272
1174
|
"data-announcement-bar": true,
|
|
1273
|
-
children: /* @__PURE__ */
|
|
1274
|
-
/* @__PURE__ */
|
|
1175
|
+
children: /* @__PURE__ */ jsxs("div", { className: "flex items-center w-full max-w-full", children: [
|
|
1176
|
+
/* @__PURE__ */ jsxs(
|
|
1275
1177
|
"div",
|
|
1276
1178
|
{
|
|
1277
1179
|
className: `flex flex-row gap-2 md:gap-4 items-center pl-4 md:pl-6 py-1.5 md:py-2 flex-1 min-w-0 ${announcement.cta_enabled && announcement.cta_url ? "md:cursor-default cursor-pointer" : ""}`,
|
|
@@ -1283,20 +1185,23 @@ function AnnouncementBar() {
|
|
|
1283
1185
|
},
|
|
1284
1186
|
children: [
|
|
1285
1187
|
renderIcon(),
|
|
1286
|
-
/* @__PURE__ */
|
|
1287
|
-
/* @__PURE__ */
|
|
1288
|
-
/* @__PURE__ */
|
|
1188
|
+
/* @__PURE__ */ jsxs("div", { className: "flex-1 min-w-0 max-w-full", children: [
|
|
1189
|
+
/* @__PURE__ */ jsx("p", { className: "font-body font-bold text-[14px] md:text-[18px] leading-tight tracking-tight mb-0 text-[#1A1A1A] truncate", children: announcement.title }),
|
|
1190
|
+
/* @__PURE__ */ jsx("p", { className: "font-body text-[12px] md:text-[18px] leading-tight hidden md:block text-[#1A1A1A] truncate", children: announcement.description })
|
|
1289
1191
|
] }),
|
|
1290
|
-
announcement.cta_enabled && announcement.cta_text && announcement.cta_url && /* @__PURE__ */
|
|
1192
|
+
announcement.cta_enabled && announcement.cta_text && announcement.cta_url && /* @__PURE__ */ jsx("div", { className: "hidden md:flex flex-shrink-0 ml-1 md:ml-2", children: /* @__PURE__ */ jsx(
|
|
1291
1193
|
Button,
|
|
1292
1194
|
{
|
|
1293
1195
|
onClick: handleCtaClick,
|
|
1294
1196
|
variant: "outline",
|
|
1295
1197
|
size: "small-legacy",
|
|
1296
|
-
leftIcon: announcement.cta_show_icon && announcement.cta_icon_name ?
|
|
1297
|
-
|
|
1298
|
-
|
|
1299
|
-
|
|
1198
|
+
leftIcon: announcement.cta_show_icon && announcement.cta_icon_name ? /* @__PURE__ */ jsx(
|
|
1199
|
+
EntityIcon,
|
|
1200
|
+
{
|
|
1201
|
+
icon: { name: announcement.cta_icon_name, props: announcement.cta_icon_props },
|
|
1202
|
+
size: 16,
|
|
1203
|
+
className: "w-3 h-3 md:w-4 md:h-4"
|
|
1204
|
+
}
|
|
1300
1205
|
) : void 0,
|
|
1301
1206
|
className: "transition-opacity hover:opacity-90 text-xs md:text-sm whitespace-nowrap",
|
|
1302
1207
|
style: {
|
|
@@ -1310,7 +1215,7 @@ function AnnouncementBar() {
|
|
|
1310
1215
|
]
|
|
1311
1216
|
}
|
|
1312
1217
|
),
|
|
1313
|
-
/* @__PURE__ */
|
|
1218
|
+
/* @__PURE__ */ jsx(
|
|
1314
1219
|
"button",
|
|
1315
1220
|
{
|
|
1316
1221
|
onClick: (e) => {
|
|
@@ -1320,7 +1225,7 @@ function AnnouncementBar() {
|
|
|
1320
1225
|
className: "flex-shrink-0 w-8 h-8 md:w-10 md:h-10 flex items-center justify-center hover:bg-[#1A1A1A]/10 focus:outline-none focus:ring-2 focus:ring-[#1A1A1A] mr-2 md:mr-4",
|
|
1321
1226
|
"aria-label": "Dismiss announcement",
|
|
1322
1227
|
type: "button",
|
|
1323
|
-
children: /* @__PURE__ */
|
|
1228
|
+
children: /* @__PURE__ */ jsx(X, { className: "w-4 h-4 text-[#1A1A1A]", strokeWidth: 2 })
|
|
1324
1229
|
}
|
|
1325
1230
|
)
|
|
1326
1231
|
] })
|
|
@@ -1372,7 +1277,7 @@ function getVendorLogo(vendor) {
|
|
|
1372
1277
|
}
|
|
1373
1278
|
|
|
1374
1279
|
// src/components/vendor-icon.tsx
|
|
1375
|
-
import { jsx as
|
|
1280
|
+
import { jsx as jsx2 } from "react/jsx-runtime";
|
|
1376
1281
|
var sizeClasses = {
|
|
1377
1282
|
xs: "w-6 h-6",
|
|
1378
1283
|
sm: "w-8 h-8",
|
|
@@ -1410,7 +1315,7 @@ function VendorIcon({
|
|
|
1410
1315
|
!showBackground && "overflow-hidden",
|
|
1411
1316
|
className
|
|
1412
1317
|
);
|
|
1413
|
-
return /* @__PURE__ */
|
|
1318
|
+
return /* @__PURE__ */ jsx2("div", { className: containerClasses, children: logoUrl ? /* @__PURE__ */ jsx2(
|
|
1414
1319
|
next_image_default,
|
|
1415
1320
|
{
|
|
1416
1321
|
src: getProxiedImageUrl2(logoUrl) || logoUrl,
|
|
@@ -1422,14 +1327,14 @@ function VendorIcon({
|
|
|
1422
1327
|
showBackground ? "p-1" : "w-full h-full"
|
|
1423
1328
|
)
|
|
1424
1329
|
}
|
|
1425
|
-
) : /* @__PURE__ */
|
|
1330
|
+
) : /* @__PURE__ */ jsx2("div", { className: cn(
|
|
1426
1331
|
"flex items-center justify-center text-xs font-medium uppercase",
|
|
1427
1332
|
backgroundStyle === "white" ? "text-[#333333]" : "text-ods-text-secondary"
|
|
1428
1333
|
), children: vendor.title?.substring(0, 2) || "??" }) });
|
|
1429
1334
|
}
|
|
1430
1335
|
|
|
1431
1336
|
// src/components/categories-cart.tsx
|
|
1432
|
-
import { jsx as
|
|
1337
|
+
import { jsx as jsx3, jsxs as jsxs2 } from "react/jsx-runtime";
|
|
1433
1338
|
function CategoriesCart({
|
|
1434
1339
|
category,
|
|
1435
1340
|
vendors = [],
|
|
@@ -1438,23 +1343,23 @@ function CategoriesCart({
|
|
|
1438
1343
|
isLoading = false,
|
|
1439
1344
|
className = ""
|
|
1440
1345
|
}) {
|
|
1441
|
-
return /* @__PURE__ */
|
|
1346
|
+
return /* @__PURE__ */ jsx3(
|
|
1442
1347
|
next_link_default,
|
|
1443
1348
|
{
|
|
1444
1349
|
href: `/vendors?category=${category.slug}`,
|
|
1445
1350
|
className: `block bg-ods-card border border-ods-border rounded-lg p-3 md:p-4 pb-4 md:pb-6 hover:border-[#FFC008] transition-colors group relative ${className}`,
|
|
1446
|
-
children: /* @__PURE__ */
|
|
1447
|
-
/* @__PURE__ */
|
|
1448
|
-
/* @__PURE__ */
|
|
1351
|
+
children: /* @__PURE__ */ jsxs2("div", { className: "flex flex-col gap-4 md:gap-6", children: [
|
|
1352
|
+
/* @__PURE__ */ jsxs2("div", { className: "relative w-full h-8 md:h-10 overflow-hidden", children: [
|
|
1353
|
+
/* @__PURE__ */ jsx3("div", { className: "flex gap-2 md:gap-3 w-full", children: isLoading ? (
|
|
1449
1354
|
// Skeleton loading for vendor icons
|
|
1450
|
-
Array.from({ length: 20 }).map((_, index) => /* @__PURE__ */
|
|
1355
|
+
Array.from({ length: 20 }).map((_, index) => /* @__PURE__ */ jsx3(
|
|
1451
1356
|
"div",
|
|
1452
1357
|
{
|
|
1453
1358
|
className: "w-8 h-8 md:w-10 md:h-10 bg-ods-border rounded animate-pulse flex-shrink-0"
|
|
1454
1359
|
},
|
|
1455
1360
|
index
|
|
1456
1361
|
))
|
|
1457
|
-
) : vendors && vendors.length > 0 ? vendors.map((vendor) => /* @__PURE__ */
|
|
1362
|
+
) : vendors && vendors.length > 0 ? vendors.map((vendor) => /* @__PURE__ */ jsx3(
|
|
1458
1363
|
VendorIcon,
|
|
1459
1364
|
{
|
|
1460
1365
|
vendor,
|
|
@@ -1464,36 +1369,36 @@ function CategoriesCart({
|
|
|
1464
1369
|
vendor.id
|
|
1465
1370
|
)) : (
|
|
1466
1371
|
// No vendors found - show placeholder icons
|
|
1467
|
-
Array.from({ length: 6 }).map((_, index) => /* @__PURE__ */
|
|
1372
|
+
Array.from({ length: 6 }).map((_, index) => /* @__PURE__ */ jsx3(
|
|
1468
1373
|
"div",
|
|
1469
1374
|
{
|
|
1470
1375
|
className: "w-8 h-8 md:w-10 md:h-10 bg-ods-border rounded flex items-center justify-center opacity-30 flex-shrink-0",
|
|
1471
|
-
children: /* @__PURE__ */
|
|
1376
|
+
children: /* @__PURE__ */ jsx3("div", { className: "w-4 h-4 md:w-6 md:h-6 bg-[#888888] rounded-sm" })
|
|
1472
1377
|
},
|
|
1473
1378
|
index
|
|
1474
1379
|
))
|
|
1475
1380
|
) }),
|
|
1476
|
-
/* @__PURE__ */
|
|
1477
|
-
/* @__PURE__ */
|
|
1381
|
+
/* @__PURE__ */ jsx3("div", { className: "absolute inset-y-0 left-0 w-4 md:w-6 bg-gradient-to-r from-[#212121] to-transparent pointer-events-none" }),
|
|
1382
|
+
/* @__PURE__ */ jsx3("div", { className: "absolute inset-y-0 right-0 w-4 md:w-6 bg-gradient-to-l from-[#212121] to-transparent pointer-events-none" })
|
|
1478
1383
|
] }),
|
|
1479
|
-
/* @__PURE__ */
|
|
1480
|
-
/* @__PURE__ */
|
|
1481
|
-
/* @__PURE__ */
|
|
1482
|
-
/* @__PURE__ */
|
|
1384
|
+
/* @__PURE__ */ jsxs2("div", { className: "flex flex-col gap-2", children: [
|
|
1385
|
+
/* @__PURE__ */ jsxs2("div", { className: "flex flex-col gap-1", children: [
|
|
1386
|
+
/* @__PURE__ */ jsx3("h3", { className: "text-xl md:text-2xl font-bold text-ods-text-primary group-hover:text-ods-accent transition-colors leading-[1.33] font-body", children: category.name }),
|
|
1387
|
+
/* @__PURE__ */ jsxs2("p", { className: "text-sm md:text-base font-medium text-ods-text-secondary leading-[1.43] font-body", children: [
|
|
1483
1388
|
subcategoryCount || 0,
|
|
1484
1389
|
" Subcategories \u2022 ",
|
|
1485
1390
|
vendorCount || 0,
|
|
1486
1391
|
" Products"
|
|
1487
1392
|
] })
|
|
1488
1393
|
] }),
|
|
1489
|
-
/* @__PURE__ */
|
|
1490
|
-
/* @__PURE__ */
|
|
1491
|
-
/* @__PURE__ */
|
|
1394
|
+
/* @__PURE__ */ jsxs2("div", { className: "flex items-start md:items-end justify-between gap-4 md:gap-6", children: [
|
|
1395
|
+
/* @__PURE__ */ jsx3("p", { className: "font-['DM_Sans'] font-medium text-lg leading-[1.33] text-ods-text-primary flex-1", children: category.description }),
|
|
1396
|
+
/* @__PURE__ */ jsx3(
|
|
1492
1397
|
"div",
|
|
1493
1398
|
{
|
|
1494
1399
|
className: "flex items-center justify-center w-10 h-10 md:w-12 md:h-12 bg-transparent border border-ods-border rounded-md group-hover:bg-[#FFC008] transition-colors flex-shrink-0",
|
|
1495
1400
|
"aria-label": `View ${category.name} category`,
|
|
1496
|
-
children: /* @__PURE__ */
|
|
1401
|
+
children: /* @__PURE__ */ jsx3(ChevronRight, { className: "w-5 h-5 md:w-6 md:h-6 text-ods-text-primary group-hover:text-black transition-colors" })
|
|
1497
1402
|
}
|
|
1498
1403
|
)
|
|
1499
1404
|
] })
|
|
@@ -1504,27 +1409,27 @@ function CategoriesCart({
|
|
|
1504
1409
|
}
|
|
1505
1410
|
|
|
1506
1411
|
// src/components/category-card.tsx
|
|
1507
|
-
import { jsx as
|
|
1412
|
+
import { jsx as jsx4, jsxs as jsxs3 } from "react/jsx-runtime";
|
|
1508
1413
|
function CategoryCard({ name, description, categoryCount, productCount, icons = [] }) {
|
|
1509
|
-
return /* @__PURE__ */
|
|
1510
|
-
/* @__PURE__ */
|
|
1511
|
-
/* @__PURE__ */
|
|
1512
|
-
/* @__PURE__ */
|
|
1513
|
-
/* @__PURE__ */
|
|
1414
|
+
return /* @__PURE__ */ jsxs3("article", { className: "bg-[#1A1A1A] border border-[#424242] rounded-[12px] p-8 flex flex-col min-w-0 box-border", children: [
|
|
1415
|
+
/* @__PURE__ */ jsx4("div", { className: "flex gap-6 mb-8 justify-center items-center", children: (icons.length > 0 ? icons : Array(10).fill(null)).map((icon, i) => /* @__PURE__ */ jsx4("div", { className: "w-10 h-10 bg-gray-700 rounded flex items-center justify-center", children: icon }, i)) }),
|
|
1416
|
+
/* @__PURE__ */ jsxs3("div", { className: "flex-1 flex flex-col", children: [
|
|
1417
|
+
/* @__PURE__ */ jsx4("h2", { className: "text-[24px] font-bold text-ods-text-primary mb-2 text-left leading-tight", children: name }),
|
|
1418
|
+
/* @__PURE__ */ jsxs3("div", { className: "text-[16px] text-ods-text-secondary mb-4 text-left", children: [
|
|
1514
1419
|
categoryCount,
|
|
1515
1420
|
" Categories \u2022 ",
|
|
1516
1421
|
productCount,
|
|
1517
1422
|
" Products"
|
|
1518
1423
|
] }),
|
|
1519
|
-
/* @__PURE__ */
|
|
1520
|
-
/* @__PURE__ */
|
|
1521
|
-
/* @__PURE__ */
|
|
1424
|
+
/* @__PURE__ */ jsxs3("div", { className: "flex flex-row items-start", children: [
|
|
1425
|
+
/* @__PURE__ */ jsx4("p", { className: "text-[16px] text-ods-text-primary text-left leading-snug flex-1", children: description }),
|
|
1426
|
+
/* @__PURE__ */ jsx4(
|
|
1522
1427
|
"button",
|
|
1523
1428
|
{
|
|
1524
1429
|
className: "w-12 h-12 flex items-center justify-center border border-ods-border rounded-[6px] bg-transparent hover:bg-[#FFC008] transition-colors ml-4",
|
|
1525
1430
|
style: { minWidth: 48, minHeight: 48 },
|
|
1526
1431
|
"aria-label": `View ${name}`,
|
|
1527
|
-
children: /* @__PURE__ */
|
|
1432
|
+
children: /* @__PURE__ */ jsx4("svg", { width: "24", height: "24", fill: "none", stroke: "#FAFAFA", strokeWidth: "2", viewBox: "0 0 24 24", children: /* @__PURE__ */ jsx4("path", { d: "M9 18l6-6-6-6" }) })
|
|
1528
1433
|
}
|
|
1529
1434
|
)
|
|
1530
1435
|
] })
|
|
@@ -1536,7 +1441,7 @@ function CategoryCard({ name, description, categoryCount, productCount, icons =
|
|
|
1536
1441
|
init_button();
|
|
1537
1442
|
|
|
1538
1443
|
// src/components/vendor-display-button.tsx
|
|
1539
|
-
import { jsx as
|
|
1444
|
+
import { jsx as jsx5, jsxs as jsxs4 } from "react/jsx-runtime";
|
|
1540
1445
|
function VendorDisplayButton({ vendor, onClick, variant = "default", externalUrl }) {
|
|
1541
1446
|
const handleClick = () => {
|
|
1542
1447
|
if (externalUrl && vendor.slug) {
|
|
@@ -1547,13 +1452,13 @@ function VendorDisplayButton({ vendor, onClick, variant = "default", externalUrl
|
|
|
1547
1452
|
};
|
|
1548
1453
|
if (variant === "compact") {
|
|
1549
1454
|
const logoUrl = getVendorLogo(vendor);
|
|
1550
|
-
return /* @__PURE__ */
|
|
1455
|
+
return /* @__PURE__ */ jsxs4(
|
|
1551
1456
|
"button",
|
|
1552
1457
|
{
|
|
1553
1458
|
onClick: handleClick,
|
|
1554
1459
|
className: "inline-flex items-center gap-2 px-3 py-1.5 rounded-full bg-ods-card border border-ods-border hover:border-ods-accent/50 transition-colors",
|
|
1555
1460
|
children: [
|
|
1556
|
-
logoUrl ? /* @__PURE__ */
|
|
1461
|
+
logoUrl ? /* @__PURE__ */ jsx5("div", { className: "w-5 h-5 rounded overflow-hidden flex-shrink-0", children: /* @__PURE__ */ jsx5(
|
|
1557
1462
|
next_image_default,
|
|
1558
1463
|
{
|
|
1559
1464
|
src: getProxiedImageUrl2(logoUrl) || logoUrl,
|
|
@@ -1562,19 +1467,19 @@ function VendorDisplayButton({ vendor, onClick, variant = "default", externalUrl
|
|
|
1562
1467
|
height: 20,
|
|
1563
1468
|
className: "w-full h-full object-cover"
|
|
1564
1469
|
}
|
|
1565
|
-
) }) : /* @__PURE__ */
|
|
1566
|
-
/* @__PURE__ */
|
|
1470
|
+
) }) : /* @__PURE__ */ jsx5("div", { className: "w-5 h-5 rounded bg-ods-border flex items-center justify-center flex-shrink-0", children: /* @__PURE__ */ jsx5("span", { className: "text-ods-text-secondary text-[10px] font-medium", children: vendor.title.charAt(0).toUpperCase() }) }),
|
|
1471
|
+
/* @__PURE__ */ jsx5("span", { className: "text-sm font-medium text-ods-text-primary", children: vendor.title })
|
|
1567
1472
|
]
|
|
1568
1473
|
}
|
|
1569
1474
|
);
|
|
1570
1475
|
}
|
|
1571
|
-
return /* @__PURE__ */
|
|
1476
|
+
return /* @__PURE__ */ jsxs4(
|
|
1572
1477
|
"button",
|
|
1573
1478
|
{
|
|
1574
1479
|
onClick: handleClick,
|
|
1575
1480
|
className: "flex items-center gap-2 bg-ods-card border border-ods-border rounded-lg py-2 px-3 hover:border-ods-accent transition-colors max-w-full overflow-hidden",
|
|
1576
1481
|
children: [
|
|
1577
|
-
getVendorLogo(vendor) ? /* @__PURE__ */
|
|
1482
|
+
getVendorLogo(vendor) ? /* @__PURE__ */ jsx5("div", { className: "w-8 h-8 bg-ods-card border border-ods-border rounded-lg flex items-center justify-center flex-shrink-0", children: /* @__PURE__ */ jsx5(
|
|
1578
1483
|
next_image_default,
|
|
1579
1484
|
{
|
|
1580
1485
|
src: getProxiedImageUrl2(getVendorLogo(vendor)) || getVendorLogo(vendor),
|
|
@@ -1583,8 +1488,8 @@ function VendorDisplayButton({ vendor, onClick, variant = "default", externalUrl
|
|
|
1583
1488
|
height: 24,
|
|
1584
1489
|
className: "rounded object-cover"
|
|
1585
1490
|
}
|
|
1586
|
-
) }) : /* @__PURE__ */
|
|
1587
|
-
/* @__PURE__ */
|
|
1491
|
+
) }) : /* @__PURE__ */ jsx5("div", { className: "w-8 h-8 bg-ods-border border border-ods-border rounded-lg flex items-center justify-center flex-shrink-0", children: /* @__PURE__ */ jsx5("span", { className: "text-ods-text-primary text-[12px] font-medium", children: vendor.title.charAt(0) }) }),
|
|
1492
|
+
/* @__PURE__ */ jsx5("span", { className: "text-h4 text-ods-text-primary truncate min-w-0", title: vendor.title, children: vendor.title })
|
|
1588
1493
|
]
|
|
1589
1494
|
}
|
|
1590
1495
|
);
|
|
@@ -1592,7 +1497,7 @@ function VendorDisplayButton({ vendor, onClick, variant = "default", externalUrl
|
|
|
1592
1497
|
|
|
1593
1498
|
// src/components/auth-stub.tsx
|
|
1594
1499
|
import { createContext } from "react";
|
|
1595
|
-
import { jsx as
|
|
1500
|
+
import { jsx as jsx6 } from "react/jsx-runtime";
|
|
1596
1501
|
var AuthContext = createContext({
|
|
1597
1502
|
user: null,
|
|
1598
1503
|
isLoading: false
|
|
@@ -1617,24 +1522,24 @@ function useAuth() {
|
|
|
1617
1522
|
};
|
|
1618
1523
|
}
|
|
1619
1524
|
function AuthProvider({ children }) {
|
|
1620
|
-
return /* @__PURE__ */
|
|
1525
|
+
return /* @__PURE__ */ jsx6(AuthContext.Provider, { value: { user: { id: "mock-user-id", name: "Mock User" }, isLoading: false }, children });
|
|
1621
1526
|
}
|
|
1622
1527
|
|
|
1623
1528
|
// src/components/user-summary-stub.tsx
|
|
1624
|
-
import { jsx as
|
|
1529
|
+
import { jsx as jsx7, jsxs as jsxs5 } from "react/jsx-runtime";
|
|
1625
1530
|
var getAuthProviderIcon = (provider) => {
|
|
1626
1531
|
const p = provider.toLowerCase();
|
|
1627
1532
|
switch (p) {
|
|
1628
1533
|
case "google":
|
|
1629
|
-
return /* @__PURE__ */
|
|
1534
|
+
return /* @__PURE__ */ jsx7(next_image_default, { src: "/icons/google-logo.svg", alt: "Google", width: 16, height: 16, className: "w-4 h-4" });
|
|
1630
1535
|
case "microsoft":
|
|
1631
1536
|
case "azure":
|
|
1632
|
-
return /* @__PURE__ */
|
|
1537
|
+
return /* @__PURE__ */ jsx7(next_image_default, { src: "/icons/microsoft-logo.svg", alt: "Microsoft", width: 16, height: 16, className: "w-4 h-4" });
|
|
1633
1538
|
case "slack":
|
|
1634
1539
|
case "slack_oidc":
|
|
1635
|
-
return /* @__PURE__ */
|
|
1540
|
+
return /* @__PURE__ */ jsx7("div", { className: "w-4 h-4 bg-ods-text-secondary rounded-full" });
|
|
1636
1541
|
default:
|
|
1637
|
-
return /* @__PURE__ */
|
|
1542
|
+
return /* @__PURE__ */ jsx7("div", { className: "w-4 h-4 bg-ods-text-secondary rounded-full" });
|
|
1638
1543
|
}
|
|
1639
1544
|
};
|
|
1640
1545
|
var formatNumber = (n) => {
|
|
@@ -1668,35 +1573,35 @@ function UserSummary({
|
|
|
1668
1573
|
onPhotoChange
|
|
1669
1574
|
}) {
|
|
1670
1575
|
if (compact) {
|
|
1671
|
-
return /* @__PURE__ */
|
|
1672
|
-
/* @__PURE__ */
|
|
1673
|
-
avatarUrl ? /* @__PURE__ */
|
|
1674
|
-
mspPreview && mspPreview.logoUrl && /* @__PURE__ */
|
|
1576
|
+
return /* @__PURE__ */ jsxs5("div", { className: "flex items-center gap-3 min-w-0", children: [
|
|
1577
|
+
/* @__PURE__ */ jsxs5("div", { className: "relative shrink-0", children: [
|
|
1578
|
+
avatarUrl ? /* @__PURE__ */ jsx7(next_image_default, { src: getProxiedImageUrl2(avatarUrl) ?? avatarUrl, alt: name, width: avatarSize, height: avatarSize, className: "object-cover rounded-lg" }) : /* @__PURE__ */ jsx7("div", { className: "rounded-lg bg-ods-accent flex items-center justify-center text-ods-text-on-accent font-heading font-bold", style: { width: avatarSize, height: avatarSize }, children: name.split(" ").map((n) => n.charAt(0)).join("").slice(0, 2) }),
|
|
1579
|
+
mspPreview && mspPreview.logoUrl && /* @__PURE__ */ jsx7(next_image_default, { src: getProxiedImageUrl2(mspPreview.logoUrl) ?? mspPreview.logoUrl, alt: mspPreview.name || "MSP", width: 24, height: 24, className: "absolute -bottom-1 -right-1 size-6 rounded-full object-cover select-none z-10" })
|
|
1675
1580
|
] }),
|
|
1676
|
-
/* @__PURE__ */
|
|
1677
|
-
/* @__PURE__ */
|
|
1581
|
+
/* @__PURE__ */ jsxs5("div", { className: "min-w-0 flex-1", children: [
|
|
1582
|
+
/* @__PURE__ */ jsxs5(
|
|
1678
1583
|
"p",
|
|
1679
1584
|
{
|
|
1680
1585
|
className: "text-h4 text-ods-text-primary truncate",
|
|
1681
1586
|
title: mspPreview?.name ? `${name} \u2022 ${mspPreview.name}` : name,
|
|
1682
1587
|
children: [
|
|
1683
1588
|
name,
|
|
1684
|
-
mspPreview?.name && /* @__PURE__ */
|
|
1589
|
+
mspPreview?.name && /* @__PURE__ */ jsxs5("span", { className: "text-ods-text-secondary", children: [
|
|
1685
1590
|
" \u2022 ",
|
|
1686
1591
|
mspPreview.name
|
|
1687
1592
|
] })
|
|
1688
1593
|
]
|
|
1689
1594
|
}
|
|
1690
1595
|
),
|
|
1691
|
-
/* @__PURE__ */
|
|
1596
|
+
/* @__PURE__ */ jsx7("p", { className: "text-h6 text-ods-text-secondary truncate", title: subtitle && subtitle.trim().length > 0 ? subtitle : email && email.trim().length > 0 ? email : "\xA0", children: subtitle && subtitle.trim().length > 0 ? subtitle : email && email.trim().length > 0 ? email : "\xA0" })
|
|
1692
1597
|
] })
|
|
1693
1598
|
] });
|
|
1694
1599
|
}
|
|
1695
|
-
return /* @__PURE__ */
|
|
1696
|
-
/* @__PURE__ */
|
|
1697
|
-
/* @__PURE__ */
|
|
1698
|
-
avatarUrl ? /* @__PURE__ */
|
|
1699
|
-
mspPreview && /* @__PURE__ */
|
|
1600
|
+
return /* @__PURE__ */ jsxs5("div", { className: "flex flex-col gap-4 w-full", children: [
|
|
1601
|
+
/* @__PURE__ */ jsxs5("div", { className: "flex gap-6 w-full items-start", children: [
|
|
1602
|
+
/* @__PURE__ */ jsxs5("div", { className: "relative shrink-0 h-24 w-24 overflow-visible", children: [
|
|
1603
|
+
avatarUrl ? /* @__PURE__ */ jsx7(next_image_default, { src: getProxiedImageUrl2(avatarUrl) ?? avatarUrl, alt: name, width: 96, height: 96, className: "object-cover rounded-full" }) : /* @__PURE__ */ jsx7("div", { className: "rounded-full bg-ods-card border border-ods-border w-full h-full flex items-center justify-center text-3xl text-ods-text-secondary font-heading", children: name.charAt(0).toUpperCase() }),
|
|
1604
|
+
mspPreview && /* @__PURE__ */ jsx7("div", { className: "absolute -bottom-1 -right-1 size-10 rounded-full bg-ods-bg ring-2 ring-ods-border overflow-hidden flex items-center justify-center select-none", children: mspPreview.logoUrl ? /* @__PURE__ */ jsx7(
|
|
1700
1605
|
next_image_default,
|
|
1701
1606
|
{
|
|
1702
1607
|
src: getProxiedImageUrl2(mspPreview.logoUrl) ?? mspPreview.logoUrl,
|
|
@@ -1705,12 +1610,12 @@ function UserSummary({
|
|
|
1705
1610
|
height: 40,
|
|
1706
1611
|
className: "object-cover"
|
|
1707
1612
|
}
|
|
1708
|
-
) : /* @__PURE__ */
|
|
1613
|
+
) : /* @__PURE__ */ jsx7("span", { className: "text-ods-text-primary font-heading text-sm font-bold", children: mspPreview.name?.charAt(0).toUpperCase() || "?" }) })
|
|
1709
1614
|
] }),
|
|
1710
|
-
/* @__PURE__ */
|
|
1711
|
-
/* @__PURE__ */
|
|
1712
|
-
/* @__PURE__ */
|
|
1713
|
-
/* @__PURE__ */
|
|
1615
|
+
/* @__PURE__ */ jsxs5("div", { className: "flex-1 grid grid-cols-[1fr_auto] gap-4", children: [
|
|
1616
|
+
/* @__PURE__ */ jsxs5("div", { className: "min-h-[6rem] flex flex-col justify-center space-y-3 truncate", children: [
|
|
1617
|
+
/* @__PURE__ */ jsx7("p", { className: "text-h2 text-ods-text-primary leading-none truncate", title: name, children: name }),
|
|
1618
|
+
/* @__PURE__ */ jsx7("p", { className: "text-h4 text-ods-text-secondary break-all truncate", title: subtitle && subtitle.trim().length > 0 ? subtitle : email && email.trim().length > 0 ? email : "\xA0", children: subtitle && subtitle.trim().length > 0 ? subtitle : email && email.trim().length > 0 ? email : "\xA0" }),
|
|
1714
1619
|
mspPreview && (() => {
|
|
1715
1620
|
const mspSegments = [
|
|
1716
1621
|
mspPreview.name ?? "\u2014",
|
|
@@ -1719,30 +1624,30 @@ function UserSummary({
|
|
|
1719
1624
|
typeof mspPreview.annualRevenue === "number" ? `$${formatNumber(mspPreview.annualRevenue)}` : null
|
|
1720
1625
|
].filter(Boolean);
|
|
1721
1626
|
const mspTitle = mspSegments.join(" \u2022 ");
|
|
1722
|
-
return /* @__PURE__ */
|
|
1627
|
+
return /* @__PURE__ */ jsx7("p", { className: "text-h6 text-ods-text-primary truncate", title: mspTitle, children: mspSegments.flatMap((txt, idx) => idx === 0 ? [txt] : [" \u2022 ", txt]).map((seg, idx) => /* @__PURE__ */ jsx7("span", { className: seg === " \u2022 " ? "text-ods-text-secondary" : "", children: seg }, idx)) });
|
|
1723
1628
|
})()
|
|
1724
1629
|
] }),
|
|
1725
|
-
(authProviders?.length || showEditButton) && /* @__PURE__ */
|
|
1726
|
-
authProviders && authProviders.length > 0 && /* @__PURE__ */
|
|
1727
|
-
/* @__PURE__ */
|
|
1728
|
-
/* @__PURE__ */
|
|
1630
|
+
(authProviders?.length || showEditButton) && /* @__PURE__ */ jsxs5("div", { className: "hidden md:flex flex-col items-end justify-between flex-shrink-0 min-h-[6rem]", children: [
|
|
1631
|
+
authProviders && authProviders.length > 0 && /* @__PURE__ */ jsxs5("div", { className: "flex items-center gap-2", children: [
|
|
1632
|
+
/* @__PURE__ */ jsx7("span", { className: "text-xs text-ods-text-secondary whitespace-nowrap select-none", children: "Authorized by" }),
|
|
1633
|
+
/* @__PURE__ */ jsx7("div", { className: "flex items-center gap-2", children: authProviders.map((p) => /* @__PURE__ */ jsx7("div", { className: "flex items-center justify-center w-4 h-4", children: getAuthProviderIcon(p) }, p)) })
|
|
1729
1634
|
] }),
|
|
1730
|
-
showEditButton && /* @__PURE__ */
|
|
1635
|
+
showEditButton && /* @__PURE__ */ jsx7("div", { className: "text-xs text-ods-text-secondary", children: "Edit Profile" })
|
|
1731
1636
|
] })
|
|
1732
1637
|
] })
|
|
1733
1638
|
] }),
|
|
1734
|
-
(authProviders?.length || showEditButton) && /* @__PURE__ */
|
|
1735
|
-
authProviders && authProviders.length > 0 && /* @__PURE__ */
|
|
1736
|
-
/* @__PURE__ */
|
|
1737
|
-
/* @__PURE__ */
|
|
1639
|
+
(authProviders?.length || showEditButton) && /* @__PURE__ */ jsxs5("div", { className: "flex md:hidden items-center justify-between w-full gap-4", children: [
|
|
1640
|
+
authProviders && authProviders.length > 0 && /* @__PURE__ */ jsxs5("div", { className: "flex items-center gap-2", children: [
|
|
1641
|
+
/* @__PURE__ */ jsx7("span", { className: "text-xs text-ods-text-secondary whitespace-nowrap select-none", children: "Authorized by" }),
|
|
1642
|
+
/* @__PURE__ */ jsx7("div", { className: "flex items-center gap-2", children: authProviders.map((p) => /* @__PURE__ */ jsx7("div", { className: "flex items-center justify-center w-4 h-4", children: getAuthProviderIcon(p) }, p)) })
|
|
1738
1643
|
] }),
|
|
1739
|
-
showEditButton && /* @__PURE__ */
|
|
1644
|
+
showEditButton && /* @__PURE__ */ jsx7("div", { className: "text-xs text-ods-text-secondary", children: "Edit Profile" })
|
|
1740
1645
|
] })
|
|
1741
1646
|
] });
|
|
1742
1647
|
}
|
|
1743
1648
|
|
|
1744
1649
|
// src/components/comment-card.tsx
|
|
1745
|
-
import { Fragment, jsx as
|
|
1650
|
+
import { Fragment, jsx as jsx8, jsxs as jsxs6 } from "react/jsx-runtime";
|
|
1746
1651
|
function CommentCard({
|
|
1747
1652
|
comment,
|
|
1748
1653
|
onViewProduct,
|
|
@@ -1766,10 +1671,10 @@ function CommentCard({
|
|
|
1766
1671
|
return false;
|
|
1767
1672
|
};
|
|
1768
1673
|
const showDeleteButton = canUserDeleteComment();
|
|
1769
|
-
return /* @__PURE__ */
|
|
1770
|
-
/* @__PURE__ */
|
|
1771
|
-
/* @__PURE__ */
|
|
1772
|
-
/* @__PURE__ */
|
|
1674
|
+
return /* @__PURE__ */ jsxs6("div", { className: "bg-ods-card border border-ods-border rounded-lg p-4 hover:border-ods-accent transition-all group overflow-hidden w-full max-w-full box-border", style: { maxWidth: "100%", wordBreak: "break-word" }, children: [
|
|
1675
|
+
/* @__PURE__ */ jsxs6("div", { className: "flex flex-col gap-3 mb-3 min-[420px]:flex-row min-[420px]:items-center min-[420px]:justify-between min-[420px]:gap-2 w-full", children: [
|
|
1676
|
+
/* @__PURE__ */ jsx8("div", { className: "flex items-center gap-2 min-w-0 flex-1", children: context === "profile" && comment.vendor ? /* @__PURE__ */ jsxs6(Fragment, { children: [
|
|
1677
|
+
/* @__PURE__ */ jsx8(
|
|
1773
1678
|
VendorDisplayButton,
|
|
1774
1679
|
{
|
|
1775
1680
|
vendor: comment.vendor,
|
|
@@ -1777,8 +1682,8 @@ function CommentCard({
|
|
|
1777
1682
|
})
|
|
1778
1683
|
}
|
|
1779
1684
|
),
|
|
1780
|
-
/* @__PURE__ */
|
|
1781
|
-
] }) : context === "vendor" && comment.user ? /* @__PURE__ */
|
|
1685
|
+
/* @__PURE__ */ jsx8("span", { className: "font-['DM_Sans'] font-medium text-[14px] leading-[1.43] text-ods-text-secondary whitespace-nowrap flex-shrink-0", children: formatActivityTime(comment.createdAt) })
|
|
1686
|
+
] }) : context === "vendor" && comment.user ? /* @__PURE__ */ jsx8(
|
|
1782
1687
|
UserSummary,
|
|
1783
1688
|
{
|
|
1784
1689
|
name: comment.user.name,
|
|
@@ -1798,22 +1703,22 @@ function CommentCard({
|
|
|
1798
1703
|
authProviders: []
|
|
1799
1704
|
}
|
|
1800
1705
|
) : null }),
|
|
1801
|
-
/* @__PURE__ */
|
|
1706
|
+
/* @__PURE__ */ jsx8("div", { className: "flex gap-2 justify-start min-[420px]:justify-end", children: showDeleteButton && onDeleteComment && /* @__PURE__ */ jsx8(
|
|
1802
1707
|
Button,
|
|
1803
1708
|
{
|
|
1804
1709
|
onClick: () => onDeleteComment(comment.id),
|
|
1805
1710
|
variant: "outline",
|
|
1806
1711
|
size: "icon",
|
|
1807
1712
|
className: "text-ods-text-primary",
|
|
1808
|
-
children: /* @__PURE__ */
|
|
1809
|
-
/* @__PURE__ */
|
|
1810
|
-
/* @__PURE__ */
|
|
1713
|
+
children: /* @__PURE__ */ jsxs6("svg", { width: "22", height: "24", viewBox: "0 0 22 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", className: "text-ods-text-primary", children: [
|
|
1714
|
+
/* @__PURE__ */ jsx8("path", { d: "M18.6025 4.37939C19.221 4.43597 19.6768 4.98399 19.6206 5.60254L18.5176 17.7358C18.4492 18.4886 18.3924 19.1183 18.3052 19.6299C18.2155 20.1552 18.0809 20.6447 17.8101 21.1021C17.4444 21.7195 16.9245 22.2292 16.3042 22.583L16.0317 22.7251C15.5519 22.9533 15.0526 23.0438 14.5215 23.0854C14.0042 23.126 13.3727 23.125 12.6172 23.125H9.38281C8.62726 23.125 7.9958 23.126 7.47852 23.0854C7.01357 23.049 6.57289 22.975 6.14844 22.8042L5.96826 22.7251C5.32037 22.4169 4.76543 21.9454 4.35693 21.3599L4.18994 21.1021C3.91912 20.6447 3.78445 20.1552 3.69482 19.6299C3.65123 19.3743 3.61556 19.0894 3.58203 18.7744L3.48242 17.7358L2.37939 5.60254L2.375 5.48682C2.38099 4.91684 2.81768 4.43244 3.39746 4.37939C3.97776 4.32664 4.496 4.72462 4.60449 5.28467L4.62061 5.39746L5.72363 17.5322C5.79528 18.3203 5.84358 18.8475 5.9126 19.252C5.97923 19.6424 6.05232 19.8298 6.12646 19.9551L6.28467 20.1836C6.45963 20.3987 6.68118 20.5732 6.93359 20.6934L7.04639 20.7388C7.17478 20.7822 7.35781 20.8195 7.6543 20.8428C8.06325 20.8749 8.59186 20.875 9.38281 20.875H12.6172C13.4081 20.875 13.9367 20.8749 14.3457 20.8428C14.7409 20.8117 14.9349 20.7559 15.0664 20.6934L15.3066 20.5557C15.5369 20.4008 15.7309 20.1958 15.8735 19.9551C15.9477 19.8298 16.0208 19.6424 16.0874 19.252C16.1564 18.8475 16.2047 18.3203 16.2764 17.5322L17.3794 5.39746C17.436 4.77903 17.984 4.32316 18.6025 4.37939Z", fill: "currentColor" }),
|
|
1715
|
+
/* @__PURE__ */ jsx8("path", { d: "M7.37451 15.9995V11C7.37451 10.3788 7.87842 9.87526 8.49951 9.875C9.12083 9.875 9.62451 10.3787 9.62451 11V15.9995C9.62451 16.6208 9.12083 17.1245 8.49951 17.1245C7.87842 17.1242 7.37451 16.6207 7.37451 15.9995ZM12.3755 15.9995V11C12.3755 10.3787 12.8792 9.875 13.5005 9.875C14.1216 9.87526 14.6255 10.3788 14.6255 11V15.9995C14.6255 16.6207 14.1216 17.1242 13.5005 17.1245C12.8792 17.1245 12.3755 16.6208 12.3755 15.9995ZM12.585 0.875C13.0174 0.879157 13.425 0.903301 13.8096 1.02881L14.1157 1.14746C14.4155 1.28159 14.6931 1.46221 14.9375 1.68359L15.0811 1.82568C15.4034 2.16872 15.6379 2.59872 15.8984 3.05469L16.6528 4.37451H20L20.1157 4.38037C20.6825 4.43826 21.1248 4.91747 21.125 5.49951C21.125 6.08174 20.6827 6.5607 20.1157 6.61865L20 6.62451H2C1.37868 6.62451 0.875 6.12083 0.875 5.49951C0.875264 4.87842 1.37884 4.37451 2 4.37451H5.34717L6.32129 2.6709C6.53952 2.29735 6.76267 1.95525 7.0625 1.68359L7.31738 1.47705C7.58262 1.28327 7.87687 1.1312 8.19043 1.02881L8.38525 0.974609C8.71199 0.896341 9.05467 0.878464 9.41504 0.875H12.585ZM9.85742 3.125C9.29191 3.125 9.08123 3.13201 8.97266 3.14844L8.88916 3.16748C8.83075 3.18655 8.77503 3.21301 8.72217 3.24365L8.57275 3.35205C8.53704 3.38448 8.50137 3.42629 8.42773 3.54102L8.05566 4.1709L7.93848 4.37451H14.0615L13.9443 4.1709C13.6645 3.68114 13.554 3.50141 13.4858 3.41504L13.4272 3.35205C13.3815 3.31062 13.3309 3.27443 13.2778 3.24365L13.1108 3.16748C13.019 3.13753 12.8946 3.125 12.1426 3.125H9.85742Z", fill: "currentColor" })
|
|
1811
1716
|
] })
|
|
1812
1717
|
}
|
|
1813
1718
|
) })
|
|
1814
1719
|
] }),
|
|
1815
|
-
/* @__PURE__ */
|
|
1816
|
-
comment.title && /* @__PURE__ */
|
|
1720
|
+
/* @__PURE__ */ jsxs6("div", { className: "space-y-2 w-full max-w-full overflow-hidden", style: { maxWidth: "100%", wordBreak: "break-word" }, children: [
|
|
1721
|
+
comment.title && /* @__PURE__ */ jsx8("div", { className: compact ? "h-[20px] flex items-center" : "h-[24px] flex items-center", children: /* @__PURE__ */ jsx8("h4", { className: "text-h3 tracking-[-0.02em] text-ods-text-primary group-hover:text-ods-accent transition-colors line-clamp-1", style: {
|
|
1817
1722
|
wordBreak: "break-word",
|
|
1818
1723
|
overflowWrap: "break-word",
|
|
1819
1724
|
maxWidth: "100%",
|
|
@@ -1823,7 +1728,7 @@ function CommentCard({
|
|
|
1823
1728
|
WebkitBoxOrient: "vertical",
|
|
1824
1729
|
WebkitLineClamp: 1
|
|
1825
1730
|
}, children: comment.title }) }),
|
|
1826
|
-
/* @__PURE__ */
|
|
1731
|
+
/* @__PURE__ */ jsx8("div", { className: compact ? "h-[60px] flex items-center" : "h-[72px] flex items-center", children: /* @__PURE__ */ jsx8("p", { className: "text-h4 text-ods-text-primary line-clamp-3", style: {
|
|
1827
1732
|
wordBreak: "break-word",
|
|
1828
1733
|
overflowWrap: "break-word",
|
|
1829
1734
|
maxWidth: "100%",
|
|
@@ -1839,7 +1744,7 @@ function CommentCard({
|
|
|
1839
1744
|
|
|
1840
1745
|
// src/components/content-loading-container.tsx
|
|
1841
1746
|
init_cn();
|
|
1842
|
-
import { jsx as
|
|
1747
|
+
import { jsx as jsx9, jsxs as jsxs7 } from "react/jsx-runtime";
|
|
1843
1748
|
function ContentLoadingContainer({
|
|
1844
1749
|
isLoading,
|
|
1845
1750
|
children,
|
|
@@ -1849,7 +1754,7 @@ function ContentLoadingContainer({
|
|
|
1849
1754
|
loadingOpacity = 1,
|
|
1850
1755
|
transitionDuration = 300
|
|
1851
1756
|
}) {
|
|
1852
|
-
return /* @__PURE__ */
|
|
1757
|
+
return /* @__PURE__ */ jsxs7(
|
|
1853
1758
|
"div",
|
|
1854
1759
|
{
|
|
1855
1760
|
className: cn(
|
|
@@ -1864,7 +1769,7 @@ function ContentLoadingContainer({
|
|
|
1864
1769
|
"aria-label": isLoading ? "Loading content" : "Content loaded",
|
|
1865
1770
|
"aria-live": "polite",
|
|
1866
1771
|
children: [
|
|
1867
|
-
isLoading && /* @__PURE__ */
|
|
1772
|
+
isLoading && /* @__PURE__ */ jsx9(
|
|
1868
1773
|
"div",
|
|
1869
1774
|
{
|
|
1870
1775
|
className: "absolute inset-0 z-10 bg-ods-bg",
|
|
@@ -1877,7 +1782,7 @@ function ContentLoadingContainer({
|
|
|
1877
1782
|
children: skeletonComponent
|
|
1878
1783
|
}
|
|
1879
1784
|
),
|
|
1880
|
-
/* @__PURE__ */
|
|
1785
|
+
/* @__PURE__ */ jsx9(
|
|
1881
1786
|
"div",
|
|
1882
1787
|
{
|
|
1883
1788
|
className: cn(
|
|
@@ -1930,7 +1835,7 @@ function useThemeAware() {
|
|
|
1930
1835
|
}
|
|
1931
1836
|
|
|
1932
1837
|
// src/components/dynamic-skeleton.tsx
|
|
1933
|
-
import { Fragment as Fragment2, jsx as
|
|
1838
|
+
import { Fragment as Fragment2, jsx as jsx10, jsxs as jsxs8 } from "react/jsx-runtime";
|
|
1934
1839
|
var sizePresets = {
|
|
1935
1840
|
sm: { width: "4rem", height: "1rem" },
|
|
1936
1841
|
md: { width: "8rem", height: "1.5rem" },
|
|
@@ -1995,14 +1900,14 @@ function DynamicSkeleton({
|
|
|
1995
1900
|
className
|
|
1996
1901
|
);
|
|
1997
1902
|
if (variant === "text" && lines > 1) {
|
|
1998
|
-
return /* @__PURE__ */
|
|
1903
|
+
return /* @__PURE__ */ jsx10(
|
|
1999
1904
|
"div",
|
|
2000
1905
|
{
|
|
2001
1906
|
className: "space-y-2",
|
|
2002
1907
|
style: platformStyles,
|
|
2003
1908
|
role: "status",
|
|
2004
1909
|
"aria-label": includeAriaLabel ? "Loading content..." : void 0,
|
|
2005
|
-
children: Array.from({ length: lines }, (_, index) => /* @__PURE__ */
|
|
1910
|
+
children: Array.from({ length: lines }, (_, index) => /* @__PURE__ */ jsx10(
|
|
2006
1911
|
"div",
|
|
2007
1912
|
{
|
|
2008
1913
|
className: cn(
|
|
@@ -2020,7 +1925,7 @@ function DynamicSkeleton({
|
|
|
2020
1925
|
}
|
|
2021
1926
|
);
|
|
2022
1927
|
}
|
|
2023
|
-
return /* @__PURE__ */
|
|
1928
|
+
return /* @__PURE__ */ jsx10(
|
|
2024
1929
|
"div",
|
|
2025
1930
|
{
|
|
2026
1931
|
className: baseClasses,
|
|
@@ -2035,72 +1940,72 @@ var SkeletonPresets = {
|
|
|
2035
1940
|
/**
|
|
2036
1941
|
* Card skeleton with header, content, and actions
|
|
2037
1942
|
*/
|
|
2038
|
-
Card: ({ showActions = true, showImage = false }) => /* @__PURE__ */
|
|
2039
|
-
showImage && /* @__PURE__ */
|
|
2040
|
-
/* @__PURE__ */
|
|
2041
|
-
/* @__PURE__ */
|
|
2042
|
-
/* @__PURE__ */
|
|
1943
|
+
Card: ({ showActions = true, showImage = false }) => /* @__PURE__ */ jsxs8("div", { className: "bg-ods-card border border-ods-border rounded-lg p-6 space-y-4", children: [
|
|
1944
|
+
showImage && /* @__PURE__ */ jsx10(DynamicSkeleton, { variant: "image", className: "w-full h-40" }),
|
|
1945
|
+
/* @__PURE__ */ jsxs8("div", { className: "space-y-2", children: [
|
|
1946
|
+
/* @__PURE__ */ jsx10(DynamicSkeleton, { variant: "text", size: "lg" }),
|
|
1947
|
+
/* @__PURE__ */ jsx10(DynamicSkeleton, { variant: "text", lines: 2, size: "md" })
|
|
2043
1948
|
] }),
|
|
2044
|
-
showActions && /* @__PURE__ */
|
|
2045
|
-
/* @__PURE__ */
|
|
2046
|
-
/* @__PURE__ */
|
|
1949
|
+
showActions && /* @__PURE__ */ jsxs8("div", { className: "flex gap-2 pt-2", children: [
|
|
1950
|
+
/* @__PURE__ */ jsx10(DynamicSkeleton, { variant: "button", width: "6rem", height: "2.5rem" }),
|
|
1951
|
+
/* @__PURE__ */ jsx10(DynamicSkeleton, { variant: "button", width: "4rem", height: "2.5rem" })
|
|
2047
1952
|
] })
|
|
2048
1953
|
] }),
|
|
2049
1954
|
/**
|
|
2050
1955
|
* User profile skeleton
|
|
2051
1956
|
*/
|
|
2052
|
-
Profile: () => /* @__PURE__ */
|
|
2053
|
-
/* @__PURE__ */
|
|
2054
|
-
/* @__PURE__ */
|
|
2055
|
-
/* @__PURE__ */
|
|
2056
|
-
/* @__PURE__ */
|
|
2057
|
-
/* @__PURE__ */
|
|
1957
|
+
Profile: () => /* @__PURE__ */ jsxs8("div", { className: "flex items-start gap-4 p-4", children: [
|
|
1958
|
+
/* @__PURE__ */ jsx10(DynamicSkeleton, { variant: "avatar", size: "lg" }),
|
|
1959
|
+
/* @__PURE__ */ jsxs8("div", { className: "flex-1 space-y-2", children: [
|
|
1960
|
+
/* @__PURE__ */ jsx10(DynamicSkeleton, { variant: "text", size: "lg", width: "8rem" }),
|
|
1961
|
+
/* @__PURE__ */ jsx10(DynamicSkeleton, { variant: "text", size: "sm", width: "12rem" }),
|
|
1962
|
+
/* @__PURE__ */ jsx10(DynamicSkeleton, { variant: "text", lines: 2, size: "md" })
|
|
2058
1963
|
] })
|
|
2059
1964
|
] }),
|
|
2060
1965
|
/**
|
|
2061
1966
|
* Navigation skeleton
|
|
2062
1967
|
*/
|
|
2063
|
-
Navigation: ({ items = 5 }) => /* @__PURE__ */
|
|
2064
|
-
/* @__PURE__ */
|
|
2065
|
-
/* @__PURE__ */
|
|
1968
|
+
Navigation: ({ items = 5 }) => /* @__PURE__ */ jsx10("nav", { className: "space-y-2 p-4", children: Array.from({ length: items }, (_, index) => /* @__PURE__ */ jsxs8("div", { className: "flex items-center gap-3", children: [
|
|
1969
|
+
/* @__PURE__ */ jsx10(DynamicSkeleton, { variant: "avatar", size: "sm" }),
|
|
1970
|
+
/* @__PURE__ */ jsx10(DynamicSkeleton, { variant: "text", size: "md" })
|
|
2066
1971
|
] }, index)) }),
|
|
2067
1972
|
/**
|
|
2068
1973
|
* Table skeleton
|
|
2069
1974
|
*/
|
|
2070
|
-
Table: ({ rows = 5, columns = 4 }) => /* @__PURE__ */
|
|
2071
|
-
/* @__PURE__ */
|
|
2072
|
-
Array.from({ length: rows }, (_, rowIndex) => /* @__PURE__ */
|
|
1975
|
+
Table: ({ rows = 5, columns = 4 }) => /* @__PURE__ */ jsxs8("div", { className: "space-y-3", children: [
|
|
1976
|
+
/* @__PURE__ */ jsx10("div", { className: "grid gap-4", style: { gridTemplateColumns: `repeat(${columns}, 1fr)` }, children: Array.from({ length: columns }, (_, index) => /* @__PURE__ */ jsx10(DynamicSkeleton, { variant: "text", size: "md" }, `header-${index}`)) }),
|
|
1977
|
+
Array.from({ length: rows }, (_, rowIndex) => /* @__PURE__ */ jsx10("div", { className: "grid gap-4", style: { gridTemplateColumns: `repeat(${columns}, 1fr)` }, children: Array.from({ length: columns }, (_2, colIndex) => /* @__PURE__ */ jsx10(DynamicSkeleton, { variant: "text", size: "sm" }, `cell-${rowIndex}-${colIndex}`)) }, `row-${rowIndex}`))
|
|
2073
1978
|
] }),
|
|
2074
1979
|
/**
|
|
2075
1980
|
* Vendor grid skeleton (specific to the app)
|
|
2076
1981
|
*/
|
|
2077
|
-
VendorGrid: ({ items = 6 }) => /* @__PURE__ */
|
|
2078
|
-
/* @__PURE__ */
|
|
2079
|
-
/* @__PURE__ */
|
|
2080
|
-
/* @__PURE__ */
|
|
2081
|
-
/* @__PURE__ */
|
|
2082
|
-
/* @__PURE__ */
|
|
1982
|
+
VendorGrid: ({ items = 6 }) => /* @__PURE__ */ jsx10("div", { className: "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6", children: Array.from({ length: items }, (_, index) => /* @__PURE__ */ jsxs8("div", { className: "bg-ods-card border border-ods-border rounded-lg p-4 space-y-3", children: [
|
|
1983
|
+
/* @__PURE__ */ jsxs8("div", { className: "flex items-center gap-3", children: [
|
|
1984
|
+
/* @__PURE__ */ jsx10(DynamicSkeleton, { variant: "avatar", size: "md" }),
|
|
1985
|
+
/* @__PURE__ */ jsxs8("div", { className: "flex-1", children: [
|
|
1986
|
+
/* @__PURE__ */ jsx10(DynamicSkeleton, { variant: "text", size: "md", width: "6rem" }),
|
|
1987
|
+
/* @__PURE__ */ jsx10(DynamicSkeleton, { variant: "text", size: "sm", width: "4rem", className: "mt-1" })
|
|
2083
1988
|
] })
|
|
2084
1989
|
] }),
|
|
2085
|
-
/* @__PURE__ */
|
|
2086
|
-
/* @__PURE__ */
|
|
2087
|
-
/* @__PURE__ */
|
|
2088
|
-
/* @__PURE__ */
|
|
1990
|
+
/* @__PURE__ */ jsx10(DynamicSkeleton, { variant: "text", lines: 2, size: "sm" }),
|
|
1991
|
+
/* @__PURE__ */ jsxs8("div", { className: "flex gap-2", children: [
|
|
1992
|
+
/* @__PURE__ */ jsx10(DynamicSkeleton, { variant: "custom", width: "3rem", height: "1.25rem", className: "rounded-full" }),
|
|
1993
|
+
/* @__PURE__ */ jsx10(DynamicSkeleton, { variant: "custom", width: "4rem", height: "1.25rem", className: "rounded-full" })
|
|
2089
1994
|
] })
|
|
2090
1995
|
] }, index)) }),
|
|
2091
1996
|
/**
|
|
2092
1997
|
* Blog post skeleton
|
|
2093
1998
|
*/
|
|
2094
|
-
BlogPost: () => /* @__PURE__ */
|
|
2095
|
-
/* @__PURE__ */
|
|
2096
|
-
/* @__PURE__ */
|
|
2097
|
-
/* @__PURE__ */
|
|
2098
|
-
/* @__PURE__ */
|
|
2099
|
-
/* @__PURE__ */
|
|
1999
|
+
BlogPost: () => /* @__PURE__ */ jsxs8("article", { className: "space-y-6", children: [
|
|
2000
|
+
/* @__PURE__ */ jsxs8("div", { className: "space-y-2", children: [
|
|
2001
|
+
/* @__PURE__ */ jsx10(DynamicSkeleton, { variant: "text", size: "xl", width: "75%" }),
|
|
2002
|
+
/* @__PURE__ */ jsxs8("div", { className: "flex gap-4 text-sm", children: [
|
|
2003
|
+
/* @__PURE__ */ jsx10(DynamicSkeleton, { variant: "text", size: "sm", width: "4rem" }),
|
|
2004
|
+
/* @__PURE__ */ jsx10(DynamicSkeleton, { variant: "text", size: "sm", width: "6rem" })
|
|
2100
2005
|
] })
|
|
2101
2006
|
] }),
|
|
2102
|
-
/* @__PURE__ */
|
|
2103
|
-
/* @__PURE__ */
|
|
2007
|
+
/* @__PURE__ */ jsx10(DynamicSkeleton, { variant: "image", className: "w-full h-64" }),
|
|
2008
|
+
/* @__PURE__ */ jsx10("div", { className: "space-y-3", children: Array.from({ length: 4 }, (_, index) => /* @__PURE__ */ jsx10(DynamicSkeleton, { variant: "text", lines: 3, size: "md" }, index)) })
|
|
2104
2009
|
] })
|
|
2105
2010
|
};
|
|
2106
2011
|
function PlatformSkeletonContainer({
|
|
@@ -2111,10 +2016,10 @@ function PlatformSkeletonContainer({
|
|
|
2111
2016
|
}) {
|
|
2112
2017
|
const { platform } = useThemeAware();
|
|
2113
2018
|
if (!isLoading) {
|
|
2114
|
-
return /* @__PURE__ */
|
|
2019
|
+
return /* @__PURE__ */ jsx10(Fragment2, { children });
|
|
2115
2020
|
}
|
|
2116
2021
|
const SkeletonComponent = SkeletonPresets[skeletonType];
|
|
2117
|
-
return /* @__PURE__ */
|
|
2022
|
+
return /* @__PURE__ */ jsx10("div", { className: `platform-skeleton skeleton-${platform}`, children: /* @__PURE__ */ jsx10(SkeletonComponent, { ...skeletonProps }) });
|
|
2118
2023
|
}
|
|
2119
2024
|
function ProgressiveSkeleton({
|
|
2120
2025
|
stages = ["basic", "detailed", "interactive"],
|
|
@@ -2129,7 +2034,7 @@ function ProgressiveSkeleton({
|
|
|
2129
2034
|
2: { animation: "wave", variant: "custom" }
|
|
2130
2035
|
};
|
|
2131
2036
|
const config = stageConfig[currentStage] || stageConfig[0];
|
|
2132
|
-
return /* @__PURE__ */
|
|
2037
|
+
return /* @__PURE__ */ jsx10(
|
|
2133
2038
|
DynamicSkeleton,
|
|
2134
2039
|
{
|
|
2135
2040
|
...props,
|
|
@@ -2147,7 +2052,7 @@ function ProgressiveSkeleton({
|
|
|
2147
2052
|
// src/components/filter-chip.tsx
|
|
2148
2053
|
init_cn();
|
|
2149
2054
|
import { X as X2 } from "lucide-react";
|
|
2150
|
-
import { jsx as
|
|
2055
|
+
import { jsx as jsx11, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
2151
2056
|
function FilterChip({
|
|
2152
2057
|
id,
|
|
2153
2058
|
label,
|
|
@@ -2180,7 +2085,7 @@ function FilterChip({
|
|
|
2180
2085
|
subcategory: "bg-[#2A2A2A] text-[#E8E8E8] border border-[#FFC008]/60 hover:bg-ods-border hover:border-[#FFC008]/80 hover:text-ods-text-primary focus:ring-[#FFC008]/60 focus:ring-offset-[#161616]",
|
|
2181
2086
|
tag: "bg-[#2A2A2A] text-ods-text-primary border border-[#FFC008]/20 hover:bg-ods-border hover:border-[#FFC008]/30 hover:text-ods-text-primary focus:ring-[#FFC008]/20 focus:ring-offset-[#161616]"
|
|
2182
2087
|
};
|
|
2183
|
-
return /* @__PURE__ */
|
|
2088
|
+
return /* @__PURE__ */ jsxs9(
|
|
2184
2089
|
"div",
|
|
2185
2090
|
{
|
|
2186
2091
|
className: cn(baseClasses, variantClasses[variant], className),
|
|
@@ -2194,11 +2099,11 @@ function FilterChip({
|
|
|
2194
2099
|
"aria-pressed": onClick && variant === "selected" ? true : void 0,
|
|
2195
2100
|
"aria-disabled": disabled,
|
|
2196
2101
|
children: [
|
|
2197
|
-
/* @__PURE__ */
|
|
2102
|
+
/* @__PURE__ */ jsx11("span", { className: cn(
|
|
2198
2103
|
"truncate font-['DM_Sans'] font-medium leading-none text-center",
|
|
2199
2104
|
size === "sm" ? "max-w-[100px] md:max-w-[120px]" : "max-w-[120px] md:max-w-[140px]"
|
|
2200
2105
|
), title: label, children: label }),
|
|
2201
|
-
removable && onRemove && /* @__PURE__ */
|
|
2106
|
+
removable && onRemove && /* @__PURE__ */ jsx11(
|
|
2202
2107
|
"button",
|
|
2203
2108
|
{
|
|
2204
2109
|
type: "button",
|
|
@@ -2217,7 +2122,7 @@ function FilterChip({
|
|
|
2217
2122
|
),
|
|
2218
2123
|
"aria-label": `Remove ${label} filter`,
|
|
2219
2124
|
tabIndex: disabled ? -1 : 0,
|
|
2220
|
-
children: /* @__PURE__ */
|
|
2125
|
+
children: /* @__PURE__ */ jsx11(X2, { className: "h-2 w-2 md:h-2 md:w-2" })
|
|
2221
2126
|
}
|
|
2222
2127
|
)
|
|
2223
2128
|
]
|
|
@@ -2231,7 +2136,7 @@ import { Suspense } from "react";
|
|
|
2231
2136
|
// src/components/social-icon-row.tsx
|
|
2232
2137
|
init_button();
|
|
2233
2138
|
import { Mail } from "lucide-react";
|
|
2234
|
-
import { jsx as
|
|
2139
|
+
import { jsx as jsx12, jsxs as jsxs10 } from "react/jsx-runtime";
|
|
2235
2140
|
var defaultLinks = [
|
|
2236
2141
|
{ platform: "github", href: "https://github.com/flamingo-stack", label: "GitHub" },
|
|
2237
2142
|
{ platform: "linkedin", href: "https://linkedin.com/company/flamingo.run", label: "LinkedIn" },
|
|
@@ -2241,51 +2146,51 @@ function renderSocialIcon(platform) {
|
|
|
2241
2146
|
const normalizedPlatform = platform.toLowerCase().trim();
|
|
2242
2147
|
switch (normalizedPlatform) {
|
|
2243
2148
|
case "github":
|
|
2244
|
-
return /* @__PURE__ */
|
|
2149
|
+
return /* @__PURE__ */ jsx12(GitHubIcon, { className: "w-5 h-5" });
|
|
2245
2150
|
case "twitter":
|
|
2246
2151
|
case "x":
|
|
2247
|
-
return /* @__PURE__ */
|
|
2152
|
+
return /* @__PURE__ */ jsx12(XLogo, { className: "w-5 h-5" });
|
|
2248
2153
|
case "reddit":
|
|
2249
|
-
return /* @__PURE__ */
|
|
2154
|
+
return /* @__PURE__ */ jsx12(RedditIcon, { className: "w-5 h-5", variant: "white" });
|
|
2250
2155
|
case "linkedin":
|
|
2251
|
-
return /* @__PURE__ */
|
|
2156
|
+
return /* @__PURE__ */ jsx12(LinkedInIcon, { className: "w-5 h-5" });
|
|
2252
2157
|
case "luma":
|
|
2253
|
-
return /* @__PURE__ */
|
|
2158
|
+
return /* @__PURE__ */ jsx12(LumaIcon, { className: "w-5 h-5" });
|
|
2254
2159
|
case "whatsapp":
|
|
2255
|
-
return /* @__PURE__ */
|
|
2160
|
+
return /* @__PURE__ */ jsx12(WhatsAppIcon, { className: "w-5 h-5" });
|
|
2256
2161
|
case "email":
|
|
2257
2162
|
case "mail":
|
|
2258
|
-
return /* @__PURE__ */
|
|
2163
|
+
return /* @__PURE__ */ jsx12(Mail, { className: "w-5 h-5" });
|
|
2259
2164
|
case "website":
|
|
2260
2165
|
case "web":
|
|
2261
2166
|
case "url":
|
|
2262
|
-
return /* @__PURE__ */
|
|
2167
|
+
return /* @__PURE__ */ jsx12(GlobeIcon, { className: "w-5 h-5" });
|
|
2263
2168
|
case "slack":
|
|
2264
|
-
return /* @__PURE__ */
|
|
2169
|
+
return /* @__PURE__ */ jsx12(SlackIcon, { className: "w-5 h-5", injectedColor: "white" });
|
|
2265
2170
|
case "discord":
|
|
2266
|
-
return /* @__PURE__ */
|
|
2171
|
+
return /* @__PURE__ */ jsx12(MessageCircleIcon, { className: "w-5 h-5" });
|
|
2267
2172
|
case "telegram":
|
|
2268
|
-
return /* @__PURE__ */
|
|
2173
|
+
return /* @__PURE__ */ jsx12(TelegramIcon, { className: "w-5 h-5" });
|
|
2269
2174
|
case "youtube":
|
|
2270
2175
|
case "yt":
|
|
2271
|
-
return /* @__PURE__ */
|
|
2176
|
+
return /* @__PURE__ */ jsx12(YouTubeIcon, { className: "w-5 h-5" });
|
|
2272
2177
|
case "instagram":
|
|
2273
2178
|
case "ig":
|
|
2274
|
-
return /* @__PURE__ */
|
|
2179
|
+
return /* @__PURE__ */ jsx12(InstagramIcon, { className: "w-5 h-5" });
|
|
2275
2180
|
case "facebook":
|
|
2276
2181
|
case "fb":
|
|
2277
|
-
return /* @__PURE__ */
|
|
2182
|
+
return /* @__PURE__ */ jsx12(FacebookIcon, { className: "w-5 h-5" });
|
|
2278
2183
|
case "copy":
|
|
2279
|
-
return /* @__PURE__ */
|
|
2184
|
+
return /* @__PURE__ */ jsx12(CopyIcon, { className: "w-5 h-5", color: "var(--ods-text-primary)" });
|
|
2280
2185
|
default:
|
|
2281
|
-
return /* @__PURE__ */
|
|
2186
|
+
return /* @__PURE__ */ jsx12(GlobeIcon, { className: "w-5 h-5" });
|
|
2282
2187
|
}
|
|
2283
2188
|
}
|
|
2284
2189
|
function SocialIconRow({ className = "", links = defaultLinks, variant, compact = false, groupByVisibility = false }) {
|
|
2285
2190
|
const resolvedVariant = variant !== void 0 ? variant : compact ? "transparent" : "outline";
|
|
2286
2191
|
const renderButton = (link, index) => {
|
|
2287
2192
|
const ariaLabel = link.label || link.platform;
|
|
2288
|
-
return link.onClick ? /* @__PURE__ */
|
|
2193
|
+
return link.onClick ? /* @__PURE__ */ jsx12(
|
|
2289
2194
|
Button,
|
|
2290
2195
|
{
|
|
2291
2196
|
type: "button",
|
|
@@ -2301,7 +2206,7 @@ function SocialIconRow({ className = "", links = defaultLinks, variant, compact
|
|
|
2301
2206
|
// Props-based linking — Button renders the anchor itself
|
|
2302
2207
|
// (openInNewTab carries target="_blank" + rel="noopener noreferrer");
|
|
2303
2208
|
// no asChild/<a> nesting.
|
|
2304
|
-
/* @__PURE__ */
|
|
2209
|
+
/* @__PURE__ */ jsx12(
|
|
2305
2210
|
Button,
|
|
2306
2211
|
{
|
|
2307
2212
|
variant: resolvedVariant,
|
|
@@ -2321,42 +2226,42 @@ function SocialIconRow({ className = "", links = defaultLinks, variant, compact
|
|
|
2321
2226
|
const external = links.filter((l) => l.visibility !== "internal");
|
|
2322
2227
|
const internal = links.filter((l) => l.visibility === "internal");
|
|
2323
2228
|
if (external.length > 0 && internal.length > 0) {
|
|
2324
|
-
return /* @__PURE__ */
|
|
2229
|
+
return /* @__PURE__ */ jsxs10("div", { className: rowClass, children: [
|
|
2325
2230
|
external.map((l, i) => renderButton(l, i)),
|
|
2326
|
-
/* @__PURE__ */
|
|
2231
|
+
/* @__PURE__ */ jsx12("span", { "aria-hidden": true, className: "self-stretch w-px my-1 bg-ods-border shrink-0" }),
|
|
2327
2232
|
internal.map((l, i) => renderButton(l, external.length + i))
|
|
2328
2233
|
] });
|
|
2329
2234
|
}
|
|
2330
2235
|
}
|
|
2331
|
-
return /* @__PURE__ */
|
|
2236
|
+
return /* @__PURE__ */ jsx12("div", { className: rowClass, children: links.map((link, index) => renderButton(link, index)) });
|
|
2332
2237
|
}
|
|
2333
2238
|
|
|
2334
2239
|
// src/components/footer.tsx
|
|
2335
|
-
import { Fragment as Fragment3, jsx as
|
|
2240
|
+
import { Fragment as Fragment3, jsx as jsx13, jsxs as jsxs11 } from "react/jsx-runtime";
|
|
2336
2241
|
function NavLinkSkeleton() {
|
|
2337
|
-
return /* @__PURE__ */
|
|
2242
|
+
return /* @__PURE__ */ jsx13(Skeleton, { className: "h-5 md:h-6 w-20 md:w-24" });
|
|
2338
2243
|
}
|
|
2339
2244
|
function Footer({ config, renderLink }) {
|
|
2340
2245
|
if (!config) {
|
|
2341
2246
|
console.warn("Footer: No config provided");
|
|
2342
2247
|
return null;
|
|
2343
2248
|
}
|
|
2344
|
-
return /* @__PURE__ */
|
|
2249
|
+
return /* @__PURE__ */ jsx13(UniversalFooter, { config, renderLink });
|
|
2345
2250
|
}
|
|
2346
2251
|
function UniversalFooter({ config, renderLink }) {
|
|
2347
|
-
const defaultRenderLink = (link) => /* @__PURE__ */
|
|
2252
|
+
const defaultRenderLink = (link) => /* @__PURE__ */ jsx13("a", { href: link.href, className: "font-body font-medium text-md md:text-md leading-[1.33] text-ods-text-primary hover:text-ods-accent-primary transition-colors", children: link.label });
|
|
2348
2253
|
const linkRenderer = renderLink || defaultRenderLink;
|
|
2349
|
-
return /* @__PURE__ */
|
|
2350
|
-
/* @__PURE__ */
|
|
2351
|
-
/* @__PURE__ */
|
|
2352
|
-
/* @__PURE__ */
|
|
2353
|
-
config.logo && /* @__PURE__ */
|
|
2354
|
-
config.nameElement || /* @__PURE__ */
|
|
2254
|
+
return /* @__PURE__ */ jsxs11("footer", { className: `w-full flex flex-col justify-center items-center ${config.backgroundColor || "bg-ods-bg-card"} px-6 py-10 relative gap-6 md:gap-6 min-h-[auto] md:min-h-[248px] z-50 border-t border-ods-border`, children: [
|
|
2255
|
+
/* @__PURE__ */ jsxs11("div", { className: "w-full grid grid-cols-2 lg:grid-cols-4 gap-6 md:gap-8 items-start", children: [
|
|
2256
|
+
/* @__PURE__ */ jsxs11("div", { className: "flex flex-col gap-4 md:gap-6 items-start text-left col-span-2 md:col-span-1 lg:col-span-1", children: [
|
|
2257
|
+
/* @__PURE__ */ jsxs11("div", { className: "flex items-center gap-2", children: [
|
|
2258
|
+
config.logo && /* @__PURE__ */ jsx13(Suspense, { fallback: /* @__PURE__ */ jsx13(Skeleton, { className: "w-8 h-8" }), children: config.logo }),
|
|
2259
|
+
config.nameElement || /* @__PURE__ */ jsx13("span", { className: "font-heading text-heading-5 font-bold text-ods-text-primary whitespace-nowrap", children: config.name })
|
|
2355
2260
|
] }),
|
|
2356
|
-
!config.moveDescriptionToRight && /* @__PURE__ */
|
|
2357
|
-
/* @__PURE__ */
|
|
2358
|
-
config.belowDescriptionContent && /* @__PURE__ */
|
|
2359
|
-
!config.hideSocialRow && /* @__PURE__ */
|
|
2261
|
+
!config.moveDescriptionToRight && /* @__PURE__ */ jsxs11(Fragment3, { children: [
|
|
2262
|
+
/* @__PURE__ */ jsx13("p", { className: "font-body font-medium text-sm md:text-sm leading-[1.43] text-ods-text-primary", children: config.description }),
|
|
2263
|
+
config.belowDescriptionContent && /* @__PURE__ */ jsx13(Suspense, { fallback: /* @__PURE__ */ jsx13(Skeleton, { className: "h-8 w-full" }), children: config.belowDescriptionContent }),
|
|
2264
|
+
!config.hideSocialRow && /* @__PURE__ */ jsx13(
|
|
2360
2265
|
SocialIconRow,
|
|
2361
2266
|
{
|
|
2362
2267
|
className: "pt-2",
|
|
@@ -2364,22 +2269,22 @@ function UniversalFooter({ config, renderLink }) {
|
|
|
2364
2269
|
}
|
|
2365
2270
|
)
|
|
2366
2271
|
] }),
|
|
2367
|
-
config.moveDescriptionToRight && config.keepBelowDescriptionLeft && config.belowDescriptionContent && /* @__PURE__ */
|
|
2272
|
+
config.moveDescriptionToRight && config.keepBelowDescriptionLeft && config.belowDescriptionContent && /* @__PURE__ */ jsx13(Suspense, { fallback: /* @__PURE__ */ jsx13(Skeleton, { className: "h-8 w-full" }), children: config.belowDescriptionContent })
|
|
2368
2273
|
] }),
|
|
2369
|
-
config.sections.map((section, index) => /* @__PURE__ */
|
|
2370
|
-
/* @__PURE__ */
|
|
2371
|
-
/* @__PURE__ */
|
|
2274
|
+
config.sections.map((section, index) => /* @__PURE__ */ jsxs11("div", { className: "flex flex-col gap-3 items-start text-left col-span-1", children: [
|
|
2275
|
+
/* @__PURE__ */ jsx13("h3", { className: "text-h5 tracking-[-0.02em] text-ods-text-muted", children: section.title }),
|
|
2276
|
+
/* @__PURE__ */ jsx13("div", { className: "flex flex-col gap-3", children: section.links.map((link, linkIndex) => /* @__PURE__ */ jsx13(Suspense, { fallback: /* @__PURE__ */ jsx13(NavLinkSkeleton, {}), children: linkRenderer(link) }, linkIndex)) })
|
|
2372
2277
|
] }, index)),
|
|
2373
|
-
config.customComponent && /* @__PURE__ */
|
|
2374
|
-
(config.rightColumnContent || config.moveDescriptionToRight) && /* @__PURE__ */
|
|
2375
|
-
config.moveDescriptionToRight && /* @__PURE__ */
|
|
2376
|
-
/* @__PURE__ */
|
|
2377
|
-
config.belowDescriptionContent && !config.keepBelowDescriptionLeft && /* @__PURE__ */
|
|
2278
|
+
config.customComponent && /* @__PURE__ */ jsx13("div", { className: "flex flex-col col-span-2 md:col-span-1 lg:col-span-1 justify-center", children: /* @__PURE__ */ jsx13(Suspense, { fallback: /* @__PURE__ */ jsx13(Skeleton, { className: "h-32 w-full" }), children: config.customComponent }) }),
|
|
2279
|
+
(config.rightColumnContent || config.moveDescriptionToRight) && /* @__PURE__ */ jsxs11("div", { className: "flex flex-col col-span-2 md:col-span-1 lg:col-span-1 justify-start gap-4 md:gap-6", children: [
|
|
2280
|
+
config.moveDescriptionToRight && /* @__PURE__ */ jsxs11(Fragment3, { children: [
|
|
2281
|
+
/* @__PURE__ */ jsx13("p", { className: "font-body font-medium text-sm md:text-sm leading-[1.43] text-ods-text-primary", children: config.description }),
|
|
2282
|
+
config.belowDescriptionContent && !config.keepBelowDescriptionLeft && /* @__PURE__ */ jsx13(Suspense, { fallback: /* @__PURE__ */ jsx13(Skeleton, { className: "h-8 w-full" }), children: config.belowDescriptionContent })
|
|
2378
2283
|
] }),
|
|
2379
|
-
config.rightColumnContent && /* @__PURE__ */
|
|
2284
|
+
config.rightColumnContent && /* @__PURE__ */ jsx13(Suspense, { fallback: /* @__PURE__ */ jsx13(Skeleton, { className: "h-32 w-full" }), children: config.rightColumnContent })
|
|
2380
2285
|
] })
|
|
2381
2286
|
] }),
|
|
2382
|
-
/* @__PURE__ */
|
|
2287
|
+
/* @__PURE__ */ jsxs11("p", { className: "font-body font-medium text-md md:text-md leading-[1.33] text-center w-full text-ods-text-muted pt-4 md:pt-0", children: [
|
|
2383
2288
|
"\xA9 ",
|
|
2384
2289
|
(/* @__PURE__ */ new Date()).getFullYear(),
|
|
2385
2290
|
" ",
|
|
@@ -2689,19 +2594,19 @@ init_unified_pagination();
|
|
|
2689
2594
|
init_next_navigation();
|
|
2690
2595
|
import { useCallback } from "react";
|
|
2691
2596
|
init_button();
|
|
2692
|
-
import { jsx as
|
|
2597
|
+
import { jsx as jsx14 } from "react/jsx-runtime";
|
|
2693
2598
|
function FooterWaitlistButton({ className }) {
|
|
2694
2599
|
const router = useRouter();
|
|
2695
2600
|
const runtime = useChatRuntime();
|
|
2696
2601
|
const handleClick = useCallback(() => {
|
|
2697
2602
|
executeNavigationImperative({ runtime, href: "/waitlist#top", fallbackNavigate: router.push });
|
|
2698
2603
|
}, [router, runtime]);
|
|
2699
|
-
return /* @__PURE__ */
|
|
2604
|
+
return /* @__PURE__ */ jsx14(
|
|
2700
2605
|
Button,
|
|
2701
2606
|
{
|
|
2702
2607
|
onClick: handleClick,
|
|
2703
2608
|
className,
|
|
2704
|
-
leftIcon: /* @__PURE__ */
|
|
2609
|
+
leftIcon: /* @__PURE__ */ jsx14(OpenFrameLogo, {}),
|
|
2705
2610
|
children: "Join Waitlist"
|
|
2706
2611
|
}
|
|
2707
2612
|
);
|
|
@@ -2711,7 +2616,7 @@ function FooterWaitlistButton({ className }) {
|
|
|
2711
2616
|
init_button();
|
|
2712
2617
|
import { useRef, useState as useState2 } from "react";
|
|
2713
2618
|
import { Loader2, Image as ImageIcon2, Upload, X as X3 } from "lucide-react";
|
|
2714
|
-
import { Fragment as Fragment4, jsx as
|
|
2619
|
+
import { Fragment as Fragment4, jsx as jsx15, jsxs as jsxs12 } from "react/jsx-runtime";
|
|
2715
2620
|
function HeroImageUploader({ imageUrl, onChange, uploadEndpoint, height = 300, objectFit = "cover", showReplaceButton = true, deferUpload = false, onUpload, onDelete }) {
|
|
2716
2621
|
const inputRef = useRef(null);
|
|
2717
2622
|
const { toast } = useToast();
|
|
@@ -2787,46 +2692,46 @@ function HeroImageUploader({ imageUrl, onChange, uploadEndpoint, height = 300, o
|
|
|
2787
2692
|
onChange(void 0);
|
|
2788
2693
|
};
|
|
2789
2694
|
const heightStyle = typeof height === "number" ? `${height}px` : height;
|
|
2790
|
-
return /* @__PURE__ */
|
|
2791
|
-
imageUrl ? /* @__PURE__ */
|
|
2792
|
-
/* @__PURE__ */
|
|
2793
|
-
/* @__PURE__ */
|
|
2794
|
-
showReplaceButton && /* @__PURE__ */
|
|
2695
|
+
return /* @__PURE__ */ jsxs12("div", { className: "w-full h-full max-h-full space-y-2 min-h-[300px]", children: [
|
|
2696
|
+
imageUrl ? /* @__PURE__ */ jsxs12("div", { className: "relative group w-full aspect-square md:aspect-auto h-auto md:h-full flex items-center justify-center overflow-hidden", style: { height: heightStyle }, children: [
|
|
2697
|
+
/* @__PURE__ */ jsx15("img", { src: imageUrl, className: `absolute inset-0 w-full h-full object-${objectFit}`, alt: "Cover" }),
|
|
2698
|
+
/* @__PURE__ */ jsxs12("div", { className: "absolute inset-0 bg-black/40 opacity-0 group-hover:opacity-100 flex items-center justify-center gap-4 transition-opacity rounded-lg", children: [
|
|
2699
|
+
showReplaceButton && /* @__PURE__ */ jsx15(
|
|
2795
2700
|
Button,
|
|
2796
2701
|
{
|
|
2797
2702
|
variant: "outline",
|
|
2798
2703
|
size: "icon",
|
|
2799
2704
|
onClick: openDialog,
|
|
2800
2705
|
className: "bg-white text-black hover:bg-gray-100 rounded-full w-12 h-12",
|
|
2801
|
-
children: /* @__PURE__ */
|
|
2706
|
+
children: /* @__PURE__ */ jsx15(Upload, { className: "h-5 w-5" })
|
|
2802
2707
|
}
|
|
2803
2708
|
),
|
|
2804
|
-
/* @__PURE__ */
|
|
2709
|
+
/* @__PURE__ */ jsx15(
|
|
2805
2710
|
Button,
|
|
2806
2711
|
{
|
|
2807
2712
|
variant: "outline",
|
|
2808
2713
|
size: "icon",
|
|
2809
2714
|
onClick: () => handleRemove(),
|
|
2810
2715
|
className: "bg-white text-black hover:bg-gray-100 rounded-full w-12 h-12",
|
|
2811
|
-
children: /* @__PURE__ */
|
|
2716
|
+
children: /* @__PURE__ */ jsx15(X3, { className: "h-5 w-5" })
|
|
2812
2717
|
}
|
|
2813
2718
|
)
|
|
2814
2719
|
] })
|
|
2815
|
-
] }) : /* @__PURE__ */
|
|
2720
|
+
] }) : /* @__PURE__ */ jsx15(
|
|
2816
2721
|
"div",
|
|
2817
2722
|
{
|
|
2818
2723
|
className: `w-full h-full border-2 border-dashed ${uploading ? "border-ods-accent" : "border-ods-border hover:border-ods-accent"} rounded-lg flex flex-col items-center justify-center cursor-pointer bg-ods-bg`,
|
|
2819
2724
|
style: { height: heightStyle },
|
|
2820
2725
|
onClick: openDialog,
|
|
2821
|
-
children: uploading ? /* @__PURE__ */
|
|
2822
|
-
/* @__PURE__ */
|
|
2823
|
-
/* @__PURE__ */
|
|
2824
|
-
/* @__PURE__ */
|
|
2825
|
-
/* @__PURE__ */
|
|
2726
|
+
children: uploading ? /* @__PURE__ */ jsx15(Loader2, { className: "h-8 w-8 animate-spin text-ods-accent" }) : /* @__PURE__ */ jsxs12(Fragment4, { children: [
|
|
2727
|
+
/* @__PURE__ */ jsx15(ImageIcon2, { className: "h-12 w-12 text-ods-text-secondary" }),
|
|
2728
|
+
/* @__PURE__ */ jsx15("span", { className: "text-ods-text-primary font-['DM_Sans'] text-[16px] font-medium mt-2", children: "Upload cover image" }),
|
|
2729
|
+
/* @__PURE__ */ jsx15("span", { className: "text-ods-text-secondary font-['DM_Sans'] text-[14px] mt-1", children: "Click to upload or drag and drop" }),
|
|
2730
|
+
/* @__PURE__ */ jsx15("span", { className: "text-ods-text-secondary font-['DM_Sans'] text-[12px]", children: "PNG, JPEG, WebP, GIF up to 5MB" })
|
|
2826
2731
|
] })
|
|
2827
2732
|
}
|
|
2828
2733
|
),
|
|
2829
|
-
/* @__PURE__ */
|
|
2734
|
+
/* @__PURE__ */ jsx15("input", { ref: inputRef, type: "file", accept: "image/*", onChange: handleSelect, className: "hidden" })
|
|
2830
2735
|
] });
|
|
2831
2736
|
}
|
|
2832
2737
|
|
|
@@ -2845,13 +2750,13 @@ var CompareIcon2 = GitCompare;
|
|
|
2845
2750
|
|
|
2846
2751
|
// src/components/icons-block.tsx
|
|
2847
2752
|
import { Sun, Moon, CheckCircle, Github, PlusCircle } from "lucide-react";
|
|
2848
|
-
import { jsx as
|
|
2753
|
+
import { jsx as jsx16, jsxs as jsxs13 } from "react/jsx-runtime";
|
|
2849
2754
|
var SunIcon2 = Sun;
|
|
2850
2755
|
var MoonIcon2 = Moon;
|
|
2851
2756
|
var CheckCircleIcon3 = CheckCircle;
|
|
2852
2757
|
var GitHubIcon2 = Github;
|
|
2853
2758
|
var PlusCircleIcon2 = PlusCircle;
|
|
2854
|
-
var
|
|
2759
|
+
var OpenmspLogo2 = () => /* @__PURE__ */ jsx16("div", { children: "Logo" });
|
|
2855
2760
|
var availableIcons = [
|
|
2856
2761
|
VendorDirectoryIcon2,
|
|
2857
2762
|
OpenSourceIcon2,
|
|
@@ -2864,7 +2769,7 @@ var availableIcons = [
|
|
|
2864
2769
|
CheckCircleIcon3,
|
|
2865
2770
|
GitHubIcon2,
|
|
2866
2771
|
PlusCircleIcon2,
|
|
2867
|
-
|
|
2772
|
+
OpenmspLogo2
|
|
2868
2773
|
];
|
|
2869
2774
|
function ResponsiveIconsBlock({ loading = false }) {
|
|
2870
2775
|
const [columns, setColumns] = useState3(24);
|
|
@@ -2914,17 +2819,17 @@ function ResponsiveIconsBlock({ loading = false }) {
|
|
|
2914
2819
|
return iconGrid[row]?.[col] || availableIcons[0];
|
|
2915
2820
|
};
|
|
2916
2821
|
if (loading || iconGrid.length === 0) {
|
|
2917
|
-
return /* @__PURE__ */
|
|
2822
|
+
return /* @__PURE__ */ jsx16(
|
|
2918
2823
|
"div",
|
|
2919
2824
|
{
|
|
2920
2825
|
className: "w-full h-[80px] md:h-[112px] bg-[#1A1A1A] relative overflow-hidden",
|
|
2921
2826
|
role: "presentation",
|
|
2922
2827
|
"aria-hidden": "true",
|
|
2923
|
-
children: /* @__PURE__ */
|
|
2828
|
+
children: /* @__PURE__ */ jsx16("div", { className: "absolute inset-0 animate-pulse bg-[#2A2A2A]/60" })
|
|
2924
2829
|
}
|
|
2925
2830
|
);
|
|
2926
2831
|
}
|
|
2927
|
-
return /* @__PURE__ */
|
|
2832
|
+
return /* @__PURE__ */ jsxs13(
|
|
2928
2833
|
"div",
|
|
2929
2834
|
{
|
|
2930
2835
|
className: "w-full h-[80px] md:h-[112px] overflow-hidden bg-[#1A1A1A] relative z-10",
|
|
@@ -2932,14 +2837,14 @@ function ResponsiveIconsBlock({ loading = false }) {
|
|
|
2932
2837
|
role: "presentation",
|
|
2933
2838
|
"aria-hidden": "true",
|
|
2934
2839
|
children: [
|
|
2935
|
-
/* @__PURE__ */
|
|
2840
|
+
/* @__PURE__ */ jsx16("style", { children: `
|
|
2936
2841
|
.icons-block svg,
|
|
2937
2842
|
.icons-block svg * {
|
|
2938
2843
|
filter: grayscale(100%) brightness(0) invert(1) brightness(0.4) !important;
|
|
2939
2844
|
fill: currentColor !important;
|
|
2940
2845
|
}
|
|
2941
2846
|
` }),
|
|
2942
|
-
/* @__PURE__ */
|
|
2847
|
+
/* @__PURE__ */ jsx16(
|
|
2943
2848
|
"div",
|
|
2944
2849
|
{
|
|
2945
2850
|
className: "grid h-full icons-block w-full",
|
|
@@ -2951,7 +2856,7 @@ function ResponsiveIconsBlock({ loading = false }) {
|
|
|
2951
2856
|
const col = idx % displayColumns;
|
|
2952
2857
|
const row = Math.floor(idx / displayColumns);
|
|
2953
2858
|
const IconComponent = getIconForIndex(idx);
|
|
2954
|
-
return /* @__PURE__ */
|
|
2859
|
+
return /* @__PURE__ */ jsx16(
|
|
2955
2860
|
"div",
|
|
2956
2861
|
{
|
|
2957
2862
|
className: "flex items-center justify-center w-full h-full",
|
|
@@ -2964,7 +2869,7 @@ function ResponsiveIconsBlock({ loading = false }) {
|
|
|
2964
2869
|
boxSizing: "border-box"
|
|
2965
2870
|
},
|
|
2966
2871
|
role: "presentation",
|
|
2967
|
-
children: /* @__PURE__ */
|
|
2872
|
+
children: /* @__PURE__ */ jsx16(
|
|
2968
2873
|
IconComponent,
|
|
2969
2874
|
{
|
|
2970
2875
|
width: 16,
|
|
@@ -2990,7 +2895,7 @@ import { useCallback as useCallback2, useState as useState4 } from "react";
|
|
|
2990
2895
|
import Cropper from "react-easy-crop";
|
|
2991
2896
|
init_cn();
|
|
2992
2897
|
import { Check, RotateCcw } from "lucide-react";
|
|
2993
|
-
import { jsx as
|
|
2898
|
+
import { jsx as jsx17, jsxs as jsxs14 } from "react/jsx-runtime";
|
|
2994
2899
|
function loadImage(src) {
|
|
2995
2900
|
return new Promise((resolve, reject) => {
|
|
2996
2901
|
const img = new Image();
|
|
@@ -3078,7 +2983,7 @@ var ImageCropper = ({
|
|
|
3078
2983
|
onCancel?.();
|
|
3079
2984
|
}
|
|
3080
2985
|
};
|
|
3081
|
-
return /* @__PURE__ */
|
|
2986
|
+
return /* @__PURE__ */ jsxs14(
|
|
3082
2987
|
"div",
|
|
3083
2988
|
{
|
|
3084
2989
|
className: cn(
|
|
@@ -3089,14 +2994,14 @@ var ImageCropper = ({
|
|
|
3089
2994
|
tabIndex: 0,
|
|
3090
2995
|
"aria-label": "Image cropper",
|
|
3091
2996
|
children: [
|
|
3092
|
-
/* @__PURE__ */
|
|
2997
|
+
/* @__PURE__ */ jsx17(
|
|
3093
2998
|
"div",
|
|
3094
2999
|
{
|
|
3095
3000
|
className: cn(
|
|
3096
3001
|
"relative w-full aspect-square md:aspect-video rounded-md overflow-hidden",
|
|
3097
3002
|
checkerBg
|
|
3098
3003
|
),
|
|
3099
|
-
children: /* @__PURE__ */
|
|
3004
|
+
children: /* @__PURE__ */ jsx17(
|
|
3100
3005
|
Cropper,
|
|
3101
3006
|
{
|
|
3102
3007
|
image: src,
|
|
@@ -3115,10 +3020,10 @@ var ImageCropper = ({
|
|
|
3115
3020
|
)
|
|
3116
3021
|
}
|
|
3117
3022
|
),
|
|
3118
|
-
/* @__PURE__ */
|
|
3119
|
-
/* @__PURE__ */
|
|
3120
|
-
/* @__PURE__ */
|
|
3121
|
-
/* @__PURE__ */
|
|
3023
|
+
/* @__PURE__ */ jsxs14("div", { className: "flex flex-col gap-4", children: [
|
|
3024
|
+
/* @__PURE__ */ jsxs14("div", { className: "flex items-center gap-3", children: [
|
|
3025
|
+
/* @__PURE__ */ jsx17("span", { className: "min-w-[60px] text-sm", children: "Zoom" }),
|
|
3026
|
+
/* @__PURE__ */ jsx17(
|
|
3122
3027
|
Slider,
|
|
3123
3028
|
{
|
|
3124
3029
|
min: 1,
|
|
@@ -3131,9 +3036,9 @@ var ImageCropper = ({
|
|
|
3131
3036
|
}
|
|
3132
3037
|
)
|
|
3133
3038
|
] }),
|
|
3134
|
-
/* @__PURE__ */
|
|
3135
|
-
/* @__PURE__ */
|
|
3136
|
-
/* @__PURE__ */
|
|
3039
|
+
/* @__PURE__ */ jsxs14("div", { className: "flex items-center gap-3", children: [
|
|
3040
|
+
/* @__PURE__ */ jsx17("span", { className: "min-w-[60px] text-sm", children: "Rotate" }),
|
|
3041
|
+
/* @__PURE__ */ jsx17(
|
|
3137
3042
|
Slider,
|
|
3138
3043
|
{
|
|
3139
3044
|
min: 0,
|
|
@@ -3145,21 +3050,21 @@ var ImageCropper = ({
|
|
|
3145
3050
|
className: "flex-1"
|
|
3146
3051
|
}
|
|
3147
3052
|
),
|
|
3148
|
-
/* @__PURE__ */
|
|
3053
|
+
/* @__PURE__ */ jsx17(
|
|
3149
3054
|
Button,
|
|
3150
3055
|
{
|
|
3151
3056
|
variant: "outline",
|
|
3152
3057
|
size: "icon",
|
|
3153
3058
|
onClick: () => setRotation(0),
|
|
3154
3059
|
"aria-label": "Reset rotation",
|
|
3155
|
-
children: /* @__PURE__ */
|
|
3060
|
+
children: /* @__PURE__ */ jsx17(RotateCcw, { className: "h-4 w-4" })
|
|
3156
3061
|
}
|
|
3157
3062
|
)
|
|
3158
3063
|
] })
|
|
3159
3064
|
] }),
|
|
3160
|
-
/* @__PURE__ */
|
|
3161
|
-
onCancel && /* @__PURE__ */
|
|
3162
|
-
/* @__PURE__ */
|
|
3065
|
+
/* @__PURE__ */ jsxs14("div", { className: "flex justify-end gap-2 mt-2", children: [
|
|
3066
|
+
onCancel && /* @__PURE__ */ jsx17(Button, { variant: "outline", onClick: onCancel, "aria-label": "Cancel crop", children: "Cancel" }),
|
|
3067
|
+
/* @__PURE__ */ jsx17(
|
|
3163
3068
|
Button,
|
|
3164
3069
|
{
|
|
3165
3070
|
variant: "accent",
|
|
@@ -3167,7 +3072,7 @@ var ImageCropper = ({
|
|
|
3167
3072
|
const result = await exportCrop();
|
|
3168
3073
|
if (result) onComplete(result);
|
|
3169
3074
|
},
|
|
3170
|
-
leftIcon: /* @__PURE__ */
|
|
3075
|
+
leftIcon: /* @__PURE__ */ jsx17(Check, { className: "h-4 w-4" }),
|
|
3171
3076
|
"aria-label": "Apply crop",
|
|
3172
3077
|
children: "Apply"
|
|
3173
3078
|
}
|
|
@@ -3180,11 +3085,11 @@ var ImageCropper = ({
|
|
|
3180
3085
|
|
|
3181
3086
|
// src/components/metric-value.tsx
|
|
3182
3087
|
init_cn();
|
|
3183
|
-
import { jsx as
|
|
3088
|
+
import { jsx as jsx18, jsxs as jsxs15 } from "react/jsx-runtime";
|
|
3184
3089
|
function MetricValue({ value, label, className }) {
|
|
3185
|
-
return /* @__PURE__ */
|
|
3090
|
+
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: [
|
|
3186
3091
|
value,
|
|
3187
|
-
/* @__PURE__ */
|
|
3092
|
+
/* @__PURE__ */ jsx18("span", { className: "text-sm text-ods-text-secondary", children: label })
|
|
3188
3093
|
] });
|
|
3189
3094
|
}
|
|
3190
3095
|
|
|
@@ -3194,14 +3099,14 @@ init_cn();
|
|
|
3194
3099
|
// src/components/square-avatar.tsx
|
|
3195
3100
|
init_cn();
|
|
3196
3101
|
import React4 from "react";
|
|
3197
|
-
import { jsx as
|
|
3102
|
+
import { jsx as jsx19 } from "react/jsx-runtime";
|
|
3198
3103
|
function SquareAvatar2({ src, fallbackName = "", size = 56, fullWidth = false, className }) {
|
|
3199
3104
|
const initials = React4.useMemo(() => {
|
|
3200
3105
|
if (!fallbackName) return "";
|
|
3201
3106
|
return fallbackName.split(" ").map((n) => n.charAt(0)).join("").slice(0, 2).toUpperCase();
|
|
3202
3107
|
}, [fallbackName]);
|
|
3203
3108
|
const style = fullWidth ? {} : { width: size, height: size };
|
|
3204
|
-
return /* @__PURE__ */
|
|
3109
|
+
return /* @__PURE__ */ jsx19(
|
|
3205
3110
|
"div",
|
|
3206
3111
|
{
|
|
3207
3112
|
className: cn(
|
|
@@ -3212,8 +3117,8 @@ function SquareAvatar2({ src, fallbackName = "", size = 56, fullWidth = false, c
|
|
|
3212
3117
|
style,
|
|
3213
3118
|
children: src ? (
|
|
3214
3119
|
// eslint-disable-next-line @next/next/no-img-element
|
|
3215
|
-
/* @__PURE__ */
|
|
3216
|
-
) : /* @__PURE__ */
|
|
3120
|
+
/* @__PURE__ */ jsx19("img", { src: getProxiedImageUrl(src) || src, alt: "Avatar", className: "object-cover w-full h-full" })
|
|
3121
|
+
) : /* @__PURE__ */ jsx19("span", { className: cn(
|
|
3217
3122
|
"font-['DM_Sans'] text-ods-text-primary font-bold",
|
|
3218
3123
|
fullWidth ? "text-4xl" : "text-lg"
|
|
3219
3124
|
), children: initials })
|
|
@@ -3222,23 +3127,23 @@ function SquareAvatar2({ src, fallbackName = "", size = 56, fullWidth = false, c
|
|
|
3222
3127
|
}
|
|
3223
3128
|
|
|
3224
3129
|
// src/components/msp-display.tsx
|
|
3225
|
-
import { jsx as
|
|
3130
|
+
import { jsx as jsx20, jsxs as jsxs16 } from "react/jsx-runtime";
|
|
3226
3131
|
function MSPDisplay({ name, logoUrl, size = 40, className }) {
|
|
3227
|
-
return /* @__PURE__ */
|
|
3228
|
-
/* @__PURE__ */
|
|
3229
|
-
/* @__PURE__ */
|
|
3132
|
+
return /* @__PURE__ */ jsxs16("div", { className: cn("flex items-center gap-2 min-w-0", className), children: [
|
|
3133
|
+
/* @__PURE__ */ jsx20(SquareAvatar2, { src: logoUrl ?? void 0, fallbackName: name, size }),
|
|
3134
|
+
/* @__PURE__ */ jsx20("h2", { className: "truncate pl-2", children: name })
|
|
3230
3135
|
] });
|
|
3231
3136
|
}
|
|
3232
3137
|
|
|
3233
3138
|
// src/components/open-source-features.tsx
|
|
3234
3139
|
import { Terminal, DollarSign as DollarSign2, Network, Users as Users2 } from "lucide-react";
|
|
3235
|
-
import { jsx as
|
|
3140
|
+
import { jsx as jsx21, jsxs as jsxs17 } from "react/jsx-runtime";
|
|
3236
3141
|
|
|
3237
3142
|
// src/components/index.ts
|
|
3238
3143
|
init_pagination();
|
|
3239
3144
|
|
|
3240
3145
|
// src/components/pricing-display.tsx
|
|
3241
|
-
import { jsx as
|
|
3146
|
+
import { jsx as jsx22, jsxs as jsxs18 } from "react/jsx-runtime";
|
|
3242
3147
|
var PRICING_STYLES = {
|
|
3243
3148
|
// Comparison table style (current default)
|
|
3244
3149
|
comparison: {
|
|
@@ -3274,19 +3179,19 @@ function PricingDisplay({
|
|
|
3274
3179
|
styleConfig = PRICING_STYLES.comparison
|
|
3275
3180
|
}) {
|
|
3276
3181
|
if (typeof pricing === "string") {
|
|
3277
|
-
return /* @__PURE__ */
|
|
3182
|
+
return /* @__PURE__ */ jsx22(LegacyPricingDisplay, { pricing, className, styleConfig });
|
|
3278
3183
|
}
|
|
3279
3184
|
const pricingArray = Array.isArray(pricing) ? pricing : [pricing];
|
|
3280
3185
|
if (!pricingArray || pricingArray.length === 0) {
|
|
3281
|
-
return /* @__PURE__ */
|
|
3186
|
+
return /* @__PURE__ */ jsx22("span", { className: `${styleConfig.priceTextColor} ${styleConfig.priceTextSize} ${styleConfig.fontFamily} ${className}`, children: "No pricing data" });
|
|
3282
3187
|
}
|
|
3283
3188
|
if (pricingArray.length === 1) {
|
|
3284
3189
|
const item = pricingArray[0];
|
|
3285
3190
|
const price = item.ranges?.[0]?.min || 0;
|
|
3286
3191
|
const unit = item.ranges?.[0]?.unit;
|
|
3287
|
-
return /* @__PURE__ */
|
|
3288
|
-
/* @__PURE__ */
|
|
3289
|
-
unit && /* @__PURE__ */
|
|
3192
|
+
return /* @__PURE__ */ jsxs18("span", { className: `${styleConfig.fontFamily} ${className}`, children: [
|
|
3193
|
+
/* @__PURE__ */ jsx22("span", { className: `${styleConfig.priceTextColor} ${styleConfig.priceTextSize}`, children: formatPriceValue(price, styleConfig.showTildePrefix) }),
|
|
3194
|
+
unit && /* @__PURE__ */ jsxs18("span", { className: `${styleConfig.secondaryTextColor} ${styleConfig.secondaryTextSize}`, children: [
|
|
3290
3195
|
"/",
|
|
3291
3196
|
unit
|
|
3292
3197
|
] })
|
|
@@ -3294,9 +3199,9 @@ function PricingDisplay({
|
|
|
3294
3199
|
}
|
|
3295
3200
|
const priceValues = pricingArray.map((item) => formatPriceValue(item.ranges?.[0]?.min || 0, styleConfig.showTildePrefix));
|
|
3296
3201
|
const itemWithUnit = pricingArray.find((item) => item.ranges?.[0]?.unit);
|
|
3297
|
-
return /* @__PURE__ */
|
|
3298
|
-
/* @__PURE__ */
|
|
3299
|
-
itemWithUnit && itemWithUnit.ranges?.[0]?.unit && /* @__PURE__ */
|
|
3202
|
+
return /* @__PURE__ */ jsxs18("span", { className: `${styleConfig.fontFamily} ${className}`, children: [
|
|
3203
|
+
/* @__PURE__ */ jsx22("span", { className: `${styleConfig.priceTextColor} ${styleConfig.priceTextSize}`, children: priceValues.join(" | ") }),
|
|
3204
|
+
itemWithUnit && itemWithUnit.ranges?.[0]?.unit && /* @__PURE__ */ jsxs18("span", { className: `${styleConfig.secondaryTextColor} ${styleConfig.secondaryTextSize}`, children: [
|
|
3300
3205
|
"/",
|
|
3301
3206
|
itemWithUnit.ranges[0].unit
|
|
3302
3207
|
] })
|
|
@@ -3317,7 +3222,7 @@ function LegacyPricingDisplay({
|
|
|
3317
3222
|
styleConfig = PRICING_STYLES.comparison
|
|
3318
3223
|
}) {
|
|
3319
3224
|
if (pricing === "Free" || pricing === "No pricing data") {
|
|
3320
|
-
return /* @__PURE__ */
|
|
3225
|
+
return /* @__PURE__ */ jsx22("span", { className: `${styleConfig.priceTextColor} ${styleConfig.priceTextSize} ${styleConfig.fontFamily} ${className}`, children: pricing });
|
|
3321
3226
|
}
|
|
3322
3227
|
const parsePricing = (pricingStr) => {
|
|
3323
3228
|
if (pricingStr.includes(", ")) {
|
|
@@ -3373,23 +3278,17 @@ function LegacyPricingDisplay({
|
|
|
3373
3278
|
};
|
|
3374
3279
|
};
|
|
3375
3280
|
const { mainValue, secondaryInfo } = parsePricing(pricing);
|
|
3376
|
-
return /* @__PURE__ */
|
|
3377
|
-
/* @__PURE__ */
|
|
3378
|
-
secondaryInfo && /* @__PURE__ */
|
|
3281
|
+
return /* @__PURE__ */ jsxs18("span", { className: `${styleConfig.fontFamily} ${className}`, children: [
|
|
3282
|
+
/* @__PURE__ */ jsx22("span", { className: `${styleConfig.priceTextColor} ${styleConfig.priceTextSize}`, children: mainValue }),
|
|
3283
|
+
secondaryInfo && /* @__PURE__ */ jsx22("span", { className: `${styleConfig.secondaryTextColor} ${styleConfig.secondaryTextSize}`, children: secondaryInfo })
|
|
3379
3284
|
] });
|
|
3380
3285
|
}
|
|
3381
3286
|
function formatPricingForDisplay(pricing) {
|
|
3382
3287
|
return pricing;
|
|
3383
3288
|
}
|
|
3384
3289
|
|
|
3385
|
-
// src/components/agent-mark.tsx
|
|
3386
|
-
import { jsx as jsx25 } from "react/jsx-runtime";
|
|
3387
|
-
function AgentMark({ agent, className = "", faeAvatarSrc = FAE_AVATAR_DATA_URI }) {
|
|
3388
|
-
return agent === "mingo" ? /* @__PURE__ */ jsx25(MingoIcon, { className, "aria-hidden": "true", focusable: "false" }) : /* @__PURE__ */ jsx25("img", { src: faeAvatarSrc, alt: "", className });
|
|
3389
|
-
}
|
|
3390
|
-
|
|
3391
3290
|
// src/components/results-count.tsx
|
|
3392
|
-
import { Fragment as Fragment5, jsx as
|
|
3291
|
+
import { Fragment as Fragment5, jsx as jsx23, jsxs as jsxs19 } from "react/jsx-runtime";
|
|
3393
3292
|
function ResultsCount({
|
|
3394
3293
|
currentPage,
|
|
3395
3294
|
pageSize,
|
|
@@ -3405,7 +3304,7 @@ function ResultsCount({
|
|
|
3405
3304
|
const plural = resultType === "vendors" ? "vendors" : "posts";
|
|
3406
3305
|
const singular = resultType === "vendors" ? "vendor" : "post";
|
|
3407
3306
|
const displayType = totalResults === 1 ? singular : plural;
|
|
3408
|
-
return /* @__PURE__ */
|
|
3307
|
+
return /* @__PURE__ */ jsx23("div", { className: "mb-6", children: /* @__PURE__ */ jsx23("p", { className: "text-ods-text-secondary text-sm font-['DM_Sans']", children: totalResults > 0 && /* @__PURE__ */ jsxs19(Fragment5, { children: [
|
|
3409
3308
|
"Showing ",
|
|
3410
3309
|
startIndex,
|
|
3411
3310
|
"-",
|
|
@@ -3414,17 +3313,77 @@ function ResultsCount({
|
|
|
3414
3313
|
totalResults,
|
|
3415
3314
|
" ",
|
|
3416
3315
|
displayType,
|
|
3417
|
-
sortingMessage && /* @__PURE__ */
|
|
3316
|
+
sortingMessage && /* @__PURE__ */ jsxs19("span", { className: "ml-2 text-ods-accent", children: [
|
|
3418
3317
|
"\u2022 ",
|
|
3419
3318
|
sortingMessage
|
|
3420
3319
|
] })
|
|
3421
3320
|
] }) }) });
|
|
3422
3321
|
}
|
|
3423
3322
|
|
|
3323
|
+
// src/components/openframe-logo.tsx
|
|
3324
|
+
import { jsx as jsx24, jsxs as jsxs20 } from "react/jsx-runtime";
|
|
3325
|
+
var OpenFrameLogo2 = ({ className, lowerPathColor, upperPathColor, ...props }) => {
|
|
3326
|
+
return /* @__PURE__ */ jsx24(
|
|
3327
|
+
"svg",
|
|
3328
|
+
{
|
|
3329
|
+
...props,
|
|
3330
|
+
className,
|
|
3331
|
+
width: "32",
|
|
3332
|
+
height: "32",
|
|
3333
|
+
viewBox: "0 0 32 32",
|
|
3334
|
+
fill: "none",
|
|
3335
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
3336
|
+
style: {
|
|
3337
|
+
"--fill-0": "currentColor",
|
|
3338
|
+
...props.style
|
|
3339
|
+
},
|
|
3340
|
+
children: /* @__PURE__ */ jsxs20("g", { children: [
|
|
3341
|
+
/* @__PURE__ */ jsxs20("g", { children: [
|
|
3342
|
+
/* @__PURE__ */ jsx24(
|
|
3343
|
+
"path",
|
|
3344
|
+
{
|
|
3345
|
+
d: "M21.3333 16.5333C21.3333 16.2388 21.5721 16 21.8667 16H26.1333C26.4279 16 26.6667 16.2388 26.6667 16.5333V20.8C26.6667 21.0946 26.4279 21.3333 26.1333 21.3333H21.8667C21.5721 21.3333 21.3333 21.0946 21.3333 20.8V16.5333Z",
|
|
3346
|
+
fill: lowerPathColor ?? "#ffffff"
|
|
3347
|
+
}
|
|
3348
|
+
),
|
|
3349
|
+
/* @__PURE__ */ jsx24(
|
|
3350
|
+
"path",
|
|
3351
|
+
{
|
|
3352
|
+
d: "M16 21.8667C16 21.5721 16.2388 21.3333 16.5333 21.3333H20.8C21.0946 21.3333 21.3333 21.5721 21.3333 21.8667V26.1333C21.3333 26.4279 21.0946 26.6667 20.8 26.6667H16.5333C16.2388 26.6667 16 26.4279 16 26.1333V21.8667Z",
|
|
3353
|
+
fill: lowerPathColor ?? "#ffffff"
|
|
3354
|
+
}
|
|
3355
|
+
),
|
|
3356
|
+
/* @__PURE__ */ jsx24(
|
|
3357
|
+
"path",
|
|
3358
|
+
{
|
|
3359
|
+
d: "M26.6667 21.8667C26.6667 21.5721 26.9054 21.3333 27.2 21.3333H31.4667C31.7612 21.3333 32 21.5721 32 21.8667V26.1333C32 26.4279 31.7612 26.6667 31.4667 26.6667H27.2C26.9054 26.6667 26.6667 26.4279 26.6667 26.1333V21.8667Z",
|
|
3360
|
+
fill: lowerPathColor ?? "#ffffff"
|
|
3361
|
+
}
|
|
3362
|
+
),
|
|
3363
|
+
/* @__PURE__ */ jsx24(
|
|
3364
|
+
"path",
|
|
3365
|
+
{
|
|
3366
|
+
d: "M21.3333 27.2C21.3333 26.9054 21.5721 26.6667 21.8667 26.6667H26.1333C26.4279 26.6667 26.6667 26.9054 26.6667 27.2V31.4667C26.6667 31.7612 26.4279 32 26.1333 32H21.8667C21.5721 32 21.3333 31.7612 21.3333 31.4667V27.2Z",
|
|
3367
|
+
fill: lowerPathColor ?? "#ffffff"
|
|
3368
|
+
}
|
|
3369
|
+
)
|
|
3370
|
+
] }),
|
|
3371
|
+
/* @__PURE__ */ jsx24(
|
|
3372
|
+
"path",
|
|
3373
|
+
{
|
|
3374
|
+
d: "M30.9333 0H1.06667C0.477563 0 0 0.477564 0 1.06667V30.9333C0 31.5224 0.477563 32 1.06667 32H14.9333C15.5224 32 16 31.5224 16 30.9333V27.7333C16 27.1442 15.5224 26.6667 14.9333 26.6667H5.86667C5.57211 26.6667 5.33333 26.4279 5.33333 26.1333V5.86667C5.33333 5.57211 5.57211 5.33333 5.86667 5.33333H26.1333C26.4279 5.33333 26.6667 5.57212 26.6667 5.86667V14.9333C26.6667 15.5224 27.1442 16 27.7333 16H30.9333C31.5224 16 32 15.5224 32 14.9333V1.06667C32 0.477563 31.5224 0 30.9333 0Z",
|
|
3375
|
+
fill: upperPathColor ?? "#1A1A1A"
|
|
3376
|
+
}
|
|
3377
|
+
)
|
|
3378
|
+
] })
|
|
3379
|
+
}
|
|
3380
|
+
);
|
|
3381
|
+
};
|
|
3382
|
+
|
|
3424
3383
|
// src/components/vendor-tag.tsx
|
|
3425
3384
|
init_cn();
|
|
3426
3385
|
import { Hand, Sparkles } from "lucide-react";
|
|
3427
|
-
import { jsx as
|
|
3386
|
+
import { jsx as jsx25, jsxs as jsxs21 } from "react/jsx-runtime";
|
|
3428
3387
|
function VendorTag({
|
|
3429
3388
|
type,
|
|
3430
3389
|
text,
|
|
@@ -3443,89 +3402,89 @@ function VendorTag({
|
|
|
3443
3402
|
return {
|
|
3444
3403
|
text: "Placeholder",
|
|
3445
3404
|
textColor: "text-ods-text-primary",
|
|
3446
|
-
icon: /* @__PURE__ */
|
|
3405
|
+
icon: /* @__PURE__ */ jsx25("div", { className: "w-4 h-4 rounded-sm flex items-center justify-center flex-shrink-0", children: /* @__PURE__ */ jsx25(Sparkles, { width: 10, height: 10, className: "text-ods-text-primary" }) })
|
|
3447
3406
|
};
|
|
3448
3407
|
case "ai":
|
|
3449
3408
|
return {
|
|
3450
3409
|
text: "AI Selected",
|
|
3451
3410
|
textColor: "text-ods-text-primary",
|
|
3452
|
-
icon: /* @__PURE__ */
|
|
3411
|
+
icon: /* @__PURE__ */ jsx25("div", { className: "w-4 h-4 rounded-sm flex items-center justify-center flex-shrink-0", children: /* @__PURE__ */ jsx25(Sparkles, { width: 10, height: 10, className: "text-ods-text-primary" }) })
|
|
3453
3412
|
};
|
|
3454
3413
|
case "manual":
|
|
3455
3414
|
return {
|
|
3456
3415
|
text: "Manually Selected",
|
|
3457
3416
|
textColor: "text-ods-text-secondary",
|
|
3458
|
-
icon: /* @__PURE__ */
|
|
3417
|
+
icon: /* @__PURE__ */ jsx25("div", { className: "w-4 h-4 rounded-sm flex items-center justify-center flex-shrink-0", children: /* @__PURE__ */ jsx25(Hand, { width: 10, height: 10, className: "text-ods-text-secondary" }) })
|
|
3459
3418
|
};
|
|
3460
3419
|
case "open-source":
|
|
3461
3420
|
return {
|
|
3462
3421
|
text: text || "Open Source",
|
|
3463
|
-
icon: /* @__PURE__ */
|
|
3422
|
+
icon: /* @__PURE__ */ jsx25(
|
|
3464
3423
|
"div",
|
|
3465
3424
|
{
|
|
3466
3425
|
className: "w-4 h-4 bg-ods-accent rounded-sm flex items-center justify-center flex-shrink-0",
|
|
3467
3426
|
style: accentColor ? { backgroundColor: accentColor } : void 0,
|
|
3468
|
-
children: /* @__PURE__ */
|
|
3427
|
+
children: /* @__PURE__ */ jsx25(OpenSourceIcon2, { width: 10, height: 10, className: "text-[#1A1A1A]" })
|
|
3469
3428
|
}
|
|
3470
3429
|
)
|
|
3471
3430
|
};
|
|
3472
3431
|
case "commercial":
|
|
3473
3432
|
return {
|
|
3474
3433
|
text: text || "Commercial Vendor",
|
|
3475
|
-
icon: /* @__PURE__ */
|
|
3434
|
+
icon: /* @__PURE__ */ jsx25("div", { className: "w-4 h-4 bg-ods-border rounded-sm flex items-center justify-center flex-shrink-0", children: /* @__PURE__ */ jsx25(CoinsIcon2, { width: 10, height: 10, className: "text-ods-text-secondary" }) })
|
|
3476
3435
|
};
|
|
3477
3436
|
case "free":
|
|
3478
3437
|
return {
|
|
3479
3438
|
text: text || "Free",
|
|
3480
|
-
icon: /* @__PURE__ */
|
|
3439
|
+
icon: /* @__PURE__ */ jsx25("div", { className: "w-4 h-4 bg-ods-accent rounded-sm flex items-center justify-center flex-shrink-0", children: /* @__PURE__ */ jsx25("span", { className: "text-[#1A1A1A] text-[8px] font-bold", children: "$" }) })
|
|
3481
3440
|
};
|
|
3482
3441
|
case "freemium":
|
|
3483
3442
|
return {
|
|
3484
3443
|
text: text || "Freemium",
|
|
3485
|
-
icon: /* @__PURE__ */
|
|
3444
|
+
icon: /* @__PURE__ */ jsx25("div", { className: "w-4 h-4 bg-ods-accent rounded-sm flex items-center justify-center flex-shrink-0", children: /* @__PURE__ */ jsx25("span", { className: "text-[#1A1A1A] text-[8px] font-bold", children: "$" }) })
|
|
3486
3445
|
};
|
|
3487
3446
|
case "paid":
|
|
3488
3447
|
return {
|
|
3489
3448
|
text: text || "Paid",
|
|
3490
|
-
icon: /* @__PURE__ */
|
|
3449
|
+
icon: /* @__PURE__ */ jsx25("div", { className: "w-4 h-4 bg-ods-border rounded-sm flex items-center justify-center flex-shrink-0", children: /* @__PURE__ */ jsx25(CoinsIcon2, { width: 10, height: 10, className: "text-ods-text-secondary" }) })
|
|
3491
3450
|
};
|
|
3492
3451
|
case "enterprise":
|
|
3493
3452
|
return {
|
|
3494
3453
|
text: text || "Enterprise",
|
|
3495
|
-
icon: /* @__PURE__ */
|
|
3454
|
+
icon: /* @__PURE__ */ jsx25("div", { className: "w-4 h-4 bg-ods-accent rounded-sm flex items-center justify-center flex-shrink-0", children: /* @__PURE__ */ jsx25("span", { className: "text-[#1A1A1A] text-[8px] font-bold", children: "E" }) })
|
|
3496
3455
|
};
|
|
3497
3456
|
case "recommended":
|
|
3498
3457
|
return {
|
|
3499
3458
|
text: text || "Recommended",
|
|
3500
|
-
icon: /* @__PURE__ */
|
|
3459
|
+
icon: /* @__PURE__ */ jsx25("div", { className: "w-4 h-4 bg-ods-accent rounded-sm flex items-center justify-center flex-shrink-0", children: /* @__PURE__ */ jsx25("span", { className: "text-[#1A1A1A] text-[8px] font-bold", children: "\u2605" }) })
|
|
3501
3460
|
};
|
|
3502
3461
|
case "classification":
|
|
3503
3462
|
const classificationType = text?.toLowerCase();
|
|
3504
3463
|
if (classificationType === "open_source") {
|
|
3505
3464
|
return {
|
|
3506
3465
|
text: "Open Source",
|
|
3507
|
-
icon: /* @__PURE__ */
|
|
3466
|
+
icon: /* @__PURE__ */ jsx25("div", { className: "w-4 h-4 bg-ods-accent rounded-sm flex items-center justify-center flex-shrink-0", children: /* @__PURE__ */ jsx25(OpenSourceIcon2, { width: 10, height: 10, className: "text-[#1A1A1A]" }) })
|
|
3508
3467
|
};
|
|
3509
3468
|
} else if (classificationType === "commercial") {
|
|
3510
3469
|
return {
|
|
3511
3470
|
text: "Commercial Vendor",
|
|
3512
|
-
icon: /* @__PURE__ */
|
|
3471
|
+
icon: /* @__PURE__ */ jsx25("div", { className: "w-4 h-4 bg-ods-border rounded-sm flex items-center justify-center flex-shrink-0", children: /* @__PURE__ */ jsx25(CoinsIcon2, { width: 10, height: 10, className: "text-ods-text-secondary" }) })
|
|
3513
3472
|
};
|
|
3514
3473
|
} else if (classificationType === "openframe_selected") {
|
|
3515
3474
|
return {
|
|
3516
3475
|
text: "OpenFrame Selected",
|
|
3517
|
-
icon: /* @__PURE__ */
|
|
3476
|
+
icon: /* @__PURE__ */ jsx25(OpenFrameLogo2, { lowerPathColor: "currentColor", upperPathColor: "currentColor", className: "h-4 w-4 text-ods-accent" })
|
|
3518
3477
|
};
|
|
3519
3478
|
} else {
|
|
3520
3479
|
return {
|
|
3521
3480
|
text: text || "Classification",
|
|
3522
|
-
icon: /* @__PURE__ */
|
|
3481
|
+
icon: /* @__PURE__ */ jsx25("div", { className: "w-4 h-4 bg-ods-accent rounded-sm flex items-center justify-center flex-shrink-0", children: /* @__PURE__ */ jsx25("span", { className: "text-[#1A1A1A] text-[8px] font-bold", children: "C" }) })
|
|
3523
3482
|
};
|
|
3524
3483
|
}
|
|
3525
3484
|
case "openframe_selected":
|
|
3526
3485
|
return {
|
|
3527
3486
|
text: text || "OpenFrame Selected",
|
|
3528
|
-
icon: /* @__PURE__ */
|
|
3487
|
+
icon: /* @__PURE__ */ jsx25(OpenFrameLogo2, { lowerPathColor: "currentColor", upperPathColor: "currentColor", className: "h-4 w-4 text-ods-accent" })
|
|
3529
3488
|
};
|
|
3530
3489
|
default:
|
|
3531
3490
|
return {
|
|
@@ -3537,7 +3496,7 @@ function VendorTag({
|
|
|
3537
3496
|
const { text: displayText, icon, textColor } = getTagContent();
|
|
3538
3497
|
return /* @__PURE__ */ jsxs21("div", { className: cn(baseClasses, className, hidden && "invisible"), children: [
|
|
3539
3498
|
icon,
|
|
3540
|
-
/* @__PURE__ */
|
|
3499
|
+
/* @__PURE__ */ jsx25("span", { className: cn(
|
|
3541
3500
|
"font-mono font-semibold uppercase",
|
|
3542
3501
|
textColor ? textColor : "text-ods-text-primary",
|
|
3543
3502
|
size === "sm" ? "text-[10px]" : "text-xs"
|
|
@@ -3546,12 +3505,12 @@ function VendorTag({
|
|
|
3546
3505
|
}
|
|
3547
3506
|
|
|
3548
3507
|
// src/components/selection-source-badge.tsx
|
|
3549
|
-
import { jsx as
|
|
3508
|
+
import { jsx as jsx26 } from "react/jsx-runtime";
|
|
3550
3509
|
function SelectionSourceBadge({ source, hidden = false }) {
|
|
3551
3510
|
if (!source) {
|
|
3552
3511
|
return null;
|
|
3553
3512
|
}
|
|
3554
|
-
return /* @__PURE__ */
|
|
3513
|
+
return /* @__PURE__ */ jsx26(
|
|
3555
3514
|
VendorTag,
|
|
3556
3515
|
{
|
|
3557
3516
|
type: source?.toLowerCase(),
|
|
@@ -3564,26 +3523,26 @@ function SelectionSourceBadge({ source, hidden = false }) {
|
|
|
3564
3523
|
|
|
3565
3524
|
// src/components/user-display.tsx
|
|
3566
3525
|
init_cn();
|
|
3567
|
-
import { jsx as
|
|
3526
|
+
import { jsx as jsx27, jsxs as jsxs22 } from "react/jsx-runtime";
|
|
3568
3527
|
function UserDisplay({ name, avatarUrl, subtitle, size = 32, className }) {
|
|
3569
3528
|
return /* @__PURE__ */ jsxs22("div", { className: cn("flex items-center gap-2 min-w-0", className), children: [
|
|
3570
|
-
/* @__PURE__ */
|
|
3529
|
+
/* @__PURE__ */ jsx27(SquareAvatar2, { src: avatarUrl ?? void 0, fallbackName: name, size }),
|
|
3571
3530
|
/* @__PURE__ */ jsxs22("div", { className: "min-w-0 flex-1", children: [
|
|
3572
|
-
/* @__PURE__ */
|
|
3573
|
-
subtitle && /* @__PURE__ */
|
|
3531
|
+
/* @__PURE__ */ jsx27("p", { className: "font-['DM_Sans'] text-lg leading-[22px] text-ods-text-primary truncate", children: name }),
|
|
3532
|
+
subtitle && /* @__PURE__ */ jsx27("span", { className: "font-['DM_Sans'] text-md leading-[16px] text-ods-text-secondary truncate", children: subtitle })
|
|
3574
3533
|
] })
|
|
3575
3534
|
] });
|
|
3576
3535
|
}
|
|
3577
3536
|
|
|
3578
3537
|
// src/components/loading/content-skeleton.tsx
|
|
3579
3538
|
init_cn();
|
|
3580
|
-
import { jsx as
|
|
3539
|
+
import { jsx as jsx28, jsxs as jsxs23 } from "react/jsx-runtime";
|
|
3581
3540
|
function ParagraphSkeleton({
|
|
3582
3541
|
className,
|
|
3583
3542
|
lines = 4
|
|
3584
3543
|
}) {
|
|
3585
3544
|
const lineWidths = ["w-full", "w-full", "w-5/6", "w-3/4", "w-4/5", "w-2/3"];
|
|
3586
|
-
return /* @__PURE__ */
|
|
3545
|
+
return /* @__PURE__ */ jsx28("div", { className: cn("space-y-2", className), children: Array.from({ length: lines }).map((_, index) => /* @__PURE__ */ jsx28(
|
|
3587
3546
|
TextSkeleton.Body,
|
|
3588
3547
|
{
|
|
3589
3548
|
className: lineWidths[index % lineWidths.length]
|
|
@@ -3597,14 +3556,14 @@ function ListSkeleton({
|
|
|
3597
3556
|
showIcons = false,
|
|
3598
3557
|
showActions = false
|
|
3599
3558
|
}) {
|
|
3600
|
-
return /* @__PURE__ */
|
|
3559
|
+
return /* @__PURE__ */ jsx28("div", { className: cn("space-y-3", className), children: Array.from({ length: items }).map((_, index) => /* @__PURE__ */ jsxs23("div", { className: "flex items-center justify-between", children: [
|
|
3601
3560
|
/* @__PURE__ */ jsxs23("div", { className: "flex items-center gap-3", children: [
|
|
3602
|
-
showIcons && /* @__PURE__ */
|
|
3603
|
-
/* @__PURE__ */
|
|
3561
|
+
showIcons && /* @__PURE__ */ jsx28(MediaSkeleton.Icon, { size: "sm" }),
|
|
3562
|
+
/* @__PURE__ */ jsx28(TextSkeleton.Body, { className: "w-32 md:w-48" })
|
|
3604
3563
|
] }),
|
|
3605
3564
|
showActions && /* @__PURE__ */ jsxs23("div", { className: "flex items-center gap-2", children: [
|
|
3606
|
-
/* @__PURE__ */
|
|
3607
|
-
/* @__PURE__ */
|
|
3565
|
+
/* @__PURE__ */ jsx28(TextSkeleton.Caption, { className: "w-8" }),
|
|
3566
|
+
/* @__PURE__ */ jsx28(UnifiedSkeleton, { variant: "default", className: "w-4 h-4" })
|
|
3608
3567
|
] })
|
|
3609
3568
|
] }, index)) });
|
|
3610
3569
|
}
|
|
@@ -3614,13 +3573,13 @@ function TableSkeleton({
|
|
|
3614
3573
|
columns = 4
|
|
3615
3574
|
}) {
|
|
3616
3575
|
return /* @__PURE__ */ jsxs23("div", { className: cn("space-y-4", className), children: [
|
|
3617
|
-
/* @__PURE__ */
|
|
3618
|
-
/* @__PURE__ */
|
|
3576
|
+
/* @__PURE__ */ jsx28("div", { className: "grid gap-4", style: { gridTemplateColumns: `repeat(${columns}, 1fr)` }, children: Array.from({ length: columns }).map((_, index) => /* @__PURE__ */ jsx28(TextSkeleton.Subheading, { className: "w-3/4" }, index)) }),
|
|
3577
|
+
/* @__PURE__ */ jsx28("div", { className: "space-y-3", children: Array.from({ length: rows }).map((_, rowIndex) => /* @__PURE__ */ jsx28(
|
|
3619
3578
|
"div",
|
|
3620
3579
|
{
|
|
3621
3580
|
className: "grid gap-4 py-2 border-b border-ods-divider",
|
|
3622
3581
|
style: { gridTemplateColumns: `repeat(${columns}, 1fr)` },
|
|
3623
|
-
children: Array.from({ length: columns }).map((_2, colIndex) => /* @__PURE__ */
|
|
3582
|
+
children: Array.from({ length: columns }).map((_2, colIndex) => /* @__PURE__ */ jsx28(TextSkeleton.Body, { className: "w-2/3" }, colIndex))
|
|
3624
3583
|
},
|
|
3625
3584
|
rowIndex
|
|
3626
3585
|
)) })
|
|
@@ -3632,13 +3591,13 @@ function FormSkeleton({
|
|
|
3632
3591
|
}) {
|
|
3633
3592
|
return /* @__PURE__ */ jsxs23("div", { className: cn("space-y-6", className), children: [
|
|
3634
3593
|
Array.from({ length: fields }).map((_, index) => /* @__PURE__ */ jsxs23("div", { className: "space-y-2", children: [
|
|
3635
|
-
/* @__PURE__ */
|
|
3636
|
-
/* @__PURE__ */
|
|
3637
|
-
index % 3 === 0 && /* @__PURE__ */
|
|
3594
|
+
/* @__PURE__ */ jsx28(TextSkeleton.Body, { className: "w-24" }),
|
|
3595
|
+
/* @__PURE__ */ jsx28(InteractiveSkeleton.Input, {}),
|
|
3596
|
+
index % 3 === 0 && /* @__PURE__ */ jsx28(TextSkeleton.Caption, { className: "w-48" })
|
|
3638
3597
|
] }, index)),
|
|
3639
3598
|
/* @__PURE__ */ jsxs23("div", { className: "flex gap-4 pt-4", children: [
|
|
3640
|
-
/* @__PURE__ */
|
|
3641
|
-
/* @__PURE__ */
|
|
3599
|
+
/* @__PURE__ */ jsx28(InteractiveSkeleton.Button, {}),
|
|
3600
|
+
/* @__PURE__ */ jsx28(InteractiveSkeleton.Button, { className: "bg-ods-border" })
|
|
3642
3601
|
] })
|
|
3643
3602
|
] });
|
|
3644
3603
|
}
|
|
@@ -3647,7 +3606,7 @@ function NavigationSkeleton({
|
|
|
3647
3606
|
items = 6,
|
|
3648
3607
|
horizontal = true
|
|
3649
3608
|
}) {
|
|
3650
|
-
return /* @__PURE__ */
|
|
3609
|
+
return /* @__PURE__ */ jsx28(
|
|
3651
3610
|
"nav",
|
|
3652
3611
|
{
|
|
3653
3612
|
className: cn(
|
|
@@ -3657,7 +3616,7 @@ function NavigationSkeleton({
|
|
|
3657
3616
|
),
|
|
3658
3617
|
role: "status",
|
|
3659
3618
|
"aria-label": "Loading navigation",
|
|
3660
|
-
children: Array.from({ length: items }).map((_, index) => /* @__PURE__ */
|
|
3619
|
+
children: Array.from({ length: items }).map((_, index) => /* @__PURE__ */ jsx28(TextSkeleton.Body, { className: "w-16 md:w-20" }, index))
|
|
3661
3620
|
}
|
|
3662
3621
|
);
|
|
3663
3622
|
}
|
|
@@ -3668,30 +3627,30 @@ function ProfileSkeleton({
|
|
|
3668
3627
|
}) {
|
|
3669
3628
|
return /* @__PURE__ */ jsxs23("div", { className: cn("space-y-4", className), children: [
|
|
3670
3629
|
/* @__PURE__ */ jsxs23("div", { className: "flex items-start gap-4", children: [
|
|
3671
|
-
/* @__PURE__ */
|
|
3630
|
+
/* @__PURE__ */ jsx28(MediaSkeleton.Avatar, { size: "lg" }),
|
|
3672
3631
|
/* @__PURE__ */ jsxs23("div", { className: "flex-1 space-y-2", children: [
|
|
3673
|
-
/* @__PURE__ */
|
|
3674
|
-
/* @__PURE__ */
|
|
3675
|
-
/* @__PURE__ */
|
|
3632
|
+
/* @__PURE__ */ jsx28(TextSkeleton.Subheading, { className: "w-1/2" }),
|
|
3633
|
+
/* @__PURE__ */ jsx28(TextSkeleton.Caption, { className: "w-1/3" }),
|
|
3634
|
+
/* @__PURE__ */ jsx28(TextSkeleton.Body, { className: "w-2/3" })
|
|
3676
3635
|
] })
|
|
3677
3636
|
] }),
|
|
3678
3637
|
showBio && /* @__PURE__ */ jsxs23("div", { className: "space-y-2", children: [
|
|
3679
|
-
/* @__PURE__ */
|
|
3680
|
-
/* @__PURE__ */
|
|
3681
|
-
/* @__PURE__ */
|
|
3638
|
+
/* @__PURE__ */ jsx28(TextSkeleton.Body, { className: "w-full" }),
|
|
3639
|
+
/* @__PURE__ */ jsx28(TextSkeleton.Body, { className: "w-4/5" }),
|
|
3640
|
+
/* @__PURE__ */ jsx28(TextSkeleton.Body, { className: "w-3/4" })
|
|
3682
3641
|
] }),
|
|
3683
3642
|
showStats && /* @__PURE__ */ jsxs23("div", { className: "flex gap-6", children: [
|
|
3684
3643
|
/* @__PURE__ */ jsxs23("div", { className: "text-center", children: [
|
|
3685
|
-
/* @__PURE__ */
|
|
3686
|
-
/* @__PURE__ */
|
|
3644
|
+
/* @__PURE__ */ jsx28(TextSkeleton.Subheading, { className: "w-8 mx-auto" }),
|
|
3645
|
+
/* @__PURE__ */ jsx28(TextSkeleton.Caption, { className: "w-12 mx-auto" })
|
|
3687
3646
|
] }),
|
|
3688
3647
|
/* @__PURE__ */ jsxs23("div", { className: "text-center", children: [
|
|
3689
|
-
/* @__PURE__ */
|
|
3690
|
-
/* @__PURE__ */
|
|
3648
|
+
/* @__PURE__ */ jsx28(TextSkeleton.Subheading, { className: "w-8 mx-auto" }),
|
|
3649
|
+
/* @__PURE__ */ jsx28(TextSkeleton.Caption, { className: "w-16 mx-auto" })
|
|
3691
3650
|
] }),
|
|
3692
3651
|
/* @__PURE__ */ jsxs23("div", { className: "text-center", children: [
|
|
3693
|
-
/* @__PURE__ */
|
|
3694
|
-
/* @__PURE__ */
|
|
3652
|
+
/* @__PURE__ */ jsx28(TextSkeleton.Subheading, { className: "w-8 mx-auto" }),
|
|
3653
|
+
/* @__PURE__ */ jsx28(TextSkeleton.Caption, { className: "w-14 mx-auto" })
|
|
3695
3654
|
] })
|
|
3696
3655
|
] })
|
|
3697
3656
|
] });
|
|
@@ -3703,32 +3662,32 @@ function CommentSkeleton({
|
|
|
3703
3662
|
}) {
|
|
3704
3663
|
return /* @__PURE__ */ jsxs23("div", { className: cn("space-y-3", className), children: [
|
|
3705
3664
|
/* @__PURE__ */ jsxs23("div", { className: "flex items-center gap-3", children: [
|
|
3706
|
-
/* @__PURE__ */
|
|
3665
|
+
/* @__PURE__ */ jsx28(MediaSkeleton.Avatar, { size: "sm" }),
|
|
3707
3666
|
/* @__PURE__ */ jsxs23("div", { className: "flex-1 flex items-center gap-4", children: [
|
|
3708
|
-
/* @__PURE__ */
|
|
3709
|
-
/* @__PURE__ */
|
|
3710
|
-
showRating && /* @__PURE__ */
|
|
3667
|
+
/* @__PURE__ */ jsx28(TextSkeleton.Body, { className: "w-24" }),
|
|
3668
|
+
/* @__PURE__ */ jsx28(TextSkeleton.Caption, { className: "w-16" }),
|
|
3669
|
+
showRating && /* @__PURE__ */ jsx28("div", { className: "flex gap-1", children: Array.from({ length: 5 }).map((_, i) => /* @__PURE__ */ jsx28(MediaSkeleton.Icon, { size: "sm" }, i)) })
|
|
3711
3670
|
] })
|
|
3712
3671
|
] }),
|
|
3713
3672
|
/* @__PURE__ */ jsxs23("div", { className: "ml-11 space-y-2", children: [
|
|
3714
|
-
/* @__PURE__ */
|
|
3715
|
-
/* @__PURE__ */
|
|
3716
|
-
/* @__PURE__ */
|
|
3673
|
+
/* @__PURE__ */ jsx28(TextSkeleton.Body, { className: "w-full" }),
|
|
3674
|
+
/* @__PURE__ */ jsx28(TextSkeleton.Body, { className: "w-3/4" }),
|
|
3675
|
+
/* @__PURE__ */ jsx28(TextSkeleton.Body, { className: "w-1/2" })
|
|
3717
3676
|
] }),
|
|
3718
3677
|
/* @__PURE__ */ jsxs23("div", { className: "ml-11 flex gap-4", children: [
|
|
3719
|
-
/* @__PURE__ */
|
|
3720
|
-
/* @__PURE__ */
|
|
3721
|
-
/* @__PURE__ */
|
|
3678
|
+
/* @__PURE__ */ jsx28(TextSkeleton.Caption, { className: "w-12" }),
|
|
3679
|
+
/* @__PURE__ */ jsx28(TextSkeleton.Caption, { className: "w-16" }),
|
|
3680
|
+
/* @__PURE__ */ jsx28(TextSkeleton.Caption, { className: "w-8" })
|
|
3722
3681
|
] }),
|
|
3723
|
-
showReplies && /* @__PURE__ */
|
|
3682
|
+
showReplies && /* @__PURE__ */ jsx28("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: [
|
|
3724
3683
|
/* @__PURE__ */ jsxs23("div", { className: "flex items-center gap-3", children: [
|
|
3725
|
-
/* @__PURE__ */
|
|
3726
|
-
/* @__PURE__ */
|
|
3727
|
-
/* @__PURE__ */
|
|
3684
|
+
/* @__PURE__ */ jsx28(MediaSkeleton.Avatar, { size: "sm" }),
|
|
3685
|
+
/* @__PURE__ */ jsx28(TextSkeleton.Body, { className: "w-20" }),
|
|
3686
|
+
/* @__PURE__ */ jsx28(TextSkeleton.Caption, { className: "w-12" })
|
|
3728
3687
|
] }),
|
|
3729
3688
|
/* @__PURE__ */ jsxs23("div", { className: "ml-11", children: [
|
|
3730
|
-
/* @__PURE__ */
|
|
3731
|
-
/* @__PURE__ */
|
|
3689
|
+
/* @__PURE__ */ jsx28(TextSkeleton.Body, { className: "w-full" }),
|
|
3690
|
+
/* @__PURE__ */ jsx28(TextSkeleton.Body, { className: "w-2/3" })
|
|
3732
3691
|
] })
|
|
3733
3692
|
] }, index)) })
|
|
3734
3693
|
] });
|
|
@@ -3740,35 +3699,35 @@ function FeatureListSkeleton({
|
|
|
3740
3699
|
grouped = false
|
|
3741
3700
|
}) {
|
|
3742
3701
|
if (grouped) {
|
|
3743
|
-
return /* @__PURE__ */
|
|
3744
|
-
/* @__PURE__ */
|
|
3745
|
-
/* @__PURE__ */
|
|
3746
|
-
showIcons && /* @__PURE__ */
|
|
3747
|
-
/* @__PURE__ */
|
|
3702
|
+
return /* @__PURE__ */ jsx28("div", { className: cn("space-y-6", className), children: Array.from({ length: 3 }).map((_, groupIndex) => /* @__PURE__ */ jsxs23("div", { className: "space-y-3", children: [
|
|
3703
|
+
/* @__PURE__ */ jsx28(TextSkeleton.Subheading, { className: "w-1/3" }),
|
|
3704
|
+
/* @__PURE__ */ jsx28("div", { className: "space-y-2", children: Array.from({ length: features / 3 }).map((_2, featureIndex) => /* @__PURE__ */ jsxs23("div", { className: "flex items-center gap-3", children: [
|
|
3705
|
+
showIcons && /* @__PURE__ */ jsx28(MediaSkeleton.Icon, { size: "sm" }),
|
|
3706
|
+
/* @__PURE__ */ jsx28(TextSkeleton.Body, { className: "w-2/3" })
|
|
3748
3707
|
] }, featureIndex)) })
|
|
3749
3708
|
] }, groupIndex)) });
|
|
3750
3709
|
}
|
|
3751
|
-
return /* @__PURE__ */
|
|
3752
|
-
showIcons && /* @__PURE__ */
|
|
3753
|
-
/* @__PURE__ */
|
|
3710
|
+
return /* @__PURE__ */ jsx28("div", { className: cn("space-y-3", className), children: Array.from({ length: features }).map((_, index) => /* @__PURE__ */ jsxs23("div", { className: "flex items-center gap-3", children: [
|
|
3711
|
+
showIcons && /* @__PURE__ */ jsx28(MediaSkeleton.Icon, { size: "sm" }),
|
|
3712
|
+
/* @__PURE__ */ jsx28(TextSkeleton.Body, { className: "w-2/3" })
|
|
3754
3713
|
] }, index)) });
|
|
3755
3714
|
}
|
|
3756
3715
|
function TimelineSkeleton({
|
|
3757
3716
|
className,
|
|
3758
3717
|
items = 5
|
|
3759
3718
|
}) {
|
|
3760
|
-
return /* @__PURE__ */
|
|
3719
|
+
return /* @__PURE__ */ jsx28("div", { className: cn("space-y-6", className), children: Array.from({ length: items }).map((_, index) => /* @__PURE__ */ jsxs23("div", { className: "flex gap-4", children: [
|
|
3761
3720
|
/* @__PURE__ */ jsxs23("div", { className: "flex flex-col items-center", children: [
|
|
3762
|
-
/* @__PURE__ */
|
|
3763
|
-
index < items - 1 && /* @__PURE__ */
|
|
3721
|
+
/* @__PURE__ */ jsx28(MediaSkeleton.Icon, { size: "sm" }),
|
|
3722
|
+
index < items - 1 && /* @__PURE__ */ jsx28("div", { className: "w-px h-12 bg-ods-border mt-2" })
|
|
3764
3723
|
] }),
|
|
3765
3724
|
/* @__PURE__ */ jsxs23("div", { className: "flex-1 space-y-2", children: [
|
|
3766
3725
|
/* @__PURE__ */ jsxs23("div", { className: "flex items-center gap-3", children: [
|
|
3767
|
-
/* @__PURE__ */
|
|
3768
|
-
/* @__PURE__ */
|
|
3726
|
+
/* @__PURE__ */ jsx28(TextSkeleton.Body, { className: "w-1/3" }),
|
|
3727
|
+
/* @__PURE__ */ jsx28(TextSkeleton.Caption, { className: "w-16" })
|
|
3769
3728
|
] }),
|
|
3770
|
-
/* @__PURE__ */
|
|
3771
|
-
/* @__PURE__ */
|
|
3729
|
+
/* @__PURE__ */ jsx28(TextSkeleton.Body, { className: "w-full" }),
|
|
3730
|
+
/* @__PURE__ */ jsx28(TextSkeleton.Body, { className: "w-3/4" })
|
|
3772
3731
|
] })
|
|
3773
3732
|
] }, index)) });
|
|
3774
3733
|
}
|
|
@@ -3776,49 +3735,49 @@ function PricingSkeleton({
|
|
|
3776
3735
|
className,
|
|
3777
3736
|
plans = 3
|
|
3778
3737
|
}) {
|
|
3779
|
-
return /* @__PURE__ */
|
|
3738
|
+
return /* @__PURE__ */ jsx28("div", { className: cn(
|
|
3780
3739
|
"grid gap-6",
|
|
3781
3740
|
plans === 2 && "grid-cols-1 md:grid-cols-2",
|
|
3782
3741
|
plans === 3 && "grid-cols-1 md:grid-cols-3",
|
|
3783
3742
|
plans === 4 && "grid-cols-1 md:grid-cols-2 lg:grid-cols-4",
|
|
3784
3743
|
className
|
|
3785
|
-
), children: Array.from({ length: plans }).map((_, index) => /* @__PURE__ */
|
|
3786
|
-
/* @__PURE__ */
|
|
3744
|
+
), children: Array.from({ length: plans }).map((_, index) => /* @__PURE__ */ jsx28("div", { className: "bg-ods-card border border-ods-border rounded-lg p-6", children: /* @__PURE__ */ jsxs23("div", { className: "space-y-4", children: [
|
|
3745
|
+
/* @__PURE__ */ jsx28(TextSkeleton.Subheading, { className: "w-1/2" }),
|
|
3787
3746
|
/* @__PURE__ */ jsxs23("div", { className: "space-y-1", children: [
|
|
3788
|
-
/* @__PURE__ */
|
|
3789
|
-
/* @__PURE__ */
|
|
3747
|
+
/* @__PURE__ */ jsx28(TextSkeleton.Heading, { className: "w-1/3" }),
|
|
3748
|
+
/* @__PURE__ */ jsx28(TextSkeleton.Caption, { className: "w-1/4" })
|
|
3790
3749
|
] }),
|
|
3791
|
-
/* @__PURE__ */
|
|
3792
|
-
/* @__PURE__ */
|
|
3793
|
-
/* @__PURE__ */
|
|
3750
|
+
/* @__PURE__ */ jsx28("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: [
|
|
3751
|
+
/* @__PURE__ */ jsx28(MediaSkeleton.Icon, { size: "sm" }),
|
|
3752
|
+
/* @__PURE__ */ jsx28(TextSkeleton.Body, { className: "w-3/4" })
|
|
3794
3753
|
] }, featureIndex)) }),
|
|
3795
|
-
/* @__PURE__ */
|
|
3754
|
+
/* @__PURE__ */ jsx28(InteractiveSkeleton.Button, { className: "w-full" })
|
|
3796
3755
|
] }) }, index)) });
|
|
3797
3756
|
}
|
|
3798
3757
|
|
|
3799
3758
|
// src/components/profile/ProfileLoadingSkeleton.tsx
|
|
3800
3759
|
init_cn();
|
|
3801
|
-
import { jsx as
|
|
3760
|
+
import { jsx as jsx29, jsxs as jsxs24 } from "react/jsx-runtime";
|
|
3802
3761
|
function ProfileLoadingSkeleton({ className }) {
|
|
3803
3762
|
return /* @__PURE__ */ jsxs24("div", { className: cn("space-y-6", className), children: [
|
|
3804
3763
|
/* @__PURE__ */ jsxs24("div", { className: "flex items-center space-x-4", children: [
|
|
3805
|
-
/* @__PURE__ */
|
|
3764
|
+
/* @__PURE__ */ jsx29("div", { className: "h-16 w-16 bg-gray-200 rounded-full animate-pulse" }),
|
|
3806
3765
|
/* @__PURE__ */ jsxs24("div", { className: "space-y-2", children: [
|
|
3807
|
-
/* @__PURE__ */
|
|
3808
|
-
/* @__PURE__ */
|
|
3766
|
+
/* @__PURE__ */ jsx29("div", { className: "h-4 w-32 bg-gray-200 rounded animate-pulse" }),
|
|
3767
|
+
/* @__PURE__ */ jsx29("div", { className: "h-3 w-24 bg-gray-200 rounded animate-pulse" })
|
|
3809
3768
|
] })
|
|
3810
3769
|
] }),
|
|
3811
3770
|
/* @__PURE__ */ jsxs24("div", { className: "space-y-4", children: [
|
|
3812
|
-
/* @__PURE__ */
|
|
3813
|
-
/* @__PURE__ */
|
|
3814
|
-
/* @__PURE__ */
|
|
3771
|
+
/* @__PURE__ */ jsx29("div", { className: "h-4 w-full bg-gray-200 rounded animate-pulse" }),
|
|
3772
|
+
/* @__PURE__ */ jsx29("div", { className: "h-4 w-3/4 bg-gray-200 rounded animate-pulse" }),
|
|
3773
|
+
/* @__PURE__ */ jsx29("div", { className: "h-4 w-1/2 bg-gray-200 rounded animate-pulse" })
|
|
3815
3774
|
] })
|
|
3816
3775
|
] });
|
|
3817
3776
|
}
|
|
3818
3777
|
|
|
3819
3778
|
// src/components/loading/msp-profile-form-skeleton.tsx
|
|
3820
3779
|
init_cn();
|
|
3821
|
-
import { jsx as
|
|
3780
|
+
import { jsx as jsx30, jsxs as jsxs25 } from "react/jsx-runtime";
|
|
3822
3781
|
function MspProfileFormSkeleton({
|
|
3823
3782
|
className,
|
|
3824
3783
|
fields = 4
|
|
@@ -3834,12 +3793,12 @@ function MspProfileFormSkeleton({
|
|
|
3834
3793
|
"aria-label": "Loading MSP profile form",
|
|
3835
3794
|
children: [
|
|
3836
3795
|
/* @__PURE__ */ jsxs25("div", { className: "flex flex-col space-y-2 h-full", children: [
|
|
3837
|
-
/* @__PURE__ */
|
|
3838
|
-
/* @__PURE__ */
|
|
3796
|
+
/* @__PURE__ */ jsx30(TextSkeleton.Body, { className: "w-28" }),
|
|
3797
|
+
/* @__PURE__ */ jsx30("div", { className: "flex-1 min-h-[180px] md:min-h-full", children: /* @__PURE__ */ jsx30(UnifiedSkeleton, { className: "w-full h-full rounded-lg", "aria-label": "Loading company logo" }) })
|
|
3839
3798
|
] }),
|
|
3840
|
-
/* @__PURE__ */
|
|
3841
|
-
/* @__PURE__ */
|
|
3842
|
-
/* @__PURE__ */
|
|
3799
|
+
/* @__PURE__ */ jsx30("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: [
|
|
3800
|
+
/* @__PURE__ */ jsx30(TextSkeleton.Body, { className: "w-40" }),
|
|
3801
|
+
/* @__PURE__ */ jsx30(InteractiveSkeleton.Input, {})
|
|
3843
3802
|
] }, idx)) })
|
|
3844
3803
|
]
|
|
3845
3804
|
}
|
|
@@ -3848,7 +3807,7 @@ function MspProfileFormSkeleton({
|
|
|
3848
3807
|
|
|
3849
3808
|
// src/components/loading/category-card-skeleton.tsx
|
|
3850
3809
|
init_cn();
|
|
3851
|
-
import { jsx as
|
|
3810
|
+
import { jsx as jsx31, jsxs as jsxs26 } from "react/jsx-runtime";
|
|
3852
3811
|
function CategoryCardSkeleton({ className }) {
|
|
3853
3812
|
return /* @__PURE__ */ jsxs26(
|
|
3854
3813
|
"article",
|
|
@@ -3860,7 +3819,7 @@ function CategoryCardSkeleton({ className }) {
|
|
|
3860
3819
|
role: "status",
|
|
3861
3820
|
"aria-label": "Loading category card",
|
|
3862
3821
|
children: [
|
|
3863
|
-
/* @__PURE__ */
|
|
3822
|
+
/* @__PURE__ */ jsx31("div", { className: "flex gap-6 mb-8 justify-center items-center", children: Array.from({ length: 10 }).map((_, i) => /* @__PURE__ */ jsx31(
|
|
3864
3823
|
UnifiedSkeleton,
|
|
3865
3824
|
{
|
|
3866
3825
|
variant: "circular",
|
|
@@ -3870,11 +3829,11 @@ function CategoryCardSkeleton({ className }) {
|
|
|
3870
3829
|
i
|
|
3871
3830
|
)) }),
|
|
3872
3831
|
/* @__PURE__ */ jsxs26("div", { className: "flex-1 flex flex-col space-y-3", children: [
|
|
3873
|
-
/* @__PURE__ */
|
|
3874
|
-
/* @__PURE__ */
|
|
3875
|
-
/* @__PURE__ */
|
|
3832
|
+
/* @__PURE__ */ jsx31(TextSkeleton.Heading, { className: "w-3/4" }),
|
|
3833
|
+
/* @__PURE__ */ jsx31(TextSkeleton.Body, { className: "w-1/2" }),
|
|
3834
|
+
/* @__PURE__ */ jsx31(TextSkeleton.Body, { className: "w-full" })
|
|
3876
3835
|
] }),
|
|
3877
|
-
/* @__PURE__ */
|
|
3836
|
+
/* @__PURE__ */ jsx31("div", { className: "mt-4 flex justify-end", children: /* @__PURE__ */ jsx31(UnifiedSkeleton, { className: "w-12 h-12 rounded-[6px]", "aria-label": "Loading button" }) })
|
|
3878
3837
|
]
|
|
3879
3838
|
}
|
|
3880
3839
|
);
|
|
@@ -3882,7 +3841,7 @@ function CategoryCardSkeleton({ className }) {
|
|
|
3882
3841
|
|
|
3883
3842
|
// src/components/loading/category-vendor-selector-skeleton.tsx
|
|
3884
3843
|
init_cn();
|
|
3885
|
-
import { jsx as
|
|
3844
|
+
import { jsx as jsx32, jsxs as jsxs27 } from "react/jsx-runtime";
|
|
3886
3845
|
function CategoryVendorSelectorSkeleton({ subcategories = 3, className }) {
|
|
3887
3846
|
return /* @__PURE__ */ jsxs27(
|
|
3888
3847
|
"div",
|
|
@@ -3892,12 +3851,12 @@ function CategoryVendorSelectorSkeleton({ subcategories = 3, className }) {
|
|
|
3892
3851
|
"aria-label": "Loading category section",
|
|
3893
3852
|
children: [
|
|
3894
3853
|
/* @__PURE__ */ jsxs27("div", { className: "mb-6 space-y-2 max-w-xl", children: [
|
|
3895
|
-
/* @__PURE__ */
|
|
3896
|
-
/* @__PURE__ */
|
|
3854
|
+
/* @__PURE__ */ jsx32(TextSkeleton.Heading, { className: "w-1/2" }),
|
|
3855
|
+
/* @__PURE__ */ jsx32(TextSkeleton.Body, { className: "w-3/4" })
|
|
3897
3856
|
] }),
|
|
3898
|
-
/* @__PURE__ */
|
|
3899
|
-
/* @__PURE__ */
|
|
3900
|
-
/* @__PURE__ */
|
|
3857
|
+
/* @__PURE__ */ jsx32("div", { className: "space-y-6", children: Array.from({ length: subcategories }).map((_, idx) => /* @__PURE__ */ jsxs27("div", { className: "space-y-2", children: [
|
|
3858
|
+
/* @__PURE__ */ jsx32(TextSkeleton.Subheading, { className: "w-1/3" }),
|
|
3859
|
+
/* @__PURE__ */ jsx32("div", { className: "grid grid-cols-2 md:grid-cols-3 gap-4", children: Array.from({ length: 2 }).map((__, j) => /* @__PURE__ */ jsx32(UnifiedSkeleton, { className: "h-20 rounded-lg" }, j)) })
|
|
3901
3860
|
] }, idx)) })
|
|
3902
3861
|
]
|
|
3903
3862
|
}
|
|
@@ -3906,90 +3865,90 @@ function CategoryVendorSelectorSkeleton({ subcategories = 3, className }) {
|
|
|
3906
3865
|
|
|
3907
3866
|
// src/components/loading/wizard-layout-skeleton.tsx
|
|
3908
3867
|
init_cn();
|
|
3909
|
-
import { jsx as
|
|
3868
|
+
import { jsx as jsx33, jsxs as jsxs28 } from "react/jsx-runtime";
|
|
3910
3869
|
function WizardLayoutSkeleton({ steps = 6, className }) {
|
|
3911
3870
|
return /* @__PURE__ */ jsxs28("div", { className: cn("space-y-6", className), role: "status", "aria-label": "Loading wizard layout", children: [
|
|
3912
|
-
/* @__PURE__ */
|
|
3871
|
+
/* @__PURE__ */ jsx33("div", { className: "flex flex-wrap items-center gap-2", children: Array.from({ length: steps }).map((_, i) => /* @__PURE__ */ jsx33(UnifiedSkeleton, { className: "h-6 w-24 rounded" }, i)) }),
|
|
3913
3872
|
/* @__PURE__ */ jsxs28("div", { className: "space-y-2 max-w-2xl", children: [
|
|
3914
|
-
/* @__PURE__ */
|
|
3915
|
-
/* @__PURE__ */
|
|
3873
|
+
/* @__PURE__ */ jsx33(TextSkeleton.Heading, { className: "w-2/3" }),
|
|
3874
|
+
/* @__PURE__ */ jsx33(TextSkeleton.Body, { className: "w-1/2" })
|
|
3916
3875
|
] }),
|
|
3917
3876
|
/* @__PURE__ */ jsxs28("div", { className: "flex justify-between mt-10", children: [
|
|
3918
|
-
/* @__PURE__ */
|
|
3919
|
-
/* @__PURE__ */
|
|
3877
|
+
/* @__PURE__ */ jsx33(UnifiedSkeleton, { className: "h-10 w-24 rounded" }),
|
|
3878
|
+
/* @__PURE__ */ jsx33(UnifiedSkeleton, { className: "h-10 w-32 rounded" })
|
|
3920
3879
|
] })
|
|
3921
3880
|
] });
|
|
3922
3881
|
}
|
|
3923
3882
|
|
|
3924
3883
|
// src/components/loading/margin-report-skeleton.tsx
|
|
3925
|
-
import { jsx as
|
|
3884
|
+
import { jsx as jsx34, jsxs as jsxs29 } from "react/jsx-runtime";
|
|
3926
3885
|
function MarginReportSkeleton({ animate = true, description, overlayContent }) {
|
|
3927
3886
|
return /* @__PURE__ */ jsxs29("main", { className: `bg-ods-bg ${animate ? "animate-pulse" : ""} relative min-h-screen`, children: [
|
|
3928
3887
|
/* @__PURE__ */ jsxs29("div", { className: "max-w-[1920px] px-6 md:px-20 py-6 md:py-10 mx-auto space-y-10", children: [
|
|
3929
3888
|
/* @__PURE__ */ jsxs29("div", { className: "space-y-3", children: [
|
|
3930
|
-
/* @__PURE__ */
|
|
3931
|
-
/* @__PURE__ */
|
|
3889
|
+
/* @__PURE__ */ jsx34("div", { className: "h-10 w-72 bg-[#2A2A2A] rounded" }),
|
|
3890
|
+
/* @__PURE__ */ jsx34("div", { className: "h-4 w-80 bg-[#2A2A2A] rounded" })
|
|
3932
3891
|
] }),
|
|
3933
|
-
/* @__PURE__ */
|
|
3892
|
+
/* @__PURE__ */ jsx34("div", { className: "grid grid-cols-1 md:grid-cols-3 gap-6", children: Array.from({ length: 3 }).map((_, i) => /* @__PURE__ */ jsx34("div", { className: "h-32 bg-ods-card border border-ods-border rounded" }, i)) }),
|
|
3934
3893
|
/* @__PURE__ */ jsxs29("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-6", children: [
|
|
3935
3894
|
/* @__PURE__ */ jsxs29("div", { className: "bg-ods-card border border-ods-border rounded-lg p-6 flex items-center gap-4 animate-pulse", children: [
|
|
3936
|
-
/* @__PURE__ */
|
|
3895
|
+
/* @__PURE__ */ jsx34("div", { className: "w-14 h-14 rounded-lg bg-[#2A2A2A]" }),
|
|
3937
3896
|
/* @__PURE__ */ jsxs29("div", { className: "flex-1 space-y-2", children: [
|
|
3938
|
-
/* @__PURE__ */
|
|
3939
|
-
/* @__PURE__ */
|
|
3897
|
+
/* @__PURE__ */ jsx34("div", { className: "h-4 bg-[#2A2A2A] rounded w-3/4" }),
|
|
3898
|
+
/* @__PURE__ */ jsx34("div", { className: "h-3 bg-[#2A2A2A] rounded w-1/2" })
|
|
3940
3899
|
] })
|
|
3941
3900
|
] }),
|
|
3942
3901
|
/* @__PURE__ */ jsxs29("div", { className: "bg-ods-card border border-ods-border rounded-lg p-6 flex flex-col gap-4 animate-pulse", children: [
|
|
3943
3902
|
/* @__PURE__ */ jsxs29("div", { className: "flex items-center justify-between gap-4", children: [
|
|
3944
3903
|
/* @__PURE__ */ jsxs29("div", { className: "flex items-center gap-2", children: [
|
|
3945
|
-
/* @__PURE__ */
|
|
3904
|
+
/* @__PURE__ */ jsx34("div", { className: "w-10 h-10 rounded-lg bg-[#2A2A2A]" }),
|
|
3946
3905
|
/* @__PURE__ */ jsxs29("div", { className: "space-y-1", children: [
|
|
3947
|
-
/* @__PURE__ */
|
|
3948
|
-
/* @__PURE__ */
|
|
3906
|
+
/* @__PURE__ */ jsx34("div", { className: "h-4 w-32 bg-[#2A2A2A] rounded" }),
|
|
3907
|
+
/* @__PURE__ */ jsx34("div", { className: "h-3 w-20 bg-[#2A2A2A] rounded" })
|
|
3949
3908
|
] })
|
|
3950
3909
|
] }),
|
|
3951
|
-
/* @__PURE__ */
|
|
3910
|
+
/* @__PURE__ */ jsx34("div", { className: "h-6 w-36 bg-[#2A2A2A] rounded" })
|
|
3952
3911
|
] }),
|
|
3953
|
-
/* @__PURE__ */
|
|
3912
|
+
/* @__PURE__ */ jsx34("div", { className: "h-4 w-40 bg-[#2A2A2A] rounded mt-4" })
|
|
3954
3913
|
] })
|
|
3955
3914
|
] }),
|
|
3956
|
-
/* @__PURE__ */
|
|
3915
|
+
/* @__PURE__ */ jsx34("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: [
|
|
3957
3916
|
/* @__PURE__ */ jsxs29("div", { className: "flex items-center justify-between px-6 py-4", children: [
|
|
3958
|
-
/* @__PURE__ */
|
|
3917
|
+
/* @__PURE__ */ jsx34("div", { className: "h-6 w-40 bg-[#2A2A2A] rounded" }),
|
|
3959
3918
|
/* @__PURE__ */ jsxs29("div", { className: "flex items-center gap-2", children: [
|
|
3960
|
-
/* @__PURE__ */
|
|
3961
|
-
/* @__PURE__ */
|
|
3919
|
+
/* @__PURE__ */ jsx34("div", { className: "h-5 w-20 bg-[#2A2A2A] rounded" }),
|
|
3920
|
+
/* @__PURE__ */ jsx34("div", { className: "h-4 w-10 bg-[#2A2A2A] rounded" })
|
|
3962
3921
|
] })
|
|
3963
3922
|
] }),
|
|
3964
|
-
/* @__PURE__ */
|
|
3923
|
+
/* @__PURE__ */ jsx34("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: [
|
|
3965
3924
|
/* @__PURE__ */ jsxs29("div", { className: "flex items-center gap-3 min-w-0", children: [
|
|
3966
|
-
/* @__PURE__ */
|
|
3925
|
+
/* @__PURE__ */ jsx34("div", { className: "w-12 h-12 bg-[#2A2A2A] rounded-lg flex-shrink-0" }),
|
|
3967
3926
|
/* @__PURE__ */ jsxs29("div", { className: "flex flex-col min-w-0", children: [
|
|
3968
|
-
/* @__PURE__ */
|
|
3969
|
-
/* @__PURE__ */
|
|
3927
|
+
/* @__PURE__ */ jsx34("div", { className: "h-4 w-32 bg-[#2A2A2A] rounded" }),
|
|
3928
|
+
/* @__PURE__ */ jsx34("div", { className: "hidden md:block h-3 w-24 bg-[#2A2A2A] rounded mt-1" })
|
|
3970
3929
|
] })
|
|
3971
3930
|
] }),
|
|
3972
3931
|
/* @__PURE__ */ jsxs29("div", { className: "flex items-center gap-1 flex-shrink-0", children: [
|
|
3973
|
-
/* @__PURE__ */
|
|
3974
|
-
/* @__PURE__ */
|
|
3932
|
+
/* @__PURE__ */ jsx34("div", { className: "h-4 w-16 bg-[#2A2A2A] rounded" }),
|
|
3933
|
+
/* @__PURE__ */ jsx34("div", { className: "h-3 w-8 bg-[#2A2A2A] rounded" })
|
|
3975
3934
|
] })
|
|
3976
3935
|
] }, j)) })
|
|
3977
3936
|
] }, idx)) }),
|
|
3978
|
-
/* @__PURE__ */
|
|
3979
|
-
/* @__PURE__ */
|
|
3937
|
+
/* @__PURE__ */ jsx34("div", { className: "h-6 w-60 bg-[#2A2A2A] rounded" }),
|
|
3938
|
+
/* @__PURE__ */ jsx34("div", { className: "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6", children: Array.from({ length: 3 }).map((_, i) => /* @__PURE__ */ jsx34("div", { className: "h-48 bg-ods-card border border-ods-border rounded" }, i)) }),
|
|
3980
3939
|
/* @__PURE__ */ jsxs29("div", { className: "border border-ods-border rounded-3xl p-8 space-y-6", children: [
|
|
3981
3940
|
/* @__PURE__ */ jsxs29("div", { className: "flex items-start gap-6", children: [
|
|
3982
3941
|
/* @__PURE__ */ jsxs29("div", { className: "flex-1 space-y-2 min-w-0", children: [
|
|
3983
|
-
/* @__PURE__ */
|
|
3984
|
-
/* @__PURE__ */
|
|
3942
|
+
/* @__PURE__ */ jsx34("div", { className: "h-8 w-72 bg-[#2A2A2A] rounded" }),
|
|
3943
|
+
/* @__PURE__ */ jsx34("div", { className: "h-4 w-3/4 bg-[#2A2A2A] rounded" })
|
|
3985
3944
|
] }),
|
|
3986
|
-
/* @__PURE__ */
|
|
3945
|
+
/* @__PURE__ */ jsx34("div", { className: "w-12 h-12 bg-[#2A2A2A] rounded-md shrink-0" })
|
|
3987
3946
|
] }),
|
|
3988
|
-
/* @__PURE__ */
|
|
3947
|
+
/* @__PURE__ */ jsx34("div", { className: "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6", children: Array.from({ length: 3 }).map((_, i) => /* @__PURE__ */ jsx34("div", { className: "h-32 bg-ods-card border border-ods-border rounded" }, i)) })
|
|
3989
3948
|
] })
|
|
3990
3949
|
] }),
|
|
3991
|
-
overlayContent && /* @__PURE__ */
|
|
3992
|
-
description && /* @__PURE__ */
|
|
3950
|
+
overlayContent && /* @__PURE__ */ jsx34("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: [
|
|
3951
|
+
description && /* @__PURE__ */ jsx34("h3", { children: description }),
|
|
3993
3952
|
overlayContent
|
|
3994
3953
|
] }) })
|
|
3995
3954
|
] });
|
|
@@ -3997,18 +3956,18 @@ function MarginReportSkeleton({ animate = true, description, overlayContent }) {
|
|
|
3997
3956
|
|
|
3998
3957
|
// src/components/loading/users-grid-skeleton.tsx
|
|
3999
3958
|
init_cn();
|
|
4000
|
-
import { jsx as
|
|
3959
|
+
import { jsx as jsx35, jsxs as jsxs30 } from "react/jsx-runtime";
|
|
4001
3960
|
function UsersGridSkeleton({ rows = 10, className }) {
|
|
4002
3961
|
const skeletonRows = Array.from({ length: rows });
|
|
4003
|
-
return /* @__PURE__ */
|
|
4004
|
-
/* @__PURE__ */
|
|
4005
|
-
/* @__PURE__ */
|
|
3962
|
+
return /* @__PURE__ */ jsx35("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: [
|
|
3963
|
+
/* @__PURE__ */ jsx35("thead", { className: "bg-[#2A2A2A]", children: /* @__PURE__ */ jsx35("tr", { children: ["Name", "Email", "Role", "Created", "Last Sign-In"].map((h) => /* @__PURE__ */ jsx35("th", { className: "px-4 py-3 text-left text-[12px] font-medium text-ods-text-primary font-['DM_Sans']", children: h }, h)) }) }),
|
|
3964
|
+
/* @__PURE__ */ jsx35("tbody", { className: "divide-y divide-ods-border", children: skeletonRows.map((_, idx) => /* @__PURE__ */ jsx35("tr", { children: Array.from({ length: 5 }).map((__, cell) => /* @__PURE__ */ jsx35("td", { className: "px-4 py-3 whitespace-nowrap", children: /* @__PURE__ */ jsx35("div", { className: "h-4 bg-ods-border rounded w-full" }) }, cell)) }, idx)) })
|
|
4006
3965
|
] }) });
|
|
4007
3966
|
}
|
|
4008
3967
|
|
|
4009
3968
|
// src/components/loading/organization-icon-skeleton.tsx
|
|
4010
3969
|
init_cn();
|
|
4011
|
-
import { jsx as
|
|
3970
|
+
import { jsx as jsx36 } from "react/jsx-runtime";
|
|
4012
3971
|
var sizeClasses2 = {
|
|
4013
3972
|
xs: "w-6 h-6",
|
|
4014
3973
|
sm: "w-8 h-8",
|
|
@@ -4035,27 +3994,27 @@ function OrganizationIconSkeleton({
|
|
|
4035
3994
|
!showBackground && "overflow-hidden",
|
|
4036
3995
|
className
|
|
4037
3996
|
);
|
|
4038
|
-
return /* @__PURE__ */
|
|
3997
|
+
return /* @__PURE__ */ jsx36(
|
|
4039
3998
|
"div",
|
|
4040
3999
|
{
|
|
4041
4000
|
className: containerClasses,
|
|
4042
4001
|
role: "status",
|
|
4043
4002
|
"aria-label": "Loading organization icon",
|
|
4044
|
-
children: /* @__PURE__ */
|
|
4003
|
+
children: /* @__PURE__ */ jsx36("div", { className: "w-1/2 h-1/2 bg-ods-border rounded-sm animate-pulse" })
|
|
4045
4004
|
}
|
|
4046
4005
|
);
|
|
4047
4006
|
}
|
|
4048
4007
|
|
|
4049
4008
|
// src/components/loading/organization-card-skeleton.tsx
|
|
4050
4009
|
init_cn();
|
|
4051
|
-
import { jsx as
|
|
4010
|
+
import { jsx as jsx37, jsxs as jsxs31 } from "react/jsx-runtime";
|
|
4052
4011
|
function OrganizationCardSkeleton({
|
|
4053
4012
|
className,
|
|
4054
4013
|
containerClassName,
|
|
4055
4014
|
showFooter = true,
|
|
4056
4015
|
showDescription = true
|
|
4057
4016
|
}) {
|
|
4058
|
-
return /* @__PURE__ */
|
|
4017
|
+
return /* @__PURE__ */ jsx37(
|
|
4059
4018
|
"div",
|
|
4060
4019
|
{
|
|
4061
4020
|
className: cn(
|
|
@@ -4067,7 +4026,7 @@ function OrganizationCardSkeleton({
|
|
|
4067
4026
|
"aria-label": "Loading organization card",
|
|
4068
4027
|
children: /* @__PURE__ */ jsxs31("div", { className: "p-4 gap-3 flex flex-col", children: [
|
|
4069
4028
|
/* @__PURE__ */ jsxs31("div", { className: "flex items-start gap-3 w-full", children: [
|
|
4070
|
-
/* @__PURE__ */
|
|
4029
|
+
/* @__PURE__ */ jsx37(
|
|
4071
4030
|
OrganizationIconSkeleton,
|
|
4072
4031
|
{
|
|
4073
4032
|
size: "xl",
|
|
@@ -4077,28 +4036,28 @@ function OrganizationCardSkeleton({
|
|
|
4077
4036
|
}
|
|
4078
4037
|
),
|
|
4079
4038
|
/* @__PURE__ */ jsxs31("div", { className: "flex-1 flex flex-col justify-center py-2 min-w-0 space-y-1", children: [
|
|
4080
|
-
/* @__PURE__ */
|
|
4081
|
-
/* @__PURE__ */
|
|
4039
|
+
/* @__PURE__ */ jsx37(TextSkeleton.Subheading, { className: "w-3/4" }),
|
|
4040
|
+
/* @__PURE__ */ jsx37(TextSkeleton.Caption, { className: "w-1/2" })
|
|
4082
4041
|
] })
|
|
4083
4042
|
] }),
|
|
4084
|
-
showDescription && /* @__PURE__ */
|
|
4085
|
-
/* @__PURE__ */
|
|
4086
|
-
/* @__PURE__ */
|
|
4043
|
+
showDescription && /* @__PURE__ */ jsx37("div", { className: "w-full h-12 overflow-hidden flex items-center", children: /* @__PURE__ */ jsxs31("div", { className: "space-y-1 w-full", children: [
|
|
4044
|
+
/* @__PURE__ */ jsx37(TextSkeleton.Body, { className: "w-full" }),
|
|
4045
|
+
/* @__PURE__ */ jsx37(TextSkeleton.Body, { className: "w-2/3" })
|
|
4087
4046
|
] }) }),
|
|
4088
4047
|
showFooter && /* @__PURE__ */ jsxs31("div", { className: "flex items-center justify-between gap-2 w-full min-w-0", children: [
|
|
4089
4048
|
/* @__PURE__ */ jsxs31("div", { className: "flex items-center gap-3 md:gap-4 min-w-0 flex-shrink", children: [
|
|
4090
4049
|
/* @__PURE__ */ jsxs31("div", { className: "flex items-center gap-1 flex-shrink-0", children: [
|
|
4091
|
-
/* @__PURE__ */
|
|
4092
|
-
/* @__PURE__ */
|
|
4050
|
+
/* @__PURE__ */ jsx37(MediaSkeleton.Icon, { size: "sm", className: "w-5 h-5" }),
|
|
4051
|
+
/* @__PURE__ */ jsx37(TextSkeleton.Caption, { className: "w-8" })
|
|
4093
4052
|
] }),
|
|
4094
4053
|
/* @__PURE__ */ jsxs31("div", { className: "flex items-center gap-1 flex-shrink-0", children: [
|
|
4095
|
-
/* @__PURE__ */
|
|
4096
|
-
/* @__PURE__ */
|
|
4054
|
+
/* @__PURE__ */ jsx37(MediaSkeleton.Icon, { size: "sm", className: "w-5 h-5" }),
|
|
4055
|
+
/* @__PURE__ */ jsx37(TextSkeleton.Caption, { className: "w-10" })
|
|
4097
4056
|
] })
|
|
4098
4057
|
] }),
|
|
4099
|
-
/* @__PURE__ */
|
|
4100
|
-
/* @__PURE__ */
|
|
4101
|
-
/* @__PURE__ */
|
|
4058
|
+
/* @__PURE__ */ jsx37("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: [
|
|
4059
|
+
/* @__PURE__ */ jsx37("div", { className: "w-4 h-4 bg-ods-border rounded-sm flex items-center justify-center flex-shrink-0", children: /* @__PURE__ */ jsx37(MediaSkeleton.Icon, { size: "sm", className: "w-2.5 h-2.5" }) }),
|
|
4060
|
+
/* @__PURE__ */ jsx37(TextSkeleton.Caption, { className: "w-16" })
|
|
4102
4061
|
] }) })
|
|
4103
4062
|
] })
|
|
4104
4063
|
] })
|
|
@@ -4112,7 +4071,7 @@ function OrganizationCardSkeletonGrid({
|
|
|
4112
4071
|
showFooter = true,
|
|
4113
4072
|
showDescription = true
|
|
4114
4073
|
}) {
|
|
4115
|
-
return /* @__PURE__ */
|
|
4074
|
+
return /* @__PURE__ */ jsx37(
|
|
4116
4075
|
"div",
|
|
4117
4076
|
{
|
|
4118
4077
|
className: cn(
|
|
@@ -4121,7 +4080,7 @@ function OrganizationCardSkeletonGrid({
|
|
|
4121
4080
|
),
|
|
4122
4081
|
role: "status",
|
|
4123
4082
|
"aria-label": `Loading ${count} organization cards`,
|
|
4124
|
-
children: Array.from({ length: count }, (_, index) => /* @__PURE__ */
|
|
4083
|
+
children: Array.from({ length: count }, (_, index) => /* @__PURE__ */ jsx37(
|
|
4125
4084
|
OrganizationCardSkeleton,
|
|
4126
4085
|
{
|
|
4127
4086
|
containerClassName,
|
|
@@ -4136,7 +4095,7 @@ function OrganizationCardSkeletonGrid({
|
|
|
4136
4095
|
|
|
4137
4096
|
// src/components/loading/device-card-skeleton.tsx
|
|
4138
4097
|
init_cn();
|
|
4139
|
-
import { jsx as
|
|
4098
|
+
import { jsx as jsx38, jsxs as jsxs32 } from "react/jsx-runtime";
|
|
4140
4099
|
function DeviceCardSkeleton({ className }) {
|
|
4141
4100
|
return /* @__PURE__ */ jsxs32(
|
|
4142
4101
|
"div",
|
|
@@ -4149,18 +4108,18 @@ function DeviceCardSkeleton({ className }) {
|
|
|
4149
4108
|
"aria-label": "Loading device card",
|
|
4150
4109
|
children: [
|
|
4151
4110
|
/* @__PURE__ */ jsxs32("div", { className: "flex gap-4 items-center px-4 py-3", children: [
|
|
4152
|
-
/* @__PURE__ */
|
|
4153
|
-
/* @__PURE__ */
|
|
4154
|
-
/* @__PURE__ */
|
|
4111
|
+
/* @__PURE__ */ jsx38("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__ */ jsx38("div", { className: "w-4 h-4 bg-ods-border rounded animate-pulse" }) }),
|
|
4112
|
+
/* @__PURE__ */ jsx38("div", { className: "flex-1 min-w-0", children: /* @__PURE__ */ jsx38("div", { className: "h-6 w-3/4 bg-ods-border rounded animate-pulse" }) }),
|
|
4113
|
+
/* @__PURE__ */ jsx38("div", { className: "w-12 h-12 bg-ods-border rounded-[6px] flex-shrink-0 animate-pulse" })
|
|
4155
4114
|
] }),
|
|
4156
4115
|
/* @__PURE__ */ jsxs32("div", { className: "flex gap-4 items-center px-4 py-2", children: [
|
|
4157
|
-
/* @__PURE__ */
|
|
4158
|
-
/* @__PURE__ */
|
|
4159
|
-
/* @__PURE__ */
|
|
4116
|
+
/* @__PURE__ */ jsx38("div", { className: "w-24 h-6 bg-ods-border rounded flex-shrink-0 animate-pulse" }),
|
|
4117
|
+
/* @__PURE__ */ jsx38(OrganizationIconSkeleton, { size: "sm" }),
|
|
4118
|
+
/* @__PURE__ */ jsx38("div", { className: "flex-1 min-w-0", children: /* @__PURE__ */ jsx38("div", { className: "h-5 w-1/2 bg-ods-border rounded animate-pulse" }) })
|
|
4160
4119
|
] }),
|
|
4161
4120
|
/* @__PURE__ */ jsxs32("div", { className: "flex gap-4 items-center px-4 py-2", children: [
|
|
4162
|
-
/* @__PURE__ */
|
|
4163
|
-
/* @__PURE__ */
|
|
4121
|
+
/* @__PURE__ */ jsx38("div", { className: "w-20 h-6 bg-ods-border rounded-full flex-shrink-0 animate-pulse" }),
|
|
4122
|
+
/* @__PURE__ */ jsx38("div", { className: "flex-1", children: /* @__PURE__ */ jsx38("div", { className: "h-5 w-40 bg-ods-border rounded animate-pulse" }) })
|
|
4164
4123
|
] })
|
|
4165
4124
|
]
|
|
4166
4125
|
}
|
|
@@ -4170,7 +4129,7 @@ function DeviceCardSkeletonGrid({
|
|
|
4170
4129
|
count = 12,
|
|
4171
4130
|
className
|
|
4172
4131
|
}) {
|
|
4173
|
-
return /* @__PURE__ */
|
|
4132
|
+
return /* @__PURE__ */ jsx38(
|
|
4174
4133
|
"div",
|
|
4175
4134
|
{
|
|
4176
4135
|
className: cn(
|
|
@@ -4179,22 +4138,22 @@ function DeviceCardSkeletonGrid({
|
|
|
4179
4138
|
),
|
|
4180
4139
|
role: "status",
|
|
4181
4140
|
"aria-label": `Loading ${count} device cards`,
|
|
4182
|
-
children: Array.from({ length: count }, (_, index) => /* @__PURE__ */
|
|
4141
|
+
children: Array.from({ length: count }, (_, index) => /* @__PURE__ */ jsx38(DeviceCardSkeleton, {}, index))
|
|
4183
4142
|
}
|
|
4184
4143
|
);
|
|
4185
4144
|
}
|
|
4186
4145
|
|
|
4187
4146
|
// src/components/vendor-page-skeleton.tsx
|
|
4188
|
-
import { jsx as
|
|
4147
|
+
import { jsx as jsx39 } from "react/jsx-runtime";
|
|
4189
4148
|
function VendorPageSkeleton() {
|
|
4190
|
-
return /* @__PURE__ */
|
|
4149
|
+
return /* @__PURE__ */ jsx39(VendorDetailLayoutSkeleton, {});
|
|
4191
4150
|
}
|
|
4192
4151
|
|
|
4193
4152
|
// src/components/why-it-matters.tsx
|
|
4194
|
-
import { jsx as
|
|
4153
|
+
import { jsx as jsx40, jsxs as jsxs33 } from "react/jsx-runtime";
|
|
4195
4154
|
|
|
4196
4155
|
// src/components/yes-no-display.tsx
|
|
4197
|
-
import { jsx as
|
|
4156
|
+
import { jsx as jsx41, jsxs as jsxs34 } from "react/jsx-runtime";
|
|
4198
4157
|
function YesNoDisplay({
|
|
4199
4158
|
value,
|
|
4200
4159
|
yesText = "Yes",
|
|
@@ -4204,19 +4163,19 @@ function YesNoDisplay({
|
|
|
4204
4163
|
}) {
|
|
4205
4164
|
if (customText) {
|
|
4206
4165
|
return /* @__PURE__ */ jsxs34("div", { className: `flex items-center gap-2 ${className}`, children: [
|
|
4207
|
-
/* @__PURE__ */
|
|
4208
|
-
/* @__PURE__ */
|
|
4166
|
+
/* @__PURE__ */ jsx41(CheckCircleIcon2, { className: "h-6 w-6" }),
|
|
4167
|
+
/* @__PURE__ */ jsx41("span", { className: "text-ods-text-primary text-[16px]", children: customText })
|
|
4209
4168
|
] });
|
|
4210
4169
|
}
|
|
4211
4170
|
if (value) {
|
|
4212
4171
|
return /* @__PURE__ */ jsxs34("div", { className: `flex items-center gap-2 ${className}`, children: [
|
|
4213
|
-
/* @__PURE__ */
|
|
4214
|
-
/* @__PURE__ */
|
|
4172
|
+
/* @__PURE__ */ jsx41(CheckCircleIcon2, { className: "h-6 w-6" }),
|
|
4173
|
+
/* @__PURE__ */ jsx41("span", { className: "text-ods-text-primary text-[16px]", children: yesText })
|
|
4215
4174
|
] });
|
|
4216
4175
|
}
|
|
4217
4176
|
return /* @__PURE__ */ jsxs34("div", { className: `flex items-center gap-2 ${className}`, children: [
|
|
4218
|
-
/* @__PURE__ */
|
|
4219
|
-
/* @__PURE__ */
|
|
4177
|
+
/* @__PURE__ */ jsx41(XCircleIcon, { className: "h-6 w-6" }),
|
|
4178
|
+
/* @__PURE__ */ jsx41("span", { className: "text-ods-text-secondary text-[16px]", children: noText })
|
|
4220
4179
|
] });
|
|
4221
4180
|
}
|
|
4222
4181
|
function evaluateFeatureValue(value, dataType) {
|
|
@@ -4251,7 +4210,7 @@ function evaluateFeatureValue(value, dataType) {
|
|
|
4251
4210
|
|
|
4252
4211
|
// src/components/made-with-love.tsx
|
|
4253
4212
|
import { useState as useState5, useEffect as useEffect4 } from "react";
|
|
4254
|
-
import { jsx as
|
|
4213
|
+
import { jsx as jsx42, jsxs as jsxs35 } from "react/jsx-runtime";
|
|
4255
4214
|
function MadeWithLove({
|
|
4256
4215
|
className = "",
|
|
4257
4216
|
size = "md",
|
|
@@ -4342,14 +4301,14 @@ function MadeWithLove({
|
|
|
4342
4301
|
onMouseEnter: () => setIsHovered(true),
|
|
4343
4302
|
onMouseLeave: () => setIsHovered(false),
|
|
4344
4303
|
children: [
|
|
4345
|
-
/* @__PURE__ */
|
|
4304
|
+
/* @__PURE__ */ jsx42("div", { style: logoStyle, children: /* @__PURE__ */ jsx42(
|
|
4346
4305
|
FlamingoLogo2,
|
|
4347
4306
|
{
|
|
4348
4307
|
size: config.logoSize,
|
|
4349
4308
|
color: "#f357bb"
|
|
4350
4309
|
}
|
|
4351
4310
|
) }),
|
|
4352
|
-
/* @__PURE__ */
|
|
4311
|
+
/* @__PURE__ */ jsx42("span", { style: textStyle, children: "Flamingo" })
|
|
4353
4312
|
]
|
|
4354
4313
|
}
|
|
4355
4314
|
)
|
|
@@ -4361,7 +4320,7 @@ function MadeWithLove({
|
|
|
4361
4320
|
// src/components/date-time-picker.tsx
|
|
4362
4321
|
init_cn();
|
|
4363
4322
|
import DatePicker2 from "react-datepicker";
|
|
4364
|
-
import { jsx as
|
|
4323
|
+
import { jsx as jsx43, jsxs as jsxs36 } from "react/jsx-runtime";
|
|
4365
4324
|
var inputClassName = cn(
|
|
4366
4325
|
"flex h-10 w-full rounded-md border px-3 py-2 text-sm ring-offset-background",
|
|
4367
4326
|
"file:border-0 file:bg-transparent file:text-sm file:font-medium",
|
|
@@ -4386,8 +4345,8 @@ function DateTimePicker({
|
|
|
4386
4345
|
dateFormat = "MMMM d, yyyy h:mm aa"
|
|
4387
4346
|
}) {
|
|
4388
4347
|
return /* @__PURE__ */ jsxs36("div", { className: cn("space-y-2", className), children: [
|
|
4389
|
-
label && /* @__PURE__ */
|
|
4390
|
-
/* @__PURE__ */
|
|
4348
|
+
label && /* @__PURE__ */ jsx43(Label, { className: "font-['Azeret_Mono'] text-[12px] font-semibold leading-[1em] tracking-[-0.02em] text-ods-text-secondary uppercase", children: label }),
|
|
4349
|
+
/* @__PURE__ */ jsx43("div", { className: "w-full", children: /* @__PURE__ */ jsx43(
|
|
4391
4350
|
DatePicker2,
|
|
4392
4351
|
{
|
|
4393
4352
|
selected: value,
|
|
@@ -4402,7 +4361,7 @@ function DateTimePicker({
|
|
|
4402
4361
|
className: inputClassName
|
|
4403
4362
|
}
|
|
4404
4363
|
) }),
|
|
4405
|
-
/* @__PURE__ */
|
|
4364
|
+
/* @__PURE__ */ jsx43("style", { dangerouslySetInnerHTML: { __html: `
|
|
4406
4365
|
.react-datepicker-wrapper {
|
|
4407
4366
|
width: 100% !important;
|
|
4408
4367
|
display: block !important;
|
|
@@ -4507,7 +4466,7 @@ function DateTimePicker({
|
|
|
4507
4466
|
|
|
4508
4467
|
// src/components/authors/author-detail-view.tsx
|
|
4509
4468
|
init_cn();
|
|
4510
|
-
import { jsx as
|
|
4469
|
+
import { jsx as jsx44, jsxs as jsxs37 } from "react/jsx-runtime";
|
|
4511
4470
|
function AuthorDetailView({
|
|
4512
4471
|
author,
|
|
4513
4472
|
proxyImageUrl,
|
|
@@ -4524,7 +4483,7 @@ function AuthorDetailView({
|
|
|
4524
4483
|
const bioText = formatBioText(author.about);
|
|
4525
4484
|
return /* @__PURE__ */ jsxs37("div", { className: cn("flex flex-col gap-5 md:gap-6", className), children: [
|
|
4526
4485
|
/* @__PURE__ */ jsxs37("div", { className: "flex gap-6 w-full items-start", children: [
|
|
4527
|
-
/* @__PURE__ */
|
|
4486
|
+
/* @__PURE__ */ jsx44("div", { className: "relative shrink-0 h-24 w-24", children: /* @__PURE__ */ jsx44("div", { className: "rounded-full overflow-hidden bg-ods-bg-secondary border border-ods-border w-full h-full relative", children: proxiedAvatar ? /* @__PURE__ */ jsx44(
|
|
4528
4487
|
next_image_default,
|
|
4529
4488
|
{
|
|
4530
4489
|
src: proxiedAvatar,
|
|
@@ -4533,12 +4492,12 @@ function AuthorDetailView({
|
|
|
4533
4492
|
className: "object-cover",
|
|
4534
4493
|
unoptimized: true
|
|
4535
4494
|
}
|
|
4536
|
-
) : /* @__PURE__ */
|
|
4495
|
+
) : /* @__PURE__ */ jsx44("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() }) }) }),
|
|
4537
4496
|
/* @__PURE__ */ jsxs37("div", { className: "min-w-0 flex flex-col justify-center gap-2", children: [
|
|
4538
|
-
/* @__PURE__ */
|
|
4539
|
-
subtitle && /* @__PURE__ */
|
|
4497
|
+
/* @__PURE__ */ jsx44("p", { className: "text-h2 text-ods-text-primary leading-none truncate", children: author.fullName }),
|
|
4498
|
+
subtitle && /* @__PURE__ */ jsx44("p", { className: "font-body text-lg text-ods-text-secondary leading-none truncate", children: subtitle }),
|
|
4540
4499
|
author.socialLinks.length > 0 && // Ghost compact row (transparent 32px) — metadata, not CTAs.
|
|
4541
|
-
/* @__PURE__ */
|
|
4500
|
+
/* @__PURE__ */ jsx44(
|
|
4542
4501
|
SocialIconRow,
|
|
4543
4502
|
{
|
|
4544
4503
|
compact: true,
|
|
@@ -4551,8 +4510,8 @@ function AuthorDetailView({
|
|
|
4551
4510
|
)
|
|
4552
4511
|
] })
|
|
4553
4512
|
] }),
|
|
4554
|
-
bioText && /* @__PURE__ */
|
|
4555
|
-
author.knowsAbout.length > 0 && /* @__PURE__ */
|
|
4513
|
+
bioText && /* @__PURE__ */ jsx44("p", { className: "font-body text-base leading-relaxed text-ods-text-secondary", children: bioText }),
|
|
4514
|
+
author.knowsAbout.length > 0 && /* @__PURE__ */ jsx44("div", { className: "flex flex-wrap gap-2", children: author.knowsAbout.map((topic) => /* @__PURE__ */ jsx44(StatusBadge, { text: topic, variant: "button", colorScheme: "cyan", singleLine: true }, topic)) }),
|
|
4556
4515
|
children
|
|
4557
4516
|
] });
|
|
4558
4517
|
}
|
|
@@ -4887,6 +4846,7 @@ export {
|
|
|
4887
4846
|
EmptyState,
|
|
4888
4847
|
EmptyVendorIcon,
|
|
4889
4848
|
EntityAuthorCard,
|
|
4849
|
+
EntityIcon,
|
|
4890
4850
|
EntityImage,
|
|
4891
4851
|
EntityMetadataAuthorCell,
|
|
4892
4852
|
EntityMetadataValueCell,
|
|
@@ -4976,6 +4936,8 @@ export {
|
|
|
4976
4936
|
HubspotIcon,
|
|
4977
4937
|
HubspotTicketCard,
|
|
4978
4938
|
HubspotTicketCardSkeleton,
|
|
4939
|
+
ICON_ALIASES,
|
|
4940
|
+
ICON_OPTIONS,
|
|
4979
4941
|
ICON_REGISTRY,
|
|
4980
4942
|
ITIcon,
|
|
4981
4943
|
IconsBlock,
|
|
@@ -5119,8 +5081,6 @@ export {
|
|
|
5119
5081
|
NushellIcon,
|
|
5120
5082
|
OGLinkErrorBoundary,
|
|
5121
5083
|
OGLinkPreview,
|
|
5122
|
-
ONBOARDING_ICONS,
|
|
5123
|
-
ONBOARDING_ICON_OPTIONS,
|
|
5124
5084
|
OPENFRAME_DOCTOR_COMMANDS,
|
|
5125
5085
|
OPENFRAME_PATHS,
|
|
5126
5086
|
OPSIcon,
|
|
@@ -5538,7 +5498,7 @@ export {
|
|
|
5538
5498
|
renderSvgIcon,
|
|
5539
5499
|
resolutionToStatus,
|
|
5540
5500
|
resolveExternalNavigation,
|
|
5541
|
-
|
|
5501
|
+
resolveIcon,
|
|
5542
5502
|
resolveSearchResultAction,
|
|
5543
5503
|
resolveSourceIcon,
|
|
5544
5504
|
resolveSourceRowCTA,
|