@flamingo-stack/openframe-frontend-core 0.0.564 → 0.0.565-1861.5100.1
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-PKCZL56Y.cjs → chunk-4H7L4OSR.cjs} +4 -4
- package/dist/{chunk-PKCZL56Y.cjs.map → chunk-4H7L4OSR.cjs.map} +1 -1
- package/dist/chunk-5I3BSQ6D.js +2 -0
- package/dist/{chunk-6OPEULTD.cjs → chunk-BKDSNVGH.cjs} +9 -9
- package/dist/{chunk-6OPEULTD.cjs.map → chunk-BKDSNVGH.cjs.map} +1 -1
- package/dist/{chunk-OYFXHET4.cjs → chunk-BWMVI2KD.cjs} +7 -7
- package/dist/{chunk-OYFXHET4.cjs.map → chunk-BWMVI2KD.cjs.map} +1 -1
- package/dist/{chunk-YFLSOYX4.cjs → chunk-DLSDYLY3.cjs} +11 -11
- package/dist/{chunk-YFLSOYX4.cjs.map → chunk-DLSDYLY3.cjs.map} +1 -1
- package/dist/{chunk-NQ6UF4LP.js → chunk-EQEMZU45.js} +4 -4
- package/dist/{chunk-FG4BSJ4A.cjs → chunk-GG2HJQW3.cjs} +26 -26
- package/dist/{chunk-FG4BSJ4A.cjs.map → chunk-GG2HJQW3.cjs.map} +1 -1
- package/dist/{chunk-O3SEC45L.js → chunk-GG6CAELN.js} +4 -4
- package/dist/{chunk-J7R3VZL5.cjs → chunk-GZL5SAUI.cjs} +19 -15
- package/dist/chunk-GZL5SAUI.cjs.map +1 -0
- package/dist/{chunk-ASULU3T2.js → chunk-H4RCJ4IB.js} +7 -3
- package/dist/{chunk-ASULU3T2.js.map → chunk-H4RCJ4IB.js.map} +1 -1
- package/dist/{chunk-U5EVZLL5.cjs → chunk-KHEOXHF4.cjs} +5 -5
- package/dist/{chunk-U5EVZLL5.cjs.map → chunk-KHEOXHF4.cjs.map} +1 -1
- package/dist/{chunk-Z4VU6MJ4.js → chunk-LOWWLH2W.js} +2 -2
- package/dist/{chunk-NUKQWLOG.js → chunk-MIKGZY7V.js} +5 -5
- package/dist/{chunk-BK7V6CH5.js → chunk-MSUSONUK.js} +3297 -3209
- package/dist/chunk-MSUSONUK.js.map +1 -0
- package/dist/{chunk-PT4GS4CE.cjs → chunk-NAYXROCV.cjs} +3 -3
- package/dist/{chunk-PT4GS4CE.cjs.map → chunk-NAYXROCV.cjs.map} +1 -1
- package/dist/{chunk-G2VDS3M5.js → chunk-OEN3GTRL.js} +2 -2
- package/dist/{chunk-XFI5PCER.cjs → chunk-OTDVQBLI.cjs} +31 -31
- package/dist/{chunk-XFI5PCER.cjs.map → chunk-OTDVQBLI.cjs.map} +1 -1
- package/dist/{chunk-WGDZW237.cjs → chunk-PBH2BQYR.cjs} +86 -86
- package/dist/{chunk-WGDZW237.cjs.map → chunk-PBH2BQYR.cjs.map} +1 -1
- package/dist/{chunk-E6PW7GRQ.cjs → chunk-PZH3CZTJ.cjs} +89 -75
- package/dist/chunk-PZH3CZTJ.cjs.map +1 -0
- package/dist/{chunk-GEC2NHQH.cjs → chunk-QWVON3LG.cjs} +20 -20
- package/dist/{chunk-GEC2NHQH.cjs.map → chunk-QWVON3LG.cjs.map} +1 -1
- package/dist/{chunk-X4JKXYY5.js → chunk-SQ53GVCG.js} +2 -2
- package/dist/{chunk-AZPUAPXW.cjs → chunk-TA5P2M7V.cjs} +796 -708
- package/dist/chunk-TA5P2M7V.cjs.map +1 -0
- package/dist/chunk-UGAHDPNU.cjs +2 -0
- package/dist/{chunk-ZTM35Q76.cjs.map → chunk-UGAHDPNU.cjs.map} +1 -1
- package/dist/{chunk-T3P56JKN.js → chunk-XPLZB74T.js} +2 -2
- package/dist/{chunk-CQNK6RS6.js → chunk-XSK7ZQ3C.js} +2 -2
- package/dist/{chunk-TDYF6Q2D.js → chunk-XZNKPEWB.js} +2 -2
- package/dist/{chunk-VVDLVCPW.cjs → chunk-Y6IGG6RZ.cjs} +39 -39
- package/dist/{chunk-VVDLVCPW.cjs.map → chunk-Y6IGG6RZ.cjs.map} +1 -1
- package/dist/{chunk-7D62XVHH.js → chunk-YVOMHB73.js} +35 -21
- package/dist/chunk-YVOMHB73.js.map +1 -0
- package/dist/{chunk-CP7TMQBH.js → chunk-ZUVVJ24E.js} +2 -2
- package/dist/{chunk-DPMOEYEM.js → chunk-ZYC4O76Y.js} +2 -2
- package/dist/components/case-studies/index.cjs +8 -8
- package/dist/components/case-studies/index.js +2 -2
- package/dist/components/chat/entity-cards/employee-entry-card.d.ts.map +1 -1
- package/dist/components/chat/index.cjs +2 -2
- package/dist/components/chat/index.js +1 -1
- package/dist/components/comment-card.d.ts +18 -2
- package/dist/components/comment-card.d.ts.map +1 -1
- package/dist/components/comment-composer.d.ts +42 -0
- package/dist/components/comment-composer.d.ts.map +1 -0
- 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/claude-embed.d.ts +31 -0
- package/dist/components/embeds/claude-embed.d.ts.map +1 -0
- package/dist/components/embeds/index.cjs +6 -4
- package/dist/components/embeds/index.cjs.map +1 -1
- package/dist/components/embeds/index.d.ts +2 -0
- package/dist/components/embeds/index.d.ts.map +1 -1
- package/dist/components/embeds/index.js +5 -3
- package/dist/components/faq/index.cjs +3 -3
- package/dist/components/faq/index.js +2 -2
- package/dist/components/features/array-entry-manager.d.ts.map +1 -1
- package/dist/components/features/clickup-tasks-manager.d.ts +6 -1
- package/dist/components/features/clickup-tasks-manager.d.ts.map +1 -1
- package/dist/components/features/index.cjs +2 -2
- package/dist/components/features/index.js +1 -1
- package/dist/components/help-center-pages/index.cjs +22 -22
- package/dist/components/help-center-pages/index.js +13 -13
- package/dist/components/index.cjs +281 -204
- 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 +647 -570
- package/dist/components/index.js.map +1 -1
- package/dist/components/meeting-scheduler/index.cjs +30 -30
- package/dist/components/meeting-scheduler/index.js +3 -3
- 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/shared/delivery/delivery-row.d.ts +5 -1
- package/dist/components/shared/delivery/delivery-row.d.ts.map +1 -1
- package/dist/components/shared/roadmap/roadmap-grid.d.ts +10 -1
- package/dist/components/shared/roadmap/roadmap-grid.d.ts.map +1 -1
- package/dist/components/tickets/index.cjs +6 -6
- package/dist/components/tickets/index.js +5 -5
- package/dist/components/ui/card.d.ts.map +1 -1
- package/dist/components/ui/index.cjs +4 -2
- package/dist/components/ui/index.cjs.map +1 -1
- package/dist/components/ui/index.d.ts +1 -1
- package/dist/components/ui/index.d.ts.map +1 -1
- package/dist/components/ui/index.js +3 -1
- package/dist/components/ui/markdown/rich/embed-overrides.d.ts.map +1 -1
- package/dist/components/ui/markdown/rich/shortcodes.d.ts.map +1 -1
- package/dist/components/ui/table/index.d.ts +1 -1
- package/dist/components/ui/table/index.d.ts.map +1 -1
- package/dist/components/ui/table/table-row.d.ts.map +1 -1
- package/dist/components/ui/table/table-skeleton.d.ts +15 -2
- package/dist/components/ui/table/table-skeleton.d.ts.map +1 -1
- package/dist/components/ui/table/table.d.ts.map +1 -1
- package/dist/components/ui/table/types.d.ts +2 -0
- package/dist/components/ui/table/types.d.ts.map +1 -1
- package/dist/index.cjs +6 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +5 -1
- package/dist/types/department.d.ts +41 -0
- package/dist/types/department.d.ts.map +1 -0
- package/dist/types/design-doc.d.ts +247 -0
- package/dist/types/design-doc.d.ts.map +1 -0
- package/dist/types/employee.d.ts +25 -2
- package/dist/types/employee.d.ts.map +1 -1
- package/dist/types/index.d.ts +2 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/marketing.d.ts +1 -1
- package/dist/types/marketing.d.ts.map +1 -1
- package/dist/types/profile.d.ts +2 -1
- package/dist/types/profile.d.ts.map +1 -1
- package/dist/types/team.d.ts +15 -1
- package/dist/types/team.d.ts.map +1 -1
- package/dist/types/user.d.ts +3 -1
- package/dist/types/user.d.ts.map +1 -1
- package/dist/utils/embed-url-converters.d.ts +17 -0
- package/dist/utils/embed-url-converters.d.ts.map +1 -1
- package/dist/utils/index.cjs +12 -0
- package/dist/utils/index.cjs.map +1 -1
- package/dist/utils/index.js +12 -1
- package/dist/utils/index.js.map +1 -1
- package/package.json +1 -1
- package/src/components/.comment-card.md +4 -5
- package/src/components/chat/entity-cards/employee-entry-card.tsx +6 -0
- package/src/components/comment-card.tsx +42 -17
- package/src/components/comment-composer.tsx +117 -0
- package/src/components/embeds/claude-embed.tsx +84 -0
- package/src/components/embeds/index.ts +2 -0
- package/src/components/features/array-entry-manager.tsx +2 -1
- package/src/components/features/clickup-tasks-manager.tsx +8 -1
- package/src/components/index.ts +1 -0
- package/src/components/shared/delivery/delivery-row.tsx +17 -1
- package/src/components/shared/roadmap/roadmap-grid.tsx +21 -1
- package/src/components/ui/card.tsx +4 -1
- package/src/components/ui/index.ts +1 -0
- package/src/components/ui/markdown/rich/__tests__/shortcodes.test.ts +44 -0
- package/src/components/ui/markdown/rich/embed-overrides.tsx +4 -0
- package/src/components/ui/markdown/rich/shortcodes.ts +12 -0
- package/src/components/ui/table/index.ts +1 -1
- package/src/components/ui/table/table-row.tsx +7 -2
- package/src/components/ui/table/table-skeleton.tsx +20 -3
- package/src/components/ui/table/table.tsx +1 -0
- package/src/components/ui/table/types.ts +2 -0
- package/src/types/department.ts +44 -0
- package/src/types/design-doc.ts +295 -0
- package/src/types/employee.ts +27 -2
- package/src/types/index.ts +2 -0
- package/src/types/marketing.ts +1 -0
- package/src/types/profile.ts +3 -1
- package/src/types/team.ts +17 -1
- package/src/types/user.ts +4 -1
- package/src/utils/__tests__/claude-embed-url.test.ts +42 -0
- package/src/utils/embed-url-converters.ts +32 -0
- package/dist/chunk-7D62XVHH.js.map +0 -1
- package/dist/chunk-AZPUAPXW.cjs.map +0 -1
- package/dist/chunk-BK7V6CH5.js.map +0 -1
- package/dist/chunk-E6PW7GRQ.cjs.map +0 -1
- package/dist/chunk-J7R3VZL5.cjs.map +0 -1
- package/dist/chunk-MVWSLZG7.js +0 -2
- package/dist/chunk-ZTM35Q76.cjs +0 -2
- /package/dist/{chunk-MVWSLZG7.js.map → chunk-5I3BSQ6D.js.map} +0 -0
- /package/dist/{chunk-NQ6UF4LP.js.map → chunk-EQEMZU45.js.map} +0 -0
- /package/dist/{chunk-O3SEC45L.js.map → chunk-GG6CAELN.js.map} +0 -0
- /package/dist/{chunk-Z4VU6MJ4.js.map → chunk-LOWWLH2W.js.map} +0 -0
- /package/dist/{chunk-NUKQWLOG.js.map → chunk-MIKGZY7V.js.map} +0 -0
- /package/dist/{chunk-G2VDS3M5.js.map → chunk-OEN3GTRL.js.map} +0 -0
- /package/dist/{chunk-X4JKXYY5.js.map → chunk-SQ53GVCG.js.map} +0 -0
- /package/dist/{chunk-T3P56JKN.js.map → chunk-XPLZB74T.js.map} +0 -0
- /package/dist/{chunk-CQNK6RS6.js.map → chunk-XSK7ZQ3C.js.map} +0 -0
- /package/dist/{chunk-TDYF6Q2D.js.map → chunk-XZNKPEWB.js.map} +0 -0
- /package/dist/{chunk-CP7TMQBH.js.map → chunk-ZUVVJ24E.js.map} +0 -0
- /package/dist/{chunk-DPMOEYEM.js.map → chunk-ZYC4O76Y.js.map} +0 -0
package/dist/components/index.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
"use client";
|
|
3
|
-
import "../chunk-
|
|
3
|
+
import "../chunk-5I3BSQ6D.js";
|
|
4
4
|
import {
|
|
5
5
|
GROUP_PAGE_SIZE,
|
|
6
6
|
RelatedContentSection
|
|
7
|
-
} from "../chunk-
|
|
7
|
+
} from "../chunk-LOWWLH2W.js";
|
|
8
8
|
import {
|
|
9
9
|
DeliveryLists,
|
|
10
10
|
DeliveryTable,
|
|
@@ -18,7 +18,7 @@ import {
|
|
|
18
18
|
RoadmapView,
|
|
19
19
|
useLegalDocs,
|
|
20
20
|
useRoadmapVoting
|
|
21
|
-
} from "../chunk-
|
|
21
|
+
} from "../chunk-YVOMHB73.js";
|
|
22
22
|
import {
|
|
23
23
|
AnnouncementBarSkeleton,
|
|
24
24
|
ArticleLayoutSkeleton,
|
|
@@ -51,22 +51,22 @@ import {
|
|
|
51
51
|
useDocNavigation,
|
|
52
52
|
useDocumentTree,
|
|
53
53
|
useScrollSpy
|
|
54
|
-
} from "../chunk-
|
|
54
|
+
} from "../chunk-GG6CAELN.js";
|
|
55
55
|
import {
|
|
56
56
|
FileDownloadCard,
|
|
57
57
|
GoogleSheetsViewer,
|
|
58
58
|
PdfViewer
|
|
59
|
-
} from "../chunk-
|
|
59
|
+
} from "../chunk-OEN3GTRL.js";
|
|
60
60
|
import {
|
|
61
61
|
PersistentPagination,
|
|
62
62
|
PersistentPaginationWrapper,
|
|
63
63
|
usePaginationLoading
|
|
64
|
-
} from "../chunk-
|
|
64
|
+
} from "../chunk-XSK7ZQ3C.js";
|
|
65
65
|
import {
|
|
66
66
|
FaqAccordion,
|
|
67
67
|
FaqDocumentPage,
|
|
68
68
|
FaqSection
|
|
69
|
-
} from "../chunk-
|
|
69
|
+
} from "../chunk-SQ53GVCG.js";
|
|
70
70
|
import {
|
|
71
71
|
DeliveryRow,
|
|
72
72
|
DevCardRowContent,
|
|
@@ -74,16 +74,16 @@ import {
|
|
|
74
74
|
DevCardRowSkeletonList,
|
|
75
75
|
DevSectionPage,
|
|
76
76
|
DevSectionView
|
|
77
|
-
} from "../chunk-
|
|
77
|
+
} from "../chunk-H4RCJ4IB.js";
|
|
78
78
|
import {
|
|
79
79
|
EmptyState,
|
|
80
80
|
UnifiedPagination,
|
|
81
81
|
init_unified_pagination
|
|
82
|
-
} from "../chunk-
|
|
82
|
+
} from "../chunk-XPLZB74T.js";
|
|
83
83
|
import {
|
|
84
84
|
ArticleAuthorByline,
|
|
85
85
|
DetailPageSkeleton
|
|
86
|
-
} from "../chunk-
|
|
86
|
+
} from "../chunk-ZUVVJ24E.js";
|
|
87
87
|
import {
|
|
88
88
|
DocSearchBar,
|
|
89
89
|
DocSearchResultRow,
|
|
@@ -91,7 +91,7 @@ import {
|
|
|
91
91
|
mapDocSearchResults,
|
|
92
92
|
resolveSearchResultAction,
|
|
93
93
|
useDocSearch
|
|
94
|
-
} from "../chunk-
|
|
94
|
+
} from "../chunk-XZNKPEWB.js";
|
|
95
95
|
import {
|
|
96
96
|
useSelfFetch
|
|
97
97
|
} from "../chunk-KL6ZDLDF.js";
|
|
@@ -209,6 +209,7 @@ import {
|
|
|
209
209
|
COMPACT_CARD_TEXT_COL,
|
|
210
210
|
COMPACT_CARD_TITLE,
|
|
211
211
|
COMPACT_CARD_TITLE_ROW,
|
|
212
|
+
COMPACT_ROW_MIN_HEIGHT_PX,
|
|
212
213
|
CONNECTION_STATUS,
|
|
213
214
|
CONTEXT_BACK_CLASS,
|
|
214
215
|
CONTEXT_ICON_CLASS,
|
|
@@ -268,6 +269,7 @@ import {
|
|
|
268
269
|
CheckboxWithDescription,
|
|
269
270
|
ChevronButton,
|
|
270
271
|
CircularProgress,
|
|
272
|
+
ClaudeEmbed,
|
|
271
273
|
ClickUpTasksManager,
|
|
272
274
|
ClientOnlyHeader,
|
|
273
275
|
ColorPickerInput,
|
|
@@ -1001,7 +1003,7 @@ import {
|
|
|
1001
1003
|
useVideoWarmup,
|
|
1002
1004
|
useWalkthroughVideo,
|
|
1003
1005
|
usesCanonicalStatusStyle
|
|
1004
|
-
} from "../chunk-
|
|
1006
|
+
} from "../chunk-MSUSONUK.js";
|
|
1005
1007
|
import "../chunk-7EUIW46X.js";
|
|
1006
1008
|
import {
|
|
1007
1009
|
next_image_default
|
|
@@ -1849,7 +1851,10 @@ function CommentCard({
|
|
|
1849
1851
|
onDeleteComment,
|
|
1850
1852
|
showVendorInfo = true,
|
|
1851
1853
|
compact = false,
|
|
1852
|
-
|
|
1854
|
+
leadWith = "commenter",
|
|
1855
|
+
fullBody = false,
|
|
1856
|
+
footer,
|
|
1857
|
+
children
|
|
1853
1858
|
}) {
|
|
1854
1859
|
const { user: currentUser } = useAuth();
|
|
1855
1860
|
const formatActivityTime = (timestamp) => {
|
|
@@ -1857,89 +1862,158 @@ function CommentCard({
|
|
|
1857
1862
|
};
|
|
1858
1863
|
const canUserDeleteComment = () => {
|
|
1859
1864
|
if (!currentUser) return false;
|
|
1860
|
-
if (
|
|
1861
|
-
|
|
1862
|
-
}
|
|
1863
|
-
if (context === "vendor" && comment.user) {
|
|
1864
|
-
return currentUser.id === comment.user.id;
|
|
1865
|
-
}
|
|
1866
|
-
return false;
|
|
1865
|
+
if (typeof comment.canDelete === "boolean") return comment.canDelete;
|
|
1866
|
+
return !!comment.user && currentUser.id === comment.user.id;
|
|
1867
1867
|
};
|
|
1868
1868
|
const showDeleteButton = canUserDeleteComment();
|
|
1869
|
-
return /* @__PURE__ */ jsxs6(
|
|
1870
|
-
/* @__PURE__ */ jsxs6("div", { className: "
|
|
1871
|
-
/* @__PURE__ */
|
|
1872
|
-
/* @__PURE__ */ jsx8(
|
|
1873
|
-
|
|
1869
|
+
return /* @__PURE__ */ jsxs6(Fragment, { children: [
|
|
1870
|
+
/* @__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: [
|
|
1871
|
+
/* @__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: [
|
|
1872
|
+
/* @__PURE__ */ jsx8("div", { className: "flex items-center gap-2 min-w-0 flex-1", children: leadWith === "vendor" && comment.vendor ? /* @__PURE__ */ jsxs6(Fragment, { children: [
|
|
1873
|
+
/* @__PURE__ */ jsx8(
|
|
1874
|
+
VendorDisplayButton,
|
|
1875
|
+
{
|
|
1876
|
+
vendor: comment.vendor,
|
|
1877
|
+
onClick: onViewProduct || (() => {
|
|
1878
|
+
})
|
|
1879
|
+
}
|
|
1880
|
+
),
|
|
1881
|
+
/* @__PURE__ */ jsx8("span", { className: "text-h6 text-ods-text-secondary whitespace-nowrap flex-shrink-0", children: formatActivityTime(comment.createdAt) })
|
|
1882
|
+
] }) : comment.user ? /* @__PURE__ */ jsx8(
|
|
1883
|
+
UserSummary,
|
|
1874
1884
|
{
|
|
1875
|
-
|
|
1876
|
-
|
|
1877
|
-
|
|
1885
|
+
name: comment.user.name,
|
|
1886
|
+
email: "",
|
|
1887
|
+
compact: true,
|
|
1888
|
+
avatarSize: 48,
|
|
1889
|
+
subtitle: formatActivityTime(comment.createdAt),
|
|
1890
|
+
avatarUrl: comment.user.profilePicture ?? null,
|
|
1891
|
+
mspPreview: comment.user.msp ? {
|
|
1892
|
+
name: comment.user.msp.name ?? null,
|
|
1893
|
+
logoUrl: comment.user.msp.icon_url ?? null,
|
|
1894
|
+
seatCount: null,
|
|
1895
|
+
technicianCount: null,
|
|
1896
|
+
annualRevenue: null
|
|
1897
|
+
} : null,
|
|
1898
|
+
showEditButton: false,
|
|
1899
|
+
authProviders: []
|
|
1878
1900
|
}
|
|
1879
|
-
),
|
|
1880
|
-
/* @__PURE__ */ jsx8("
|
|
1881
|
-
|
|
1882
|
-
|
|
1883
|
-
|
|
1884
|
-
|
|
1885
|
-
|
|
1886
|
-
|
|
1887
|
-
|
|
1888
|
-
|
|
1889
|
-
|
|
1890
|
-
|
|
1891
|
-
|
|
1892
|
-
|
|
1893
|
-
|
|
1894
|
-
|
|
1895
|
-
|
|
1896
|
-
|
|
1897
|
-
|
|
1898
|
-
|
|
1899
|
-
|
|
1900
|
-
|
|
1901
|
-
|
|
1902
|
-
|
|
1903
|
-
|
|
1904
|
-
|
|
1905
|
-
|
|
1906
|
-
|
|
1907
|
-
className: "text-ods-text-primary",
|
|
1908
|
-
|
|
1909
|
-
|
|
1910
|
-
|
|
1911
|
-
|
|
1912
|
-
|
|
1913
|
-
|
|
1901
|
+
) : null }),
|
|
1902
|
+
/* @__PURE__ */ jsx8("div", { className: "flex gap-2 justify-start min-[420px]:justify-end", children: showDeleteButton && onDeleteComment && /* @__PURE__ */ jsx8(
|
|
1903
|
+
Button,
|
|
1904
|
+
{
|
|
1905
|
+
onClick: () => onDeleteComment(comment.id),
|
|
1906
|
+
variant: "outline",
|
|
1907
|
+
size: "icon",
|
|
1908
|
+
className: "text-ods-text-primary",
|
|
1909
|
+
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: [
|
|
1910
|
+
/* @__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" }),
|
|
1911
|
+
/* @__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" })
|
|
1912
|
+
] })
|
|
1913
|
+
}
|
|
1914
|
+
) })
|
|
1915
|
+
] }),
|
|
1916
|
+
/* @__PURE__ */ jsxs6("div", { className: "space-y-2 w-full max-w-full overflow-hidden", style: { maxWidth: "100%", wordBreak: "break-word" }, children: [
|
|
1917
|
+
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: {
|
|
1918
|
+
wordBreak: "break-word",
|
|
1919
|
+
overflowWrap: "break-word",
|
|
1920
|
+
maxWidth: "100%",
|
|
1921
|
+
textOverflow: "ellipsis",
|
|
1922
|
+
overflow: "hidden",
|
|
1923
|
+
display: "-webkit-box",
|
|
1924
|
+
WebkitBoxOrient: "vertical",
|
|
1925
|
+
WebkitLineClamp: 1
|
|
1926
|
+
}, children: comment.title }) }),
|
|
1927
|
+
fullBody ? (
|
|
1928
|
+
// Thread bodies are read in full — no fixed height, no clamp.
|
|
1929
|
+
/* @__PURE__ */ jsx8("p", { className: "text-h4 text-ods-text-primary whitespace-pre-wrap", style: { wordBreak: "break-word", overflowWrap: "break-word", maxWidth: "100%" }, children: comment.content })
|
|
1930
|
+
) : /* @__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: {
|
|
1931
|
+
wordBreak: "break-word",
|
|
1932
|
+
overflowWrap: "break-word",
|
|
1933
|
+
maxWidth: "100%",
|
|
1934
|
+
textOverflow: "ellipsis",
|
|
1935
|
+
overflow: "hidden",
|
|
1936
|
+
display: "-webkit-box",
|
|
1937
|
+
WebkitBoxOrient: "vertical",
|
|
1938
|
+
WebkitLineClamp: 3
|
|
1939
|
+
}, children: comment.content }) }),
|
|
1940
|
+
footer ? /* @__PURE__ */ jsx8("div", { className: "pt-2 flex flex-wrap items-center gap-2", children: footer }) : null
|
|
1941
|
+
] })
|
|
1914
1942
|
] }),
|
|
1915
|
-
|
|
1916
|
-
|
|
1917
|
-
|
|
1918
|
-
|
|
1919
|
-
|
|
1920
|
-
|
|
1921
|
-
|
|
1922
|
-
|
|
1923
|
-
|
|
1924
|
-
|
|
1925
|
-
|
|
1926
|
-
|
|
1927
|
-
|
|
1928
|
-
|
|
1929
|
-
|
|
1930
|
-
|
|
1931
|
-
|
|
1932
|
-
|
|
1933
|
-
|
|
1934
|
-
|
|
1935
|
-
|
|
1936
|
-
|
|
1943
|
+
children
|
|
1944
|
+
] });
|
|
1945
|
+
}
|
|
1946
|
+
|
|
1947
|
+
// src/components/comment-composer.tsx
|
|
1948
|
+
import { useState as useState2 } from "react";
|
|
1949
|
+
import { jsx as jsx9, jsxs as jsxs7 } from "react/jsx-runtime";
|
|
1950
|
+
function CommentComposer({
|
|
1951
|
+
withTitle = false,
|
|
1952
|
+
titleLabel = "Title",
|
|
1953
|
+
titlePlaceholder = "Your comment title here",
|
|
1954
|
+
titleRef,
|
|
1955
|
+
bodyLabel = "Description",
|
|
1956
|
+
placeholder = "Write your comment...",
|
|
1957
|
+
extras,
|
|
1958
|
+
submitLabel = "Send",
|
|
1959
|
+
cancelLabel = "Cancel",
|
|
1960
|
+
onCancel,
|
|
1961
|
+
pending = false,
|
|
1962
|
+
ariaLabel,
|
|
1963
|
+
onSubmit
|
|
1964
|
+
}) {
|
|
1965
|
+
const [title, setTitle] = useState2("");
|
|
1966
|
+
const [body, setBody] = useState2("");
|
|
1967
|
+
const canSubmit = body.trim().length > 0 && (!withTitle || title.trim().length > 0) && !pending;
|
|
1968
|
+
const submit = async () => {
|
|
1969
|
+
if (!canSubmit) return;
|
|
1970
|
+
const kept = await onSubmit({ title: title.trim(), body: body.trim() });
|
|
1971
|
+
if (kept === false) return;
|
|
1972
|
+
setTitle("");
|
|
1973
|
+
setBody("");
|
|
1974
|
+
};
|
|
1975
|
+
return /* @__PURE__ */ jsxs7("div", { className: "flex flex-col gap-[var(--spacing-system-xsf)]", children: [
|
|
1976
|
+
/* @__PURE__ */ jsxs7("div", { className: "flex flex-col gap-[var(--spacing-system-sf)] md:flex-row", children: [
|
|
1977
|
+
/* @__PURE__ */ jsxs7("div", { className: "flex-1 overflow-hidden rounded-lg border border-ods-border bg-ods-bg", children: [
|
|
1978
|
+
withTitle ? /* @__PURE__ */ jsxs7("div", { className: "border-b border-ods-border", children: [
|
|
1979
|
+
/* @__PURE__ */ jsx9(Label, { className: "text-badge text-ods-text-secondary px-3 pt-2 pb-1", children: titleLabel }),
|
|
1980
|
+
/* @__PURE__ */ jsx9(
|
|
1981
|
+
Input,
|
|
1982
|
+
{
|
|
1983
|
+
ref: titleRef,
|
|
1984
|
+
value: title,
|
|
1985
|
+
onChange: (e) => setTitle(e.target.value),
|
|
1986
|
+
placeholder: titlePlaceholder,
|
|
1987
|
+
disabled: pending,
|
|
1988
|
+
className: "rounded-none border-0 bg-transparent focus-visible:ring-0"
|
|
1989
|
+
}
|
|
1990
|
+
)
|
|
1991
|
+
] }) : null,
|
|
1992
|
+
withTitle ? /* @__PURE__ */ jsx9(Label, { className: "text-badge text-ods-text-secondary px-3 pt-2 pb-1", children: bodyLabel }) : null,
|
|
1993
|
+
/* @__PURE__ */ jsx9(
|
|
1994
|
+
Textarea,
|
|
1995
|
+
{
|
|
1996
|
+
value: body,
|
|
1997
|
+
onChange: (e) => setBody(e.target.value),
|
|
1998
|
+
placeholder,
|
|
1999
|
+
disabled: pending,
|
|
2000
|
+
"aria-label": ariaLabel ?? (withTitle ? bodyLabel : submitLabel),
|
|
2001
|
+
className: "min-h-[64px] rounded-none border-0 bg-transparent focus-visible:ring-0"
|
|
2002
|
+
}
|
|
2003
|
+
)
|
|
2004
|
+
] }),
|
|
2005
|
+
/* @__PURE__ */ jsxs7("div", { className: "flex items-start gap-[var(--spacing-system-xsf)]", children: [
|
|
2006
|
+
onCancel ? /* @__PURE__ */ jsx9(Button, { type: "button", variant: "outline", size: "small-legacy", onClick: onCancel, disabled: pending, children: cancelLabel }) : null,
|
|
2007
|
+
/* @__PURE__ */ jsx9(Button, { type: "button", variant: "accent", size: "small-legacy", onClick: submit, disabled: !canSubmit, loading: pending, children: submitLabel })
|
|
2008
|
+
] })
|
|
2009
|
+
] }),
|
|
2010
|
+
extras ? /* @__PURE__ */ jsx9("div", { className: "flex flex-wrap items-center gap-[var(--spacing-system-xsf)]", children: extras }) : null
|
|
1937
2011
|
] });
|
|
1938
2012
|
}
|
|
1939
2013
|
|
|
1940
2014
|
// src/components/content-loading-container.tsx
|
|
1941
2015
|
init_cn();
|
|
1942
|
-
import { jsx as
|
|
2016
|
+
import { jsx as jsx10, jsxs as jsxs8 } from "react/jsx-runtime";
|
|
1943
2017
|
function ContentLoadingContainer({
|
|
1944
2018
|
isLoading,
|
|
1945
2019
|
children,
|
|
@@ -1949,7 +2023,7 @@ function ContentLoadingContainer({
|
|
|
1949
2023
|
loadingOpacity = 1,
|
|
1950
2024
|
transitionDuration = 300
|
|
1951
2025
|
}) {
|
|
1952
|
-
return /* @__PURE__ */
|
|
2026
|
+
return /* @__PURE__ */ jsxs8(
|
|
1953
2027
|
"div",
|
|
1954
2028
|
{
|
|
1955
2029
|
className: cn(
|
|
@@ -1964,7 +2038,7 @@ function ContentLoadingContainer({
|
|
|
1964
2038
|
"aria-label": isLoading ? "Loading content" : "Content loaded",
|
|
1965
2039
|
"aria-live": "polite",
|
|
1966
2040
|
children: [
|
|
1967
|
-
isLoading && /* @__PURE__ */
|
|
2041
|
+
isLoading && /* @__PURE__ */ jsx10(
|
|
1968
2042
|
"div",
|
|
1969
2043
|
{
|
|
1970
2044
|
className: "absolute inset-0 z-10 bg-ods-bg",
|
|
@@ -1977,7 +2051,7 @@ function ContentLoadingContainer({
|
|
|
1977
2051
|
children: skeletonComponent
|
|
1978
2052
|
}
|
|
1979
2053
|
),
|
|
1980
|
-
/* @__PURE__ */
|
|
2054
|
+
/* @__PURE__ */ jsx10(
|
|
1981
2055
|
"div",
|
|
1982
2056
|
{
|
|
1983
2057
|
className: cn(
|
|
@@ -2030,7 +2104,7 @@ function useThemeAware() {
|
|
|
2030
2104
|
}
|
|
2031
2105
|
|
|
2032
2106
|
// src/components/dynamic-skeleton.tsx
|
|
2033
|
-
import { Fragment as Fragment2, jsx as
|
|
2107
|
+
import { Fragment as Fragment2, jsx as jsx11, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
2034
2108
|
var sizePresets = {
|
|
2035
2109
|
sm: { width: "4rem", height: "1rem" },
|
|
2036
2110
|
md: { width: "8rem", height: "1.5rem" },
|
|
@@ -2095,14 +2169,14 @@ function DynamicSkeleton({
|
|
|
2095
2169
|
className
|
|
2096
2170
|
);
|
|
2097
2171
|
if (variant === "text" && lines > 1) {
|
|
2098
|
-
return /* @__PURE__ */
|
|
2172
|
+
return /* @__PURE__ */ jsx11(
|
|
2099
2173
|
"div",
|
|
2100
2174
|
{
|
|
2101
2175
|
className: "space-y-2",
|
|
2102
2176
|
style: platformStyles,
|
|
2103
2177
|
role: "status",
|
|
2104
2178
|
"aria-label": includeAriaLabel ? "Loading content..." : void 0,
|
|
2105
|
-
children: Array.from({ length: lines }, (_, index) => /* @__PURE__ */
|
|
2179
|
+
children: Array.from({ length: lines }, (_, index) => /* @__PURE__ */ jsx11(
|
|
2106
2180
|
"div",
|
|
2107
2181
|
{
|
|
2108
2182
|
className: cn(
|
|
@@ -2120,7 +2194,7 @@ function DynamicSkeleton({
|
|
|
2120
2194
|
}
|
|
2121
2195
|
);
|
|
2122
2196
|
}
|
|
2123
|
-
return /* @__PURE__ */
|
|
2197
|
+
return /* @__PURE__ */ jsx11(
|
|
2124
2198
|
"div",
|
|
2125
2199
|
{
|
|
2126
2200
|
className: baseClasses,
|
|
@@ -2135,72 +2209,72 @@ var SkeletonPresets = {
|
|
|
2135
2209
|
/**
|
|
2136
2210
|
* Card skeleton with header, content, and actions
|
|
2137
2211
|
*/
|
|
2138
|
-
Card: ({ showActions = true, showImage = false }) => /* @__PURE__ */
|
|
2139
|
-
showImage && /* @__PURE__ */
|
|
2140
|
-
/* @__PURE__ */
|
|
2141
|
-
/* @__PURE__ */
|
|
2142
|
-
/* @__PURE__ */
|
|
2212
|
+
Card: ({ showActions = true, showImage = false }) => /* @__PURE__ */ jsxs9("div", { className: "bg-ods-card border border-ods-border rounded-lg p-6 space-y-4", children: [
|
|
2213
|
+
showImage && /* @__PURE__ */ jsx11(DynamicSkeleton, { variant: "image", className: "w-full h-40" }),
|
|
2214
|
+
/* @__PURE__ */ jsxs9("div", { className: "space-y-2", children: [
|
|
2215
|
+
/* @__PURE__ */ jsx11(DynamicSkeleton, { variant: "text", size: "lg" }),
|
|
2216
|
+
/* @__PURE__ */ jsx11(DynamicSkeleton, { variant: "text", lines: 2, size: "md" })
|
|
2143
2217
|
] }),
|
|
2144
|
-
showActions && /* @__PURE__ */
|
|
2145
|
-
/* @__PURE__ */
|
|
2146
|
-
/* @__PURE__ */
|
|
2218
|
+
showActions && /* @__PURE__ */ jsxs9("div", { className: "flex gap-2 pt-2", children: [
|
|
2219
|
+
/* @__PURE__ */ jsx11(DynamicSkeleton, { variant: "button", width: "6rem", height: "2.5rem" }),
|
|
2220
|
+
/* @__PURE__ */ jsx11(DynamicSkeleton, { variant: "button", width: "4rem", height: "2.5rem" })
|
|
2147
2221
|
] })
|
|
2148
2222
|
] }),
|
|
2149
2223
|
/**
|
|
2150
2224
|
* User profile skeleton
|
|
2151
2225
|
*/
|
|
2152
|
-
Profile: () => /* @__PURE__ */
|
|
2153
|
-
/* @__PURE__ */
|
|
2154
|
-
/* @__PURE__ */
|
|
2155
|
-
/* @__PURE__ */
|
|
2156
|
-
/* @__PURE__ */
|
|
2157
|
-
/* @__PURE__ */
|
|
2226
|
+
Profile: () => /* @__PURE__ */ jsxs9("div", { className: "flex items-start gap-4 p-4", children: [
|
|
2227
|
+
/* @__PURE__ */ jsx11(DynamicSkeleton, { variant: "avatar", size: "lg" }),
|
|
2228
|
+
/* @__PURE__ */ jsxs9("div", { className: "flex-1 space-y-2", children: [
|
|
2229
|
+
/* @__PURE__ */ jsx11(DynamicSkeleton, { variant: "text", size: "lg", width: "8rem" }),
|
|
2230
|
+
/* @__PURE__ */ jsx11(DynamicSkeleton, { variant: "text", size: "sm", width: "12rem" }),
|
|
2231
|
+
/* @__PURE__ */ jsx11(DynamicSkeleton, { variant: "text", lines: 2, size: "md" })
|
|
2158
2232
|
] })
|
|
2159
2233
|
] }),
|
|
2160
2234
|
/**
|
|
2161
2235
|
* Navigation skeleton
|
|
2162
2236
|
*/
|
|
2163
|
-
Navigation: ({ items = 5 }) => /* @__PURE__ */
|
|
2164
|
-
/* @__PURE__ */
|
|
2165
|
-
/* @__PURE__ */
|
|
2237
|
+
Navigation: ({ items = 5 }) => /* @__PURE__ */ jsx11("nav", { className: "space-y-2 p-4", children: Array.from({ length: items }, (_, index) => /* @__PURE__ */ jsxs9("div", { className: "flex items-center gap-3", children: [
|
|
2238
|
+
/* @__PURE__ */ jsx11(DynamicSkeleton, { variant: "avatar", size: "sm" }),
|
|
2239
|
+
/* @__PURE__ */ jsx11(DynamicSkeleton, { variant: "text", size: "md" })
|
|
2166
2240
|
] }, index)) }),
|
|
2167
2241
|
/**
|
|
2168
2242
|
* Table skeleton
|
|
2169
2243
|
*/
|
|
2170
|
-
Table: ({ rows = 5, columns = 4 }) => /* @__PURE__ */
|
|
2171
|
-
/* @__PURE__ */
|
|
2172
|
-
Array.from({ length: rows }, (_, rowIndex) => /* @__PURE__ */
|
|
2244
|
+
Table: ({ rows = 5, columns = 4 }) => /* @__PURE__ */ jsxs9("div", { className: "space-y-3", children: [
|
|
2245
|
+
/* @__PURE__ */ jsx11("div", { className: "grid gap-4", style: { gridTemplateColumns: `repeat(${columns}, 1fr)` }, children: Array.from({ length: columns }, (_, index) => /* @__PURE__ */ jsx11(DynamicSkeleton, { variant: "text", size: "md" }, `header-${index}`)) }),
|
|
2246
|
+
Array.from({ length: rows }, (_, rowIndex) => /* @__PURE__ */ jsx11("div", { className: "grid gap-4", style: { gridTemplateColumns: `repeat(${columns}, 1fr)` }, children: Array.from({ length: columns }, (_2, colIndex) => /* @__PURE__ */ jsx11(DynamicSkeleton, { variant: "text", size: "sm" }, `cell-${rowIndex}-${colIndex}`)) }, `row-${rowIndex}`))
|
|
2173
2247
|
] }),
|
|
2174
2248
|
/**
|
|
2175
2249
|
* Vendor grid skeleton (specific to the app)
|
|
2176
2250
|
*/
|
|
2177
|
-
VendorGrid: ({ items = 6 }) => /* @__PURE__ */
|
|
2178
|
-
/* @__PURE__ */
|
|
2179
|
-
/* @__PURE__ */
|
|
2180
|
-
/* @__PURE__ */
|
|
2181
|
-
/* @__PURE__ */
|
|
2182
|
-
/* @__PURE__ */
|
|
2251
|
+
VendorGrid: ({ items = 6 }) => /* @__PURE__ */ jsx11("div", { className: "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6", children: Array.from({ length: items }, (_, index) => /* @__PURE__ */ jsxs9("div", { className: "bg-ods-card border border-ods-border rounded-lg p-4 space-y-3", children: [
|
|
2252
|
+
/* @__PURE__ */ jsxs9("div", { className: "flex items-center gap-3", children: [
|
|
2253
|
+
/* @__PURE__ */ jsx11(DynamicSkeleton, { variant: "avatar", size: "md" }),
|
|
2254
|
+
/* @__PURE__ */ jsxs9("div", { className: "flex-1", children: [
|
|
2255
|
+
/* @__PURE__ */ jsx11(DynamicSkeleton, { variant: "text", size: "md", width: "6rem" }),
|
|
2256
|
+
/* @__PURE__ */ jsx11(DynamicSkeleton, { variant: "text", size: "sm", width: "4rem", className: "mt-1" })
|
|
2183
2257
|
] })
|
|
2184
2258
|
] }),
|
|
2185
|
-
/* @__PURE__ */
|
|
2186
|
-
/* @__PURE__ */
|
|
2187
|
-
/* @__PURE__ */
|
|
2188
|
-
/* @__PURE__ */
|
|
2259
|
+
/* @__PURE__ */ jsx11(DynamicSkeleton, { variant: "text", lines: 2, size: "sm" }),
|
|
2260
|
+
/* @__PURE__ */ jsxs9("div", { className: "flex gap-2", children: [
|
|
2261
|
+
/* @__PURE__ */ jsx11(DynamicSkeleton, { variant: "custom", width: "3rem", height: "1.25rem", className: "rounded-full" }),
|
|
2262
|
+
/* @__PURE__ */ jsx11(DynamicSkeleton, { variant: "custom", width: "4rem", height: "1.25rem", className: "rounded-full" })
|
|
2189
2263
|
] })
|
|
2190
2264
|
] }, index)) }),
|
|
2191
2265
|
/**
|
|
2192
2266
|
* Blog post skeleton
|
|
2193
2267
|
*/
|
|
2194
|
-
BlogPost: () => /* @__PURE__ */
|
|
2195
|
-
/* @__PURE__ */
|
|
2196
|
-
/* @__PURE__ */
|
|
2197
|
-
/* @__PURE__ */
|
|
2198
|
-
/* @__PURE__ */
|
|
2199
|
-
/* @__PURE__ */
|
|
2268
|
+
BlogPost: () => /* @__PURE__ */ jsxs9("article", { className: "space-y-6", children: [
|
|
2269
|
+
/* @__PURE__ */ jsxs9("div", { className: "space-y-2", children: [
|
|
2270
|
+
/* @__PURE__ */ jsx11(DynamicSkeleton, { variant: "text", size: "xl", width: "75%" }),
|
|
2271
|
+
/* @__PURE__ */ jsxs9("div", { className: "flex gap-4 text-sm", children: [
|
|
2272
|
+
/* @__PURE__ */ jsx11(DynamicSkeleton, { variant: "text", size: "sm", width: "4rem" }),
|
|
2273
|
+
/* @__PURE__ */ jsx11(DynamicSkeleton, { variant: "text", size: "sm", width: "6rem" })
|
|
2200
2274
|
] })
|
|
2201
2275
|
] }),
|
|
2202
|
-
/* @__PURE__ */
|
|
2203
|
-
/* @__PURE__ */
|
|
2276
|
+
/* @__PURE__ */ jsx11(DynamicSkeleton, { variant: "image", className: "w-full h-64" }),
|
|
2277
|
+
/* @__PURE__ */ jsx11("div", { className: "space-y-3", children: Array.from({ length: 4 }, (_, index) => /* @__PURE__ */ jsx11(DynamicSkeleton, { variant: "text", lines: 3, size: "md" }, index)) })
|
|
2204
2278
|
] })
|
|
2205
2279
|
};
|
|
2206
2280
|
function PlatformSkeletonContainer({
|
|
@@ -2211,10 +2285,10 @@ function PlatformSkeletonContainer({
|
|
|
2211
2285
|
}) {
|
|
2212
2286
|
const { platform } = useThemeAware();
|
|
2213
2287
|
if (!isLoading) {
|
|
2214
|
-
return /* @__PURE__ */
|
|
2288
|
+
return /* @__PURE__ */ jsx11(Fragment2, { children });
|
|
2215
2289
|
}
|
|
2216
2290
|
const SkeletonComponent = SkeletonPresets[skeletonType];
|
|
2217
|
-
return /* @__PURE__ */
|
|
2291
|
+
return /* @__PURE__ */ jsx11("div", { className: `platform-skeleton skeleton-${platform}`, children: /* @__PURE__ */ jsx11(SkeletonComponent, { ...skeletonProps }) });
|
|
2218
2292
|
}
|
|
2219
2293
|
function ProgressiveSkeleton({
|
|
2220
2294
|
stages = ["basic", "detailed", "interactive"],
|
|
@@ -2229,7 +2303,7 @@ function ProgressiveSkeleton({
|
|
|
2229
2303
|
2: { animation: "wave", variant: "custom" }
|
|
2230
2304
|
};
|
|
2231
2305
|
const config = stageConfig[currentStage] || stageConfig[0];
|
|
2232
|
-
return /* @__PURE__ */
|
|
2306
|
+
return /* @__PURE__ */ jsx11(
|
|
2233
2307
|
DynamicSkeleton,
|
|
2234
2308
|
{
|
|
2235
2309
|
...props,
|
|
@@ -2247,7 +2321,7 @@ function ProgressiveSkeleton({
|
|
|
2247
2321
|
// src/components/filter-chip.tsx
|
|
2248
2322
|
init_cn();
|
|
2249
2323
|
import { X as X2 } from "lucide-react";
|
|
2250
|
-
import { jsx as
|
|
2324
|
+
import { jsx as jsx12, jsxs as jsxs10 } from "react/jsx-runtime";
|
|
2251
2325
|
function FilterChip({
|
|
2252
2326
|
id,
|
|
2253
2327
|
label,
|
|
@@ -2280,7 +2354,7 @@ function FilterChip({
|
|
|
2280
2354
|
subcategory: "bg-ods-bg-surface text-ods-text-primary border border-ods-accent/60 hover:bg-ods-border hover:border-ods-accent/80 hover:text-ods-text-primary focus:ring-ods-accent/60 focus:ring-offset-ods-bg",
|
|
2281
2355
|
tag: "bg-ods-bg-surface text-ods-text-primary border border-ods-accent/20 hover:bg-ods-border hover:border-ods-accent/30 hover:text-ods-text-primary focus:ring-ods-accent/20 focus:ring-offset-ods-bg"
|
|
2282
2356
|
};
|
|
2283
|
-
return /* @__PURE__ */
|
|
2357
|
+
return /* @__PURE__ */ jsxs10(
|
|
2284
2358
|
"div",
|
|
2285
2359
|
{
|
|
2286
2360
|
className: cn(baseClasses, variantClasses[variant], className),
|
|
@@ -2294,11 +2368,11 @@ function FilterChip({
|
|
|
2294
2368
|
"aria-pressed": onClick && variant === "selected" ? true : void 0,
|
|
2295
2369
|
"aria-disabled": disabled,
|
|
2296
2370
|
children: [
|
|
2297
|
-
/* @__PURE__ */
|
|
2371
|
+
/* @__PURE__ */ jsx12("span", { className: cn(
|
|
2298
2372
|
"truncate font-body font-medium leading-none text-center",
|
|
2299
2373
|
size === "sm" ? "max-w-[100px] md:max-w-[120px]" : "max-w-[120px] md:max-w-[140px]"
|
|
2300
2374
|
), title: label, children: label }),
|
|
2301
|
-
removable && onRemove && /* @__PURE__ */
|
|
2375
|
+
removable && onRemove && /* @__PURE__ */ jsx12(
|
|
2302
2376
|
"button",
|
|
2303
2377
|
{
|
|
2304
2378
|
type: "button",
|
|
@@ -2317,7 +2391,7 @@ function FilterChip({
|
|
|
2317
2391
|
),
|
|
2318
2392
|
"aria-label": `Remove ${label} filter`,
|
|
2319
2393
|
tabIndex: disabled ? -1 : 0,
|
|
2320
|
-
children: /* @__PURE__ */
|
|
2394
|
+
children: /* @__PURE__ */ jsx12(X2, { className: "h-2 w-2 md:h-2 md:w-2" })
|
|
2321
2395
|
}
|
|
2322
2396
|
)
|
|
2323
2397
|
]
|
|
@@ -2331,7 +2405,7 @@ import { Suspense } from "react";
|
|
|
2331
2405
|
// src/components/social-icon-row.tsx
|
|
2332
2406
|
init_button();
|
|
2333
2407
|
import { Mail } from "lucide-react";
|
|
2334
|
-
import { jsx as
|
|
2408
|
+
import { jsx as jsx13, jsxs as jsxs11 } from "react/jsx-runtime";
|
|
2335
2409
|
var defaultLinks = [
|
|
2336
2410
|
{ platform: "github", href: "https://github.com/flamingo-stack", label: "GitHub" },
|
|
2337
2411
|
{ platform: "linkedin", href: "https://linkedin.com/company/flamingo.run", label: "LinkedIn" },
|
|
@@ -2341,51 +2415,51 @@ function renderSocialIcon(platform) {
|
|
|
2341
2415
|
const normalizedPlatform = platform.toLowerCase().trim();
|
|
2342
2416
|
switch (normalizedPlatform) {
|
|
2343
2417
|
case "github":
|
|
2344
|
-
return /* @__PURE__ */
|
|
2418
|
+
return /* @__PURE__ */ jsx13(GitHubIcon, { className: "w-5 h-5" });
|
|
2345
2419
|
case "twitter":
|
|
2346
2420
|
case "x":
|
|
2347
|
-
return /* @__PURE__ */
|
|
2421
|
+
return /* @__PURE__ */ jsx13(XLogo, { className: "w-5 h-5" });
|
|
2348
2422
|
case "reddit":
|
|
2349
|
-
return /* @__PURE__ */
|
|
2423
|
+
return /* @__PURE__ */ jsx13(RedditIcon, { className: "w-5 h-5", variant: "white" });
|
|
2350
2424
|
case "linkedin":
|
|
2351
|
-
return /* @__PURE__ */
|
|
2425
|
+
return /* @__PURE__ */ jsx13(LinkedInIcon, { className: "w-5 h-5" });
|
|
2352
2426
|
case "luma":
|
|
2353
|
-
return /* @__PURE__ */
|
|
2427
|
+
return /* @__PURE__ */ jsx13(LumaIcon, { className: "w-5 h-5" });
|
|
2354
2428
|
case "whatsapp":
|
|
2355
|
-
return /* @__PURE__ */
|
|
2429
|
+
return /* @__PURE__ */ jsx13(WhatsAppIcon, { className: "w-5 h-5" });
|
|
2356
2430
|
case "email":
|
|
2357
2431
|
case "mail":
|
|
2358
|
-
return /* @__PURE__ */
|
|
2432
|
+
return /* @__PURE__ */ jsx13(Mail, { className: "w-5 h-5" });
|
|
2359
2433
|
case "website":
|
|
2360
2434
|
case "web":
|
|
2361
2435
|
case "url":
|
|
2362
|
-
return /* @__PURE__ */
|
|
2436
|
+
return /* @__PURE__ */ jsx13(GlobeIcon, { className: "w-5 h-5" });
|
|
2363
2437
|
case "slack":
|
|
2364
|
-
return /* @__PURE__ */
|
|
2438
|
+
return /* @__PURE__ */ jsx13(SlackIcon, { className: "w-5 h-5", injectedColor: "white" });
|
|
2365
2439
|
case "discord":
|
|
2366
|
-
return /* @__PURE__ */
|
|
2440
|
+
return /* @__PURE__ */ jsx13(MessageCircleIcon, { className: "w-5 h-5" });
|
|
2367
2441
|
case "telegram":
|
|
2368
|
-
return /* @__PURE__ */
|
|
2442
|
+
return /* @__PURE__ */ jsx13(TelegramIcon, { className: "w-5 h-5" });
|
|
2369
2443
|
case "youtube":
|
|
2370
2444
|
case "yt":
|
|
2371
|
-
return /* @__PURE__ */
|
|
2445
|
+
return /* @__PURE__ */ jsx13(YouTubeIcon, { className: "w-5 h-5" });
|
|
2372
2446
|
case "instagram":
|
|
2373
2447
|
case "ig":
|
|
2374
|
-
return /* @__PURE__ */
|
|
2448
|
+
return /* @__PURE__ */ jsx13(InstagramIcon, { className: "w-5 h-5" });
|
|
2375
2449
|
case "facebook":
|
|
2376
2450
|
case "fb":
|
|
2377
|
-
return /* @__PURE__ */
|
|
2451
|
+
return /* @__PURE__ */ jsx13(FacebookIcon, { className: "w-5 h-5" });
|
|
2378
2452
|
case "copy":
|
|
2379
|
-
return /* @__PURE__ */
|
|
2453
|
+
return /* @__PURE__ */ jsx13(CopyIcon, { className: "w-5 h-5", color: "var(--color-text-primary)" });
|
|
2380
2454
|
default:
|
|
2381
|
-
return /* @__PURE__ */
|
|
2455
|
+
return /* @__PURE__ */ jsx13(GlobeIcon, { className: "w-5 h-5" });
|
|
2382
2456
|
}
|
|
2383
2457
|
}
|
|
2384
2458
|
function SocialIconRow({ className = "", links = defaultLinks, variant, compact = false, groupByVisibility = false }) {
|
|
2385
2459
|
const resolvedVariant = variant !== void 0 ? variant : compact ? "transparent" : "outline";
|
|
2386
2460
|
const renderButton = (link, index) => {
|
|
2387
2461
|
const ariaLabel = link.label || link.platform;
|
|
2388
|
-
return link.onClick ? /* @__PURE__ */
|
|
2462
|
+
return link.onClick ? /* @__PURE__ */ jsx13(
|
|
2389
2463
|
Button,
|
|
2390
2464
|
{
|
|
2391
2465
|
type: "button",
|
|
@@ -2401,7 +2475,7 @@ function SocialIconRow({ className = "", links = defaultLinks, variant, compact
|
|
|
2401
2475
|
// Props-based linking — Button renders the anchor itself
|
|
2402
2476
|
// (openInNewTab carries target="_blank" + rel="noopener noreferrer");
|
|
2403
2477
|
// no asChild/<a> nesting.
|
|
2404
|
-
/* @__PURE__ */
|
|
2478
|
+
/* @__PURE__ */ jsx13(
|
|
2405
2479
|
Button,
|
|
2406
2480
|
{
|
|
2407
2481
|
variant: resolvedVariant,
|
|
@@ -2421,42 +2495,42 @@ function SocialIconRow({ className = "", links = defaultLinks, variant, compact
|
|
|
2421
2495
|
const external = links.filter((l) => l.visibility !== "internal");
|
|
2422
2496
|
const internal = links.filter((l) => l.visibility === "internal");
|
|
2423
2497
|
if (external.length > 0 && internal.length > 0) {
|
|
2424
|
-
return /* @__PURE__ */
|
|
2498
|
+
return /* @__PURE__ */ jsxs11("div", { className: rowClass, children: [
|
|
2425
2499
|
external.map((l, i) => renderButton(l, i)),
|
|
2426
|
-
/* @__PURE__ */
|
|
2500
|
+
/* @__PURE__ */ jsx13("span", { "aria-hidden": true, className: "self-stretch w-px my-1 bg-ods-border shrink-0" }),
|
|
2427
2501
|
internal.map((l, i) => renderButton(l, external.length + i))
|
|
2428
2502
|
] });
|
|
2429
2503
|
}
|
|
2430
2504
|
}
|
|
2431
|
-
return /* @__PURE__ */
|
|
2505
|
+
return /* @__PURE__ */ jsx13("div", { className: rowClass, children: links.map((link, index) => renderButton(link, index)) });
|
|
2432
2506
|
}
|
|
2433
2507
|
|
|
2434
2508
|
// src/components/footer.tsx
|
|
2435
|
-
import { Fragment as Fragment3, jsx as
|
|
2509
|
+
import { Fragment as Fragment3, jsx as jsx14, jsxs as jsxs12 } from "react/jsx-runtime";
|
|
2436
2510
|
function NavLinkSkeleton() {
|
|
2437
|
-
return /* @__PURE__ */
|
|
2511
|
+
return /* @__PURE__ */ jsx14(Skeleton, { className: "h-5 md:h-6 w-20 md:w-24" });
|
|
2438
2512
|
}
|
|
2439
2513
|
function Footer({ config, renderLink }) {
|
|
2440
2514
|
if (!config) {
|
|
2441
2515
|
console.warn("Footer: No config provided");
|
|
2442
2516
|
return null;
|
|
2443
2517
|
}
|
|
2444
|
-
return /* @__PURE__ */
|
|
2518
|
+
return /* @__PURE__ */ jsx14(UniversalFooter, { config, renderLink });
|
|
2445
2519
|
}
|
|
2446
2520
|
function UniversalFooter({ config, renderLink }) {
|
|
2447
|
-
const defaultRenderLink = (link) => /* @__PURE__ */
|
|
2521
|
+
const defaultRenderLink = (link) => /* @__PURE__ */ jsx14("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 transition-colors", children: link.label });
|
|
2448
2522
|
const linkRenderer = renderLink || defaultRenderLink;
|
|
2449
|
-
return /* @__PURE__ */
|
|
2450
|
-
/* @__PURE__ */
|
|
2451
|
-
/* @__PURE__ */
|
|
2452
|
-
/* @__PURE__ */
|
|
2453
|
-
config.logo && /* @__PURE__ */
|
|
2454
|
-
config.nameElement || /* @__PURE__ */
|
|
2523
|
+
return /* @__PURE__ */ jsxs12("footer", { className: `w-full flex flex-col justify-center items-center ${config.backgroundColor || "bg-ods-card"} px-6 py-10 relative gap-6 md:gap-6 min-h-[auto] md:min-h-[248px] z-[44] border-t border-ods-border`, children: [
|
|
2524
|
+
/* @__PURE__ */ jsxs12("div", { className: "w-full grid grid-cols-2 lg:grid-cols-4 gap-6 md:gap-8 items-start", children: [
|
|
2525
|
+
/* @__PURE__ */ jsxs12("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: [
|
|
2526
|
+
/* @__PURE__ */ jsxs12("div", { className: "flex items-center gap-2", children: [
|
|
2527
|
+
config.logo && /* @__PURE__ */ jsx14(Suspense, { fallback: /* @__PURE__ */ jsx14(Skeleton, { className: "w-8 h-8" }), children: config.logo }),
|
|
2528
|
+
config.nameElement || /* @__PURE__ */ jsx14("span", { className: "font-heading text-heading-5 font-bold text-ods-text-primary whitespace-nowrap", children: config.name })
|
|
2455
2529
|
] }),
|
|
2456
|
-
!config.moveDescriptionToRight && /* @__PURE__ */
|
|
2457
|
-
/* @__PURE__ */
|
|
2458
|
-
config.belowDescriptionContent && /* @__PURE__ */
|
|
2459
|
-
!config.hideSocialRow && /* @__PURE__ */
|
|
2530
|
+
!config.moveDescriptionToRight && /* @__PURE__ */ jsxs12(Fragment3, { children: [
|
|
2531
|
+
/* @__PURE__ */ jsx14("p", { className: "font-body font-medium text-sm md:text-sm leading-[1.43] text-ods-text-primary", children: config.description }),
|
|
2532
|
+
config.belowDescriptionContent && /* @__PURE__ */ jsx14(Suspense, { fallback: /* @__PURE__ */ jsx14(Skeleton, { className: "h-8 w-full" }), children: config.belowDescriptionContent }),
|
|
2533
|
+
!config.hideSocialRow && /* @__PURE__ */ jsx14(
|
|
2460
2534
|
SocialIconRow,
|
|
2461
2535
|
{
|
|
2462
2536
|
className: "pt-2",
|
|
@@ -2464,22 +2538,22 @@ function UniversalFooter({ config, renderLink }) {
|
|
|
2464
2538
|
}
|
|
2465
2539
|
)
|
|
2466
2540
|
] }),
|
|
2467
|
-
config.moveDescriptionToRight && config.keepBelowDescriptionLeft && config.belowDescriptionContent && /* @__PURE__ */
|
|
2541
|
+
config.moveDescriptionToRight && config.keepBelowDescriptionLeft && config.belowDescriptionContent && /* @__PURE__ */ jsx14(Suspense, { fallback: /* @__PURE__ */ jsx14(Skeleton, { className: "h-8 w-full" }), children: config.belowDescriptionContent })
|
|
2468
2542
|
] }),
|
|
2469
|
-
config.sections.map((section, index) => /* @__PURE__ */
|
|
2470
|
-
/* @__PURE__ */
|
|
2471
|
-
/* @__PURE__ */
|
|
2543
|
+
config.sections.map((section, index) => /* @__PURE__ */ jsxs12("div", { className: "flex flex-col gap-3 items-start text-left col-span-1", children: [
|
|
2544
|
+
/* @__PURE__ */ jsx14("h3", { className: "text-h5 tracking-[-0.02em] text-ods-text-muted", children: section.title }),
|
|
2545
|
+
/* @__PURE__ */ jsx14("div", { className: "flex flex-col gap-3", children: section.links.map((link, linkIndex) => /* @__PURE__ */ jsx14(Suspense, { fallback: /* @__PURE__ */ jsx14(NavLinkSkeleton, {}), children: linkRenderer(link) }, linkIndex)) })
|
|
2472
2546
|
] }, index)),
|
|
2473
|
-
config.customComponent && /* @__PURE__ */
|
|
2474
|
-
(config.rightColumnContent || config.moveDescriptionToRight) && /* @__PURE__ */
|
|
2475
|
-
config.moveDescriptionToRight && /* @__PURE__ */
|
|
2476
|
-
/* @__PURE__ */
|
|
2477
|
-
config.belowDescriptionContent && !config.keepBelowDescriptionLeft && /* @__PURE__ */
|
|
2547
|
+
config.customComponent && /* @__PURE__ */ jsx14("div", { className: "flex flex-col col-span-2 md:col-span-1 lg:col-span-1 justify-center", children: /* @__PURE__ */ jsx14(Suspense, { fallback: /* @__PURE__ */ jsx14(Skeleton, { className: "h-32 w-full" }), children: config.customComponent }) }),
|
|
2548
|
+
(config.rightColumnContent || config.moveDescriptionToRight) && /* @__PURE__ */ jsxs12("div", { className: "flex flex-col col-span-2 md:col-span-1 lg:col-span-1 justify-start gap-4 md:gap-6", children: [
|
|
2549
|
+
config.moveDescriptionToRight && /* @__PURE__ */ jsxs12(Fragment3, { children: [
|
|
2550
|
+
/* @__PURE__ */ jsx14("p", { className: "font-body font-medium text-sm md:text-sm leading-[1.43] text-ods-text-primary", children: config.description }),
|
|
2551
|
+
config.belowDescriptionContent && !config.keepBelowDescriptionLeft && /* @__PURE__ */ jsx14(Suspense, { fallback: /* @__PURE__ */ jsx14(Skeleton, { className: "h-8 w-full" }), children: config.belowDescriptionContent })
|
|
2478
2552
|
] }),
|
|
2479
|
-
config.rightColumnContent && /* @__PURE__ */
|
|
2553
|
+
config.rightColumnContent && /* @__PURE__ */ jsx14(Suspense, { fallback: /* @__PURE__ */ jsx14(Skeleton, { className: "h-32 w-full" }), children: config.rightColumnContent })
|
|
2480
2554
|
] })
|
|
2481
2555
|
] }),
|
|
2482
|
-
/* @__PURE__ */
|
|
2556
|
+
/* @__PURE__ */ jsxs12("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: [
|
|
2483
2557
|
"\xA9 ",
|
|
2484
2558
|
(/* @__PURE__ */ new Date()).getFullYear(),
|
|
2485
2559
|
" ",
|
|
@@ -2786,19 +2860,19 @@ init_unified_pagination();
|
|
|
2786
2860
|
init_next_navigation();
|
|
2787
2861
|
import { useCallback } from "react";
|
|
2788
2862
|
init_button();
|
|
2789
|
-
import { jsx as
|
|
2863
|
+
import { jsx as jsx15 } from "react/jsx-runtime";
|
|
2790
2864
|
function FooterWaitlistButton({ className }) {
|
|
2791
2865
|
const router = useRouter();
|
|
2792
2866
|
const runtime = useChatRuntime();
|
|
2793
2867
|
const handleClick = useCallback(() => {
|
|
2794
2868
|
executeNavigationImperative({ runtime, href: "/waitlist#top", fallbackNavigate: router.push });
|
|
2795
2869
|
}, [router, runtime]);
|
|
2796
|
-
return /* @__PURE__ */
|
|
2870
|
+
return /* @__PURE__ */ jsx15(
|
|
2797
2871
|
Button,
|
|
2798
2872
|
{
|
|
2799
2873
|
onClick: handleClick,
|
|
2800
2874
|
className,
|
|
2801
|
-
leftIcon: /* @__PURE__ */
|
|
2875
|
+
leftIcon: /* @__PURE__ */ jsx15(OpenFrameLogo, {}),
|
|
2802
2876
|
children: "Join Waitlist"
|
|
2803
2877
|
}
|
|
2804
2878
|
);
|
|
@@ -2806,13 +2880,13 @@ function FooterWaitlistButton({ className }) {
|
|
|
2806
2880
|
|
|
2807
2881
|
// src/components/hero-image-uploader.tsx
|
|
2808
2882
|
init_button();
|
|
2809
|
-
import { useRef as useRef2, useState as
|
|
2883
|
+
import { useRef as useRef2, useState as useState3 } from "react";
|
|
2810
2884
|
import { Loader2, Image as ImageIcon2, Upload, X as X3 } from "lucide-react";
|
|
2811
|
-
import { Fragment as Fragment4, jsx as
|
|
2885
|
+
import { Fragment as Fragment4, jsx as jsx16, jsxs as jsxs13 } from "react/jsx-runtime";
|
|
2812
2886
|
function HeroImageUploader({ imageUrl, onChange, uploadEndpoint, height = 300, objectFit = "cover", showReplaceButton = true, deferUpload = false, onUpload, onDelete }) {
|
|
2813
2887
|
const inputRef = useRef2(null);
|
|
2814
2888
|
const { toast } = useToast();
|
|
2815
|
-
const [uploading, setUploading] =
|
|
2889
|
+
const [uploading, setUploading] = useState3(false);
|
|
2816
2890
|
const ALLOWED_TYPES = ["image/jpeg", "image/jpg", "image/png", "image/webp", "image/gif"];
|
|
2817
2891
|
const MAX_SIZE = 5 * 1024 * 1024;
|
|
2818
2892
|
const openDialog = () => inputRef.current?.click();
|
|
@@ -2884,51 +2958,51 @@ function HeroImageUploader({ imageUrl, onChange, uploadEndpoint, height = 300, o
|
|
|
2884
2958
|
onChange(void 0);
|
|
2885
2959
|
};
|
|
2886
2960
|
const heightStyle = typeof height === "number" ? `${height}px` : height;
|
|
2887
|
-
return /* @__PURE__ */
|
|
2888
|
-
imageUrl ? /* @__PURE__ */
|
|
2889
|
-
/* @__PURE__ */
|
|
2890
|
-
/* @__PURE__ */
|
|
2891
|
-
showReplaceButton && /* @__PURE__ */
|
|
2961
|
+
return /* @__PURE__ */ jsxs13("div", { className: "w-full h-full max-h-full space-y-2 min-h-[300px]", children: [
|
|
2962
|
+
imageUrl ? /* @__PURE__ */ jsxs13("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: [
|
|
2963
|
+
/* @__PURE__ */ jsx16("img", { src: imageUrl, className: `absolute inset-0 w-full h-full object-${objectFit}`, alt: "Cover" }),
|
|
2964
|
+
/* @__PURE__ */ jsxs13("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: [
|
|
2965
|
+
showReplaceButton && /* @__PURE__ */ jsx16(
|
|
2892
2966
|
Button,
|
|
2893
2967
|
{
|
|
2894
2968
|
variant: "outline",
|
|
2895
2969
|
size: "icon",
|
|
2896
2970
|
onClick: openDialog,
|
|
2897
2971
|
className: "bg-white text-black hover:bg-gray-100 rounded-full w-12 h-12",
|
|
2898
|
-
children: /* @__PURE__ */
|
|
2972
|
+
children: /* @__PURE__ */ jsx16(Upload, { className: "h-5 w-5" })
|
|
2899
2973
|
}
|
|
2900
2974
|
),
|
|
2901
|
-
/* @__PURE__ */
|
|
2975
|
+
/* @__PURE__ */ jsx16(
|
|
2902
2976
|
Button,
|
|
2903
2977
|
{
|
|
2904
2978
|
variant: "outline",
|
|
2905
2979
|
size: "icon",
|
|
2906
2980
|
onClick: () => handleRemove(),
|
|
2907
2981
|
className: "bg-white text-black hover:bg-gray-100 rounded-full w-12 h-12",
|
|
2908
|
-
children: /* @__PURE__ */
|
|
2982
|
+
children: /* @__PURE__ */ jsx16(X3, { className: "h-5 w-5" })
|
|
2909
2983
|
}
|
|
2910
2984
|
)
|
|
2911
2985
|
] })
|
|
2912
|
-
] }) : /* @__PURE__ */
|
|
2986
|
+
] }) : /* @__PURE__ */ jsx16(
|
|
2913
2987
|
"div",
|
|
2914
2988
|
{
|
|
2915
2989
|
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`,
|
|
2916
2990
|
style: { height: heightStyle },
|
|
2917
2991
|
onClick: openDialog,
|
|
2918
|
-
children: uploading ? /* @__PURE__ */
|
|
2919
|
-
/* @__PURE__ */
|
|
2920
|
-
/* @__PURE__ */
|
|
2921
|
-
/* @__PURE__ */
|
|
2922
|
-
/* @__PURE__ */
|
|
2992
|
+
children: uploading ? /* @__PURE__ */ jsx16(Loader2, { className: "h-8 w-8 animate-spin text-ods-accent" }) : /* @__PURE__ */ jsxs13(Fragment4, { children: [
|
|
2993
|
+
/* @__PURE__ */ jsx16(ImageIcon2, { className: "h-12 w-12 text-ods-text-secondary" }),
|
|
2994
|
+
/* @__PURE__ */ jsx16("span", { className: "text-ods-text-primary text-h6 mt-2", children: "Upload cover image" }),
|
|
2995
|
+
/* @__PURE__ */ jsx16("span", { className: "text-ods-text-secondary text-h6 mt-1", children: "Click to upload or drag and drop" }),
|
|
2996
|
+
/* @__PURE__ */ jsx16("span", { className: "text-ods-text-secondary text-h6", children: "PNG, JPEG, WebP, GIF up to 5MB" })
|
|
2923
2997
|
] })
|
|
2924
2998
|
}
|
|
2925
2999
|
),
|
|
2926
|
-
/* @__PURE__ */
|
|
3000
|
+
/* @__PURE__ */ jsx16("input", { ref: inputRef, type: "file", accept: "image/*", onChange: handleSelect, className: "hidden" })
|
|
2927
3001
|
] });
|
|
2928
3002
|
}
|
|
2929
3003
|
|
|
2930
3004
|
// src/components/icons-block.tsx
|
|
2931
|
-
import { useState as
|
|
3005
|
+
import { useState as useState4, useEffect as useEffect2, useRef as useRef3 } from "react";
|
|
2932
3006
|
|
|
2933
3007
|
// src/components/icons-stub.tsx
|
|
2934
3008
|
import { DollarSign, Code, Users, Building, GitCompare, MessageSquare } from "lucide-react";
|
|
@@ -2942,13 +3016,13 @@ var CompareIcon2 = GitCompare;
|
|
|
2942
3016
|
|
|
2943
3017
|
// src/components/icons-block.tsx
|
|
2944
3018
|
import { Sun, Moon, CheckCircle, Github, PlusCircle } from "lucide-react";
|
|
2945
|
-
import { jsx as
|
|
3019
|
+
import { jsx as jsx17, jsxs as jsxs14 } from "react/jsx-runtime";
|
|
2946
3020
|
var SunIcon2 = Sun;
|
|
2947
3021
|
var MoonIcon2 = Moon;
|
|
2948
3022
|
var CheckCircleIcon3 = CheckCircle;
|
|
2949
3023
|
var GitHubIcon2 = Github;
|
|
2950
3024
|
var PlusCircleIcon2 = PlusCircle;
|
|
2951
|
-
var OpenmspLogo2 = () => /* @__PURE__ */
|
|
3025
|
+
var OpenmspLogo2 = () => /* @__PURE__ */ jsx17("div", { children: "Logo" });
|
|
2952
3026
|
var availableIcons = [
|
|
2953
3027
|
VendorDirectoryIcon2,
|
|
2954
3028
|
OpenSourceIcon2,
|
|
@@ -2964,9 +3038,9 @@ var availableIcons = [
|
|
|
2964
3038
|
OpenmspLogo2
|
|
2965
3039
|
];
|
|
2966
3040
|
function ResponsiveIconsBlock({ loading = false }) {
|
|
2967
|
-
const [columns, setColumns] =
|
|
2968
|
-
const [iconGrid, setIconGrid] =
|
|
2969
|
-
const [iconsLoaded, setIconsLoaded] =
|
|
3041
|
+
const [columns, setColumns] = useState4(24);
|
|
3042
|
+
const [iconGrid, setIconGrid] = useState4([]);
|
|
3043
|
+
const [iconsLoaded, setIconsLoaded] = useState4(false);
|
|
2970
3044
|
const randomSeedRef = useRef3(0);
|
|
2971
3045
|
useEffect2(() => {
|
|
2972
3046
|
function calculateColumns() {
|
|
@@ -3011,17 +3085,17 @@ function ResponsiveIconsBlock({ loading = false }) {
|
|
|
3011
3085
|
return iconGrid[row]?.[col] || availableIcons[0];
|
|
3012
3086
|
};
|
|
3013
3087
|
if (loading || iconGrid.length === 0) {
|
|
3014
|
-
return /* @__PURE__ */
|
|
3088
|
+
return /* @__PURE__ */ jsx17(
|
|
3015
3089
|
"div",
|
|
3016
3090
|
{
|
|
3017
3091
|
className: "w-full h-[80px] md:h-[112px] bg-[#1A1A1A] relative overflow-hidden",
|
|
3018
3092
|
role: "presentation",
|
|
3019
3093
|
"aria-hidden": "true",
|
|
3020
|
-
children: /* @__PURE__ */
|
|
3094
|
+
children: /* @__PURE__ */ jsx17("div", { className: "absolute inset-0 animate-pulse bg-[#2A2A2A]/60" })
|
|
3021
3095
|
}
|
|
3022
3096
|
);
|
|
3023
3097
|
}
|
|
3024
|
-
return /* @__PURE__ */
|
|
3098
|
+
return /* @__PURE__ */ jsxs14(
|
|
3025
3099
|
"div",
|
|
3026
3100
|
{
|
|
3027
3101
|
className: "w-full h-[80px] md:h-[112px] overflow-hidden bg-[#1A1A1A] relative z-10",
|
|
@@ -3029,14 +3103,14 @@ function ResponsiveIconsBlock({ loading = false }) {
|
|
|
3029
3103
|
role: "presentation",
|
|
3030
3104
|
"aria-hidden": "true",
|
|
3031
3105
|
children: [
|
|
3032
|
-
/* @__PURE__ */
|
|
3106
|
+
/* @__PURE__ */ jsx17("style", { children: `
|
|
3033
3107
|
.icons-block svg,
|
|
3034
3108
|
.icons-block svg * {
|
|
3035
3109
|
filter: grayscale(100%) brightness(0) invert(1) brightness(0.4) !important;
|
|
3036
3110
|
fill: currentColor !important;
|
|
3037
3111
|
}
|
|
3038
3112
|
` }),
|
|
3039
|
-
/* @__PURE__ */
|
|
3113
|
+
/* @__PURE__ */ jsx17(
|
|
3040
3114
|
"div",
|
|
3041
3115
|
{
|
|
3042
3116
|
className: "grid h-full icons-block w-full",
|
|
@@ -3048,7 +3122,7 @@ function ResponsiveIconsBlock({ loading = false }) {
|
|
|
3048
3122
|
const col = idx % displayColumns;
|
|
3049
3123
|
const row = Math.floor(idx / displayColumns);
|
|
3050
3124
|
const IconComponent = getIconForIndex(idx);
|
|
3051
|
-
return /* @__PURE__ */
|
|
3125
|
+
return /* @__PURE__ */ jsx17(
|
|
3052
3126
|
"div",
|
|
3053
3127
|
{
|
|
3054
3128
|
className: "flex items-center justify-center w-full h-full",
|
|
@@ -3061,7 +3135,7 @@ function ResponsiveIconsBlock({ loading = false }) {
|
|
|
3061
3135
|
boxSizing: "border-box"
|
|
3062
3136
|
},
|
|
3063
3137
|
role: "presentation",
|
|
3064
|
-
children: /* @__PURE__ */
|
|
3138
|
+
children: /* @__PURE__ */ jsx17(
|
|
3065
3139
|
IconComponent,
|
|
3066
3140
|
{
|
|
3067
3141
|
width: 16,
|
|
@@ -3083,11 +3157,11 @@ function ResponsiveIconsBlock({ loading = false }) {
|
|
|
3083
3157
|
|
|
3084
3158
|
// src/components/image-cropper.tsx
|
|
3085
3159
|
init_button();
|
|
3086
|
-
import { useCallback as useCallback2, useState as
|
|
3160
|
+
import { useCallback as useCallback2, useState as useState5 } from "react";
|
|
3087
3161
|
import Cropper from "react-easy-crop";
|
|
3088
3162
|
init_cn();
|
|
3089
3163
|
import { Check, RotateCcw } from "lucide-react";
|
|
3090
|
-
import { jsx as
|
|
3164
|
+
import { jsx as jsx18, jsxs as jsxs15 } from "react/jsx-runtime";
|
|
3091
3165
|
function loadImage(src) {
|
|
3092
3166
|
return new Promise((resolve, reject) => {
|
|
3093
3167
|
const img = new Image();
|
|
@@ -3106,10 +3180,10 @@ var ImageCropper = ({
|
|
|
3106
3180
|
maxSizePx = 512,
|
|
3107
3181
|
className
|
|
3108
3182
|
}) => {
|
|
3109
|
-
const [crop, setCrop] =
|
|
3110
|
-
const [zoom, setZoom] =
|
|
3111
|
-
const [rotation, setRotation] =
|
|
3112
|
-
const [croppedAreaPixels, setCroppedAreaPixels] =
|
|
3183
|
+
const [crop, setCrop] = useState5({ x: 0, y: 0 });
|
|
3184
|
+
const [zoom, setZoom] = useState5(1);
|
|
3185
|
+
const [rotation, setRotation] = useState5(0);
|
|
3186
|
+
const [croppedAreaPixels, setCroppedAreaPixels] = useState5(null);
|
|
3113
3187
|
const onCropComplete = useCallback2((_, area) => {
|
|
3114
3188
|
setCroppedAreaPixels(area);
|
|
3115
3189
|
}, []);
|
|
@@ -3175,7 +3249,7 @@ var ImageCropper = ({
|
|
|
3175
3249
|
onCancel?.();
|
|
3176
3250
|
}
|
|
3177
3251
|
};
|
|
3178
|
-
return /* @__PURE__ */
|
|
3252
|
+
return /* @__PURE__ */ jsxs15(
|
|
3179
3253
|
"div",
|
|
3180
3254
|
{
|
|
3181
3255
|
className: cn(
|
|
@@ -3186,14 +3260,14 @@ var ImageCropper = ({
|
|
|
3186
3260
|
tabIndex: 0,
|
|
3187
3261
|
"aria-label": "Image cropper",
|
|
3188
3262
|
children: [
|
|
3189
|
-
/* @__PURE__ */
|
|
3263
|
+
/* @__PURE__ */ jsx18(
|
|
3190
3264
|
"div",
|
|
3191
3265
|
{
|
|
3192
3266
|
className: cn(
|
|
3193
3267
|
"relative w-full aspect-square md:aspect-video rounded-md overflow-hidden",
|
|
3194
3268
|
checkerBg
|
|
3195
3269
|
),
|
|
3196
|
-
children: /* @__PURE__ */
|
|
3270
|
+
children: /* @__PURE__ */ jsx18(
|
|
3197
3271
|
Cropper,
|
|
3198
3272
|
{
|
|
3199
3273
|
image: src,
|
|
@@ -3212,10 +3286,10 @@ var ImageCropper = ({
|
|
|
3212
3286
|
)
|
|
3213
3287
|
}
|
|
3214
3288
|
),
|
|
3215
|
-
/* @__PURE__ */
|
|
3216
|
-
/* @__PURE__ */
|
|
3217
|
-
/* @__PURE__ */
|
|
3218
|
-
/* @__PURE__ */
|
|
3289
|
+
/* @__PURE__ */ jsxs15("div", { className: "flex flex-col gap-4", children: [
|
|
3290
|
+
/* @__PURE__ */ jsxs15("div", { className: "flex items-center gap-3", children: [
|
|
3291
|
+
/* @__PURE__ */ jsx18("span", { className: "min-w-[60px] text-h6", children: "Zoom" }),
|
|
3292
|
+
/* @__PURE__ */ jsx18(
|
|
3219
3293
|
Slider,
|
|
3220
3294
|
{
|
|
3221
3295
|
min: 1,
|
|
@@ -3228,9 +3302,9 @@ var ImageCropper = ({
|
|
|
3228
3302
|
}
|
|
3229
3303
|
)
|
|
3230
3304
|
] }),
|
|
3231
|
-
/* @__PURE__ */
|
|
3232
|
-
/* @__PURE__ */
|
|
3233
|
-
/* @__PURE__ */
|
|
3305
|
+
/* @__PURE__ */ jsxs15("div", { className: "flex items-center gap-3", children: [
|
|
3306
|
+
/* @__PURE__ */ jsx18("span", { className: "min-w-[60px] text-h6", children: "Rotate" }),
|
|
3307
|
+
/* @__PURE__ */ jsx18(
|
|
3234
3308
|
Slider,
|
|
3235
3309
|
{
|
|
3236
3310
|
min: 0,
|
|
@@ -3242,21 +3316,21 @@ var ImageCropper = ({
|
|
|
3242
3316
|
className: "flex-1"
|
|
3243
3317
|
}
|
|
3244
3318
|
),
|
|
3245
|
-
/* @__PURE__ */
|
|
3319
|
+
/* @__PURE__ */ jsx18(
|
|
3246
3320
|
Button,
|
|
3247
3321
|
{
|
|
3248
3322
|
variant: "outline",
|
|
3249
3323
|
size: "icon",
|
|
3250
3324
|
onClick: () => setRotation(0),
|
|
3251
3325
|
"aria-label": "Reset rotation",
|
|
3252
|
-
children: /* @__PURE__ */
|
|
3326
|
+
children: /* @__PURE__ */ jsx18(RotateCcw, { className: "h-4 w-4" })
|
|
3253
3327
|
}
|
|
3254
3328
|
)
|
|
3255
3329
|
] })
|
|
3256
3330
|
] }),
|
|
3257
|
-
/* @__PURE__ */
|
|
3258
|
-
onCancel && /* @__PURE__ */
|
|
3259
|
-
/* @__PURE__ */
|
|
3331
|
+
/* @__PURE__ */ jsxs15("div", { className: "flex justify-end gap-2 mt-2", children: [
|
|
3332
|
+
onCancel && /* @__PURE__ */ jsx18(Button, { variant: "outline", onClick: onCancel, "aria-label": "Cancel crop", children: "Cancel" }),
|
|
3333
|
+
/* @__PURE__ */ jsx18(
|
|
3260
3334
|
Button,
|
|
3261
3335
|
{
|
|
3262
3336
|
variant: "accent",
|
|
@@ -3264,7 +3338,7 @@ var ImageCropper = ({
|
|
|
3264
3338
|
const result = await exportCrop();
|
|
3265
3339
|
if (result) onComplete(result);
|
|
3266
3340
|
},
|
|
3267
|
-
leftIcon: /* @__PURE__ */
|
|
3341
|
+
leftIcon: /* @__PURE__ */ jsx18(Check, { className: "h-4 w-4" }),
|
|
3268
3342
|
"aria-label": "Apply crop",
|
|
3269
3343
|
children: "Apply"
|
|
3270
3344
|
}
|
|
@@ -3277,20 +3351,20 @@ var ImageCropper = ({
|
|
|
3277
3351
|
|
|
3278
3352
|
// src/components/metric-value.tsx
|
|
3279
3353
|
init_cn();
|
|
3280
|
-
import { jsx as
|
|
3354
|
+
import { jsx as jsx19, jsxs as jsxs16 } from "react/jsx-runtime";
|
|
3281
3355
|
function MetricValue({ value, label, className }) {
|
|
3282
|
-
return /* @__PURE__ */
|
|
3356
|
+
return /* @__PURE__ */ jsxs16("div", { className: cn("flex items-end gap-2 whitespace-nowrap text-h4 text-ods-text-primary", className), children: [
|
|
3283
3357
|
value,
|
|
3284
|
-
/* @__PURE__ */
|
|
3358
|
+
/* @__PURE__ */ jsx19("span", { className: "text-h6 text-ods-text-secondary", children: label })
|
|
3285
3359
|
] });
|
|
3286
3360
|
}
|
|
3287
3361
|
|
|
3288
3362
|
// src/components/msp-display.tsx
|
|
3289
3363
|
init_cn();
|
|
3290
|
-
import { jsx as
|
|
3364
|
+
import { jsx as jsx20, jsxs as jsxs17 } from "react/jsx-runtime";
|
|
3291
3365
|
function MSPDisplay({ name, logoUrl, size = 40, className }) {
|
|
3292
|
-
return /* @__PURE__ */
|
|
3293
|
-
/* @__PURE__ */
|
|
3366
|
+
return /* @__PURE__ */ jsxs17("div", { className: cn("flex items-center gap-2 min-w-0", className), children: [
|
|
3367
|
+
/* @__PURE__ */ jsx20(
|
|
3294
3368
|
SquareAvatar,
|
|
3295
3369
|
{
|
|
3296
3370
|
src: logoUrl ? getProxiedImageUrl(logoUrl) || logoUrl : void 0,
|
|
@@ -3299,19 +3373,19 @@ function MSPDisplay({ name, logoUrl, size = 40, className }) {
|
|
|
3299
3373
|
sizePx: size
|
|
3300
3374
|
}
|
|
3301
3375
|
),
|
|
3302
|
-
/* @__PURE__ */
|
|
3376
|
+
/* @__PURE__ */ jsx20("h2", { className: "truncate pl-2", children: name })
|
|
3303
3377
|
] });
|
|
3304
3378
|
}
|
|
3305
3379
|
|
|
3306
3380
|
// src/components/open-source-features.tsx
|
|
3307
3381
|
import { Terminal, DollarSign as DollarSign2, Network, Users as Users2 } from "lucide-react";
|
|
3308
|
-
import { jsx as
|
|
3382
|
+
import { jsx as jsx21, jsxs as jsxs18 } from "react/jsx-runtime";
|
|
3309
3383
|
|
|
3310
3384
|
// src/components/index.ts
|
|
3311
3385
|
init_pagination();
|
|
3312
3386
|
|
|
3313
3387
|
// src/components/pricing-display.tsx
|
|
3314
|
-
import { jsx as
|
|
3388
|
+
import { jsx as jsx22, jsxs as jsxs19 } from "react/jsx-runtime";
|
|
3315
3389
|
var PRICING_STYLES = {
|
|
3316
3390
|
// Comparison table style (current default)
|
|
3317
3391
|
comparison: {
|
|
@@ -3347,19 +3421,19 @@ function PricingDisplay({
|
|
|
3347
3421
|
styleConfig = PRICING_STYLES.comparison
|
|
3348
3422
|
}) {
|
|
3349
3423
|
if (typeof pricing === "string") {
|
|
3350
|
-
return /* @__PURE__ */
|
|
3424
|
+
return /* @__PURE__ */ jsx22(LegacyPricingDisplay, { pricing, className, styleConfig });
|
|
3351
3425
|
}
|
|
3352
3426
|
const pricingArray = Array.isArray(pricing) ? pricing : [pricing];
|
|
3353
3427
|
if (!pricingArray || pricingArray.length === 0) {
|
|
3354
|
-
return /* @__PURE__ */
|
|
3428
|
+
return /* @__PURE__ */ jsx22("span", { className: `${styleConfig.priceTextColor} ${styleConfig.priceTextSize} ${styleConfig.fontFamily} ${className}`, children: "No pricing data" });
|
|
3355
3429
|
}
|
|
3356
3430
|
if (pricingArray.length === 1) {
|
|
3357
3431
|
const item = pricingArray[0];
|
|
3358
3432
|
const price = item.ranges?.[0]?.min || 0;
|
|
3359
3433
|
const unit = item.ranges?.[0]?.unit;
|
|
3360
|
-
return /* @__PURE__ */
|
|
3361
|
-
/* @__PURE__ */
|
|
3362
|
-
unit && /* @__PURE__ */
|
|
3434
|
+
return /* @__PURE__ */ jsxs19("span", { className: `${styleConfig.fontFamily} ${className}`, children: [
|
|
3435
|
+
/* @__PURE__ */ jsx22("span", { className: `${styleConfig.priceTextColor} ${styleConfig.priceTextSize}`, children: formatPriceValue(price, styleConfig.showTildePrefix) }),
|
|
3436
|
+
unit && /* @__PURE__ */ jsxs19("span", { className: `${styleConfig.secondaryTextColor} ${styleConfig.secondaryTextSize}`, children: [
|
|
3363
3437
|
"/",
|
|
3364
3438
|
unit
|
|
3365
3439
|
] })
|
|
@@ -3367,9 +3441,9 @@ function PricingDisplay({
|
|
|
3367
3441
|
}
|
|
3368
3442
|
const priceValues = pricingArray.map((item) => formatPriceValue(item.ranges?.[0]?.min || 0, styleConfig.showTildePrefix));
|
|
3369
3443
|
const itemWithUnit = pricingArray.find((item) => item.ranges?.[0]?.unit);
|
|
3370
|
-
return /* @__PURE__ */
|
|
3371
|
-
/* @__PURE__ */
|
|
3372
|
-
itemWithUnit && itemWithUnit.ranges?.[0]?.unit && /* @__PURE__ */
|
|
3444
|
+
return /* @__PURE__ */ jsxs19("span", { className: `${styleConfig.fontFamily} ${className}`, children: [
|
|
3445
|
+
/* @__PURE__ */ jsx22("span", { className: `${styleConfig.priceTextColor} ${styleConfig.priceTextSize}`, children: priceValues.join(" | ") }),
|
|
3446
|
+
itemWithUnit && itemWithUnit.ranges?.[0]?.unit && /* @__PURE__ */ jsxs19("span", { className: `${styleConfig.secondaryTextColor} ${styleConfig.secondaryTextSize}`, children: [
|
|
3373
3447
|
"/",
|
|
3374
3448
|
itemWithUnit.ranges[0].unit
|
|
3375
3449
|
] })
|
|
@@ -3390,7 +3464,7 @@ function LegacyPricingDisplay({
|
|
|
3390
3464
|
styleConfig = PRICING_STYLES.comparison
|
|
3391
3465
|
}) {
|
|
3392
3466
|
if (pricing === "Free" || pricing === "No pricing data") {
|
|
3393
|
-
return /* @__PURE__ */
|
|
3467
|
+
return /* @__PURE__ */ jsx22("span", { className: `${styleConfig.priceTextColor} ${styleConfig.priceTextSize} ${styleConfig.fontFamily} ${className}`, children: pricing });
|
|
3394
3468
|
}
|
|
3395
3469
|
const parsePricing = (pricingStr) => {
|
|
3396
3470
|
if (pricingStr.includes(", ")) {
|
|
@@ -3446,9 +3520,9 @@ function LegacyPricingDisplay({
|
|
|
3446
3520
|
};
|
|
3447
3521
|
};
|
|
3448
3522
|
const { mainValue, secondaryInfo } = parsePricing(pricing);
|
|
3449
|
-
return /* @__PURE__ */
|
|
3450
|
-
/* @__PURE__ */
|
|
3451
|
-
secondaryInfo && /* @__PURE__ */
|
|
3523
|
+
return /* @__PURE__ */ jsxs19("span", { className: `${styleConfig.fontFamily} ${className}`, children: [
|
|
3524
|
+
/* @__PURE__ */ jsx22("span", { className: `${styleConfig.priceTextColor} ${styleConfig.priceTextSize}`, children: mainValue }),
|
|
3525
|
+
secondaryInfo && /* @__PURE__ */ jsx22("span", { className: `${styleConfig.secondaryTextColor} ${styleConfig.secondaryTextSize}`, children: secondaryInfo })
|
|
3452
3526
|
] });
|
|
3453
3527
|
}
|
|
3454
3528
|
function formatPricingForDisplay(pricing) {
|
|
@@ -3456,7 +3530,7 @@ function formatPricingForDisplay(pricing) {
|
|
|
3456
3530
|
}
|
|
3457
3531
|
|
|
3458
3532
|
// src/components/results-count.tsx
|
|
3459
|
-
import { Fragment as Fragment5, jsx as
|
|
3533
|
+
import { Fragment as Fragment5, jsx as jsx23, jsxs as jsxs20 } from "react/jsx-runtime";
|
|
3460
3534
|
function ResultsCount({
|
|
3461
3535
|
currentPage,
|
|
3462
3536
|
pageSize,
|
|
@@ -3472,7 +3546,7 @@ function ResultsCount({
|
|
|
3472
3546
|
const plural = resultType === "vendors" ? "vendors" : "posts";
|
|
3473
3547
|
const singular = resultType === "vendors" ? "vendor" : "post";
|
|
3474
3548
|
const displayType = totalResults === 1 ? singular : plural;
|
|
3475
|
-
return /* @__PURE__ */
|
|
3549
|
+
return /* @__PURE__ */ jsx23("div", { className: "mb-6", children: /* @__PURE__ */ jsx23("p", { className: "text-ods-text-secondary text-h6", children: totalResults > 0 && /* @__PURE__ */ jsxs20(Fragment5, { children: [
|
|
3476
3550
|
"Showing ",
|
|
3477
3551
|
startIndex,
|
|
3478
3552
|
"-",
|
|
@@ -3481,7 +3555,7 @@ function ResultsCount({
|
|
|
3481
3555
|
totalResults,
|
|
3482
3556
|
" ",
|
|
3483
3557
|
displayType,
|
|
3484
|
-
sortingMessage && /* @__PURE__ */
|
|
3558
|
+
sortingMessage && /* @__PURE__ */ jsxs20("span", { className: "ml-2 text-ods-accent", children: [
|
|
3485
3559
|
"\u2022 ",
|
|
3486
3560
|
sortingMessage
|
|
3487
3561
|
] })
|
|
@@ -3489,9 +3563,9 @@ function ResultsCount({
|
|
|
3489
3563
|
}
|
|
3490
3564
|
|
|
3491
3565
|
// src/components/openframe-logo.tsx
|
|
3492
|
-
import { jsx as
|
|
3566
|
+
import { jsx as jsx24, jsxs as jsxs21 } from "react/jsx-runtime";
|
|
3493
3567
|
var OpenFrameLogo2 = ({ className, lowerPathColor, upperPathColor, ...props }) => {
|
|
3494
|
-
return /* @__PURE__ */
|
|
3568
|
+
return /* @__PURE__ */ jsx24(
|
|
3495
3569
|
"svg",
|
|
3496
3570
|
{
|
|
3497
3571
|
...props,
|
|
@@ -3505,30 +3579,30 @@ var OpenFrameLogo2 = ({ className, lowerPathColor, upperPathColor, ...props }) =
|
|
|
3505
3579
|
"--fill-0": "currentColor",
|
|
3506
3580
|
...props.style
|
|
3507
3581
|
},
|
|
3508
|
-
children: /* @__PURE__ */
|
|
3509
|
-
/* @__PURE__ */
|
|
3510
|
-
/* @__PURE__ */
|
|
3582
|
+
children: /* @__PURE__ */ jsxs21("g", { children: [
|
|
3583
|
+
/* @__PURE__ */ jsxs21("g", { children: [
|
|
3584
|
+
/* @__PURE__ */ jsx24(
|
|
3511
3585
|
"path",
|
|
3512
3586
|
{
|
|
3513
3587
|
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",
|
|
3514
3588
|
fill: lowerPathColor ?? "#ffffff"
|
|
3515
3589
|
}
|
|
3516
3590
|
),
|
|
3517
|
-
/* @__PURE__ */
|
|
3591
|
+
/* @__PURE__ */ jsx24(
|
|
3518
3592
|
"path",
|
|
3519
3593
|
{
|
|
3520
3594
|
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",
|
|
3521
3595
|
fill: lowerPathColor ?? "#ffffff"
|
|
3522
3596
|
}
|
|
3523
3597
|
),
|
|
3524
|
-
/* @__PURE__ */
|
|
3598
|
+
/* @__PURE__ */ jsx24(
|
|
3525
3599
|
"path",
|
|
3526
3600
|
{
|
|
3527
3601
|
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",
|
|
3528
3602
|
fill: lowerPathColor ?? "#ffffff"
|
|
3529
3603
|
}
|
|
3530
3604
|
),
|
|
3531
|
-
/* @__PURE__ */
|
|
3605
|
+
/* @__PURE__ */ jsx24(
|
|
3532
3606
|
"path",
|
|
3533
3607
|
{
|
|
3534
3608
|
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",
|
|
@@ -3536,7 +3610,7 @@ var OpenFrameLogo2 = ({ className, lowerPathColor, upperPathColor, ...props }) =
|
|
|
3536
3610
|
}
|
|
3537
3611
|
)
|
|
3538
3612
|
] }),
|
|
3539
|
-
/* @__PURE__ */
|
|
3613
|
+
/* @__PURE__ */ jsx24(
|
|
3540
3614
|
"path",
|
|
3541
3615
|
{
|
|
3542
3616
|
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",
|
|
@@ -3551,7 +3625,7 @@ var OpenFrameLogo2 = ({ className, lowerPathColor, upperPathColor, ...props }) =
|
|
|
3551
3625
|
// src/components/vendor-tag.tsx
|
|
3552
3626
|
init_cn();
|
|
3553
3627
|
import { Boxes, Database, Hand, Plug, ShieldCheck, Sparkles } from "lucide-react";
|
|
3554
|
-
import { jsx as
|
|
3628
|
+
import { jsx as jsx25, jsxs as jsxs22 } from "react/jsx-runtime";
|
|
3555
3629
|
function VendorTag({
|
|
3556
3630
|
type,
|
|
3557
3631
|
text,
|
|
@@ -3570,110 +3644,110 @@ function VendorTag({
|
|
|
3570
3644
|
return {
|
|
3571
3645
|
text: "Placeholder",
|
|
3572
3646
|
textColor: "text-ods-text-primary",
|
|
3573
|
-
icon: /* @__PURE__ */
|
|
3647
|
+
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" }) })
|
|
3574
3648
|
};
|
|
3575
3649
|
case "ai":
|
|
3576
3650
|
return {
|
|
3577
3651
|
text: "AI Selected",
|
|
3578
3652
|
textColor: "text-ods-text-primary",
|
|
3579
|
-
icon: /* @__PURE__ */
|
|
3653
|
+
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" }) })
|
|
3580
3654
|
};
|
|
3581
3655
|
case "manual":
|
|
3582
3656
|
return {
|
|
3583
3657
|
text: "Manually Selected",
|
|
3584
3658
|
textColor: "text-ods-text-secondary",
|
|
3585
|
-
icon: /* @__PURE__ */
|
|
3659
|
+
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" }) })
|
|
3586
3660
|
};
|
|
3587
3661
|
case "open-source":
|
|
3588
3662
|
return {
|
|
3589
3663
|
text: text || "Open Source",
|
|
3590
|
-
icon: /* @__PURE__ */
|
|
3664
|
+
icon: /* @__PURE__ */ jsx25(
|
|
3591
3665
|
"div",
|
|
3592
3666
|
{
|
|
3593
3667
|
className: "w-4 h-4 bg-ods-accent rounded-sm flex items-center justify-center flex-shrink-0",
|
|
3594
3668
|
style: accentColor ? { backgroundColor: accentColor } : void 0,
|
|
3595
|
-
children: /* @__PURE__ */
|
|
3669
|
+
children: /* @__PURE__ */ jsx25(OpenSourceIcon2, { width: 10, height: 10, className: "text-ods-text-on-accent" })
|
|
3596
3670
|
}
|
|
3597
3671
|
)
|
|
3598
3672
|
};
|
|
3599
3673
|
case "commercial":
|
|
3600
3674
|
return {
|
|
3601
3675
|
text: text || "Commercial Vendor",
|
|
3602
|
-
icon: /* @__PURE__ */
|
|
3676
|
+
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" }) })
|
|
3603
3677
|
};
|
|
3604
3678
|
// platform-capability tags — same neutral icon-box chrome as 'commercial'
|
|
3605
3679
|
case "api":
|
|
3606
3680
|
return {
|
|
3607
3681
|
text: text || "API",
|
|
3608
|
-
icon: /* @__PURE__ */
|
|
3682
|
+
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(Plug, { width: 10, height: 10, className: "text-ods-text-secondary" }) })
|
|
3609
3683
|
};
|
|
3610
3684
|
case "data":
|
|
3611
3685
|
return {
|
|
3612
3686
|
text: text || "Data",
|
|
3613
|
-
icon: /* @__PURE__ */
|
|
3687
|
+
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(Database, { width: 10, height: 10, className: "text-ods-text-secondary" }) })
|
|
3614
3688
|
};
|
|
3615
3689
|
case "k8s":
|
|
3616
3690
|
return {
|
|
3617
3691
|
text: text || "K8s",
|
|
3618
|
-
icon: /* @__PURE__ */
|
|
3692
|
+
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(Boxes, { width: 10, height: 10, className: "text-ods-text-secondary" }) })
|
|
3619
3693
|
};
|
|
3620
3694
|
case "secured":
|
|
3621
3695
|
return {
|
|
3622
3696
|
text: text || "Secured",
|
|
3623
|
-
icon: /* @__PURE__ */
|
|
3697
|
+
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(ShieldCheck, { width: 10, height: 10, className: "text-ods-text-secondary" }) })
|
|
3624
3698
|
};
|
|
3625
3699
|
case "free":
|
|
3626
3700
|
return {
|
|
3627
3701
|
text: text || "Free",
|
|
3628
|
-
icon: /* @__PURE__ */
|
|
3702
|
+
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-ods-text-on-accent text-[8px] font-bold", children: "$" }) })
|
|
3629
3703
|
};
|
|
3630
3704
|
case "freemium":
|
|
3631
3705
|
return {
|
|
3632
3706
|
text: text || "Freemium",
|
|
3633
|
-
icon: /* @__PURE__ */
|
|
3707
|
+
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-ods-text-on-accent text-[8px] font-bold", children: "$" }) })
|
|
3634
3708
|
};
|
|
3635
3709
|
case "paid":
|
|
3636
3710
|
return {
|
|
3637
3711
|
text: text || "Paid",
|
|
3638
|
-
icon: /* @__PURE__ */
|
|
3712
|
+
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" }) })
|
|
3639
3713
|
};
|
|
3640
3714
|
case "enterprise":
|
|
3641
3715
|
return {
|
|
3642
3716
|
text: text || "Enterprise",
|
|
3643
|
-
icon: /* @__PURE__ */
|
|
3717
|
+
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-ods-text-on-accent text-[8px] font-bold", children: "E" }) })
|
|
3644
3718
|
};
|
|
3645
3719
|
case "recommended":
|
|
3646
3720
|
return {
|
|
3647
3721
|
text: text || "Recommended",
|
|
3648
|
-
icon: /* @__PURE__ */
|
|
3722
|
+
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-ods-text-on-accent text-[8px] font-bold", children: "\u2605" }) })
|
|
3649
3723
|
};
|
|
3650
3724
|
case "classification":
|
|
3651
3725
|
const classificationType = text?.toLowerCase();
|
|
3652
3726
|
if (classificationType === "open_source") {
|
|
3653
3727
|
return {
|
|
3654
3728
|
text: "Open Source",
|
|
3655
|
-
icon: /* @__PURE__ */
|
|
3729
|
+
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-ods-text-on-accent" }) })
|
|
3656
3730
|
};
|
|
3657
3731
|
} else if (classificationType === "commercial") {
|
|
3658
3732
|
return {
|
|
3659
3733
|
text: "Commercial Vendor",
|
|
3660
|
-
icon: /* @__PURE__ */
|
|
3734
|
+
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" }) })
|
|
3661
3735
|
};
|
|
3662
3736
|
} else if (classificationType === "openframe_selected") {
|
|
3663
3737
|
return {
|
|
3664
3738
|
text: "OpenFrame Selected",
|
|
3665
|
-
icon: /* @__PURE__ */
|
|
3739
|
+
icon: /* @__PURE__ */ jsx25(OpenFrameLogo2, { lowerPathColor: "currentColor", upperPathColor: "currentColor", className: "h-4 w-4 text-ods-accent" })
|
|
3666
3740
|
};
|
|
3667
3741
|
} else {
|
|
3668
3742
|
return {
|
|
3669
3743
|
text: text || "Classification",
|
|
3670
|
-
icon: /* @__PURE__ */
|
|
3744
|
+
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-ods-text-on-accent text-[8px] font-bold", children: "C" }) })
|
|
3671
3745
|
};
|
|
3672
3746
|
}
|
|
3673
3747
|
case "openframe_selected":
|
|
3674
3748
|
return {
|
|
3675
3749
|
text: text || "OpenFrame Selected",
|
|
3676
|
-
icon: /* @__PURE__ */
|
|
3750
|
+
icon: /* @__PURE__ */ jsx25(OpenFrameLogo2, { lowerPathColor: "currentColor", upperPathColor: "currentColor", className: "h-4 w-4 text-ods-accent" })
|
|
3677
3751
|
};
|
|
3678
3752
|
default:
|
|
3679
3753
|
return {
|
|
@@ -3683,9 +3757,9 @@ function VendorTag({
|
|
|
3683
3757
|
}
|
|
3684
3758
|
};
|
|
3685
3759
|
const { text: displayText, icon, textColor } = getTagContent();
|
|
3686
|
-
return /* @__PURE__ */
|
|
3760
|
+
return /* @__PURE__ */ jsxs22("div", { className: cn(baseClasses, className, hidden && "invisible"), children: [
|
|
3687
3761
|
icon,
|
|
3688
|
-
/* @__PURE__ */
|
|
3762
|
+
/* @__PURE__ */ jsx25("span", { className: cn(
|
|
3689
3763
|
"text-h5 font-semibold",
|
|
3690
3764
|
textColor ? textColor : "text-ods-text-primary"
|
|
3691
3765
|
), children: displayText })
|
|
@@ -3693,12 +3767,12 @@ function VendorTag({
|
|
|
3693
3767
|
}
|
|
3694
3768
|
|
|
3695
3769
|
// src/components/selection-source-badge.tsx
|
|
3696
|
-
import { jsx as
|
|
3770
|
+
import { jsx as jsx26 } from "react/jsx-runtime";
|
|
3697
3771
|
function SelectionSourceBadge({ source, hidden = false }) {
|
|
3698
3772
|
if (!source) {
|
|
3699
3773
|
return null;
|
|
3700
3774
|
}
|
|
3701
|
-
return /* @__PURE__ */
|
|
3775
|
+
return /* @__PURE__ */ jsx26(
|
|
3702
3776
|
VendorTag,
|
|
3703
3777
|
{
|
|
3704
3778
|
type: source?.toLowerCase(),
|
|
@@ -3711,13 +3785,13 @@ function SelectionSourceBadge({ source, hidden = false }) {
|
|
|
3711
3785
|
|
|
3712
3786
|
// src/components/loading/content-skeleton.tsx
|
|
3713
3787
|
init_cn();
|
|
3714
|
-
import { jsx as
|
|
3788
|
+
import { jsx as jsx27, jsxs as jsxs23 } from "react/jsx-runtime";
|
|
3715
3789
|
function ParagraphSkeleton({
|
|
3716
3790
|
className,
|
|
3717
3791
|
lines = 4
|
|
3718
3792
|
}) {
|
|
3719
3793
|
const lineWidths = ["w-full", "w-full", "w-5/6", "w-3/4", "w-4/5", "w-2/3"];
|
|
3720
|
-
return /* @__PURE__ */
|
|
3794
|
+
return /* @__PURE__ */ jsx27("div", { className: cn("space-y-2", className), children: Array.from({ length: lines }).map((_, index) => /* @__PURE__ */ jsx27(
|
|
3721
3795
|
TextSkeleton.Body,
|
|
3722
3796
|
{
|
|
3723
3797
|
className: lineWidths[index % lineWidths.length]
|
|
@@ -3731,14 +3805,14 @@ function ListSkeleton({
|
|
|
3731
3805
|
showIcons = false,
|
|
3732
3806
|
showActions = false
|
|
3733
3807
|
}) {
|
|
3734
|
-
return /* @__PURE__ */
|
|
3735
|
-
/* @__PURE__ */
|
|
3736
|
-
showIcons && /* @__PURE__ */
|
|
3737
|
-
/* @__PURE__ */
|
|
3808
|
+
return /* @__PURE__ */ jsx27("div", { className: cn("space-y-3", className), children: Array.from({ length: items }).map((_, index) => /* @__PURE__ */ jsxs23("div", { className: "flex items-center justify-between", children: [
|
|
3809
|
+
/* @__PURE__ */ jsxs23("div", { className: "flex items-center gap-3", children: [
|
|
3810
|
+
showIcons && /* @__PURE__ */ jsx27(MediaSkeleton.Icon, { size: "sm" }),
|
|
3811
|
+
/* @__PURE__ */ jsx27(TextSkeleton.Body, { className: "w-32 md:w-48" })
|
|
3738
3812
|
] }),
|
|
3739
|
-
showActions && /* @__PURE__ */
|
|
3740
|
-
/* @__PURE__ */
|
|
3741
|
-
/* @__PURE__ */
|
|
3813
|
+
showActions && /* @__PURE__ */ jsxs23("div", { className: "flex items-center gap-2", children: [
|
|
3814
|
+
/* @__PURE__ */ jsx27(TextSkeleton.Caption, { className: "w-8" }),
|
|
3815
|
+
/* @__PURE__ */ jsx27(UnifiedSkeleton, { variant: "default", className: "w-4 h-4" })
|
|
3742
3816
|
] })
|
|
3743
3817
|
] }, index)) });
|
|
3744
3818
|
}
|
|
@@ -3747,14 +3821,14 @@ function TableSkeleton({
|
|
|
3747
3821
|
rows = 5,
|
|
3748
3822
|
columns = 4
|
|
3749
3823
|
}) {
|
|
3750
|
-
return /* @__PURE__ */
|
|
3751
|
-
/* @__PURE__ */
|
|
3752
|
-
/* @__PURE__ */
|
|
3824
|
+
return /* @__PURE__ */ jsxs23("div", { className: cn("space-y-4", className), children: [
|
|
3825
|
+
/* @__PURE__ */ jsx27("div", { className: "grid gap-4", style: { gridTemplateColumns: `repeat(${columns}, 1fr)` }, children: Array.from({ length: columns }).map((_, index) => /* @__PURE__ */ jsx27(TextSkeleton.Subheading, { className: "w-3/4" }, index)) }),
|
|
3826
|
+
/* @__PURE__ */ jsx27("div", { className: "space-y-3", children: Array.from({ length: rows }).map((_, rowIndex) => /* @__PURE__ */ jsx27(
|
|
3753
3827
|
"div",
|
|
3754
3828
|
{
|
|
3755
3829
|
className: "grid gap-4 py-2 border-b border-ods-divider",
|
|
3756
3830
|
style: { gridTemplateColumns: `repeat(${columns}, 1fr)` },
|
|
3757
|
-
children: Array.from({ length: columns }).map((_2, colIndex) => /* @__PURE__ */
|
|
3831
|
+
children: Array.from({ length: columns }).map((_2, colIndex) => /* @__PURE__ */ jsx27(TextSkeleton.Body, { className: "w-2/3" }, colIndex))
|
|
3758
3832
|
},
|
|
3759
3833
|
rowIndex
|
|
3760
3834
|
)) })
|
|
@@ -3764,15 +3838,15 @@ function FormSkeleton({
|
|
|
3764
3838
|
className,
|
|
3765
3839
|
fields = 4
|
|
3766
3840
|
}) {
|
|
3767
|
-
return /* @__PURE__ */
|
|
3768
|
-
Array.from({ length: fields }).map((_, index) => /* @__PURE__ */
|
|
3769
|
-
/* @__PURE__ */
|
|
3770
|
-
/* @__PURE__ */
|
|
3771
|
-
index % 3 === 0 && /* @__PURE__ */
|
|
3841
|
+
return /* @__PURE__ */ jsxs23("div", { className: cn("space-y-6", className), children: [
|
|
3842
|
+
Array.from({ length: fields }).map((_, index) => /* @__PURE__ */ jsxs23("div", { className: "space-y-2", children: [
|
|
3843
|
+
/* @__PURE__ */ jsx27(TextSkeleton.Body, { className: "w-24" }),
|
|
3844
|
+
/* @__PURE__ */ jsx27(InteractiveSkeleton.Input, {}),
|
|
3845
|
+
index % 3 === 0 && /* @__PURE__ */ jsx27(TextSkeleton.Caption, { className: "w-48" })
|
|
3772
3846
|
] }, index)),
|
|
3773
|
-
/* @__PURE__ */
|
|
3774
|
-
/* @__PURE__ */
|
|
3775
|
-
/* @__PURE__ */
|
|
3847
|
+
/* @__PURE__ */ jsxs23("div", { className: "flex gap-4 pt-4", children: [
|
|
3848
|
+
/* @__PURE__ */ jsx27(InteractiveSkeleton.Button, {}),
|
|
3849
|
+
/* @__PURE__ */ jsx27(InteractiveSkeleton.Button, { className: "bg-ods-border" })
|
|
3776
3850
|
] })
|
|
3777
3851
|
] });
|
|
3778
3852
|
}
|
|
@@ -3781,7 +3855,7 @@ function NavigationSkeleton({
|
|
|
3781
3855
|
items = 6,
|
|
3782
3856
|
horizontal = true
|
|
3783
3857
|
}) {
|
|
3784
|
-
return /* @__PURE__ */
|
|
3858
|
+
return /* @__PURE__ */ jsx27(
|
|
3785
3859
|
"nav",
|
|
3786
3860
|
{
|
|
3787
3861
|
className: cn(
|
|
@@ -3791,7 +3865,7 @@ function NavigationSkeleton({
|
|
|
3791
3865
|
),
|
|
3792
3866
|
role: "status",
|
|
3793
3867
|
"aria-label": "Loading navigation",
|
|
3794
|
-
children: Array.from({ length: items }).map((_, index) => /* @__PURE__ */
|
|
3868
|
+
children: Array.from({ length: items }).map((_, index) => /* @__PURE__ */ jsx27(TextSkeleton.Body, { className: "w-16 md:w-20" }, index))
|
|
3795
3869
|
}
|
|
3796
3870
|
);
|
|
3797
3871
|
}
|
|
@@ -3800,32 +3874,32 @@ function ProfileSkeleton({
|
|
|
3800
3874
|
showBio = true,
|
|
3801
3875
|
showStats = true
|
|
3802
3876
|
}) {
|
|
3803
|
-
return /* @__PURE__ */
|
|
3804
|
-
/* @__PURE__ */
|
|
3805
|
-
/* @__PURE__ */
|
|
3806
|
-
/* @__PURE__ */
|
|
3807
|
-
/* @__PURE__ */
|
|
3808
|
-
/* @__PURE__ */
|
|
3809
|
-
/* @__PURE__ */
|
|
3877
|
+
return /* @__PURE__ */ jsxs23("div", { className: cn("space-y-4", className), children: [
|
|
3878
|
+
/* @__PURE__ */ jsxs23("div", { className: "flex items-start gap-4", children: [
|
|
3879
|
+
/* @__PURE__ */ jsx27(MediaSkeleton.Avatar, { size: "lg" }),
|
|
3880
|
+
/* @__PURE__ */ jsxs23("div", { className: "flex-1 space-y-2", children: [
|
|
3881
|
+
/* @__PURE__ */ jsx27(TextSkeleton.Subheading, { className: "w-1/2" }),
|
|
3882
|
+
/* @__PURE__ */ jsx27(TextSkeleton.Caption, { className: "w-1/3" }),
|
|
3883
|
+
/* @__PURE__ */ jsx27(TextSkeleton.Body, { className: "w-2/3" })
|
|
3810
3884
|
] })
|
|
3811
3885
|
] }),
|
|
3812
|
-
showBio && /* @__PURE__ */
|
|
3813
|
-
/* @__PURE__ */
|
|
3814
|
-
/* @__PURE__ */
|
|
3815
|
-
/* @__PURE__ */
|
|
3886
|
+
showBio && /* @__PURE__ */ jsxs23("div", { className: "space-y-2", children: [
|
|
3887
|
+
/* @__PURE__ */ jsx27(TextSkeleton.Body, { className: "w-full" }),
|
|
3888
|
+
/* @__PURE__ */ jsx27(TextSkeleton.Body, { className: "w-4/5" }),
|
|
3889
|
+
/* @__PURE__ */ jsx27(TextSkeleton.Body, { className: "w-3/4" })
|
|
3816
3890
|
] }),
|
|
3817
|
-
showStats && /* @__PURE__ */
|
|
3818
|
-
/* @__PURE__ */
|
|
3819
|
-
/* @__PURE__ */
|
|
3820
|
-
/* @__PURE__ */
|
|
3891
|
+
showStats && /* @__PURE__ */ jsxs23("div", { className: "flex gap-6", children: [
|
|
3892
|
+
/* @__PURE__ */ jsxs23("div", { className: "text-center", children: [
|
|
3893
|
+
/* @__PURE__ */ jsx27(TextSkeleton.Subheading, { className: "w-8 mx-auto" }),
|
|
3894
|
+
/* @__PURE__ */ jsx27(TextSkeleton.Caption, { className: "w-12 mx-auto" })
|
|
3821
3895
|
] }),
|
|
3822
|
-
/* @__PURE__ */
|
|
3823
|
-
/* @__PURE__ */
|
|
3824
|
-
/* @__PURE__ */
|
|
3896
|
+
/* @__PURE__ */ jsxs23("div", { className: "text-center", children: [
|
|
3897
|
+
/* @__PURE__ */ jsx27(TextSkeleton.Subheading, { className: "w-8 mx-auto" }),
|
|
3898
|
+
/* @__PURE__ */ jsx27(TextSkeleton.Caption, { className: "w-16 mx-auto" })
|
|
3825
3899
|
] }),
|
|
3826
|
-
/* @__PURE__ */
|
|
3827
|
-
/* @__PURE__ */
|
|
3828
|
-
/* @__PURE__ */
|
|
3900
|
+
/* @__PURE__ */ jsxs23("div", { className: "text-center", children: [
|
|
3901
|
+
/* @__PURE__ */ jsx27(TextSkeleton.Subheading, { className: "w-8 mx-auto" }),
|
|
3902
|
+
/* @__PURE__ */ jsx27(TextSkeleton.Caption, { className: "w-14 mx-auto" })
|
|
3829
3903
|
] })
|
|
3830
3904
|
] })
|
|
3831
3905
|
] });
|
|
@@ -3835,34 +3909,34 @@ function CommentSkeleton({
|
|
|
3835
3909
|
showRating = false,
|
|
3836
3910
|
showReplies = false
|
|
3837
3911
|
}) {
|
|
3838
|
-
return /* @__PURE__ */
|
|
3839
|
-
/* @__PURE__ */
|
|
3840
|
-
/* @__PURE__ */
|
|
3841
|
-
/* @__PURE__ */
|
|
3842
|
-
/* @__PURE__ */
|
|
3843
|
-
/* @__PURE__ */
|
|
3844
|
-
showRating && /* @__PURE__ */
|
|
3912
|
+
return /* @__PURE__ */ jsxs23("div", { className: cn("space-y-3", className), children: [
|
|
3913
|
+
/* @__PURE__ */ jsxs23("div", { className: "flex items-center gap-3", children: [
|
|
3914
|
+
/* @__PURE__ */ jsx27(MediaSkeleton.Avatar, { size: "sm" }),
|
|
3915
|
+
/* @__PURE__ */ jsxs23("div", { className: "flex-1 flex items-center gap-4", children: [
|
|
3916
|
+
/* @__PURE__ */ jsx27(TextSkeleton.Body, { className: "w-24" }),
|
|
3917
|
+
/* @__PURE__ */ jsx27(TextSkeleton.Caption, { className: "w-16" }),
|
|
3918
|
+
showRating && /* @__PURE__ */ jsx27("div", { className: "flex gap-1", children: Array.from({ length: 5 }).map((_, i) => /* @__PURE__ */ jsx27(MediaSkeleton.Icon, { size: "sm" }, i)) })
|
|
3845
3919
|
] })
|
|
3846
3920
|
] }),
|
|
3847
|
-
/* @__PURE__ */
|
|
3848
|
-
/* @__PURE__ */
|
|
3849
|
-
/* @__PURE__ */
|
|
3850
|
-
/* @__PURE__ */
|
|
3921
|
+
/* @__PURE__ */ jsxs23("div", { className: "ml-11 space-y-2", children: [
|
|
3922
|
+
/* @__PURE__ */ jsx27(TextSkeleton.Body, { className: "w-full" }),
|
|
3923
|
+
/* @__PURE__ */ jsx27(TextSkeleton.Body, { className: "w-3/4" }),
|
|
3924
|
+
/* @__PURE__ */ jsx27(TextSkeleton.Body, { className: "w-1/2" })
|
|
3851
3925
|
] }),
|
|
3852
|
-
/* @__PURE__ */
|
|
3853
|
-
/* @__PURE__ */
|
|
3854
|
-
/* @__PURE__ */
|
|
3855
|
-
/* @__PURE__ */
|
|
3926
|
+
/* @__PURE__ */ jsxs23("div", { className: "ml-11 flex gap-4", children: [
|
|
3927
|
+
/* @__PURE__ */ jsx27(TextSkeleton.Caption, { className: "w-12" }),
|
|
3928
|
+
/* @__PURE__ */ jsx27(TextSkeleton.Caption, { className: "w-16" }),
|
|
3929
|
+
/* @__PURE__ */ jsx27(TextSkeleton.Caption, { className: "w-8" })
|
|
3856
3930
|
] }),
|
|
3857
|
-
showReplies && /* @__PURE__ */
|
|
3858
|
-
/* @__PURE__ */
|
|
3859
|
-
/* @__PURE__ */
|
|
3860
|
-
/* @__PURE__ */
|
|
3861
|
-
/* @__PURE__ */
|
|
3931
|
+
showReplies && /* @__PURE__ */ jsx27("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: [
|
|
3932
|
+
/* @__PURE__ */ jsxs23("div", { className: "flex items-center gap-3", children: [
|
|
3933
|
+
/* @__PURE__ */ jsx27(MediaSkeleton.Avatar, { size: "sm" }),
|
|
3934
|
+
/* @__PURE__ */ jsx27(TextSkeleton.Body, { className: "w-20" }),
|
|
3935
|
+
/* @__PURE__ */ jsx27(TextSkeleton.Caption, { className: "w-12" })
|
|
3862
3936
|
] }),
|
|
3863
|
-
/* @__PURE__ */
|
|
3864
|
-
/* @__PURE__ */
|
|
3865
|
-
/* @__PURE__ */
|
|
3937
|
+
/* @__PURE__ */ jsxs23("div", { className: "ml-11", children: [
|
|
3938
|
+
/* @__PURE__ */ jsx27(TextSkeleton.Body, { className: "w-full" }),
|
|
3939
|
+
/* @__PURE__ */ jsx27(TextSkeleton.Body, { className: "w-2/3" })
|
|
3866
3940
|
] })
|
|
3867
3941
|
] }, index)) })
|
|
3868
3942
|
] });
|
|
@@ -3874,35 +3948,35 @@ function FeatureListSkeleton({
|
|
|
3874
3948
|
grouped = false
|
|
3875
3949
|
}) {
|
|
3876
3950
|
if (grouped) {
|
|
3877
|
-
return /* @__PURE__ */
|
|
3878
|
-
/* @__PURE__ */
|
|
3879
|
-
/* @__PURE__ */
|
|
3880
|
-
showIcons && /* @__PURE__ */
|
|
3881
|
-
/* @__PURE__ */
|
|
3951
|
+
return /* @__PURE__ */ jsx27("div", { className: cn("space-y-6", className), children: Array.from({ length: 3 }).map((_, groupIndex) => /* @__PURE__ */ jsxs23("div", { className: "space-y-3", children: [
|
|
3952
|
+
/* @__PURE__ */ jsx27(TextSkeleton.Subheading, { className: "w-1/3" }),
|
|
3953
|
+
/* @__PURE__ */ jsx27("div", { className: "space-y-2", children: Array.from({ length: features / 3 }).map((_2, featureIndex) => /* @__PURE__ */ jsxs23("div", { className: "flex items-center gap-3", children: [
|
|
3954
|
+
showIcons && /* @__PURE__ */ jsx27(MediaSkeleton.Icon, { size: "sm" }),
|
|
3955
|
+
/* @__PURE__ */ jsx27(TextSkeleton.Body, { className: "w-2/3" })
|
|
3882
3956
|
] }, featureIndex)) })
|
|
3883
3957
|
] }, groupIndex)) });
|
|
3884
3958
|
}
|
|
3885
|
-
return /* @__PURE__ */
|
|
3886
|
-
showIcons && /* @__PURE__ */
|
|
3887
|
-
/* @__PURE__ */
|
|
3959
|
+
return /* @__PURE__ */ jsx27("div", { className: cn("space-y-3", className), children: Array.from({ length: features }).map((_, index) => /* @__PURE__ */ jsxs23("div", { className: "flex items-center gap-3", children: [
|
|
3960
|
+
showIcons && /* @__PURE__ */ jsx27(MediaSkeleton.Icon, { size: "sm" }),
|
|
3961
|
+
/* @__PURE__ */ jsx27(TextSkeleton.Body, { className: "w-2/3" })
|
|
3888
3962
|
] }, index)) });
|
|
3889
3963
|
}
|
|
3890
3964
|
function TimelineSkeleton({
|
|
3891
3965
|
className,
|
|
3892
3966
|
items = 5
|
|
3893
3967
|
}) {
|
|
3894
|
-
return /* @__PURE__ */
|
|
3895
|
-
/* @__PURE__ */
|
|
3896
|
-
/* @__PURE__ */
|
|
3897
|
-
index < items - 1 && /* @__PURE__ */
|
|
3968
|
+
return /* @__PURE__ */ jsx27("div", { className: cn("space-y-6", className), children: Array.from({ length: items }).map((_, index) => /* @__PURE__ */ jsxs23("div", { className: "flex gap-4", children: [
|
|
3969
|
+
/* @__PURE__ */ jsxs23("div", { className: "flex flex-col items-center", children: [
|
|
3970
|
+
/* @__PURE__ */ jsx27(MediaSkeleton.Icon, { size: "sm" }),
|
|
3971
|
+
index < items - 1 && /* @__PURE__ */ jsx27("div", { className: "w-px h-12 bg-ods-border mt-2" })
|
|
3898
3972
|
] }),
|
|
3899
|
-
/* @__PURE__ */
|
|
3900
|
-
/* @__PURE__ */
|
|
3901
|
-
/* @__PURE__ */
|
|
3902
|
-
/* @__PURE__ */
|
|
3973
|
+
/* @__PURE__ */ jsxs23("div", { className: "flex-1 space-y-2", children: [
|
|
3974
|
+
/* @__PURE__ */ jsxs23("div", { className: "flex items-center gap-3", children: [
|
|
3975
|
+
/* @__PURE__ */ jsx27(TextSkeleton.Body, { className: "w-1/3" }),
|
|
3976
|
+
/* @__PURE__ */ jsx27(TextSkeleton.Caption, { className: "w-16" })
|
|
3903
3977
|
] }),
|
|
3904
|
-
/* @__PURE__ */
|
|
3905
|
-
/* @__PURE__ */
|
|
3978
|
+
/* @__PURE__ */ jsx27(TextSkeleton.Body, { className: "w-full" }),
|
|
3979
|
+
/* @__PURE__ */ jsx27(TextSkeleton.Body, { className: "w-3/4" })
|
|
3906
3980
|
] })
|
|
3907
3981
|
] }, index)) });
|
|
3908
3982
|
}
|
|
@@ -3910,54 +3984,54 @@ function PricingSkeleton({
|
|
|
3910
3984
|
className,
|
|
3911
3985
|
plans = 3
|
|
3912
3986
|
}) {
|
|
3913
|
-
return /* @__PURE__ */
|
|
3987
|
+
return /* @__PURE__ */ jsx27("div", { className: cn(
|
|
3914
3988
|
"grid gap-6",
|
|
3915
3989
|
plans === 2 && "grid-cols-1 md:grid-cols-2",
|
|
3916
3990
|
plans === 3 && "grid-cols-1 md:grid-cols-3",
|
|
3917
3991
|
plans === 4 && "grid-cols-1 md:grid-cols-2 lg:grid-cols-4",
|
|
3918
3992
|
className
|
|
3919
|
-
), children: Array.from({ length: plans }).map((_, index) => /* @__PURE__ */
|
|
3920
|
-
/* @__PURE__ */
|
|
3921
|
-
/* @__PURE__ */
|
|
3922
|
-
/* @__PURE__ */
|
|
3923
|
-
/* @__PURE__ */
|
|
3993
|
+
), children: Array.from({ length: plans }).map((_, index) => /* @__PURE__ */ jsx27("div", { className: "bg-ods-card border border-ods-border rounded-lg p-6", children: /* @__PURE__ */ jsxs23("div", { className: "space-y-4", children: [
|
|
3994
|
+
/* @__PURE__ */ jsx27(TextSkeleton.Subheading, { className: "w-1/2" }),
|
|
3995
|
+
/* @__PURE__ */ jsxs23("div", { className: "space-y-1", children: [
|
|
3996
|
+
/* @__PURE__ */ jsx27(TextSkeleton.Heading, { className: "w-1/3" }),
|
|
3997
|
+
/* @__PURE__ */ jsx27(TextSkeleton.Caption, { className: "w-1/4" })
|
|
3924
3998
|
] }),
|
|
3925
|
-
/* @__PURE__ */
|
|
3926
|
-
/* @__PURE__ */
|
|
3927
|
-
/* @__PURE__ */
|
|
3999
|
+
/* @__PURE__ */ jsx27("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: [
|
|
4000
|
+
/* @__PURE__ */ jsx27(MediaSkeleton.Icon, { size: "sm" }),
|
|
4001
|
+
/* @__PURE__ */ jsx27(TextSkeleton.Body, { className: "w-3/4" })
|
|
3928
4002
|
] }, featureIndex)) }),
|
|
3929
|
-
/* @__PURE__ */
|
|
4003
|
+
/* @__PURE__ */ jsx27(InteractiveSkeleton.Button, { className: "w-full" })
|
|
3930
4004
|
] }) }, index)) });
|
|
3931
4005
|
}
|
|
3932
4006
|
|
|
3933
4007
|
// src/components/profile/ProfileLoadingSkeleton.tsx
|
|
3934
4008
|
init_cn();
|
|
3935
|
-
import { jsx as
|
|
4009
|
+
import { jsx as jsx28, jsxs as jsxs24 } from "react/jsx-runtime";
|
|
3936
4010
|
function ProfileLoadingSkeleton({ className }) {
|
|
3937
|
-
return /* @__PURE__ */
|
|
3938
|
-
/* @__PURE__ */
|
|
3939
|
-
/* @__PURE__ */
|
|
3940
|
-
/* @__PURE__ */
|
|
3941
|
-
/* @__PURE__ */
|
|
3942
|
-
/* @__PURE__ */
|
|
4011
|
+
return /* @__PURE__ */ jsxs24("div", { className: cn("space-y-6", className), children: [
|
|
4012
|
+
/* @__PURE__ */ jsxs24("div", { className: "flex items-center space-x-4", children: [
|
|
4013
|
+
/* @__PURE__ */ jsx28("div", { className: "h-16 w-16 bg-ods-skeleton rounded-full animate-pulse" }),
|
|
4014
|
+
/* @__PURE__ */ jsxs24("div", { className: "space-y-2", children: [
|
|
4015
|
+
/* @__PURE__ */ jsx28("div", { className: "h-4 w-32 bg-ods-skeleton rounded animate-pulse" }),
|
|
4016
|
+
/* @__PURE__ */ jsx28("div", { className: "h-3 w-24 bg-ods-skeleton rounded animate-pulse" })
|
|
3943
4017
|
] })
|
|
3944
4018
|
] }),
|
|
3945
|
-
/* @__PURE__ */
|
|
3946
|
-
/* @__PURE__ */
|
|
3947
|
-
/* @__PURE__ */
|
|
3948
|
-
/* @__PURE__ */
|
|
4019
|
+
/* @__PURE__ */ jsxs24("div", { className: "space-y-4", children: [
|
|
4020
|
+
/* @__PURE__ */ jsx28("div", { className: "h-4 w-full bg-ods-skeleton rounded animate-pulse" }),
|
|
4021
|
+
/* @__PURE__ */ jsx28("div", { className: "h-4 w-3/4 bg-ods-skeleton rounded animate-pulse" }),
|
|
4022
|
+
/* @__PURE__ */ jsx28("div", { className: "h-4 w-1/2 bg-ods-skeleton rounded animate-pulse" })
|
|
3949
4023
|
] })
|
|
3950
4024
|
] });
|
|
3951
4025
|
}
|
|
3952
4026
|
|
|
3953
4027
|
// src/components/loading/msp-profile-form-skeleton.tsx
|
|
3954
4028
|
init_cn();
|
|
3955
|
-
import { jsx as
|
|
4029
|
+
import { jsx as jsx29, jsxs as jsxs25 } from "react/jsx-runtime";
|
|
3956
4030
|
function MspProfileFormSkeleton({
|
|
3957
4031
|
className,
|
|
3958
4032
|
fields = 4
|
|
3959
4033
|
}) {
|
|
3960
|
-
return /* @__PURE__ */
|
|
4034
|
+
return /* @__PURE__ */ jsxs25(
|
|
3961
4035
|
"div",
|
|
3962
4036
|
{
|
|
3963
4037
|
className: cn(
|
|
@@ -3967,13 +4041,13 @@ function MspProfileFormSkeleton({
|
|
|
3967
4041
|
role: "status",
|
|
3968
4042
|
"aria-label": "Loading MSP profile form",
|
|
3969
4043
|
children: [
|
|
3970
|
-
/* @__PURE__ */
|
|
3971
|
-
/* @__PURE__ */
|
|
3972
|
-
/* @__PURE__ */
|
|
4044
|
+
/* @__PURE__ */ jsxs25("div", { className: "flex flex-col space-y-2 h-full", children: [
|
|
4045
|
+
/* @__PURE__ */ jsx29(TextSkeleton.Body, { className: "w-28" }),
|
|
4046
|
+
/* @__PURE__ */ jsx29("div", { className: "flex-1 min-h-[180px] md:min-h-full", children: /* @__PURE__ */ jsx29(UnifiedSkeleton, { className: "w-full h-full rounded-lg", "aria-label": "Loading company logo" }) })
|
|
3973
4047
|
] }),
|
|
3974
|
-
/* @__PURE__ */
|
|
3975
|
-
/* @__PURE__ */
|
|
3976
|
-
/* @__PURE__ */
|
|
4048
|
+
/* @__PURE__ */ jsx29("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: [
|
|
4049
|
+
/* @__PURE__ */ jsx29(TextSkeleton.Body, { className: "w-40" }),
|
|
4050
|
+
/* @__PURE__ */ jsx29(InteractiveSkeleton.Input, {})
|
|
3977
4051
|
] }, idx)) })
|
|
3978
4052
|
]
|
|
3979
4053
|
}
|
|
@@ -3982,9 +4056,9 @@ function MspProfileFormSkeleton({
|
|
|
3982
4056
|
|
|
3983
4057
|
// src/components/loading/category-card-skeleton.tsx
|
|
3984
4058
|
init_cn();
|
|
3985
|
-
import { jsx as
|
|
4059
|
+
import { jsx as jsx30, jsxs as jsxs26 } from "react/jsx-runtime";
|
|
3986
4060
|
function CategoryCardSkeleton({ className }) {
|
|
3987
|
-
return /* @__PURE__ */
|
|
4061
|
+
return /* @__PURE__ */ jsxs26(
|
|
3988
4062
|
"article",
|
|
3989
4063
|
{
|
|
3990
4064
|
className: cn(
|
|
@@ -3994,7 +4068,7 @@ function CategoryCardSkeleton({ className }) {
|
|
|
3994
4068
|
role: "status",
|
|
3995
4069
|
"aria-label": "Loading category card",
|
|
3996
4070
|
children: [
|
|
3997
|
-
/* @__PURE__ */
|
|
4071
|
+
/* @__PURE__ */ jsx30("div", { className: "flex gap-6 mb-8 justify-center items-center", children: Array.from({ length: 10 }).map((_, i) => /* @__PURE__ */ jsx30(
|
|
3998
4072
|
UnifiedSkeleton,
|
|
3999
4073
|
{
|
|
4000
4074
|
variant: "circular",
|
|
@@ -4003,12 +4077,12 @@ function CategoryCardSkeleton({ className }) {
|
|
|
4003
4077
|
},
|
|
4004
4078
|
i
|
|
4005
4079
|
)) }),
|
|
4006
|
-
/* @__PURE__ */
|
|
4007
|
-
/* @__PURE__ */
|
|
4008
|
-
/* @__PURE__ */
|
|
4009
|
-
/* @__PURE__ */
|
|
4080
|
+
/* @__PURE__ */ jsxs26("div", { className: "flex-1 flex flex-col space-y-3", children: [
|
|
4081
|
+
/* @__PURE__ */ jsx30(TextSkeleton.Heading, { className: "w-3/4" }),
|
|
4082
|
+
/* @__PURE__ */ jsx30(TextSkeleton.Body, { className: "w-1/2" }),
|
|
4083
|
+
/* @__PURE__ */ jsx30(TextSkeleton.Body, { className: "w-full" })
|
|
4010
4084
|
] }),
|
|
4011
|
-
/* @__PURE__ */
|
|
4085
|
+
/* @__PURE__ */ jsx30("div", { className: "mt-4 flex justify-end", children: /* @__PURE__ */ jsx30(UnifiedSkeleton, { className: "w-12 h-12 rounded-[6px]", "aria-label": "Loading button" }) })
|
|
4012
4086
|
]
|
|
4013
4087
|
}
|
|
4014
4088
|
);
|
|
@@ -4016,22 +4090,22 @@ function CategoryCardSkeleton({ className }) {
|
|
|
4016
4090
|
|
|
4017
4091
|
// src/components/loading/category-vendor-selector-skeleton.tsx
|
|
4018
4092
|
init_cn();
|
|
4019
|
-
import { jsx as
|
|
4093
|
+
import { jsx as jsx31, jsxs as jsxs27 } from "react/jsx-runtime";
|
|
4020
4094
|
function CategoryVendorSelectorSkeleton({ subcategories = 3, className }) {
|
|
4021
|
-
return /* @__PURE__ */
|
|
4095
|
+
return /* @__PURE__ */ jsxs27(
|
|
4022
4096
|
"div",
|
|
4023
4097
|
{
|
|
4024
4098
|
className: cn("bg-ods-card border border-ods-border rounded-lg p-6", className),
|
|
4025
4099
|
role: "status",
|
|
4026
4100
|
"aria-label": "Loading category section",
|
|
4027
4101
|
children: [
|
|
4028
|
-
/* @__PURE__ */
|
|
4029
|
-
/* @__PURE__ */
|
|
4030
|
-
/* @__PURE__ */
|
|
4102
|
+
/* @__PURE__ */ jsxs27("div", { className: "mb-6 space-y-2 max-w-xl", children: [
|
|
4103
|
+
/* @__PURE__ */ jsx31(TextSkeleton.Heading, { className: "w-1/2" }),
|
|
4104
|
+
/* @__PURE__ */ jsx31(TextSkeleton.Body, { className: "w-3/4" })
|
|
4031
4105
|
] }),
|
|
4032
|
-
/* @__PURE__ */
|
|
4033
|
-
/* @__PURE__ */
|
|
4034
|
-
/* @__PURE__ */
|
|
4106
|
+
/* @__PURE__ */ jsx31("div", { className: "space-y-6", children: Array.from({ length: subcategories }).map((_, idx) => /* @__PURE__ */ jsxs27("div", { className: "space-y-2", children: [
|
|
4107
|
+
/* @__PURE__ */ jsx31(TextSkeleton.Subheading, { className: "w-1/3" }),
|
|
4108
|
+
/* @__PURE__ */ jsx31("div", { className: "grid grid-cols-2 md:grid-cols-3 gap-4", children: Array.from({ length: 2 }).map((__, j) => /* @__PURE__ */ jsx31(UnifiedSkeleton, { className: "h-20 rounded-lg" }, j)) })
|
|
4035
4109
|
] }, idx)) })
|
|
4036
4110
|
]
|
|
4037
4111
|
}
|
|
@@ -4040,90 +4114,90 @@ function CategoryVendorSelectorSkeleton({ subcategories = 3, className }) {
|
|
|
4040
4114
|
|
|
4041
4115
|
// src/components/loading/wizard-layout-skeleton.tsx
|
|
4042
4116
|
init_cn();
|
|
4043
|
-
import { jsx as
|
|
4117
|
+
import { jsx as jsx32, jsxs as jsxs28 } from "react/jsx-runtime";
|
|
4044
4118
|
function WizardLayoutSkeleton({ steps = 6, className }) {
|
|
4045
|
-
return /* @__PURE__ */
|
|
4046
|
-
/* @__PURE__ */
|
|
4047
|
-
/* @__PURE__ */
|
|
4048
|
-
/* @__PURE__ */
|
|
4049
|
-
/* @__PURE__ */
|
|
4119
|
+
return /* @__PURE__ */ jsxs28("div", { className: cn("space-y-6", className), role: "status", "aria-label": "Loading wizard layout", children: [
|
|
4120
|
+
/* @__PURE__ */ jsx32("div", { className: "flex flex-wrap items-center gap-2", children: Array.from({ length: steps }).map((_, i) => /* @__PURE__ */ jsx32(UnifiedSkeleton, { className: "h-6 w-24 rounded" }, i)) }),
|
|
4121
|
+
/* @__PURE__ */ jsxs28("div", { className: "space-y-2 max-w-2xl", children: [
|
|
4122
|
+
/* @__PURE__ */ jsx32(TextSkeleton.Heading, { className: "w-2/3" }),
|
|
4123
|
+
/* @__PURE__ */ jsx32(TextSkeleton.Body, { className: "w-1/2" })
|
|
4050
4124
|
] }),
|
|
4051
|
-
/* @__PURE__ */
|
|
4052
|
-
/* @__PURE__ */
|
|
4053
|
-
/* @__PURE__ */
|
|
4125
|
+
/* @__PURE__ */ jsxs28("div", { className: "flex justify-between mt-10", children: [
|
|
4126
|
+
/* @__PURE__ */ jsx32(UnifiedSkeleton, { className: "h-10 w-24 rounded" }),
|
|
4127
|
+
/* @__PURE__ */ jsx32(UnifiedSkeleton, { className: "h-10 w-32 rounded" })
|
|
4054
4128
|
] })
|
|
4055
4129
|
] });
|
|
4056
4130
|
}
|
|
4057
4131
|
|
|
4058
4132
|
// src/components/loading/margin-report-skeleton.tsx
|
|
4059
|
-
import { jsx as
|
|
4133
|
+
import { jsx as jsx33, jsxs as jsxs29 } from "react/jsx-runtime";
|
|
4060
4134
|
function MarginReportSkeleton({ animate = true, description, overlayContent }) {
|
|
4061
|
-
return /* @__PURE__ */
|
|
4062
|
-
/* @__PURE__ */
|
|
4063
|
-
/* @__PURE__ */
|
|
4064
|
-
/* @__PURE__ */
|
|
4065
|
-
/* @__PURE__ */
|
|
4135
|
+
return /* @__PURE__ */ jsxs29("main", { className: `bg-ods-bg ${animate ? "animate-pulse" : ""} relative min-h-screen`, children: [
|
|
4136
|
+
/* @__PURE__ */ jsxs29("div", { className: "max-w-[1920px] px-6 md:px-20 py-6 md:py-10 mx-auto space-y-10", children: [
|
|
4137
|
+
/* @__PURE__ */ jsxs29("div", { className: "space-y-3", children: [
|
|
4138
|
+
/* @__PURE__ */ jsx33("div", { className: "h-10 w-72 bg-ods-skeleton rounded" }),
|
|
4139
|
+
/* @__PURE__ */ jsx33("div", { className: "h-4 w-80 bg-ods-skeleton rounded" })
|
|
4066
4140
|
] }),
|
|
4067
|
-
/* @__PURE__ */
|
|
4068
|
-
/* @__PURE__ */
|
|
4069
|
-
/* @__PURE__ */
|
|
4070
|
-
/* @__PURE__ */
|
|
4071
|
-
/* @__PURE__ */
|
|
4072
|
-
/* @__PURE__ */
|
|
4073
|
-
/* @__PURE__ */
|
|
4141
|
+
/* @__PURE__ */ jsx33("div", { className: "grid grid-cols-1 md:grid-cols-3 gap-6", children: Array.from({ length: 3 }).map((_, i) => /* @__PURE__ */ jsx33("div", { className: "h-32 bg-ods-card border border-ods-border rounded" }, i)) }),
|
|
4142
|
+
/* @__PURE__ */ jsxs29("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-6", children: [
|
|
4143
|
+
/* @__PURE__ */ jsxs29("div", { className: "bg-ods-card border border-ods-border rounded-lg p-6 flex items-center gap-4 animate-pulse", children: [
|
|
4144
|
+
/* @__PURE__ */ jsx33("div", { className: "w-14 h-14 rounded-lg bg-ods-skeleton" }),
|
|
4145
|
+
/* @__PURE__ */ jsxs29("div", { className: "flex-1 space-y-2", children: [
|
|
4146
|
+
/* @__PURE__ */ jsx33("div", { className: "h-4 bg-ods-skeleton rounded w-3/4" }),
|
|
4147
|
+
/* @__PURE__ */ jsx33("div", { className: "h-3 bg-ods-skeleton rounded w-1/2" })
|
|
4074
4148
|
] })
|
|
4075
4149
|
] }),
|
|
4076
|
-
/* @__PURE__ */
|
|
4077
|
-
/* @__PURE__ */
|
|
4078
|
-
/* @__PURE__ */
|
|
4079
|
-
/* @__PURE__ */
|
|
4080
|
-
/* @__PURE__ */
|
|
4081
|
-
/* @__PURE__ */
|
|
4082
|
-
/* @__PURE__ */
|
|
4150
|
+
/* @__PURE__ */ jsxs29("div", { className: "bg-ods-card border border-ods-border rounded-lg p-6 flex flex-col gap-4 animate-pulse", children: [
|
|
4151
|
+
/* @__PURE__ */ jsxs29("div", { className: "flex items-center justify-between gap-4", children: [
|
|
4152
|
+
/* @__PURE__ */ jsxs29("div", { className: "flex items-center gap-2", children: [
|
|
4153
|
+
/* @__PURE__ */ jsx33("div", { className: "w-10 h-10 rounded-lg bg-ods-skeleton" }),
|
|
4154
|
+
/* @__PURE__ */ jsxs29("div", { className: "space-y-1", children: [
|
|
4155
|
+
/* @__PURE__ */ jsx33("div", { className: "h-4 w-32 bg-ods-skeleton rounded" }),
|
|
4156
|
+
/* @__PURE__ */ jsx33("div", { className: "h-3 w-20 bg-ods-skeleton rounded" })
|
|
4083
4157
|
] })
|
|
4084
4158
|
] }),
|
|
4085
|
-
/* @__PURE__ */
|
|
4159
|
+
/* @__PURE__ */ jsx33("div", { className: "h-6 w-36 bg-ods-skeleton rounded" })
|
|
4086
4160
|
] }),
|
|
4087
|
-
/* @__PURE__ */
|
|
4161
|
+
/* @__PURE__ */ jsx33("div", { className: "h-4 w-40 bg-ods-skeleton rounded mt-4" })
|
|
4088
4162
|
] })
|
|
4089
4163
|
] }),
|
|
4090
|
-
/* @__PURE__ */
|
|
4091
|
-
/* @__PURE__ */
|
|
4092
|
-
/* @__PURE__ */
|
|
4093
|
-
/* @__PURE__ */
|
|
4094
|
-
/* @__PURE__ */
|
|
4095
|
-
/* @__PURE__ */
|
|
4164
|
+
/* @__PURE__ */ jsx33("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: [
|
|
4165
|
+
/* @__PURE__ */ jsxs29("div", { className: "flex items-center justify-between px-6 py-4", children: [
|
|
4166
|
+
/* @__PURE__ */ jsx33("div", { className: "h-6 w-40 bg-ods-skeleton rounded" }),
|
|
4167
|
+
/* @__PURE__ */ jsxs29("div", { className: "flex items-center gap-2", children: [
|
|
4168
|
+
/* @__PURE__ */ jsx33("div", { className: "h-5 w-20 bg-ods-skeleton rounded" }),
|
|
4169
|
+
/* @__PURE__ */ jsx33("div", { className: "h-4 w-10 bg-ods-skeleton rounded" })
|
|
4096
4170
|
] })
|
|
4097
4171
|
] }),
|
|
4098
|
-
/* @__PURE__ */
|
|
4099
|
-
/* @__PURE__ */
|
|
4100
|
-
/* @__PURE__ */
|
|
4101
|
-
/* @__PURE__ */
|
|
4102
|
-
/* @__PURE__ */
|
|
4103
|
-
/* @__PURE__ */
|
|
4172
|
+
/* @__PURE__ */ jsx33("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: [
|
|
4173
|
+
/* @__PURE__ */ jsxs29("div", { className: "flex items-center gap-3 min-w-0", children: [
|
|
4174
|
+
/* @__PURE__ */ jsx33("div", { className: "w-12 h-12 bg-ods-skeleton rounded-lg flex-shrink-0" }),
|
|
4175
|
+
/* @__PURE__ */ jsxs29("div", { className: "flex flex-col min-w-0", children: [
|
|
4176
|
+
/* @__PURE__ */ jsx33("div", { className: "h-4 w-32 bg-ods-skeleton rounded" }),
|
|
4177
|
+
/* @__PURE__ */ jsx33("div", { className: "hidden md:block h-3 w-24 bg-ods-skeleton rounded mt-1" })
|
|
4104
4178
|
] })
|
|
4105
4179
|
] }),
|
|
4106
|
-
/* @__PURE__ */
|
|
4107
|
-
/* @__PURE__ */
|
|
4108
|
-
/* @__PURE__ */
|
|
4180
|
+
/* @__PURE__ */ jsxs29("div", { className: "flex items-center gap-1 flex-shrink-0", children: [
|
|
4181
|
+
/* @__PURE__ */ jsx33("div", { className: "h-4 w-16 bg-ods-skeleton rounded" }),
|
|
4182
|
+
/* @__PURE__ */ jsx33("div", { className: "h-3 w-8 bg-ods-skeleton rounded" })
|
|
4109
4183
|
] })
|
|
4110
4184
|
] }, j)) })
|
|
4111
4185
|
] }, idx)) }),
|
|
4112
|
-
/* @__PURE__ */
|
|
4113
|
-
/* @__PURE__ */
|
|
4114
|
-
/* @__PURE__ */
|
|
4115
|
-
/* @__PURE__ */
|
|
4116
|
-
/* @__PURE__ */
|
|
4117
|
-
/* @__PURE__ */
|
|
4118
|
-
/* @__PURE__ */
|
|
4186
|
+
/* @__PURE__ */ jsx33("div", { className: "h-6 w-60 bg-ods-skeleton rounded" }),
|
|
4187
|
+
/* @__PURE__ */ jsx33("div", { className: "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6", children: Array.from({ length: 3 }).map((_, i) => /* @__PURE__ */ jsx33("div", { className: "h-48 bg-ods-card border border-ods-border rounded" }, i)) }),
|
|
4188
|
+
/* @__PURE__ */ jsxs29("div", { className: "border border-ods-border rounded-3xl p-8 space-y-6", children: [
|
|
4189
|
+
/* @__PURE__ */ jsxs29("div", { className: "flex items-start gap-6", children: [
|
|
4190
|
+
/* @__PURE__ */ jsxs29("div", { className: "flex-1 space-y-2 min-w-0", children: [
|
|
4191
|
+
/* @__PURE__ */ jsx33("div", { className: "h-8 w-72 bg-ods-skeleton rounded" }),
|
|
4192
|
+
/* @__PURE__ */ jsx33("div", { className: "h-4 w-3/4 bg-ods-skeleton rounded" })
|
|
4119
4193
|
] }),
|
|
4120
|
-
/* @__PURE__ */
|
|
4194
|
+
/* @__PURE__ */ jsx33("div", { className: "w-12 h-12 bg-ods-skeleton rounded-md shrink-0" })
|
|
4121
4195
|
] }),
|
|
4122
|
-
/* @__PURE__ */
|
|
4196
|
+
/* @__PURE__ */ jsx33("div", { className: "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6", children: Array.from({ length: 3 }).map((_, i) => /* @__PURE__ */ jsx33("div", { className: "h-32 bg-ods-card border border-ods-border rounded" }, i)) })
|
|
4123
4197
|
] })
|
|
4124
4198
|
] }),
|
|
4125
|
-
overlayContent && /* @__PURE__ */
|
|
4126
|
-
description && /* @__PURE__ */
|
|
4199
|
+
overlayContent && /* @__PURE__ */ jsx33("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: [
|
|
4200
|
+
description && /* @__PURE__ */ jsx33("h3", { children: description }),
|
|
4127
4201
|
overlayContent
|
|
4128
4202
|
] }) })
|
|
4129
4203
|
] });
|
|
@@ -4131,18 +4205,18 @@ function MarginReportSkeleton({ animate = true, description, overlayContent }) {
|
|
|
4131
4205
|
|
|
4132
4206
|
// src/components/loading/users-grid-skeleton.tsx
|
|
4133
4207
|
init_cn();
|
|
4134
|
-
import { jsx as
|
|
4208
|
+
import { jsx as jsx34, jsxs as jsxs30 } from "react/jsx-runtime";
|
|
4135
4209
|
function UsersGridSkeleton({ rows = 10, className }) {
|
|
4136
4210
|
const skeletonRows = Array.from({ length: rows });
|
|
4137
|
-
return /* @__PURE__ */
|
|
4138
|
-
/* @__PURE__ */
|
|
4139
|
-
/* @__PURE__ */
|
|
4211
|
+
return /* @__PURE__ */ jsx34("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: [
|
|
4212
|
+
/* @__PURE__ */ jsx34("thead", { className: "bg-ods-skeleton", children: /* @__PURE__ */ jsx34("tr", { children: ["Name", "Email", "Role", "Created", "Last Sign-In"].map((h) => /* @__PURE__ */ jsx34("th", { className: "px-4 py-3 text-left text-h6 text-ods-text-primary", children: h }, h)) }) }),
|
|
4213
|
+
/* @__PURE__ */ jsx34("tbody", { className: "divide-y divide-ods-border", children: skeletonRows.map((_, idx) => /* @__PURE__ */ jsx34("tr", { children: Array.from({ length: 5 }).map((__, cell) => /* @__PURE__ */ jsx34("td", { className: "px-4 py-3 whitespace-nowrap", children: /* @__PURE__ */ jsx34("div", { className: "h-4 bg-ods-border rounded w-full" }) }, cell)) }, idx)) })
|
|
4140
4214
|
] }) });
|
|
4141
4215
|
}
|
|
4142
4216
|
|
|
4143
4217
|
// src/components/loading/organization-icon-skeleton.tsx
|
|
4144
4218
|
init_cn();
|
|
4145
|
-
import { jsx as
|
|
4219
|
+
import { jsx as jsx35 } from "react/jsx-runtime";
|
|
4146
4220
|
var sizeClasses2 = {
|
|
4147
4221
|
xs: "w-6 h-6",
|
|
4148
4222
|
sm: "w-8 h-8",
|
|
@@ -4169,27 +4243,27 @@ function OrganizationIconSkeleton({
|
|
|
4169
4243
|
!showBackground && "overflow-hidden",
|
|
4170
4244
|
className
|
|
4171
4245
|
);
|
|
4172
|
-
return /* @__PURE__ */
|
|
4246
|
+
return /* @__PURE__ */ jsx35(
|
|
4173
4247
|
"div",
|
|
4174
4248
|
{
|
|
4175
4249
|
className: containerClasses,
|
|
4176
4250
|
role: "status",
|
|
4177
4251
|
"aria-label": "Loading organization icon",
|
|
4178
|
-
children: /* @__PURE__ */
|
|
4252
|
+
children: /* @__PURE__ */ jsx35("div", { className: "w-1/2 h-1/2 bg-ods-border rounded-sm animate-pulse" })
|
|
4179
4253
|
}
|
|
4180
4254
|
);
|
|
4181
4255
|
}
|
|
4182
4256
|
|
|
4183
4257
|
// src/components/loading/organization-card-skeleton.tsx
|
|
4184
4258
|
init_cn();
|
|
4185
|
-
import { jsx as
|
|
4259
|
+
import { jsx as jsx36, jsxs as jsxs31 } from "react/jsx-runtime";
|
|
4186
4260
|
function OrganizationCardSkeleton({
|
|
4187
4261
|
className,
|
|
4188
4262
|
containerClassName,
|
|
4189
4263
|
showFooter = true,
|
|
4190
4264
|
showDescription = true
|
|
4191
4265
|
}) {
|
|
4192
|
-
return /* @__PURE__ */
|
|
4266
|
+
return /* @__PURE__ */ jsx36(
|
|
4193
4267
|
"div",
|
|
4194
4268
|
{
|
|
4195
4269
|
className: cn(
|
|
@@ -4199,9 +4273,9 @@ function OrganizationCardSkeleton({
|
|
|
4199
4273
|
),
|
|
4200
4274
|
role: "status",
|
|
4201
4275
|
"aria-label": "Loading organization card",
|
|
4202
|
-
children: /* @__PURE__ */
|
|
4203
|
-
/* @__PURE__ */
|
|
4204
|
-
/* @__PURE__ */
|
|
4276
|
+
children: /* @__PURE__ */ jsxs31("div", { className: "p-4 gap-3 flex flex-col", children: [
|
|
4277
|
+
/* @__PURE__ */ jsxs31("div", { className: "flex items-start gap-3 w-full", children: [
|
|
4278
|
+
/* @__PURE__ */ jsx36(
|
|
4205
4279
|
OrganizationIconSkeleton,
|
|
4206
4280
|
{
|
|
4207
4281
|
size: "xl",
|
|
@@ -4210,29 +4284,29 @@ function OrganizationCardSkeleton({
|
|
|
4210
4284
|
className: "w-[60px] h-[60px]"
|
|
4211
4285
|
}
|
|
4212
4286
|
),
|
|
4213
|
-
/* @__PURE__ */
|
|
4214
|
-
/* @__PURE__ */
|
|
4215
|
-
/* @__PURE__ */
|
|
4287
|
+
/* @__PURE__ */ jsxs31("div", { className: "flex-1 flex flex-col justify-center py-2 min-w-0 space-y-1", children: [
|
|
4288
|
+
/* @__PURE__ */ jsx36(TextSkeleton.Subheading, { className: "w-3/4" }),
|
|
4289
|
+
/* @__PURE__ */ jsx36(TextSkeleton.Caption, { className: "w-1/2" })
|
|
4216
4290
|
] })
|
|
4217
4291
|
] }),
|
|
4218
|
-
showDescription && /* @__PURE__ */
|
|
4219
|
-
/* @__PURE__ */
|
|
4220
|
-
/* @__PURE__ */
|
|
4292
|
+
showDescription && /* @__PURE__ */ jsx36("div", { className: "w-full h-12 overflow-hidden flex items-center", children: /* @__PURE__ */ jsxs31("div", { className: "space-y-1 w-full", children: [
|
|
4293
|
+
/* @__PURE__ */ jsx36(TextSkeleton.Body, { className: "w-full" }),
|
|
4294
|
+
/* @__PURE__ */ jsx36(TextSkeleton.Body, { className: "w-2/3" })
|
|
4221
4295
|
] }) }),
|
|
4222
|
-
showFooter && /* @__PURE__ */
|
|
4223
|
-
/* @__PURE__ */
|
|
4224
|
-
/* @__PURE__ */
|
|
4225
|
-
/* @__PURE__ */
|
|
4226
|
-
/* @__PURE__ */
|
|
4296
|
+
showFooter && /* @__PURE__ */ jsxs31("div", { className: "flex items-center justify-between gap-2 w-full min-w-0", children: [
|
|
4297
|
+
/* @__PURE__ */ jsxs31("div", { className: "flex items-center gap-3 md:gap-4 min-w-0 flex-shrink", children: [
|
|
4298
|
+
/* @__PURE__ */ jsxs31("div", { className: "flex items-center gap-1 flex-shrink-0", children: [
|
|
4299
|
+
/* @__PURE__ */ jsx36(MediaSkeleton.Icon, { size: "sm", className: "w-5 h-5" }),
|
|
4300
|
+
/* @__PURE__ */ jsx36(TextSkeleton.Caption, { className: "w-8" })
|
|
4227
4301
|
] }),
|
|
4228
|
-
/* @__PURE__ */
|
|
4229
|
-
/* @__PURE__ */
|
|
4230
|
-
/* @__PURE__ */
|
|
4302
|
+
/* @__PURE__ */ jsxs31("div", { className: "flex items-center gap-1 flex-shrink-0", children: [
|
|
4303
|
+
/* @__PURE__ */ jsx36(MediaSkeleton.Icon, { size: "sm", className: "w-5 h-5" }),
|
|
4304
|
+
/* @__PURE__ */ jsx36(TextSkeleton.Caption, { className: "w-10" })
|
|
4231
4305
|
] })
|
|
4232
4306
|
] }),
|
|
4233
|
-
/* @__PURE__ */
|
|
4234
|
-
/* @__PURE__ */
|
|
4235
|
-
/* @__PURE__ */
|
|
4307
|
+
/* @__PURE__ */ jsx36("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: [
|
|
4308
|
+
/* @__PURE__ */ jsx36("div", { className: "w-4 h-4 bg-ods-border rounded-sm flex items-center justify-center flex-shrink-0", children: /* @__PURE__ */ jsx36(MediaSkeleton.Icon, { size: "sm", className: "w-2.5 h-2.5" }) }),
|
|
4309
|
+
/* @__PURE__ */ jsx36(TextSkeleton.Caption, { className: "w-16" })
|
|
4236
4310
|
] }) })
|
|
4237
4311
|
] })
|
|
4238
4312
|
] })
|
|
@@ -4246,7 +4320,7 @@ function OrganizationCardSkeletonGrid({
|
|
|
4246
4320
|
showFooter = true,
|
|
4247
4321
|
showDescription = true
|
|
4248
4322
|
}) {
|
|
4249
|
-
return /* @__PURE__ */
|
|
4323
|
+
return /* @__PURE__ */ jsx36(
|
|
4250
4324
|
"div",
|
|
4251
4325
|
{
|
|
4252
4326
|
className: cn(
|
|
@@ -4255,7 +4329,7 @@ function OrganizationCardSkeletonGrid({
|
|
|
4255
4329
|
),
|
|
4256
4330
|
role: "status",
|
|
4257
4331
|
"aria-label": `Loading ${count} organization cards`,
|
|
4258
|
-
children: Array.from({ length: count }, (_, index) => /* @__PURE__ */
|
|
4332
|
+
children: Array.from({ length: count }, (_, index) => /* @__PURE__ */ jsx36(
|
|
4259
4333
|
OrganizationCardSkeleton,
|
|
4260
4334
|
{
|
|
4261
4335
|
containerClassName,
|
|
@@ -4270,9 +4344,9 @@ function OrganizationCardSkeletonGrid({
|
|
|
4270
4344
|
|
|
4271
4345
|
// src/components/loading/device-card-skeleton.tsx
|
|
4272
4346
|
init_cn();
|
|
4273
|
-
import { jsx as
|
|
4347
|
+
import { jsx as jsx37, jsxs as jsxs32 } from "react/jsx-runtime";
|
|
4274
4348
|
function DeviceCardSkeleton({ className }) {
|
|
4275
|
-
return /* @__PURE__ */
|
|
4349
|
+
return /* @__PURE__ */ jsxs32(
|
|
4276
4350
|
"div",
|
|
4277
4351
|
{
|
|
4278
4352
|
className: cn(
|
|
@@ -4282,19 +4356,19 @@ function DeviceCardSkeleton({ className }) {
|
|
|
4282
4356
|
role: "status",
|
|
4283
4357
|
"aria-label": "Loading device card",
|
|
4284
4358
|
children: [
|
|
4285
|
-
/* @__PURE__ */
|
|
4286
|
-
/* @__PURE__ */
|
|
4287
|
-
/* @__PURE__ */
|
|
4288
|
-
/* @__PURE__ */
|
|
4359
|
+
/* @__PURE__ */ jsxs32("div", { className: "flex gap-4 items-center px-4 py-3", children: [
|
|
4360
|
+
/* @__PURE__ */ jsx37("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__ */ jsx37("div", { className: "w-4 h-4 bg-ods-border rounded animate-pulse" }) }),
|
|
4361
|
+
/* @__PURE__ */ jsx37("div", { className: "flex-1 min-w-0", children: /* @__PURE__ */ jsx37("div", { className: "h-6 w-3/4 bg-ods-border rounded animate-pulse" }) }),
|
|
4362
|
+
/* @__PURE__ */ jsx37("div", { className: "w-12 h-12 bg-ods-border rounded-[6px] flex-shrink-0 animate-pulse" })
|
|
4289
4363
|
] }),
|
|
4290
|
-
/* @__PURE__ */
|
|
4291
|
-
/* @__PURE__ */
|
|
4292
|
-
/* @__PURE__ */
|
|
4293
|
-
/* @__PURE__ */
|
|
4364
|
+
/* @__PURE__ */ jsxs32("div", { className: "flex gap-4 items-center px-4 py-2", children: [
|
|
4365
|
+
/* @__PURE__ */ jsx37("div", { className: "w-24 h-6 bg-ods-border rounded flex-shrink-0 animate-pulse" }),
|
|
4366
|
+
/* @__PURE__ */ jsx37(OrganizationIconSkeleton, { size: "sm" }),
|
|
4367
|
+
/* @__PURE__ */ jsx37("div", { className: "flex-1 min-w-0", children: /* @__PURE__ */ jsx37("div", { className: "h-5 w-1/2 bg-ods-border rounded animate-pulse" }) })
|
|
4294
4368
|
] }),
|
|
4295
|
-
/* @__PURE__ */
|
|
4296
|
-
/* @__PURE__ */
|
|
4297
|
-
/* @__PURE__ */
|
|
4369
|
+
/* @__PURE__ */ jsxs32("div", { className: "flex gap-4 items-center px-4 py-2", children: [
|
|
4370
|
+
/* @__PURE__ */ jsx37("div", { className: "w-20 h-6 bg-ods-border rounded-full flex-shrink-0 animate-pulse" }),
|
|
4371
|
+
/* @__PURE__ */ jsx37("div", { className: "flex-1", children: /* @__PURE__ */ jsx37("div", { className: "h-5 w-40 bg-ods-border rounded animate-pulse" }) })
|
|
4298
4372
|
] })
|
|
4299
4373
|
]
|
|
4300
4374
|
}
|
|
@@ -4304,7 +4378,7 @@ function DeviceCardSkeletonGrid({
|
|
|
4304
4378
|
count = 12,
|
|
4305
4379
|
className
|
|
4306
4380
|
}) {
|
|
4307
|
-
return /* @__PURE__ */
|
|
4381
|
+
return /* @__PURE__ */ jsx37(
|
|
4308
4382
|
"div",
|
|
4309
4383
|
{
|
|
4310
4384
|
className: cn(
|
|
@@ -4313,22 +4387,22 @@ function DeviceCardSkeletonGrid({
|
|
|
4313
4387
|
),
|
|
4314
4388
|
role: "status",
|
|
4315
4389
|
"aria-label": `Loading ${count} device cards`,
|
|
4316
|
-
children: Array.from({ length: count }, (_, index) => /* @__PURE__ */
|
|
4390
|
+
children: Array.from({ length: count }, (_, index) => /* @__PURE__ */ jsx37(DeviceCardSkeleton, {}, index))
|
|
4317
4391
|
}
|
|
4318
4392
|
);
|
|
4319
4393
|
}
|
|
4320
4394
|
|
|
4321
4395
|
// src/components/vendor-page-skeleton.tsx
|
|
4322
|
-
import { jsx as
|
|
4396
|
+
import { jsx as jsx38 } from "react/jsx-runtime";
|
|
4323
4397
|
function VendorPageSkeleton() {
|
|
4324
|
-
return /* @__PURE__ */
|
|
4398
|
+
return /* @__PURE__ */ jsx38(VendorDetailLayoutSkeleton, {});
|
|
4325
4399
|
}
|
|
4326
4400
|
|
|
4327
4401
|
// src/components/why-it-matters.tsx
|
|
4328
|
-
import { jsx as
|
|
4402
|
+
import { jsx as jsx39, jsxs as jsxs33 } from "react/jsx-runtime";
|
|
4329
4403
|
|
|
4330
4404
|
// src/components/yes-no-display.tsx
|
|
4331
|
-
import { jsx as
|
|
4405
|
+
import { jsx as jsx40, jsxs as jsxs34 } from "react/jsx-runtime";
|
|
4332
4406
|
function YesNoDisplay({
|
|
4333
4407
|
value,
|
|
4334
4408
|
yesText = "Yes",
|
|
@@ -4337,20 +4411,20 @@ function YesNoDisplay({
|
|
|
4337
4411
|
className = ""
|
|
4338
4412
|
}) {
|
|
4339
4413
|
if (customText) {
|
|
4340
|
-
return /* @__PURE__ */
|
|
4341
|
-
/* @__PURE__ */
|
|
4342
|
-
/* @__PURE__ */
|
|
4414
|
+
return /* @__PURE__ */ jsxs34("div", { className: `flex items-center gap-2 ${className}`, children: [
|
|
4415
|
+
/* @__PURE__ */ jsx40(CheckCircleIcon2, { className: "h-6 w-6" }),
|
|
4416
|
+
/* @__PURE__ */ jsx40("span", { className: "text-ods-text-primary text-h6", children: customText })
|
|
4343
4417
|
] });
|
|
4344
4418
|
}
|
|
4345
4419
|
if (value) {
|
|
4346
|
-
return /* @__PURE__ */
|
|
4347
|
-
/* @__PURE__ */
|
|
4348
|
-
/* @__PURE__ */
|
|
4420
|
+
return /* @__PURE__ */ jsxs34("div", { className: `flex items-center gap-2 ${className}`, children: [
|
|
4421
|
+
/* @__PURE__ */ jsx40(CheckCircleIcon2, { className: "h-6 w-6" }),
|
|
4422
|
+
/* @__PURE__ */ jsx40("span", { className: "text-ods-text-primary text-h6", children: yesText })
|
|
4349
4423
|
] });
|
|
4350
4424
|
}
|
|
4351
|
-
return /* @__PURE__ */
|
|
4352
|
-
/* @__PURE__ */
|
|
4353
|
-
/* @__PURE__ */
|
|
4425
|
+
return /* @__PURE__ */ jsxs34("div", { className: `flex items-center gap-2 ${className}`, children: [
|
|
4426
|
+
/* @__PURE__ */ jsx40(XCircleIcon, { className: "h-6 w-6" }),
|
|
4427
|
+
/* @__PURE__ */ jsx40("span", { className: "text-ods-text-secondary text-h6", children: noText })
|
|
4354
4428
|
] });
|
|
4355
4429
|
}
|
|
4356
4430
|
function evaluateFeatureValue(value, dataType) {
|
|
@@ -4384,15 +4458,15 @@ function evaluateFeatureValue(value, dataType) {
|
|
|
4384
4458
|
}
|
|
4385
4459
|
|
|
4386
4460
|
// src/components/made-with-love.tsx
|
|
4387
|
-
import { useState as
|
|
4388
|
-
import { jsx as
|
|
4461
|
+
import { useState as useState6, useEffect as useEffect4 } from "react";
|
|
4462
|
+
import { jsx as jsx41, jsxs as jsxs35 } from "react/jsx-runtime";
|
|
4389
4463
|
function MadeWithLove({
|
|
4390
4464
|
className = "",
|
|
4391
4465
|
size = "md",
|
|
4392
4466
|
showOnMobile = true
|
|
4393
4467
|
}) {
|
|
4394
|
-
const [isMobile, setIsMobile] =
|
|
4395
|
-
const [isHovered, setIsHovered] =
|
|
4468
|
+
const [isMobile, setIsMobile] = useState6(false);
|
|
4469
|
+
const [isHovered, setIsHovered] = useState6(false);
|
|
4396
4470
|
useEffect4(() => {
|
|
4397
4471
|
const checkMobile = () => {
|
|
4398
4472
|
setIsMobile(window.innerWidth < 640);
|
|
@@ -4459,14 +4533,14 @@ function MadeWithLove({
|
|
|
4459
4533
|
marginLeft: "4px",
|
|
4460
4534
|
textDecoration: "none"
|
|
4461
4535
|
};
|
|
4462
|
-
return /* @__PURE__ */
|
|
4536
|
+
return /* @__PURE__ */ jsxs35(
|
|
4463
4537
|
"div",
|
|
4464
4538
|
{
|
|
4465
4539
|
style: containerStyle,
|
|
4466
4540
|
className,
|
|
4467
4541
|
children: [
|
|
4468
4542
|
"Made with love by",
|
|
4469
|
-
/* @__PURE__ */
|
|
4543
|
+
/* @__PURE__ */ jsxs35(
|
|
4470
4544
|
"a",
|
|
4471
4545
|
{
|
|
4472
4546
|
href: flamingoUrl,
|
|
@@ -4476,14 +4550,14 @@ function MadeWithLove({
|
|
|
4476
4550
|
onMouseEnter: () => setIsHovered(true),
|
|
4477
4551
|
onMouseLeave: () => setIsHovered(false),
|
|
4478
4552
|
children: [
|
|
4479
|
-
/* @__PURE__ */
|
|
4553
|
+
/* @__PURE__ */ jsx41("div", { style: logoStyle, children: /* @__PURE__ */ jsx41(
|
|
4480
4554
|
FlamingoLogo2,
|
|
4481
4555
|
{
|
|
4482
4556
|
size: config.logoSize,
|
|
4483
4557
|
color: "#f357bb"
|
|
4484
4558
|
}
|
|
4485
4559
|
) }),
|
|
4486
|
-
/* @__PURE__ */
|
|
4560
|
+
/* @__PURE__ */ jsx41("span", { style: textStyle, children: "Flamingo" })
|
|
4487
4561
|
]
|
|
4488
4562
|
}
|
|
4489
4563
|
)
|
|
@@ -4495,7 +4569,7 @@ function MadeWithLove({
|
|
|
4495
4569
|
// src/components/date-time-picker.tsx
|
|
4496
4570
|
init_cn();
|
|
4497
4571
|
import DatePicker2 from "react-datepicker";
|
|
4498
|
-
import { jsx as
|
|
4572
|
+
import { jsx as jsx42, jsxs as jsxs36 } from "react/jsx-runtime";
|
|
4499
4573
|
var inputClassName = cn(
|
|
4500
4574
|
"flex h-10 w-full rounded-md border px-3 py-2 text-sm ring-offset-background",
|
|
4501
4575
|
"file:border-0 file:bg-transparent file:text-sm file:font-medium",
|
|
@@ -4519,9 +4593,9 @@ function DateTimePicker({
|
|
|
4519
4593
|
timeIntervals = 15,
|
|
4520
4594
|
dateFormat = "MMMM d, yyyy h:mm aa"
|
|
4521
4595
|
}) {
|
|
4522
|
-
return /* @__PURE__ */
|
|
4523
|
-
label && /* @__PURE__ */
|
|
4524
|
-
/* @__PURE__ */
|
|
4596
|
+
return /* @__PURE__ */ jsxs36("div", { className: cn("space-y-2", className), children: [
|
|
4597
|
+
label && /* @__PURE__ */ jsx42(Label, { className: "text-h5 font-semibold text-ods-text-secondary", children: label }),
|
|
4598
|
+
/* @__PURE__ */ jsx42("div", { className: "w-full", children: /* @__PURE__ */ jsx42(
|
|
4525
4599
|
DatePicker2,
|
|
4526
4600
|
{
|
|
4527
4601
|
selected: value,
|
|
@@ -4536,7 +4610,7 @@ function DateTimePicker({
|
|
|
4536
4610
|
className: inputClassName
|
|
4537
4611
|
}
|
|
4538
4612
|
) }),
|
|
4539
|
-
/* @__PURE__ */
|
|
4613
|
+
/* @__PURE__ */ jsx42("style", { dangerouslySetInnerHTML: { __html: `
|
|
4540
4614
|
.react-datepicker-wrapper {
|
|
4541
4615
|
width: 100% !important;
|
|
4542
4616
|
display: block !important;
|
|
@@ -4641,7 +4715,7 @@ function DateTimePicker({
|
|
|
4641
4715
|
|
|
4642
4716
|
// src/components/authors/author-detail-view.tsx
|
|
4643
4717
|
init_cn();
|
|
4644
|
-
import { jsx as
|
|
4718
|
+
import { jsx as jsx43, jsxs as jsxs37 } from "react/jsx-runtime";
|
|
4645
4719
|
function AuthorDetailView({
|
|
4646
4720
|
author,
|
|
4647
4721
|
proxyImageUrl,
|
|
@@ -4656,9 +4730,9 @@ function AuthorDetailView({
|
|
|
4656
4730
|
}) ?? author.avatarUrl : null;
|
|
4657
4731
|
const subtitle = [author.jobTitle, author.company].filter(Boolean).join(" @ ");
|
|
4658
4732
|
const bioText = formatBioText(author.about);
|
|
4659
|
-
return /* @__PURE__ */
|
|
4660
|
-
/* @__PURE__ */
|
|
4661
|
-
/* @__PURE__ */
|
|
4733
|
+
return /* @__PURE__ */ jsxs37("div", { className: cn("flex flex-col gap-5 md:gap-6", className), children: [
|
|
4734
|
+
/* @__PURE__ */ jsxs37("div", { className: "flex gap-6 w-full items-start", children: [
|
|
4735
|
+
/* @__PURE__ */ jsx43("div", { className: "relative shrink-0 h-24 w-24", children: /* @__PURE__ */ jsx43("div", { className: "rounded-full overflow-hidden bg-ods-bg-surface border border-ods-border w-full h-full relative", children: proxiedAvatar ? /* @__PURE__ */ jsx43(
|
|
4662
4736
|
next_image_default,
|
|
4663
4737
|
{
|
|
4664
4738
|
src: proxiedAvatar,
|
|
@@ -4667,12 +4741,12 @@ function AuthorDetailView({
|
|
|
4667
4741
|
className: "object-cover",
|
|
4668
4742
|
unoptimized: true
|
|
4669
4743
|
}
|
|
4670
|
-
) : /* @__PURE__ */
|
|
4671
|
-
/* @__PURE__ */
|
|
4672
|
-
/* @__PURE__ */
|
|
4673
|
-
subtitle && /* @__PURE__ */
|
|
4744
|
+
) : /* @__PURE__ */ jsx43("div", { className: "flex items-center justify-center h-full w-full text-3xl text-ods-text-secondary font-heading", children: author.fullName.charAt(0).toUpperCase() }) }) }),
|
|
4745
|
+
/* @__PURE__ */ jsxs37("div", { className: "min-w-0 flex flex-col justify-center gap-2", children: [
|
|
4746
|
+
/* @__PURE__ */ jsx43("p", { className: "text-h2 text-ods-text-primary leading-none truncate", children: author.fullName }),
|
|
4747
|
+
subtitle && /* @__PURE__ */ jsx43("p", { className: "font-body text-lg text-ods-text-secondary leading-none truncate", children: subtitle }),
|
|
4674
4748
|
author.socialLinks.length > 0 && // Ghost compact row (transparent 32px) — metadata, not CTAs.
|
|
4675
|
-
/* @__PURE__ */
|
|
4749
|
+
/* @__PURE__ */ jsx43(
|
|
4676
4750
|
SocialIconRow,
|
|
4677
4751
|
{
|
|
4678
4752
|
compact: true,
|
|
@@ -4685,8 +4759,8 @@ function AuthorDetailView({
|
|
|
4685
4759
|
)
|
|
4686
4760
|
] })
|
|
4687
4761
|
] }),
|
|
4688
|
-
bioText && /* @__PURE__ */
|
|
4689
|
-
author.knowsAbout.length > 0 && /* @__PURE__ */
|
|
4762
|
+
bioText && /* @__PURE__ */ jsx43("p", { className: "text-h6 text-ods-text-secondary", children: bioText }),
|
|
4763
|
+
author.knowsAbout.length > 0 && /* @__PURE__ */ jsx43("div", { className: "flex flex-wrap gap-2", children: author.knowsAbout.map((topic) => /* @__PURE__ */ jsx43(StatusBadge, { text: topic, variant: "button", colorScheme: "cyan", singleLine: true }, topic)) }),
|
|
4690
4764
|
children
|
|
4691
4765
|
] });
|
|
4692
4766
|
}
|
|
@@ -4824,6 +4898,7 @@ export {
|
|
|
4824
4898
|
COMPACT_CARD_TEXT_COL,
|
|
4825
4899
|
COMPACT_CARD_TITLE,
|
|
4826
4900
|
COMPACT_CARD_TITLE_ROW,
|
|
4901
|
+
COMPACT_ROW_MIN_HEIGHT_PX,
|
|
4827
4902
|
CONNECTION_STATUS,
|
|
4828
4903
|
CONTEXT_BACK_CLASS,
|
|
4829
4904
|
CONTEXT_ICON_CLASS,
|
|
@@ -4894,6 +4969,7 @@ export {
|
|
|
4894
4969
|
CheckboxWithDescription,
|
|
4895
4970
|
ChevronButton,
|
|
4896
4971
|
CircularProgress,
|
|
4972
|
+
ClaudeEmbed,
|
|
4897
4973
|
ClaudeIcon,
|
|
4898
4974
|
ClickUpIcon,
|
|
4899
4975
|
ClickUpTasksManager,
|
|
@@ -4907,6 +4983,7 @@ export {
|
|
|
4907
4983
|
CommandBlock,
|
|
4908
4984
|
CommandBox,
|
|
4909
4985
|
CommentCard,
|
|
4986
|
+
CommentComposer,
|
|
4910
4987
|
CommentSkeleton,
|
|
4911
4988
|
CommunityHubIcon,
|
|
4912
4989
|
CommunityIcon,
|