@flamingo-stack/openframe-frontend-core 0.0.705-snapshot.20261006160157 → 0.0.705

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.
Files changed (194) hide show
  1. package/dist/{chunk-WCVZCGK5.cjs → chunk-2QEUFXNS.cjs} +71 -312
  2. package/dist/{chunk-N45D4ZXQ.js → chunk-2YXVWZVF.js} +715 -959
  3. package/dist/{chunk-7OFPU7WE.cjs → chunk-3MX5S4CF.cjs} +2547 -877
  4. package/dist/{chunk-MB4PNY7C.cjs → chunk-4I45Y3DN.cjs} +6 -6
  5. package/dist/{chunk-K6O43WDL.cjs → chunk-4KX6OED2.cjs} +46 -46
  6. package/dist/{chunk-JPG7OHEG.js → chunk-5HBHO5TB.js} +1 -1
  7. package/dist/{chunk-3PLDQDE6.cjs → chunk-6NJKKO73.cjs} +15 -15
  8. package/dist/{chunk-O2RSAA5M.js → chunk-6SEANMOU.js} +11 -11
  9. package/dist/{chunk-WMX26HB5.js → chunk-6XIF2Z7I.js} +3 -3
  10. package/dist/{chunk-TQ4LB2DS.cjs → chunk-7LS22BZU.cjs} +14 -14
  11. package/dist/{chunk-7GEBFJT2.js → chunk-7VVFKJY5.js} +3429 -1759
  12. package/dist/{chunk-DDVBX42E.cjs → chunk-A75QY6CD.cjs} +21 -21
  13. package/dist/{chunk-OF6GEI5A.cjs → chunk-ABU3TGXA.cjs} +3 -3
  14. package/dist/{chunk-4CJMQLB5.js → chunk-AQWZNP6A.js} +4 -4
  15. package/dist/{chunk-FI6GMDO7.js → chunk-CH5232HV.js} +662 -2455
  16. package/dist/{chunk-Y2GSOUCS.cjs → chunk-D7BTSVMS.cjs} +2 -2
  17. package/dist/{chunk-4ILM7W2R.js → chunk-DENB2XJC.js} +2 -2
  18. package/dist/{chunk-6232S532.js → chunk-DW7G4KG3.js} +3 -3
  19. package/dist/{chunk-3NCM4ZQB.js → chunk-F6AFPNDF.js} +15 -15
  20. package/dist/{chunk-PXOQIA5K.js → chunk-F6I6XZMN.js} +5 -5
  21. package/dist/{chunk-G6UMNAVI.js → chunk-FCGC42TS.js} +61 -57
  22. package/dist/{chunk-BHI6GVC4.js → chunk-G5A3PSPV.js} +691 -1080
  23. package/dist/{chunk-HZ7CBXPL.cjs → chunk-HPWWNJE7.cjs} +89 -89
  24. package/dist/{chunk-SW5ZV2BN.cjs → chunk-IHERL5V4.cjs} +34 -34
  25. package/dist/{chunk-UJ33ZXDT.cjs → chunk-IKTQ3ZAG.cjs} +6 -6
  26. package/dist/{chunk-SEKYEWQG.cjs → chunk-JEZKGCZI.cjs} +26 -26
  27. package/dist/{chunk-7SCNMP2B.cjs → chunk-KOWVJD4V.cjs} +56 -56
  28. package/dist/chunk-LMBC5FFP.js +43 -0
  29. package/dist/{chunk-F57ECE2I.js → chunk-MFFCUVWG.js} +1 -1
  30. package/dist/{chunk-KUC673HM.js → chunk-MKXO4Q5P.js} +142 -383
  31. package/dist/{chunk-6NTPY5QA.cjs → chunk-MMOODW57.cjs} +94 -1887
  32. package/dist/{chunk-CUME3VTQ.js → chunk-MP2C3LJ4.js} +1 -1
  33. package/dist/{chunk-VX4E6YSB.cjs → chunk-N3COXDBH.cjs} +5 -41
  34. package/dist/{chunk-FXJ3WWUB.js → chunk-NDESEPW5.js} +0 -68
  35. package/dist/chunk-O43V3EOS.js +252 -0
  36. package/dist/{chunk-PLYEKV3N.cjs → chunk-OHFS7VOU.cjs} +2 -2
  37. package/dist/{chunk-M75XEEGT.cjs → chunk-OUY3HHW6.cjs} +539 -928
  38. package/dist/{chunk-CZ7Y7UG4.js → chunk-PDWVPI3S.js} +72 -4
  39. package/dist/{chunk-TE773HEH.js → chunk-PN2RKPDF.js} +10 -10
  40. package/dist/{chunk-3EZ4HHAP.js → chunk-QFXRPRFT.js} +3 -3
  41. package/dist/chunk-QZVSJF2K.cjs +252 -0
  42. package/dist/chunk-RALRPFDW.cjs +43 -0
  43. package/dist/{chunk-YGJKKDDM.js → chunk-RBDP4WDE.js} +6 -6
  44. package/dist/{chunk-LM7TXMLU.cjs → chunk-RKV5B7EU.cjs} +4 -72
  45. package/dist/{chunk-UVTD52MD.cjs → chunk-TYWLNCNH.cjs} +82 -14
  46. package/dist/{chunk-IKJA3Y7Z.js → chunk-VA5T32XA.js} +2 -2
  47. package/dist/{chunk-GWQEYPYM.cjs → chunk-VESKITRQ.cjs} +732 -728
  48. package/dist/{chunk-RQRX4YC3.cjs → chunk-VHCACDKP.cjs} +39 -39
  49. package/dist/{chunk-4IBPRIQH.js → chunk-VR2ZLFCP.js} +1 -1
  50. package/dist/{chunk-RTIPR53L.cjs → chunk-WA6GUYQ4.cjs} +104 -104
  51. package/dist/{chunk-T5TMCHWM.js → chunk-X5MQ7JRP.js} +9 -9
  52. package/dist/{chunk-LLSUVPQC.cjs → chunk-X72J4ACL.cjs} +8 -252
  53. package/dist/{chunk-UDFRUKLC.cjs → chunk-XOYH2YQE.cjs} +2 -2
  54. package/dist/{chunk-LVSFKENJ.cjs → chunk-YFBM2K6X.cjs} +4 -4
  55. package/dist/{chunk-DWPAAWMR.js → chunk-YHM5AWTT.js} +6 -6
  56. package/dist/{chunk-NCPTID44.js → chunk-Z2VNQQ74.js} +942 -978
  57. package/dist/{chunk-STHZBOQI.cjs → chunk-ZSAGLQOD.cjs} +17 -17
  58. package/dist/{chunk-VZICIQW2.js → chunk-ZSAO2HBW.js} +15 -15
  59. package/dist/components/case-studies/index.cjs +32 -30
  60. package/dist/components/case-studies/index.js +16 -14
  61. package/dist/components/chat/entity-cards/case-study-card.d.ts +4 -11
  62. package/dist/components/chat/entity-cards/case-study-card.d.ts.map +1 -1
  63. package/dist/components/chat/index.cjs +11 -9
  64. package/dist/components/chat/index.js +16 -14
  65. package/dist/components/chat/utils/icon-library.d.ts.map +1 -1
  66. package/dist/components/contact/index.cjs +14 -12
  67. package/dist/components/contact/index.js +13 -11
  68. package/dist/components/docs/index.cjs +17 -15
  69. package/dist/components/docs/index.js +16 -14
  70. package/dist/components/embeds/index.cjs +14 -12
  71. package/dist/components/embeds/index.js +13 -11
  72. package/dist/components/faq/index.cjs +15 -13
  73. package/dist/components/faq/index.js +14 -12
  74. package/dist/components/features/index.cjs +14 -12
  75. package/dist/components/features/index.js +23 -21
  76. package/dist/components/footer-waitlist-button.d.ts +29 -0
  77. package/dist/components/footer-waitlist-button.d.ts.map +1 -0
  78. package/dist/components/footer.d.ts +47 -0
  79. package/dist/components/footer.d.ts.map +1 -0
  80. package/dist/components/help-center-pages/index.cjs +120 -118
  81. package/dist/components/help-center-pages/index.js +35 -33
  82. package/dist/components/icons/index.cjs +5 -3
  83. package/dist/components/icons/index.js +11 -9
  84. package/dist/components/icons-v2-generated/index.cjs +5 -3
  85. package/dist/components/icons-v2-generated/index.js +4 -2
  86. package/dist/components/index.cjs +159 -86
  87. package/dist/components/index.d.ts +2 -0
  88. package/dist/components/index.d.ts.map +1 -1
  89. package/dist/components/index.js +402 -329
  90. package/dist/components/loading/page-layout-skeleton.d.ts +1 -1
  91. package/dist/components/meeting-scheduler/index.cjs +64 -62
  92. package/dist/components/meeting-scheduler/index.js +14 -12
  93. package/dist/components/navigation/client-only-header.d.ts +8 -0
  94. package/dist/components/navigation/client-only-header.d.ts.map +1 -0
  95. package/dist/components/navigation/header-skeleton.d.ts +12 -0
  96. package/dist/components/navigation/header-skeleton.d.ts.map +1 -0
  97. package/dist/components/navigation/header.d.ts +9 -0
  98. package/dist/components/navigation/header.d.ts.map +1 -0
  99. package/dist/components/navigation/index.cjs +16 -28
  100. package/dist/components/navigation/index.d.ts +10 -14
  101. package/dist/components/navigation/index.d.ts.map +1 -1
  102. package/dist/components/navigation/index.js +26 -38
  103. package/dist/components/navigation/mingo-ai-button.d.ts +3 -38
  104. package/dist/components/navigation/mingo-ai-button.d.ts.map +1 -1
  105. package/dist/components/navigation/mobile-nav-panel.d.ts +10 -0
  106. package/dist/components/navigation/mobile-nav-panel.d.ts.map +1 -0
  107. package/dist/components/navigation/navigation-sidebar-item.d.ts +2 -1
  108. package/dist/components/navigation/navigation-sidebar-item.d.ts.map +1 -1
  109. package/dist/components/navigation/top-navigation.d.ts +2 -2
  110. package/dist/components/navigation/top-navigation.d.ts.map +1 -1
  111. package/dist/components/onboarding-guides/index.cjs +17 -15
  112. package/dist/components/onboarding-guides/index.js +16 -14
  113. package/dist/components/related-content/index.cjs +8 -10
  114. package/dist/components/related-content/index.js +7 -9
  115. package/dist/components/tickets/index.cjs +18 -16
  116. package/dist/components/tickets/index.js +17 -15
  117. package/dist/components/ui/index.cjs +14 -12
  118. package/dist/components/ui/index.js +19 -17
  119. package/dist/hooks/index.cjs +11 -19
  120. package/dist/hooks/index.d.ts +0 -1
  121. package/dist/hooks/index.d.ts.map +1 -1
  122. package/dist/hooks/index.js +11 -19
  123. package/dist/hooks/ui/index.d.ts +0 -3
  124. package/dist/hooks/ui/index.d.ts.map +1 -1
  125. package/dist/index.cjs +22 -55
  126. package/dist/index.js +196 -229
  127. package/dist/types/case-study.d.ts +0 -9
  128. package/dist/types/case-study.d.ts.map +1 -1
  129. package/dist/types/navigation.d.ts +65 -95
  130. package/dist/types/navigation.d.ts.map +1 -1
  131. package/dist/utils/index.cjs +0 -55
  132. package/dist/utils/index.d.ts +0 -1
  133. package/dist/utils/index.d.ts.map +1 -1
  134. package/dist/utils/index.js +1 -50
  135. package/dist/utils/source-icons.d.ts.map +1 -1
  136. package/package.json +1 -1
  137. package/src/components/chat/entity-cards/case-study-card.tsx +5 -115
  138. package/src/components/chat/utils/icon-library.tsx +1 -35
  139. package/src/components/footer-waitlist-button.tsx +53 -0
  140. package/src/components/footer.tsx +195 -0
  141. package/src/components/index.ts +2 -0
  142. package/src/components/loading/page-layout-skeleton.tsx +1 -1
  143. package/src/components/navigation/client-only-header.tsx +22 -0
  144. package/src/components/navigation/header-skeleton.tsx +74 -0
  145. package/src/components/navigation/header.tsx +429 -0
  146. package/src/components/navigation/index.ts +14 -21
  147. package/src/components/navigation/mingo-ai-button.tsx +63 -139
  148. package/src/components/navigation/mobile-nav-panel.tsx +155 -0
  149. package/src/components/navigation/navigation-sidebar-item.tsx +2 -1
  150. package/src/components/navigation/ticket-alerts-button.tsx +2 -2
  151. package/src/components/navigation/top-navigation.tsx +2 -2
  152. package/src/hooks/index.ts +0 -1
  153. package/src/hooks/ui/index.ts +0 -3
  154. package/src/styles/chat-animations.css +2 -57
  155. package/src/types/case-study.ts +0 -16
  156. package/src/types/navigation.ts +66 -80
  157. package/src/utils/index.ts +0 -1
  158. package/src/utils/source-icons.ts +0 -13
  159. package/dist/components/navigation/mobile-nav-sheet-id.d.ts +0 -3
  160. package/dist/components/navigation/mobile-nav-sheet-id.d.ts.map +0 -1
  161. package/dist/components/navigation/mobile-nav-sheet.d.ts +0 -48
  162. package/dist/components/navigation/mobile-nav-sheet.d.ts.map +0 -1
  163. package/dist/components/navigation/nav-item-row.d.ts +0 -27
  164. package/dist/components/navigation/nav-item-row.d.ts.map +0 -1
  165. package/dist/components/navigation/nav-panel.d.ts +0 -43
  166. package/dist/components/navigation/nav-panel.d.ts.map +0 -1
  167. package/dist/components/navigation/site-footer.d.ts +0 -28
  168. package/dist/components/navigation/site-footer.d.ts.map +0 -1
  169. package/dist/components/navigation/site-header.d.ts +0 -61
  170. package/dist/components/navigation/site-header.d.ts.map +0 -1
  171. package/dist/components/navigation/site-nav-link.d.ts +0 -26
  172. package/dist/components/navigation/site-nav-link.d.ts.map +0 -1
  173. package/dist/hooks/ui/use-active-section.d.ts +0 -10
  174. package/dist/hooks/ui/use-active-section.d.ts.map +0 -1
  175. package/dist/hooks/ui/use-nav-menus.d.ts +0 -48
  176. package/dist/hooks/ui/use-nav-menus.d.ts.map +0 -1
  177. package/dist/hooks/ui/use-visitor-os.d.ts +0 -15
  178. package/dist/hooks/ui/use-visitor-os.d.ts.map +0 -1
  179. package/dist/hooks/use-location-hash.d.ts +0 -9
  180. package/dist/hooks/use-location-hash.d.ts.map +0 -1
  181. package/dist/utils/visitor-os.d.ts +0 -45
  182. package/dist/utils/visitor-os.d.ts.map +0 -1
  183. package/src/components/navigation/mobile-nav-sheet-id.ts +0 -2
  184. package/src/components/navigation/mobile-nav-sheet.tsx +0 -241
  185. package/src/components/navigation/nav-item-row.tsx +0 -129
  186. package/src/components/navigation/nav-panel.tsx +0 -196
  187. package/src/components/navigation/site-footer.tsx +0 -256
  188. package/src/components/navigation/site-header.tsx +0 -339
  189. package/src/components/navigation/site-nav-link.tsx +0 -41
  190. package/src/hooks/ui/use-active-section.ts +0 -44
  191. package/src/hooks/ui/use-nav-menus.ts +0 -200
  192. package/src/hooks/ui/use-visitor-os.ts +0 -33
  193. package/src/hooks/use-location-hash.ts +0 -34
  194. package/src/utils/visitor-os.ts +0 -84
