@flamingo-stack/openframe-frontend-core 0.0.582-1967.5390.1 → 0.0.582
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-PDK6KVU6.js → chunk-53ZVUW2M.js} +4 -4
- package/dist/{chunk-BTXJQPGE.js → chunk-5U2FU5LM.js} +2 -2
- package/dist/{chunk-VG2SRECA.cjs → chunk-7WE6FGGK.cjs} +49 -49
- package/dist/{chunk-VG2SRECA.cjs.map → chunk-7WE6FGGK.cjs.map} +1 -1
- package/dist/{chunk-EXBNO6FB.js → chunk-CJW6KZD3.js} +2 -2
- package/dist/{chunk-UQXQCM3F.cjs → chunk-E4TK2BBD.cjs} +3 -3
- package/dist/{chunk-UQXQCM3F.cjs.map → chunk-E4TK2BBD.cjs.map} +1 -1
- package/dist/{chunk-NOO3QOJI.js → chunk-EULY3BXB.js} +2 -2
- package/dist/{chunk-ML22BIKH.js → chunk-GAL6EXUY.js} +3 -3
- package/dist/{chunk-YTZK2ORN.js → chunk-H7K76TPX.js} +4 -4
- package/dist/{chunk-RH7EY7YN.cjs → chunk-HMEEW73F.cjs} +1978 -237
- package/dist/chunk-HMEEW73F.cjs.map +1 -0
- package/dist/{chunk-KNQZZJYJ.js → chunk-IB23CRL2.js} +2 -2
- package/dist/{chunk-GHYWIVSU.cjs → chunk-IVJ6TBVW.cjs} +34 -34
- package/dist/{chunk-GHYWIVSU.cjs.map → chunk-IVJ6TBVW.cjs.map} +1 -1
- package/dist/{chunk-XJ3Y4OOF.js → chunk-IZGXIZWF.js} +2 -2
- package/dist/chunk-JMWLF2GL.cjs +1055 -0
- package/dist/chunk-JMWLF2GL.cjs.map +1 -0
- package/dist/{chunk-MCFETAH7.js → chunk-JUXCEHK2.js} +2 -2
- package/dist/{chunk-KX4F4O26.cjs → chunk-KS7NKONC.cjs} +3 -3
- package/dist/{chunk-KX4F4O26.cjs.map → chunk-KS7NKONC.cjs.map} +1 -1
- package/dist/{chunk-VYNYJVSE.cjs → chunk-LHQ6RVFE.cjs} +17 -17
- package/dist/{chunk-VYNYJVSE.cjs.map → chunk-LHQ6RVFE.cjs.map} +1 -1
- package/dist/{chunk-LGHMGCUG.cjs → chunk-M3ERSHPM.cjs} +4 -4
- package/dist/{chunk-LGHMGCUG.cjs.map → chunk-M3ERSHPM.cjs.map} +1 -1
- package/dist/{chunk-Q7X74UZF.cjs → chunk-RBMVTCRM.cjs} +3 -3
- package/dist/{chunk-Q7X74UZF.cjs.map → chunk-RBMVTCRM.cjs.map} +1 -1
- package/dist/{chunk-LYU3IZOA.cjs → chunk-RILGQ2OY.cjs} +10 -10
- package/dist/{chunk-LYU3IZOA.cjs.map → chunk-RILGQ2OY.cjs.map} +1 -1
- package/dist/{chunk-T6DRWYLM.cjs → chunk-RQMS2CF5.cjs} +17 -17
- package/dist/{chunk-T6DRWYLM.cjs.map → chunk-RQMS2CF5.cjs.map} +1 -1
- package/dist/{chunk-TC47NAJ3.cjs → chunk-S2ZXUQLR.cjs} +16 -16
- package/dist/{chunk-TC47NAJ3.cjs.map → chunk-S2ZXUQLR.cjs.map} +1 -1
- package/dist/{chunk-G3ZMLSKJ.js → chunk-SM6JAZ4C.js} +2 -2
- package/dist/{chunk-LENIASJW.js → chunk-T4DIAKIK.js} +2 -2
- package/dist/{chunk-ODOFQLSP.cjs → chunk-TMNFC24G.cjs} +13 -13
- package/dist/{chunk-ODOFQLSP.cjs.map → chunk-TMNFC24G.cjs.map} +1 -1
- package/dist/{chunk-FVF2MVIT.js → chunk-U6GFESVF.js} +2 -2
- package/dist/{chunk-2T7GXHRQ.js → chunk-XA5UPYWE.js} +2745 -1004
- package/dist/chunk-XA5UPYWE.js.map +1 -0
- package/dist/{chunk-TVLQVTZ6.cjs → chunk-XNSEZVV4.cjs} +4 -4
- package/dist/{chunk-TVLQVTZ6.cjs.map → chunk-XNSEZVV4.cjs.map} +1 -1
- package/dist/{chunk-XJJ2D64Q.cjs → chunk-YU4QZ6I6.cjs} +3 -3
- package/dist/{chunk-XJJ2D64Q.cjs.map → chunk-YU4QZ6I6.cjs.map} +1 -1
- package/dist/{chunk-LFG5JG2D.js → chunk-ZSENCE55.js} +5 -5
- package/dist/components/case-studies/index.cjs +8 -8
- package/dist/components/case-studies/index.js +2 -2
- package/dist/components/contact/index.cjs +3 -3
- package/dist/components/contact/index.js +2 -2
- package/dist/components/docs/index.cjs +6 -6
- package/dist/components/docs/index.js +5 -5
- package/dist/components/embeds/index.cjs +3 -3
- package/dist/components/embeds/index.js +2 -2
- package/dist/components/faq/index.cjs +3 -3
- package/dist/components/faq/index.js +2 -2
- package/dist/components/features/index.cjs +2 -2
- package/dist/components/features/index.js +1 -1
- package/dist/components/features/push-button-selector.d.ts +29 -1
- package/dist/components/features/push-button-selector.d.ts.map +1 -1
- package/dist/components/help-center-pages/index.cjs +22 -22
- package/dist/components/help-center-pages/index.js +13 -13
- package/dist/components/index.cjs +61 -892
- package/dist/components/index.cjs.map +1 -1
- package/dist/components/index.js +244 -1075
- package/dist/components/index.js.map +1 -1
- package/dist/components/meeting-scheduler/index.cjs +18 -18
- package/dist/components/meeting-scheduler/index.js +1 -1
- package/dist/components/navigation/index.cjs +5 -5
- package/dist/components/navigation/index.js +4 -4
- package/dist/components/onboarding-guides/index.cjs +5 -5
- package/dist/components/onboarding-guides/index.js +4 -4
- package/dist/components/tickets/index.cjs +6 -6
- package/dist/components/tickets/index.js +5 -5
- package/dist/components/ui/index.cjs +2 -2
- package/dist/components/ui/index.js +1 -1
- package/dist/index.cjs +6 -6
- package/dist/index.js +5 -5
- package/dist/utils/announcement-storage.d.ts +16 -25
- package/dist/utils/announcement-storage.d.ts.map +1 -1
- package/dist/utils/dismiss-cookie.d.ts +8 -27
- package/dist/utils/dismiss-cookie.d.ts.map +1 -1
- package/dist/utils/dismissal-storage.d.ts +2 -2
- package/dist/utils/dismissal-storage.d.ts.map +1 -1
- package/dist/utils/index.cjs +53 -70
- package/dist/utils/index.cjs.map +1 -1
- package/dist/utils/index.js +53 -70
- package/dist/utils/index.js.map +1 -1
- package/package.json +1 -1
- package/src/components/features/.push-button-selector.md +1 -1
- package/src/components/features/push-button-selector.tsx +142 -17
- package/src/utils/announcement-storage.ts +16 -25
- package/src/utils/dismiss-cookie.ts +9 -86
- package/src/utils/dismissal-storage.ts +2 -2
- package/dist/chunk-2T7GXHRQ.js.map +0 -1
- package/dist/chunk-FWNIZC6A.js +0 -1867
- package/dist/chunk-FWNIZC6A.js.map +0 -1
- package/dist/chunk-IHFTLVDF.cjs +0 -1867
- package/dist/chunk-IHFTLVDF.cjs.map +0 -1
- package/dist/chunk-RH7EY7YN.cjs.map +0 -1
- package/src/utils/__tests__/dismiss-cookie.test.ts +0 -133
- /package/dist/{chunk-PDK6KVU6.js.map → chunk-53ZVUW2M.js.map} +0 -0
- /package/dist/{chunk-BTXJQPGE.js.map → chunk-5U2FU5LM.js.map} +0 -0
- /package/dist/{chunk-EXBNO6FB.js.map → chunk-CJW6KZD3.js.map} +0 -0
- /package/dist/{chunk-NOO3QOJI.js.map → chunk-EULY3BXB.js.map} +0 -0
- /package/dist/{chunk-ML22BIKH.js.map → chunk-GAL6EXUY.js.map} +0 -0
- /package/dist/{chunk-YTZK2ORN.js.map → chunk-H7K76TPX.js.map} +0 -0
- /package/dist/{chunk-KNQZZJYJ.js.map → chunk-IB23CRL2.js.map} +0 -0
- /package/dist/{chunk-XJ3Y4OOF.js.map → chunk-IZGXIZWF.js.map} +0 -0
- /package/dist/{chunk-MCFETAH7.js.map → chunk-JUXCEHK2.js.map} +0 -0
- /package/dist/{chunk-G3ZMLSKJ.js.map → chunk-SM6JAZ4C.js.map} +0 -0
- /package/dist/{chunk-LENIASJW.js.map → chunk-T4DIAKIK.js.map} +0 -0
- /package/dist/{chunk-FVF2MVIT.js.map → chunk-U6GFESVF.js.map} +0 -0
- /package/dist/{chunk-LFG5JG2D.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 {
|
|
@@ -2128,305 +2156,9 @@ function CommentComposer({
|
|
|
2128
2156
|
] });
|
|
2129
2157
|
}
|
|
2130
2158
|
|
|
2131
|
-
// src/components/content-loading-container.tsx
|
|
2132
|
-
import { jsx as jsx10, jsxs as jsxs8 } from "react/jsx-runtime";
|
|
2133
|
-
function ContentLoadingContainer({
|
|
2134
|
-
isLoading,
|
|
2135
|
-
children,
|
|
2136
|
-
skeletonComponent,
|
|
2137
|
-
className,
|
|
2138
|
-
minHeight = "min-h-[300px] md:min-h-[800px]",
|
|
2139
|
-
loadingOpacity = 1,
|
|
2140
|
-
transitionDuration = 300
|
|
2141
|
-
}) {
|
|
2142
|
-
return /* @__PURE__ */ jsxs8(
|
|
2143
|
-
"div",
|
|
2144
|
-
{
|
|
2145
|
-
className: cn("relative w-full transition-all ease-in-out", minHeight, className),
|
|
2146
|
-
style: {
|
|
2147
|
-
transitionDuration: `${transitionDuration}ms`
|
|
2148
|
-
},
|
|
2149
|
-
role: "region",
|
|
2150
|
-
"aria-label": isLoading ? "Loading content" : "Content loaded",
|
|
2151
|
-
"aria-live": "polite",
|
|
2152
|
-
children: [
|
|
2153
|
-
isLoading && /* @__PURE__ */ jsx10(
|
|
2154
|
-
"div",
|
|
2155
|
-
{
|
|
2156
|
-
className: "absolute inset-0 z-10 bg-ods-bg",
|
|
2157
|
-
style: {
|
|
2158
|
-
opacity: loadingOpacity,
|
|
2159
|
-
transition: `opacity ${transitionDuration}ms ease-in-out`
|
|
2160
|
-
},
|
|
2161
|
-
role: "status",
|
|
2162
|
-
"aria-label": "Loading content",
|
|
2163
|
-
children: skeletonComponent
|
|
2164
|
-
}
|
|
2165
|
-
),
|
|
2166
|
-
/* @__PURE__ */ jsx10(
|
|
2167
|
-
"div",
|
|
2168
|
-
{
|
|
2169
|
-
className: cn("relative transition-opacity ease-in-out", isLoading && "opacity-0"),
|
|
2170
|
-
style: {
|
|
2171
|
-
transitionDuration: `${transitionDuration}ms`
|
|
2172
|
-
},
|
|
2173
|
-
"aria-hidden": isLoading,
|
|
2174
|
-
children
|
|
2175
|
-
}
|
|
2176
|
-
)
|
|
2177
|
-
]
|
|
2178
|
-
}
|
|
2179
|
-
);
|
|
2180
|
-
}
|
|
2181
|
-
function useContentLoading(isLoading) {
|
|
2182
|
-
const containerProps = {
|
|
2183
|
-
"aria-busy": isLoading,
|
|
2184
|
-
"data-loading": isLoading
|
|
2185
|
-
};
|
|
2186
|
-
const getSkeletonCount = (contentType) => {
|
|
2187
|
-
return contentType === "vendor" ? 12 : 6;
|
|
2188
|
-
};
|
|
2189
|
-
const getMinHeight = (contentType) => {
|
|
2190
|
-
return contentType === "vendor" ? "min-h-[400px] md:min-h-[900px]" : "min-h-[300px] md:min-h-[800px]";
|
|
2191
|
-
};
|
|
2192
|
-
return {
|
|
2193
|
-
containerProps,
|
|
2194
|
-
getSkeletonCount,
|
|
2195
|
-
getMinHeight
|
|
2196
|
-
};
|
|
2197
|
-
}
|
|
2198
|
-
|
|
2199
|
-
// src/components/dynamic-skeleton.tsx
|
|
2200
|
-
import React from "react";
|
|
2201
|
-
|
|
2202
|
-
// src/hooks/use-theme-aware.ts
|
|
2203
|
-
function useThemeAware() {
|
|
2204
|
-
return {
|
|
2205
|
-
themeColors: {},
|
|
2206
|
-
platformContext: "default",
|
|
2207
|
-
isDarkMode: false,
|
|
2208
|
-
platform: "default",
|
|
2209
|
-
isDark: false,
|
|
2210
|
-
accentColor: "#FFC008"
|
|
2211
|
-
};
|
|
2212
|
-
}
|
|
2213
|
-
|
|
2214
|
-
// src/components/dynamic-skeleton.tsx
|
|
2215
|
-
import { Fragment as Fragment2, jsx as jsx11, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
2216
|
-
var sizePresets = {
|
|
2217
|
-
sm: { width: "4rem", height: "1rem" },
|
|
2218
|
-
md: { width: "8rem", height: "1.5rem" },
|
|
2219
|
-
lg: { width: "12rem", height: "2rem" },
|
|
2220
|
-
xl: { width: "16rem", height: "2.5rem" }
|
|
2221
|
-
};
|
|
2222
|
-
var variantStyles = {
|
|
2223
|
-
text: "rounded",
|
|
2224
|
-
avatar: "rounded-full aspect-square",
|
|
2225
|
-
card: "rounded-lg",
|
|
2226
|
-
button: "rounded-md",
|
|
2227
|
-
image: "rounded-lg aspect-video",
|
|
2228
|
-
custom: ""
|
|
2229
|
-
};
|
|
2230
|
-
function DynamicSkeleton({
|
|
2231
|
-
animation = "shimmer",
|
|
2232
|
-
variant = "text",
|
|
2233
|
-
size = "md",
|
|
2234
|
-
width,
|
|
2235
|
-
height,
|
|
2236
|
-
lines = 1,
|
|
2237
|
-
platformAware = true,
|
|
2238
|
-
includeAriaLabel = true,
|
|
2239
|
-
className,
|
|
2240
|
-
children
|
|
2241
|
-
}) {
|
|
2242
|
-
const { platform, isDark, accentColor } = useThemeAware();
|
|
2243
|
-
const dimensions = React.useMemo(() => {
|
|
2244
|
-
if (width || height) {
|
|
2245
|
-
return {
|
|
2246
|
-
width: typeof width === "number" ? `${width}px` : width,
|
|
2247
|
-
height: typeof height === "number" ? `${height}px` : height
|
|
2248
|
-
};
|
|
2249
|
-
}
|
|
2250
|
-
if (variant === "avatar") {
|
|
2251
|
-
const avatarSize = sizePresets[size].height;
|
|
2252
|
-
return { width: avatarSize, height: avatarSize };
|
|
2253
|
-
}
|
|
2254
|
-
return sizePresets[size];
|
|
2255
|
-
}, [width, height, size, variant]);
|
|
2256
|
-
const platformStyles = React.useMemo(() => {
|
|
2257
|
-
if (!platformAware) return {};
|
|
2258
|
-
const baseOpacity = isDark ? 0.1 : 0.15;
|
|
2259
|
-
const accentOpacity = isDark ? 0.05 : 0.08;
|
|
2260
|
-
return {
|
|
2261
|
-
"--skeleton-base": `color-mix(in srgb, var(--color-bg-skeleton) ${baseOpacity * 100}%, transparent)`,
|
|
2262
|
-
"--skeleton-highlight": `color-mix(in srgb, ${accentColor} ${accentOpacity * 100}%, var(--color-bg-skeleton))`,
|
|
2263
|
-
"--skeleton-accent": `color-mix(in srgb, ${accentColor} 10%, transparent)`
|
|
2264
|
-
};
|
|
2265
|
-
}, [platformAware, isDark, accentColor]);
|
|
2266
|
-
const animationClasses = {
|
|
2267
|
-
pulse: "animate-pulse",
|
|
2268
|
-
shimmer: "ods-loading-dynamic",
|
|
2269
|
-
wave: "skeleton-wave",
|
|
2270
|
-
static: ""
|
|
2271
|
-
};
|
|
2272
|
-
const baseClasses = cn(
|
|
2273
|
-
"bg-ods-skeleton",
|
|
2274
|
-
variantStyles[variant],
|
|
2275
|
-
animationClasses[animation],
|
|
2276
|
-
platformAware && `skeleton-platform-${platform}`,
|
|
2277
|
-
className
|
|
2278
|
-
);
|
|
2279
|
-
if (variant === "text" && lines > 1) {
|
|
2280
|
-
return /* @__PURE__ */ jsx11(
|
|
2281
|
-
"div",
|
|
2282
|
-
{
|
|
2283
|
-
className: "space-y-2",
|
|
2284
|
-
style: platformStyles,
|
|
2285
|
-
role: "status",
|
|
2286
|
-
"aria-label": includeAriaLabel ? "Loading content..." : void 0,
|
|
2287
|
-
children: Array.from({ length: lines }, (_, index) => /* @__PURE__ */ jsx11(
|
|
2288
|
-
"div",
|
|
2289
|
-
{
|
|
2290
|
-
className: cn(
|
|
2291
|
-
baseClasses,
|
|
2292
|
-
index === lines - 1 && "w-3/4"
|
|
2293
|
-
// Last line shorter
|
|
2294
|
-
),
|
|
2295
|
-
style: {
|
|
2296
|
-
...dimensions,
|
|
2297
|
-
width: index === lines - 1 ? "75%" : dimensions.width
|
|
2298
|
-
}
|
|
2299
|
-
},
|
|
2300
|
-
index
|
|
2301
|
-
))
|
|
2302
|
-
}
|
|
2303
|
-
);
|
|
2304
|
-
}
|
|
2305
|
-
return /* @__PURE__ */ jsx11(
|
|
2306
|
-
"div",
|
|
2307
|
-
{
|
|
2308
|
-
className: baseClasses,
|
|
2309
|
-
style: { ...dimensions, ...platformStyles },
|
|
2310
|
-
role: "status",
|
|
2311
|
-
"aria-label": includeAriaLabel ? "Loading content..." : void 0,
|
|
2312
|
-
children
|
|
2313
|
-
}
|
|
2314
|
-
);
|
|
2315
|
-
}
|
|
2316
|
-
var SkeletonPresets = {
|
|
2317
|
-
/**
|
|
2318
|
-
* Card skeleton with header, content, and actions
|
|
2319
|
-
*/
|
|
2320
|
-
Card: ({ showActions = true, showImage = false }) => /* @__PURE__ */ jsxs9("div", { className: "space-y-4 rounded-lg border border-ods-border bg-ods-card p-6", children: [
|
|
2321
|
-
showImage && /* @__PURE__ */ jsx11(DynamicSkeleton, { variant: "image", className: "h-40 w-full" }),
|
|
2322
|
-
/* @__PURE__ */ jsxs9("div", { className: "space-y-2", children: [
|
|
2323
|
-
/* @__PURE__ */ jsx11(DynamicSkeleton, { variant: "text", size: "lg" }),
|
|
2324
|
-
/* @__PURE__ */ jsx11(DynamicSkeleton, { variant: "text", lines: 2, size: "md" })
|
|
2325
|
-
] }),
|
|
2326
|
-
showActions && /* @__PURE__ */ jsxs9("div", { className: "flex gap-2 pt-2", children: [
|
|
2327
|
-
/* @__PURE__ */ jsx11(DynamicSkeleton, { variant: "button", width: "6rem", height: "2.5rem" }),
|
|
2328
|
-
/* @__PURE__ */ jsx11(DynamicSkeleton, { variant: "button", width: "4rem", height: "2.5rem" })
|
|
2329
|
-
] })
|
|
2330
|
-
] }),
|
|
2331
|
-
/**
|
|
2332
|
-
* User profile skeleton
|
|
2333
|
-
*/
|
|
2334
|
-
Profile: () => /* @__PURE__ */ jsxs9("div", { className: "flex items-start gap-4 p-4", children: [
|
|
2335
|
-
/* @__PURE__ */ jsx11(DynamicSkeleton, { variant: "avatar", size: "lg" }),
|
|
2336
|
-
/* @__PURE__ */ jsxs9("div", { className: "flex-1 space-y-2", children: [
|
|
2337
|
-
/* @__PURE__ */ jsx11(DynamicSkeleton, { variant: "text", size: "lg", width: "8rem" }),
|
|
2338
|
-
/* @__PURE__ */ jsx11(DynamicSkeleton, { variant: "text", size: "sm", width: "12rem" }),
|
|
2339
|
-
/* @__PURE__ */ jsx11(DynamicSkeleton, { variant: "text", lines: 2, size: "md" })
|
|
2340
|
-
] })
|
|
2341
|
-
] }),
|
|
2342
|
-
/**
|
|
2343
|
-
* Navigation skeleton
|
|
2344
|
-
*/
|
|
2345
|
-
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: [
|
|
2346
|
-
/* @__PURE__ */ jsx11(DynamicSkeleton, { variant: "avatar", size: "sm" }),
|
|
2347
|
-
/* @__PURE__ */ jsx11(DynamicSkeleton, { variant: "text", size: "md" })
|
|
2348
|
-
] }, index)) }),
|
|
2349
|
-
/**
|
|
2350
|
-
* Table skeleton
|
|
2351
|
-
*/
|
|
2352
|
-
Table: ({ rows = 5, columns = 4 }) => /* @__PURE__ */ jsxs9("div", { className: "space-y-3", children: [
|
|
2353
|
-
/* @__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}`)) }),
|
|
2354
|
-
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}`))
|
|
2355
|
-
] }),
|
|
2356
|
-
/**
|
|
2357
|
-
* Vendor grid skeleton (specific to the app)
|
|
2358
|
-
*/
|
|
2359
|
-
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: [
|
|
2360
|
-
/* @__PURE__ */ jsxs9("div", { className: "flex items-center gap-3", children: [
|
|
2361
|
-
/* @__PURE__ */ jsx11(DynamicSkeleton, { variant: "avatar", size: "md" }),
|
|
2362
|
-
/* @__PURE__ */ jsxs9("div", { className: "flex-1", children: [
|
|
2363
|
-
/* @__PURE__ */ jsx11(DynamicSkeleton, { variant: "text", size: "md", width: "6rem" }),
|
|
2364
|
-
/* @__PURE__ */ jsx11(DynamicSkeleton, { variant: "text", size: "sm", width: "4rem", className: "mt-1" })
|
|
2365
|
-
] })
|
|
2366
|
-
] }),
|
|
2367
|
-
/* @__PURE__ */ jsx11(DynamicSkeleton, { variant: "text", lines: 2, size: "sm" }),
|
|
2368
|
-
/* @__PURE__ */ jsxs9("div", { className: "flex gap-2", children: [
|
|
2369
|
-
/* @__PURE__ */ jsx11(DynamicSkeleton, { variant: "custom", width: "3rem", height: "1.25rem", className: "rounded-full" }),
|
|
2370
|
-
/* @__PURE__ */ jsx11(DynamicSkeleton, { variant: "custom", width: "4rem", height: "1.25rem", className: "rounded-full" })
|
|
2371
|
-
] })
|
|
2372
|
-
] }, index)) }),
|
|
2373
|
-
/**
|
|
2374
|
-
* Blog post skeleton
|
|
2375
|
-
*/
|
|
2376
|
-
BlogPost: () => /* @__PURE__ */ jsxs9("article", { className: "space-y-6", children: [
|
|
2377
|
-
/* @__PURE__ */ jsxs9("div", { className: "space-y-2", children: [
|
|
2378
|
-
/* @__PURE__ */ jsx11(DynamicSkeleton, { variant: "text", size: "xl", width: "75%" }),
|
|
2379
|
-
/* @__PURE__ */ jsxs9("div", { className: "flex gap-4 text-sm", children: [
|
|
2380
|
-
/* @__PURE__ */ jsx11(DynamicSkeleton, { variant: "text", size: "sm", width: "4rem" }),
|
|
2381
|
-
/* @__PURE__ */ jsx11(DynamicSkeleton, { variant: "text", size: "sm", width: "6rem" })
|
|
2382
|
-
] })
|
|
2383
|
-
] }),
|
|
2384
|
-
/* @__PURE__ */ jsx11(DynamicSkeleton, { variant: "image", className: "h-64 w-full" }),
|
|
2385
|
-
/* @__PURE__ */ jsx11("div", { className: "space-y-3", children: Array.from({ length: 4 }, (_, index) => /* @__PURE__ */ jsx11(DynamicSkeleton, { variant: "text", lines: 3, size: "md" }, index)) })
|
|
2386
|
-
] })
|
|
2387
|
-
};
|
|
2388
|
-
function PlatformSkeletonContainer({
|
|
2389
|
-
children,
|
|
2390
|
-
isLoading,
|
|
2391
|
-
skeletonType = "Card",
|
|
2392
|
-
skeletonProps = {}
|
|
2393
|
-
}) {
|
|
2394
|
-
const { platform } = useThemeAware();
|
|
2395
|
-
if (!isLoading) {
|
|
2396
|
-
return /* @__PURE__ */ jsx11(Fragment2, { children });
|
|
2397
|
-
}
|
|
2398
|
-
const SkeletonComponent = SkeletonPresets[skeletonType];
|
|
2399
|
-
return /* @__PURE__ */ jsx11("div", { className: `platform-skeleton skeleton-${platform}`, children: /* @__PURE__ */ jsx11(SkeletonComponent, { ...skeletonProps }) });
|
|
2400
|
-
}
|
|
2401
|
-
function ProgressiveSkeleton({
|
|
2402
|
-
// Named only to keep it out of the `...props` spread: the stage NAMES are
|
|
2403
|
-
// unused, `currentStage` alone selects the skeleton shape below.
|
|
2404
|
-
stages: _stages = ["basic", "detailed", "interactive"],
|
|
2405
|
-
currentStage = 0,
|
|
2406
|
-
children,
|
|
2407
|
-
...props
|
|
2408
|
-
}) {
|
|
2409
|
-
const { platform } = useThemeAware();
|
|
2410
|
-
const stageConfig = {
|
|
2411
|
-
0: { animation: "pulse", variant: "text" },
|
|
2412
|
-
1: { animation: "shimmer", variant: "card" },
|
|
2413
|
-
2: { animation: "wave", variant: "custom" }
|
|
2414
|
-
};
|
|
2415
|
-
const config = stageConfig[currentStage] || stageConfig[0];
|
|
2416
|
-
return /* @__PURE__ */ jsx11(
|
|
2417
|
-
DynamicSkeleton,
|
|
2418
|
-
{
|
|
2419
|
-
...props,
|
|
2420
|
-
...config,
|
|
2421
|
-
className: cn(props.className, `skeleton-stage-${currentStage}`, `skeleton-platform-${platform}`),
|
|
2422
|
-
children
|
|
2423
|
-
}
|
|
2424
|
-
);
|
|
2425
|
-
}
|
|
2426
|
-
|
|
2427
2159
|
// src/components/filter-chip.tsx
|
|
2428
2160
|
import { X as X2 } from "lucide-react";
|
|
2429
|
-
import { jsx as
|
|
2161
|
+
import { jsx as jsx10, jsxs as jsxs8 } from "react/jsx-runtime";
|
|
2430
2162
|
function FilterChip({
|
|
2431
2163
|
label,
|
|
2432
2164
|
variant = "unselected",
|
|
@@ -2458,7 +2190,7 @@ function FilterChip({
|
|
|
2458
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",
|
|
2459
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"
|
|
2460
2192
|
};
|
|
2461
|
-
return /* @__PURE__ */
|
|
2193
|
+
return /* @__PURE__ */ jsxs8(
|
|
2462
2194
|
"div",
|
|
2463
2195
|
{
|
|
2464
2196
|
className: cn(baseClasses, variantClasses[variant], className),
|
|
@@ -2472,7 +2204,7 @@ function FilterChip({
|
|
|
2472
2204
|
"aria-pressed": onClick && variant === "selected" ? true : void 0,
|
|
2473
2205
|
"aria-disabled": disabled,
|
|
2474
2206
|
children: [
|
|
2475
|
-
/* @__PURE__ */
|
|
2207
|
+
/* @__PURE__ */ jsx10(
|
|
2476
2208
|
"span",
|
|
2477
2209
|
{
|
|
2478
2210
|
className: cn(
|
|
@@ -2483,7 +2215,7 @@ function FilterChip({
|
|
|
2483
2215
|
children: label
|
|
2484
2216
|
}
|
|
2485
2217
|
),
|
|
2486
|
-
removable && onRemove && /* @__PURE__ */
|
|
2218
|
+
removable && onRemove && /* @__PURE__ */ jsx10(
|
|
2487
2219
|
"button",
|
|
2488
2220
|
{
|
|
2489
2221
|
type: "button",
|
|
@@ -2502,7 +2234,7 @@ function FilterChip({
|
|
|
2502
2234
|
),
|
|
2503
2235
|
"aria-label": `Remove ${label} filter`,
|
|
2504
2236
|
tabIndex: disabled ? -1 : 0,
|
|
2505
|
-
children: /* @__PURE__ */
|
|
2237
|
+
children: /* @__PURE__ */ jsx10(X2, { className: "h-2 w-2 md:h-2 md:w-2" })
|
|
2506
2238
|
}
|
|
2507
2239
|
)
|
|
2508
2240
|
]
|
|
@@ -2515,7 +2247,7 @@ import { Suspense } from "react";
|
|
|
2515
2247
|
|
|
2516
2248
|
// src/components/social-icon-row.tsx
|
|
2517
2249
|
import { Mail } from "lucide-react";
|
|
2518
|
-
import { jsx as
|
|
2250
|
+
import { jsx as jsx11, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
2519
2251
|
var defaultLinks = [
|
|
2520
2252
|
{ platform: "github", href: "https://github.com/flamingo-stack", label: "GitHub" },
|
|
2521
2253
|
{ platform: "linkedin", href: "https://linkedin.com/company/flamingo.run", label: "LinkedIn" },
|
|
@@ -2525,44 +2257,44 @@ function renderSocialIcon(platform) {
|
|
|
2525
2257
|
const normalizedPlatform = platform.toLowerCase().trim();
|
|
2526
2258
|
switch (normalizedPlatform) {
|
|
2527
2259
|
case "github":
|
|
2528
|
-
return /* @__PURE__ */
|
|
2260
|
+
return /* @__PURE__ */ jsx11(GitHubIcon, { className: "h-5 w-5" });
|
|
2529
2261
|
case "twitter":
|
|
2530
2262
|
case "x":
|
|
2531
|
-
return /* @__PURE__ */
|
|
2263
|
+
return /* @__PURE__ */ jsx11(XLogo, { className: "h-5 w-5" });
|
|
2532
2264
|
case "reddit":
|
|
2533
|
-
return /* @__PURE__ */
|
|
2265
|
+
return /* @__PURE__ */ jsx11(RedditIcon, { className: "h-5 w-5", variant: "white" });
|
|
2534
2266
|
case "linkedin":
|
|
2535
|
-
return /* @__PURE__ */
|
|
2267
|
+
return /* @__PURE__ */ jsx11(LinkedInIcon, { className: "h-5 w-5" });
|
|
2536
2268
|
case "luma":
|
|
2537
|
-
return /* @__PURE__ */
|
|
2269
|
+
return /* @__PURE__ */ jsx11(LumaIcon, { className: "h-5 w-5" });
|
|
2538
2270
|
case "whatsapp":
|
|
2539
|
-
return /* @__PURE__ */
|
|
2271
|
+
return /* @__PURE__ */ jsx11(WhatsAppIcon, { className: "h-5 w-5" });
|
|
2540
2272
|
case "email":
|
|
2541
2273
|
case "mail":
|
|
2542
|
-
return /* @__PURE__ */
|
|
2274
|
+
return /* @__PURE__ */ jsx11(Mail, { className: "h-5 w-5" });
|
|
2543
2275
|
case "website":
|
|
2544
2276
|
case "web":
|
|
2545
2277
|
case "url":
|
|
2546
|
-
return /* @__PURE__ */
|
|
2278
|
+
return /* @__PURE__ */ jsx11(GlobeIcon, { className: "h-5 w-5" });
|
|
2547
2279
|
case "slack":
|
|
2548
|
-
return /* @__PURE__ */
|
|
2280
|
+
return /* @__PURE__ */ jsx11(SlackIcon, { className: "h-5 w-5", injectedColor: "white" });
|
|
2549
2281
|
case "discord":
|
|
2550
|
-
return /* @__PURE__ */
|
|
2282
|
+
return /* @__PURE__ */ jsx11(MessageCircleIcon, { className: "h-5 w-5" });
|
|
2551
2283
|
case "telegram":
|
|
2552
|
-
return /* @__PURE__ */
|
|
2284
|
+
return /* @__PURE__ */ jsx11(TelegramIcon, { className: "h-5 w-5" });
|
|
2553
2285
|
case "youtube":
|
|
2554
2286
|
case "yt":
|
|
2555
|
-
return /* @__PURE__ */
|
|
2287
|
+
return /* @__PURE__ */ jsx11(YouTubeIcon, { className: "h-5 w-5" });
|
|
2556
2288
|
case "instagram":
|
|
2557
2289
|
case "ig":
|
|
2558
|
-
return /* @__PURE__ */
|
|
2290
|
+
return /* @__PURE__ */ jsx11(InstagramIcon, { className: "h-5 w-5" });
|
|
2559
2291
|
case "facebook":
|
|
2560
2292
|
case "fb":
|
|
2561
|
-
return /* @__PURE__ */
|
|
2293
|
+
return /* @__PURE__ */ jsx11(FacebookIcon, { className: "h-5 w-5" });
|
|
2562
2294
|
case "copy":
|
|
2563
|
-
return /* @__PURE__ */
|
|
2295
|
+
return /* @__PURE__ */ jsx11(CopyIcon, { className: "h-5 w-5", color: "var(--color-text-primary)" });
|
|
2564
2296
|
default:
|
|
2565
|
-
return /* @__PURE__ */
|
|
2297
|
+
return /* @__PURE__ */ jsx11(GlobeIcon, { className: "h-5 w-5" });
|
|
2566
2298
|
}
|
|
2567
2299
|
}
|
|
2568
2300
|
function SocialIconRow({
|
|
@@ -2575,7 +2307,7 @@ function SocialIconRow({
|
|
|
2575
2307
|
const resolvedVariant = variant !== void 0 ? variant : compact ? "transparent" : "outline";
|
|
2576
2308
|
const renderButton = (link, index) => {
|
|
2577
2309
|
const ariaLabel = link.label || link.platform;
|
|
2578
|
-
return link.onClick ? /* @__PURE__ */
|
|
2310
|
+
return link.onClick ? /* @__PURE__ */ jsx11(
|
|
2579
2311
|
Button,
|
|
2580
2312
|
{
|
|
2581
2313
|
type: "button",
|
|
@@ -2591,7 +2323,7 @@ function SocialIconRow({
|
|
|
2591
2323
|
// Props-based linking — Button renders the anchor itself
|
|
2592
2324
|
// (openInNewTab carries target="_blank" + rel="noopener noreferrer");
|
|
2593
2325
|
// no asChild/<a> nesting.
|
|
2594
|
-
/* @__PURE__ */
|
|
2326
|
+
/* @__PURE__ */ jsx11(
|
|
2595
2327
|
Button,
|
|
2596
2328
|
{
|
|
2597
2329
|
variant: resolvedVariant,
|
|
@@ -2611,33 +2343,33 @@ function SocialIconRow({
|
|
|
2611
2343
|
const external = links.filter((l) => l.visibility !== "internal");
|
|
2612
2344
|
const internal = links.filter((l) => l.visibility === "internal");
|
|
2613
2345
|
if (external.length > 0 && internal.length > 0) {
|
|
2614
|
-
return /* @__PURE__ */
|
|
2346
|
+
return /* @__PURE__ */ jsxs9("div", { className: rowClass, children: [
|
|
2615
2347
|
external.map((l, i) => renderButton(l, i)),
|
|
2616
|
-
/* @__PURE__ */
|
|
2348
|
+
/* @__PURE__ */ jsx11("span", { "aria-hidden": true, className: "my-1 w-px shrink-0 self-stretch bg-ods-border" }),
|
|
2617
2349
|
internal.map((l, i) => renderButton(l, external.length + i))
|
|
2618
2350
|
] });
|
|
2619
2351
|
}
|
|
2620
2352
|
}
|
|
2621
|
-
return /* @__PURE__ */
|
|
2353
|
+
return /* @__PURE__ */ jsx11("div", { className: rowClass, children: links.map((link, index) => renderButton(link, index)) });
|
|
2622
2354
|
}
|
|
2623
2355
|
|
|
2624
2356
|
// src/components/footer.tsx
|
|
2625
|
-
import { Fragment as
|
|
2357
|
+
import { Fragment as Fragment2, jsx as jsx12, jsxs as jsxs10 } from "react/jsx-runtime";
|
|
2626
2358
|
function NavLinkSkeleton() {
|
|
2627
|
-
return /* @__PURE__ */
|
|
2359
|
+
return /* @__PURE__ */ jsx12(Skeleton, { className: "h-5 w-20 md:h-6 md:w-24" });
|
|
2628
2360
|
}
|
|
2629
2361
|
function Footer({ config, renderLink }) {
|
|
2630
2362
|
if (!config) {
|
|
2631
2363
|
console.warn("Footer: No config provided");
|
|
2632
2364
|
return null;
|
|
2633
2365
|
}
|
|
2634
|
-
return /* @__PURE__ */
|
|
2366
|
+
return /* @__PURE__ */ jsx12(UniversalFooter, { config, renderLink });
|
|
2635
2367
|
}
|
|
2636
2368
|
function UniversalFooter({
|
|
2637
2369
|
config,
|
|
2638
2370
|
renderLink
|
|
2639
2371
|
}) {
|
|
2640
|
-
const defaultRenderLink = (link) => /* @__PURE__ */
|
|
2372
|
+
const defaultRenderLink = (link) => /* @__PURE__ */ jsx12(
|
|
2641
2373
|
"a",
|
|
2642
2374
|
{
|
|
2643
2375
|
href: link.href,
|
|
@@ -2646,21 +2378,21 @@ function UniversalFooter({
|
|
|
2646
2378
|
}
|
|
2647
2379
|
);
|
|
2648
2380
|
const linkRenderer = renderLink || defaultRenderLink;
|
|
2649
|
-
return /* @__PURE__ */
|
|
2381
|
+
return /* @__PURE__ */ jsxs10(
|
|
2650
2382
|
"footer",
|
|
2651
2383
|
{
|
|
2652
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`,
|
|
2653
2385
|
children: [
|
|
2654
|
-
/* @__PURE__ */
|
|
2655
|
-
/* @__PURE__ */
|
|
2656
|
-
/* @__PURE__ */
|
|
2657
|
-
config.logo && /* @__PURE__ */
|
|
2658
|
-
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 })
|
|
2659
2391
|
] }),
|
|
2660
|
-
!config.moveDescriptionToRight && /* @__PURE__ */
|
|
2661
|
-
/* @__PURE__ */
|
|
2662
|
-
config.belowDescriptionContent && /* @__PURE__ */
|
|
2663
|
-
!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(
|
|
2664
2396
|
SocialIconRow,
|
|
2665
2397
|
{
|
|
2666
2398
|
className: "pt-2",
|
|
@@ -2668,22 +2400,22 @@ function UniversalFooter({
|
|
|
2668
2400
|
}
|
|
2669
2401
|
)
|
|
2670
2402
|
] }),
|
|
2671
|
-
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 })
|
|
2672
2404
|
] }),
|
|
2673
|
-
config.sections.map((section, index) => /* @__PURE__ */
|
|
2674
|
-
/* @__PURE__ */
|
|
2675
|
-
/* @__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)) })
|
|
2676
2408
|
] }, index)),
|
|
2677
|
-
config.customComponent && /* @__PURE__ */
|
|
2678
|
-
(config.rightColumnContent || config.moveDescriptionToRight) && /* @__PURE__ */
|
|
2679
|
-
config.moveDescriptionToRight && /* @__PURE__ */
|
|
2680
|
-
/* @__PURE__ */
|
|
2681
|
-
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 })
|
|
2682
2414
|
] }),
|
|
2683
|
-
config.rightColumnContent && /* @__PURE__ */
|
|
2415
|
+
config.rightColumnContent && /* @__PURE__ */ jsx12(Suspense, { fallback: /* @__PURE__ */ jsx12(Skeleton, { className: "h-32 w-full" }), children: config.rightColumnContent })
|
|
2684
2416
|
] })
|
|
2685
2417
|
] }),
|
|
2686
|
-
/* @__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: [
|
|
2687
2419
|
"\xA9 ",
|
|
2688
2420
|
(/* @__PURE__ */ new Date()).getFullYear(),
|
|
2689
2421
|
" ",
|
|
@@ -3003,20 +2735,20 @@ var blogFilterConfig = {
|
|
|
3003
2735
|
|
|
3004
2736
|
// src/components/footer-waitlist-button.tsx
|
|
3005
2737
|
import { useCallback } from "react";
|
|
3006
|
-
import { jsx as
|
|
2738
|
+
import { jsx as jsx13 } from "react/jsx-runtime";
|
|
3007
2739
|
function FooterWaitlistButton({ className }) {
|
|
3008
2740
|
const router = useRouter();
|
|
3009
2741
|
const runtime = useChatRuntime();
|
|
3010
2742
|
const handleClick = useCallback(() => {
|
|
3011
2743
|
executeNavigationImperative({ runtime, href: "/waitlist#top", fallbackNavigate: router.push });
|
|
3012
2744
|
}, [router, runtime]);
|
|
3013
|
-
return /* @__PURE__ */
|
|
2745
|
+
return /* @__PURE__ */ jsx13(Button, { onClick: handleClick, className, leftIcon: /* @__PURE__ */ jsx13(OpenFrameLogo, {}), children: "Join Waitlist" });
|
|
3014
2746
|
}
|
|
3015
2747
|
|
|
3016
2748
|
// src/components/hero-image-uploader.tsx
|
|
3017
2749
|
import { Loader2, Image as ImageIcon2, Upload, X as X3 } from "lucide-react";
|
|
3018
2750
|
import { useRef, useState as useState3 } from "react";
|
|
3019
|
-
import { Fragment as
|
|
2751
|
+
import { Fragment as Fragment3, jsx as jsx14, jsxs as jsxs11 } from "react/jsx-runtime";
|
|
3020
2752
|
function readUploadedUrl(payload) {
|
|
3021
2753
|
if (typeof payload !== "object" || payload === null) return null;
|
|
3022
2754
|
if ("data" in payload) {
|
|
@@ -3119,53 +2851,53 @@ function HeroImageUploader({
|
|
|
3119
2851
|
onChange(void 0);
|
|
3120
2852
|
};
|
|
3121
2853
|
const heightStyle = typeof height === "number" ? `${height}px` : height;
|
|
3122
|
-
return /* @__PURE__ */
|
|
3123
|
-
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(
|
|
3124
2856
|
"div",
|
|
3125
2857
|
{
|
|
3126
2858
|
className: "group relative flex aspect-square h-auto w-full items-center justify-center overflow-hidden md:aspect-auto md:h-full",
|
|
3127
2859
|
style: { height: heightStyle },
|
|
3128
2860
|
children: [
|
|
3129
|
-
/* @__PURE__ */
|
|
3130
|
-
/* @__PURE__ */
|
|
3131
|
-
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(
|
|
3132
2864
|
Button,
|
|
3133
2865
|
{
|
|
3134
2866
|
variant: "outline",
|
|
3135
2867
|
size: "icon",
|
|
3136
2868
|
onClick: openDialog,
|
|
3137
2869
|
className: "h-12 w-12 rounded-full bg-white text-black hover:bg-gray-100",
|
|
3138
|
-
children: /* @__PURE__ */
|
|
2870
|
+
children: /* @__PURE__ */ jsx14(Upload, { className: "h-5 w-5" })
|
|
3139
2871
|
}
|
|
3140
2872
|
),
|
|
3141
|
-
/* @__PURE__ */
|
|
2873
|
+
/* @__PURE__ */ jsx14(
|
|
3142
2874
|
Button,
|
|
3143
2875
|
{
|
|
3144
2876
|
variant: "outline",
|
|
3145
2877
|
size: "icon",
|
|
3146
2878
|
onClick: () => handleRemove(),
|
|
3147
2879
|
className: "h-12 w-12 rounded-full bg-white text-black hover:bg-gray-100",
|
|
3148
|
-
children: /* @__PURE__ */
|
|
2880
|
+
children: /* @__PURE__ */ jsx14(X3, { className: "h-5 w-5" })
|
|
3149
2881
|
}
|
|
3150
2882
|
)
|
|
3151
2883
|
] })
|
|
3152
2884
|
]
|
|
3153
2885
|
}
|
|
3154
|
-
) : /* @__PURE__ */
|
|
2886
|
+
) : /* @__PURE__ */ jsx14(
|
|
3155
2887
|
"div",
|
|
3156
2888
|
{
|
|
3157
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`,
|
|
3158
2890
|
style: { height: heightStyle },
|
|
3159
2891
|
onClick: openDialog,
|
|
3160
|
-
children: uploading ? /* @__PURE__ */
|
|
3161
|
-
/* @__PURE__ */
|
|
3162
|
-
/* @__PURE__ */
|
|
3163
|
-
/* @__PURE__ */
|
|
3164
|
-
/* @__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" })
|
|
3165
2897
|
] })
|
|
3166
2898
|
}
|
|
3167
2899
|
),
|
|
3168
|
-
/* @__PURE__ */
|
|
2900
|
+
/* @__PURE__ */ jsx14("input", { ref: inputRef, type: "file", accept: "image/*", onChange: handleSelect, className: "hidden" })
|
|
3169
2901
|
] });
|
|
3170
2902
|
}
|
|
3171
2903
|
|
|
@@ -3184,13 +2916,13 @@ var CommunityIcon2 = MessageSquare;
|
|
|
3184
2916
|
var CompareIcon2 = GitCompare;
|
|
3185
2917
|
|
|
3186
2918
|
// src/components/icons-block.tsx
|
|
3187
|
-
import { jsx as
|
|
2919
|
+
import { jsx as jsx15, jsxs as jsxs12 } from "react/jsx-runtime";
|
|
3188
2920
|
var SunIcon2 = Sun;
|
|
3189
2921
|
var MoonIcon2 = Moon;
|
|
3190
2922
|
var CheckCircleIcon3 = CheckCircle;
|
|
3191
2923
|
var GitHubIcon2 = Github;
|
|
3192
2924
|
var PlusCircleIcon2 = PlusCircle;
|
|
3193
|
-
var OpenmspLogo2 = () => /* @__PURE__ */
|
|
2925
|
+
var OpenmspLogo2 = () => /* @__PURE__ */ jsx15("div", { children: "Logo" });
|
|
3194
2926
|
var availableIcons = [
|
|
3195
2927
|
VendorDirectoryIcon2,
|
|
3196
2928
|
OpenSourceIcon2,
|
|
@@ -3253,17 +2985,17 @@ function ResponsiveIconsBlock({ loading = false }) {
|
|
|
3253
2985
|
return iconGrid[row]?.[col] || availableIcons[0];
|
|
3254
2986
|
};
|
|
3255
2987
|
if (loading || iconGrid.length === 0) {
|
|
3256
|
-
return /* @__PURE__ */
|
|
2988
|
+
return /* @__PURE__ */ jsx15(
|
|
3257
2989
|
"div",
|
|
3258
2990
|
{
|
|
3259
2991
|
className: "relative h-[80px] w-full overflow-hidden bg-[#1A1A1A] md:h-[112px]",
|
|
3260
2992
|
role: "presentation",
|
|
3261
2993
|
"aria-hidden": "true",
|
|
3262
|
-
children: /* @__PURE__ */
|
|
2994
|
+
children: /* @__PURE__ */ jsx15("div", { className: "absolute inset-0 animate-pulse bg-[#2A2A2A]/60" })
|
|
3263
2995
|
}
|
|
3264
2996
|
);
|
|
3265
2997
|
}
|
|
3266
|
-
return /* @__PURE__ */
|
|
2998
|
+
return /* @__PURE__ */ jsxs12(
|
|
3267
2999
|
"div",
|
|
3268
3000
|
{
|
|
3269
3001
|
className: "relative z-10 h-[80px] w-full overflow-hidden bg-[#1A1A1A] md:h-[112px]",
|
|
@@ -3271,14 +3003,14 @@ function ResponsiveIconsBlock({ loading = false }) {
|
|
|
3271
3003
|
role: "presentation",
|
|
3272
3004
|
"aria-hidden": "true",
|
|
3273
3005
|
children: [
|
|
3274
|
-
/* @__PURE__ */
|
|
3006
|
+
/* @__PURE__ */ jsx15("style", { children: `
|
|
3275
3007
|
.icons-block svg,
|
|
3276
3008
|
.icons-block svg * {
|
|
3277
3009
|
filter: grayscale(100%) brightness(0) invert(1) brightness(0.4) !important;
|
|
3278
3010
|
fill: currentColor !important;
|
|
3279
3011
|
}
|
|
3280
3012
|
` }),
|
|
3281
|
-
/* @__PURE__ */
|
|
3013
|
+
/* @__PURE__ */ jsx15(
|
|
3282
3014
|
"div",
|
|
3283
3015
|
{
|
|
3284
3016
|
className: "icons-block grid h-full w-full",
|
|
@@ -3290,7 +3022,7 @@ function ResponsiveIconsBlock({ loading = false }) {
|
|
|
3290
3022
|
const col = idx % displayColumns;
|
|
3291
3023
|
const row = Math.floor(idx / displayColumns);
|
|
3292
3024
|
const IconComponent = getIconForIndex(idx);
|
|
3293
|
-
return /* @__PURE__ */
|
|
3025
|
+
return /* @__PURE__ */ jsx15(
|
|
3294
3026
|
"div",
|
|
3295
3027
|
{
|
|
3296
3028
|
className: "flex h-full w-full items-center justify-center",
|
|
@@ -3303,7 +3035,7 @@ function ResponsiveIconsBlock({ loading = false }) {
|
|
|
3303
3035
|
boxSizing: "border-box"
|
|
3304
3036
|
},
|
|
3305
3037
|
role: "presentation",
|
|
3306
|
-
children: /* @__PURE__ */
|
|
3038
|
+
children: /* @__PURE__ */ jsx15(IconComponent, { width: 16, height: 16, className: "text-[#666666] md:h-5 md:w-5", "aria-hidden": "true" })
|
|
3307
3039
|
},
|
|
3308
3040
|
idx
|
|
3309
3041
|
);
|
|
@@ -3319,7 +3051,7 @@ function ResponsiveIconsBlock({ loading = false }) {
|
|
|
3319
3051
|
import { Check, RotateCcw } from "lucide-react";
|
|
3320
3052
|
import { useCallback as useCallback2, useState as useState5 } from "react";
|
|
3321
3053
|
import Cropper from "react-easy-crop";
|
|
3322
|
-
import { jsx as
|
|
3054
|
+
import { jsx as jsx16, jsxs as jsxs13 } from "react/jsx-runtime";
|
|
3323
3055
|
function loadImage(src) {
|
|
3324
3056
|
return new Promise((resolve, reject) => {
|
|
3325
3057
|
const img = new Image();
|
|
@@ -3406,7 +3138,7 @@ var ImageCropper = ({
|
|
|
3406
3138
|
onCancel?.();
|
|
3407
3139
|
}
|
|
3408
3140
|
};
|
|
3409
|
-
return /* @__PURE__ */
|
|
3141
|
+
return /* @__PURE__ */ jsxs13(
|
|
3410
3142
|
"div",
|
|
3411
3143
|
{
|
|
3412
3144
|
className: cn("relative flex w-full flex-col gap-4", className),
|
|
@@ -3414,7 +3146,7 @@ var ImageCropper = ({
|
|
|
3414
3146
|
tabIndex: 0,
|
|
3415
3147
|
"aria-label": "Image cropper",
|
|
3416
3148
|
children: [
|
|
3417
|
-
/* @__PURE__ */
|
|
3149
|
+
/* @__PURE__ */ jsx16("div", { className: cn("relative aspect-square w-full overflow-hidden rounded-md md:aspect-video", checkerBg), children: /* @__PURE__ */ jsx16(
|
|
3418
3150
|
Cropper,
|
|
3419
3151
|
{
|
|
3420
3152
|
image: src,
|
|
@@ -3431,10 +3163,10 @@ var ImageCropper = ({
|
|
|
3431
3163
|
objectFit: "contain"
|
|
3432
3164
|
}
|
|
3433
3165
|
) }),
|
|
3434
|
-
/* @__PURE__ */
|
|
3435
|
-
/* @__PURE__ */
|
|
3436
|
-
/* @__PURE__ */
|
|
3437
|
-
/* @__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(
|
|
3438
3170
|
Slider,
|
|
3439
3171
|
{
|
|
3440
3172
|
min: 1,
|
|
@@ -3447,9 +3179,9 @@ var ImageCropper = ({
|
|
|
3447
3179
|
}
|
|
3448
3180
|
)
|
|
3449
3181
|
] }),
|
|
3450
|
-
/* @__PURE__ */
|
|
3451
|
-
/* @__PURE__ */
|
|
3452
|
-
/* @__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(
|
|
3453
3185
|
Slider,
|
|
3454
3186
|
{
|
|
3455
3187
|
min: 0,
|
|
@@ -3461,12 +3193,12 @@ var ImageCropper = ({
|
|
|
3461
3193
|
className: "flex-1"
|
|
3462
3194
|
}
|
|
3463
3195
|
),
|
|
3464
|
-
/* @__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" }) })
|
|
3465
3197
|
] })
|
|
3466
3198
|
] }),
|
|
3467
|
-
/* @__PURE__ */
|
|
3468
|
-
onCancel && /* @__PURE__ */
|
|
3469
|
-
/* @__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(
|
|
3470
3202
|
Button,
|
|
3471
3203
|
{
|
|
3472
3204
|
variant: "accent",
|
|
@@ -3474,7 +3206,7 @@ var ImageCropper = ({
|
|
|
3474
3206
|
const result = await exportCrop();
|
|
3475
3207
|
if (result) onComplete(result);
|
|
3476
3208
|
},
|
|
3477
|
-
leftIcon: /* @__PURE__ */
|
|
3209
|
+
leftIcon: /* @__PURE__ */ jsx16(Check, { className: "h-4 w-4" }),
|
|
3478
3210
|
"aria-label": "Apply crop",
|
|
3479
3211
|
children: "Apply"
|
|
3480
3212
|
}
|
|
@@ -3486,19 +3218,19 @@ var ImageCropper = ({
|
|
|
3486
3218
|
};
|
|
3487
3219
|
|
|
3488
3220
|
// src/components/metric-value.tsx
|
|
3489
|
-
import { jsx as
|
|
3221
|
+
import { jsx as jsx17, jsxs as jsxs14 } from "react/jsx-runtime";
|
|
3490
3222
|
function MetricValue({ value, label, className }) {
|
|
3491
|
-
return /* @__PURE__ */
|
|
3223
|
+
return /* @__PURE__ */ jsxs14("div", { className: cn("flex items-end gap-2 whitespace-nowrap text-ods-text-primary text-h4", className), children: [
|
|
3492
3224
|
value,
|
|
3493
|
-
/* @__PURE__ */
|
|
3225
|
+
/* @__PURE__ */ jsx17("span", { className: "text-ods-text-secondary text-h6", children: label })
|
|
3494
3226
|
] });
|
|
3495
3227
|
}
|
|
3496
3228
|
|
|
3497
3229
|
// src/components/msp-display.tsx
|
|
3498
|
-
import { jsx as
|
|
3230
|
+
import { jsx as jsx18, jsxs as jsxs15 } from "react/jsx-runtime";
|
|
3499
3231
|
function MSPDisplay({ name, logoUrl, size = 40, className }) {
|
|
3500
|
-
return /* @__PURE__ */
|
|
3501
|
-
/* @__PURE__ */
|
|
3232
|
+
return /* @__PURE__ */ jsxs15("div", { className: cn("flex min-w-0 items-center gap-2", className), children: [
|
|
3233
|
+
/* @__PURE__ */ jsx18(
|
|
3502
3234
|
SquareAvatar,
|
|
3503
3235
|
{
|
|
3504
3236
|
src: logoUrl ? getProxiedImageUrl(logoUrl) || logoUrl : void 0,
|
|
@@ -3507,16 +3239,16 @@ function MSPDisplay({ name, logoUrl, size = 40, className }) {
|
|
|
3507
3239
|
sizePx: size
|
|
3508
3240
|
}
|
|
3509
3241
|
),
|
|
3510
|
-
/* @__PURE__ */
|
|
3242
|
+
/* @__PURE__ */ jsx18("h2", { className: "truncate pl-2", children: name })
|
|
3511
3243
|
] });
|
|
3512
3244
|
}
|
|
3513
3245
|
|
|
3514
3246
|
// src/components/open-source-features.tsx
|
|
3515
3247
|
import { Terminal, DollarSign as DollarSign2, Network, Users as Users2 } from "lucide-react";
|
|
3516
|
-
import { jsx as
|
|
3248
|
+
import { jsx as jsx19, jsxs as jsxs16 } from "react/jsx-runtime";
|
|
3517
3249
|
|
|
3518
3250
|
// src/components/pricing-display.tsx
|
|
3519
|
-
import { jsx as
|
|
3251
|
+
import { jsx as jsx20, jsxs as jsxs17 } from "react/jsx-runtime";
|
|
3520
3252
|
var PRICING_STYLES = {
|
|
3521
3253
|
// Comparison table style (current default)
|
|
3522
3254
|
comparison: {
|
|
@@ -3552,11 +3284,11 @@ function PricingDisplay({
|
|
|
3552
3284
|
styleConfig = PRICING_STYLES.comparison
|
|
3553
3285
|
}) {
|
|
3554
3286
|
if (typeof pricing === "string") {
|
|
3555
|
-
return /* @__PURE__ */
|
|
3287
|
+
return /* @__PURE__ */ jsx20(LegacyPricingDisplay, { pricing, className, styleConfig });
|
|
3556
3288
|
}
|
|
3557
3289
|
const pricingArray = Array.isArray(pricing) ? pricing : [pricing];
|
|
3558
3290
|
if (!pricingArray || pricingArray.length === 0) {
|
|
3559
|
-
return /* @__PURE__ */
|
|
3291
|
+
return /* @__PURE__ */ jsx20(
|
|
3560
3292
|
"span",
|
|
3561
3293
|
{
|
|
3562
3294
|
className: `${styleConfig.priceTextColor} ${styleConfig.priceTextSize} ${styleConfig.fontFamily} ${className}`,
|
|
@@ -3568,9 +3300,9 @@ function PricingDisplay({
|
|
|
3568
3300
|
const item = pricingArray[0];
|
|
3569
3301
|
const price = item.ranges?.[0]?.min || 0;
|
|
3570
3302
|
const unit = item.ranges?.[0]?.unit;
|
|
3571
|
-
return /* @__PURE__ */
|
|
3572
|
-
/* @__PURE__ */
|
|
3573
|
-
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: [
|
|
3574
3306
|
"/",
|
|
3575
3307
|
unit
|
|
3576
3308
|
] })
|
|
@@ -3580,9 +3312,9 @@ function PricingDisplay({
|
|
|
3580
3312
|
(item) => formatPriceValue(item.ranges?.[0]?.min || 0, styleConfig.showTildePrefix)
|
|
3581
3313
|
);
|
|
3582
3314
|
const itemWithUnit = pricingArray.find((item) => item.ranges?.[0]?.unit);
|
|
3583
|
-
return /* @__PURE__ */
|
|
3584
|
-
/* @__PURE__ */
|
|
3585
|
-
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: [
|
|
3586
3318
|
"/",
|
|
3587
3319
|
itemWithUnit.ranges[0].unit
|
|
3588
3320
|
] })
|
|
@@ -3603,7 +3335,7 @@ function LegacyPricingDisplay({
|
|
|
3603
3335
|
styleConfig = PRICING_STYLES.comparison
|
|
3604
3336
|
}) {
|
|
3605
3337
|
if (pricing === "Free" || pricing === "No pricing data") {
|
|
3606
|
-
return /* @__PURE__ */
|
|
3338
|
+
return /* @__PURE__ */ jsx20(
|
|
3607
3339
|
"span",
|
|
3608
3340
|
{
|
|
3609
3341
|
className: `${styleConfig.priceTextColor} ${styleConfig.priceTextSize} ${styleConfig.fontFamily} ${className}`,
|
|
@@ -3665,9 +3397,9 @@ function LegacyPricingDisplay({
|
|
|
3665
3397
|
};
|
|
3666
3398
|
};
|
|
3667
3399
|
const { mainValue, secondaryInfo } = parsePricing(pricing);
|
|
3668
|
-
return /* @__PURE__ */
|
|
3669
|
-
/* @__PURE__ */
|
|
3670
|
-
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 })
|
|
3671
3403
|
] });
|
|
3672
3404
|
}
|
|
3673
3405
|
function formatPricingForDisplay(pricing) {
|
|
@@ -3675,7 +3407,7 @@ function formatPricingForDisplay(pricing) {
|
|
|
3675
3407
|
}
|
|
3676
3408
|
|
|
3677
3409
|
// src/components/results-count.tsx
|
|
3678
|
-
import { Fragment as
|
|
3410
|
+
import { Fragment as Fragment4, jsx as jsx21, jsxs as jsxs18 } from "react/jsx-runtime";
|
|
3679
3411
|
function ResultsCount({ currentPage, pageSize, totalResults, resultType, sortingMessage }) {
|
|
3680
3412
|
if (totalResults === 0) {
|
|
3681
3413
|
return null;
|
|
@@ -3685,7 +3417,7 @@ function ResultsCount({ currentPage, pageSize, totalResults, resultType, sorting
|
|
|
3685
3417
|
const plural = resultType === "vendors" ? "vendors" : "posts";
|
|
3686
3418
|
const singular = resultType === "vendors" ? "vendor" : "post";
|
|
3687
3419
|
const displayType = totalResults === 1 ? singular : plural;
|
|
3688
|
-
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: [
|
|
3689
3421
|
"Showing ",
|
|
3690
3422
|
startIndex,
|
|
3691
3423
|
"-",
|
|
@@ -3694,7 +3426,7 @@ function ResultsCount({ currentPage, pageSize, totalResults, resultType, sorting
|
|
|
3694
3426
|
totalResults,
|
|
3695
3427
|
" ",
|
|
3696
3428
|
displayType,
|
|
3697
|
-
sortingMessage && /* @__PURE__ */
|
|
3429
|
+
sortingMessage && /* @__PURE__ */ jsxs18("span", { className: "ml-2 text-ods-accent", children: [
|
|
3698
3430
|
"\u2022 ",
|
|
3699
3431
|
sortingMessage
|
|
3700
3432
|
] })
|
|
@@ -3705,14 +3437,14 @@ function ResultsCount({ currentPage, pageSize, totalResults, resultType, sorting
|
|
|
3705
3437
|
import { Boxes, Database, Hand, Plug, ShieldCheck, Sparkles } from "lucide-react";
|
|
3706
3438
|
|
|
3707
3439
|
// src/components/openframe-logo.tsx
|
|
3708
|
-
import { jsx as
|
|
3440
|
+
import { jsx as jsx22, jsxs as jsxs19 } from "react/jsx-runtime";
|
|
3709
3441
|
var OpenFrameLogo2 = ({
|
|
3710
3442
|
className,
|
|
3711
3443
|
lowerPathColor,
|
|
3712
3444
|
upperPathColor,
|
|
3713
3445
|
...props
|
|
3714
3446
|
}) => {
|
|
3715
|
-
return /* @__PURE__ */
|
|
3447
|
+
return /* @__PURE__ */ jsx22(
|
|
3716
3448
|
"svg",
|
|
3717
3449
|
{
|
|
3718
3450
|
...props,
|
|
@@ -3726,30 +3458,30 @@ var OpenFrameLogo2 = ({
|
|
|
3726
3458
|
"--fill-0": "currentColor",
|
|
3727
3459
|
...props.style
|
|
3728
3460
|
},
|
|
3729
|
-
children: /* @__PURE__ */
|
|
3730
|
-
/* @__PURE__ */
|
|
3731
|
-
/* @__PURE__ */
|
|
3461
|
+
children: /* @__PURE__ */ jsxs19("g", { children: [
|
|
3462
|
+
/* @__PURE__ */ jsxs19("g", { children: [
|
|
3463
|
+
/* @__PURE__ */ jsx22(
|
|
3732
3464
|
"path",
|
|
3733
3465
|
{
|
|
3734
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",
|
|
3735
3467
|
fill: lowerPathColor ?? "#ffffff"
|
|
3736
3468
|
}
|
|
3737
3469
|
),
|
|
3738
|
-
/* @__PURE__ */
|
|
3470
|
+
/* @__PURE__ */ jsx22(
|
|
3739
3471
|
"path",
|
|
3740
3472
|
{
|
|
3741
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",
|
|
3742
3474
|
fill: lowerPathColor ?? "#ffffff"
|
|
3743
3475
|
}
|
|
3744
3476
|
),
|
|
3745
|
-
/* @__PURE__ */
|
|
3477
|
+
/* @__PURE__ */ jsx22(
|
|
3746
3478
|
"path",
|
|
3747
3479
|
{
|
|
3748
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",
|
|
3749
3481
|
fill: lowerPathColor ?? "#ffffff"
|
|
3750
3482
|
}
|
|
3751
3483
|
),
|
|
3752
|
-
/* @__PURE__ */
|
|
3484
|
+
/* @__PURE__ */ jsx22(
|
|
3753
3485
|
"path",
|
|
3754
3486
|
{
|
|
3755
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",
|
|
@@ -3757,7 +3489,7 @@ var OpenFrameLogo2 = ({
|
|
|
3757
3489
|
}
|
|
3758
3490
|
)
|
|
3759
3491
|
] }),
|
|
3760
|
-
/* @__PURE__ */
|
|
3492
|
+
/* @__PURE__ */ jsx22(
|
|
3761
3493
|
"path",
|
|
3762
3494
|
{
|
|
3763
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",
|
|
@@ -3770,7 +3502,7 @@ var OpenFrameLogo2 = ({
|
|
|
3770
3502
|
};
|
|
3771
3503
|
|
|
3772
3504
|
// src/components/vendor-tag.tsx
|
|
3773
|
-
import { jsx as
|
|
3505
|
+
import { jsx as jsx23, jsxs as jsxs20 } from "react/jsx-runtime";
|
|
3774
3506
|
function VendorTag({ type, text, className = "", hidden = false, size = "md", accentColor }) {
|
|
3775
3507
|
const baseClasses = cn(
|
|
3776
3508
|
"flex items-center gap-1.5 whitespace-nowrap rounded border border-ods-border bg-ods-bg",
|
|
@@ -3782,99 +3514,99 @@ function VendorTag({ type, text, className = "", hidden = false, size = "md", ac
|
|
|
3782
3514
|
return {
|
|
3783
3515
|
text: "Placeholder",
|
|
3784
3516
|
textColor: "text-ods-text-primary",
|
|
3785
|
-
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" }) })
|
|
3786
3518
|
};
|
|
3787
3519
|
case "ai":
|
|
3788
3520
|
return {
|
|
3789
3521
|
text: "AI Selected",
|
|
3790
3522
|
textColor: "text-ods-text-primary",
|
|
3791
|
-
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" }) })
|
|
3792
3524
|
};
|
|
3793
3525
|
case "manual":
|
|
3794
3526
|
return {
|
|
3795
3527
|
text: "Manually Selected",
|
|
3796
3528
|
textColor: "text-ods-text-secondary",
|
|
3797
|
-
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" }) })
|
|
3798
3530
|
};
|
|
3799
3531
|
case "open-source":
|
|
3800
3532
|
return {
|
|
3801
3533
|
text: text || "Open Source",
|
|
3802
|
-
icon: /* @__PURE__ */
|
|
3534
|
+
icon: /* @__PURE__ */ jsx23(
|
|
3803
3535
|
"div",
|
|
3804
3536
|
{
|
|
3805
3537
|
className: "flex h-4 w-4 flex-shrink-0 items-center justify-center rounded-sm bg-ods-accent",
|
|
3806
3538
|
style: accentColor ? { backgroundColor: accentColor } : void 0,
|
|
3807
|
-
children: /* @__PURE__ */
|
|
3539
|
+
children: /* @__PURE__ */ jsx23(OpenSourceIcon2, { width: 10, height: 10, className: "text-ods-text-on-accent" })
|
|
3808
3540
|
}
|
|
3809
3541
|
)
|
|
3810
3542
|
};
|
|
3811
3543
|
case "commercial":
|
|
3812
3544
|
return {
|
|
3813
3545
|
text: text || "Commercial Vendor",
|
|
3814
|
-
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" }) })
|
|
3815
3547
|
};
|
|
3816
3548
|
// platform-capability tags — same neutral icon-box chrome as 'commercial'
|
|
3817
3549
|
case "api":
|
|
3818
3550
|
return {
|
|
3819
3551
|
text: text || "API",
|
|
3820
|
-
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" }) })
|
|
3821
3553
|
};
|
|
3822
3554
|
case "data":
|
|
3823
3555
|
return {
|
|
3824
3556
|
text: text || "Data",
|
|
3825
|
-
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" }) })
|
|
3826
3558
|
};
|
|
3827
3559
|
case "k8s":
|
|
3828
3560
|
return {
|
|
3829
3561
|
text: text || "K8s",
|
|
3830
|
-
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" }) })
|
|
3831
3563
|
};
|
|
3832
3564
|
case "secured":
|
|
3833
3565
|
return {
|
|
3834
3566
|
text: text || "Secured",
|
|
3835
|
-
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" }) })
|
|
3836
3568
|
};
|
|
3837
3569
|
case "free":
|
|
3838
3570
|
return {
|
|
3839
3571
|
text: text || "Free",
|
|
3840
|
-
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: "$" }) })
|
|
3841
3573
|
};
|
|
3842
3574
|
case "freemium":
|
|
3843
3575
|
return {
|
|
3844
3576
|
text: text || "Freemium",
|
|
3845
|
-
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: "$" }) })
|
|
3846
3578
|
};
|
|
3847
3579
|
case "paid":
|
|
3848
3580
|
return {
|
|
3849
3581
|
text: text || "Paid",
|
|
3850
|
-
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" }) })
|
|
3851
3583
|
};
|
|
3852
3584
|
case "enterprise":
|
|
3853
3585
|
return {
|
|
3854
3586
|
text: text || "Enterprise",
|
|
3855
|
-
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" }) })
|
|
3856
3588
|
};
|
|
3857
3589
|
case "recommended":
|
|
3858
3590
|
return {
|
|
3859
3591
|
text: text || "Recommended",
|
|
3860
|
-
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" }) })
|
|
3861
3593
|
};
|
|
3862
3594
|
case "classification": {
|
|
3863
3595
|
const classificationType = text?.toLowerCase();
|
|
3864
3596
|
if (classificationType === "open_source") {
|
|
3865
3597
|
return {
|
|
3866
3598
|
text: "Open Source",
|
|
3867
|
-
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" }) })
|
|
3868
3600
|
};
|
|
3869
3601
|
} else if (classificationType === "commercial") {
|
|
3870
3602
|
return {
|
|
3871
3603
|
text: "Commercial Vendor",
|
|
3872
|
-
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" }) })
|
|
3873
3605
|
};
|
|
3874
3606
|
} else if (classificationType === "openframe_selected") {
|
|
3875
3607
|
return {
|
|
3876
3608
|
text: "OpenFrame Selected",
|
|
3877
|
-
icon: /* @__PURE__ */
|
|
3609
|
+
icon: /* @__PURE__ */ jsx23(
|
|
3878
3610
|
OpenFrameLogo2,
|
|
3879
3611
|
{
|
|
3880
3612
|
lowerPathColor: "currentColor",
|
|
@@ -3886,14 +3618,14 @@ function VendorTag({ type, text, className = "", hidden = false, size = "md", ac
|
|
|
3886
3618
|
} else {
|
|
3887
3619
|
return {
|
|
3888
3620
|
text: text || "Classification",
|
|
3889
|
-
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" }) })
|
|
3890
3622
|
};
|
|
3891
3623
|
}
|
|
3892
3624
|
}
|
|
3893
3625
|
case "openframe_selected":
|
|
3894
3626
|
return {
|
|
3895
3627
|
text: text || "OpenFrame Selected",
|
|
3896
|
-
icon: /* @__PURE__ */
|
|
3628
|
+
icon: /* @__PURE__ */ jsx23(
|
|
3897
3629
|
OpenFrameLogo2,
|
|
3898
3630
|
{
|
|
3899
3631
|
lowerPathColor: "currentColor",
|
|
@@ -3910,19 +3642,19 @@ function VendorTag({ type, text, className = "", hidden = false, size = "md", ac
|
|
|
3910
3642
|
}
|
|
3911
3643
|
};
|
|
3912
3644
|
const { text: displayText, icon, textColor } = getTagContent();
|
|
3913
|
-
return /* @__PURE__ */
|
|
3645
|
+
return /* @__PURE__ */ jsxs20("div", { className: cn(baseClasses, className, hidden && "invisible"), children: [
|
|
3914
3646
|
icon,
|
|
3915
|
-
/* @__PURE__ */
|
|
3647
|
+
/* @__PURE__ */ jsx23("span", { className: cn("font-semibold text-h5", textColor ? textColor : "text-ods-text-primary"), children: displayText })
|
|
3916
3648
|
] });
|
|
3917
3649
|
}
|
|
3918
3650
|
|
|
3919
3651
|
// src/components/selection-source-badge.tsx
|
|
3920
|
-
import { jsx as
|
|
3652
|
+
import { jsx as jsx24 } from "react/jsx-runtime";
|
|
3921
3653
|
function SelectionSourceBadge({ source, hidden = false }) {
|
|
3922
3654
|
if (!source) {
|
|
3923
3655
|
return null;
|
|
3924
3656
|
}
|
|
3925
|
-
return /* @__PURE__ */
|
|
3657
|
+
return /* @__PURE__ */ jsx24(
|
|
3926
3658
|
VendorTag,
|
|
3927
3659
|
{
|
|
3928
3660
|
type: source?.toLowerCase(),
|
|
@@ -3933,596 +3665,33 @@ function SelectionSourceBadge({ source, hidden = false }) {
|
|
|
3933
3665
|
);
|
|
3934
3666
|
}
|
|
3935
3667
|
|
|
3936
|
-
// src/components/loading/content-skeleton.tsx
|
|
3937
|
-
import { jsx as jsx27, jsxs as jsxs23 } from "react/jsx-runtime";
|
|
3938
|
-
function ParagraphSkeleton({ className, lines = 4 }) {
|
|
3939
|
-
const lineWidths = ["w-full", "w-full", "w-5/6", "w-3/4", "w-4/5", "w-2/3"];
|
|
3940
|
-
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)) });
|
|
3941
|
-
}
|
|
3942
|
-
function ListSkeleton({
|
|
3943
|
-
className,
|
|
3944
|
-
items = 5,
|
|
3945
|
-
showIcons = false,
|
|
3946
|
-
showActions = false
|
|
3947
|
-
}) {
|
|
3948
|
-
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: [
|
|
3949
|
-
/* @__PURE__ */ jsxs23("div", { className: "flex items-center gap-3", children: [
|
|
3950
|
-
showIcons && /* @__PURE__ */ jsx27(MediaSkeleton.Icon, { size: "sm" }),
|
|
3951
|
-
/* @__PURE__ */ jsx27(TextSkeleton.Body, { className: "w-32 md:w-48" })
|
|
3952
|
-
] }),
|
|
3953
|
-
showActions && /* @__PURE__ */ jsxs23("div", { className: "flex items-center gap-2", children: [
|
|
3954
|
-
/* @__PURE__ */ jsx27(TextSkeleton.Caption, { className: "w-8" }),
|
|
3955
|
-
/* @__PURE__ */ jsx27(UnifiedSkeleton, { variant: "default", className: "h-4 w-4" })
|
|
3956
|
-
] })
|
|
3957
|
-
] }, index)) });
|
|
3958
|
-
}
|
|
3959
|
-
function TableSkeleton({
|
|
3960
|
-
className,
|
|
3961
|
-
rows = 5,
|
|
3962
|
-
columns = 4
|
|
3963
|
-
}) {
|
|
3964
|
-
return /* @__PURE__ */ jsxs23("div", { className: cn("space-y-4", className), children: [
|
|
3965
|
-
/* @__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)) }),
|
|
3966
|
-
/* @__PURE__ */ jsx27("div", { className: "space-y-3", children: Array.from({ length: rows }).map((_, rowIndex) => /* @__PURE__ */ jsx27(
|
|
3967
|
-
"div",
|
|
3968
|
-
{
|
|
3969
|
-
className: "grid gap-4 border-b border-ods-divider py-2",
|
|
3970
|
-
style: { gridTemplateColumns: `repeat(${columns}, 1fr)` },
|
|
3971
|
-
children: Array.from({ length: columns }).map((_cell, colIndex) => /* @__PURE__ */ jsx27(TextSkeleton.Body, { className: "w-2/3" }, colIndex))
|
|
3972
|
-
},
|
|
3973
|
-
rowIndex
|
|
3974
|
-
)) })
|
|
3975
|
-
] });
|
|
3976
|
-
}
|
|
3977
|
-
function FormSkeleton({ className, fields = 4 }) {
|
|
3978
|
-
return /* @__PURE__ */ jsxs23("div", { className: cn("space-y-6", className), children: [
|
|
3979
|
-
Array.from({ length: fields }).map((_, index) => /* @__PURE__ */ jsxs23("div", { className: "space-y-2", children: [
|
|
3980
|
-
/* @__PURE__ */ jsx27(TextSkeleton.Body, { className: "w-24" }),
|
|
3981
|
-
/* @__PURE__ */ jsx27(InteractiveSkeleton.Input, {}),
|
|
3982
|
-
index % 3 === 0 && /* @__PURE__ */ jsx27(TextSkeleton.Caption, { className: "w-48" })
|
|
3983
|
-
] }, index)),
|
|
3984
|
-
/* @__PURE__ */ jsxs23("div", { className: "flex gap-4 pt-4", children: [
|
|
3985
|
-
/* @__PURE__ */ jsx27(InteractiveSkeleton.Button, {}),
|
|
3986
|
-
/* @__PURE__ */ jsx27(InteractiveSkeleton.Button, { className: "bg-ods-border" })
|
|
3987
|
-
] })
|
|
3988
|
-
] });
|
|
3989
|
-
}
|
|
3990
|
-
function NavigationSkeleton({
|
|
3991
|
-
className,
|
|
3992
|
-
items = 6,
|
|
3993
|
-
horizontal = true
|
|
3994
|
-
}) {
|
|
3995
|
-
return /* @__PURE__ */ jsx27(
|
|
3996
|
-
"nav",
|
|
3997
|
-
{
|
|
3998
|
-
className: cn("flex gap-4 md:gap-6", !horizontal && "flex-col", className),
|
|
3999
|
-
role: "status",
|
|
4000
|
-
"aria-label": "Loading navigation",
|
|
4001
|
-
children: Array.from({ length: items }).map((_, index) => /* @__PURE__ */ jsx27(TextSkeleton.Body, { className: "w-16 md:w-20" }, index))
|
|
4002
|
-
}
|
|
4003
|
-
);
|
|
4004
|
-
}
|
|
4005
|
-
function ProfileSkeleton({
|
|
4006
|
-
className,
|
|
4007
|
-
showBio = true,
|
|
4008
|
-
showStats = true
|
|
4009
|
-
}) {
|
|
4010
|
-
return /* @__PURE__ */ jsxs23("div", { className: cn("space-y-4", className), children: [
|
|
4011
|
-
/* @__PURE__ */ jsxs23("div", { className: "flex items-start gap-4", children: [
|
|
4012
|
-
/* @__PURE__ */ jsx27(MediaSkeleton.Avatar, { size: "lg" }),
|
|
4013
|
-
/* @__PURE__ */ jsxs23("div", { className: "flex-1 space-y-2", children: [
|
|
4014
|
-
/* @__PURE__ */ jsx27(TextSkeleton.Subheading, { className: "w-1/2" }),
|
|
4015
|
-
/* @__PURE__ */ jsx27(TextSkeleton.Caption, { className: "w-1/3" }),
|
|
4016
|
-
/* @__PURE__ */ jsx27(TextSkeleton.Body, { className: "w-2/3" })
|
|
4017
|
-
] })
|
|
4018
|
-
] }),
|
|
4019
|
-
showBio && /* @__PURE__ */ jsxs23("div", { className: "space-y-2", children: [
|
|
4020
|
-
/* @__PURE__ */ jsx27(TextSkeleton.Body, { className: "w-full" }),
|
|
4021
|
-
/* @__PURE__ */ jsx27(TextSkeleton.Body, { className: "w-4/5" }),
|
|
4022
|
-
/* @__PURE__ */ jsx27(TextSkeleton.Body, { className: "w-3/4" })
|
|
4023
|
-
] }),
|
|
4024
|
-
showStats && /* @__PURE__ */ jsxs23("div", { className: "flex gap-6", children: [
|
|
4025
|
-
/* @__PURE__ */ jsxs23("div", { className: "text-center", children: [
|
|
4026
|
-
/* @__PURE__ */ jsx27(TextSkeleton.Subheading, { className: "mx-auto w-8" }),
|
|
4027
|
-
/* @__PURE__ */ jsx27(TextSkeleton.Caption, { className: "mx-auto w-12" })
|
|
4028
|
-
] }),
|
|
4029
|
-
/* @__PURE__ */ jsxs23("div", { className: "text-center", children: [
|
|
4030
|
-
/* @__PURE__ */ jsx27(TextSkeleton.Subheading, { className: "mx-auto w-8" }),
|
|
4031
|
-
/* @__PURE__ */ jsx27(TextSkeleton.Caption, { className: "mx-auto w-16" })
|
|
4032
|
-
] }),
|
|
4033
|
-
/* @__PURE__ */ jsxs23("div", { className: "text-center", children: [
|
|
4034
|
-
/* @__PURE__ */ jsx27(TextSkeleton.Subheading, { className: "mx-auto w-8" }),
|
|
4035
|
-
/* @__PURE__ */ jsx27(TextSkeleton.Caption, { className: "mx-auto w-14" })
|
|
4036
|
-
] })
|
|
4037
|
-
] })
|
|
4038
|
-
] });
|
|
4039
|
-
}
|
|
4040
|
-
function CommentSkeleton({
|
|
4041
|
-
className,
|
|
4042
|
-
showRating = false,
|
|
4043
|
-
showReplies = false
|
|
4044
|
-
}) {
|
|
4045
|
-
return /* @__PURE__ */ jsxs23("div", { className: cn("space-y-3", className), children: [
|
|
4046
|
-
/* @__PURE__ */ jsxs23("div", { className: "flex items-center gap-3", children: [
|
|
4047
|
-
/* @__PURE__ */ jsx27(MediaSkeleton.Avatar, { size: "sm" }),
|
|
4048
|
-
/* @__PURE__ */ jsxs23("div", { className: "flex flex-1 items-center gap-4", children: [
|
|
4049
|
-
/* @__PURE__ */ jsx27(TextSkeleton.Body, { className: "w-24" }),
|
|
4050
|
-
/* @__PURE__ */ jsx27(TextSkeleton.Caption, { className: "w-16" }),
|
|
4051
|
-
showRating && /* @__PURE__ */ jsx27("div", { className: "flex gap-1", children: Array.from({ length: 5 }).map((_, i) => /* @__PURE__ */ jsx27(MediaSkeleton.Icon, { size: "sm" }, i)) })
|
|
4052
|
-
] })
|
|
4053
|
-
] }),
|
|
4054
|
-
/* @__PURE__ */ jsxs23("div", { className: "ml-11 space-y-2", children: [
|
|
4055
|
-
/* @__PURE__ */ jsx27(TextSkeleton.Body, { className: "w-full" }),
|
|
4056
|
-
/* @__PURE__ */ jsx27(TextSkeleton.Body, { className: "w-3/4" }),
|
|
4057
|
-
/* @__PURE__ */ jsx27(TextSkeleton.Body, { className: "w-1/2" })
|
|
4058
|
-
] }),
|
|
4059
|
-
/* @__PURE__ */ jsxs23("div", { className: "ml-11 flex gap-4", children: [
|
|
4060
|
-
/* @__PURE__ */ jsx27(TextSkeleton.Caption, { className: "w-12" }),
|
|
4061
|
-
/* @__PURE__ */ jsx27(TextSkeleton.Caption, { className: "w-16" }),
|
|
4062
|
-
/* @__PURE__ */ jsx27(TextSkeleton.Caption, { className: "w-8" })
|
|
4063
|
-
] }),
|
|
4064
|
-
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: [
|
|
4065
|
-
/* @__PURE__ */ jsxs23("div", { className: "flex items-center gap-3", children: [
|
|
4066
|
-
/* @__PURE__ */ jsx27(MediaSkeleton.Avatar, { size: "sm" }),
|
|
4067
|
-
/* @__PURE__ */ jsx27(TextSkeleton.Body, { className: "w-20" }),
|
|
4068
|
-
/* @__PURE__ */ jsx27(TextSkeleton.Caption, { className: "w-12" })
|
|
4069
|
-
] }),
|
|
4070
|
-
/* @__PURE__ */ jsxs23("div", { className: "ml-11", children: [
|
|
4071
|
-
/* @__PURE__ */ jsx27(TextSkeleton.Body, { className: "w-full" }),
|
|
4072
|
-
/* @__PURE__ */ jsx27(TextSkeleton.Body, { className: "w-2/3" })
|
|
4073
|
-
] })
|
|
4074
|
-
] }, index)) })
|
|
4075
|
-
] });
|
|
4076
|
-
}
|
|
4077
|
-
function FeatureListSkeleton({
|
|
4078
|
-
className,
|
|
4079
|
-
features = 6,
|
|
4080
|
-
showIcons = true,
|
|
4081
|
-
grouped = false
|
|
4082
|
-
}) {
|
|
4083
|
-
if (grouped) {
|
|
4084
|
-
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: [
|
|
4085
|
-
/* @__PURE__ */ jsx27(TextSkeleton.Subheading, { className: "w-1/3" }),
|
|
4086
|
-
/* @__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: [
|
|
4087
|
-
showIcons && /* @__PURE__ */ jsx27(MediaSkeleton.Icon, { size: "sm" }),
|
|
4088
|
-
/* @__PURE__ */ jsx27(TextSkeleton.Body, { className: "w-2/3" })
|
|
4089
|
-
] }, featureIndex)) })
|
|
4090
|
-
] }, groupIndex)) });
|
|
4091
|
-
}
|
|
4092
|
-
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: [
|
|
4093
|
-
showIcons && /* @__PURE__ */ jsx27(MediaSkeleton.Icon, { size: "sm" }),
|
|
4094
|
-
/* @__PURE__ */ jsx27(TextSkeleton.Body, { className: "w-2/3" })
|
|
4095
|
-
] }, index)) });
|
|
4096
|
-
}
|
|
4097
|
-
function TimelineSkeleton({ className, items = 5 }) {
|
|
4098
|
-
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: [
|
|
4099
|
-
/* @__PURE__ */ jsxs23("div", { className: "flex flex-col items-center", children: [
|
|
4100
|
-
/* @__PURE__ */ jsx27(MediaSkeleton.Icon, { size: "sm" }),
|
|
4101
|
-
index < items - 1 && /* @__PURE__ */ jsx27("div", { className: "mt-2 h-12 w-px bg-ods-border" })
|
|
4102
|
-
] }),
|
|
4103
|
-
/* @__PURE__ */ jsxs23("div", { className: "flex-1 space-y-2", children: [
|
|
4104
|
-
/* @__PURE__ */ jsxs23("div", { className: "flex items-center gap-3", children: [
|
|
4105
|
-
/* @__PURE__ */ jsx27(TextSkeleton.Body, { className: "w-1/3" }),
|
|
4106
|
-
/* @__PURE__ */ jsx27(TextSkeleton.Caption, { className: "w-16" })
|
|
4107
|
-
] }),
|
|
4108
|
-
/* @__PURE__ */ jsx27(TextSkeleton.Body, { className: "w-full" }),
|
|
4109
|
-
/* @__PURE__ */ jsx27(TextSkeleton.Body, { className: "w-3/4" })
|
|
4110
|
-
] })
|
|
4111
|
-
] }, index)) });
|
|
4112
|
-
}
|
|
4113
|
-
function PricingSkeleton({ className, plans = 3 }) {
|
|
4114
|
-
return /* @__PURE__ */ jsx27(
|
|
4115
|
-
"div",
|
|
4116
|
-
{
|
|
4117
|
-
className: cn(
|
|
4118
|
-
"grid gap-6",
|
|
4119
|
-
plans === 2 && "grid-cols-1 md:grid-cols-2",
|
|
4120
|
-
plans === 3 && "grid-cols-1 md:grid-cols-3",
|
|
4121
|
-
plans === 4 && "grid-cols-1 md:grid-cols-2 lg:grid-cols-4",
|
|
4122
|
-
className
|
|
4123
|
-
),
|
|
4124
|
-
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: [
|
|
4125
|
-
/* @__PURE__ */ jsx27(TextSkeleton.Subheading, { className: "w-1/2" }),
|
|
4126
|
-
/* @__PURE__ */ jsxs23("div", { className: "space-y-1", children: [
|
|
4127
|
-
/* @__PURE__ */ jsx27(TextSkeleton.Heading, { className: "w-1/3" }),
|
|
4128
|
-
/* @__PURE__ */ jsx27(TextSkeleton.Caption, { className: "w-1/4" })
|
|
4129
|
-
] }),
|
|
4130
|
-
/* @__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: [
|
|
4131
|
-
/* @__PURE__ */ jsx27(MediaSkeleton.Icon, { size: "sm" }),
|
|
4132
|
-
/* @__PURE__ */ jsx27(TextSkeleton.Body, { className: "w-3/4" })
|
|
4133
|
-
] }, featureIndex)) }),
|
|
4134
|
-
/* @__PURE__ */ jsx27(InteractiveSkeleton.Button, { className: "w-full" })
|
|
4135
|
-
] }) }, index))
|
|
4136
|
-
}
|
|
4137
|
-
);
|
|
4138
|
-
}
|
|
4139
|
-
|
|
4140
|
-
// src/components/profile/ProfileLoadingSkeleton.tsx
|
|
4141
|
-
import { jsx as jsx28, jsxs as jsxs24 } from "react/jsx-runtime";
|
|
4142
|
-
function ProfileLoadingSkeleton({ className }) {
|
|
4143
|
-
return /* @__PURE__ */ jsxs24("div", { className: cn("space-y-6", className), children: [
|
|
4144
|
-
/* @__PURE__ */ jsxs24("div", { className: "flex items-center space-x-4", children: [
|
|
4145
|
-
/* @__PURE__ */ jsx28("div", { className: "h-16 w-16 animate-pulse rounded-full bg-ods-skeleton" }),
|
|
4146
|
-
/* @__PURE__ */ jsxs24("div", { className: "space-y-2", children: [
|
|
4147
|
-
/* @__PURE__ */ jsx28("div", { className: "h-4 w-32 animate-pulse rounded bg-ods-skeleton" }),
|
|
4148
|
-
/* @__PURE__ */ jsx28("div", { className: "h-3 w-24 animate-pulse rounded bg-ods-skeleton" })
|
|
4149
|
-
] })
|
|
4150
|
-
] }),
|
|
4151
|
-
/* @__PURE__ */ jsxs24("div", { className: "space-y-4", children: [
|
|
4152
|
-
/* @__PURE__ */ jsx28("div", { className: "h-4 w-full animate-pulse rounded bg-ods-skeleton" }),
|
|
4153
|
-
/* @__PURE__ */ jsx28("div", { className: "h-4 w-3/4 animate-pulse rounded bg-ods-skeleton" }),
|
|
4154
|
-
/* @__PURE__ */ jsx28("div", { className: "h-4 w-1/2 animate-pulse rounded bg-ods-skeleton" })
|
|
4155
|
-
] })
|
|
4156
|
-
] });
|
|
4157
|
-
}
|
|
4158
|
-
|
|
4159
|
-
// src/components/loading/msp-profile-form-skeleton.tsx
|
|
4160
|
-
import { jsx as jsx29, jsxs as jsxs25 } from "react/jsx-runtime";
|
|
4161
|
-
function MspProfileFormSkeleton({ className, fields = 4 }) {
|
|
4162
|
-
return /* @__PURE__ */ jsxs25(
|
|
4163
|
-
"div",
|
|
4164
|
-
{
|
|
4165
|
-
className: cn("grid grid-cols-1 items-stretch gap-6 md:grid-cols-2", className),
|
|
4166
|
-
role: "status",
|
|
4167
|
-
"aria-label": "Loading MSP profile form",
|
|
4168
|
-
children: [
|
|
4169
|
-
/* @__PURE__ */ jsxs25("div", { className: "flex h-full flex-col space-y-2", children: [
|
|
4170
|
-
/* @__PURE__ */ jsx29(TextSkeleton.Body, { className: "w-28" }),
|
|
4171
|
-
/* @__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" }) })
|
|
4172
|
-
] }),
|
|
4173
|
-
/* @__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: [
|
|
4174
|
-
/* @__PURE__ */ jsx29(TextSkeleton.Body, { className: "w-40" }),
|
|
4175
|
-
/* @__PURE__ */ jsx29(InteractiveSkeleton.Input, {})
|
|
4176
|
-
] }, idx)) })
|
|
4177
|
-
]
|
|
4178
|
-
}
|
|
4179
|
-
);
|
|
4180
|
-
}
|
|
4181
|
-
|
|
4182
|
-
// src/components/loading/category-card-skeleton.tsx
|
|
4183
|
-
import { jsx as jsx30, jsxs as jsxs26 } from "react/jsx-runtime";
|
|
4184
|
-
function CategoryCardSkeleton({ className }) {
|
|
4185
|
-
return /* @__PURE__ */ jsxs26(
|
|
4186
|
-
"article",
|
|
4187
|
-
{
|
|
4188
|
-
className: cn(
|
|
4189
|
-
"box-border flex min-w-0 flex-col rounded-[12px] border border-ods-border bg-ods-card p-8",
|
|
4190
|
-
className
|
|
4191
|
-
),
|
|
4192
|
-
role: "status",
|
|
4193
|
-
"aria-label": "Loading category card",
|
|
4194
|
-
children: [
|
|
4195
|
-
/* @__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)) }),
|
|
4196
|
-
/* @__PURE__ */ jsxs26("div", { className: "flex flex-1 flex-col space-y-3", children: [
|
|
4197
|
-
/* @__PURE__ */ jsx30(TextSkeleton.Heading, { className: "w-3/4" }),
|
|
4198
|
-
/* @__PURE__ */ jsx30(TextSkeleton.Body, { className: "w-1/2" }),
|
|
4199
|
-
/* @__PURE__ */ jsx30(TextSkeleton.Body, { className: "w-full" })
|
|
4200
|
-
] }),
|
|
4201
|
-
/* @__PURE__ */ jsx30("div", { className: "mt-4 flex justify-end", children: /* @__PURE__ */ jsx30(UnifiedSkeleton, { className: "h-12 w-12 rounded-[6px]", "aria-label": "Loading button" }) })
|
|
4202
|
-
]
|
|
4203
|
-
}
|
|
4204
|
-
);
|
|
4205
|
-
}
|
|
4206
|
-
|
|
4207
|
-
// src/components/loading/category-vendor-selector-skeleton.tsx
|
|
4208
|
-
import { jsx as jsx31, jsxs as jsxs27 } from "react/jsx-runtime";
|
|
4209
|
-
function CategoryVendorSelectorSkeleton({ subcategories = 3, className }) {
|
|
4210
|
-
return /* @__PURE__ */ jsxs27(
|
|
4211
|
-
"div",
|
|
4212
|
-
{
|
|
4213
|
-
className: cn("rounded-lg border border-ods-border bg-ods-card p-6", className),
|
|
4214
|
-
role: "status",
|
|
4215
|
-
"aria-label": "Loading category section",
|
|
4216
|
-
children: [
|
|
4217
|
-
/* @__PURE__ */ jsxs27("div", { className: "mb-6 max-w-xl space-y-2", children: [
|
|
4218
|
-
/* @__PURE__ */ jsx31(TextSkeleton.Heading, { className: "w-1/2" }),
|
|
4219
|
-
/* @__PURE__ */ jsx31(TextSkeleton.Body, { className: "w-3/4" })
|
|
4220
|
-
] }),
|
|
4221
|
-
/* @__PURE__ */ jsx31("div", { className: "space-y-6", children: Array.from({ length: subcategories }).map((_, idx) => /* @__PURE__ */ jsxs27("div", { className: "space-y-2", children: [
|
|
4222
|
-
/* @__PURE__ */ jsx31(TextSkeleton.Subheading, { className: "w-1/3" }),
|
|
4223
|
-
/* @__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)) })
|
|
4224
|
-
] }, idx)) })
|
|
4225
|
-
]
|
|
4226
|
-
}
|
|
4227
|
-
);
|
|
4228
|
-
}
|
|
4229
|
-
|
|
4230
|
-
// src/components/loading/wizard-layout-skeleton.tsx
|
|
4231
|
-
import { jsx as jsx32, jsxs as jsxs28 } from "react/jsx-runtime";
|
|
4232
|
-
function WizardLayoutSkeleton({ steps = 6, className }) {
|
|
4233
|
-
return /* @__PURE__ */ jsxs28("div", { className: cn("space-y-6", className), role: "status", "aria-label": "Loading wizard layout", children: [
|
|
4234
|
-
/* @__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)) }),
|
|
4235
|
-
/* @__PURE__ */ jsxs28("div", { className: "max-w-2xl space-y-2", children: [
|
|
4236
|
-
/* @__PURE__ */ jsx32(TextSkeleton.Heading, { className: "w-2/3" }),
|
|
4237
|
-
/* @__PURE__ */ jsx32(TextSkeleton.Body, { className: "w-1/2" })
|
|
4238
|
-
] }),
|
|
4239
|
-
/* @__PURE__ */ jsxs28("div", { className: "mt-10 flex justify-between", children: [
|
|
4240
|
-
/* @__PURE__ */ jsx32(UnifiedSkeleton, { className: "h-10 w-24 rounded" }),
|
|
4241
|
-
/* @__PURE__ */ jsx32(UnifiedSkeleton, { className: "h-10 w-32 rounded" })
|
|
4242
|
-
] })
|
|
4243
|
-
] });
|
|
4244
|
-
}
|
|
4245
|
-
|
|
4246
|
-
// src/components/loading/margin-report-skeleton.tsx
|
|
4247
|
-
import { jsx as jsx33, jsxs as jsxs29 } from "react/jsx-runtime";
|
|
4248
|
-
function MarginReportSkeleton({ animate = true, description, overlayContent }) {
|
|
4249
|
-
return /* @__PURE__ */ jsxs29("main", { className: `bg-ods-bg ${animate ? "animate-pulse" : ""} relative min-h-screen`, children: [
|
|
4250
|
-
/* @__PURE__ */ jsxs29("div", { className: "mx-auto max-w-[1920px] space-y-10 px-6 py-6 md:px-20 md:py-10", children: [
|
|
4251
|
-
/* @__PURE__ */ jsxs29("div", { className: "space-y-3", children: [
|
|
4252
|
-
/* @__PURE__ */ jsx33("div", { className: "h-10 w-72 rounded bg-ods-skeleton" }),
|
|
4253
|
-
/* @__PURE__ */ jsx33("div", { className: "h-4 w-80 rounded bg-ods-skeleton" })
|
|
4254
|
-
] }),
|
|
4255
|
-
/* @__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)) }),
|
|
4256
|
-
/* @__PURE__ */ jsxs29("div", { className: "grid grid-cols-1 gap-6 md:grid-cols-2", children: [
|
|
4257
|
-
/* @__PURE__ */ jsxs29("div", { className: "flex animate-pulse items-center gap-4 rounded-lg border border-ods-border bg-ods-card p-6", children: [
|
|
4258
|
-
/* @__PURE__ */ jsx33("div", { className: "h-14 w-14 rounded-lg bg-ods-skeleton" }),
|
|
4259
|
-
/* @__PURE__ */ jsxs29("div", { className: "flex-1 space-y-2", children: [
|
|
4260
|
-
/* @__PURE__ */ jsx33("div", { className: "h-4 w-3/4 rounded bg-ods-skeleton" }),
|
|
4261
|
-
/* @__PURE__ */ jsx33("div", { className: "h-3 w-1/2 rounded bg-ods-skeleton" })
|
|
4262
|
-
] })
|
|
4263
|
-
] }),
|
|
4264
|
-
/* @__PURE__ */ jsxs29("div", { className: "flex animate-pulse flex-col gap-4 rounded-lg border border-ods-border bg-ods-card p-6", children: [
|
|
4265
|
-
/* @__PURE__ */ jsxs29("div", { className: "flex items-center justify-between gap-4", children: [
|
|
4266
|
-
/* @__PURE__ */ jsxs29("div", { className: "flex items-center gap-2", children: [
|
|
4267
|
-
/* @__PURE__ */ jsx33("div", { className: "h-10 w-10 rounded-lg bg-ods-skeleton" }),
|
|
4268
|
-
/* @__PURE__ */ jsxs29("div", { className: "space-y-1", children: [
|
|
4269
|
-
/* @__PURE__ */ jsx33("div", { className: "h-4 w-32 rounded bg-ods-skeleton" }),
|
|
4270
|
-
/* @__PURE__ */ jsx33("div", { className: "h-3 w-20 rounded bg-ods-skeleton" })
|
|
4271
|
-
] })
|
|
4272
|
-
] }),
|
|
4273
|
-
/* @__PURE__ */ jsx33("div", { className: "h-6 w-36 rounded bg-ods-skeleton" })
|
|
4274
|
-
] }),
|
|
4275
|
-
/* @__PURE__ */ jsx33("div", { className: "mt-4 h-4 w-40 rounded bg-ods-skeleton" })
|
|
4276
|
-
] })
|
|
4277
|
-
] }),
|
|
4278
|
-
/* @__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(
|
|
4279
|
-
"div",
|
|
4280
|
-
{
|
|
4281
|
-
className: "flex animate-pulse flex-col overflow-hidden rounded-lg border border-ods-border bg-ods-card",
|
|
4282
|
-
children: [
|
|
4283
|
-
/* @__PURE__ */ jsxs29("div", { className: "flex items-center justify-between px-6 py-4", children: [
|
|
4284
|
-
/* @__PURE__ */ jsx33("div", { className: "h-6 w-40 rounded bg-ods-skeleton" }),
|
|
4285
|
-
/* @__PURE__ */ jsxs29("div", { className: "flex items-center gap-2", children: [
|
|
4286
|
-
/* @__PURE__ */ jsx33("div", { className: "h-5 w-20 rounded bg-ods-skeleton" }),
|
|
4287
|
-
/* @__PURE__ */ jsx33("div", { className: "h-4 w-10 rounded bg-ods-skeleton" })
|
|
4288
|
-
] })
|
|
4289
|
-
] }),
|
|
4290
|
-
/* @__PURE__ */ jsx33("div", { className: "flex flex-1 flex-col gap-3 p-3", children: Array.from({ length: 5 }).map((_, j) => /* @__PURE__ */ jsxs29(
|
|
4291
|
-
"div",
|
|
4292
|
-
{
|
|
4293
|
-
className: "flex items-center justify-between rounded-lg border border-ods-border bg-ods-bg px-4 py-3",
|
|
4294
|
-
children: [
|
|
4295
|
-
/* @__PURE__ */ jsxs29("div", { className: "flex min-w-0 items-center gap-3", children: [
|
|
4296
|
-
/* @__PURE__ */ jsx33("div", { className: "h-12 w-12 flex-shrink-0 rounded-lg bg-ods-skeleton" }),
|
|
4297
|
-
/* @__PURE__ */ jsxs29("div", { className: "flex min-w-0 flex-col", children: [
|
|
4298
|
-
/* @__PURE__ */ jsx33("div", { className: "h-4 w-32 rounded bg-ods-skeleton" }),
|
|
4299
|
-
/* @__PURE__ */ jsx33("div", { className: "mt-1 hidden h-3 w-24 rounded bg-ods-skeleton md:block" })
|
|
4300
|
-
] })
|
|
4301
|
-
] }),
|
|
4302
|
-
/* @__PURE__ */ jsxs29("div", { className: "flex flex-shrink-0 items-center gap-1", children: [
|
|
4303
|
-
/* @__PURE__ */ jsx33("div", { className: "h-4 w-16 rounded bg-ods-skeleton" }),
|
|
4304
|
-
/* @__PURE__ */ jsx33("div", { className: "h-3 w-8 rounded bg-ods-skeleton" })
|
|
4305
|
-
] })
|
|
4306
|
-
]
|
|
4307
|
-
},
|
|
4308
|
-
j
|
|
4309
|
-
)) })
|
|
4310
|
-
]
|
|
4311
|
-
},
|
|
4312
|
-
idx
|
|
4313
|
-
)) }),
|
|
4314
|
-
/* @__PURE__ */ jsx33("div", { className: "h-6 w-60 rounded bg-ods-skeleton" }),
|
|
4315
|
-
/* @__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)) }),
|
|
4316
|
-
/* @__PURE__ */ jsxs29("div", { className: "space-y-6 rounded-3xl border border-ods-border p-8", children: [
|
|
4317
|
-
/* @__PURE__ */ jsxs29("div", { className: "flex items-start gap-6", children: [
|
|
4318
|
-
/* @__PURE__ */ jsxs29("div", { className: "min-w-0 flex-1 space-y-2", children: [
|
|
4319
|
-
/* @__PURE__ */ jsx33("div", { className: "h-8 w-72 rounded bg-ods-skeleton" }),
|
|
4320
|
-
/* @__PURE__ */ jsx33("div", { className: "h-4 w-3/4 rounded bg-ods-skeleton" })
|
|
4321
|
-
] }),
|
|
4322
|
-
/* @__PURE__ */ jsx33("div", { className: "h-12 w-12 shrink-0 rounded-md bg-ods-skeleton" })
|
|
4323
|
-
] }),
|
|
4324
|
-
/* @__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)) })
|
|
4325
|
-
] })
|
|
4326
|
-
] }),
|
|
4327
|
-
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: [
|
|
4328
|
-
description && /* @__PURE__ */ jsx33("h3", { children: description }),
|
|
4329
|
-
overlayContent
|
|
4330
|
-
] }) })
|
|
4331
|
-
] });
|
|
4332
|
-
}
|
|
4333
|
-
|
|
4334
|
-
// src/components/loading/users-grid-skeleton.tsx
|
|
4335
|
-
import { jsx as jsx34, jsxs as jsxs30 } from "react/jsx-runtime";
|
|
4336
|
-
function UsersGridSkeleton({ rows = 10, className }) {
|
|
4337
|
-
const skeletonRows = Array.from({ length: rows });
|
|
4338
|
-
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: [
|
|
4339
|
-
/* @__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)) }) }),
|
|
4340
|
-
/* @__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)) })
|
|
4341
|
-
] }) });
|
|
4342
|
-
}
|
|
4343
|
-
|
|
4344
|
-
// src/components/loading/organization-icon-skeleton.tsx
|
|
4345
|
-
import { jsx as jsx35 } from "react/jsx-runtime";
|
|
4346
|
-
var sizeClasses2 = {
|
|
4347
|
-
xs: "w-6 h-6",
|
|
4348
|
-
sm: "w-8 h-8",
|
|
4349
|
-
md: "w-10 h-10",
|
|
4350
|
-
lg: "w-12 h-12",
|
|
4351
|
-
l: "w-14 h-14",
|
|
4352
|
-
xl: "w-16 h-16"
|
|
4353
|
-
};
|
|
4354
|
-
var backgroundClasses2 = {
|
|
4355
|
-
dark: "bg-ods-bg border border-ods-border",
|
|
4356
|
-
light: "bg-ods-card border border-ods-border",
|
|
4357
|
-
white: "bg-white border border-[#E5E5E5]"
|
|
4358
|
-
};
|
|
4359
|
-
function OrganizationIconSkeleton({
|
|
4360
|
-
size = "md",
|
|
4361
|
-
className = "",
|
|
4362
|
-
showBackground = true,
|
|
4363
|
-
backgroundStyle = "dark"
|
|
4364
|
-
}) {
|
|
4365
|
-
const containerClasses = cn(
|
|
4366
|
-
sizeClasses2[size],
|
|
4367
|
-
"flex flex-shrink-0 items-center justify-center rounded-lg",
|
|
4368
|
-
showBackground && backgroundClasses2[backgroundStyle],
|
|
4369
|
-
!showBackground && "overflow-hidden",
|
|
4370
|
-
className
|
|
4371
|
-
);
|
|
4372
|
-
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" }) });
|
|
4373
|
-
}
|
|
4374
|
-
|
|
4375
|
-
// src/components/loading/organization-card-skeleton.tsx
|
|
4376
|
-
import { jsx as jsx36, jsxs as jsxs31 } from "react/jsx-runtime";
|
|
4377
|
-
function OrganizationCardSkeleton({
|
|
4378
|
-
className,
|
|
4379
|
-
containerClassName,
|
|
4380
|
-
showFooter = true,
|
|
4381
|
-
showDescription = true
|
|
4382
|
-
}) {
|
|
4383
|
-
return /* @__PURE__ */ jsx36(
|
|
4384
|
-
"div",
|
|
4385
|
-
{
|
|
4386
|
-
className: cn(
|
|
4387
|
-
containerClassName || "border border-ods-border bg-ods-card",
|
|
4388
|
-
"flex h-full flex-col overflow-hidden rounded-lg",
|
|
4389
|
-
className
|
|
4390
|
-
),
|
|
4391
|
-
role: "status",
|
|
4392
|
-
"aria-label": "Loading organization card",
|
|
4393
|
-
children: /* @__PURE__ */ jsxs31("div", { className: "flex flex-col gap-3 p-4", children: [
|
|
4394
|
-
/* @__PURE__ */ jsxs31("div", { className: "flex w-full items-start gap-3", children: [
|
|
4395
|
-
/* @__PURE__ */ jsx36(
|
|
4396
|
-
OrganizationIconSkeleton,
|
|
4397
|
-
{
|
|
4398
|
-
size: "xl",
|
|
4399
|
-
backgroundStyle: "dark",
|
|
4400
|
-
showBackground: true,
|
|
4401
|
-
className: "h-[60px] w-[60px]"
|
|
4402
|
-
}
|
|
4403
|
-
),
|
|
4404
|
-
/* @__PURE__ */ jsxs31("div", { className: "flex min-w-0 flex-1 flex-col justify-center space-y-1 py-2", children: [
|
|
4405
|
-
/* @__PURE__ */ jsx36(TextSkeleton.Subheading, { className: "w-3/4" }),
|
|
4406
|
-
/* @__PURE__ */ jsx36(TextSkeleton.Caption, { className: "w-1/2" })
|
|
4407
|
-
] })
|
|
4408
|
-
] }),
|
|
4409
|
-
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: [
|
|
4410
|
-
/* @__PURE__ */ jsx36(TextSkeleton.Body, { className: "w-full" }),
|
|
4411
|
-
/* @__PURE__ */ jsx36(TextSkeleton.Body, { className: "w-2/3" })
|
|
4412
|
-
] }) }),
|
|
4413
|
-
showFooter && /* @__PURE__ */ jsxs31("div", { className: "flex w-full min-w-0 items-center justify-between gap-2", children: [
|
|
4414
|
-
/* @__PURE__ */ jsxs31("div", { className: "flex min-w-0 flex-shrink items-center gap-3 md:gap-4", children: [
|
|
4415
|
-
/* @__PURE__ */ jsxs31("div", { className: "flex flex-shrink-0 items-center gap-1", children: [
|
|
4416
|
-
/* @__PURE__ */ jsx36(MediaSkeleton.Icon, { size: "sm", className: "h-5 w-5" }),
|
|
4417
|
-
/* @__PURE__ */ jsx36(TextSkeleton.Caption, { className: "w-8" })
|
|
4418
|
-
] }),
|
|
4419
|
-
/* @__PURE__ */ jsxs31("div", { className: "flex flex-shrink-0 items-center gap-1", children: [
|
|
4420
|
-
/* @__PURE__ */ jsx36(MediaSkeleton.Icon, { size: "sm", className: "h-5 w-5" }),
|
|
4421
|
-
/* @__PURE__ */ jsx36(TextSkeleton.Caption, { className: "w-10" })
|
|
4422
|
-
] })
|
|
4423
|
-
] }),
|
|
4424
|
-
/* @__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: [
|
|
4425
|
-
/* @__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" }) }),
|
|
4426
|
-
/* @__PURE__ */ jsx36(TextSkeleton.Caption, { className: "w-16" })
|
|
4427
|
-
] }) })
|
|
4428
|
-
] })
|
|
4429
|
-
] })
|
|
4430
|
-
}
|
|
4431
|
-
);
|
|
4432
|
-
}
|
|
4433
|
-
function OrganizationCardSkeletonGrid({
|
|
4434
|
-
count = 12,
|
|
4435
|
-
className,
|
|
4436
|
-
containerClassName,
|
|
4437
|
-
showFooter = true,
|
|
4438
|
-
showDescription = true
|
|
4439
|
-
}) {
|
|
4440
|
-
return /* @__PURE__ */ jsx36(
|
|
4441
|
-
"div",
|
|
4442
|
-
{
|
|
4443
|
-
className: cn("grid grid-cols-1 gap-4 md:grid-cols-2 md:gap-6 lg:grid-cols-3", className),
|
|
4444
|
-
role: "status",
|
|
4445
|
-
"aria-label": `Loading ${count} organization cards`,
|
|
4446
|
-
children: Array.from({ length: count }, (_, index) => /* @__PURE__ */ jsx36(
|
|
4447
|
-
OrganizationCardSkeleton,
|
|
4448
|
-
{
|
|
4449
|
-
containerClassName,
|
|
4450
|
-
showFooter,
|
|
4451
|
-
showDescription
|
|
4452
|
-
},
|
|
4453
|
-
index
|
|
4454
|
-
))
|
|
4455
|
-
}
|
|
4456
|
-
);
|
|
4457
|
-
}
|
|
4458
|
-
|
|
4459
|
-
// src/components/loading/device-card-skeleton.tsx
|
|
4460
|
-
import { jsx as jsx37, jsxs as jsxs32 } from "react/jsx-runtime";
|
|
4461
|
-
function DeviceCardSkeleton({ className }) {
|
|
4462
|
-
return /* @__PURE__ */ jsxs32(
|
|
4463
|
-
"div",
|
|
4464
|
-
{
|
|
4465
|
-
className: cn("h-full rounded-[6px] border border-ods-border bg-ods-card", className),
|
|
4466
|
-
role: "status",
|
|
4467
|
-
"aria-label": "Loading device card",
|
|
4468
|
-
children: [
|
|
4469
|
-
/* @__PURE__ */ jsxs32("div", { className: "flex items-center gap-4 px-4 py-3", children: [
|
|
4470
|
-
/* @__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" }) }),
|
|
4471
|
-
/* @__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" }) }),
|
|
4472
|
-
/* @__PURE__ */ jsx37("div", { className: "h-12 w-12 flex-shrink-0 animate-pulse rounded-[6px] bg-ods-border" })
|
|
4473
|
-
] }),
|
|
4474
|
-
/* @__PURE__ */ jsxs32("div", { className: "flex items-center gap-4 px-4 py-2", children: [
|
|
4475
|
-
/* @__PURE__ */ jsx37("div", { className: "h-6 w-24 flex-shrink-0 animate-pulse rounded bg-ods-border" }),
|
|
4476
|
-
/* @__PURE__ */ jsx37(OrganizationIconSkeleton, { size: "sm" }),
|
|
4477
|
-
/* @__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" }) })
|
|
4478
|
-
] }),
|
|
4479
|
-
/* @__PURE__ */ jsxs32("div", { className: "flex items-center gap-4 px-4 py-2", children: [
|
|
4480
|
-
/* @__PURE__ */ jsx37("div", { className: "h-6 w-20 flex-shrink-0 animate-pulse rounded-full bg-ods-border" }),
|
|
4481
|
-
/* @__PURE__ */ jsx37("div", { className: "flex-1", children: /* @__PURE__ */ jsx37("div", { className: "h-5 w-40 animate-pulse rounded bg-ods-border" }) })
|
|
4482
|
-
] })
|
|
4483
|
-
]
|
|
4484
|
-
}
|
|
4485
|
-
);
|
|
4486
|
-
}
|
|
4487
|
-
function DeviceCardSkeletonGrid({ count = 12, className }) {
|
|
4488
|
-
return /* @__PURE__ */ jsx37(
|
|
4489
|
-
"div",
|
|
4490
|
-
{
|
|
4491
|
-
className: cn("grid grid-cols-1 gap-4 md:grid-cols-2 lg:grid-cols-4", className),
|
|
4492
|
-
role: "status",
|
|
4493
|
-
"aria-label": `Loading ${count} device cards`,
|
|
4494
|
-
children: Array.from({ length: count }, (_, index) => /* @__PURE__ */ jsx37(DeviceCardSkeleton, {}, index))
|
|
4495
|
-
}
|
|
4496
|
-
);
|
|
4497
|
-
}
|
|
4498
|
-
|
|
4499
3668
|
// src/components/vendor-page-skeleton.tsx
|
|
4500
|
-
import { jsx as
|
|
3669
|
+
import { jsx as jsx25 } from "react/jsx-runtime";
|
|
4501
3670
|
function VendorPageSkeleton() {
|
|
4502
|
-
return /* @__PURE__ */
|
|
3671
|
+
return /* @__PURE__ */ jsx25(VendorDetailLayoutSkeleton, {});
|
|
4503
3672
|
}
|
|
4504
3673
|
|
|
4505
3674
|
// src/components/why-it-matters.tsx
|
|
4506
|
-
import { jsx as
|
|
3675
|
+
import { jsx as jsx26, jsxs as jsxs21 } from "react/jsx-runtime";
|
|
4507
3676
|
|
|
4508
3677
|
// src/components/yes-no-display.tsx
|
|
4509
|
-
import { jsx as
|
|
3678
|
+
import { jsx as jsx27, jsxs as jsxs22 } from "react/jsx-runtime";
|
|
4510
3679
|
function YesNoDisplay({ value, yesText = "Yes", noText = "No", customText, className = "" }) {
|
|
4511
3680
|
if (customText) {
|
|
4512
|
-
return /* @__PURE__ */
|
|
4513
|
-
/* @__PURE__ */
|
|
4514
|
-
/* @__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 })
|
|
4515
3684
|
] });
|
|
4516
3685
|
}
|
|
4517
3686
|
if (value) {
|
|
4518
|
-
return /* @__PURE__ */
|
|
4519
|
-
/* @__PURE__ */
|
|
4520
|
-
/* @__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 })
|
|
4521
3690
|
] });
|
|
4522
3691
|
}
|
|
4523
|
-
return /* @__PURE__ */
|
|
4524
|
-
/* @__PURE__ */
|
|
4525
|
-
/* @__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 })
|
|
4526
3695
|
] });
|
|
4527
3696
|
}
|
|
4528
3697
|
function evaluateFeatureValue(value, dataType) {
|
|
@@ -4557,7 +3726,7 @@ function evaluateFeatureValue(value, dataType) {
|
|
|
4557
3726
|
|
|
4558
3727
|
// src/components/made-with-love.tsx
|
|
4559
3728
|
import { useState as useState6, useEffect as useEffect3 } from "react";
|
|
4560
|
-
import { jsx as
|
|
3729
|
+
import { jsx as jsx28, jsxs as jsxs23 } from "react/jsx-runtime";
|
|
4561
3730
|
function MadeWithLove({ className = "", size = "md", showOnMobile = true }) {
|
|
4562
3731
|
const [isMobile, setIsMobile] = useState6(false);
|
|
4563
3732
|
const [isHovered, setIsHovered] = useState6(false);
|
|
@@ -4627,9 +3796,9 @@ function MadeWithLove({ className = "", size = "md", showOnMobile = true }) {
|
|
|
4627
3796
|
marginLeft: "4px",
|
|
4628
3797
|
textDecoration: "none"
|
|
4629
3798
|
};
|
|
4630
|
-
return /* @__PURE__ */
|
|
3799
|
+
return /* @__PURE__ */ jsxs23("div", { style: containerStyle, className, children: [
|
|
4631
3800
|
"Made with love by",
|
|
4632
|
-
/* @__PURE__ */
|
|
3801
|
+
/* @__PURE__ */ jsxs23(
|
|
4633
3802
|
"a",
|
|
4634
3803
|
{
|
|
4635
3804
|
href: flamingoUrl,
|
|
@@ -4639,14 +3808,14 @@ function MadeWithLove({ className = "", size = "md", showOnMobile = true }) {
|
|
|
4639
3808
|
onMouseEnter: () => setIsHovered(true),
|
|
4640
3809
|
onMouseLeave: () => setIsHovered(false),
|
|
4641
3810
|
children: [
|
|
4642
|
-
/* @__PURE__ */
|
|
3811
|
+
/* @__PURE__ */ jsx28("div", { style: logoStyle, children: /* @__PURE__ */ jsx28(
|
|
4643
3812
|
FlamingoLogo2,
|
|
4644
3813
|
{
|
|
4645
3814
|
size: config.logoSize,
|
|
4646
3815
|
color: "#f357bb"
|
|
4647
3816
|
}
|
|
4648
3817
|
) }),
|
|
4649
|
-
/* @__PURE__ */
|
|
3818
|
+
/* @__PURE__ */ jsx28("span", { style: textStyle, children: "Flamingo" })
|
|
4650
3819
|
]
|
|
4651
3820
|
}
|
|
4652
3821
|
)
|
|
@@ -4655,7 +3824,7 @@ function MadeWithLove({ className = "", size = "md", showOnMobile = true }) {
|
|
|
4655
3824
|
|
|
4656
3825
|
// src/components/date-time-picker.tsx
|
|
4657
3826
|
import DatePicker2 from "react-datepicker";
|
|
4658
|
-
import { jsx as
|
|
3827
|
+
import { jsx as jsx29, jsxs as jsxs24 } from "react/jsx-runtime";
|
|
4659
3828
|
var inputClassName = cn(
|
|
4660
3829
|
"flex h-10 w-full rounded-md border px-3 py-2 text-sm ring-offset-background",
|
|
4661
3830
|
"file:border-0 file:bg-transparent file:text-sm file:font-medium",
|
|
@@ -4679,9 +3848,9 @@ function DateTimePicker({
|
|
|
4679
3848
|
timeIntervals = 15,
|
|
4680
3849
|
dateFormat = "MMMM d, yyyy h:mm aa"
|
|
4681
3850
|
}) {
|
|
4682
|
-
return /* @__PURE__ */
|
|
4683
|
-
label && /* @__PURE__ */
|
|
4684
|
-
/* @__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(
|
|
4685
3854
|
DatePicker2,
|
|
4686
3855
|
{
|
|
4687
3856
|
selected: value,
|
|
@@ -4696,7 +3865,7 @@ function DateTimePicker({
|
|
|
4696
3865
|
className: inputClassName
|
|
4697
3866
|
}
|
|
4698
3867
|
) }),
|
|
4699
|
-
/* @__PURE__ */
|
|
3868
|
+
/* @__PURE__ */ jsx29(
|
|
4700
3869
|
"style",
|
|
4701
3870
|
{
|
|
4702
3871
|
dangerouslySetInnerHTML: {
|
|
@@ -4807,7 +3976,7 @@ function DateTimePicker({
|
|
|
4807
3976
|
}
|
|
4808
3977
|
|
|
4809
3978
|
// src/components/authors/author-detail-view.tsx
|
|
4810
|
-
import { jsx as
|
|
3979
|
+
import { jsx as jsx30, jsxs as jsxs25 } from "react/jsx-runtime";
|
|
4811
3980
|
function AuthorDetailView({ author, proxyImageUrl, children, className }) {
|
|
4812
3981
|
const runtime = useChatRuntime();
|
|
4813
3982
|
const proxiedAvatar = author.avatarUrl ? proxyImageUrl ? proxyImageUrl(author.avatarUrl) : getProxiedImageUrl(author.avatarUrl, {
|
|
@@ -4817,14 +3986,14 @@ function AuthorDetailView({ author, proxyImageUrl, children, className }) {
|
|
|
4817
3986
|
}) ?? author.avatarUrl : null;
|
|
4818
3987
|
const subtitle = [author.jobTitle, author.company].filter(Boolean).join(" @ ");
|
|
4819
3988
|
const bioText = formatBioText(author.about);
|
|
4820
|
-
return /* @__PURE__ */
|
|
4821
|
-
/* @__PURE__ */
|
|
4822
|
-
/* @__PURE__ */
|
|
4823
|
-
/* @__PURE__ */
|
|
4824
|
-
/* @__PURE__ */
|
|
4825
|
-
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 }),
|
|
4826
3995
|
author.socialLinks.length > 0 && // Ghost compact row (transparent 32px) — metadata, not CTAs.
|
|
4827
|
-
/* @__PURE__ */
|
|
3996
|
+
/* @__PURE__ */ jsx30(
|
|
4828
3997
|
SocialIconRow,
|
|
4829
3998
|
{
|
|
4830
3999
|
compact: true,
|
|
@@ -4837,8 +4006,8 @@ function AuthorDetailView({ author, proxyImageUrl, children, className }) {
|
|
|
4837
4006
|
)
|
|
4838
4007
|
] })
|
|
4839
4008
|
] }),
|
|
4840
|
-
bioText && /* @__PURE__ */
|
|
4841
|
-
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)) }),
|
|
4842
4011
|
children
|
|
4843
4012
|
] });
|
|
4844
4013
|
}
|