@flamingo-stack/openframe-frontend-core 0.0.581 → 0.0.582-1958.5391.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunk-2EIGO6ZS.js +1055 -0
- package/dist/chunk-2EIGO6ZS.js.map +1 -0
- package/dist/{chunk-HVSZYUGP.js → chunk-53ZVUW2M.js} +5 -5
- package/dist/{chunk-R5JVRFSW.js → chunk-5U2FU5LM.js} +3 -3
- package/dist/{chunk-AIALG25H.cjs → chunk-7WE6FGGK.cjs} +69 -69
- package/dist/{chunk-AIALG25H.cjs.map → chunk-7WE6FGGK.cjs.map} +1 -1
- package/dist/{chunk-EZVABFEO.js → chunk-CJW6KZD3.js} +2 -2
- package/dist/{chunk-GMQEHDN2.cjs → chunk-E4TK2BBD.cjs} +5 -5
- package/dist/{chunk-GMQEHDN2.cjs.map → chunk-E4TK2BBD.cjs.map} +1 -1
- package/dist/{chunk-KAEVE7W2.js → chunk-EULY3BXB.js} +2 -2
- package/dist/{chunk-HJVKPG55.js → chunk-F227VMPL.js} +125 -15
- package/dist/{chunk-HJVKPG55.js.map → chunk-F227VMPL.js.map} +1 -1
- package/dist/{chunk-GVM37TRU.js → chunk-GAL6EXUY.js} +4 -4
- package/dist/{chunk-ZEZMGXYV.js → chunk-H7K76TPX.js} +5 -5
- package/dist/{chunk-U3W2ZVN4.cjs → chunk-HMEEW73F.cjs} +2058 -300
- package/dist/chunk-HMEEW73F.cjs.map +1 -0
- package/dist/{chunk-LWDIDSCF.js → chunk-IB23CRL2.js} +3 -3
- package/dist/{chunk-6U45VX5J.cjs → chunk-IVJ6TBVW.cjs} +43 -43
- package/dist/{chunk-6U45VX5J.cjs.map → chunk-IVJ6TBVW.cjs.map} +1 -1
- package/dist/{chunk-JW53WPB5.js → chunk-IZGXIZWF.js} +3 -3
- package/dist/chunk-JMWLF2GL.cjs +1055 -0
- package/dist/chunk-JMWLF2GL.cjs.map +1 -0
- package/dist/{chunk-OKA3DJJ3.js → chunk-JUXCEHK2.js} +2 -2
- package/dist/{chunk-GUC4JK6O.cjs → chunk-KS7NKONC.cjs} +9 -9
- package/dist/{chunk-GUC4JK6O.cjs.map → chunk-KS7NKONC.cjs.map} +1 -1
- package/dist/{chunk-WHFEG6UU.cjs → chunk-LHQ6RVFE.cjs} +22 -22
- package/dist/{chunk-WHFEG6UU.cjs.map → chunk-LHQ6RVFE.cjs.map} +1 -1
- package/dist/{chunk-YU2UJPAT.cjs → chunk-LOJ5KQ6B.cjs} +466 -356
- package/dist/chunk-LOJ5KQ6B.cjs.map +1 -0
- package/dist/{chunk-BTKMTVN5.cjs → chunk-M3ERSHPM.cjs} +4 -4
- package/dist/{chunk-BTKMTVN5.cjs.map → chunk-M3ERSHPM.cjs.map} +1 -1
- package/dist/{chunk-KNBXZ22O.cjs → chunk-RBMVTCRM.cjs} +3 -3
- package/dist/{chunk-KNBXZ22O.cjs.map → chunk-RBMVTCRM.cjs.map} +1 -1
- package/dist/{chunk-PBRXT7TD.cjs → chunk-RILGQ2OY.cjs} +10 -10
- package/dist/{chunk-PBRXT7TD.cjs.map → chunk-RILGQ2OY.cjs.map} +1 -1
- package/dist/{chunk-DSPQVZFE.cjs → chunk-RQMS2CF5.cjs} +24 -24
- package/dist/{chunk-DSPQVZFE.cjs.map → chunk-RQMS2CF5.cjs.map} +1 -1
- package/dist/{chunk-W2TXSZTM.cjs → chunk-S2ZXUQLR.cjs} +21 -21
- package/dist/{chunk-W2TXSZTM.cjs.map → chunk-S2ZXUQLR.cjs.map} +1 -1
- package/dist/{chunk-7CP5KY5W.js → chunk-SM6JAZ4C.js} +3 -3
- package/dist/{chunk-3GXNCJZI.js → chunk-T4DIAKIK.js} +3 -3
- package/dist/{chunk-UKHM2S6I.cjs → chunk-TMNFC24G.cjs} +15 -15
- package/dist/{chunk-UKHM2S6I.cjs.map → chunk-TMNFC24G.cjs.map} +1 -1
- package/dist/{chunk-ESWXXWCL.js → chunk-U6GFESVF.js} +2 -2
- package/dist/{chunk-VXUUSLD5.js → chunk-XA5UPYWE.js} +2669 -911
- package/dist/chunk-XA5UPYWE.js.map +1 -0
- package/dist/{chunk-SEZ25E22.cjs → chunk-XNSEZVV4.cjs} +10 -10
- package/dist/{chunk-SEZ25E22.cjs.map → chunk-XNSEZVV4.cjs.map} +1 -1
- package/dist/{chunk-VDRCKHML.cjs → chunk-YU4QZ6I6.cjs} +3 -3
- package/dist/{chunk-VDRCKHML.cjs.map → chunk-YU4QZ6I6.cjs.map} +1 -1
- package/dist/{chunk-GAHKWML7.js → chunk-ZSENCE55.js} +6 -6
- package/dist/components/case-studies/index.cjs +9 -9
- package/dist/components/case-studies/index.js +3 -3
- package/dist/components/chat/index.cjs +2 -2
- package/dist/components/chat/index.js +1 -1
- package/dist/components/contact/index.cjs +4 -4
- package/dist/components/contact/index.js +3 -3
- package/dist/components/docs/index.cjs +7 -7
- package/dist/components/docs/index.js +6 -6
- package/dist/components/embeds/index.cjs +4 -4
- package/dist/components/embeds/index.js +3 -3
- package/dist/components/faq/index.cjs +4 -4
- package/dist/components/faq/index.js +3 -3
- package/dist/components/features/index.cjs +5 -3
- package/dist/components/features/index.cjs.map +1 -1
- package/dist/components/features/index.js +4 -2
- package/dist/components/features/push-button-selector.d.ts +29 -1
- package/dist/components/features/push-button-selector.d.ts.map +1 -1
- package/dist/components/features/video.d.ts +12 -0
- package/dist/components/features/video.d.ts.map +1 -1
- package/dist/components/help-center-pages/index.cjs +23 -23
- package/dist/components/help-center-pages/index.js +14 -14
- package/dist/components/index.cjs +70 -899
- package/dist/components/index.cjs.map +1 -1
- package/dist/components/index.js +247 -1076
- package/dist/components/index.js.map +1 -1
- package/dist/components/meeting-scheduler/index.cjs +21 -21
- package/dist/components/meeting-scheduler/index.js +2 -2
- package/dist/components/navigation/index.cjs +6 -6
- package/dist/components/navigation/index.js +5 -5
- package/dist/components/onboarding-guides/index.cjs +6 -6
- package/dist/components/onboarding-guides/index.js +5 -5
- package/dist/components/tickets/index.cjs +7 -7
- package/dist/components/tickets/index.js +6 -6
- package/dist/components/ui/index.cjs +3 -3
- package/dist/components/ui/index.js +2 -2
- package/dist/index.cjs +9 -7
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +8 -6
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/components/features/.push-button-selector.md +1 -1
- package/src/components/features/__tests__/video-playback-failure.test.tsx +250 -0
- package/src/components/features/push-button-selector.tsx +142 -17
- package/src/components/features/video.tsx +198 -16
- package/dist/chunk-IHFQ5VVR.js +0 -1867
- package/dist/chunk-IHFQ5VVR.js.map +0 -1
- package/dist/chunk-M4KQWGEL.cjs +0 -1867
- package/dist/chunk-M4KQWGEL.cjs.map +0 -1
- package/dist/chunk-U3W2ZVN4.cjs.map +0 -1
- package/dist/chunk-VXUUSLD5.js.map +0 -1
- package/dist/chunk-YU2UJPAT.cjs.map +0 -1
- /package/dist/{chunk-HVSZYUGP.js.map → chunk-53ZVUW2M.js.map} +0 -0
- /package/dist/{chunk-R5JVRFSW.js.map → chunk-5U2FU5LM.js.map} +0 -0
- /package/dist/{chunk-EZVABFEO.js.map → chunk-CJW6KZD3.js.map} +0 -0
- /package/dist/{chunk-KAEVE7W2.js.map → chunk-EULY3BXB.js.map} +0 -0
- /package/dist/{chunk-GVM37TRU.js.map → chunk-GAL6EXUY.js.map} +0 -0
- /package/dist/{chunk-ZEZMGXYV.js.map → chunk-H7K76TPX.js.map} +0 -0
- /package/dist/{chunk-LWDIDSCF.js.map → chunk-IB23CRL2.js.map} +0 -0
- /package/dist/{chunk-JW53WPB5.js.map → chunk-IZGXIZWF.js.map} +0 -0
- /package/dist/{chunk-OKA3DJJ3.js.map → chunk-JUXCEHK2.js.map} +0 -0
- /package/dist/{chunk-7CP5KY5W.js.map → chunk-SM6JAZ4C.js.map} +0 -0
- /package/dist/{chunk-3GXNCJZI.js.map → chunk-T4DIAKIK.js.map} +0 -0
- /package/dist/{chunk-ESWXXWCL.js.map → chunk-U6GFESVF.js.map} +0 -0
- /package/dist/{chunk-GAHKWML7.js.map → chunk-ZSENCE55.js.map} +0 -0
package/dist/components/index.js
CHANGED
|
@@ -15,7 +15,7 @@ import {
|
|
|
15
15
|
SoftwareInfo,
|
|
16
16
|
SoftwareSourceBadge,
|
|
17
17
|
ToolBadge
|
|
18
|
-
} from "../chunk-
|
|
18
|
+
} from "../chunk-T4DIAKIK.js";
|
|
19
19
|
import {
|
|
20
20
|
AppHeader,
|
|
21
21
|
AppLayout,
|
|
@@ -34,7 +34,7 @@ import {
|
|
|
34
34
|
SlidingSidebar,
|
|
35
35
|
TicketAlertsButton,
|
|
36
36
|
TopNavigation
|
|
37
|
-
} from "../chunk-
|
|
37
|
+
} from "../chunk-GAL6EXUY.js";
|
|
38
38
|
import {
|
|
39
39
|
DeliveryLists,
|
|
40
40
|
DeliveryTable,
|
|
@@ -48,45 +48,26 @@ import {
|
|
|
48
48
|
RoadmapView,
|
|
49
49
|
useLegalDocs,
|
|
50
50
|
useRoadmapVoting
|
|
51
|
-
} from "../chunk-
|
|
51
|
+
} from "../chunk-53ZVUW2M.js";
|
|
52
52
|
import {
|
|
53
|
-
AnnouncementBarSkeleton,
|
|
54
|
-
ArticleLayoutSkeleton,
|
|
55
|
-
BlogCardGridSkeleton,
|
|
56
|
-
BreadcrumbSkeleton,
|
|
57
|
-
CardSkeleton,
|
|
58
|
-
CardSkeletonGrid,
|
|
59
|
-
CategorySidebarSkeleton,
|
|
60
53
|
DocNavigationProvider,
|
|
61
54
|
DocViewer,
|
|
62
55
|
DocsHubPage,
|
|
63
56
|
EmbedSkeleton,
|
|
64
|
-
HeroSkeleton,
|
|
65
|
-
InteractiveSkeleton,
|
|
66
57
|
MarkdownSkeleton,
|
|
67
|
-
MediaSkeleton,
|
|
68
58
|
PersistentFilterControls,
|
|
69
59
|
PersistentMobileDropdown,
|
|
70
60
|
PersistentSearchContainer,
|
|
71
61
|
PersistentSidebar,
|
|
72
|
-
ResultsHeaderSkeleton,
|
|
73
|
-
SearchContainerSkeleton,
|
|
74
|
-
SlackCommunitySkeleton,
|
|
75
|
-
StatsSectionSkeleton,
|
|
76
|
-
TextSkeleton,
|
|
77
|
-
TwoColumnLayoutSkeleton,
|
|
78
|
-
UnifiedSkeleton,
|
|
79
|
-
VendorDetailLayoutSkeleton,
|
|
80
|
-
VendorGridSkeleton,
|
|
81
62
|
useDocNavigation,
|
|
82
63
|
useDocumentTree,
|
|
83
64
|
useScrollSpy
|
|
84
|
-
} from "../chunk-
|
|
65
|
+
} from "../chunk-2EIGO6ZS.js";
|
|
85
66
|
import {
|
|
86
67
|
FileDownloadCard,
|
|
87
68
|
GoogleSheetsViewer,
|
|
88
69
|
PdfViewer
|
|
89
|
-
} from "../chunk-
|
|
70
|
+
} from "../chunk-CJW6KZD3.js";
|
|
90
71
|
import {
|
|
91
72
|
PersistentPagination,
|
|
92
73
|
PersistentPaginationWrapper,
|
|
@@ -96,13 +77,13 @@ import {
|
|
|
96
77
|
FaqAccordion,
|
|
97
78
|
FaqDocumentPage,
|
|
98
79
|
FaqSection
|
|
99
|
-
} from "../chunk-
|
|
80
|
+
} from "../chunk-IZGXIZWF.js";
|
|
100
81
|
import {
|
|
101
82
|
MobileNavigationDropdown,
|
|
102
83
|
MultiLevelNavigation,
|
|
103
84
|
StickySectionNav,
|
|
104
85
|
useSectionNavigation
|
|
105
|
-
} from "../chunk-
|
|
86
|
+
} from "../chunk-EULY3BXB.js";
|
|
106
87
|
import {
|
|
107
88
|
DeliveryRow,
|
|
108
89
|
DevCardRowContent,
|
|
@@ -110,16 +91,16 @@ import {
|
|
|
110
91
|
DevCardRowSkeletonList,
|
|
111
92
|
DevSectionPage,
|
|
112
93
|
DevSectionView
|
|
113
|
-
} from "../chunk-
|
|
94
|
+
} from "../chunk-JUXCEHK2.js";
|
|
114
95
|
import {
|
|
115
96
|
EmptyState,
|
|
116
97
|
UnifiedPagination
|
|
117
98
|
} from "../chunk-Z2FZ5HP2.js";
|
|
118
|
-
import "../chunk-
|
|
99
|
+
import "../chunk-5U2FU5LM.js";
|
|
119
100
|
import {
|
|
120
101
|
ArticleAuthorByline,
|
|
121
102
|
DetailPageSkeleton
|
|
122
|
-
} from "../chunk-
|
|
103
|
+
} from "../chunk-U6GFESVF.js";
|
|
123
104
|
import {
|
|
124
105
|
DocSearchBar,
|
|
125
106
|
DocSearchResultRow,
|
|
@@ -127,7 +108,7 @@ import {
|
|
|
127
108
|
mapDocSearchResults,
|
|
128
109
|
resolveSearchResultAction,
|
|
129
110
|
useDocSearch
|
|
130
|
-
} from "../chunk-
|
|
111
|
+
} from "../chunk-IB23CRL2.js";
|
|
131
112
|
import {
|
|
132
113
|
useSelfFetch
|
|
133
114
|
} from "../chunk-UC5RXT3O.js";
|
|
@@ -160,6 +141,7 @@ import {
|
|
|
160
141
|
AlertDialogTrigger,
|
|
161
142
|
AlertTitle,
|
|
162
143
|
AllowedDomainsInput,
|
|
144
|
+
AnnouncementBarSkeleton,
|
|
163
145
|
AnnouncementBarView,
|
|
164
146
|
AppLayoutDrawerBody,
|
|
165
147
|
AppLayoutDrawerClose,
|
|
@@ -173,6 +155,7 @@ import {
|
|
|
173
155
|
ApprovalRequestNotificationTile,
|
|
174
156
|
ArrayEntryManager,
|
|
175
157
|
ArticleDetailLayout,
|
|
158
|
+
ArticleLayoutSkeleton,
|
|
176
159
|
AspectRatio,
|
|
177
160
|
AssigneeDropdown,
|
|
178
161
|
AuthBenefitsPanel,
|
|
@@ -184,6 +167,7 @@ import {
|
|
|
184
167
|
Badge,
|
|
185
168
|
BenefitCard,
|
|
186
169
|
BenefitCardGrid,
|
|
170
|
+
BlogCardGridSkeleton,
|
|
187
171
|
Board,
|
|
188
172
|
BoardColumn,
|
|
189
173
|
BoardColumnHeader,
|
|
@@ -197,10 +181,16 @@ import {
|
|
|
197
181
|
BreadcrumbList,
|
|
198
182
|
BreadcrumbPage,
|
|
199
183
|
BreadcrumbSeparator,
|
|
184
|
+
BreadcrumbSkeleton,
|
|
200
185
|
BulletList,
|
|
201
186
|
COMPACT_ROW_MIN_HEIGHT_PX,
|
|
202
187
|
CUSTOM_PRESET_KEY,
|
|
203
188
|
CardLoader,
|
|
189
|
+
CardSkeleton,
|
|
190
|
+
CardSkeletonGrid,
|
|
191
|
+
CategoryCardSkeleton,
|
|
192
|
+
CategorySidebarSkeleton,
|
|
193
|
+
CategoryVendorSelectorSkeleton,
|
|
204
194
|
ChangelogManager,
|
|
205
195
|
ChangelogSectionsManager,
|
|
206
196
|
CheckCircleIcon as CheckCircleIcon2,
|
|
@@ -214,10 +204,12 @@ import {
|
|
|
214
204
|
ColorPickerInput,
|
|
215
205
|
ColorPresetSelect,
|
|
216
206
|
CommandBox,
|
|
207
|
+
CommentSkeleton,
|
|
217
208
|
CompactPageLoader,
|
|
218
209
|
CompleteAccountForm,
|
|
219
210
|
ConfidenceBadge,
|
|
220
211
|
ContentLoader,
|
|
212
|
+
ContentLoadingContainer,
|
|
221
213
|
ContentPageContainer,
|
|
222
214
|
CreateOrganizationForm,
|
|
223
215
|
CrossfadePanels,
|
|
@@ -247,6 +239,8 @@ import {
|
|
|
247
239
|
DetailPageContainer,
|
|
248
240
|
DeviceCard,
|
|
249
241
|
DeviceCardCompact,
|
|
242
|
+
DeviceCardSkeleton,
|
|
243
|
+
DeviceCardSkeletonGrid,
|
|
250
244
|
Dialog,
|
|
251
245
|
DialogClose,
|
|
252
246
|
DialogContent,
|
|
@@ -259,6 +253,7 @@ import {
|
|
|
259
253
|
DialogTrigger,
|
|
260
254
|
DropdownButton,
|
|
261
255
|
DurationInput,
|
|
256
|
+
DynamicSkeleton,
|
|
262
257
|
DynamicThemeProvider,
|
|
263
258
|
EMBED_SIZES,
|
|
264
259
|
EmbedContainer,
|
|
@@ -272,6 +267,7 @@ import {
|
|
|
272
267
|
FadePreview,
|
|
273
268
|
FeatureCardGrid,
|
|
274
269
|
FeatureList,
|
|
270
|
+
FeatureListSkeleton,
|
|
275
271
|
Field,
|
|
276
272
|
FigmaEmbed,
|
|
277
273
|
FigmaPrototypeViewer,
|
|
@@ -285,8 +281,10 @@ import {
|
|
|
285
281
|
FloatingWalkthroughVideo,
|
|
286
282
|
FormLoader,
|
|
287
283
|
FormPageContainer,
|
|
284
|
+
FormSkeleton,
|
|
288
285
|
GitHubReleasesManager,
|
|
289
286
|
HeaderButton,
|
|
287
|
+
HeroSkeleton,
|
|
290
288
|
HiddenTagsPopup,
|
|
291
289
|
HighlightCard,
|
|
292
290
|
HighlightCardGrid,
|
|
@@ -305,6 +303,7 @@ import {
|
|
|
305
303
|
InfoSection,
|
|
306
304
|
InlineWalkthroughVideo,
|
|
307
305
|
InputTrigger,
|
|
306
|
+
InteractiveSkeleton,
|
|
308
307
|
InviteLinkInvalidModal,
|
|
309
308
|
JsonDetailList,
|
|
310
309
|
KnowledgeBaseLinksManager,
|
|
@@ -314,13 +313,16 @@ import {
|
|
|
314
313
|
ListLoader,
|
|
315
314
|
ListPageContainer,
|
|
316
315
|
ListPageLayout,
|
|
316
|
+
ListSkeleton,
|
|
317
317
|
LoadError,
|
|
318
318
|
LoadingProvider,
|
|
319
319
|
LoginForm,
|
|
320
|
+
MarginReportSkeleton,
|
|
320
321
|
MarkdownEditor,
|
|
321
322
|
MarkdownImage,
|
|
322
323
|
MediaCarousel,
|
|
323
324
|
MediaGalleryManager,
|
|
325
|
+
MediaSkeleton,
|
|
324
326
|
MediaTypeSelector,
|
|
325
327
|
Menubar,
|
|
326
328
|
MenubarCheckboxItem,
|
|
@@ -341,6 +343,7 @@ import {
|
|
|
341
343
|
MinusIcon,
|
|
342
344
|
MoreAboutButton,
|
|
343
345
|
MoreActionsMenu,
|
|
346
|
+
MspProfileFormSkeleton,
|
|
344
347
|
NavigationMenu,
|
|
345
348
|
NavigationMenuContent,
|
|
346
349
|
NavigationMenuIndicator,
|
|
@@ -349,6 +352,7 @@ import {
|
|
|
349
352
|
NavigationMenuList,
|
|
350
353
|
NavigationMenuTrigger,
|
|
351
354
|
NavigationMenuViewport,
|
|
355
|
+
NavigationSkeleton,
|
|
352
356
|
NoData,
|
|
353
357
|
NoDataAction,
|
|
354
358
|
NoDataActions,
|
|
@@ -370,6 +374,9 @@ import {
|
|
|
370
374
|
OpenFrameSsoSignUpForm,
|
|
371
375
|
OpenFrameWordmark,
|
|
372
376
|
OrganizationCard,
|
|
377
|
+
OrganizationCardSkeleton,
|
|
378
|
+
OrganizationCardSkeletonGrid,
|
|
379
|
+
OrganizationIconSkeleton,
|
|
373
380
|
PROVIDER_META,
|
|
374
381
|
PageActions,
|
|
375
382
|
PageContainer,
|
|
@@ -377,16 +384,22 @@ import {
|
|
|
377
384
|
PageLayout,
|
|
378
385
|
PageLoader,
|
|
379
386
|
PageShell,
|
|
387
|
+
ParagraphSkeleton,
|
|
380
388
|
ParallaxImageShowcase,
|
|
381
389
|
PasswordInput,
|
|
382
390
|
PasswordResetForm,
|
|
383
391
|
PathsDisplay,
|
|
384
392
|
PhoneInput,
|
|
385
393
|
PlatformFilterComponent,
|
|
394
|
+
PlatformSkeletonContainer,
|
|
386
395
|
PolicyConfigurationPanel,
|
|
387
396
|
PoweredByFlamingo,
|
|
397
|
+
PricingSkeleton,
|
|
398
|
+
ProfileLoadingSkeleton,
|
|
399
|
+
ProfileSkeleton,
|
|
388
400
|
Progress,
|
|
389
401
|
ProgressBar,
|
|
402
|
+
ProgressiveSkeleton,
|
|
390
403
|
ProviderButton,
|
|
391
404
|
PushButtonSelector,
|
|
392
405
|
QueryReportTable,
|
|
@@ -405,10 +418,12 @@ import {
|
|
|
405
418
|
ReleaseMediaManager,
|
|
406
419
|
ReopenTicketModal,
|
|
407
420
|
ReopenTicketRequestModal,
|
|
421
|
+
ResultsHeaderSkeleton,
|
|
408
422
|
RichMarkdownRenderer,
|
|
409
423
|
RichMarkdownRuntimeProvider,
|
|
410
424
|
SEOEditorPreview,
|
|
411
425
|
SLOT_STICKINESS,
|
|
426
|
+
SearchContainerSkeleton,
|
|
412
427
|
SearchInput,
|
|
413
428
|
SearchableSelect,
|
|
414
429
|
SectionSelector,
|
|
@@ -435,7 +450,9 @@ import {
|
|
|
435
450
|
SheetPortal,
|
|
436
451
|
SheetTitle,
|
|
437
452
|
SheetTrigger,
|
|
453
|
+
SkeletonPresets,
|
|
438
454
|
SlackChannelChip,
|
|
455
|
+
SlackCommunitySkeleton,
|
|
439
456
|
Slider,
|
|
440
457
|
SocialLinksManager,
|
|
441
458
|
SortableList,
|
|
@@ -445,6 +462,7 @@ import {
|
|
|
445
462
|
SsoProviderButtons,
|
|
446
463
|
StackedRowsPanel,
|
|
447
464
|
StartWithOpenFrameButton,
|
|
465
|
+
StatsSectionSkeleton,
|
|
448
466
|
StatusFilterComponent,
|
|
449
467
|
StatusIndicator,
|
|
450
468
|
SubtitlesEditor,
|
|
@@ -463,6 +481,7 @@ import {
|
|
|
463
481
|
TableEmptyState,
|
|
464
482
|
TableHeader,
|
|
465
483
|
TableRow,
|
|
484
|
+
TableSkeleton,
|
|
466
485
|
TableTimestampCell,
|
|
467
486
|
TagKeyValueFilter,
|
|
468
487
|
TagSearchInput,
|
|
@@ -477,6 +496,7 @@ import {
|
|
|
477
496
|
TestRunErrorBanner,
|
|
478
497
|
TestRunResults,
|
|
479
498
|
TestRunStatusStat,
|
|
499
|
+
TextSkeleton,
|
|
480
500
|
Textarea,
|
|
481
501
|
ThemeProvider,
|
|
482
502
|
TicketAttachmentsList,
|
|
@@ -493,6 +513,7 @@ import {
|
|
|
493
513
|
TimeTrackerHeaderButton,
|
|
494
514
|
TimeTrackerPanel,
|
|
495
515
|
TimeTrackerProvider,
|
|
516
|
+
TimelineSkeleton,
|
|
496
517
|
TimingStat,
|
|
497
518
|
TitleBlock,
|
|
498
519
|
TitleContentBlock,
|
|
@@ -506,15 +527,21 @@ import {
|
|
|
506
527
|
TruncateText,
|
|
507
528
|
TwitterContainer,
|
|
508
529
|
TwitterEmbedClient,
|
|
530
|
+
TwoColumnLayoutSkeleton,
|
|
531
|
+
UnifiedSkeleton,
|
|
509
532
|
UnreadCountBadge,
|
|
510
533
|
UnreadDot,
|
|
511
534
|
UnsavedChangesChip,
|
|
535
|
+
UsersGridSkeleton,
|
|
536
|
+
VendorDetailLayoutSkeleton,
|
|
537
|
+
VendorGridSkeleton,
|
|
512
538
|
VideoBitesDisplay,
|
|
513
539
|
VideoClipsSection,
|
|
514
540
|
VideoSourceSelector,
|
|
515
541
|
ViewToggle,
|
|
516
542
|
WaitlistForm,
|
|
517
543
|
WarningBlock,
|
|
544
|
+
WizardLayoutSkeleton,
|
|
518
545
|
XCircleIcon,
|
|
519
546
|
XIcon as XIcon2,
|
|
520
547
|
YouTubeContainer,
|
|
@@ -559,6 +586,7 @@ import {
|
|
|
559
586
|
useAppLayoutDrawerContainer,
|
|
560
587
|
useBoardCollapse,
|
|
561
588
|
useConfirm,
|
|
589
|
+
useContentLoading,
|
|
562
590
|
useDataTable,
|
|
563
591
|
useDataTableContext,
|
|
564
592
|
useDynamicTheme,
|
|
@@ -577,7 +605,7 @@ import {
|
|
|
577
605
|
useTimeTracker,
|
|
578
606
|
useTrackerClock,
|
|
579
607
|
useWalkthroughVideo
|
|
580
|
-
} from "../chunk-
|
|
608
|
+
} from "../chunk-XA5UPYWE.js";
|
|
581
609
|
import "../chunk-L2SLFCXP.js";
|
|
582
610
|
import "../chunk-BJXDHKUX.js";
|
|
583
611
|
import {
|
|
@@ -803,6 +831,7 @@ import {
|
|
|
803
831
|
TooltipTrigger,
|
|
804
832
|
UnarchiveChatModal,
|
|
805
833
|
UserDisplay,
|
|
834
|
+
VIDEO_PLAYBACK_FAILED_EVENT,
|
|
806
835
|
Video,
|
|
807
836
|
VideoBiteCard,
|
|
808
837
|
VideoBitesStrip,
|
|
@@ -940,7 +969,7 @@ import {
|
|
|
940
969
|
useVideoOriginPreconnect,
|
|
941
970
|
useVideoWarmup,
|
|
942
971
|
usesCanonicalStatusStyle
|
|
943
|
-
} from "../chunk-
|
|
972
|
+
} from "../chunk-F227VMPL.js";
|
|
944
973
|
import {
|
|
945
974
|
scrollElementIntoView
|
|
946
975
|
} from "../chunk-JRYS4VMV.js";
|
|
@@ -2127,305 +2156,9 @@ function CommentComposer({
|
|
|
2127
2156
|
] });
|
|
2128
2157
|
}
|
|
2129
2158
|
|
|
2130
|
-
// src/components/content-loading-container.tsx
|
|
2131
|
-
import { jsx as jsx10, jsxs as jsxs8 } from "react/jsx-runtime";
|
|
2132
|
-
function ContentLoadingContainer({
|
|
2133
|
-
isLoading,
|
|
2134
|
-
children,
|
|
2135
|
-
skeletonComponent,
|
|
2136
|
-
className,
|
|
2137
|
-
minHeight = "min-h-[300px] md:min-h-[800px]",
|
|
2138
|
-
loadingOpacity = 1,
|
|
2139
|
-
transitionDuration = 300
|
|
2140
|
-
}) {
|
|
2141
|
-
return /* @__PURE__ */ jsxs8(
|
|
2142
|
-
"div",
|
|
2143
|
-
{
|
|
2144
|
-
className: cn("relative w-full transition-all ease-in-out", minHeight, className),
|
|
2145
|
-
style: {
|
|
2146
|
-
transitionDuration: `${transitionDuration}ms`
|
|
2147
|
-
},
|
|
2148
|
-
role: "region",
|
|
2149
|
-
"aria-label": isLoading ? "Loading content" : "Content loaded",
|
|
2150
|
-
"aria-live": "polite",
|
|
2151
|
-
children: [
|
|
2152
|
-
isLoading && /* @__PURE__ */ jsx10(
|
|
2153
|
-
"div",
|
|
2154
|
-
{
|
|
2155
|
-
className: "absolute inset-0 z-10 bg-ods-bg",
|
|
2156
|
-
style: {
|
|
2157
|
-
opacity: loadingOpacity,
|
|
2158
|
-
transition: `opacity ${transitionDuration}ms ease-in-out`
|
|
2159
|
-
},
|
|
2160
|
-
role: "status",
|
|
2161
|
-
"aria-label": "Loading content",
|
|
2162
|
-
children: skeletonComponent
|
|
2163
|
-
}
|
|
2164
|
-
),
|
|
2165
|
-
/* @__PURE__ */ jsx10(
|
|
2166
|
-
"div",
|
|
2167
|
-
{
|
|
2168
|
-
className: cn("relative transition-opacity ease-in-out", isLoading && "opacity-0"),
|
|
2169
|
-
style: {
|
|
2170
|
-
transitionDuration: `${transitionDuration}ms`
|
|
2171
|
-
},
|
|
2172
|
-
"aria-hidden": isLoading,
|
|
2173
|
-
children
|
|
2174
|
-
}
|
|
2175
|
-
)
|
|
2176
|
-
]
|
|
2177
|
-
}
|
|
2178
|
-
);
|
|
2179
|
-
}
|
|
2180
|
-
function useContentLoading(isLoading) {
|
|
2181
|
-
const containerProps = {
|
|
2182
|
-
"aria-busy": isLoading,
|
|
2183
|
-
"data-loading": isLoading
|
|
2184
|
-
};
|
|
2185
|
-
const getSkeletonCount = (contentType) => {
|
|
2186
|
-
return contentType === "vendor" ? 12 : 6;
|
|
2187
|
-
};
|
|
2188
|
-
const getMinHeight = (contentType) => {
|
|
2189
|
-
return contentType === "vendor" ? "min-h-[400px] md:min-h-[900px]" : "min-h-[300px] md:min-h-[800px]";
|
|
2190
|
-
};
|
|
2191
|
-
return {
|
|
2192
|
-
containerProps,
|
|
2193
|
-
getSkeletonCount,
|
|
2194
|
-
getMinHeight
|
|
2195
|
-
};
|
|
2196
|
-
}
|
|
2197
|
-
|
|
2198
|
-
// src/components/dynamic-skeleton.tsx
|
|
2199
|
-
import React from "react";
|
|
2200
|
-
|
|
2201
|
-
// src/hooks/use-theme-aware.ts
|
|
2202
|
-
function useThemeAware() {
|
|
2203
|
-
return {
|
|
2204
|
-
themeColors: {},
|
|
2205
|
-
platformContext: "default",
|
|
2206
|
-
isDarkMode: false,
|
|
2207
|
-
platform: "default",
|
|
2208
|
-
isDark: false,
|
|
2209
|
-
accentColor: "#FFC008"
|
|
2210
|
-
};
|
|
2211
|
-
}
|
|
2212
|
-
|
|
2213
|
-
// src/components/dynamic-skeleton.tsx
|
|
2214
|
-
import { Fragment as Fragment2, jsx as jsx11, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
2215
|
-
var sizePresets = {
|
|
2216
|
-
sm: { width: "4rem", height: "1rem" },
|
|
2217
|
-
md: { width: "8rem", height: "1.5rem" },
|
|
2218
|
-
lg: { width: "12rem", height: "2rem" },
|
|
2219
|
-
xl: { width: "16rem", height: "2.5rem" }
|
|
2220
|
-
};
|
|
2221
|
-
var variantStyles = {
|
|
2222
|
-
text: "rounded",
|
|
2223
|
-
avatar: "rounded-full aspect-square",
|
|
2224
|
-
card: "rounded-lg",
|
|
2225
|
-
button: "rounded-md",
|
|
2226
|
-
image: "rounded-lg aspect-video",
|
|
2227
|
-
custom: ""
|
|
2228
|
-
};
|
|
2229
|
-
function DynamicSkeleton({
|
|
2230
|
-
animation = "shimmer",
|
|
2231
|
-
variant = "text",
|
|
2232
|
-
size = "md",
|
|
2233
|
-
width,
|
|
2234
|
-
height,
|
|
2235
|
-
lines = 1,
|
|
2236
|
-
platformAware = true,
|
|
2237
|
-
includeAriaLabel = true,
|
|
2238
|
-
className,
|
|
2239
|
-
children
|
|
2240
|
-
}) {
|
|
2241
|
-
const { platform, isDark, accentColor } = useThemeAware();
|
|
2242
|
-
const dimensions = React.useMemo(() => {
|
|
2243
|
-
if (width || height) {
|
|
2244
|
-
return {
|
|
2245
|
-
width: typeof width === "number" ? `${width}px` : width,
|
|
2246
|
-
height: typeof height === "number" ? `${height}px` : height
|
|
2247
|
-
};
|
|
2248
|
-
}
|
|
2249
|
-
if (variant === "avatar") {
|
|
2250
|
-
const avatarSize = sizePresets[size].height;
|
|
2251
|
-
return { width: avatarSize, height: avatarSize };
|
|
2252
|
-
}
|
|
2253
|
-
return sizePresets[size];
|
|
2254
|
-
}, [width, height, size, variant]);
|
|
2255
|
-
const platformStyles = React.useMemo(() => {
|
|
2256
|
-
if (!platformAware) return {};
|
|
2257
|
-
const baseOpacity = isDark ? 0.1 : 0.15;
|
|
2258
|
-
const accentOpacity = isDark ? 0.05 : 0.08;
|
|
2259
|
-
return {
|
|
2260
|
-
"--skeleton-base": `color-mix(in srgb, var(--color-bg-skeleton) ${baseOpacity * 100}%, transparent)`,
|
|
2261
|
-
"--skeleton-highlight": `color-mix(in srgb, ${accentColor} ${accentOpacity * 100}%, var(--color-bg-skeleton))`,
|
|
2262
|
-
"--skeleton-accent": `color-mix(in srgb, ${accentColor} 10%, transparent)`
|
|
2263
|
-
};
|
|
2264
|
-
}, [platformAware, isDark, accentColor]);
|
|
2265
|
-
const animationClasses = {
|
|
2266
|
-
pulse: "animate-pulse",
|
|
2267
|
-
shimmer: "ods-loading-dynamic",
|
|
2268
|
-
wave: "skeleton-wave",
|
|
2269
|
-
static: ""
|
|
2270
|
-
};
|
|
2271
|
-
const baseClasses = cn(
|
|
2272
|
-
"bg-ods-skeleton",
|
|
2273
|
-
variantStyles[variant],
|
|
2274
|
-
animationClasses[animation],
|
|
2275
|
-
platformAware && `skeleton-platform-${platform}`,
|
|
2276
|
-
className
|
|
2277
|
-
);
|
|
2278
|
-
if (variant === "text" && lines > 1) {
|
|
2279
|
-
return /* @__PURE__ */ jsx11(
|
|
2280
|
-
"div",
|
|
2281
|
-
{
|
|
2282
|
-
className: "space-y-2",
|
|
2283
|
-
style: platformStyles,
|
|
2284
|
-
role: "status",
|
|
2285
|
-
"aria-label": includeAriaLabel ? "Loading content..." : void 0,
|
|
2286
|
-
children: Array.from({ length: lines }, (_, index) => /* @__PURE__ */ jsx11(
|
|
2287
|
-
"div",
|
|
2288
|
-
{
|
|
2289
|
-
className: cn(
|
|
2290
|
-
baseClasses,
|
|
2291
|
-
index === lines - 1 && "w-3/4"
|
|
2292
|
-
// Last line shorter
|
|
2293
|
-
),
|
|
2294
|
-
style: {
|
|
2295
|
-
...dimensions,
|
|
2296
|
-
width: index === lines - 1 ? "75%" : dimensions.width
|
|
2297
|
-
}
|
|
2298
|
-
},
|
|
2299
|
-
index
|
|
2300
|
-
))
|
|
2301
|
-
}
|
|
2302
|
-
);
|
|
2303
|
-
}
|
|
2304
|
-
return /* @__PURE__ */ jsx11(
|
|
2305
|
-
"div",
|
|
2306
|
-
{
|
|
2307
|
-
className: baseClasses,
|
|
2308
|
-
style: { ...dimensions, ...platformStyles },
|
|
2309
|
-
role: "status",
|
|
2310
|
-
"aria-label": includeAriaLabel ? "Loading content..." : void 0,
|
|
2311
|
-
children
|
|
2312
|
-
}
|
|
2313
|
-
);
|
|
2314
|
-
}
|
|
2315
|
-
var SkeletonPresets = {
|
|
2316
|
-
/**
|
|
2317
|
-
* Card skeleton with header, content, and actions
|
|
2318
|
-
*/
|
|
2319
|
-
Card: ({ showActions = true, showImage = false }) => /* @__PURE__ */ jsxs9("div", { className: "space-y-4 rounded-lg border border-ods-border bg-ods-card p-6", children: [
|
|
2320
|
-
showImage && /* @__PURE__ */ jsx11(DynamicSkeleton, { variant: "image", className: "h-40 w-full" }),
|
|
2321
|
-
/* @__PURE__ */ jsxs9("div", { className: "space-y-2", children: [
|
|
2322
|
-
/* @__PURE__ */ jsx11(DynamicSkeleton, { variant: "text", size: "lg" }),
|
|
2323
|
-
/* @__PURE__ */ jsx11(DynamicSkeleton, { variant: "text", lines: 2, size: "md" })
|
|
2324
|
-
] }),
|
|
2325
|
-
showActions && /* @__PURE__ */ jsxs9("div", { className: "flex gap-2 pt-2", children: [
|
|
2326
|
-
/* @__PURE__ */ jsx11(DynamicSkeleton, { variant: "button", width: "6rem", height: "2.5rem" }),
|
|
2327
|
-
/* @__PURE__ */ jsx11(DynamicSkeleton, { variant: "button", width: "4rem", height: "2.5rem" })
|
|
2328
|
-
] })
|
|
2329
|
-
] }),
|
|
2330
|
-
/**
|
|
2331
|
-
* User profile skeleton
|
|
2332
|
-
*/
|
|
2333
|
-
Profile: () => /* @__PURE__ */ jsxs9("div", { className: "flex items-start gap-4 p-4", children: [
|
|
2334
|
-
/* @__PURE__ */ jsx11(DynamicSkeleton, { variant: "avatar", size: "lg" }),
|
|
2335
|
-
/* @__PURE__ */ jsxs9("div", { className: "flex-1 space-y-2", children: [
|
|
2336
|
-
/* @__PURE__ */ jsx11(DynamicSkeleton, { variant: "text", size: "lg", width: "8rem" }),
|
|
2337
|
-
/* @__PURE__ */ jsx11(DynamicSkeleton, { variant: "text", size: "sm", width: "12rem" }),
|
|
2338
|
-
/* @__PURE__ */ jsx11(DynamicSkeleton, { variant: "text", lines: 2, size: "md" })
|
|
2339
|
-
] })
|
|
2340
|
-
] }),
|
|
2341
|
-
/**
|
|
2342
|
-
* Navigation skeleton
|
|
2343
|
-
*/
|
|
2344
|
-
Navigation: ({ items = 5 }) => /* @__PURE__ */ jsx11("nav", { className: "space-y-2 p-4", children: Array.from({ length: items }, (_, index) => /* @__PURE__ */ jsxs9("div", { className: "flex items-center gap-3", children: [
|
|
2345
|
-
/* @__PURE__ */ jsx11(DynamicSkeleton, { variant: "avatar", size: "sm" }),
|
|
2346
|
-
/* @__PURE__ */ jsx11(DynamicSkeleton, { variant: "text", size: "md" })
|
|
2347
|
-
] }, index)) }),
|
|
2348
|
-
/**
|
|
2349
|
-
* Table skeleton
|
|
2350
|
-
*/
|
|
2351
|
-
Table: ({ rows = 5, columns = 4 }) => /* @__PURE__ */ jsxs9("div", { className: "space-y-3", children: [
|
|
2352
|
-
/* @__PURE__ */ jsx11("div", { className: "grid gap-4", style: { gridTemplateColumns: `repeat(${columns}, 1fr)` }, children: Array.from({ length: columns }, (_, index) => /* @__PURE__ */ jsx11(DynamicSkeleton, { variant: "text", size: "md" }, `header-${index}`)) }),
|
|
2353
|
-
Array.from({ length: rows }, (_, rowIndex) => /* @__PURE__ */ jsx11("div", { className: "grid gap-4", style: { gridTemplateColumns: `repeat(${columns}, 1fr)` }, children: Array.from({ length: columns }, (_cell, colIndex) => /* @__PURE__ */ jsx11(DynamicSkeleton, { variant: "text", size: "sm" }, `cell-${rowIndex}-${colIndex}`)) }, `row-${rowIndex}`))
|
|
2354
|
-
] }),
|
|
2355
|
-
/**
|
|
2356
|
-
* Vendor grid skeleton (specific to the app)
|
|
2357
|
-
*/
|
|
2358
|
-
VendorGrid: ({ items = 6 }) => /* @__PURE__ */ jsx11("div", { className: "grid grid-cols-1 gap-6 md:grid-cols-2 lg:grid-cols-3", children: Array.from({ length: items }, (_, index) => /* @__PURE__ */ jsxs9("div", { className: "space-y-3 rounded-lg border border-ods-border bg-ods-card p-4", children: [
|
|
2359
|
-
/* @__PURE__ */ jsxs9("div", { className: "flex items-center gap-3", children: [
|
|
2360
|
-
/* @__PURE__ */ jsx11(DynamicSkeleton, { variant: "avatar", size: "md" }),
|
|
2361
|
-
/* @__PURE__ */ jsxs9("div", { className: "flex-1", children: [
|
|
2362
|
-
/* @__PURE__ */ jsx11(DynamicSkeleton, { variant: "text", size: "md", width: "6rem" }),
|
|
2363
|
-
/* @__PURE__ */ jsx11(DynamicSkeleton, { variant: "text", size: "sm", width: "4rem", className: "mt-1" })
|
|
2364
|
-
] })
|
|
2365
|
-
] }),
|
|
2366
|
-
/* @__PURE__ */ jsx11(DynamicSkeleton, { variant: "text", lines: 2, size: "sm" }),
|
|
2367
|
-
/* @__PURE__ */ jsxs9("div", { className: "flex gap-2", children: [
|
|
2368
|
-
/* @__PURE__ */ jsx11(DynamicSkeleton, { variant: "custom", width: "3rem", height: "1.25rem", className: "rounded-full" }),
|
|
2369
|
-
/* @__PURE__ */ jsx11(DynamicSkeleton, { variant: "custom", width: "4rem", height: "1.25rem", className: "rounded-full" })
|
|
2370
|
-
] })
|
|
2371
|
-
] }, index)) }),
|
|
2372
|
-
/**
|
|
2373
|
-
* Blog post skeleton
|
|
2374
|
-
*/
|
|
2375
|
-
BlogPost: () => /* @__PURE__ */ jsxs9("article", { className: "space-y-6", children: [
|
|
2376
|
-
/* @__PURE__ */ jsxs9("div", { className: "space-y-2", children: [
|
|
2377
|
-
/* @__PURE__ */ jsx11(DynamicSkeleton, { variant: "text", size: "xl", width: "75%" }),
|
|
2378
|
-
/* @__PURE__ */ jsxs9("div", { className: "flex gap-4 text-sm", children: [
|
|
2379
|
-
/* @__PURE__ */ jsx11(DynamicSkeleton, { variant: "text", size: "sm", width: "4rem" }),
|
|
2380
|
-
/* @__PURE__ */ jsx11(DynamicSkeleton, { variant: "text", size: "sm", width: "6rem" })
|
|
2381
|
-
] })
|
|
2382
|
-
] }),
|
|
2383
|
-
/* @__PURE__ */ jsx11(DynamicSkeleton, { variant: "image", className: "h-64 w-full" }),
|
|
2384
|
-
/* @__PURE__ */ jsx11("div", { className: "space-y-3", children: Array.from({ length: 4 }, (_, index) => /* @__PURE__ */ jsx11(DynamicSkeleton, { variant: "text", lines: 3, size: "md" }, index)) })
|
|
2385
|
-
] })
|
|
2386
|
-
};
|
|
2387
|
-
function PlatformSkeletonContainer({
|
|
2388
|
-
children,
|
|
2389
|
-
isLoading,
|
|
2390
|
-
skeletonType = "Card",
|
|
2391
|
-
skeletonProps = {}
|
|
2392
|
-
}) {
|
|
2393
|
-
const { platform } = useThemeAware();
|
|
2394
|
-
if (!isLoading) {
|
|
2395
|
-
return /* @__PURE__ */ jsx11(Fragment2, { children });
|
|
2396
|
-
}
|
|
2397
|
-
const SkeletonComponent = SkeletonPresets[skeletonType];
|
|
2398
|
-
return /* @__PURE__ */ jsx11("div", { className: `platform-skeleton skeleton-${platform}`, children: /* @__PURE__ */ jsx11(SkeletonComponent, { ...skeletonProps }) });
|
|
2399
|
-
}
|
|
2400
|
-
function ProgressiveSkeleton({
|
|
2401
|
-
// Named only to keep it out of the `...props` spread: the stage NAMES are
|
|
2402
|
-
// unused, `currentStage` alone selects the skeleton shape below.
|
|
2403
|
-
stages: _stages = ["basic", "detailed", "interactive"],
|
|
2404
|
-
currentStage = 0,
|
|
2405
|
-
children,
|
|
2406
|
-
...props
|
|
2407
|
-
}) {
|
|
2408
|
-
const { platform } = useThemeAware();
|
|
2409
|
-
const stageConfig = {
|
|
2410
|
-
0: { animation: "pulse", variant: "text" },
|
|
2411
|
-
1: { animation: "shimmer", variant: "card" },
|
|
2412
|
-
2: { animation: "wave", variant: "custom" }
|
|
2413
|
-
};
|
|
2414
|
-
const config = stageConfig[currentStage] || stageConfig[0];
|
|
2415
|
-
return /* @__PURE__ */ jsx11(
|
|
2416
|
-
DynamicSkeleton,
|
|
2417
|
-
{
|
|
2418
|
-
...props,
|
|
2419
|
-
...config,
|
|
2420
|
-
className: cn(props.className, `skeleton-stage-${currentStage}`, `skeleton-platform-${platform}`),
|
|
2421
|
-
children
|
|
2422
|
-
}
|
|
2423
|
-
);
|
|
2424
|
-
}
|
|
2425
|
-
|
|
2426
2159
|
// src/components/filter-chip.tsx
|
|
2427
2160
|
import { X as X2 } from "lucide-react";
|
|
2428
|
-
import { jsx as
|
|
2161
|
+
import { jsx as jsx10, jsxs as jsxs8 } from "react/jsx-runtime";
|
|
2429
2162
|
function FilterChip({
|
|
2430
2163
|
label,
|
|
2431
2164
|
variant = "unselected",
|
|
@@ -2457,7 +2190,7 @@ function FilterChip({
|
|
|
2457
2190
|
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",
|
|
2458
2191
|
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"
|
|
2459
2192
|
};
|
|
2460
|
-
return /* @__PURE__ */
|
|
2193
|
+
return /* @__PURE__ */ jsxs8(
|
|
2461
2194
|
"div",
|
|
2462
2195
|
{
|
|
2463
2196
|
className: cn(baseClasses, variantClasses[variant], className),
|
|
@@ -2471,7 +2204,7 @@ function FilterChip({
|
|
|
2471
2204
|
"aria-pressed": onClick && variant === "selected" ? true : void 0,
|
|
2472
2205
|
"aria-disabled": disabled,
|
|
2473
2206
|
children: [
|
|
2474
|
-
/* @__PURE__ */
|
|
2207
|
+
/* @__PURE__ */ jsx10(
|
|
2475
2208
|
"span",
|
|
2476
2209
|
{
|
|
2477
2210
|
className: cn(
|
|
@@ -2482,7 +2215,7 @@ function FilterChip({
|
|
|
2482
2215
|
children: label
|
|
2483
2216
|
}
|
|
2484
2217
|
),
|
|
2485
|
-
removable && onRemove && /* @__PURE__ */
|
|
2218
|
+
removable && onRemove && /* @__PURE__ */ jsx10(
|
|
2486
2219
|
"button",
|
|
2487
2220
|
{
|
|
2488
2221
|
type: "button",
|
|
@@ -2501,7 +2234,7 @@ function FilterChip({
|
|
|
2501
2234
|
),
|
|
2502
2235
|
"aria-label": `Remove ${label} filter`,
|
|
2503
2236
|
tabIndex: disabled ? -1 : 0,
|
|
2504
|
-
children: /* @__PURE__ */
|
|
2237
|
+
children: /* @__PURE__ */ jsx10(X2, { className: "h-2 w-2 md:h-2 md:w-2" })
|
|
2505
2238
|
}
|
|
2506
2239
|
)
|
|
2507
2240
|
]
|
|
@@ -2514,7 +2247,7 @@ import { Suspense } from "react";
|
|
|
2514
2247
|
|
|
2515
2248
|
// src/components/social-icon-row.tsx
|
|
2516
2249
|
import { Mail } from "lucide-react";
|
|
2517
|
-
import { jsx as
|
|
2250
|
+
import { jsx as jsx11, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
2518
2251
|
var defaultLinks = [
|
|
2519
2252
|
{ platform: "github", href: "https://github.com/flamingo-stack", label: "GitHub" },
|
|
2520
2253
|
{ platform: "linkedin", href: "https://linkedin.com/company/flamingo.run", label: "LinkedIn" },
|
|
@@ -2524,44 +2257,44 @@ function renderSocialIcon(platform) {
|
|
|
2524
2257
|
const normalizedPlatform = platform.toLowerCase().trim();
|
|
2525
2258
|
switch (normalizedPlatform) {
|
|
2526
2259
|
case "github":
|
|
2527
|
-
return /* @__PURE__ */
|
|
2260
|
+
return /* @__PURE__ */ jsx11(GitHubIcon, { className: "h-5 w-5" });
|
|
2528
2261
|
case "twitter":
|
|
2529
2262
|
case "x":
|
|
2530
|
-
return /* @__PURE__ */
|
|
2263
|
+
return /* @__PURE__ */ jsx11(XLogo, { className: "h-5 w-5" });
|
|
2531
2264
|
case "reddit":
|
|
2532
|
-
return /* @__PURE__ */
|
|
2265
|
+
return /* @__PURE__ */ jsx11(RedditIcon, { className: "h-5 w-5", variant: "white" });
|
|
2533
2266
|
case "linkedin":
|
|
2534
|
-
return /* @__PURE__ */
|
|
2267
|
+
return /* @__PURE__ */ jsx11(LinkedInIcon, { className: "h-5 w-5" });
|
|
2535
2268
|
case "luma":
|
|
2536
|
-
return /* @__PURE__ */
|
|
2269
|
+
return /* @__PURE__ */ jsx11(LumaIcon, { className: "h-5 w-5" });
|
|
2537
2270
|
case "whatsapp":
|
|
2538
|
-
return /* @__PURE__ */
|
|
2271
|
+
return /* @__PURE__ */ jsx11(WhatsAppIcon, { className: "h-5 w-5" });
|
|
2539
2272
|
case "email":
|
|
2540
2273
|
case "mail":
|
|
2541
|
-
return /* @__PURE__ */
|
|
2274
|
+
return /* @__PURE__ */ jsx11(Mail, { className: "h-5 w-5" });
|
|
2542
2275
|
case "website":
|
|
2543
2276
|
case "web":
|
|
2544
2277
|
case "url":
|
|
2545
|
-
return /* @__PURE__ */
|
|
2278
|
+
return /* @__PURE__ */ jsx11(GlobeIcon, { className: "h-5 w-5" });
|
|
2546
2279
|
case "slack":
|
|
2547
|
-
return /* @__PURE__ */
|
|
2280
|
+
return /* @__PURE__ */ jsx11(SlackIcon, { className: "h-5 w-5", injectedColor: "white" });
|
|
2548
2281
|
case "discord":
|
|
2549
|
-
return /* @__PURE__ */
|
|
2282
|
+
return /* @__PURE__ */ jsx11(MessageCircleIcon, { className: "h-5 w-5" });
|
|
2550
2283
|
case "telegram":
|
|
2551
|
-
return /* @__PURE__ */
|
|
2284
|
+
return /* @__PURE__ */ jsx11(TelegramIcon, { className: "h-5 w-5" });
|
|
2552
2285
|
case "youtube":
|
|
2553
2286
|
case "yt":
|
|
2554
|
-
return /* @__PURE__ */
|
|
2287
|
+
return /* @__PURE__ */ jsx11(YouTubeIcon, { className: "h-5 w-5" });
|
|
2555
2288
|
case "instagram":
|
|
2556
2289
|
case "ig":
|
|
2557
|
-
return /* @__PURE__ */
|
|
2290
|
+
return /* @__PURE__ */ jsx11(InstagramIcon, { className: "h-5 w-5" });
|
|
2558
2291
|
case "facebook":
|
|
2559
2292
|
case "fb":
|
|
2560
|
-
return /* @__PURE__ */
|
|
2293
|
+
return /* @__PURE__ */ jsx11(FacebookIcon, { className: "h-5 w-5" });
|
|
2561
2294
|
case "copy":
|
|
2562
|
-
return /* @__PURE__ */
|
|
2295
|
+
return /* @__PURE__ */ jsx11(CopyIcon, { className: "h-5 w-5", color: "var(--color-text-primary)" });
|
|
2563
2296
|
default:
|
|
2564
|
-
return /* @__PURE__ */
|
|
2297
|
+
return /* @__PURE__ */ jsx11(GlobeIcon, { className: "h-5 w-5" });
|
|
2565
2298
|
}
|
|
2566
2299
|
}
|
|
2567
2300
|
function SocialIconRow({
|
|
@@ -2574,7 +2307,7 @@ function SocialIconRow({
|
|
|
2574
2307
|
const resolvedVariant = variant !== void 0 ? variant : compact ? "transparent" : "outline";
|
|
2575
2308
|
const renderButton = (link, index) => {
|
|
2576
2309
|
const ariaLabel = link.label || link.platform;
|
|
2577
|
-
return link.onClick ? /* @__PURE__ */
|
|
2310
|
+
return link.onClick ? /* @__PURE__ */ jsx11(
|
|
2578
2311
|
Button,
|
|
2579
2312
|
{
|
|
2580
2313
|
type: "button",
|
|
@@ -2590,7 +2323,7 @@ function SocialIconRow({
|
|
|
2590
2323
|
// Props-based linking — Button renders the anchor itself
|
|
2591
2324
|
// (openInNewTab carries target="_blank" + rel="noopener noreferrer");
|
|
2592
2325
|
// no asChild/<a> nesting.
|
|
2593
|
-
/* @__PURE__ */
|
|
2326
|
+
/* @__PURE__ */ jsx11(
|
|
2594
2327
|
Button,
|
|
2595
2328
|
{
|
|
2596
2329
|
variant: resolvedVariant,
|
|
@@ -2610,33 +2343,33 @@ function SocialIconRow({
|
|
|
2610
2343
|
const external = links.filter((l) => l.visibility !== "internal");
|
|
2611
2344
|
const internal = links.filter((l) => l.visibility === "internal");
|
|
2612
2345
|
if (external.length > 0 && internal.length > 0) {
|
|
2613
|
-
return /* @__PURE__ */
|
|
2346
|
+
return /* @__PURE__ */ jsxs9("div", { className: rowClass, children: [
|
|
2614
2347
|
external.map((l, i) => renderButton(l, i)),
|
|
2615
|
-
/* @__PURE__ */
|
|
2348
|
+
/* @__PURE__ */ jsx11("span", { "aria-hidden": true, className: "my-1 w-px shrink-0 self-stretch bg-ods-border" }),
|
|
2616
2349
|
internal.map((l, i) => renderButton(l, external.length + i))
|
|
2617
2350
|
] });
|
|
2618
2351
|
}
|
|
2619
2352
|
}
|
|
2620
|
-
return /* @__PURE__ */
|
|
2353
|
+
return /* @__PURE__ */ jsx11("div", { className: rowClass, children: links.map((link, index) => renderButton(link, index)) });
|
|
2621
2354
|
}
|
|
2622
2355
|
|
|
2623
2356
|
// src/components/footer.tsx
|
|
2624
|
-
import { Fragment as
|
|
2357
|
+
import { Fragment as Fragment2, jsx as jsx12, jsxs as jsxs10 } from "react/jsx-runtime";
|
|
2625
2358
|
function NavLinkSkeleton() {
|
|
2626
|
-
return /* @__PURE__ */
|
|
2359
|
+
return /* @__PURE__ */ jsx12(Skeleton, { className: "h-5 w-20 md:h-6 md:w-24" });
|
|
2627
2360
|
}
|
|
2628
2361
|
function Footer({ config, renderLink }) {
|
|
2629
2362
|
if (!config) {
|
|
2630
2363
|
console.warn("Footer: No config provided");
|
|
2631
2364
|
return null;
|
|
2632
2365
|
}
|
|
2633
|
-
return /* @__PURE__ */
|
|
2366
|
+
return /* @__PURE__ */ jsx12(UniversalFooter, { config, renderLink });
|
|
2634
2367
|
}
|
|
2635
2368
|
function UniversalFooter({
|
|
2636
2369
|
config,
|
|
2637
2370
|
renderLink
|
|
2638
2371
|
}) {
|
|
2639
|
-
const defaultRenderLink = (link) => /* @__PURE__ */
|
|
2372
|
+
const defaultRenderLink = (link) => /* @__PURE__ */ jsx12(
|
|
2640
2373
|
"a",
|
|
2641
2374
|
{
|
|
2642
2375
|
href: link.href,
|
|
@@ -2645,21 +2378,21 @@ function UniversalFooter({
|
|
|
2645
2378
|
}
|
|
2646
2379
|
);
|
|
2647
2380
|
const linkRenderer = renderLink || defaultRenderLink;
|
|
2648
|
-
return /* @__PURE__ */
|
|
2381
|
+
return /* @__PURE__ */ jsxs10(
|
|
2649
2382
|
"footer",
|
|
2650
2383
|
{
|
|
2651
2384
|
className: `flex w-full flex-col items-center justify-center ${config.backgroundColor || "bg-ods-card"} relative z-[44] min-h-[auto] gap-6 border-t border-ods-border px-6 py-10 md:min-h-[248px] md:gap-6`,
|
|
2652
2385
|
children: [
|
|
2653
|
-
/* @__PURE__ */
|
|
2654
|
-
/* @__PURE__ */
|
|
2655
|
-
/* @__PURE__ */
|
|
2656
|
-
config.logo && /* @__PURE__ */
|
|
2657
|
-
config.nameElement || /* @__PURE__ */
|
|
2386
|
+
/* @__PURE__ */ jsxs10("div", { className: "grid w-full grid-cols-2 items-start gap-6 md:gap-8 lg:grid-cols-4", children: [
|
|
2387
|
+
/* @__PURE__ */ jsxs10("div", { className: "col-span-2 flex flex-col items-start gap-4 text-left md:col-span-1 md:gap-6 lg:col-span-1", children: [
|
|
2388
|
+
/* @__PURE__ */ jsxs10("div", { className: "flex items-center gap-2", children: [
|
|
2389
|
+
config.logo && /* @__PURE__ */ jsx12(Suspense, { fallback: /* @__PURE__ */ jsx12(Skeleton, { className: "h-8 w-8" }), children: config.logo }),
|
|
2390
|
+
config.nameElement || /* @__PURE__ */ jsx12("span", { className: "whitespace-nowrap font-heading text-heading-5 font-bold text-ods-text-primary", children: config.name })
|
|
2658
2391
|
] }),
|
|
2659
|
-
!config.moveDescriptionToRight && /* @__PURE__ */
|
|
2660
|
-
/* @__PURE__ */
|
|
2661
|
-
config.belowDescriptionContent && /* @__PURE__ */
|
|
2662
|
-
!config.hideSocialRow && /* @__PURE__ */
|
|
2392
|
+
!config.moveDescriptionToRight && /* @__PURE__ */ jsxs10(Fragment2, { children: [
|
|
2393
|
+
/* @__PURE__ */ jsx12("p", { className: "font-body text-sm font-medium leading-[1.43] text-ods-text-primary md:text-sm", children: config.description }),
|
|
2394
|
+
config.belowDescriptionContent && /* @__PURE__ */ jsx12(Suspense, { fallback: /* @__PURE__ */ jsx12(Skeleton, { className: "h-8 w-full" }), children: config.belowDescriptionContent }),
|
|
2395
|
+
!config.hideSocialRow && /* @__PURE__ */ jsx12(
|
|
2663
2396
|
SocialIconRow,
|
|
2664
2397
|
{
|
|
2665
2398
|
className: "pt-2",
|
|
@@ -2667,22 +2400,22 @@ function UniversalFooter({
|
|
|
2667
2400
|
}
|
|
2668
2401
|
)
|
|
2669
2402
|
] }),
|
|
2670
|
-
config.moveDescriptionToRight && config.keepBelowDescriptionLeft && config.belowDescriptionContent && /* @__PURE__ */
|
|
2403
|
+
config.moveDescriptionToRight && config.keepBelowDescriptionLeft && config.belowDescriptionContent && /* @__PURE__ */ jsx12(Suspense, { fallback: /* @__PURE__ */ jsx12(Skeleton, { className: "h-8 w-full" }), children: config.belowDescriptionContent })
|
|
2671
2404
|
] }),
|
|
2672
|
-
config.sections.map((section, index) => /* @__PURE__ */
|
|
2673
|
-
/* @__PURE__ */
|
|
2674
|
-
/* @__PURE__ */
|
|
2405
|
+
config.sections.map((section, index) => /* @__PURE__ */ jsxs10("div", { className: "col-span-1 flex flex-col items-start gap-3 text-left", children: [
|
|
2406
|
+
/* @__PURE__ */ jsx12("h3", { className: "tracking-[-0.02em] text-ods-text-muted text-h5", children: section.title }),
|
|
2407
|
+
/* @__PURE__ */ jsx12("div", { className: "flex flex-col gap-3", children: section.links.map((link, linkIndex) => /* @__PURE__ */ jsx12(Suspense, { fallback: /* @__PURE__ */ jsx12(NavLinkSkeleton, {}), children: linkRenderer(link) }, linkIndex)) })
|
|
2675
2408
|
] }, index)),
|
|
2676
|
-
config.customComponent && /* @__PURE__ */
|
|
2677
|
-
(config.rightColumnContent || config.moveDescriptionToRight) && /* @__PURE__ */
|
|
2678
|
-
config.moveDescriptionToRight && /* @__PURE__ */
|
|
2679
|
-
/* @__PURE__ */
|
|
2680
|
-
config.belowDescriptionContent && !config.keepBelowDescriptionLeft && /* @__PURE__ */
|
|
2409
|
+
config.customComponent && /* @__PURE__ */ jsx12("div", { className: "col-span-2 flex flex-col justify-center md:col-span-1 lg:col-span-1", children: /* @__PURE__ */ jsx12(Suspense, { fallback: /* @__PURE__ */ jsx12(Skeleton, { className: "h-32 w-full" }), children: config.customComponent }) }),
|
|
2410
|
+
(config.rightColumnContent || config.moveDescriptionToRight) && /* @__PURE__ */ jsxs10("div", { className: "col-span-2 flex flex-col justify-start gap-4 md:col-span-1 md:gap-6 lg:col-span-1", children: [
|
|
2411
|
+
config.moveDescriptionToRight && /* @__PURE__ */ jsxs10(Fragment2, { children: [
|
|
2412
|
+
/* @__PURE__ */ jsx12("p", { className: "font-body text-sm font-medium leading-[1.43] text-ods-text-primary md:text-sm", children: config.description }),
|
|
2413
|
+
config.belowDescriptionContent && !config.keepBelowDescriptionLeft && /* @__PURE__ */ jsx12(Suspense, { fallback: /* @__PURE__ */ jsx12(Skeleton, { className: "h-8 w-full" }), children: config.belowDescriptionContent })
|
|
2681
2414
|
] }),
|
|
2682
|
-
config.rightColumnContent && /* @__PURE__ */
|
|
2415
|
+
config.rightColumnContent && /* @__PURE__ */ jsx12(Suspense, { fallback: /* @__PURE__ */ jsx12(Skeleton, { className: "h-32 w-full" }), children: config.rightColumnContent })
|
|
2683
2416
|
] })
|
|
2684
2417
|
] }),
|
|
2685
|
-
/* @__PURE__ */
|
|
2418
|
+
/* @__PURE__ */ jsxs10("p", { className: "text-md md:text-md w-full pt-4 text-center font-body font-medium leading-[1.33] text-ods-text-muted md:pt-0", children: [
|
|
2686
2419
|
"\xA9 ",
|
|
2687
2420
|
(/* @__PURE__ */ new Date()).getFullYear(),
|
|
2688
2421
|
" ",
|
|
@@ -3002,20 +2735,20 @@ var blogFilterConfig = {
|
|
|
3002
2735
|
|
|
3003
2736
|
// src/components/footer-waitlist-button.tsx
|
|
3004
2737
|
import { useCallback } from "react";
|
|
3005
|
-
import { jsx as
|
|
2738
|
+
import { jsx as jsx13 } from "react/jsx-runtime";
|
|
3006
2739
|
function FooterWaitlistButton({ className }) {
|
|
3007
2740
|
const router = useRouter();
|
|
3008
2741
|
const runtime = useChatRuntime();
|
|
3009
2742
|
const handleClick = useCallback(() => {
|
|
3010
2743
|
executeNavigationImperative({ runtime, href: "/waitlist#top", fallbackNavigate: router.push });
|
|
3011
2744
|
}, [router, runtime]);
|
|
3012
|
-
return /* @__PURE__ */
|
|
2745
|
+
return /* @__PURE__ */ jsx13(Button, { onClick: handleClick, className, leftIcon: /* @__PURE__ */ jsx13(OpenFrameLogo, {}), children: "Join Waitlist" });
|
|
3013
2746
|
}
|
|
3014
2747
|
|
|
3015
2748
|
// src/components/hero-image-uploader.tsx
|
|
3016
2749
|
import { Loader2, Image as ImageIcon2, Upload, X as X3 } from "lucide-react";
|
|
3017
2750
|
import { useRef, useState as useState3 } from "react";
|
|
3018
|
-
import { Fragment as
|
|
2751
|
+
import { Fragment as Fragment3, jsx as jsx14, jsxs as jsxs11 } from "react/jsx-runtime";
|
|
3019
2752
|
function readUploadedUrl(payload) {
|
|
3020
2753
|
if (typeof payload !== "object" || payload === null) return null;
|
|
3021
2754
|
if ("data" in payload) {
|
|
@@ -3118,53 +2851,53 @@ function HeroImageUploader({
|
|
|
3118
2851
|
onChange(void 0);
|
|
3119
2852
|
};
|
|
3120
2853
|
const heightStyle = typeof height === "number" ? `${height}px` : height;
|
|
3121
|
-
return /* @__PURE__ */
|
|
3122
|
-
imageUrl ? /* @__PURE__ */
|
|
2854
|
+
return /* @__PURE__ */ jsxs11("div", { className: "h-full max-h-full min-h-[300px] w-full space-y-2", children: [
|
|
2855
|
+
imageUrl ? /* @__PURE__ */ jsxs11(
|
|
3123
2856
|
"div",
|
|
3124
2857
|
{
|
|
3125
2858
|
className: "group relative flex aspect-square h-auto w-full items-center justify-center overflow-hidden md:aspect-auto md:h-full",
|
|
3126
2859
|
style: { height: heightStyle },
|
|
3127
2860
|
children: [
|
|
3128
|
-
/* @__PURE__ */
|
|
3129
|
-
/* @__PURE__ */
|
|
3130
|
-
showReplaceButton && /* @__PURE__ */
|
|
2861
|
+
/* @__PURE__ */ jsx14(next_image_default, { src: imageUrl, className: `object-${objectFit}`, alt: "Cover", fill: true, sizes: "100vw", unoptimized: true }),
|
|
2862
|
+
/* @__PURE__ */ jsxs11("div", { className: "absolute inset-0 flex items-center justify-center gap-4 rounded-lg bg-black/40 opacity-0 transition-opacity group-hover:opacity-100", children: [
|
|
2863
|
+
showReplaceButton && /* @__PURE__ */ jsx14(
|
|
3131
2864
|
Button,
|
|
3132
2865
|
{
|
|
3133
2866
|
variant: "outline",
|
|
3134
2867
|
size: "icon",
|
|
3135
2868
|
onClick: openDialog,
|
|
3136
2869
|
className: "h-12 w-12 rounded-full bg-white text-black hover:bg-gray-100",
|
|
3137
|
-
children: /* @__PURE__ */
|
|
2870
|
+
children: /* @__PURE__ */ jsx14(Upload, { className: "h-5 w-5" })
|
|
3138
2871
|
}
|
|
3139
2872
|
),
|
|
3140
|
-
/* @__PURE__ */
|
|
2873
|
+
/* @__PURE__ */ jsx14(
|
|
3141
2874
|
Button,
|
|
3142
2875
|
{
|
|
3143
2876
|
variant: "outline",
|
|
3144
2877
|
size: "icon",
|
|
3145
2878
|
onClick: () => handleRemove(),
|
|
3146
2879
|
className: "h-12 w-12 rounded-full bg-white text-black hover:bg-gray-100",
|
|
3147
|
-
children: /* @__PURE__ */
|
|
2880
|
+
children: /* @__PURE__ */ jsx14(X3, { className: "h-5 w-5" })
|
|
3148
2881
|
}
|
|
3149
2882
|
)
|
|
3150
2883
|
] })
|
|
3151
2884
|
]
|
|
3152
2885
|
}
|
|
3153
|
-
) : /* @__PURE__ */
|
|
2886
|
+
) : /* @__PURE__ */ jsx14(
|
|
3154
2887
|
"div",
|
|
3155
2888
|
{
|
|
3156
2889
|
className: `h-full w-full border-2 border-dashed ${uploading ? "border-ods-accent" : "border-ods-border hover:border-ods-accent"} flex cursor-pointer flex-col items-center justify-center rounded-lg bg-ods-bg`,
|
|
3157
2890
|
style: { height: heightStyle },
|
|
3158
2891
|
onClick: openDialog,
|
|
3159
|
-
children: uploading ? /* @__PURE__ */
|
|
3160
|
-
/* @__PURE__ */
|
|
3161
|
-
/* @__PURE__ */
|
|
3162
|
-
/* @__PURE__ */
|
|
3163
|
-
/* @__PURE__ */
|
|
2892
|
+
children: uploading ? /* @__PURE__ */ jsx14(Loader2, { className: "h-8 w-8 animate-spin text-ods-accent" }) : /* @__PURE__ */ jsxs11(Fragment3, { children: [
|
|
2893
|
+
/* @__PURE__ */ jsx14(ImageIcon2, { className: "h-12 w-12 text-ods-text-secondary" }),
|
|
2894
|
+
/* @__PURE__ */ jsx14("span", { className: "mt-2 text-ods-text-primary text-h6", children: "Upload cover image" }),
|
|
2895
|
+
/* @__PURE__ */ jsx14("span", { className: "mt-1 text-ods-text-secondary text-h6", children: "Click to upload or drag and drop" }),
|
|
2896
|
+
/* @__PURE__ */ jsx14("span", { className: "text-ods-text-secondary text-h6", children: "PNG, JPEG, WebP, GIF up to 5MB" })
|
|
3164
2897
|
] })
|
|
3165
2898
|
}
|
|
3166
2899
|
),
|
|
3167
|
-
/* @__PURE__ */
|
|
2900
|
+
/* @__PURE__ */ jsx14("input", { ref: inputRef, type: "file", accept: "image/*", onChange: handleSelect, className: "hidden" })
|
|
3168
2901
|
] });
|
|
3169
2902
|
}
|
|
3170
2903
|
|
|
@@ -3183,13 +2916,13 @@ var CommunityIcon2 = MessageSquare;
|
|
|
3183
2916
|
var CompareIcon2 = GitCompare;
|
|
3184
2917
|
|
|
3185
2918
|
// src/components/icons-block.tsx
|
|
3186
|
-
import { jsx as
|
|
2919
|
+
import { jsx as jsx15, jsxs as jsxs12 } from "react/jsx-runtime";
|
|
3187
2920
|
var SunIcon2 = Sun;
|
|
3188
2921
|
var MoonIcon2 = Moon;
|
|
3189
2922
|
var CheckCircleIcon3 = CheckCircle;
|
|
3190
2923
|
var GitHubIcon2 = Github;
|
|
3191
2924
|
var PlusCircleIcon2 = PlusCircle;
|
|
3192
|
-
var OpenmspLogo2 = () => /* @__PURE__ */
|
|
2925
|
+
var OpenmspLogo2 = () => /* @__PURE__ */ jsx15("div", { children: "Logo" });
|
|
3193
2926
|
var availableIcons = [
|
|
3194
2927
|
VendorDirectoryIcon2,
|
|
3195
2928
|
OpenSourceIcon2,
|
|
@@ -3252,17 +2985,17 @@ function ResponsiveIconsBlock({ loading = false }) {
|
|
|
3252
2985
|
return iconGrid[row]?.[col] || availableIcons[0];
|
|
3253
2986
|
};
|
|
3254
2987
|
if (loading || iconGrid.length === 0) {
|
|
3255
|
-
return /* @__PURE__ */
|
|
2988
|
+
return /* @__PURE__ */ jsx15(
|
|
3256
2989
|
"div",
|
|
3257
2990
|
{
|
|
3258
2991
|
className: "relative h-[80px] w-full overflow-hidden bg-[#1A1A1A] md:h-[112px]",
|
|
3259
2992
|
role: "presentation",
|
|
3260
2993
|
"aria-hidden": "true",
|
|
3261
|
-
children: /* @__PURE__ */
|
|
2994
|
+
children: /* @__PURE__ */ jsx15("div", { className: "absolute inset-0 animate-pulse bg-[#2A2A2A]/60" })
|
|
3262
2995
|
}
|
|
3263
2996
|
);
|
|
3264
2997
|
}
|
|
3265
|
-
return /* @__PURE__ */
|
|
2998
|
+
return /* @__PURE__ */ jsxs12(
|
|
3266
2999
|
"div",
|
|
3267
3000
|
{
|
|
3268
3001
|
className: "relative z-10 h-[80px] w-full overflow-hidden bg-[#1A1A1A] md:h-[112px]",
|
|
@@ -3270,14 +3003,14 @@ function ResponsiveIconsBlock({ loading = false }) {
|
|
|
3270
3003
|
role: "presentation",
|
|
3271
3004
|
"aria-hidden": "true",
|
|
3272
3005
|
children: [
|
|
3273
|
-
/* @__PURE__ */
|
|
3006
|
+
/* @__PURE__ */ jsx15("style", { children: `
|
|
3274
3007
|
.icons-block svg,
|
|
3275
3008
|
.icons-block svg * {
|
|
3276
3009
|
filter: grayscale(100%) brightness(0) invert(1) brightness(0.4) !important;
|
|
3277
3010
|
fill: currentColor !important;
|
|
3278
3011
|
}
|
|
3279
3012
|
` }),
|
|
3280
|
-
/* @__PURE__ */
|
|
3013
|
+
/* @__PURE__ */ jsx15(
|
|
3281
3014
|
"div",
|
|
3282
3015
|
{
|
|
3283
3016
|
className: "icons-block grid h-full w-full",
|
|
@@ -3289,7 +3022,7 @@ function ResponsiveIconsBlock({ loading = false }) {
|
|
|
3289
3022
|
const col = idx % displayColumns;
|
|
3290
3023
|
const row = Math.floor(idx / displayColumns);
|
|
3291
3024
|
const IconComponent = getIconForIndex(idx);
|
|
3292
|
-
return /* @__PURE__ */
|
|
3025
|
+
return /* @__PURE__ */ jsx15(
|
|
3293
3026
|
"div",
|
|
3294
3027
|
{
|
|
3295
3028
|
className: "flex h-full w-full items-center justify-center",
|
|
@@ -3302,7 +3035,7 @@ function ResponsiveIconsBlock({ loading = false }) {
|
|
|
3302
3035
|
boxSizing: "border-box"
|
|
3303
3036
|
},
|
|
3304
3037
|
role: "presentation",
|
|
3305
|
-
children: /* @__PURE__ */
|
|
3038
|
+
children: /* @__PURE__ */ jsx15(IconComponent, { width: 16, height: 16, className: "text-[#666666] md:h-5 md:w-5", "aria-hidden": "true" })
|
|
3306
3039
|
},
|
|
3307
3040
|
idx
|
|
3308
3041
|
);
|
|
@@ -3318,7 +3051,7 @@ function ResponsiveIconsBlock({ loading = false }) {
|
|
|
3318
3051
|
import { Check, RotateCcw } from "lucide-react";
|
|
3319
3052
|
import { useCallback as useCallback2, useState as useState5 } from "react";
|
|
3320
3053
|
import Cropper from "react-easy-crop";
|
|
3321
|
-
import { jsx as
|
|
3054
|
+
import { jsx as jsx16, jsxs as jsxs13 } from "react/jsx-runtime";
|
|
3322
3055
|
function loadImage(src) {
|
|
3323
3056
|
return new Promise((resolve, reject) => {
|
|
3324
3057
|
const img = new Image();
|
|
@@ -3405,7 +3138,7 @@ var ImageCropper = ({
|
|
|
3405
3138
|
onCancel?.();
|
|
3406
3139
|
}
|
|
3407
3140
|
};
|
|
3408
|
-
return /* @__PURE__ */
|
|
3141
|
+
return /* @__PURE__ */ jsxs13(
|
|
3409
3142
|
"div",
|
|
3410
3143
|
{
|
|
3411
3144
|
className: cn("relative flex w-full flex-col gap-4", className),
|
|
@@ -3413,7 +3146,7 @@ var ImageCropper = ({
|
|
|
3413
3146
|
tabIndex: 0,
|
|
3414
3147
|
"aria-label": "Image cropper",
|
|
3415
3148
|
children: [
|
|
3416
|
-
/* @__PURE__ */
|
|
3149
|
+
/* @__PURE__ */ jsx16("div", { className: cn("relative aspect-square w-full overflow-hidden rounded-md md:aspect-video", checkerBg), children: /* @__PURE__ */ jsx16(
|
|
3417
3150
|
Cropper,
|
|
3418
3151
|
{
|
|
3419
3152
|
image: src,
|
|
@@ -3430,10 +3163,10 @@ var ImageCropper = ({
|
|
|
3430
3163
|
objectFit: "contain"
|
|
3431
3164
|
}
|
|
3432
3165
|
) }),
|
|
3433
|
-
/* @__PURE__ */
|
|
3434
|
-
/* @__PURE__ */
|
|
3435
|
-
/* @__PURE__ */
|
|
3436
|
-
/* @__PURE__ */
|
|
3166
|
+
/* @__PURE__ */ jsxs13("div", { className: "flex flex-col gap-4", children: [
|
|
3167
|
+
/* @__PURE__ */ jsxs13("div", { className: "flex items-center gap-3", children: [
|
|
3168
|
+
/* @__PURE__ */ jsx16("span", { className: "min-w-[60px] text-h6", children: "Zoom" }),
|
|
3169
|
+
/* @__PURE__ */ jsx16(
|
|
3437
3170
|
Slider,
|
|
3438
3171
|
{
|
|
3439
3172
|
min: 1,
|
|
@@ -3446,9 +3179,9 @@ var ImageCropper = ({
|
|
|
3446
3179
|
}
|
|
3447
3180
|
)
|
|
3448
3181
|
] }),
|
|
3449
|
-
/* @__PURE__ */
|
|
3450
|
-
/* @__PURE__ */
|
|
3451
|
-
/* @__PURE__ */
|
|
3182
|
+
/* @__PURE__ */ jsxs13("div", { className: "flex items-center gap-3", children: [
|
|
3183
|
+
/* @__PURE__ */ jsx16("span", { className: "min-w-[60px] text-h6", children: "Rotate" }),
|
|
3184
|
+
/* @__PURE__ */ jsx16(
|
|
3452
3185
|
Slider,
|
|
3453
3186
|
{
|
|
3454
3187
|
min: 0,
|
|
@@ -3460,12 +3193,12 @@ var ImageCropper = ({
|
|
|
3460
3193
|
className: "flex-1"
|
|
3461
3194
|
}
|
|
3462
3195
|
),
|
|
3463
|
-
/* @__PURE__ */
|
|
3196
|
+
/* @__PURE__ */ jsx16(Button, { variant: "outline", size: "icon", onClick: () => setRotation(0), "aria-label": "Reset rotation", children: /* @__PURE__ */ jsx16(RotateCcw, { className: "h-4 w-4" }) })
|
|
3464
3197
|
] })
|
|
3465
3198
|
] }),
|
|
3466
|
-
/* @__PURE__ */
|
|
3467
|
-
onCancel && /* @__PURE__ */
|
|
3468
|
-
/* @__PURE__ */
|
|
3199
|
+
/* @__PURE__ */ jsxs13("div", { className: "mt-2 flex justify-end gap-2", children: [
|
|
3200
|
+
onCancel && /* @__PURE__ */ jsx16(Button, { variant: "outline", onClick: onCancel, "aria-label": "Cancel crop", children: "Cancel" }),
|
|
3201
|
+
/* @__PURE__ */ jsx16(
|
|
3469
3202
|
Button,
|
|
3470
3203
|
{
|
|
3471
3204
|
variant: "accent",
|
|
@@ -3473,7 +3206,7 @@ var ImageCropper = ({
|
|
|
3473
3206
|
const result = await exportCrop();
|
|
3474
3207
|
if (result) onComplete(result);
|
|
3475
3208
|
},
|
|
3476
|
-
leftIcon: /* @__PURE__ */
|
|
3209
|
+
leftIcon: /* @__PURE__ */ jsx16(Check, { className: "h-4 w-4" }),
|
|
3477
3210
|
"aria-label": "Apply crop",
|
|
3478
3211
|
children: "Apply"
|
|
3479
3212
|
}
|
|
@@ -3485,19 +3218,19 @@ var ImageCropper = ({
|
|
|
3485
3218
|
};
|
|
3486
3219
|
|
|
3487
3220
|
// src/components/metric-value.tsx
|
|
3488
|
-
import { jsx as
|
|
3221
|
+
import { jsx as jsx17, jsxs as jsxs14 } from "react/jsx-runtime";
|
|
3489
3222
|
function MetricValue({ value, label, className }) {
|
|
3490
|
-
return /* @__PURE__ */
|
|
3223
|
+
return /* @__PURE__ */ jsxs14("div", { className: cn("flex items-end gap-2 whitespace-nowrap text-ods-text-primary text-h4", className), children: [
|
|
3491
3224
|
value,
|
|
3492
|
-
/* @__PURE__ */
|
|
3225
|
+
/* @__PURE__ */ jsx17("span", { className: "text-ods-text-secondary text-h6", children: label })
|
|
3493
3226
|
] });
|
|
3494
3227
|
}
|
|
3495
3228
|
|
|
3496
3229
|
// src/components/msp-display.tsx
|
|
3497
|
-
import { jsx as
|
|
3230
|
+
import { jsx as jsx18, jsxs as jsxs15 } from "react/jsx-runtime";
|
|
3498
3231
|
function MSPDisplay({ name, logoUrl, size = 40, className }) {
|
|
3499
|
-
return /* @__PURE__ */
|
|
3500
|
-
/* @__PURE__ */
|
|
3232
|
+
return /* @__PURE__ */ jsxs15("div", { className: cn("flex min-w-0 items-center gap-2", className), children: [
|
|
3233
|
+
/* @__PURE__ */ jsx18(
|
|
3501
3234
|
SquareAvatar,
|
|
3502
3235
|
{
|
|
3503
3236
|
src: logoUrl ? getProxiedImageUrl(logoUrl) || logoUrl : void 0,
|
|
@@ -3506,16 +3239,16 @@ function MSPDisplay({ name, logoUrl, size = 40, className }) {
|
|
|
3506
3239
|
sizePx: size
|
|
3507
3240
|
}
|
|
3508
3241
|
),
|
|
3509
|
-
/* @__PURE__ */
|
|
3242
|
+
/* @__PURE__ */ jsx18("h2", { className: "truncate pl-2", children: name })
|
|
3510
3243
|
] });
|
|
3511
3244
|
}
|
|
3512
3245
|
|
|
3513
3246
|
// src/components/open-source-features.tsx
|
|
3514
3247
|
import { Terminal, DollarSign as DollarSign2, Network, Users as Users2 } from "lucide-react";
|
|
3515
|
-
import { jsx as
|
|
3248
|
+
import { jsx as jsx19, jsxs as jsxs16 } from "react/jsx-runtime";
|
|
3516
3249
|
|
|
3517
3250
|
// src/components/pricing-display.tsx
|
|
3518
|
-
import { jsx as
|
|
3251
|
+
import { jsx as jsx20, jsxs as jsxs17 } from "react/jsx-runtime";
|
|
3519
3252
|
var PRICING_STYLES = {
|
|
3520
3253
|
// Comparison table style (current default)
|
|
3521
3254
|
comparison: {
|
|
@@ -3551,11 +3284,11 @@ function PricingDisplay({
|
|
|
3551
3284
|
styleConfig = PRICING_STYLES.comparison
|
|
3552
3285
|
}) {
|
|
3553
3286
|
if (typeof pricing === "string") {
|
|
3554
|
-
return /* @__PURE__ */
|
|
3287
|
+
return /* @__PURE__ */ jsx20(LegacyPricingDisplay, { pricing, className, styleConfig });
|
|
3555
3288
|
}
|
|
3556
3289
|
const pricingArray = Array.isArray(pricing) ? pricing : [pricing];
|
|
3557
3290
|
if (!pricingArray || pricingArray.length === 0) {
|
|
3558
|
-
return /* @__PURE__ */
|
|
3291
|
+
return /* @__PURE__ */ jsx20(
|
|
3559
3292
|
"span",
|
|
3560
3293
|
{
|
|
3561
3294
|
className: `${styleConfig.priceTextColor} ${styleConfig.priceTextSize} ${styleConfig.fontFamily} ${className}`,
|
|
@@ -3567,9 +3300,9 @@ function PricingDisplay({
|
|
|
3567
3300
|
const item = pricingArray[0];
|
|
3568
3301
|
const price = item.ranges?.[0]?.min || 0;
|
|
3569
3302
|
const unit = item.ranges?.[0]?.unit;
|
|
3570
|
-
return /* @__PURE__ */
|
|
3571
|
-
/* @__PURE__ */
|
|
3572
|
-
unit && /* @__PURE__ */
|
|
3303
|
+
return /* @__PURE__ */ jsxs17("span", { className: `${styleConfig.fontFamily} ${className}`, children: [
|
|
3304
|
+
/* @__PURE__ */ jsx20("span", { className: `${styleConfig.priceTextColor} ${styleConfig.priceTextSize}`, children: formatPriceValue(price, styleConfig.showTildePrefix) }),
|
|
3305
|
+
unit && /* @__PURE__ */ jsxs17("span", { className: `${styleConfig.secondaryTextColor} ${styleConfig.secondaryTextSize}`, children: [
|
|
3573
3306
|
"/",
|
|
3574
3307
|
unit
|
|
3575
3308
|
] })
|
|
@@ -3579,9 +3312,9 @@ function PricingDisplay({
|
|
|
3579
3312
|
(item) => formatPriceValue(item.ranges?.[0]?.min || 0, styleConfig.showTildePrefix)
|
|
3580
3313
|
);
|
|
3581
3314
|
const itemWithUnit = pricingArray.find((item) => item.ranges?.[0]?.unit);
|
|
3582
|
-
return /* @__PURE__ */
|
|
3583
|
-
/* @__PURE__ */
|
|
3584
|
-
itemWithUnit && itemWithUnit.ranges?.[0]?.unit && /* @__PURE__ */
|
|
3315
|
+
return /* @__PURE__ */ jsxs17("span", { className: `${styleConfig.fontFamily} ${className}`, children: [
|
|
3316
|
+
/* @__PURE__ */ jsx20("span", { className: `${styleConfig.priceTextColor} ${styleConfig.priceTextSize}`, children: priceValues.join(" | ") }),
|
|
3317
|
+
itemWithUnit && itemWithUnit.ranges?.[0]?.unit && /* @__PURE__ */ jsxs17("span", { className: `${styleConfig.secondaryTextColor} ${styleConfig.secondaryTextSize}`, children: [
|
|
3585
3318
|
"/",
|
|
3586
3319
|
itemWithUnit.ranges[0].unit
|
|
3587
3320
|
] })
|
|
@@ -3602,7 +3335,7 @@ function LegacyPricingDisplay({
|
|
|
3602
3335
|
styleConfig = PRICING_STYLES.comparison
|
|
3603
3336
|
}) {
|
|
3604
3337
|
if (pricing === "Free" || pricing === "No pricing data") {
|
|
3605
|
-
return /* @__PURE__ */
|
|
3338
|
+
return /* @__PURE__ */ jsx20(
|
|
3606
3339
|
"span",
|
|
3607
3340
|
{
|
|
3608
3341
|
className: `${styleConfig.priceTextColor} ${styleConfig.priceTextSize} ${styleConfig.fontFamily} ${className}`,
|
|
@@ -3664,9 +3397,9 @@ function LegacyPricingDisplay({
|
|
|
3664
3397
|
};
|
|
3665
3398
|
};
|
|
3666
3399
|
const { mainValue, secondaryInfo } = parsePricing(pricing);
|
|
3667
|
-
return /* @__PURE__ */
|
|
3668
|
-
/* @__PURE__ */
|
|
3669
|
-
secondaryInfo && /* @__PURE__ */
|
|
3400
|
+
return /* @__PURE__ */ jsxs17("span", { className: `${styleConfig.fontFamily} ${className}`, children: [
|
|
3401
|
+
/* @__PURE__ */ jsx20("span", { className: `${styleConfig.priceTextColor} ${styleConfig.priceTextSize}`, children: mainValue }),
|
|
3402
|
+
secondaryInfo && /* @__PURE__ */ jsx20("span", { className: `${styleConfig.secondaryTextColor} ${styleConfig.secondaryTextSize}`, children: secondaryInfo })
|
|
3670
3403
|
] });
|
|
3671
3404
|
}
|
|
3672
3405
|
function formatPricingForDisplay(pricing) {
|
|
@@ -3674,7 +3407,7 @@ function formatPricingForDisplay(pricing) {
|
|
|
3674
3407
|
}
|
|
3675
3408
|
|
|
3676
3409
|
// src/components/results-count.tsx
|
|
3677
|
-
import { Fragment as
|
|
3410
|
+
import { Fragment as Fragment4, jsx as jsx21, jsxs as jsxs18 } from "react/jsx-runtime";
|
|
3678
3411
|
function ResultsCount({ currentPage, pageSize, totalResults, resultType, sortingMessage }) {
|
|
3679
3412
|
if (totalResults === 0) {
|
|
3680
3413
|
return null;
|
|
@@ -3684,7 +3417,7 @@ function ResultsCount({ currentPage, pageSize, totalResults, resultType, sorting
|
|
|
3684
3417
|
const plural = resultType === "vendors" ? "vendors" : "posts";
|
|
3685
3418
|
const singular = resultType === "vendors" ? "vendor" : "post";
|
|
3686
3419
|
const displayType = totalResults === 1 ? singular : plural;
|
|
3687
|
-
return /* @__PURE__ */
|
|
3420
|
+
return /* @__PURE__ */ jsx21("div", { className: "mb-6", children: /* @__PURE__ */ jsx21("p", { className: "text-ods-text-secondary text-h6", children: totalResults > 0 && /* @__PURE__ */ jsxs18(Fragment4, { children: [
|
|
3688
3421
|
"Showing ",
|
|
3689
3422
|
startIndex,
|
|
3690
3423
|
"-",
|
|
@@ -3693,7 +3426,7 @@ function ResultsCount({ currentPage, pageSize, totalResults, resultType, sorting
|
|
|
3693
3426
|
totalResults,
|
|
3694
3427
|
" ",
|
|
3695
3428
|
displayType,
|
|
3696
|
-
sortingMessage && /* @__PURE__ */
|
|
3429
|
+
sortingMessage && /* @__PURE__ */ jsxs18("span", { className: "ml-2 text-ods-accent", children: [
|
|
3697
3430
|
"\u2022 ",
|
|
3698
3431
|
sortingMessage
|
|
3699
3432
|
] })
|
|
@@ -3704,14 +3437,14 @@ function ResultsCount({ currentPage, pageSize, totalResults, resultType, sorting
|
|
|
3704
3437
|
import { Boxes, Database, Hand, Plug, ShieldCheck, Sparkles } from "lucide-react";
|
|
3705
3438
|
|
|
3706
3439
|
// src/components/openframe-logo.tsx
|
|
3707
|
-
import { jsx as
|
|
3440
|
+
import { jsx as jsx22, jsxs as jsxs19 } from "react/jsx-runtime";
|
|
3708
3441
|
var OpenFrameLogo2 = ({
|
|
3709
3442
|
className,
|
|
3710
3443
|
lowerPathColor,
|
|
3711
3444
|
upperPathColor,
|
|
3712
3445
|
...props
|
|
3713
3446
|
}) => {
|
|
3714
|
-
return /* @__PURE__ */
|
|
3447
|
+
return /* @__PURE__ */ jsx22(
|
|
3715
3448
|
"svg",
|
|
3716
3449
|
{
|
|
3717
3450
|
...props,
|
|
@@ -3725,30 +3458,30 @@ var OpenFrameLogo2 = ({
|
|
|
3725
3458
|
"--fill-0": "currentColor",
|
|
3726
3459
|
...props.style
|
|
3727
3460
|
},
|
|
3728
|
-
children: /* @__PURE__ */
|
|
3729
|
-
/* @__PURE__ */
|
|
3730
|
-
/* @__PURE__ */
|
|
3461
|
+
children: /* @__PURE__ */ jsxs19("g", { children: [
|
|
3462
|
+
/* @__PURE__ */ jsxs19("g", { children: [
|
|
3463
|
+
/* @__PURE__ */ jsx22(
|
|
3731
3464
|
"path",
|
|
3732
3465
|
{
|
|
3733
3466
|
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",
|
|
3734
3467
|
fill: lowerPathColor ?? "#ffffff"
|
|
3735
3468
|
}
|
|
3736
3469
|
),
|
|
3737
|
-
/* @__PURE__ */
|
|
3470
|
+
/* @__PURE__ */ jsx22(
|
|
3738
3471
|
"path",
|
|
3739
3472
|
{
|
|
3740
3473
|
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",
|
|
3741
3474
|
fill: lowerPathColor ?? "#ffffff"
|
|
3742
3475
|
}
|
|
3743
3476
|
),
|
|
3744
|
-
/* @__PURE__ */
|
|
3477
|
+
/* @__PURE__ */ jsx22(
|
|
3745
3478
|
"path",
|
|
3746
3479
|
{
|
|
3747
3480
|
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",
|
|
3748
3481
|
fill: lowerPathColor ?? "#ffffff"
|
|
3749
3482
|
}
|
|
3750
3483
|
),
|
|
3751
|
-
/* @__PURE__ */
|
|
3484
|
+
/* @__PURE__ */ jsx22(
|
|
3752
3485
|
"path",
|
|
3753
3486
|
{
|
|
3754
3487
|
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",
|
|
@@ -3756,7 +3489,7 @@ var OpenFrameLogo2 = ({
|
|
|
3756
3489
|
}
|
|
3757
3490
|
)
|
|
3758
3491
|
] }),
|
|
3759
|
-
/* @__PURE__ */
|
|
3492
|
+
/* @__PURE__ */ jsx22(
|
|
3760
3493
|
"path",
|
|
3761
3494
|
{
|
|
3762
3495
|
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",
|
|
@@ -3769,7 +3502,7 @@ var OpenFrameLogo2 = ({
|
|
|
3769
3502
|
};
|
|
3770
3503
|
|
|
3771
3504
|
// src/components/vendor-tag.tsx
|
|
3772
|
-
import { jsx as
|
|
3505
|
+
import { jsx as jsx23, jsxs as jsxs20 } from "react/jsx-runtime";
|
|
3773
3506
|
function VendorTag({ type, text, className = "", hidden = false, size = "md", accentColor }) {
|
|
3774
3507
|
const baseClasses = cn(
|
|
3775
3508
|
"flex items-center gap-1.5 whitespace-nowrap rounded border border-ods-border bg-ods-bg",
|
|
@@ -3781,99 +3514,99 @@ function VendorTag({ type, text, className = "", hidden = false, size = "md", ac
|
|
|
3781
3514
|
return {
|
|
3782
3515
|
text: "Placeholder",
|
|
3783
3516
|
textColor: "text-ods-text-primary",
|
|
3784
|
-
icon: /* @__PURE__ */
|
|
3517
|
+
icon: /* @__PURE__ */ jsx23("div", { className: "flex h-4 w-4 flex-shrink-0 items-center justify-center rounded-sm", children: /* @__PURE__ */ jsx23(Sparkles, { width: 10, height: 10, className: "text-ods-text-primary" }) })
|
|
3785
3518
|
};
|
|
3786
3519
|
case "ai":
|
|
3787
3520
|
return {
|
|
3788
3521
|
text: "AI Selected",
|
|
3789
3522
|
textColor: "text-ods-text-primary",
|
|
3790
|
-
icon: /* @__PURE__ */
|
|
3523
|
+
icon: /* @__PURE__ */ jsx23("div", { className: "flex h-4 w-4 flex-shrink-0 items-center justify-center rounded-sm", children: /* @__PURE__ */ jsx23(Sparkles, { width: 10, height: 10, className: "text-ods-text-primary" }) })
|
|
3791
3524
|
};
|
|
3792
3525
|
case "manual":
|
|
3793
3526
|
return {
|
|
3794
3527
|
text: "Manually Selected",
|
|
3795
3528
|
textColor: "text-ods-text-secondary",
|
|
3796
|
-
icon: /* @__PURE__ */
|
|
3529
|
+
icon: /* @__PURE__ */ jsx23("div", { className: "flex h-4 w-4 flex-shrink-0 items-center justify-center rounded-sm", children: /* @__PURE__ */ jsx23(Hand, { width: 10, height: 10, className: "text-ods-text-secondary" }) })
|
|
3797
3530
|
};
|
|
3798
3531
|
case "open-source":
|
|
3799
3532
|
return {
|
|
3800
3533
|
text: text || "Open Source",
|
|
3801
|
-
icon: /* @__PURE__ */
|
|
3534
|
+
icon: /* @__PURE__ */ jsx23(
|
|
3802
3535
|
"div",
|
|
3803
3536
|
{
|
|
3804
3537
|
className: "flex h-4 w-4 flex-shrink-0 items-center justify-center rounded-sm bg-ods-accent",
|
|
3805
3538
|
style: accentColor ? { backgroundColor: accentColor } : void 0,
|
|
3806
|
-
children: /* @__PURE__ */
|
|
3539
|
+
children: /* @__PURE__ */ jsx23(OpenSourceIcon2, { width: 10, height: 10, className: "text-ods-text-on-accent" })
|
|
3807
3540
|
}
|
|
3808
3541
|
)
|
|
3809
3542
|
};
|
|
3810
3543
|
case "commercial":
|
|
3811
3544
|
return {
|
|
3812
3545
|
text: text || "Commercial Vendor",
|
|
3813
|
-
icon: /* @__PURE__ */
|
|
3546
|
+
icon: /* @__PURE__ */ jsx23("div", { className: "flex h-4 w-4 flex-shrink-0 items-center justify-center rounded-sm bg-ods-border", children: /* @__PURE__ */ jsx23(CoinsIcon2, { width: 10, height: 10, className: "text-ods-text-secondary" }) })
|
|
3814
3547
|
};
|
|
3815
3548
|
// platform-capability tags — same neutral icon-box chrome as 'commercial'
|
|
3816
3549
|
case "api":
|
|
3817
3550
|
return {
|
|
3818
3551
|
text: text || "API",
|
|
3819
|
-
icon: /* @__PURE__ */
|
|
3552
|
+
icon: /* @__PURE__ */ jsx23("div", { className: "flex h-4 w-4 flex-shrink-0 items-center justify-center rounded-sm bg-ods-border", children: /* @__PURE__ */ jsx23(Plug, { width: 10, height: 10, className: "text-ods-text-secondary" }) })
|
|
3820
3553
|
};
|
|
3821
3554
|
case "data":
|
|
3822
3555
|
return {
|
|
3823
3556
|
text: text || "Data",
|
|
3824
|
-
icon: /* @__PURE__ */
|
|
3557
|
+
icon: /* @__PURE__ */ jsx23("div", { className: "flex h-4 w-4 flex-shrink-0 items-center justify-center rounded-sm bg-ods-border", children: /* @__PURE__ */ jsx23(Database, { width: 10, height: 10, className: "text-ods-text-secondary" }) })
|
|
3825
3558
|
};
|
|
3826
3559
|
case "k8s":
|
|
3827
3560
|
return {
|
|
3828
3561
|
text: text || "K8s",
|
|
3829
|
-
icon: /* @__PURE__ */
|
|
3562
|
+
icon: /* @__PURE__ */ jsx23("div", { className: "flex h-4 w-4 flex-shrink-0 items-center justify-center rounded-sm bg-ods-border", children: /* @__PURE__ */ jsx23(Boxes, { width: 10, height: 10, className: "text-ods-text-secondary" }) })
|
|
3830
3563
|
};
|
|
3831
3564
|
case "secured":
|
|
3832
3565
|
return {
|
|
3833
3566
|
text: text || "Secured",
|
|
3834
|
-
icon: /* @__PURE__ */
|
|
3567
|
+
icon: /* @__PURE__ */ jsx23("div", { className: "flex h-4 w-4 flex-shrink-0 items-center justify-center rounded-sm bg-ods-border", children: /* @__PURE__ */ jsx23(ShieldCheck, { width: 10, height: 10, className: "text-ods-text-secondary" }) })
|
|
3835
3568
|
};
|
|
3836
3569
|
case "free":
|
|
3837
3570
|
return {
|
|
3838
3571
|
text: text || "Free",
|
|
3839
|
-
icon: /* @__PURE__ */
|
|
3572
|
+
icon: /* @__PURE__ */ jsx23("div", { className: "flex h-4 w-4 flex-shrink-0 items-center justify-center rounded-sm bg-ods-accent", children: /* @__PURE__ */ jsx23("span", { className: "text-[8px] font-bold text-ods-text-on-accent", children: "$" }) })
|
|
3840
3573
|
};
|
|
3841
3574
|
case "freemium":
|
|
3842
3575
|
return {
|
|
3843
3576
|
text: text || "Freemium",
|
|
3844
|
-
icon: /* @__PURE__ */
|
|
3577
|
+
icon: /* @__PURE__ */ jsx23("div", { className: "flex h-4 w-4 flex-shrink-0 items-center justify-center rounded-sm bg-ods-accent", children: /* @__PURE__ */ jsx23("span", { className: "text-[8px] font-bold text-ods-text-on-accent", children: "$" }) })
|
|
3845
3578
|
};
|
|
3846
3579
|
case "paid":
|
|
3847
3580
|
return {
|
|
3848
3581
|
text: text || "Paid",
|
|
3849
|
-
icon: /* @__PURE__ */
|
|
3582
|
+
icon: /* @__PURE__ */ jsx23("div", { className: "flex h-4 w-4 flex-shrink-0 items-center justify-center rounded-sm bg-ods-border", children: /* @__PURE__ */ jsx23(CoinsIcon2, { width: 10, height: 10, className: "text-ods-text-secondary" }) })
|
|
3850
3583
|
};
|
|
3851
3584
|
case "enterprise":
|
|
3852
3585
|
return {
|
|
3853
3586
|
text: text || "Enterprise",
|
|
3854
|
-
icon: /* @__PURE__ */
|
|
3587
|
+
icon: /* @__PURE__ */ jsx23("div", { className: "flex h-4 w-4 flex-shrink-0 items-center justify-center rounded-sm bg-ods-accent", children: /* @__PURE__ */ jsx23("span", { className: "text-[8px] font-bold text-ods-text-on-accent", children: "E" }) })
|
|
3855
3588
|
};
|
|
3856
3589
|
case "recommended":
|
|
3857
3590
|
return {
|
|
3858
3591
|
text: text || "Recommended",
|
|
3859
|
-
icon: /* @__PURE__ */
|
|
3592
|
+
icon: /* @__PURE__ */ jsx23("div", { className: "flex h-4 w-4 flex-shrink-0 items-center justify-center rounded-sm bg-ods-accent", children: /* @__PURE__ */ jsx23("span", { className: "text-[8px] font-bold text-ods-text-on-accent", children: "\u2605" }) })
|
|
3860
3593
|
};
|
|
3861
3594
|
case "classification": {
|
|
3862
3595
|
const classificationType = text?.toLowerCase();
|
|
3863
3596
|
if (classificationType === "open_source") {
|
|
3864
3597
|
return {
|
|
3865
3598
|
text: "Open Source",
|
|
3866
|
-
icon: /* @__PURE__ */
|
|
3599
|
+
icon: /* @__PURE__ */ jsx23("div", { className: "flex h-4 w-4 flex-shrink-0 items-center justify-center rounded-sm bg-ods-accent", children: /* @__PURE__ */ jsx23(OpenSourceIcon2, { width: 10, height: 10, className: "text-ods-text-on-accent" }) })
|
|
3867
3600
|
};
|
|
3868
3601
|
} else if (classificationType === "commercial") {
|
|
3869
3602
|
return {
|
|
3870
3603
|
text: "Commercial Vendor",
|
|
3871
|
-
icon: /* @__PURE__ */
|
|
3604
|
+
icon: /* @__PURE__ */ jsx23("div", { className: "flex h-4 w-4 flex-shrink-0 items-center justify-center rounded-sm bg-ods-border", children: /* @__PURE__ */ jsx23(CoinsIcon2, { width: 10, height: 10, className: "text-ods-text-secondary" }) })
|
|
3872
3605
|
};
|
|
3873
3606
|
} else if (classificationType === "openframe_selected") {
|
|
3874
3607
|
return {
|
|
3875
3608
|
text: "OpenFrame Selected",
|
|
3876
|
-
icon: /* @__PURE__ */
|
|
3609
|
+
icon: /* @__PURE__ */ jsx23(
|
|
3877
3610
|
OpenFrameLogo2,
|
|
3878
3611
|
{
|
|
3879
3612
|
lowerPathColor: "currentColor",
|
|
@@ -3885,14 +3618,14 @@ function VendorTag({ type, text, className = "", hidden = false, size = "md", ac
|
|
|
3885
3618
|
} else {
|
|
3886
3619
|
return {
|
|
3887
3620
|
text: text || "Classification",
|
|
3888
|
-
icon: /* @__PURE__ */
|
|
3621
|
+
icon: /* @__PURE__ */ jsx23("div", { className: "flex h-4 w-4 flex-shrink-0 items-center justify-center rounded-sm bg-ods-accent", children: /* @__PURE__ */ jsx23("span", { className: "text-[8px] font-bold text-ods-text-on-accent", children: "C" }) })
|
|
3889
3622
|
};
|
|
3890
3623
|
}
|
|
3891
3624
|
}
|
|
3892
3625
|
case "openframe_selected":
|
|
3893
3626
|
return {
|
|
3894
3627
|
text: text || "OpenFrame Selected",
|
|
3895
|
-
icon: /* @__PURE__ */
|
|
3628
|
+
icon: /* @__PURE__ */ jsx23(
|
|
3896
3629
|
OpenFrameLogo2,
|
|
3897
3630
|
{
|
|
3898
3631
|
lowerPathColor: "currentColor",
|
|
@@ -3909,19 +3642,19 @@ function VendorTag({ type, text, className = "", hidden = false, size = "md", ac
|
|
|
3909
3642
|
}
|
|
3910
3643
|
};
|
|
3911
3644
|
const { text: displayText, icon, textColor } = getTagContent();
|
|
3912
|
-
return /* @__PURE__ */
|
|
3645
|
+
return /* @__PURE__ */ jsxs20("div", { className: cn(baseClasses, className, hidden && "invisible"), children: [
|
|
3913
3646
|
icon,
|
|
3914
|
-
/* @__PURE__ */
|
|
3647
|
+
/* @__PURE__ */ jsx23("span", { className: cn("font-semibold text-h5", textColor ? textColor : "text-ods-text-primary"), children: displayText })
|
|
3915
3648
|
] });
|
|
3916
3649
|
}
|
|
3917
3650
|
|
|
3918
3651
|
// src/components/selection-source-badge.tsx
|
|
3919
|
-
import { jsx as
|
|
3652
|
+
import { jsx as jsx24 } from "react/jsx-runtime";
|
|
3920
3653
|
function SelectionSourceBadge({ source, hidden = false }) {
|
|
3921
3654
|
if (!source) {
|
|
3922
3655
|
return null;
|
|
3923
3656
|
}
|
|
3924
|
-
return /* @__PURE__ */
|
|
3657
|
+
return /* @__PURE__ */ jsx24(
|
|
3925
3658
|
VendorTag,
|
|
3926
3659
|
{
|
|
3927
3660
|
type: source?.toLowerCase(),
|
|
@@ -3932,596 +3665,33 @@ function SelectionSourceBadge({ source, hidden = false }) {
|
|
|
3932
3665
|
);
|
|
3933
3666
|
}
|
|
3934
3667
|
|
|
3935
|
-
// src/components/loading/content-skeleton.tsx
|
|
3936
|
-
import { jsx as jsx27, jsxs as jsxs23 } from "react/jsx-runtime";
|
|
3937
|
-
function ParagraphSkeleton({ className, lines = 4 }) {
|
|
3938
|
-
const lineWidths = ["w-full", "w-full", "w-5/6", "w-3/4", "w-4/5", "w-2/3"];
|
|
3939
|
-
return /* @__PURE__ */ jsx27("div", { className: cn("space-y-2", className), children: Array.from({ length: lines }).map((_, index) => /* @__PURE__ */ jsx27(TextSkeleton.Body, { className: lineWidths[index % lineWidths.length] }, index)) });
|
|
3940
|
-
}
|
|
3941
|
-
function ListSkeleton({
|
|
3942
|
-
className,
|
|
3943
|
-
items = 5,
|
|
3944
|
-
showIcons = false,
|
|
3945
|
-
showActions = false
|
|
3946
|
-
}) {
|
|
3947
|
-
return /* @__PURE__ */ jsx27("div", { className: cn("space-y-3", className), children: Array.from({ length: items }).map((_, index) => /* @__PURE__ */ jsxs23("div", { className: "flex items-center justify-between", children: [
|
|
3948
|
-
/* @__PURE__ */ jsxs23("div", { className: "flex items-center gap-3", children: [
|
|
3949
|
-
showIcons && /* @__PURE__ */ jsx27(MediaSkeleton.Icon, { size: "sm" }),
|
|
3950
|
-
/* @__PURE__ */ jsx27(TextSkeleton.Body, { className: "w-32 md:w-48" })
|
|
3951
|
-
] }),
|
|
3952
|
-
showActions && /* @__PURE__ */ jsxs23("div", { className: "flex items-center gap-2", children: [
|
|
3953
|
-
/* @__PURE__ */ jsx27(TextSkeleton.Caption, { className: "w-8" }),
|
|
3954
|
-
/* @__PURE__ */ jsx27(UnifiedSkeleton, { variant: "default", className: "h-4 w-4" })
|
|
3955
|
-
] })
|
|
3956
|
-
] }, index)) });
|
|
3957
|
-
}
|
|
3958
|
-
function TableSkeleton({
|
|
3959
|
-
className,
|
|
3960
|
-
rows = 5,
|
|
3961
|
-
columns = 4
|
|
3962
|
-
}) {
|
|
3963
|
-
return /* @__PURE__ */ jsxs23("div", { className: cn("space-y-4", className), children: [
|
|
3964
|
-
/* @__PURE__ */ jsx27("div", { className: "grid gap-4", style: { gridTemplateColumns: `repeat(${columns}, 1fr)` }, children: Array.from({ length: columns }).map((_, index) => /* @__PURE__ */ jsx27(TextSkeleton.Subheading, { className: "w-3/4" }, index)) }),
|
|
3965
|
-
/* @__PURE__ */ jsx27("div", { className: "space-y-3", children: Array.from({ length: rows }).map((_, rowIndex) => /* @__PURE__ */ jsx27(
|
|
3966
|
-
"div",
|
|
3967
|
-
{
|
|
3968
|
-
className: "grid gap-4 border-b border-ods-divider py-2",
|
|
3969
|
-
style: { gridTemplateColumns: `repeat(${columns}, 1fr)` },
|
|
3970
|
-
children: Array.from({ length: columns }).map((_cell, colIndex) => /* @__PURE__ */ jsx27(TextSkeleton.Body, { className: "w-2/3" }, colIndex))
|
|
3971
|
-
},
|
|
3972
|
-
rowIndex
|
|
3973
|
-
)) })
|
|
3974
|
-
] });
|
|
3975
|
-
}
|
|
3976
|
-
function FormSkeleton({ className, fields = 4 }) {
|
|
3977
|
-
return /* @__PURE__ */ jsxs23("div", { className: cn("space-y-6", className), children: [
|
|
3978
|
-
Array.from({ length: fields }).map((_, index) => /* @__PURE__ */ jsxs23("div", { className: "space-y-2", children: [
|
|
3979
|
-
/* @__PURE__ */ jsx27(TextSkeleton.Body, { className: "w-24" }),
|
|
3980
|
-
/* @__PURE__ */ jsx27(InteractiveSkeleton.Input, {}),
|
|
3981
|
-
index % 3 === 0 && /* @__PURE__ */ jsx27(TextSkeleton.Caption, { className: "w-48" })
|
|
3982
|
-
] }, index)),
|
|
3983
|
-
/* @__PURE__ */ jsxs23("div", { className: "flex gap-4 pt-4", children: [
|
|
3984
|
-
/* @__PURE__ */ jsx27(InteractiveSkeleton.Button, {}),
|
|
3985
|
-
/* @__PURE__ */ jsx27(InteractiveSkeleton.Button, { className: "bg-ods-border" })
|
|
3986
|
-
] })
|
|
3987
|
-
] });
|
|
3988
|
-
}
|
|
3989
|
-
function NavigationSkeleton({
|
|
3990
|
-
className,
|
|
3991
|
-
items = 6,
|
|
3992
|
-
horizontal = true
|
|
3993
|
-
}) {
|
|
3994
|
-
return /* @__PURE__ */ jsx27(
|
|
3995
|
-
"nav",
|
|
3996
|
-
{
|
|
3997
|
-
className: cn("flex gap-4 md:gap-6", !horizontal && "flex-col", className),
|
|
3998
|
-
role: "status",
|
|
3999
|
-
"aria-label": "Loading navigation",
|
|
4000
|
-
children: Array.from({ length: items }).map((_, index) => /* @__PURE__ */ jsx27(TextSkeleton.Body, { className: "w-16 md:w-20" }, index))
|
|
4001
|
-
}
|
|
4002
|
-
);
|
|
4003
|
-
}
|
|
4004
|
-
function ProfileSkeleton({
|
|
4005
|
-
className,
|
|
4006
|
-
showBio = true,
|
|
4007
|
-
showStats = true
|
|
4008
|
-
}) {
|
|
4009
|
-
return /* @__PURE__ */ jsxs23("div", { className: cn("space-y-4", className), children: [
|
|
4010
|
-
/* @__PURE__ */ jsxs23("div", { className: "flex items-start gap-4", children: [
|
|
4011
|
-
/* @__PURE__ */ jsx27(MediaSkeleton.Avatar, { size: "lg" }),
|
|
4012
|
-
/* @__PURE__ */ jsxs23("div", { className: "flex-1 space-y-2", children: [
|
|
4013
|
-
/* @__PURE__ */ jsx27(TextSkeleton.Subheading, { className: "w-1/2" }),
|
|
4014
|
-
/* @__PURE__ */ jsx27(TextSkeleton.Caption, { className: "w-1/3" }),
|
|
4015
|
-
/* @__PURE__ */ jsx27(TextSkeleton.Body, { className: "w-2/3" })
|
|
4016
|
-
] })
|
|
4017
|
-
] }),
|
|
4018
|
-
showBio && /* @__PURE__ */ jsxs23("div", { className: "space-y-2", children: [
|
|
4019
|
-
/* @__PURE__ */ jsx27(TextSkeleton.Body, { className: "w-full" }),
|
|
4020
|
-
/* @__PURE__ */ jsx27(TextSkeleton.Body, { className: "w-4/5" }),
|
|
4021
|
-
/* @__PURE__ */ jsx27(TextSkeleton.Body, { className: "w-3/4" })
|
|
4022
|
-
] }),
|
|
4023
|
-
showStats && /* @__PURE__ */ jsxs23("div", { className: "flex gap-6", children: [
|
|
4024
|
-
/* @__PURE__ */ jsxs23("div", { className: "text-center", children: [
|
|
4025
|
-
/* @__PURE__ */ jsx27(TextSkeleton.Subheading, { className: "mx-auto w-8" }),
|
|
4026
|
-
/* @__PURE__ */ jsx27(TextSkeleton.Caption, { className: "mx-auto w-12" })
|
|
4027
|
-
] }),
|
|
4028
|
-
/* @__PURE__ */ jsxs23("div", { className: "text-center", children: [
|
|
4029
|
-
/* @__PURE__ */ jsx27(TextSkeleton.Subheading, { className: "mx-auto w-8" }),
|
|
4030
|
-
/* @__PURE__ */ jsx27(TextSkeleton.Caption, { className: "mx-auto w-16" })
|
|
4031
|
-
] }),
|
|
4032
|
-
/* @__PURE__ */ jsxs23("div", { className: "text-center", children: [
|
|
4033
|
-
/* @__PURE__ */ jsx27(TextSkeleton.Subheading, { className: "mx-auto w-8" }),
|
|
4034
|
-
/* @__PURE__ */ jsx27(TextSkeleton.Caption, { className: "mx-auto w-14" })
|
|
4035
|
-
] })
|
|
4036
|
-
] })
|
|
4037
|
-
] });
|
|
4038
|
-
}
|
|
4039
|
-
function CommentSkeleton({
|
|
4040
|
-
className,
|
|
4041
|
-
showRating = false,
|
|
4042
|
-
showReplies = false
|
|
4043
|
-
}) {
|
|
4044
|
-
return /* @__PURE__ */ jsxs23("div", { className: cn("space-y-3", className), children: [
|
|
4045
|
-
/* @__PURE__ */ jsxs23("div", { className: "flex items-center gap-3", children: [
|
|
4046
|
-
/* @__PURE__ */ jsx27(MediaSkeleton.Avatar, { size: "sm" }),
|
|
4047
|
-
/* @__PURE__ */ jsxs23("div", { className: "flex flex-1 items-center gap-4", children: [
|
|
4048
|
-
/* @__PURE__ */ jsx27(TextSkeleton.Body, { className: "w-24" }),
|
|
4049
|
-
/* @__PURE__ */ jsx27(TextSkeleton.Caption, { className: "w-16" }),
|
|
4050
|
-
showRating && /* @__PURE__ */ jsx27("div", { className: "flex gap-1", children: Array.from({ length: 5 }).map((_, i) => /* @__PURE__ */ jsx27(MediaSkeleton.Icon, { size: "sm" }, i)) })
|
|
4051
|
-
] })
|
|
4052
|
-
] }),
|
|
4053
|
-
/* @__PURE__ */ jsxs23("div", { className: "ml-11 space-y-2", children: [
|
|
4054
|
-
/* @__PURE__ */ jsx27(TextSkeleton.Body, { className: "w-full" }),
|
|
4055
|
-
/* @__PURE__ */ jsx27(TextSkeleton.Body, { className: "w-3/4" }),
|
|
4056
|
-
/* @__PURE__ */ jsx27(TextSkeleton.Body, { className: "w-1/2" })
|
|
4057
|
-
] }),
|
|
4058
|
-
/* @__PURE__ */ jsxs23("div", { className: "ml-11 flex gap-4", children: [
|
|
4059
|
-
/* @__PURE__ */ jsx27(TextSkeleton.Caption, { className: "w-12" }),
|
|
4060
|
-
/* @__PURE__ */ jsx27(TextSkeleton.Caption, { className: "w-16" }),
|
|
4061
|
-
/* @__PURE__ */ jsx27(TextSkeleton.Caption, { className: "w-8" })
|
|
4062
|
-
] }),
|
|
4063
|
-
showReplies && /* @__PURE__ */ jsx27("div", { className: "ml-11 space-y-4 border-l border-ods-divider pl-4", children: Array.from({ length: 2 }).map((_, index) => /* @__PURE__ */ jsxs23("div", { className: "space-y-2", children: [
|
|
4064
|
-
/* @__PURE__ */ jsxs23("div", { className: "flex items-center gap-3", children: [
|
|
4065
|
-
/* @__PURE__ */ jsx27(MediaSkeleton.Avatar, { size: "sm" }),
|
|
4066
|
-
/* @__PURE__ */ jsx27(TextSkeleton.Body, { className: "w-20" }),
|
|
4067
|
-
/* @__PURE__ */ jsx27(TextSkeleton.Caption, { className: "w-12" })
|
|
4068
|
-
] }),
|
|
4069
|
-
/* @__PURE__ */ jsxs23("div", { className: "ml-11", children: [
|
|
4070
|
-
/* @__PURE__ */ jsx27(TextSkeleton.Body, { className: "w-full" }),
|
|
4071
|
-
/* @__PURE__ */ jsx27(TextSkeleton.Body, { className: "w-2/3" })
|
|
4072
|
-
] })
|
|
4073
|
-
] }, index)) })
|
|
4074
|
-
] });
|
|
4075
|
-
}
|
|
4076
|
-
function FeatureListSkeleton({
|
|
4077
|
-
className,
|
|
4078
|
-
features = 6,
|
|
4079
|
-
showIcons = true,
|
|
4080
|
-
grouped = false
|
|
4081
|
-
}) {
|
|
4082
|
-
if (grouped) {
|
|
4083
|
-
return /* @__PURE__ */ jsx27("div", { className: cn("space-y-6", className), children: Array.from({ length: 3 }).map((_, groupIndex) => /* @__PURE__ */ jsxs23("div", { className: "space-y-3", children: [
|
|
4084
|
-
/* @__PURE__ */ jsx27(TextSkeleton.Subheading, { className: "w-1/3" }),
|
|
4085
|
-
/* @__PURE__ */ jsx27("div", { className: "space-y-2", children: Array.from({ length: features / 3 }).map((_feature, featureIndex) => /* @__PURE__ */ jsxs23("div", { className: "flex items-center gap-3", children: [
|
|
4086
|
-
showIcons && /* @__PURE__ */ jsx27(MediaSkeleton.Icon, { size: "sm" }),
|
|
4087
|
-
/* @__PURE__ */ jsx27(TextSkeleton.Body, { className: "w-2/3" })
|
|
4088
|
-
] }, featureIndex)) })
|
|
4089
|
-
] }, groupIndex)) });
|
|
4090
|
-
}
|
|
4091
|
-
return /* @__PURE__ */ jsx27("div", { className: cn("space-y-3", className), children: Array.from({ length: features }).map((_, index) => /* @__PURE__ */ jsxs23("div", { className: "flex items-center gap-3", children: [
|
|
4092
|
-
showIcons && /* @__PURE__ */ jsx27(MediaSkeleton.Icon, { size: "sm" }),
|
|
4093
|
-
/* @__PURE__ */ jsx27(TextSkeleton.Body, { className: "w-2/3" })
|
|
4094
|
-
] }, index)) });
|
|
4095
|
-
}
|
|
4096
|
-
function TimelineSkeleton({ className, items = 5 }) {
|
|
4097
|
-
return /* @__PURE__ */ jsx27("div", { className: cn("space-y-6", className), children: Array.from({ length: items }).map((_, index) => /* @__PURE__ */ jsxs23("div", { className: "flex gap-4", children: [
|
|
4098
|
-
/* @__PURE__ */ jsxs23("div", { className: "flex flex-col items-center", children: [
|
|
4099
|
-
/* @__PURE__ */ jsx27(MediaSkeleton.Icon, { size: "sm" }),
|
|
4100
|
-
index < items - 1 && /* @__PURE__ */ jsx27("div", { className: "mt-2 h-12 w-px bg-ods-border" })
|
|
4101
|
-
] }),
|
|
4102
|
-
/* @__PURE__ */ jsxs23("div", { className: "flex-1 space-y-2", children: [
|
|
4103
|
-
/* @__PURE__ */ jsxs23("div", { className: "flex items-center gap-3", children: [
|
|
4104
|
-
/* @__PURE__ */ jsx27(TextSkeleton.Body, { className: "w-1/3" }),
|
|
4105
|
-
/* @__PURE__ */ jsx27(TextSkeleton.Caption, { className: "w-16" })
|
|
4106
|
-
] }),
|
|
4107
|
-
/* @__PURE__ */ jsx27(TextSkeleton.Body, { className: "w-full" }),
|
|
4108
|
-
/* @__PURE__ */ jsx27(TextSkeleton.Body, { className: "w-3/4" })
|
|
4109
|
-
] })
|
|
4110
|
-
] }, index)) });
|
|
4111
|
-
}
|
|
4112
|
-
function PricingSkeleton({ className, plans = 3 }) {
|
|
4113
|
-
return /* @__PURE__ */ jsx27(
|
|
4114
|
-
"div",
|
|
4115
|
-
{
|
|
4116
|
-
className: cn(
|
|
4117
|
-
"grid gap-6",
|
|
4118
|
-
plans === 2 && "grid-cols-1 md:grid-cols-2",
|
|
4119
|
-
plans === 3 && "grid-cols-1 md:grid-cols-3",
|
|
4120
|
-
plans === 4 && "grid-cols-1 md:grid-cols-2 lg:grid-cols-4",
|
|
4121
|
-
className
|
|
4122
|
-
),
|
|
4123
|
-
children: Array.from({ length: plans }).map((_, index) => /* @__PURE__ */ jsx27("div", { className: "rounded-lg border border-ods-border bg-ods-card p-6", children: /* @__PURE__ */ jsxs23("div", { className: "space-y-4", children: [
|
|
4124
|
-
/* @__PURE__ */ jsx27(TextSkeleton.Subheading, { className: "w-1/2" }),
|
|
4125
|
-
/* @__PURE__ */ jsxs23("div", { className: "space-y-1", children: [
|
|
4126
|
-
/* @__PURE__ */ jsx27(TextSkeleton.Heading, { className: "w-1/3" }),
|
|
4127
|
-
/* @__PURE__ */ jsx27(TextSkeleton.Caption, { className: "w-1/4" })
|
|
4128
|
-
] }),
|
|
4129
|
-
/* @__PURE__ */ jsx27("div", { className: "space-y-3 py-4", children: Array.from({ length: 5 }).map((_feature, featureIndex) => /* @__PURE__ */ jsxs23("div", { className: "flex items-center gap-2", children: [
|
|
4130
|
-
/* @__PURE__ */ jsx27(MediaSkeleton.Icon, { size: "sm" }),
|
|
4131
|
-
/* @__PURE__ */ jsx27(TextSkeleton.Body, { className: "w-3/4" })
|
|
4132
|
-
] }, featureIndex)) }),
|
|
4133
|
-
/* @__PURE__ */ jsx27(InteractiveSkeleton.Button, { className: "w-full" })
|
|
4134
|
-
] }) }, index))
|
|
4135
|
-
}
|
|
4136
|
-
);
|
|
4137
|
-
}
|
|
4138
|
-
|
|
4139
|
-
// src/components/profile/ProfileLoadingSkeleton.tsx
|
|
4140
|
-
import { jsx as jsx28, jsxs as jsxs24 } from "react/jsx-runtime";
|
|
4141
|
-
function ProfileLoadingSkeleton({ className }) {
|
|
4142
|
-
return /* @__PURE__ */ jsxs24("div", { className: cn("space-y-6", className), children: [
|
|
4143
|
-
/* @__PURE__ */ jsxs24("div", { className: "flex items-center space-x-4", children: [
|
|
4144
|
-
/* @__PURE__ */ jsx28("div", { className: "h-16 w-16 animate-pulse rounded-full bg-ods-skeleton" }),
|
|
4145
|
-
/* @__PURE__ */ jsxs24("div", { className: "space-y-2", children: [
|
|
4146
|
-
/* @__PURE__ */ jsx28("div", { className: "h-4 w-32 animate-pulse rounded bg-ods-skeleton" }),
|
|
4147
|
-
/* @__PURE__ */ jsx28("div", { className: "h-3 w-24 animate-pulse rounded bg-ods-skeleton" })
|
|
4148
|
-
] })
|
|
4149
|
-
] }),
|
|
4150
|
-
/* @__PURE__ */ jsxs24("div", { className: "space-y-4", children: [
|
|
4151
|
-
/* @__PURE__ */ jsx28("div", { className: "h-4 w-full animate-pulse rounded bg-ods-skeleton" }),
|
|
4152
|
-
/* @__PURE__ */ jsx28("div", { className: "h-4 w-3/4 animate-pulse rounded bg-ods-skeleton" }),
|
|
4153
|
-
/* @__PURE__ */ jsx28("div", { className: "h-4 w-1/2 animate-pulse rounded bg-ods-skeleton" })
|
|
4154
|
-
] })
|
|
4155
|
-
] });
|
|
4156
|
-
}
|
|
4157
|
-
|
|
4158
|
-
// src/components/loading/msp-profile-form-skeleton.tsx
|
|
4159
|
-
import { jsx as jsx29, jsxs as jsxs25 } from "react/jsx-runtime";
|
|
4160
|
-
function MspProfileFormSkeleton({ className, fields = 4 }) {
|
|
4161
|
-
return /* @__PURE__ */ jsxs25(
|
|
4162
|
-
"div",
|
|
4163
|
-
{
|
|
4164
|
-
className: cn("grid grid-cols-1 items-stretch gap-6 md:grid-cols-2", className),
|
|
4165
|
-
role: "status",
|
|
4166
|
-
"aria-label": "Loading MSP profile form",
|
|
4167
|
-
children: [
|
|
4168
|
-
/* @__PURE__ */ jsxs25("div", { className: "flex h-full flex-col space-y-2", children: [
|
|
4169
|
-
/* @__PURE__ */ jsx29(TextSkeleton.Body, { className: "w-28" }),
|
|
4170
|
-
/* @__PURE__ */ jsx29("div", { className: "min-h-[180px] flex-1 md:min-h-full", children: /* @__PURE__ */ jsx29(UnifiedSkeleton, { className: "h-full w-full rounded-lg", "aria-label": "Loading company logo" }) })
|
|
4171
|
-
] }),
|
|
4172
|
-
/* @__PURE__ */ jsx29("div", { className: "grid grid-cols-1 gap-4 md:grid-cols-2", children: Array.from({ length: fields }).map((_, idx) => /* @__PURE__ */ jsxs25("div", { className: "flex flex-col space-y-2", children: [
|
|
4173
|
-
/* @__PURE__ */ jsx29(TextSkeleton.Body, { className: "w-40" }),
|
|
4174
|
-
/* @__PURE__ */ jsx29(InteractiveSkeleton.Input, {})
|
|
4175
|
-
] }, idx)) })
|
|
4176
|
-
]
|
|
4177
|
-
}
|
|
4178
|
-
);
|
|
4179
|
-
}
|
|
4180
|
-
|
|
4181
|
-
// src/components/loading/category-card-skeleton.tsx
|
|
4182
|
-
import { jsx as jsx30, jsxs as jsxs26 } from "react/jsx-runtime";
|
|
4183
|
-
function CategoryCardSkeleton({ className }) {
|
|
4184
|
-
return /* @__PURE__ */ jsxs26(
|
|
4185
|
-
"article",
|
|
4186
|
-
{
|
|
4187
|
-
className: cn(
|
|
4188
|
-
"box-border flex min-w-0 flex-col rounded-[12px] border border-ods-border bg-ods-card p-8",
|
|
4189
|
-
className
|
|
4190
|
-
),
|
|
4191
|
-
role: "status",
|
|
4192
|
-
"aria-label": "Loading category card",
|
|
4193
|
-
children: [
|
|
4194
|
-
/* @__PURE__ */ jsx30("div", { className: "mb-8 flex items-center justify-center gap-6", children: Array.from({ length: 10 }).map((_, i) => /* @__PURE__ */ jsx30(UnifiedSkeleton, { variant: "circular", className: "h-10 w-10 flex-shrink-0", "aria-label": "Loading icon" }, i)) }),
|
|
4195
|
-
/* @__PURE__ */ jsxs26("div", { className: "flex flex-1 flex-col space-y-3", children: [
|
|
4196
|
-
/* @__PURE__ */ jsx30(TextSkeleton.Heading, { className: "w-3/4" }),
|
|
4197
|
-
/* @__PURE__ */ jsx30(TextSkeleton.Body, { className: "w-1/2" }),
|
|
4198
|
-
/* @__PURE__ */ jsx30(TextSkeleton.Body, { className: "w-full" })
|
|
4199
|
-
] }),
|
|
4200
|
-
/* @__PURE__ */ jsx30("div", { className: "mt-4 flex justify-end", children: /* @__PURE__ */ jsx30(UnifiedSkeleton, { className: "h-12 w-12 rounded-[6px]", "aria-label": "Loading button" }) })
|
|
4201
|
-
]
|
|
4202
|
-
}
|
|
4203
|
-
);
|
|
4204
|
-
}
|
|
4205
|
-
|
|
4206
|
-
// src/components/loading/category-vendor-selector-skeleton.tsx
|
|
4207
|
-
import { jsx as jsx31, jsxs as jsxs27 } from "react/jsx-runtime";
|
|
4208
|
-
function CategoryVendorSelectorSkeleton({ subcategories = 3, className }) {
|
|
4209
|
-
return /* @__PURE__ */ jsxs27(
|
|
4210
|
-
"div",
|
|
4211
|
-
{
|
|
4212
|
-
className: cn("rounded-lg border border-ods-border bg-ods-card p-6", className),
|
|
4213
|
-
role: "status",
|
|
4214
|
-
"aria-label": "Loading category section",
|
|
4215
|
-
children: [
|
|
4216
|
-
/* @__PURE__ */ jsxs27("div", { className: "mb-6 max-w-xl space-y-2", children: [
|
|
4217
|
-
/* @__PURE__ */ jsx31(TextSkeleton.Heading, { className: "w-1/2" }),
|
|
4218
|
-
/* @__PURE__ */ jsx31(TextSkeleton.Body, { className: "w-3/4" })
|
|
4219
|
-
] }),
|
|
4220
|
-
/* @__PURE__ */ jsx31("div", { className: "space-y-6", children: Array.from({ length: subcategories }).map((_, idx) => /* @__PURE__ */ jsxs27("div", { className: "space-y-2", children: [
|
|
4221
|
-
/* @__PURE__ */ jsx31(TextSkeleton.Subheading, { className: "w-1/3" }),
|
|
4222
|
-
/* @__PURE__ */ jsx31("div", { className: "grid grid-cols-2 gap-4 md:grid-cols-3", children: Array.from({ length: 2 }).map((__, j) => /* @__PURE__ */ jsx31(UnifiedSkeleton, { className: "h-20 rounded-lg" }, j)) })
|
|
4223
|
-
] }, idx)) })
|
|
4224
|
-
]
|
|
4225
|
-
}
|
|
4226
|
-
);
|
|
4227
|
-
}
|
|
4228
|
-
|
|
4229
|
-
// src/components/loading/wizard-layout-skeleton.tsx
|
|
4230
|
-
import { jsx as jsx32, jsxs as jsxs28 } from "react/jsx-runtime";
|
|
4231
|
-
function WizardLayoutSkeleton({ steps = 6, className }) {
|
|
4232
|
-
return /* @__PURE__ */ jsxs28("div", { className: cn("space-y-6", className), role: "status", "aria-label": "Loading wizard layout", children: [
|
|
4233
|
-
/* @__PURE__ */ jsx32("div", { className: "flex flex-wrap items-center gap-2", children: Array.from({ length: steps }).map((_, i) => /* @__PURE__ */ jsx32(UnifiedSkeleton, { className: "h-6 w-24 rounded" }, i)) }),
|
|
4234
|
-
/* @__PURE__ */ jsxs28("div", { className: "max-w-2xl space-y-2", children: [
|
|
4235
|
-
/* @__PURE__ */ jsx32(TextSkeleton.Heading, { className: "w-2/3" }),
|
|
4236
|
-
/* @__PURE__ */ jsx32(TextSkeleton.Body, { className: "w-1/2" })
|
|
4237
|
-
] }),
|
|
4238
|
-
/* @__PURE__ */ jsxs28("div", { className: "mt-10 flex justify-between", children: [
|
|
4239
|
-
/* @__PURE__ */ jsx32(UnifiedSkeleton, { className: "h-10 w-24 rounded" }),
|
|
4240
|
-
/* @__PURE__ */ jsx32(UnifiedSkeleton, { className: "h-10 w-32 rounded" })
|
|
4241
|
-
] })
|
|
4242
|
-
] });
|
|
4243
|
-
}
|
|
4244
|
-
|
|
4245
|
-
// src/components/loading/margin-report-skeleton.tsx
|
|
4246
|
-
import { jsx as jsx33, jsxs as jsxs29 } from "react/jsx-runtime";
|
|
4247
|
-
function MarginReportSkeleton({ animate = true, description, overlayContent }) {
|
|
4248
|
-
return /* @__PURE__ */ jsxs29("main", { className: `bg-ods-bg ${animate ? "animate-pulse" : ""} relative min-h-screen`, children: [
|
|
4249
|
-
/* @__PURE__ */ jsxs29("div", { className: "mx-auto max-w-[1920px] space-y-10 px-6 py-6 md:px-20 md:py-10", children: [
|
|
4250
|
-
/* @__PURE__ */ jsxs29("div", { className: "space-y-3", children: [
|
|
4251
|
-
/* @__PURE__ */ jsx33("div", { className: "h-10 w-72 rounded bg-ods-skeleton" }),
|
|
4252
|
-
/* @__PURE__ */ jsx33("div", { className: "h-4 w-80 rounded bg-ods-skeleton" })
|
|
4253
|
-
] }),
|
|
4254
|
-
/* @__PURE__ */ jsx33("div", { className: "grid grid-cols-1 gap-6 md:grid-cols-3", children: Array.from({ length: 3 }).map((_, i) => /* @__PURE__ */ jsx33("div", { className: "h-32 rounded border border-ods-border bg-ods-card" }, i)) }),
|
|
4255
|
-
/* @__PURE__ */ jsxs29("div", { className: "grid grid-cols-1 gap-6 md:grid-cols-2", children: [
|
|
4256
|
-
/* @__PURE__ */ jsxs29("div", { className: "flex animate-pulse items-center gap-4 rounded-lg border border-ods-border bg-ods-card p-6", children: [
|
|
4257
|
-
/* @__PURE__ */ jsx33("div", { className: "h-14 w-14 rounded-lg bg-ods-skeleton" }),
|
|
4258
|
-
/* @__PURE__ */ jsxs29("div", { className: "flex-1 space-y-2", children: [
|
|
4259
|
-
/* @__PURE__ */ jsx33("div", { className: "h-4 w-3/4 rounded bg-ods-skeleton" }),
|
|
4260
|
-
/* @__PURE__ */ jsx33("div", { className: "h-3 w-1/2 rounded bg-ods-skeleton" })
|
|
4261
|
-
] })
|
|
4262
|
-
] }),
|
|
4263
|
-
/* @__PURE__ */ jsxs29("div", { className: "flex animate-pulse flex-col gap-4 rounded-lg border border-ods-border bg-ods-card p-6", children: [
|
|
4264
|
-
/* @__PURE__ */ jsxs29("div", { className: "flex items-center justify-between gap-4", children: [
|
|
4265
|
-
/* @__PURE__ */ jsxs29("div", { className: "flex items-center gap-2", children: [
|
|
4266
|
-
/* @__PURE__ */ jsx33("div", { className: "h-10 w-10 rounded-lg bg-ods-skeleton" }),
|
|
4267
|
-
/* @__PURE__ */ jsxs29("div", { className: "space-y-1", children: [
|
|
4268
|
-
/* @__PURE__ */ jsx33("div", { className: "h-4 w-32 rounded bg-ods-skeleton" }),
|
|
4269
|
-
/* @__PURE__ */ jsx33("div", { className: "h-3 w-20 rounded bg-ods-skeleton" })
|
|
4270
|
-
] })
|
|
4271
|
-
] }),
|
|
4272
|
-
/* @__PURE__ */ jsx33("div", { className: "h-6 w-36 rounded bg-ods-skeleton" })
|
|
4273
|
-
] }),
|
|
4274
|
-
/* @__PURE__ */ jsx33("div", { className: "mt-4 h-4 w-40 rounded bg-ods-skeleton" })
|
|
4275
|
-
] })
|
|
4276
|
-
] }),
|
|
4277
|
-
/* @__PURE__ */ jsx33("div", { className: "grid grid-cols-1 gap-6 md:grid-cols-2", children: ["Commercial Stack", "Open-Source Stack"].map((label, idx) => /* @__PURE__ */ jsxs29(
|
|
4278
|
-
"div",
|
|
4279
|
-
{
|
|
4280
|
-
className: "flex animate-pulse flex-col overflow-hidden rounded-lg border border-ods-border bg-ods-card",
|
|
4281
|
-
children: [
|
|
4282
|
-
/* @__PURE__ */ jsxs29("div", { className: "flex items-center justify-between px-6 py-4", children: [
|
|
4283
|
-
/* @__PURE__ */ jsx33("div", { className: "h-6 w-40 rounded bg-ods-skeleton" }),
|
|
4284
|
-
/* @__PURE__ */ jsxs29("div", { className: "flex items-center gap-2", children: [
|
|
4285
|
-
/* @__PURE__ */ jsx33("div", { className: "h-5 w-20 rounded bg-ods-skeleton" }),
|
|
4286
|
-
/* @__PURE__ */ jsx33("div", { className: "h-4 w-10 rounded bg-ods-skeleton" })
|
|
4287
|
-
] })
|
|
4288
|
-
] }),
|
|
4289
|
-
/* @__PURE__ */ jsx33("div", { className: "flex flex-1 flex-col gap-3 p-3", children: Array.from({ length: 5 }).map((_, j) => /* @__PURE__ */ jsxs29(
|
|
4290
|
-
"div",
|
|
4291
|
-
{
|
|
4292
|
-
className: "flex items-center justify-between rounded-lg border border-ods-border bg-ods-bg px-4 py-3",
|
|
4293
|
-
children: [
|
|
4294
|
-
/* @__PURE__ */ jsxs29("div", { className: "flex min-w-0 items-center gap-3", children: [
|
|
4295
|
-
/* @__PURE__ */ jsx33("div", { className: "h-12 w-12 flex-shrink-0 rounded-lg bg-ods-skeleton" }),
|
|
4296
|
-
/* @__PURE__ */ jsxs29("div", { className: "flex min-w-0 flex-col", children: [
|
|
4297
|
-
/* @__PURE__ */ jsx33("div", { className: "h-4 w-32 rounded bg-ods-skeleton" }),
|
|
4298
|
-
/* @__PURE__ */ jsx33("div", { className: "mt-1 hidden h-3 w-24 rounded bg-ods-skeleton md:block" })
|
|
4299
|
-
] })
|
|
4300
|
-
] }),
|
|
4301
|
-
/* @__PURE__ */ jsxs29("div", { className: "flex flex-shrink-0 items-center gap-1", children: [
|
|
4302
|
-
/* @__PURE__ */ jsx33("div", { className: "h-4 w-16 rounded bg-ods-skeleton" }),
|
|
4303
|
-
/* @__PURE__ */ jsx33("div", { className: "h-3 w-8 rounded bg-ods-skeleton" })
|
|
4304
|
-
] })
|
|
4305
|
-
]
|
|
4306
|
-
},
|
|
4307
|
-
j
|
|
4308
|
-
)) })
|
|
4309
|
-
]
|
|
4310
|
-
},
|
|
4311
|
-
idx
|
|
4312
|
-
)) }),
|
|
4313
|
-
/* @__PURE__ */ jsx33("div", { className: "h-6 w-60 rounded bg-ods-skeleton" }),
|
|
4314
|
-
/* @__PURE__ */ jsx33("div", { className: "grid grid-cols-1 gap-6 md:grid-cols-2 lg:grid-cols-3", children: Array.from({ length: 3 }).map((_, i) => /* @__PURE__ */ jsx33("div", { className: "h-48 rounded border border-ods-border bg-ods-card" }, i)) }),
|
|
4315
|
-
/* @__PURE__ */ jsxs29("div", { className: "space-y-6 rounded-3xl border border-ods-border p-8", children: [
|
|
4316
|
-
/* @__PURE__ */ jsxs29("div", { className: "flex items-start gap-6", children: [
|
|
4317
|
-
/* @__PURE__ */ jsxs29("div", { className: "min-w-0 flex-1 space-y-2", children: [
|
|
4318
|
-
/* @__PURE__ */ jsx33("div", { className: "h-8 w-72 rounded bg-ods-skeleton" }),
|
|
4319
|
-
/* @__PURE__ */ jsx33("div", { className: "h-4 w-3/4 rounded bg-ods-skeleton" })
|
|
4320
|
-
] }),
|
|
4321
|
-
/* @__PURE__ */ jsx33("div", { className: "h-12 w-12 shrink-0 rounded-md bg-ods-skeleton" })
|
|
4322
|
-
] }),
|
|
4323
|
-
/* @__PURE__ */ jsx33("div", { className: "grid grid-cols-1 gap-6 md:grid-cols-2 lg:grid-cols-3", children: Array.from({ length: 3 }).map((_, i) => /* @__PURE__ */ jsx33("div", { className: "h-32 rounded border border-ods-border bg-ods-card" }, i)) })
|
|
4324
|
-
] })
|
|
4325
|
-
] }),
|
|
4326
|
-
overlayContent && /* @__PURE__ */ jsx33("div", { className: "pointer-events-none absolute inset-0 z-10 rounded-lg bg-ods-card/80", children: /* @__PURE__ */ jsxs29("div", { className: "pointer-events-auto fixed left-1/2 top-1/2 flex -translate-x-1/2 -translate-y-1/2 flex-col items-center gap-4 px-4 text-center", children: [
|
|
4327
|
-
description && /* @__PURE__ */ jsx33("h3", { children: description }),
|
|
4328
|
-
overlayContent
|
|
4329
|
-
] }) })
|
|
4330
|
-
] });
|
|
4331
|
-
}
|
|
4332
|
-
|
|
4333
|
-
// src/components/loading/users-grid-skeleton.tsx
|
|
4334
|
-
import { jsx as jsx34, jsxs as jsxs30 } from "react/jsx-runtime";
|
|
4335
|
-
function UsersGridSkeleton({ rows = 10, className }) {
|
|
4336
|
-
const skeletonRows = Array.from({ length: rows });
|
|
4337
|
-
return /* @__PURE__ */ jsx34("div", { className: cn("animate-pulse overflow-x-auto rounded-lg border border-ods-border bg-ods-card", className), children: /* @__PURE__ */ jsxs30("table", { className: "min-w-full divide-y divide-ods-border", children: [
|
|
4338
|
-
/* @__PURE__ */ jsx34("thead", { className: "bg-ods-skeleton", children: /* @__PURE__ */ jsx34("tr", { children: ["Name", "Email", "Role", "Created", "Last Sign-In"].map((h) => /* @__PURE__ */ jsx34("th", { className: "px-4 py-3 text-left text-ods-text-primary text-h6", children: h }, h)) }) }),
|
|
4339
|
-
/* @__PURE__ */ jsx34("tbody", { className: "divide-y divide-ods-border", children: skeletonRows.map((_, idx) => /* @__PURE__ */ jsx34("tr", { children: Array.from({ length: 5 }).map((__, cell) => /* @__PURE__ */ jsx34("td", { className: "whitespace-nowrap px-4 py-3", children: /* @__PURE__ */ jsx34("div", { className: "h-4 w-full rounded bg-ods-border" }) }, cell)) }, idx)) })
|
|
4340
|
-
] }) });
|
|
4341
|
-
}
|
|
4342
|
-
|
|
4343
|
-
// src/components/loading/organization-icon-skeleton.tsx
|
|
4344
|
-
import { jsx as jsx35 } from "react/jsx-runtime";
|
|
4345
|
-
var sizeClasses2 = {
|
|
4346
|
-
xs: "w-6 h-6",
|
|
4347
|
-
sm: "w-8 h-8",
|
|
4348
|
-
md: "w-10 h-10",
|
|
4349
|
-
lg: "w-12 h-12",
|
|
4350
|
-
l: "w-14 h-14",
|
|
4351
|
-
xl: "w-16 h-16"
|
|
4352
|
-
};
|
|
4353
|
-
var backgroundClasses2 = {
|
|
4354
|
-
dark: "bg-ods-bg border border-ods-border",
|
|
4355
|
-
light: "bg-ods-card border border-ods-border",
|
|
4356
|
-
white: "bg-white border border-[#E5E5E5]"
|
|
4357
|
-
};
|
|
4358
|
-
function OrganizationIconSkeleton({
|
|
4359
|
-
size = "md",
|
|
4360
|
-
className = "",
|
|
4361
|
-
showBackground = true,
|
|
4362
|
-
backgroundStyle = "dark"
|
|
4363
|
-
}) {
|
|
4364
|
-
const containerClasses = cn(
|
|
4365
|
-
sizeClasses2[size],
|
|
4366
|
-
"flex flex-shrink-0 items-center justify-center rounded-lg",
|
|
4367
|
-
showBackground && backgroundClasses2[backgroundStyle],
|
|
4368
|
-
!showBackground && "overflow-hidden",
|
|
4369
|
-
className
|
|
4370
|
-
);
|
|
4371
|
-
return /* @__PURE__ */ jsx35("div", { className: containerClasses, role: "status", "aria-label": "Loading organization icon", children: /* @__PURE__ */ jsx35("div", { className: "h-1/2 w-1/2 animate-pulse rounded-sm bg-ods-border" }) });
|
|
4372
|
-
}
|
|
4373
|
-
|
|
4374
|
-
// src/components/loading/organization-card-skeleton.tsx
|
|
4375
|
-
import { jsx as jsx36, jsxs as jsxs31 } from "react/jsx-runtime";
|
|
4376
|
-
function OrganizationCardSkeleton({
|
|
4377
|
-
className,
|
|
4378
|
-
containerClassName,
|
|
4379
|
-
showFooter = true,
|
|
4380
|
-
showDescription = true
|
|
4381
|
-
}) {
|
|
4382
|
-
return /* @__PURE__ */ jsx36(
|
|
4383
|
-
"div",
|
|
4384
|
-
{
|
|
4385
|
-
className: cn(
|
|
4386
|
-
containerClassName || "border border-ods-border bg-ods-card",
|
|
4387
|
-
"flex h-full flex-col overflow-hidden rounded-lg",
|
|
4388
|
-
className
|
|
4389
|
-
),
|
|
4390
|
-
role: "status",
|
|
4391
|
-
"aria-label": "Loading organization card",
|
|
4392
|
-
children: /* @__PURE__ */ jsxs31("div", { className: "flex flex-col gap-3 p-4", children: [
|
|
4393
|
-
/* @__PURE__ */ jsxs31("div", { className: "flex w-full items-start gap-3", children: [
|
|
4394
|
-
/* @__PURE__ */ jsx36(
|
|
4395
|
-
OrganizationIconSkeleton,
|
|
4396
|
-
{
|
|
4397
|
-
size: "xl",
|
|
4398
|
-
backgroundStyle: "dark",
|
|
4399
|
-
showBackground: true,
|
|
4400
|
-
className: "h-[60px] w-[60px]"
|
|
4401
|
-
}
|
|
4402
|
-
),
|
|
4403
|
-
/* @__PURE__ */ jsxs31("div", { className: "flex min-w-0 flex-1 flex-col justify-center space-y-1 py-2", children: [
|
|
4404
|
-
/* @__PURE__ */ jsx36(TextSkeleton.Subheading, { className: "w-3/4" }),
|
|
4405
|
-
/* @__PURE__ */ jsx36(TextSkeleton.Caption, { className: "w-1/2" })
|
|
4406
|
-
] })
|
|
4407
|
-
] }),
|
|
4408
|
-
showDescription && /* @__PURE__ */ jsx36("div", { className: "flex h-12 w-full items-center overflow-hidden", children: /* @__PURE__ */ jsxs31("div", { className: "w-full space-y-1", children: [
|
|
4409
|
-
/* @__PURE__ */ jsx36(TextSkeleton.Body, { className: "w-full" }),
|
|
4410
|
-
/* @__PURE__ */ jsx36(TextSkeleton.Body, { className: "w-2/3" })
|
|
4411
|
-
] }) }),
|
|
4412
|
-
showFooter && /* @__PURE__ */ jsxs31("div", { className: "flex w-full min-w-0 items-center justify-between gap-2", children: [
|
|
4413
|
-
/* @__PURE__ */ jsxs31("div", { className: "flex min-w-0 flex-shrink items-center gap-3 md:gap-4", children: [
|
|
4414
|
-
/* @__PURE__ */ jsxs31("div", { className: "flex flex-shrink-0 items-center gap-1", children: [
|
|
4415
|
-
/* @__PURE__ */ jsx36(MediaSkeleton.Icon, { size: "sm", className: "h-5 w-5" }),
|
|
4416
|
-
/* @__PURE__ */ jsx36(TextSkeleton.Caption, { className: "w-8" })
|
|
4417
|
-
] }),
|
|
4418
|
-
/* @__PURE__ */ jsxs31("div", { className: "flex flex-shrink-0 items-center gap-1", children: [
|
|
4419
|
-
/* @__PURE__ */ jsx36(MediaSkeleton.Icon, { size: "sm", className: "h-5 w-5" }),
|
|
4420
|
-
/* @__PURE__ */ jsx36(TextSkeleton.Caption, { className: "w-10" })
|
|
4421
|
-
] })
|
|
4422
|
-
] }),
|
|
4423
|
-
/* @__PURE__ */ jsx36("div", { className: "flex-shrink-0", children: /* @__PURE__ */ jsxs31("div", { className: "flex items-center gap-1.5 rounded border border-ods-border bg-ods-bg px-2.5 py-1.5", children: [
|
|
4424
|
-
/* @__PURE__ */ jsx36("div", { className: "flex h-4 w-4 flex-shrink-0 items-center justify-center rounded-sm bg-ods-border", children: /* @__PURE__ */ jsx36(MediaSkeleton.Icon, { size: "sm", className: "h-2.5 w-2.5" }) }),
|
|
4425
|
-
/* @__PURE__ */ jsx36(TextSkeleton.Caption, { className: "w-16" })
|
|
4426
|
-
] }) })
|
|
4427
|
-
] })
|
|
4428
|
-
] })
|
|
4429
|
-
}
|
|
4430
|
-
);
|
|
4431
|
-
}
|
|
4432
|
-
function OrganizationCardSkeletonGrid({
|
|
4433
|
-
count = 12,
|
|
4434
|
-
className,
|
|
4435
|
-
containerClassName,
|
|
4436
|
-
showFooter = true,
|
|
4437
|
-
showDescription = true
|
|
4438
|
-
}) {
|
|
4439
|
-
return /* @__PURE__ */ jsx36(
|
|
4440
|
-
"div",
|
|
4441
|
-
{
|
|
4442
|
-
className: cn("grid grid-cols-1 gap-4 md:grid-cols-2 md:gap-6 lg:grid-cols-3", className),
|
|
4443
|
-
role: "status",
|
|
4444
|
-
"aria-label": `Loading ${count} organization cards`,
|
|
4445
|
-
children: Array.from({ length: count }, (_, index) => /* @__PURE__ */ jsx36(
|
|
4446
|
-
OrganizationCardSkeleton,
|
|
4447
|
-
{
|
|
4448
|
-
containerClassName,
|
|
4449
|
-
showFooter,
|
|
4450
|
-
showDescription
|
|
4451
|
-
},
|
|
4452
|
-
index
|
|
4453
|
-
))
|
|
4454
|
-
}
|
|
4455
|
-
);
|
|
4456
|
-
}
|
|
4457
|
-
|
|
4458
|
-
// src/components/loading/device-card-skeleton.tsx
|
|
4459
|
-
import { jsx as jsx37, jsxs as jsxs32 } from "react/jsx-runtime";
|
|
4460
|
-
function DeviceCardSkeleton({ className }) {
|
|
4461
|
-
return /* @__PURE__ */ jsxs32(
|
|
4462
|
-
"div",
|
|
4463
|
-
{
|
|
4464
|
-
className: cn("h-full rounded-[6px] border border-ods-border bg-ods-card", className),
|
|
4465
|
-
role: "status",
|
|
4466
|
-
"aria-label": "Loading device card",
|
|
4467
|
-
children: [
|
|
4468
|
-
/* @__PURE__ */ jsxs32("div", { className: "flex items-center gap-4 px-4 py-3", children: [
|
|
4469
|
-
/* @__PURE__ */ jsx37("div", { className: "flex h-8 w-8 flex-shrink-0 items-center justify-center rounded-[6px] border border-ods-border bg-ods-bg", children: /* @__PURE__ */ jsx37("div", { className: "h-4 w-4 animate-pulse rounded bg-ods-border" }) }),
|
|
4470
|
-
/* @__PURE__ */ jsx37("div", { className: "min-w-0 flex-1", children: /* @__PURE__ */ jsx37("div", { className: "h-6 w-3/4 animate-pulse rounded bg-ods-border" }) }),
|
|
4471
|
-
/* @__PURE__ */ jsx37("div", { className: "h-12 w-12 flex-shrink-0 animate-pulse rounded-[6px] bg-ods-border" })
|
|
4472
|
-
] }),
|
|
4473
|
-
/* @__PURE__ */ jsxs32("div", { className: "flex items-center gap-4 px-4 py-2", children: [
|
|
4474
|
-
/* @__PURE__ */ jsx37("div", { className: "h-6 w-24 flex-shrink-0 animate-pulse rounded bg-ods-border" }),
|
|
4475
|
-
/* @__PURE__ */ jsx37(OrganizationIconSkeleton, { size: "sm" }),
|
|
4476
|
-
/* @__PURE__ */ jsx37("div", { className: "min-w-0 flex-1", children: /* @__PURE__ */ jsx37("div", { className: "h-5 w-1/2 animate-pulse rounded bg-ods-border" }) })
|
|
4477
|
-
] }),
|
|
4478
|
-
/* @__PURE__ */ jsxs32("div", { className: "flex items-center gap-4 px-4 py-2", children: [
|
|
4479
|
-
/* @__PURE__ */ jsx37("div", { className: "h-6 w-20 flex-shrink-0 animate-pulse rounded-full bg-ods-border" }),
|
|
4480
|
-
/* @__PURE__ */ jsx37("div", { className: "flex-1", children: /* @__PURE__ */ jsx37("div", { className: "h-5 w-40 animate-pulse rounded bg-ods-border" }) })
|
|
4481
|
-
] })
|
|
4482
|
-
]
|
|
4483
|
-
}
|
|
4484
|
-
);
|
|
4485
|
-
}
|
|
4486
|
-
function DeviceCardSkeletonGrid({ count = 12, className }) {
|
|
4487
|
-
return /* @__PURE__ */ jsx37(
|
|
4488
|
-
"div",
|
|
4489
|
-
{
|
|
4490
|
-
className: cn("grid grid-cols-1 gap-4 md:grid-cols-2 lg:grid-cols-4", className),
|
|
4491
|
-
role: "status",
|
|
4492
|
-
"aria-label": `Loading ${count} device cards`,
|
|
4493
|
-
children: Array.from({ length: count }, (_, index) => /* @__PURE__ */ jsx37(DeviceCardSkeleton, {}, index))
|
|
4494
|
-
}
|
|
4495
|
-
);
|
|
4496
|
-
}
|
|
4497
|
-
|
|
4498
3668
|
// src/components/vendor-page-skeleton.tsx
|
|
4499
|
-
import { jsx as
|
|
3669
|
+
import { jsx as jsx25 } from "react/jsx-runtime";
|
|
4500
3670
|
function VendorPageSkeleton() {
|
|
4501
|
-
return /* @__PURE__ */
|
|
3671
|
+
return /* @__PURE__ */ jsx25(VendorDetailLayoutSkeleton, {});
|
|
4502
3672
|
}
|
|
4503
3673
|
|
|
4504
3674
|
// src/components/why-it-matters.tsx
|
|
4505
|
-
import { jsx as
|
|
3675
|
+
import { jsx as jsx26, jsxs as jsxs21 } from "react/jsx-runtime";
|
|
4506
3676
|
|
|
4507
3677
|
// src/components/yes-no-display.tsx
|
|
4508
|
-
import { jsx as
|
|
3678
|
+
import { jsx as jsx27, jsxs as jsxs22 } from "react/jsx-runtime";
|
|
4509
3679
|
function YesNoDisplay({ value, yesText = "Yes", noText = "No", customText, className = "" }) {
|
|
4510
3680
|
if (customText) {
|
|
4511
|
-
return /* @__PURE__ */
|
|
4512
|
-
/* @__PURE__ */
|
|
4513
|
-
/* @__PURE__ */
|
|
3681
|
+
return /* @__PURE__ */ jsxs22("div", { className: `flex items-center gap-2 ${className}`, children: [
|
|
3682
|
+
/* @__PURE__ */ jsx27(CheckCircleIcon2, { className: "h-6 w-6" }),
|
|
3683
|
+
/* @__PURE__ */ jsx27("span", { className: "text-ods-text-primary text-h6", children: customText })
|
|
4514
3684
|
] });
|
|
4515
3685
|
}
|
|
4516
3686
|
if (value) {
|
|
4517
|
-
return /* @__PURE__ */
|
|
4518
|
-
/* @__PURE__ */
|
|
4519
|
-
/* @__PURE__ */
|
|
3687
|
+
return /* @__PURE__ */ jsxs22("div", { className: `flex items-center gap-2 ${className}`, children: [
|
|
3688
|
+
/* @__PURE__ */ jsx27(CheckCircleIcon2, { className: "h-6 w-6" }),
|
|
3689
|
+
/* @__PURE__ */ jsx27("span", { className: "text-ods-text-primary text-h6", children: yesText })
|
|
4520
3690
|
] });
|
|
4521
3691
|
}
|
|
4522
|
-
return /* @__PURE__ */
|
|
4523
|
-
/* @__PURE__ */
|
|
4524
|
-
/* @__PURE__ */
|
|
3692
|
+
return /* @__PURE__ */ jsxs22("div", { className: `flex items-center gap-2 ${className}`, children: [
|
|
3693
|
+
/* @__PURE__ */ jsx27(XCircleIcon, { className: "h-6 w-6" }),
|
|
3694
|
+
/* @__PURE__ */ jsx27("span", { className: "text-ods-text-secondary text-h6", children: noText })
|
|
4525
3695
|
] });
|
|
4526
3696
|
}
|
|
4527
3697
|
function evaluateFeatureValue(value, dataType) {
|
|
@@ -4556,7 +3726,7 @@ function evaluateFeatureValue(value, dataType) {
|
|
|
4556
3726
|
|
|
4557
3727
|
// src/components/made-with-love.tsx
|
|
4558
3728
|
import { useState as useState6, useEffect as useEffect3 } from "react";
|
|
4559
|
-
import { jsx as
|
|
3729
|
+
import { jsx as jsx28, jsxs as jsxs23 } from "react/jsx-runtime";
|
|
4560
3730
|
function MadeWithLove({ className = "", size = "md", showOnMobile = true }) {
|
|
4561
3731
|
const [isMobile, setIsMobile] = useState6(false);
|
|
4562
3732
|
const [isHovered, setIsHovered] = useState6(false);
|
|
@@ -4626,9 +3796,9 @@ function MadeWithLove({ className = "", size = "md", showOnMobile = true }) {
|
|
|
4626
3796
|
marginLeft: "4px",
|
|
4627
3797
|
textDecoration: "none"
|
|
4628
3798
|
};
|
|
4629
|
-
return /* @__PURE__ */
|
|
3799
|
+
return /* @__PURE__ */ jsxs23("div", { style: containerStyle, className, children: [
|
|
4630
3800
|
"Made with love by",
|
|
4631
|
-
/* @__PURE__ */
|
|
3801
|
+
/* @__PURE__ */ jsxs23(
|
|
4632
3802
|
"a",
|
|
4633
3803
|
{
|
|
4634
3804
|
href: flamingoUrl,
|
|
@@ -4638,14 +3808,14 @@ function MadeWithLove({ className = "", size = "md", showOnMobile = true }) {
|
|
|
4638
3808
|
onMouseEnter: () => setIsHovered(true),
|
|
4639
3809
|
onMouseLeave: () => setIsHovered(false),
|
|
4640
3810
|
children: [
|
|
4641
|
-
/* @__PURE__ */
|
|
3811
|
+
/* @__PURE__ */ jsx28("div", { style: logoStyle, children: /* @__PURE__ */ jsx28(
|
|
4642
3812
|
FlamingoLogo2,
|
|
4643
3813
|
{
|
|
4644
3814
|
size: config.logoSize,
|
|
4645
3815
|
color: "#f357bb"
|
|
4646
3816
|
}
|
|
4647
3817
|
) }),
|
|
4648
|
-
/* @__PURE__ */
|
|
3818
|
+
/* @__PURE__ */ jsx28("span", { style: textStyle, children: "Flamingo" })
|
|
4649
3819
|
]
|
|
4650
3820
|
}
|
|
4651
3821
|
)
|
|
@@ -4654,7 +3824,7 @@ function MadeWithLove({ className = "", size = "md", showOnMobile = true }) {
|
|
|
4654
3824
|
|
|
4655
3825
|
// src/components/date-time-picker.tsx
|
|
4656
3826
|
import DatePicker2 from "react-datepicker";
|
|
4657
|
-
import { jsx as
|
|
3827
|
+
import { jsx as jsx29, jsxs as jsxs24 } from "react/jsx-runtime";
|
|
4658
3828
|
var inputClassName = cn(
|
|
4659
3829
|
"flex h-10 w-full rounded-md border px-3 py-2 text-sm ring-offset-background",
|
|
4660
3830
|
"file:border-0 file:bg-transparent file:text-sm file:font-medium",
|
|
@@ -4678,9 +3848,9 @@ function DateTimePicker({
|
|
|
4678
3848
|
timeIntervals = 15,
|
|
4679
3849
|
dateFormat = "MMMM d, yyyy h:mm aa"
|
|
4680
3850
|
}) {
|
|
4681
|
-
return /* @__PURE__ */
|
|
4682
|
-
label && /* @__PURE__ */
|
|
4683
|
-
/* @__PURE__ */
|
|
3851
|
+
return /* @__PURE__ */ jsxs24("div", { className: cn("space-y-2", className), children: [
|
|
3852
|
+
label && /* @__PURE__ */ jsx29(Label, { className: "font-semibold text-ods-text-secondary text-h5", children: label }),
|
|
3853
|
+
/* @__PURE__ */ jsx29("div", { className: "w-full", children: /* @__PURE__ */ jsx29(
|
|
4684
3854
|
DatePicker2,
|
|
4685
3855
|
{
|
|
4686
3856
|
selected: value,
|
|
@@ -4695,7 +3865,7 @@ function DateTimePicker({
|
|
|
4695
3865
|
className: inputClassName
|
|
4696
3866
|
}
|
|
4697
3867
|
) }),
|
|
4698
|
-
/* @__PURE__ */
|
|
3868
|
+
/* @__PURE__ */ jsx29(
|
|
4699
3869
|
"style",
|
|
4700
3870
|
{
|
|
4701
3871
|
dangerouslySetInnerHTML: {
|
|
@@ -4806,7 +3976,7 @@ function DateTimePicker({
|
|
|
4806
3976
|
}
|
|
4807
3977
|
|
|
4808
3978
|
// src/components/authors/author-detail-view.tsx
|
|
4809
|
-
import { jsx as
|
|
3979
|
+
import { jsx as jsx30, jsxs as jsxs25 } from "react/jsx-runtime";
|
|
4810
3980
|
function AuthorDetailView({ author, proxyImageUrl, children, className }) {
|
|
4811
3981
|
const runtime = useChatRuntime();
|
|
4812
3982
|
const proxiedAvatar = author.avatarUrl ? proxyImageUrl ? proxyImageUrl(author.avatarUrl) : getProxiedImageUrl(author.avatarUrl, {
|
|
@@ -4816,14 +3986,14 @@ function AuthorDetailView({ author, proxyImageUrl, children, className }) {
|
|
|
4816
3986
|
}) ?? author.avatarUrl : null;
|
|
4817
3987
|
const subtitle = [author.jobTitle, author.company].filter(Boolean).join(" @ ");
|
|
4818
3988
|
const bioText = formatBioText(author.about);
|
|
4819
|
-
return /* @__PURE__ */
|
|
4820
|
-
/* @__PURE__ */
|
|
4821
|
-
/* @__PURE__ */
|
|
4822
|
-
/* @__PURE__ */
|
|
4823
|
-
/* @__PURE__ */
|
|
4824
|
-
subtitle && /* @__PURE__ */
|
|
3989
|
+
return /* @__PURE__ */ jsxs25("div", { className: cn("flex flex-col gap-5 md:gap-6", className), children: [
|
|
3990
|
+
/* @__PURE__ */ jsxs25("div", { className: "flex w-full items-start gap-6", children: [
|
|
3991
|
+
/* @__PURE__ */ jsx30("div", { className: "relative h-24 w-24 shrink-0", children: /* @__PURE__ */ jsx30("div", { className: "relative h-full w-full overflow-hidden rounded-full border border-ods-border bg-ods-bg-surface", children: proxiedAvatar ? /* @__PURE__ */ jsx30(next_image_default, { src: proxiedAvatar, alt: author.fullName, fill: true, className: "object-cover", unoptimized: true }) : /* @__PURE__ */ jsx30("div", { className: "flex h-full w-full items-center justify-center font-heading text-3xl text-ods-text-secondary", children: author.fullName.charAt(0).toUpperCase() }) }) }),
|
|
3992
|
+
/* @__PURE__ */ jsxs25("div", { className: "flex min-w-0 flex-col justify-center gap-2", children: [
|
|
3993
|
+
/* @__PURE__ */ jsx30("p", { className: "truncate leading-none text-ods-text-primary text-h2", children: author.fullName }),
|
|
3994
|
+
subtitle && /* @__PURE__ */ jsx30("p", { className: "truncate font-body text-lg leading-none text-ods-text-secondary", children: subtitle }),
|
|
4825
3995
|
author.socialLinks.length > 0 && // Ghost compact row (transparent 32px) — metadata, not CTAs.
|
|
4826
|
-
/* @__PURE__ */
|
|
3996
|
+
/* @__PURE__ */ jsx30(
|
|
4827
3997
|
SocialIconRow,
|
|
4828
3998
|
{
|
|
4829
3999
|
compact: true,
|
|
@@ -4836,8 +4006,8 @@ function AuthorDetailView({ author, proxyImageUrl, children, className }) {
|
|
|
4836
4006
|
)
|
|
4837
4007
|
] })
|
|
4838
4008
|
] }),
|
|
4839
|
-
bioText && /* @__PURE__ */
|
|
4840
|
-
author.knowsAbout.length > 0 && /* @__PURE__ */
|
|
4009
|
+
bioText && /* @__PURE__ */ jsx30("p", { className: "text-ods-text-secondary text-h6", children: bioText }),
|
|
4010
|
+
author.knowsAbout.length > 0 && /* @__PURE__ */ jsx30("div", { className: "flex flex-wrap gap-2", children: author.knowsAbout.map((topic) => /* @__PURE__ */ jsx30(StatusBadge, { text: topic, variant: "button", colorScheme: "cyan", singleLine: true }, topic)) }),
|
|
4841
4011
|
children
|
|
4842
4012
|
] });
|
|
4843
4013
|
}
|
|
@@ -5792,6 +4962,7 @@ export {
|
|
|
5792
4962
|
UsersGridSkeleton,
|
|
5793
4963
|
UsersGroupIcon,
|
|
5794
4964
|
UsersIcon,
|
|
4965
|
+
VIDEO_PLAYBACK_FAILED_EVENT,
|
|
5795
4966
|
VendorDetailLayoutSkeleton,
|
|
5796
4967
|
VendorDirectoryIcon,
|
|
5797
4968
|
VendorDisplayButton,
|