@@ -4,7 +4,7 @@ import "../chunk-64IBNSDF.js";
4
4
  import {
5
5
  GROUP_PAGE_SIZE,
6
6
  RelatedContentSection
7
- } from "../chunk-WMX26HB5.js";
7
+ } from "../chunk-6XIF2Z7I.js";
8
8
  import {
9
9
  CveLink,
10
10
  OnboardingStepCard,
@@ -15,35 +15,28 @@ import {
15
15
  SoftwareInfo,
16
16
  SoftwareSourceBadge,
17
17
  ToolBadge
18
- } from "../chunk-3NCM4ZQB.js";
18
+ } from "../chunk-F6AFPNDF.js";
19
19
  import {
20
- ASK_AI_OPEN_EVENT,
21
20
  AppHeader,
22
21
  AppLayout,
22
+ ClientOnlyHeader,
23
+ Header,
23
24
  HeaderGlobalSearch,
24
25
  HeaderMingoButton,
25
26
  HeaderOrganizationFilter,
26
- MOBILE_NAV_SHEET_ID,
27
+ HeaderSkeleton,
28
+ MOBILE_NAV_PANEL_ID,
27
29
  MingoAiButton,
28
30
  MobileBurgerMenu,
29
- MobileNavSheet,
31
+ MobileNavPanel,
30
32
  NAVIGATION_SIDEBAR_WIDTH_VAR,
31
- NavItemRow,
32
- NavPanel,
33
33
  NavigationItemBadge,
34
34
  NavigationSidebar,
35
35
  SIDE_PANEL_FRAME_WIDTH,
36
- SiteFooter,
37
- SiteHeader,
38
36
  SlidingSidebar,
39
37
  TicketAlertsButton,
40
- TopNavigation,
41
- defaultRenderSiteNavLink,
42
- isMegaMenu,
43
- navLinkLabel,
44
- openAskAi,
45
- siteNavHasMobileMenus
46
- } from "../chunk-BHI6GVC4.js";
38
+ TopNavigation
39
+ } from "../chunk-G5A3PSPV.js";
47
40
  import {
48
41
  DeliveryLists,
49
42
  DeliveryTable,
@@ -57,7 +50,7 @@ import {
57
50
  RoadmapView,
58
51
  useLegalDocs,
59
52
  useRoadmapVoting
60
- } from "../chunk-VZICIQW2.js";
53
+ } from "../chunk-ZSAO2HBW.js";
61
54
  import {
62
55
  DocNavigationProvider,
63
56
  DocViewer,
@@ -71,28 +64,28 @@ import {
71
64
  useDocNavigation,
72
65
  useDocumentTree,
73
66
  useScrollSpy
74
- } from "../chunk-DWPAAWMR.js";
67
+ } from "../chunk-YHM5AWTT.js";
75
68
  import {
76
69
  FileDownloadCard,
77
70
  GoogleSheetsViewer,
78
71
  PdfViewer
79
- } from "../chunk-YGJKKDDM.js";
72
+ } from "../chunk-RBDP4WDE.js";
80
73
  import {
81
74
  PersistentPagination,
82
75
  PersistentPaginationWrapper,
83
76
  usePaginationLoading
84
- } from "../chunk-JPG7OHEG.js";
77
+ } from "../chunk-5HBHO5TB.js";
85
78
  import {
86
79
  FaqAccordion,
87
80
  FaqDocumentPage,
88
81
  FaqSection
89
- } from "../chunk-T5TMCHWM.js";
82
+ } from "../chunk-X5MQ7JRP.js";
90
83
  import {
91
84
  MobileNavigationDropdown,
92
85
  MultiLevelNavigation,
93
86
  StickySectionNav,
94
87
  useSectionNavigation
95
- } from "../chunk-4ILM7W2R.js";
88
+ } from "../chunk-DENB2XJC.js";
96
89
  import {
97
90
  DeliveryRow,
98
91
  DevCardRowContent,
@@ -101,16 +94,16 @@ import {
101
94
  DevSectionPage,
102
95
  DevSectionView,
103
96
  ListEmptyState
104
- } from "../chunk-6232S532.js";
97
+ } from "../chunk-DW7G4KG3.js";
105
98
  import {
106
99
  EmptyState,
107
100
  UnifiedPagination
108
- } from "../chunk-F57ECE2I.js";
109
- import "../chunk-3EZ4HHAP.js";
101
+ } from "../chunk-MFFCUVWG.js";
102
+ import "../chunk-QFXRPRFT.js";
110
103
  import {
111
104
  ArticleAuthorByline,
112
105
  DetailPageSkeleton
113
- } from "../chunk-IKJA3Y7Z.js";
106
+ } from "../chunk-VA5T32XA.js";
114
107
  import {
115
108
  DocSearchBar,
116
109
  DocSearchResultRow,
@@ -118,10 +111,10 @@ import {
118
111
  mapDocSearchResults,
119
112
  resolveSearchResultAction,
120
113
  useDocSearch
121
- } from "../chunk-PXOQIA5K.js";
114
+ } from "../chunk-F6I6XZMN.js";
122
115
  import {
123
116
  useSelfFetch
124
- } from "../chunk-4IBPRIQH.js";
117
+ } from "../chunk-VR2ZLFCP.js";
125
118
  import {
126
119
  AIEnrichButton,
127
120
  AIEnrichSection,
@@ -612,6 +605,7 @@ import {
612
605
  benefitCardBorderClass,
613
606
  clearLegacyAnnouncementCache,
614
607
  columnFromTicketStatus,
608
+ copyrightLine,
615
609
  createColumnHelper,
616
610
  deriveColumns,
617
611
  dismissAnnouncement,
@@ -677,7 +671,7 @@ import {
677
671
  useTimeTracker,
678
672
  useTrackerClock,
679
673
  useWalkthroughVideo
680
- } from "../chunk-G6UMNAVI.js";
674
+ } from "../chunk-FCGC42TS.js";
681
675
  import "../chunk-LQYXMEYF.js";
682
676
  import "../chunk-4JPLYOS6.js";
683
677
  import {
@@ -690,7 +684,7 @@ import {
690
684
  showToast,
691
685
  useOnboardingState,
692
686
  useToast
693
- } from "../chunk-KUC673HM.js";
687
+ } from "../chunk-MKXO4Q5P.js";
694
688
  import {
695
689
  useEndpointsRuntime
696
690
  } from "../chunk-HFL2F4RM.js";
@@ -705,7 +699,7 @@ import {
705
699
  } from "../chunk-UT4YHQZW.js";
706
700
  import {
707
701
  positiveInt
708
- } from "../chunk-CUME3VTQ.js";
702
+ } from "../chunk-MP2C3LJ4.js";
709
703
  import {
710
704
  Checkbox
711
705
  } from "../chunk-PLWMIU72.js";
