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