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

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