@@ -718,6 +712,7 @@ import {
718
712
  AUTO_CONTINUATION_DIRECTIVE_PREFIX,
719
713
  ActionsMenu,
720
714
  ActionsMenuDropdown,
715
+ AgentMark,
721
716
  AiAssistantInfo,
722
717
  ApprovalBatchMessage,
723
718
  ApprovalRequestMessage,
@@ -809,6 +804,7 @@ import {
809
804
  DrawerTrigger,
810
805
  EMPTY_DIALOG_CAPABILITIES,
811
806
  EmbeddableChat,
807
+ EntityIcon,
812
808
  EntityVideoSection,
813
809
  ErrorMessageDisplay,
814
810
  EscalationOfferMessage,
@@ -826,6 +822,9 @@ import {
826
822
  HoverDropdown,
827
823
  HubspotTicketCard,
828
824
  HubspotTicketCardSkeleton,
825
+ ICON_ALIASES,
826
+ ICON_OPTIONS,
827
+ ICON_REGISTRY,
829
828
  InfoHint,
830
829
  InteractiveSkeleton,
831
830
  MAX_PENDING_RETAIN_KEYS,
@@ -833,6 +832,8 @@ import {
833
832
  MESSAGE_TYPE,
834
833
  MINGO_V2_RAIL_WIDTH,
835
834
  MINGO_V2_SPLIT_WIDTH,
835
+ MUX_IMAGE_ORIGIN,
836
+ MUX_STREAM_ORIGIN,
836
837
  MarkdownEngine,
837
838
  MarqueeWall,
838
839
  MarqueeWallFades,
@@ -915,8 +916,11 @@ import {
915
916
  UnarchiveChatModal,
916
917
  UnifiedSkeleton,
917
918
  UserDisplay,
919
+ VIDEO_PLAYBACK_FAILED_EVENT,
920
+ Video,
918
921
  VideoBiteCard,
919
922
  VideoBitesStrip,
923
+ VideoHoverPreviewSurface,
920
924
  WALL_SKELETON_LABEL_CH,
921
925
  accentFromIdentityIcon,
922
926
  appendToTrailingAssistant,
@@ -959,6 +963,7 @@ import {
959
963
  extractIncompleteMessageState,
960
964
  extractIncompleteTailState,
961
965
  extractText,
966
+ extractYouTubeId,
962
967
  fetchEmptyStateConfig,
963
968
  fetchSlashCommands,
964
969
  flattenAssistantContent,
@@ -969,8 +974,10 @@ import {
969
974
  getAgentAccent,
970
975
  getCaptionsUrl,
971
976
  getCommandText,
977
+ getDynamicIcon,
972
978
  getEntityCaptionUrls,
973
979
  getEntityCaptionUrlsById,
980
+ getIconComponent,
974
981
  getMarqueeAppliedOffset,
975
982
  getMarqueeCloneTwin,
976
983
  getMarqueeTrackOffset,
@@ -993,6 +1000,7 @@ import {
993
1000
  mergeHistoryWithRealtime,
994
1001
  normalizeContent,
995
1002
  normalizeHistoricalMessageData,
1003
+ normalizeIconKey,
996
1004
  parseScrollAnchor,
997
1005
  parseWireCommandOverride,
998
1006
  pickReadableTextColor,
@@ -1010,12 +1018,14 @@ import {
1010
1018
  resolveCardDestination,
1011
1019
  resolveExternalNavigation,
1012
1020
  resolveFetchedCardHref,
1021
+ resolveIcon,
1013
1022
  resolveSourceIcon,
1014
1023
  resolveSourceRowCTA,
1015
1024
  resolveStatusTagProps,
1016
1025
  resolveTextSizeConfig,
1017
1026
  resolveTicketStatus,
1018
1027
  sanitizeTitleForChat,
1028
+ saveDataEnabled,
1019
1029
  splitStreamingBlocks,
1020
1030
  stripChatAttachmentMarkdown,
1021
1031
  stripSameOriginToPath,
@@ -1048,158 +1058,19 @@ import {
1048
1058
  useSseChatAdapter,
1049
1059
  useStableShallow,
1050
1060
  useUnifiedChat,
1061
+ useVideoOriginPreconnect,
1062
+ useVideoWarmup,
1051
1063
  usesCanonicalStatusStyle
1052
- } from "../chunk-7GEBFJT2.js";
1064
+ } from "../chunk-7VVFKJY5.js";
1053
1065
  import {
1054
1066
  errorMessage,
1055
1067
  scrollElementIntoView
1056
- } from "../chunk-CZ7Y7UG4.js";
1068
+ } from "../chunk-PDWVPI3S.js";
1057
1069
  import {
1058
1070
  usePathname,
1059
1071
  useRouter,
1060
1072
  useSearchParams
1061
1073
  } from "../chunk-GY4IZG22.js";
1062
- import {
1063
- ADMIN_CONTENT_CARD_GRID_CLASS,
1064
- AdminContentCard,
1065
- AdminContentCardGrid,
1066
- AdminContentCardSkeleton,
1067
- AgentMark,
1068
- AiPromptCard,
1069
- AiPromptCardSkeleton,
1070
- AvatarStack,
1071
- BlogCard,
1072
- BlogCardSkeleton,
1073
- BlogImagePlaceholder,
1074
- COMPACT_CARD_ICON_SLOT,
1075
- COMPACT_CARD_IMAGE_SLOT,
1076
- COMPACT_CARD_META_ROW,
1077
- COMPACT_CARD_META_ROW_BOX,
1078
- COMPACT_CARD_OUTER,
1079
- COMPACT_CARD_OUTER_STATIC,
1080
- COMPACT_CARD_ROW_FILLER,
1081
- COMPACT_CARD_SKELETON_IMAGE_SLOT,
1082
- COMPACT_CARD_SKELETON_OUTER,
1083
- COMPACT_CARD_SUBTITLE,
1084
- COMPACT_CARD_SUMMARY,
1085
- COMPACT_CARD_TEXT_COL,
1086
- COMPACT_CARD_TITLE,
1087
- COMPACT_CARD_TITLE_ROW,
1088
- CONTENT_CARD_FRAME_CLASS,
1089
- CONTENT_CARD_SKELETON_FRAME_CLASS,
1090
- CUSTOM_ITEM_ID,
1091
- Card,
1092
- CardContent,
1093
- CardDescription,
1094
- CardFooter,
1095
- CardHeader,
1096
- CardHorizontal,
1097
- CardHoverPlay,
1098
- CardTitle,
1099
- CaseStudyCard,
1100
- CaseStudyCardSkeleton,
1101
- ContentCardFrame,
1102
- CustomerInterviewCard,
1103
- CustomerInterviewCardSkeleton,
1104
- DEFAULT_VIDEO_BITES_TITLE,
1105
- DepartmentBadge,
1106
- EMPTY_AUTHOR_PLACEHOLDER,
1107
- EmployeeEntryBadge,
1108
- EmployeeEntryCard,
1109
- EmployeeEntryCardSkeleton,
1110
- EntityAuthorCard,
1111
- EntityIcon,
1112
- EntityMetadataAuthorCell,
1113
- EntityMetadataValueCell,
1114
- EntityPortraitCard,
1115
- FlamingoLogo as FlamingoLogo2,
1116
- FloatingTooltip,
1117
- HowIWorkCard,
1118
- HowIWorkCardSkeleton,
1119
- ICON_ALIASES,
1120
- ICON_OPTIONS,
1121
- ICON_REGISTRY,
1122
- IMAGE_FILE_ACCEPT,
1123
- ImageGalleryModal,
1124
- InteractiveCard,
1125
- InvestorUpdateCard,
1126
- InvestorUpdateCardSkeleton,
1127
- MUX_IMAGE_ORIGIN,
1128
- MUX_STREAM_ORIGIN,
1129
- Modal,
1130
- ModalContent,
1131
- ModalFooter,
1132
- ModalHeader,
1133
- ModalTitle,
1134
- OPENFRAME_CLASSIFICATIONS,
1135
- OnboardingGuideCard,
1136
- OnboardingGuideCardSkeleton,
1137
- PAGE_HEADING_CLASS,
1138
- PageHeading,
1139
- PaletteBadge,
1140
- PlatformBadge,
1141
- ProductReleaseCard,
1142
- ProductReleaseCardSkeleton,
1143
- ProgramCard,
1144
- ProgramCardSkeleton,
1145
- RoadmapCard,
1146
- RoadmapCardSkeleton,
1147
- RoadmapVoteButton,
1148
- SECTION_HEADING_CLASS,
1149
- SectionHeading,
1150
- SquareAvatar,
1151
- StatusBadge,
1152
- Tag,
1153
- TaskTypeIcon,
1154
- VIDEO_PLAYBACK_FAILED_EVENT,
1155
- Video,
1156
- VideoHoverPreviewSurface,
1157
- VideoPlayBadge,
1158
- VideoUnmuteGlyph,
1159
- WhatIShippedCard,
1160
- WhatIShippedCardSkeleton,
1161
- accentSentenceMarks,
1162
- buildAnchorProps,
1163
- buildProductReleaseCardProps,
1164
- computeIsNewTab,
1165
- decideNewTab,
1166
- defaultBuildProductReleaseCardProps,
1167
- extractYouTubeId,
1168
- formatBioText,
1169
- formatInvestorUpdatePeriod,
1170
- genBadgeBgOpacity,
1171
- generationTierFromLabel,
1172
- getDynamicIcon,
1173
- getIconComponent,
1174
- getProxiedImageUrl,
1175
- getProxiedImageUrl2,
1176
- getStatusColorScheme,
1177
- getTaskTypeLabel,
1178
- headingAccentClass,
1179
- hideOnError,
1180
- isCrossOriginUrl,
1181
- isOpenFrameClassification,
1182
- newTabAnchorAttrs,
1183
- normalizeIconKey,
1184
- programItemToStripProfile,
1185
- resolveIcon,
1186
- safeHref,
1187
- saveDataEnabled,
1188
- sortBitesByCreatedAtDesc,
1189
- sortBitesByFeaturedAtDesc,
1190
- statusBadgeVariants,
1191
- tagVariants,
1192
- toStripProfile,
1193
- useCoverImageFallback,
1194
- useVideoOriginPreconnect,
1195
- useVideoWarmup
1196
- } from "../chunk-FI6GMDO7.js";
1197
- import {
1198
- next_image_default
1199
- } from "../chunk-FBZMAPWO.js";
1200
- import {
1201
- getAppType
1202
- } from "../chunk-FXJ3WWUB.js";
1203
1074
  import {
1204
1075
  AboutIcon,
1205
1076
  AiRobotIcon,
@@ -1247,7 +1118,6 @@ import {
1247
1118
  FLAMINGO_LOGO_SVG_PATH,
1248
1119
  FLAMINGO_LOGO_VIEWBOX,
1249
1120
  FacebookIcon,
1250
- FigmaIcon,
1251
1121
  FileCheckIcon,
1252
1122
  FileTextIcon,
1253
1123
  FilterIcon,
@@ -1265,7 +1135,6 @@ import {
1265
1135
  HotelIcon,
1266
1136
  HubspotIcon,
1267
1137
  ITIcon,
1268
- ImageIcon,
1269
1138
  InfoCircleIcon,
1270
1139
  InstagramIcon,
1271
1140
  JumpInIcon,
@@ -1282,7 +1151,6 @@ import {
1282
1151
  MenuIcon,
1283
1152
  MessageCircleIcon,
1284
1153
  MiamiCyberGangLogo,
1285
- MiamiCyberGangLogoFaceOnly,
1286
1154
  MicrosoftIcon,
1287
1155
  MingoIcon,
1288
1156
  MinusCircleIcon,
@@ -1295,14 +1163,12 @@ import {
1295
1163
  NushellIcon,
1296
1164
  OPSIcon,
1297
1165
  OpenAiIcon,
1298
- OpenFrameLogo,
1299
1166
  OpenFrameText,
1300
1167
  OpenSourceIcon,
1301
1168
  OpenmspLogo,
1302
1169
  OrganizationsIcon,
1303
1170
  PackageIcon,
1304
1171
  PatchPolicyIcon,
1305
- PlayFilledIcon,
1306
1172
  PlusCircleIcon,
1307
1173
  PodbeanIcon,
1308
1174
  PoliciesIcon,
@@ -1336,8 +1202,6 @@ import {
1336
1202
  SunIcon,
1337
1203
  TableViewIcon,
1338
1204
  TelegramIcon,
1339
- ThumbsDownIcon,
1340
- ThumbsUpIcon,
1341
1205
  TransparentTrustedIcon,
1342
1206
  TrustpilotIcon,
1343
1207
  UserIcon,
@@ -1346,7 +1210,6 @@ import {
1346
1210
  VendorDirectoryIcon,
1347
1211
  VendorShowcaseMainIcon,
1348
1212
  VendorsIcon,
1349
- VolumeOffFilledIcon,
1350
1213
  WhatsAppIcon,
1351
1214
  WindowsIcon,
1352
1215
  XIcon,
@@ -1354,9 +1217,143 @@ import {
1354
1217
  YouTubeIcon,
1355
1218
  getDeviceTypeIcon,
1356
1219
  renderSvgIcon
1357
- } from "../chunk-N45D4ZXQ.js";
1358
- import "../chunk-NCPTID44.js";
1220
+ } from "../chunk-2YXVWZVF.js";
1221
+ import "../chunk-Z2VNQQ74.js";
1359
1222
  import "../chunk-OSIKGEBU.js";
1223
+ import {
1224
+ ADMIN_CONTENT_CARD_GRID_CLASS,
1225
+ AdminContentCard,
1226
+ AdminContentCardGrid,
1227
+ AdminContentCardSkeleton,
1228
+ AiPromptCard,
1229
+ AiPromptCardSkeleton,
1230
+ AvatarStack,
1231
+ BlogCard,
1232
+ BlogCardSkeleton,
1233
+ BlogImagePlaceholder,
1234
+ COMPACT_CARD_ICON_SLOT,
1235
+ COMPACT_CARD_IMAGE_SLOT,
1236
+ COMPACT_CARD_META_ROW,
1237
+ COMPACT_CARD_META_ROW_BOX,
1238
+ COMPACT_CARD_OUTER,
1239
+ COMPACT_CARD_OUTER_STATIC,
1240
+ COMPACT_CARD_ROW_FILLER,
1241
+ COMPACT_CARD_SKELETON_IMAGE_SLOT,
1242
+ COMPACT_CARD_SKELETON_OUTER,
1243
+ COMPACT_CARD_SUBTITLE,
1244
+ COMPACT_CARD_SUMMARY,
1245
+ COMPACT_CARD_TEXT_COL,
1246
+ COMPACT_CARD_TITLE,
1247
+ COMPACT_CARD_TITLE_ROW,
1248
+ CONTENT_CARD_FRAME_CLASS,
1249
+ CONTENT_CARD_SKELETON_FRAME_CLASS,
1250
+ CUSTOM_ITEM_ID,
1251
+ Card,
1252
+ CardContent,
1253
+ CardDescription,
1254
+ CardFooter,
1255
+ CardHeader,
1256
+ CardHorizontal,
1257
+ CardHoverPlay,
1258
+ CardTitle,
1259
+ CaseStudyCard,
1260
+ CaseStudyCardSkeleton,
1261
+ ContentCardFrame,
1262
+ CustomerInterviewCard,
1263
+ CustomerInterviewCardSkeleton,
1264
+ DEFAULT_VIDEO_BITES_TITLE,
1265
+ DepartmentBadge,
1266
+ EMPTY_AUTHOR_PLACEHOLDER,
1267
+ EmployeeEntryBadge,
1268
+ EmployeeEntryCard,
1269
+ EmployeeEntryCardSkeleton,
1270
+ EntityAuthorCard,
1271
+ EntityMetadataAuthorCell,
1272
+ EntityMetadataValueCell,
1273
+ EntityPortraitCard,
1274
+ FlamingoLogo as FlamingoLogo2,
1275
+ FloatingTooltip,
1276
+ HowIWorkCard,
1277
+ HowIWorkCardSkeleton,
1278
+ IMAGE_FILE_ACCEPT,
1279
+ ImageGalleryModal,
1280
+ InteractiveCard,
1281
+ InvestorUpdateCard,
1282
+ InvestorUpdateCardSkeleton,
1283
+ Modal,
1284
+ ModalContent,
1285
+ ModalFooter,
1286
+ ModalHeader,
1287
+ ModalTitle,
1288
+ OPENFRAME_CLASSIFICATIONS,
1289
+ OnboardingGuideCard,
1290
+ OnboardingGuideCardSkeleton,
1291
+ PAGE_HEADING_CLASS,
1292
+ PageHeading,
1293
+ PaletteBadge,
1294
+ PlatformBadge,
1295
+ ProductReleaseCard,
1296
+ ProductReleaseCardSkeleton,
1297
+ ProgramCard,
1298
+ ProgramCardSkeleton,
1299
+ RoadmapCard,
1300
+ RoadmapCardSkeleton,
1301
+ RoadmapVoteButton,
1302
+ SECTION_HEADING_CLASS,
1303
+ SectionHeading,
1304
+ SquareAvatar,
1305
+ StatusBadge,
1306
+ Tag,
1307
+ TaskTypeIcon,
1308
+ VideoPlayBadge,
1309
+ VideoUnmuteGlyph,
1310
+ WhatIShippedCard,
1311
+ WhatIShippedCardSkeleton,
1312
+ accentSentenceMarks,
1313
+ buildAnchorProps,
1314
+ buildProductReleaseCardProps,
1315
+ computeIsNewTab,
1316
+ decideNewTab,
1317
+ defaultBuildProductReleaseCardProps,
1318
+ formatBioText,
1319
+ formatInvestorUpdatePeriod,
1320
+ genBadgeBgOpacity,
1321
+ generationTierFromLabel,
1322
+ getProxiedImageUrl,
1323
+ getProxiedImageUrl2,
1324
+ getStatusColorScheme,
1325
+ getTaskTypeLabel,
1326
+ headingAccentClass,
1327
+ hideOnError,
1328
+ isCrossOriginUrl,
1329
+ isOpenFrameClassification,
1330
+ newTabAnchorAttrs,
1331
+ programItemToStripProfile,
1332
+ safeHref,
1333
+ sortBitesByCreatedAtDesc,
1334
+ sortBitesByFeaturedAtDesc,
1335
+ statusBadgeVariants,
1336
+ tagVariants,
1337
+ toStripProfile,
1338
+ useCoverImageFallback
1339
+ } from "../chunk-CH5232HV.js";
1340
+ import {
1341
+ next_image_default
1342
+ } from "../chunk-FBZMAPWO.js";
1343
+ import {
1344
+ getAppType
1345
+ } from "../chunk-NDESEPW5.js";
1346
+ import {
1347
+ FigmaIcon,
1348
+ ImageIcon,
1349
+ MiamiCyberGangLogoFaceOnly,
1350
+ OpenFrameLogo,
1351
+ PlayFilledIcon,
1352
+ ThumbsDownIcon,
1353
+ ThumbsUpIcon,
1354
+ VolumeOffFilledIcon
1355
+ } from "../chunk-O43V3EOS.js";
1356
+ import "../chunk-LMBC5FFP.js";
1360
1357
  import {
1361
1358
  useChatRuntime
1362
1359
  } from "../chunk-E4ABZWTJ.js";
@@ -2512,6 +2509,75 @@ function FilterChip({
2512
2509
  );
2513
2510
  }
2514
2511
 
2512
+ // src/components/footer.tsx
2513
+ import { Suspense } from "react";
2514
+ import { Fragment as Fragment3, jsx as jsx12, jsxs as jsxs10 } from "react/jsx-runtime";
2515
+ function NavLinkSkeleton() {
2516
+ return /* @__PURE__ */ jsx12(Skeleton, { className: "h-5 w-20 md:h-6 md:w-24" });
2517
+ }
2518
+ function Footer({ config, renderLink }) {
2519
+ if (!config) {
2520
+ console.warn("Footer: No config provided");
2521
+ return null;
2522
+ }
2523
+ return /* @__PURE__ */ jsx12(UniversalFooter, { config, renderLink });
2524
+ }
2525
+ function UniversalFooter({
2526
+ config,
2527
+ renderLink
2528
+ }) {
2529
+ const defaultRenderLink = (link) => /* @__PURE__ */ jsx12(
2530
+ "a",
2531
+ {
2532
+ href: link.href,
2533
+ className: "text-md md:text-md font-body font-medium leading-[1.33] text-ods-text-primary transition-colors hover:text-ods-accent",
2534
+ children: link.label
2535
+ }
2536
+ );
2537
+ const linkRenderer = renderLink || defaultRenderLink;
2538
+ return /* @__PURE__ */ jsxs10(
2539
+ "footer",
2540
+ {
2541
+ 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`,
2542
+ children: [
2543
+ /* @__PURE__ */ jsxs10("div", { className: "grid w-full grid-cols-2 items-start gap-6 md:gap-8 lg:grid-cols-4", children: [
2544
+ /* @__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: [
2545
+ /* @__PURE__ */ jsxs10("div", { className: "flex items-center gap-2", children: [
2546
+ config.logo && /* @__PURE__ */ jsx12(Suspense, { fallback: /* @__PURE__ */ jsx12(Skeleton, { className: "h-8 w-8" }), children: config.logo }),
2547
+ config.nameElement || /* @__PURE__ */ jsx12("span", { className: "whitespace-nowrap font-heading text-heading-5 font-bold text-ods-text-primary", children: config.name })
2548
+ ] }),
2549
+ !config.moveDescriptionToRight && /* @__PURE__ */ jsxs10(Fragment3, { children: [
2550
+ /* @__PURE__ */ jsx12("p", { className: "font-body text-sm font-medium leading-[1.43] text-ods-text-primary md:text-sm", children: config.description }),
2551
+ config.belowDescriptionContent && /* @__PURE__ */ jsx12(Suspense, { fallback: /* @__PURE__ */ jsx12(Skeleton, { className: "h-8 w-full" }), children: config.belowDescriptionContent }),
2552
+ !config.hideSocialRow && /* @__PURE__ */ jsx12(
2553
+ SocialIconRow,
2554
+ {
2555
+ className: "pt-2",
2556
+ links: config.social ? Object.entries(config.social).filter(([_, href]) => href).map(([platform, href]) => ({ platform, href })) : void 0
2557
+ }
2558
+ )
2559
+ ] }),
2560
+ config.moveDescriptionToRight && config.keepBelowDescriptionLeft && config.belowDescriptionContent && /* @__PURE__ */ jsx12(Suspense, { fallback: /* @__PURE__ */ jsx12(Skeleton, { className: "h-8 w-full" }), children: config.belowDescriptionContent })
2561
+ ] }),
2562
+ config.sections.map((section, index) => /* @__PURE__ */ jsxs10("div", { className: "col-span-1 flex flex-col items-start gap-3 text-left", children: [
2563
+ /* @__PURE__ */ jsx12("h3", { className: "tracking-[-0.02em] text-ods-text-muted text-h5", children: section.title }),
2564
+ /* @__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)) })
2565
+ ] }, index)),
2566
+ 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 }) }),
2567
+ (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: [
2568
+ config.moveDescriptionToRight && /* @__PURE__ */ jsxs10(Fragment3, { children: [
2569
+ /* @__PURE__ */ jsx12("p", { className: "font-body text-sm font-medium leading-[1.43] text-ods-text-primary md:text-sm", children: config.description }),
2570
+ config.belowDescriptionContent && !config.keepBelowDescriptionLeft && /* @__PURE__ */ jsx12(Suspense, { fallback: /* @__PURE__ */ jsx12(Skeleton, { className: "h-8 w-full" }), children: config.belowDescriptionContent })
2571
+ ] }),
2572
+ config.rightColumnContent && /* @__PURE__ */ jsx12(Suspense, { fallback: /* @__PURE__ */ jsx12(Skeleton, { className: "h-32 w-full" }), children: config.rightColumnContent })
2573
+ ] })
2574
+ ] }),
2575
+ /* @__PURE__ */ jsx12("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: copyrightLine(config.legalName) })
2576
+ ]
2577
+ }
2578
+ );
2579
+ }
2580
+
2515
2581
  // src/components/unified-filter-logic.tsx
2516
2582
  import { useTransition } from "react";
2517
2583
 
@@ -2818,10 +2884,22 @@ var blogFilterConfig = {
2818
2884
  }
2819
2885
  };
2820
2886
 
2887
+ // src/components/footer-waitlist-button.tsx
2888
+ import { useCallback } from "react";
2889
+ import { jsx as jsx13 } from "react/jsx-runtime";
2890
+ function FooterWaitlistButton({ className }) {
2891
+ const router = useRouter();
2892
+ const runtime = useChatRuntime();
2893
+ const handleClick = useCallback(() => {
2894
+ executeNavigationImperative({ runtime, href: "/waitlist#top", fallbackNavigate: router.push });
2895
+ }, [router, runtime]);
2896
+ return /* @__PURE__ */ jsx13(Button, { onClick: handleClick, className, leftIcon: /* @__PURE__ */ jsx13(OpenFrameLogo, {}), children: "Join Waitlist" });
2897
+ }
2898
+
2821
2899
  // src/components/hero-image-uploader.tsx
2822
2900
  import { Loader2, Image as ImageIcon2, Upload, X as X3 } from "lucide-react";
2823
2901
  import { useRef, useState as useState4 } from "react";
2824
- import { Fragment as Fragment3, jsx as jsx12, jsxs as jsxs10 } from "react/jsx-runtime";
2902
+ import { Fragment as Fragment4, jsx as jsx14, jsxs as jsxs11 } from "react/jsx-runtime";
2825
2903
  function readUploadedUrl(payload) {
2826
2904
  if (typeof payload !== "object" || payload === null) return null;
2827
2905
  if ("data" in payload) {
@@ -2924,53 +3002,53 @@ function HeroImageUploader({
2924
3002
  onChange(void 0);
2925
3003
  };
2926
3004
  const heightStyle = typeof height === "number" ? `${height}px` : height;
2927
- return /* @__PURE__ */ jsxs10("div", { className: "h-full max-h-full min-h-[300px] w-full space-y-2", children: [
2928
- imageUrl ? /* @__PURE__ */ jsxs10(
3005
+ return /* @__PURE__ */ jsxs11("div", { className: "h-full max-h-full min-h-[300px] w-full space-y-2", children: [
3006
+ imageUrl ? /* @__PURE__ */ jsxs11(
2929
3007
  "div",
2930
3008
  {
2931
3009
  className: "group relative flex aspect-square h-auto w-full items-center justify-center overflow-hidden md:aspect-auto md:h-full",
2932
3010
  style: { height: heightStyle },
2933
3011
  children: [
2934
- /* @__PURE__ */ jsx12(next_image_default, { src: imageUrl, className: `object-${objectFit}`, alt: "Cover", fill: true, sizes: "100vw", unoptimized: true }),
2935
- /* @__PURE__ */ jsxs10("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: [
2936
- showReplaceButton && /* @__PURE__ */ jsx12(
3012
+ /* @__PURE__ */ jsx14(next_image_default, { src: imageUrl, className: `object-${objectFit}`, alt: "Cover", fill: true, sizes: "100vw", unoptimized: true }),
3013
+ /* @__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: [
3014
+ showReplaceButton && /* @__PURE__ */ jsx14(
2937
3015
  Button,
2938
3016
  {
2939
3017
  variant: "outline",
2940
3018
  size: "icon",
2941
3019
  onClick: openDialog,
2942
3020
  className: "h-12 w-12 rounded-full bg-white text-black hover:bg-gray-100",
2943
- children: /* @__PURE__ */ jsx12(Upload, { className: "h-5 w-5" })
3021
+ children: /* @__PURE__ */ jsx14(Upload, { className: "h-5 w-5" })
2944
3022
  }
2945
3023
  ),
2946
- /* @__PURE__ */ jsx12(
3024
+ /* @__PURE__ */ jsx14(
2947
3025
  Button,
2948
3026
  {
2949
3027
  variant: "outline",
2950
3028
  size: "icon",
2951
3029
  onClick: () => handleRemove(),
2952
3030
  className: "h-12 w-12 rounded-full bg-white text-black hover:bg-gray-100",
2953
- children: /* @__PURE__ */ jsx12(X3, { className: "h-5 w-5" })
3031
+ children: /* @__PURE__ */ jsx14(X3, { className: "h-5 w-5" })
2954
3032
  }
2955
3033
  )
2956
3034
  ] })
2957
3035
  ]
2958
3036
  }
2959
- ) : /* @__PURE__ */ jsx12(
3037
+ ) : /* @__PURE__ */ jsx14(
2960
3038
  "div",
2961
3039
  {
2962
3040
  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`,
2963
3041
  style: { height: heightStyle },
2964
3042
  onClick: openDialog,
2965
- children: uploading ? /* @__PURE__ */ jsx12(Loader2, { className: "h-8 w-8 animate-spin text-ods-accent" }) : /* @__PURE__ */ jsxs10(Fragment3, { children: [
2966
- /* @__PURE__ */ jsx12(ImageIcon2, { className: "h-12 w-12 text-ods-text-secondary" }),
2967
- /* @__PURE__ */ jsx12("span", { className: "mt-2 text-ods-text-primary text-h6", children: "Upload cover image" }),
2968
- /* @__PURE__ */ jsx12("span", { className: "mt-1 text-ods-text-secondary text-h6", children: "Click to upload or drag and drop" }),
2969
- /* @__PURE__ */ jsx12("span", { className: "text-ods-text-secondary text-h6", children: "PNG, JPEG, WebP, GIF up to 5MB" })
3043
+ children: uploading ? /* @__PURE__ */ jsx14(Loader2, { className: "h-8 w-8 animate-spin text-ods-accent" }) : /* @__PURE__ */ jsxs11(Fragment4, { children: [
3044
+ /* @__PURE__ */ jsx14(ImageIcon2, { className: "h-12 w-12 text-ods-text-secondary" }),
3045
+ /* @__PURE__ */ jsx14("span", { className: "mt-2 text-ods-text-primary text-h6", children: "Upload cover image" }),
3046
+ /* @__PURE__ */ jsx14("span", { className: "mt-1 text-ods-text-secondary text-h6", children: "Click to upload or drag and drop" }),
3047
+ /* @__PURE__ */ jsx14("span", { className: "text-ods-text-secondary text-h6", children: "PNG, JPEG, WebP, GIF up to 5MB" })
2970
3048
  ] })
2971
3049
  }
2972
3050
  ),
2973
- /* @__PURE__ */ jsx12("input", { ref: inputRef, type: "file", accept: IMAGE_FILE_ACCEPT, onChange: handleSelect, className: "hidden" })
3051
+ /* @__PURE__ */ jsx14("input", { ref: inputRef, type: "file", accept: IMAGE_FILE_ACCEPT, onChange: handleSelect, className: "hidden" })
2974
3052
  ] });
2975
3053
  }
2976
3054
 
@@ -2989,13 +3067,13 @@ var CommunityIcon2 = MessageSquare;
2989
3067
  var CompareIcon2 = GitCompare;
2990
3068
 
2991
3069
  // src/components/icons-block.tsx
2992
- import { jsx as jsx13, jsxs as jsxs11 } from "react/jsx-runtime";
3070
+ import { jsx as jsx15, jsxs as jsxs12 } from "react/jsx-runtime";
2993
3071
  var SunIcon2 = Sun;
2994
3072
  var MoonIcon2 = Moon;
2995
3073
  var CheckCircleIcon3 = CheckCircle;
2996
3074
  var GitHubIcon2 = Github;
2997
3075
  var PlusCircleIcon2 = PlusCircle;
2998
- var OpenmspLogo2 = () => /* @__PURE__ */ jsx13("div", { children: "Logo" });
3076
+ var OpenmspLogo2 = () => /* @__PURE__ */ jsx15("div", { children: "Logo" });
2999
3077
  var availableIcons = [
3000
3078
  VendorDirectoryIcon2,
3001
3079
  OpenSourceIcon2,
@@ -3058,17 +3136,17 @@ function ResponsiveIconsBlock({ loading = false }) {
3058
3136
  return iconGrid[row]?.[col] || availableIcons[0];
3059
3137
  };
3060
3138
  if (loading || iconGrid.length === 0) {
3061
- return /* @__PURE__ */ jsx13(
3139
+ return /* @__PURE__ */ jsx15(
3062
3140
  "div",
3063
3141
  {
3064
3142
  className: "relative h-[80px] w-full overflow-hidden bg-[#1A1A1A] md:h-[112px]",
3065
3143
  role: "presentation",
3066
3144
  "aria-hidden": "true",
3067
- children: /* @__PURE__ */ jsx13("div", { className: "absolute inset-0 animate-pulse bg-[#2A2A2A]/60" })
3145
+ children: /* @__PURE__ */ jsx15("div", { className: "absolute inset-0 animate-pulse bg-[#2A2A2A]/60" })
3068
3146
  }
3069
3147
  );
3070
3148
  }
3071
- return /* @__PURE__ */ jsxs11(
3149
+ return /* @__PURE__ */ jsxs12(
3072
3150
  "div",
3073
3151
  {
3074
3152
  className: "relative z-10 h-[80px] w-full overflow-hidden bg-[#1A1A1A] md:h-[112px]",
@@ -3076,14 +3154,14 @@ function ResponsiveIconsBlock({ loading = false }) {
3076
3154
  role: "presentation",
3077
3155
  "aria-hidden": "true",
3078
3156
  children: [
3079
- /* @__PURE__ */ jsx13("style", { children: `
3157
+ /* @__PURE__ */ jsx15("style", { children: `
3080
3158
  .icons-block svg,
3081
3159
  .icons-block svg * {
3082
3160
  filter: grayscale(100%) brightness(0) invert(1) brightness(0.4) !important;
3083
3161
  fill: currentColor !important;
3084
3162
  }
3085
3163
  ` }),
3086
- /* @__PURE__ */ jsx13(
3164
+ /* @__PURE__ */ jsx15(
3087
3165
  "div",
3088
3166
  {
3089
3167
  className: "icons-block grid h-full w-full",
@@ -3095,7 +3173,7 @@ function ResponsiveIconsBlock({ loading = false }) {
3095
3173
  const col = idx % displayColumns;
3096
3174
  const row = Math.floor(idx / displayColumns);
3097
3175
  const IconComponent = getIconForIndex(idx);
3098
- return /* @__PURE__ */ jsx13(
3176
+ return /* @__PURE__ */ jsx15(
3099
3177
  "div",
3100
3178
  {
3101
3179
  className: "flex h-full w-full items-center justify-center",
@@ -3108,7 +3186,7 @@ function ResponsiveIconsBlock({ loading = false }) {
3108
3186
  boxSizing: "border-box"
3109
3187
  },
3110
3188
  role: "presentation",
3111
- children: /* @__PURE__ */ jsx13(IconComponent, { width: 16, height: 16, className: "text-[#666666] md:h-5 md:w-5", "aria-hidden": "true" })
3189
+ children: /* @__PURE__ */ jsx15(IconComponent, { width: 16, height: 16, className: "text-[#666666] md:h-5 md:w-5", "aria-hidden": "true" })
3112
3190
  },
3113
3191
  idx
3114
3192
  );
@@ -3122,9 +3200,9 @@ function ResponsiveIconsBlock({ loading = false }) {
3122
3200
 
3123
3201
  // src/components/image-cropper.tsx
3124
3202
  import { Check, RotateCcw } from "lucide-react";
3125
- import { useCallback, useState as useState6 } from "react";
3203
+ import { useCallback as useCallback2, useState as useState6 } from "react";
3126
3204
  import Cropper from "react-easy-crop";
3127
- import { jsx as jsx14, jsxs as jsxs12 } from "react/jsx-runtime";
3205
+ import { jsx as jsx16, jsxs as jsxs13 } from "react/jsx-runtime";
3128
3206
  function loadImage(src) {
3129
3207
  return new Promise((resolve, reject) => {
3130
3208
  const img = new Image();
@@ -3147,11 +3225,11 @@ var ImageCropper = ({
3147
3225
  const [zoom, setZoom] = useState6(1);
3148
3226
  const [rotation, setRotation] = useState6(0);
3149
3227
  const [croppedAreaPixels, setCroppedAreaPixels] = useState6(null);
3150
- const onCropComplete = useCallback((_croppedAreaPercentages, areaPixels) => {
3228
+ const onCropComplete = useCallback2((_croppedAreaPercentages, areaPixels) => {
3151
3229
  setCroppedAreaPixels(areaPixels);
3152
3230
  }, []);
3153
3231
  const checkerBg = "bg-[length:16px_16px] bg-[linear-gradient(45deg,transparent_25%,#2a2a2a_25%,#2a2a2a_75%,transparent_75%,transparent),linear-gradient(45deg,#2a2a2a_25%,transparent_25%,transparent_75%,#2a2a2a_75%,#2a2a2a)]";
3154
- const exportCrop = useCallback(async () => {
3232
+ const exportCrop = useCallback2(async () => {
3155
3233
  if (!croppedAreaPixels) return void 0;
3156
3234
  const img = await loadImage(src);
3157
3235
  const canvas = document.createElement("canvas");
@@ -3211,7 +3289,7 @@ var ImageCropper = ({
3211
3289
  onCancel?.();
3212
3290
  }
3213
3291
  };
3214
- return /* @__PURE__ */ jsxs12(
3292
+ return /* @__PURE__ */ jsxs13(
3215
3293
  "div",
3216
3294
  {
3217
3295
  className: cn("relative flex w-full flex-col gap-4", className),
@@ -3219,7 +3297,7 @@ var ImageCropper = ({
3219
3297
  tabIndex: 0,
3220
3298
  "aria-label": "Image cropper",
3221
3299
  children: [
3222
- /* @__PURE__ */ jsx14("div", { className: cn("relative aspect-square w-full overflow-hidden rounded-md md:aspect-video", checkerBg), children: /* @__PURE__ */ jsx14(
3300
+ /* @__PURE__ */ jsx16("div", { className: cn("relative aspect-square w-full overflow-hidden rounded-md md:aspect-video", checkerBg), children: /* @__PURE__ */ jsx16(
3223
3301
  Cropper,
3224
3302
  {
3225
3303
  image: src,
@@ -3236,10 +3314,10 @@ var ImageCropper = ({
3236
3314
  objectFit: "contain"
3237
3315
  }
3238
3316
  ) }),
3239
- /* @__PURE__ */ jsxs12("div", { className: "flex flex-col gap-4", children: [
3240
- /* @__PURE__ */ jsxs12("div", { className: "flex items-center gap-3", children: [
3241
- /* @__PURE__ */ jsx14("span", { className: "min-w-[60px] text-h6", children: "Zoom" }),
3242
- /* @__PURE__ */ jsx14(
3317
+ /* @__PURE__ */ jsxs13("div", { className: "flex flex-col gap-4", children: [
3318
+ /* @__PURE__ */ jsxs13("div", { className: "flex items-center gap-3", children: [
3319
+ /* @__PURE__ */ jsx16("span", { className: "min-w-[60px] text-h6", children: "Zoom" }),
3320
+ /* @__PURE__ */ jsx16(
3243
3321
  Slider,
3244
3322
  {
3245
3323
  min: 1,
@@ -3252,9 +3330,9 @@ var ImageCropper = ({
3252
3330
  }
3253
3331
  )
3254
3332
  ] }),
3255
- /* @__PURE__ */ jsxs12("div", { className: "flex items-center gap-3", children: [
3256
- /* @__PURE__ */ jsx14("span", { className: "min-w-[60px] text-h6", children: "Rotate" }),
3257
- /* @__PURE__ */ jsx14(
3333
+ /* @__PURE__ */ jsxs13("div", { className: "flex items-center gap-3", children: [
3334
+ /* @__PURE__ */ jsx16("span", { className: "min-w-[60px] text-h6", children: "Rotate" }),
3335
+ /* @__PURE__ */ jsx16(
3258
3336
  Slider,
3259
3337
  {
3260
3338
  min: 0,
@@ -3266,12 +3344,12 @@ var ImageCropper = ({
3266
3344
  className: "flex-1"
3267
3345
  }
3268
3346
  ),
3269
- /* @__PURE__ */ jsx14(Button, { variant: "outline", size: "icon", onClick: () => setRotation(0), "aria-label": "Reset rotation", children: /* @__PURE__ */ jsx14(RotateCcw, { className: "h-4 w-4" }) })
3347
+ /* @__PURE__ */ jsx16(Button, { variant: "outline", size: "icon", onClick: () => setRotation(0), "aria-label": "Reset rotation", children: /* @__PURE__ */ jsx16(RotateCcw, { className: "h-4 w-4" }) })
3270
3348
  ] })
3271
3349
  ] }),
3272
- /* @__PURE__ */ jsxs12("div", { className: "mt-2 flex justify-end gap-2", children: [
3273
- onCancel && /* @__PURE__ */ jsx14(Button, { variant: "outline", onClick: onCancel, "aria-label": "Cancel crop", children: "Cancel" }),
3274
- /* @__PURE__ */ jsx14(
3350
+ /* @__PURE__ */ jsxs13("div", { className: "mt-2 flex justify-end gap-2", children: [
3351
+ onCancel && /* @__PURE__ */ jsx16(Button, { variant: "outline", onClick: onCancel, "aria-label": "Cancel crop", children: "Cancel" }),
3352
+ /* @__PURE__ */ jsx16(
3275
3353
  Button,
3276
3354
  {
3277
3355
  variant: "accent",
@@ -3279,7 +3357,7 @@ var ImageCropper = ({
3279
3357
  const result = await exportCrop();
3280
3358
  if (result) onComplete(result);
3281
3359
  },
3282
- leftIcon: /* @__PURE__ */ jsx14(Check, { className: "h-4 w-4" }),
3360
+ leftIcon: /* @__PURE__ */ jsx16(Check, { className: "h-4 w-4" }),
3283
3361
  "aria-label": "Apply crop",
3284
3362
  children: "Apply"
3285
3363
  }
@@ -3291,19 +3369,19 @@ var ImageCropper = ({
3291
3369
  };
3292
3370
 
3293
3371
  // src/components/metric-value.tsx
3294
- import { jsx as jsx15, jsxs as jsxs13 } from "react/jsx-runtime";
3372
+ import { jsx as jsx17, jsxs as jsxs14 } from "react/jsx-runtime";
3295
3373
  function MetricValue({ value, label, className }) {
3296
- return /* @__PURE__ */ jsxs13("div", { className: cn("flex items-end gap-2 whitespace-nowrap text-ods-text-primary text-h4", className), children: [
3374
+ return /* @__PURE__ */ jsxs14("div", { className: cn("flex items-end gap-2 whitespace-nowrap text-ods-text-primary text-h4", className), children: [
3297
3375
  value,
3298
- /* @__PURE__ */ jsx15("span", { className: "text-ods-text-secondary text-h6", children: label })
3376
+ /* @__PURE__ */ jsx17("span", { className: "text-ods-text-secondary text-h6", children: label })
3299
3377
  ] });
3300
3378
  }
3301
3379
 
3302
3380
  // src/components/msp-display.tsx
3303
- import { jsx as jsx16, jsxs as jsxs14 } from "react/jsx-runtime";
3381
+ import { jsx as jsx18, jsxs as jsxs15 } from "react/jsx-runtime";
3304
3382
  function MSPDisplay({ name, logoUrl, size = 40, className }) {
3305
- return /* @__PURE__ */ jsxs14("div", { className: cn("flex min-w-0 items-center gap-2", className), children: [
3306
- /* @__PURE__ */ jsx16(
3383
+ return /* @__PURE__ */ jsxs15("div", { className: cn("flex min-w-0 items-center gap-2", className), children: [
3384
+ /* @__PURE__ */ jsx18(
3307
3385
  SquareAvatar,
3308
3386
  {
3309
3387
  src: logoUrl ? getProxiedImageUrl(logoUrl) || logoUrl : void 0,
@@ -3312,16 +3390,16 @@ function MSPDisplay({ name, logoUrl, size = 40, className }) {
3312
3390
  sizePx: size
3313
3391
  }
3314
3392
  ),
3315
- /* @__PURE__ */ jsx16("h2", { className: "truncate pl-2", children: name })
3393
+ /* @__PURE__ */ jsx18("h2", { className: "truncate pl-2", children: name })
3316
3394
  ] });
3317
3395
  }
3318
3396
 
3319
3397
  // src/components/open-source-features.tsx
3320
3398
  import { Terminal, DollarSign as DollarSign2, Network, Users as Users2 } from "lucide-react";
3321
- import { jsx as jsx17, jsxs as jsxs15 } from "react/jsx-runtime";
3399
+ import { jsx as jsx19, jsxs as jsxs16 } from "react/jsx-runtime";
3322
3400
 
3323
3401
  // src/components/pricing-display.tsx
3324
- import { jsx as jsx18, jsxs as jsxs16 } from "react/jsx-runtime";
3402
+ import { jsx as jsx20, jsxs as jsxs17 } from "react/jsx-runtime";
3325
3403
  var PRICING_STYLES = {
3326
3404
  // Comparison table style (current default)
3327
3405
  comparison: {
@@ -3357,11 +3435,11 @@ function PricingDisplay({
3357
3435
  styleConfig = PRICING_STYLES.comparison
3358
3436
  }) {
3359
3437
  if (typeof pricing === "string") {
3360
- return /* @__PURE__ */ jsx18(LegacyPricingDisplay, { pricing, className, styleConfig });
3438
+ return /* @__PURE__ */ jsx20(LegacyPricingDisplay, { pricing, className, styleConfig });
3361
3439
  }
3362
3440
  const pricingArray = Array.isArray(pricing) ? pricing : [pricing];
3363
3441
  if (!pricingArray || pricingArray.length === 0) {
3364
- return /* @__PURE__ */ jsx18(
3442
+ return /* @__PURE__ */ jsx20(
3365
3443
  "span",
3366
3444
  {
3367
3445
  className: `${styleConfig.priceTextColor} ${styleConfig.priceTextSize} ${styleConfig.fontFamily} ${className}`,
@@ -3373,9 +3451,9 @@ function PricingDisplay({
3373
3451
  const item = pricingArray[0];
3374
3452
  const price = item.ranges?.[0]?.min || 0;
3375
3453
  const unit = item.ranges?.[0]?.unit;
3376
- return /* @__PURE__ */ jsxs16("span", { className: `${styleConfig.fontFamily} ${className}`, children: [
3377
- /* @__PURE__ */ jsx18("span", { className: `${styleConfig.priceTextColor} ${styleConfig.priceTextSize}`, children: formatPriceValue(price, styleConfig.showTildePrefix) }),
3378
- unit && /* @__PURE__ */ jsxs16("span", { className: `${styleConfig.secondaryTextColor} ${styleConfig.secondaryTextSize}`, children: [
3454
+ return /* @__PURE__ */ jsxs17("span", { className: `${styleConfig.fontFamily} ${className}`, children: [
3455
+ /* @__PURE__ */ jsx20("span", { className: `${styleConfig.priceTextColor} ${styleConfig.priceTextSize}`, children: formatPriceValue(price, styleConfig.showTildePrefix) }),
3456
+ unit && /* @__PURE__ */ jsxs17("span", { className: `${styleConfig.secondaryTextColor} ${styleConfig.secondaryTextSize}`, children: [
3379
3457
  "/",
3380
3458
  unit
3381
3459
  ] })
@@ -3385,9 +3463,9 @@ function PricingDisplay({
3385
3463
  (item) => formatPriceValue(item.ranges?.[0]?.min || 0, styleConfig.showTildePrefix)
3386
3464
  );
3387
3465
  const itemWithUnit = pricingArray.find((item) => item.ranges?.[0]?.unit);
3388
- return /* @__PURE__ */ jsxs16("span", { className: `${styleConfig.fontFamily} ${className}`, children: [
3389
- /* @__PURE__ */ jsx18("span", { className: `${styleConfig.priceTextColor} ${styleConfig.priceTextSize}`, children: priceValues.join(" | ") }),
3390
- itemWithUnit && itemWithUnit.ranges?.[0]?.unit && /* @__PURE__ */ jsxs16("span", { className: `${styleConfig.secondaryTextColor} ${styleConfig.secondaryTextSize}`, children: [
3466
+ return /* @__PURE__ */ jsxs17("span", { className: `${styleConfig.fontFamily} ${className}`, children: [
3467
+ /* @__PURE__ */ jsx20("span", { className: `${styleConfig.priceTextColor} ${styleConfig.priceTextSize}`, children: priceValues.join(" | ") }),
3468
+ itemWithUnit && itemWithUnit.ranges?.[0]?.unit && /* @__PURE__ */ jsxs17("span", { className: `${styleConfig.secondaryTextColor} ${styleConfig.secondaryTextSize}`, children: [
3391
3469
  "/",
3392
3470
  itemWithUnit.ranges[0].unit
3393
3471
  ] })
@@ -3408,7 +3486,7 @@ function LegacyPricingDisplay({
3408
3486
  styleConfig = PRICING_STYLES.comparison
3409
3487
  }) {
3410
3488
  if (pricing === "Free" || pricing === "No pricing data") {
3411
- return /* @__PURE__ */ jsx18(
3489
+ return /* @__PURE__ */ jsx20(
3412
3490
  "span",
3413
3491
  {
3414
3492
  className: `${styleConfig.priceTextColor} ${styleConfig.priceTextSize} ${styleConfig.fontFamily} ${className}`,
@@ -3470,9 +3548,9 @@ function LegacyPricingDisplay({
3470
3548
  };
3471
3549
  };
3472
3550
  const { mainValue, secondaryInfo } = parsePricing(pricing);
3473
- return /* @__PURE__ */ jsxs16("span", { className: `${styleConfig.fontFamily} ${className}`, children: [
3474
- /* @__PURE__ */ jsx18("span", { className: `${styleConfig.priceTextColor} ${styleConfig.priceTextSize}`, children: mainValue }),
3475
- secondaryInfo && /* @__PURE__ */ jsx18("span", { className: `${styleConfig.secondaryTextColor} ${styleConfig.secondaryTextSize}`, children: secondaryInfo })
3551
+ return /* @__PURE__ */ jsxs17("span", { className: `${styleConfig.fontFamily} ${className}`, children: [
3552
+ /* @__PURE__ */ jsx20("span", { className: `${styleConfig.priceTextColor} ${styleConfig.priceTextSize}`, children: mainValue }),
3553
+ secondaryInfo && /* @__PURE__ */ jsx20("span", { className: `${styleConfig.secondaryTextColor} ${styleConfig.secondaryTextSize}`, children: secondaryInfo })
3476
3554
  ] });
3477
3555
  }
3478
3556
  function formatPricingForDisplay(pricing) {
@@ -3480,7 +3558,7 @@ function formatPricingForDisplay(pricing) {
3480
3558
  }
3481
3559
 
3482
3560
  // src/components/results-count.tsx
3483
- import { Fragment as Fragment4, jsx as jsx19, jsxs as jsxs17 } from "react/jsx-runtime";
3561
+ import { Fragment as Fragment5, jsx as jsx21, jsxs as jsxs18 } from "react/jsx-runtime";
3484
3562
  function ResultsCount({ currentPage, pageSize, totalResults, resultType, sortingMessage }) {
3485
3563
  if (totalResults === 0) {
3486
3564
  return null;
@@ -3490,7 +3568,7 @@ function ResultsCount({ currentPage, pageSize, totalResults, resultType, sorting
3490
3568
  const plural = resultType === "vendors" ? "vendors" : "posts";
3491
3569
  const singular = resultType === "vendors" ? "vendor" : "post";
3492
3570
  const displayType = totalResults === 1 ? singular : plural;
3493
- return /* @__PURE__ */ jsx19("div", { className: "mb-6", children: /* @__PURE__ */ jsx19("p", { className: "text-ods-text-secondary text-h6", children: totalResults > 0 && /* @__PURE__ */ jsxs17(Fragment4, { children: [
3571
+ return /* @__PURE__ */ jsx21("div", { className: "mb-6", children: /* @__PURE__ */ jsx21("p", { className: "text-ods-text-secondary text-h6", children: totalResults > 0 && /* @__PURE__ */ jsxs18(Fragment5, { children: [
3494
3572
  "Showing ",
3495
3573
  startIndex,
3496
3574
  "-",
@@ -3499,7 +3577,7 @@ function ResultsCount({ currentPage, pageSize, totalResults, resultType, sorting
3499
3577
  totalResults,
3500
3578
  " ",
3501
3579
  displayType,
3502
- sortingMessage && /* @__PURE__ */ jsxs17("span", { className: "ml-2 text-ods-accent", children: [
3580
+ sortingMessage && /* @__PURE__ */ jsxs18("span", { className: "ml-2 text-ods-accent", children: [
3503
3581
  "\u2022 ",
3504
3582
  sortingMessage
3505
3583
  ] })
@@ -3510,14 +3588,14 @@ function ResultsCount({ currentPage, pageSize, totalResults, resultType, sorting
3510
3588
  import { Boxes, Database, Hand, Plug, ShieldCheck, Sparkles } from "lucide-react";
3511
3589
 
3512
3590
  // src/components/openframe-logo.tsx
3513
- import { jsx as jsx20, jsxs as jsxs18 } from "react/jsx-runtime";
3591
+ import { jsx as jsx22, jsxs as jsxs19 } from "react/jsx-runtime";
3514
3592
  var OpenFrameLogo2 = ({
3515
3593
  className,
3516
3594
  lowerPathColor,
3517
3595
  upperPathColor,
3518
3596
  ...props
3519
3597
  }) => {
3520
- return /* @__PURE__ */ jsx20(
3598
+ return /* @__PURE__ */ jsx22(
3521
3599
  "svg",
3522
3600
  {
3523
3601
  ...props,
@@ -3531,30 +3609,30 @@ var OpenFrameLogo2 = ({
3531
3609
  "--fill-0": "currentColor",
3532
3610
  ...props.style
3533
3611
  },
3534
- children: /* @__PURE__ */ jsxs18("g", { children: [
3535
- /* @__PURE__ */ jsxs18("g", { children: [
3536
- /* @__PURE__ */ jsx20(
3612
+ children: /* @__PURE__ */ jsxs19("g", { children: [
3613
+ /* @__PURE__ */ jsxs19("g", { children: [
3614
+ /* @__PURE__ */ jsx22(
3537
3615
  "path",
3538
3616
  {
3539
3617
  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",
3540
3618
  fill: lowerPathColor ?? "#ffffff"
3541
3619
  }
3542
3620
  ),
3543
- /* @__PURE__ */ jsx20(
3621
+ /* @__PURE__ */ jsx22(
3544
3622
  "path",
3545
3623
  {
3546
3624
  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",
3547
3625
  fill: lowerPathColor ?? "#ffffff"
3548
3626
  }
3549
3627
  ),
3550
- /* @__PURE__ */ jsx20(
3628
+ /* @__PURE__ */ jsx22(
3551
3629
  "path",
3552
3630
  {
3553
3631
  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",
3554
3632
  fill: lowerPathColor ?? "#ffffff"
3555
3633
  }
3556
3634
  ),
3557
- /* @__PURE__ */ jsx20(
3635
+ /* @__PURE__ */ jsx22(
3558
3636
  "path",
3559
3637
  {
3560
3638
  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",
@@ -3562,7 +3640,7 @@ var OpenFrameLogo2 = ({
3562
3640
  }
3563
3641
  )
3564
3642
  ] }),
3565
- /* @__PURE__ */ jsx20(
3643
+ /* @__PURE__ */ jsx22(
3566
3644
  "path",
3567
3645
  {
3568
3646
  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",
@@ -3575,12 +3653,12 @@ var OpenFrameLogo2 = ({
3575
3653
  };
3576
3654
 
3577
3655
  // src/components/vendor-tag.tsx
3578
- import { jsx as jsx21, jsxs as jsxs19 } from "react/jsx-runtime";
3656
+ import { jsx as jsx23, jsxs as jsxs20 } from "react/jsx-runtime";
3579
3657
  function openFrameTag(classification, text) {
3580
3658
  return {
3581
3659
  text: text || OPENFRAME_CLASSIFICATIONS[classification].word,
3582
3660
  textColor: void 0,
3583
- icon: /* @__PURE__ */ jsx21(OpenFrameLogo2, { lowerPathColor: "currentColor", upperPathColor: "currentColor", className: "h-4 w-4 text-ods-accent" })
3661
+ icon: /* @__PURE__ */ jsx23(OpenFrameLogo2, { lowerPathColor: "currentColor", upperPathColor: "currentColor", className: "h-4 w-4 text-ods-accent" })
3584
3662
  };
3585
3663
  }
3586
3664
  function VendorTag({ type, text, className = "", hidden = false, size = "md", accentColor }) {
@@ -3594,101 +3672,101 @@ function VendorTag({ type, text, className = "", hidden = false, size = "md", ac
3594
3672
  return {
3595
3673
  text: "Placeholder",
3596
3674
  textColor: "text-ods-text-primary",
3597
- icon: /* @__PURE__ */ jsx21("div", { className: "flex h-4 w-4 flex-shrink-0 items-center justify-center rounded-sm", children: /* @__PURE__ */ jsx21(Sparkles, { width: 10, height: 10, className: "text-ods-text-primary" }) })
3675
+ 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" }) })
3598
3676
  };
3599
3677
  case "ai":
3600
3678
  return {
3601
3679
  text: "AI Selected",
3602
3680
  textColor: "text-ods-text-primary",
3603
- icon: /* @__PURE__ */ jsx21("div", { className: "flex h-4 w-4 flex-shrink-0 items-center justify-center rounded-sm", children: /* @__PURE__ */ jsx21(Sparkles, { width: 10, height: 10, className: "text-ods-text-primary" }) })
3681
+ 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" }) })
3604
3682
  };
3605
3683
  case "manual":
3606
3684
  return {
3607
3685
  text: "Manually Selected",
3608
3686
  textColor: "text-ods-text-secondary",
3609
- icon: /* @__PURE__ */ jsx21("div", { className: "flex h-4 w-4 flex-shrink-0 items-center justify-center rounded-sm", children: /* @__PURE__ */ jsx21(Hand, { width: 10, height: 10, className: "text-ods-text-secondary" }) })
3687
+ 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" }) })
3610
3688
  };
3611
3689
  case "open-source":
3612
3690
  return {
3613
3691
  text: text || "Open Source",
3614
- icon: /* @__PURE__ */ jsx21(
3692
+ icon: /* @__PURE__ */ jsx23(
3615
3693
  "div",
3616
3694
  {
3617
3695
  className: "flex h-4 w-4 flex-shrink-0 items-center justify-center rounded-sm bg-ods-accent",
3618
3696
  style: accentColor ? { backgroundColor: accentColor } : void 0,
3619
- children: /* @__PURE__ */ jsx21(OpenSourceIcon2, { width: 10, height: 10, className: "text-ods-text-on-accent" })
3697
+ children: /* @__PURE__ */ jsx23(OpenSourceIcon2, { width: 10, height: 10, className: "text-ods-text-on-accent" })
3620
3698
  }
3621
3699
  )
3622
3700
  };
3623
3701
  case "commercial":
3624
3702
  return {
3625
3703
  text: text || "Commercial Vendor",
3626
- icon: /* @__PURE__ */ jsx21("div", { className: "flex h-4 w-4 flex-shrink-0 items-center justify-center rounded-sm bg-ods-border", children: /* @__PURE__ */ jsx21(CoinsIcon2, { width: 10, height: 10, className: "text-ods-text-secondary" }) })
3704
+ 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" }) })
3627
3705
  };
3628
3706
  // platform-capability tags — same neutral icon-box chrome as 'commercial'
3629
3707
  case "api":
3630
3708
  return {
3631
3709
  text: text || "API",
3632
- icon: /* @__PURE__ */ jsx21("div", { className: "flex h-4 w-4 flex-shrink-0 items-center justify-center rounded-sm bg-ods-border", children: /* @__PURE__ */ jsx21(Plug, { width: 10, height: 10, className: "text-ods-text-secondary" }) })
3710
+ 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" }) })
3633
3711
  };
3634
3712
  case "data":
3635
3713
  return {
3636
3714
  text: text || "Data",
3637
- icon: /* @__PURE__ */ jsx21("div", { className: "flex h-4 w-4 flex-shrink-0 items-center justify-center rounded-sm bg-ods-border", children: /* @__PURE__ */ jsx21(Database, { width: 10, height: 10, className: "text-ods-text-secondary" }) })
3715
+ 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" }) })
3638
3716
  };
3639
3717
  case "k8s":
3640
3718
  return {
3641
3719
  text: text || "K8s",
3642
- icon: /* @__PURE__ */ jsx21("div", { className: "flex h-4 w-4 flex-shrink-0 items-center justify-center rounded-sm bg-ods-border", children: /* @__PURE__ */ jsx21(Boxes, { width: 10, height: 10, className: "text-ods-text-secondary" }) })
3720
+ 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" }) })
3643
3721
  };
3644
3722
  case "secured":
3645
3723
  return {
3646
3724
  text: text || "Secured",
3647
- icon: /* @__PURE__ */ jsx21("div", { className: "flex h-4 w-4 flex-shrink-0 items-center justify-center rounded-sm bg-ods-border", children: /* @__PURE__ */ jsx21(ShieldCheck, { width: 10, height: 10, className: "text-ods-text-secondary" }) })
3725
+ 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" }) })
3648
3726
  };
3649
3727
  case "free":
3650
3728
  return {
3651
3729
  text: text || "Free",
3652
- icon: /* @__PURE__ */ jsx21("div", { className: "flex h-4 w-4 flex-shrink-0 items-center justify-center rounded-sm bg-ods-accent", children: /* @__PURE__ */ jsx21("span", { className: "text-[8px] font-bold text-ods-text-on-accent", children: "$" }) })
3730
+ 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: "$" }) })
3653
3731
  };
3654
3732
  case "freemium":
3655
3733
  return {
3656
3734
  text: text || "Freemium",
3657
- icon: /* @__PURE__ */ jsx21("div", { className: "flex h-4 w-4 flex-shrink-0 items-center justify-center rounded-sm bg-ods-accent", children: /* @__PURE__ */ jsx21("span", { className: "text-[8px] font-bold text-ods-text-on-accent", children: "$" }) })
3735
+ 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: "$" }) })
3658
3736
  };
3659
3737
  case "paid":
3660
3738
  return {
3661
3739
  text: text || "Paid",
3662
- icon: /* @__PURE__ */ jsx21("div", { className: "flex h-4 w-4 flex-shrink-0 items-center justify-center rounded-sm bg-ods-border", children: /* @__PURE__ */ jsx21(CoinsIcon2, { width: 10, height: 10, className: "text-ods-text-secondary" }) })
3740
+ 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" }) })
3663
3741
  };
3664
3742
  case "enterprise":
3665
3743
  return {
3666
3744
  text: text || "Enterprise",
3667
- icon: /* @__PURE__ */ jsx21("div", { className: "flex h-4 w-4 flex-shrink-0 items-center justify-center rounded-sm bg-ods-accent", children: /* @__PURE__ */ jsx21("span", { className: "text-[8px] font-bold text-ods-text-on-accent", children: "E" }) })
3745
+ 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" }) })
3668
3746
  };
3669
3747
  case "recommended":
3670
3748
  return {
3671
3749
  text: text || "Recommended",
3672
- icon: /* @__PURE__ */ jsx21("div", { className: "flex h-4 w-4 flex-shrink-0 items-center justify-center rounded-sm bg-ods-accent", children: /* @__PURE__ */ jsx21("span", { className: "text-[8px] font-bold text-ods-text-on-accent", children: "\u2605" }) })
3750
+ 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" }) })
3673
3751
  };
3674
3752
  case "classification": {
3675
3753
  const classificationType = text?.toLowerCase();
3676
3754
  if (classificationType === "open_source") {
3677
3755
  return {
3678
3756
  text: "Open Source",
3679
- icon: /* @__PURE__ */ jsx21("div", { className: "flex h-4 w-4 flex-shrink-0 items-center justify-center rounded-sm bg-ods-accent", children: /* @__PURE__ */ jsx21(OpenSourceIcon2, { width: 10, height: 10, className: "text-ods-text-on-accent" }) })
3757
+ 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" }) })
3680
3758
  };
3681
3759
  } else if (classificationType === "commercial") {
3682
3760
  return {
3683
3761
  text: "Commercial Vendor",
3684
- icon: /* @__PURE__ */ jsx21("div", { className: "flex h-4 w-4 flex-shrink-0 items-center justify-center rounded-sm bg-ods-border", children: /* @__PURE__ */ jsx21(CoinsIcon2, { width: 10, height: 10, className: "text-ods-text-secondary" }) })
3762
+ 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" }) })
3685
3763
  };
3686
3764
  } else if (isOpenFrameClassification(classificationType)) {
3687
3765
  return openFrameTag(classificationType);
3688
3766
  } else {
3689
3767
  return {
3690
3768
  text: text || "Classification",
3691
- icon: /* @__PURE__ */ jsx21("div", { className: "flex h-4 w-4 flex-shrink-0 items-center justify-center rounded-sm bg-ods-accent", children: /* @__PURE__ */ jsx21("span", { className: "text-[8px] font-bold text-ods-text-on-accent", children: "C" }) })
3769
+ 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" }) })
3692
3770
  };
3693
3771
  }
3694
3772
  }
@@ -3704,19 +3782,19 @@ function VendorTag({ type, text, className = "", hidden = false, size = "md", ac
3704
3782
  }
3705
3783
  };
3706
3784
  const { text: displayText, icon, textColor } = getTagContent();
3707
- return /* @__PURE__ */ jsxs19("div", { className: cn(baseClasses, className, hidden && "invisible"), children: [
3785
+ return /* @__PURE__ */ jsxs20("div", { className: cn(baseClasses, className, hidden && "invisible"), children: [
3708
3786
  icon,
3709
- /* @__PURE__ */ jsx21("span", { className: cn("font-semibold text-h5", textColor ? textColor : "text-ods-text-primary"), children: displayText })
3787
+ /* @__PURE__ */ jsx23("span", { className: cn("font-semibold text-h5", textColor ? textColor : "text-ods-text-primary"), children: displayText })
3710
3788
  ] });
3711
3789
  }
3712
3790
 
3713
3791
  // src/components/selection-source-badge.tsx
3714
- import { jsx as jsx22 } from "react/jsx-runtime";
3792
+ import { jsx as jsx24 } from "react/jsx-runtime";
3715
3793
  function SelectionSourceBadge({ source, hidden = false }) {
3716
3794
  if (!source) {
3717
3795
  return null;
3718
3796
  }
3719
- return /* @__PURE__ */ jsx22(
3797
+ return /* @__PURE__ */ jsx24(
3720
3798
  VendorTag,
3721
3799
  {
3722
3800
  type: source?.toLowerCase(),
@@ -3728,32 +3806,32 @@ function SelectionSourceBadge({ source, hidden = false }) {
3728
3806
  }
3729
3807
 
3730
3808
  // src/components/vendor-page-skeleton.tsx
3731
- import { jsx as jsx23 } from "react/jsx-runtime";
3809
+ import { jsx as jsx25 } from "react/jsx-runtime";
3732
3810
  function VendorPageSkeleton() {
3733
- return /* @__PURE__ */ jsx23(VendorDetailLayoutSkeleton, {});
3811
+ return /* @__PURE__ */ jsx25(VendorDetailLayoutSkeleton, {});
3734
3812
  }
3735
3813
 
3736
3814
  // src/components/why-it-matters.tsx
3737
- import { jsx as jsx24, jsxs as jsxs20 } from "react/jsx-runtime";
3815
+ import { jsx as jsx26, jsxs as jsxs21 } from "react/jsx-runtime";
3738
3816
 
3739
3817
  // src/components/yes-no-display.tsx
3740
- import { jsx as jsx25, jsxs as jsxs21 } from "react/jsx-runtime";
3818
+ import { jsx as jsx27, jsxs as jsxs22 } from "react/jsx-runtime";
3741
3819
  function YesNoDisplay({ value, yesText = "Yes", noText = "No", customText, className = "" }) {
3742
3820
  if (customText) {
3743
- return /* @__PURE__ */ jsxs21("div", { className: `flex items-center gap-2 ${className}`, children: [
3744
- /* @__PURE__ */ jsx25(CheckCircleIcon2, { className: "h-6 w-6" }),
3745
- /* @__PURE__ */ jsx25("span", { className: "text-ods-text-primary text-h6", children: customText })
3821
+ return /* @__PURE__ */ jsxs22("div", { className: `flex items-center gap-2 ${className}`, children: [
3822
+ /* @__PURE__ */ jsx27(CheckCircleIcon2, { className: "h-6 w-6" }),
3823
+ /* @__PURE__ */ jsx27("span", { className: "text-ods-text-primary text-h6", children: customText })
3746
3824
  ] });
3747
3825
  }
3748
3826
  if (value) {
3749
- return /* @__PURE__ */ jsxs21("div", { className: `flex items-center gap-2 ${className}`, children: [
3750
- /* @__PURE__ */ jsx25(CheckCircleIcon2, { className: "h-6 w-6" }),
3751
- /* @__PURE__ */ jsx25("span", { className: "text-ods-text-primary text-h6", children: yesText })
3827
+ return /* @__PURE__ */ jsxs22("div", { className: `flex items-center gap-2 ${className}`, children: [
3828
+ /* @__PURE__ */ jsx27(CheckCircleIcon2, { className: "h-6 w-6" }),
3829
+ /* @__PURE__ */ jsx27("span", { className: "text-ods-text-primary text-h6", children: yesText })
3752
3830
  ] });
3753
3831
  }
3754
- return /* @__PURE__ */ jsxs21("div", { className: `flex items-center gap-2 ${className}`, children: [
3755
- /* @__PURE__ */ jsx25(XCircleIcon, { className: "h-6 w-6" }),
3756
- /* @__PURE__ */ jsx25("span", { className: "text-ods-text-secondary text-h6", children: noText })
3832
+ return /* @__PURE__ */ jsxs22("div", { className: `flex items-center gap-2 ${className}`, children: [
3833
+ /* @__PURE__ */ jsx27(XCircleIcon, { className: "h-6 w-6" }),
3834
+ /* @__PURE__ */ jsx27("span", { className: "text-ods-text-secondary text-h6", children: noText })
3757
3835
  ] });
3758
3836
  }
3759
3837
  function evaluateFeatureValue(value, dataType) {
@@ -3788,7 +3866,7 @@ function evaluateFeatureValue(value, dataType) {
3788
3866
 
3789
3867
  // src/components/made-with-love.tsx
3790
3868
  import { useState as useState7, useEffect as useEffect3 } from "react";
3791
- import { jsx as jsx26, jsxs as jsxs22 } from "react/jsx-runtime";
3869
+ import { jsx as jsx28, jsxs as jsxs23 } from "react/jsx-runtime";
3792
3870
  function MadeWithLove({ className = "", size = "md", showOnMobile = true }) {
3793
3871
  const [isMobile, setIsMobile] = useState7(false);
3794
3872
  const [isHovered, setIsHovered] = useState7(false);
@@ -3858,9 +3936,9 @@ function MadeWithLove({ className = "", size = "md", showOnMobile = true }) {
3858
3936
  marginLeft: "4px",
3859
3937
  textDecoration: "none"
3860
3938
  };
3861
- return /* @__PURE__ */ jsxs22("div", { style: containerStyle, className, children: [
3939
+ return /* @__PURE__ */ jsxs23("div", { style: containerStyle, className, children: [
3862
3940
  "Made with love by",
3863
- /* @__PURE__ */ jsxs22(
3941
+ /* @__PURE__ */ jsxs23(
3864
3942
  "a",
3865
3943
  {
3866
3944
  href: flamingoUrl,
@@ -3870,14 +3948,14 @@ function MadeWithLove({ className = "", size = "md", showOnMobile = true }) {
3870
3948
  onMouseEnter: () => setIsHovered(true),
3871
3949
  onMouseLeave: () => setIsHovered(false),
3872
3950
  children: [
3873
- /* @__PURE__ */ jsx26("div", { style: logoStyle, children: /* @__PURE__ */ jsx26(
3951
+ /* @__PURE__ */ jsx28("div", { style: logoStyle, children: /* @__PURE__ */ jsx28(
3874
3952
  FlamingoLogo2,
3875
3953
  {
3876
3954
  size: config.logoSize,
3877
3955
  color: "#f357bb"
3878
3956
  }
3879
3957
  ) }),
3880
- /* @__PURE__ */ jsx26("span", { style: textStyle, children: "Flamingo" })
3958
+ /* @__PURE__ */ jsx28("span", { style: textStyle, children: "Flamingo" })
3881
3959
  ]
3882
3960
  }
3883
3961
  )
@@ -3886,7 +3964,7 @@ function MadeWithLove({ className = "", size = "md", showOnMobile = true }) {
3886
3964
 
3887
3965
  // src/components/date-time-picker.tsx
3888
3966
  import DatePicker2 from "react-datepicker";
3889
- import { jsx as jsx27, jsxs as jsxs23 } from "react/jsx-runtime";
3967
+ import { jsx as jsx29, jsxs as jsxs24 } from "react/jsx-runtime";
3890
3968
  var inputClassName = cn(
3891
3969
  "flex h-10 w-full rounded-md border px-3 py-2 text-sm ring-offset-background",
3892
3970
  "file:border-0 file:bg-transparent file:text-sm file:font-medium",
@@ -3910,9 +3988,9 @@ function DateTimePicker({
3910
3988
  timeIntervals = 15,
3911
3989
  dateFormat = "MMMM d, yyyy h:mm aa"
3912
3990
  }) {
3913
- return /* @__PURE__ */ jsxs23("div", { className: cn("space-y-2", className), children: [
3914
- label && /* @__PURE__ */ jsx27(Label, { className: "font-semibold text-ods-text-secondary text-h5", children: label }),
3915
- /* @__PURE__ */ jsx27("div", { className: "w-full", children: /* @__PURE__ */ jsx27(
3991
+ return /* @__PURE__ */ jsxs24("div", { className: cn("space-y-2", className), children: [
3992
+ label && /* @__PURE__ */ jsx29(Label, { className: "font-semibold text-ods-text-secondary text-h5", children: label }),
3993
+ /* @__PURE__ */ jsx29("div", { className: "w-full", children: /* @__PURE__ */ jsx29(
3916
3994
  DatePicker2,
3917
3995
  {
3918
3996
  selected: value,
@@ -3927,7 +4005,7 @@ function DateTimePicker({
3927
4005
  className: inputClassName
3928
4006
  }
3929
4007
  ) }),
3930
- /* @__PURE__ */ jsx27(
4008
+ /* @__PURE__ */ jsx29(
3931
4009
  "style",
3932
4010
  {
3933
4011
  dangerouslySetInnerHTML: {
@@ -4038,7 +4116,7 @@ function DateTimePicker({
4038
4116
  }
4039
4117
 
4040
4118
  // src/components/authors/author-detail-view.tsx
4041
- import { jsx as jsx28, jsxs as jsxs24 } from "react/jsx-runtime";
4119
+ import { jsx as jsx30, jsxs as jsxs25 } from "react/jsx-runtime";
4042
4120
  function AuthorDetailView({ author, proxyImageUrl, children, className }) {
4043
4121
  const runtime = useChatRuntime();
4044
4122
  const proxiedAvatar = author.avatarUrl ? proxyImageUrl ? proxyImageUrl(author.avatarUrl) : getProxiedImageUrl(author.avatarUrl, {
@@ -4048,14 +4126,14 @@ function AuthorDetailView({ author, proxyImageUrl, children, className }) {
4048
4126
  }) ?? author.avatarUrl : null;
4049
4127
  const subtitle = [author.jobTitle, author.company].filter(Boolean).join(" @ ");
4050
4128
  const bioText = formatBioText(author.about);
4051
- return /* @__PURE__ */ jsxs24("div", { className: cn("flex flex-col gap-5 md:gap-6", className), children: [
4052
- /* @__PURE__ */ jsxs24("div", { className: "flex w-full items-start gap-6", children: [
4053
- /* @__PURE__ */ jsx28("div", { className: "relative h-24 w-24 shrink-0", children: /* @__PURE__ */ jsx28("div", { className: "relative h-full w-full overflow-hidden rounded-full border border-ods-border bg-ods-bg-surface", children: proxiedAvatar ? /* @__PURE__ */ jsx28(next_image_default, { src: proxiedAvatar, alt: author.fullName, fill: true, className: "object-cover", unoptimized: true }) : /* @__PURE__ */ jsx28("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() }) }) }),
4054
- /* @__PURE__ */ jsxs24("div", { className: "flex min-w-0 flex-col justify-center gap-2", children: [
4055
- /* @__PURE__ */ jsx28("p", { className: "truncate leading-none text-ods-text-primary text-h2", children: author.fullName }),
4056
- subtitle && /* @__PURE__ */ jsx28("p", { className: "truncate font-body text-lg leading-none text-ods-text-secondary", children: subtitle }),
4129
+ return /* @__PURE__ */ jsxs25("div", { className: cn("flex flex-col gap-5 md:gap-6", className), children: [
4130
+ /* @__PURE__ */ jsxs25("div", { className: "flex w-full items-start gap-6", children: [
4131
+ /* @__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() }) }) }),
4132
+ /* @__PURE__ */ jsxs25("div", { className: "flex min-w-0 flex-col justify-center gap-2", children: [
4133
+ /* @__PURE__ */ jsx30("p", { className: "truncate leading-none text-ods-text-primary text-h2", children: author.fullName }),
4134
+ subtitle && /* @__PURE__ */ jsx30("p", { className: "truncate font-body text-lg leading-none text-ods-text-secondary", children: subtitle }),
4057
4135
  author.socialLinks.length > 0 && // Ghost compact row (transparent 32px) — metadata, not CTAs.
4058
- /* @__PURE__ */ jsx28(
4136
+ /* @__PURE__ */ jsx30(
4059
4137
  SocialIconRow,
4060
4138
  {
4061
4139
  compact: true,
@@ -4068,8 +4146,8 @@ function AuthorDetailView({ author, proxyImageUrl, children, className }) {
4068
4146
  )
4069
4147
  ] })
4070
4148
  ] }),
4071
- bioText && /* @__PURE__ */ jsx28("p", { className: "text-ods-text-secondary text-h6", children: bioText }),
4072
- author.knowsAbout.length > 0 && /* @__PURE__ */ jsx28("div", { className: "flex flex-wrap gap-2", children: author.knowsAbout.map((topic) => /* @__PURE__ */ jsx28(StatusBadge, { text: topic, variant: "button", colorScheme: "cyan", singleLine: true }, topic)) }),
4149
+ bioText && /* @__PURE__ */ jsx30("p", { className: "text-ods-text-secondary text-h6", children: bioText }),
4150
+ 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)) }),
4073
4151
  children
4074
4152
  ] });
4075
4153
  }
@@ -4084,7 +4162,6 @@ export {
4084
4162
  ANTHROPIC_SUPPORTED_IMAGE_MIME,
4085
4163
  APPROVAL_BLOCK_VARIANT,
4086
4164
  APPROVAL_STATUS,
4087
- ASK_AI_OPEN_EVENT,
4088
4165
  ASSISTANT_TYPE,
4089
4166
  AUTHOR_TYPE,
4090
4167
  AUTO_CONTINUATION_DIRECTIVE_PREFIX,
@@ -4301,6 +4378,7 @@ export {
4301
4378
  ClaudeIcon,
4302
4379
  ClickUpIcon,
4303
4380
  ClickUpTasksManager,
4381
+ ClientOnlyHeader,
4304
4382
  CmdIcon,
4305
4383
  CoinsIcon,
4306
4384
  ColorPickerInput,
@@ -4511,6 +4589,8 @@ export {
4511
4589
  FloatingTooltip,
4512
4590
  FloatingWalkthroughVideo,
4513
4591
  FolderShieldIcon,
4592
+ Footer,
4593
+ FooterWaitlistButton,
4514
4594
  FormLoader,
4515
4595
  FormPageContainer,
4516
4596
  FormSkeleton,
@@ -4533,10 +4613,12 @@ export {
4533
4613
  GuideWelcome,
4534
4614
  HamburgerIcon,
4535
4615
  HandDollarIcon,
4616
+ Header,
4536
4617
  HeaderButton,
4537
4618
  HeaderGlobalSearch,
4538
4619
  HeaderMingoButton,
4539
4620
  HeaderOrganizationFilter,
4621
+ HeaderSkeleton,
4540
4622
  HeroImageUploader,
4541
4623
  HeroSkeleton,
4542
4624
  HiddenTagsPopup,
@@ -4622,7 +4704,7 @@ export {
4622
4704
  MINGO_APPROVAL_REQUEST_TYPE,
4623
4705
  MINGO_V2_RAIL_WIDTH,
4624
4706
  MINGO_V2_SPLIT_WIDTH,
4625
- MOBILE_NAV_SHEET_ID,
4707
+ MOBILE_NAV_PANEL_ID,
4626
4708
  MSPDisplay,
4627
4709
  MUX_IMAGE_ORIGIN,
4628
4710
  MUX_STREAM_ORIGIN,
@@ -4682,7 +4764,7 @@ export {
4682
4764
  MinusIcon,
4683
4765
  MlgLogo,
4684
4766
  MobileBurgerMenu,
4685
- MobileNavSheet,
4767
+ MobileNavPanel,
4686
4768
  MobileNavigationDropdown,
4687
4769
  Modal,
4688
4770
  ModalContent,
@@ -4710,9 +4792,7 @@ export {
4710
4792
  NEW_TAB_FEATURES,
4711
4793
  NOCIcon,
4712
4794
  NaturalLanguageIcon,
4713
- NavItemRow,
4714
4795
  NavLinkAnchorViaRuntime,
4715
- NavPanel,
4716
4796
  NavigationItemBadge,
4717
4797
  NavigationMenu,
4718
4798
  NavigationMenuContent,
@@ -4962,8 +5042,6 @@ export {
4962
5042
  ShieldKeyIcon,
4963
5043
  ShieldLockIcon,
4964
5044
  SimpleMarkdownRenderer,
4965
- SiteFooter,
4966
- SiteHeader,
4967
5045
  Skeleton,
4968
5046
  SkeletonButton,
4969
5047
  SkeletonCard,
@@ -5193,7 +5271,6 @@ export {
5193
5271
  decideNewTab,
5194
5272
  decodeHistoricalMessageData,
5195
5273
  defaultBuildProductReleaseCardProps,
5196
- defaultRenderSiteNavLink,
5197
5274
  defaultTableIdForDocumentType,
5198
5275
  deriveColumns,
5199
5276
  designDocMetaLine,
@@ -5269,7 +5346,6 @@ export {
5269
5346
  isApprovalNotificationType,
5270
5347
  isCrossOriginUrl,
5271
5348
  isHistoricalUserTurn,
5272
- isMegaMenu,
5273
5349
  isModifierClick,
5274
5350
  isQuickActionIconSpec,
5275
5351
  isStructuredContent,
@@ -5279,7 +5355,6 @@ export {
5279
5355
  maxPersistedStreamSeq,
5280
5356
  mergeHistoryWithRealtime,
5281
5357
  multiSelectFilterFn,
5282
- navLinkLabel,
5283
5358
  navigationMenuTriggerStyle,
5284
5359
  newTabAnchorAttrs,
5285
5360
  noDataActionsVariants,
@@ -5287,7 +5362,6 @@ export {
5287
5362
  normalizeContent,
5288
5363
  normalizeHistoricalMessageData,
5289
5364
  normalizeIconKey,
5290
- openAskAi,
5291
5365
  parseScrollAnchor,
5292
5366
  parseWireCommandOverride,
5293
5367
  photoOrientation,
@@ -5325,7 +5399,6 @@ export {
5325
5399
  setRealAuthHook,
5326
5400
  showCommandApprovalToast,
5327
5401
  showToast,
5328
- siteNavHasMobileMenus,
5329
5402
  sortBitesByCreatedAtDesc,
5330
5403
  sortBitesByFeaturedAtDesc,
5331
5404
  splitStreamingBlocks,