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

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