@flamingo-stack/openframe-frontend-core 0.0.718 → 0.0.720

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 (175) hide show
  1. package/dist/{chunk-MIQLUUVF.cjs → chunk-2C72EWQR.cjs} +93 -29
  2. package/dist/{chunk-IWCPXJEE.js → chunk-3HZ6XSZC.js} +2 -4
  3. package/dist/{chunk-ZXCZYMN4.cjs → chunk-4SIZCHVZ.cjs} +13 -15
  4. package/dist/{chunk-BOTM373R.cjs → chunk-5XDCCQ4A.cjs} +15 -15
  5. package/dist/{chunk-DXCBOZVT.cjs → chunk-6BLN5WDS.cjs} +41 -41
  6. package/dist/{chunk-DCD5WZUF.js → chunk-6W46LVK4.js} +5 -5
  7. package/dist/{chunk-JHQ334WS.js → chunk-742BGXNX.js} +2 -0
  8. package/dist/{chunk-AECTRMGQ.cjs → chunk-7GRPR7XA.cjs} +13 -1
  9. package/dist/{chunk-45F7PXUI.js → chunk-7HYEQKN6.js} +6 -6
  10. package/dist/{chunk-N2PF5CFX.js → chunk-7IOU6BJE.js} +12 -11
  11. package/dist/{chunk-BWIN42ZA.cjs → chunk-7LPR4RZ3.cjs} +34 -36
  12. package/dist/chunk-AFTRPEXO.js +13 -0
  13. package/dist/{chunk-JPD4NXH6.js → chunk-AZRI4XBP.js} +1 -1
  14. package/dist/{chunk-4QFWGLZO.js → chunk-B2N4YX66.js} +1 -1
  15. package/dist/{chunk-QXZCLQNV.js → chunk-B5LNX4GZ.js} +2 -2
  16. package/dist/{chunk-GN4A7PMB.cjs → chunk-DHNJSQGX.cjs} +91 -91
  17. package/dist/{chunk-NDZ5ZXOQ.cjs → chunk-DOPOHO6H.cjs} +20 -20
  18. package/dist/{chunk-Z3CVSPO3.cjs → chunk-DYDDAA6O.cjs} +519 -518
  19. package/dist/{chunk-2RKFMUNW.cjs → chunk-EVMM3JE6.cjs} +64 -63
  20. package/dist/chunk-EWPR7662.cjs +13 -0
  21. package/dist/{chunk-AGVXKD4K.js → chunk-FSQQZFVG.js} +12 -0
  22. package/dist/{chunk-TTVOLEUS.js → chunk-GANIUMRU.js} +89 -2
  23. package/dist/{chunk-S2FUFMLW.cjs → chunk-HFEYEPOG.cjs} +27 -27
  24. package/dist/{chunk-LE5WKGJV.cjs → chunk-HTS46FFY.cjs} +3 -3
  25. package/dist/{chunk-6A43ZDWV.cjs → chunk-IL3ZWNM2.cjs} +4 -4
  26. package/dist/{chunk-PSVSEN4J.cjs → chunk-IMTY3GRR.cjs} +2 -0
  27. package/dist/{chunk-YC5COB5V.cjs → chunk-ISCZ6UNF.cjs} +85 -89
  28. package/dist/{chunk-XGHGGBM3.js → chunk-K2BYVPGR.js} +3 -3
  29. package/dist/{chunk-HWVUR735.cjs → chunk-KSGMZHVV.cjs} +2 -2
  30. package/dist/{chunk-SGFTTJKO.js → chunk-LO3KCLEF.js} +1 -1
  31. package/dist/{chunk-MA4Q5RBP.cjs → chunk-NYSMDM4J.cjs} +2 -2
  32. package/dist/{chunk-67QBMN4R.js → chunk-O3MKJU6A.js} +6 -6
  33. package/dist/{chunk-APJZBDQN.js → chunk-PSMJYZMV.js} +27 -26
  34. package/dist/{chunk-JH2SIWPQ.js → chunk-PXAKSPLZ.js} +1586 -1263
  35. package/dist/{chunk-TBCZCRQ5.js → chunk-Q5327DXK.js} +13 -17
  36. package/dist/{chunk-EZC2F5OT.cjs → chunk-QF464PPL.cjs} +39 -39
  37. package/dist/{chunk-UWQWMGJ7.cjs → chunk-RDP5UZXQ.cjs} +888 -565
  38. package/dist/{chunk-ETYLOZOB.cjs → chunk-RFUOIQSG.cjs} +100 -13
  39. package/dist/{chunk-DC4RTYWK.cjs → chunk-RZQGIWK3.cjs} +3 -3
  40. package/dist/{chunk-PQ6HBLZ7.js → chunk-TORERAXD.js} +105 -41
  41. package/dist/{chunk-6YPTUHM7.js → chunk-URW23QUM.js} +1 -1
  42. package/dist/{chunk-QBCDSTLE.cjs → chunk-UWJMDFDO.cjs} +18 -18
  43. package/dist/{chunk-YEMCCYIF.js → chunk-V6B2FBZK.js} +5 -5
  44. package/dist/{chunk-JIWMBIVZ.js → chunk-VBHGJFA3.js} +10 -10
  45. package/dist/{chunk-Z5UWW3Z2.cjs → chunk-VF2CJXZ2.cjs} +81 -65
  46. package/dist/{chunk-DEZDMTBM.js → chunk-VYVPII4W.js} +8 -10
  47. package/dist/{chunk-MM7MCIXL.js → chunk-VYZCKY5K.js} +9 -9
  48. package/dist/{chunk-E7YCPY7K.cjs → chunk-XSM46FHD.cjs} +3 -3
  49. package/dist/{chunk-NZ5BHDFZ.js → chunk-XW3Q623Q.js} +1 -1
  50. package/dist/{chunk-LOYPRJWA.js → chunk-YK3X74SF.js} +67 -51
  51. package/dist/{chunk-WALCXC7J.cjs → chunk-ZHD3F2TH.cjs} +3 -3
  52. package/dist/{chunk-KBJJQFYU.js → chunk-ZPHOQDAE.js} +1 -1
  53. package/dist/{cloud-tenants-TAKOWXLD.js → cloud-tenants-RKQRSDNE.js} +9 -9
  54. package/dist/{cloud-tenants-PFDF7O5U.cjs → cloud-tenants-UQZASXUB.cjs} +10 -10
  55. package/dist/components/case-studies/index.cjs +23 -23
  56. package/dist/components/case-studies/index.js +10 -10
  57. package/dist/components/chat/ask-prompts.d.ts +10 -2
  58. package/dist/components/chat/ask-prompts.d.ts.map +1 -1
  59. package/dist/components/chat/assistant-ask-prompts.d.ts +27 -0
  60. package/dist/components/chat/assistant-ask-prompts.d.ts.map +1 -0
  61. package/dist/components/chat/entity-cards/dispatch.d.ts.map +1 -1
  62. package/dist/components/chat/hooks/index.d.ts +1 -0
  63. package/dist/components/chat/hooks/index.d.ts.map +1 -1
  64. package/dist/components/chat/hooks/use-ask-prompts.d.ts +63 -0
  65. package/dist/components/chat/hooks/use-ask-prompts.d.ts.map +1 -0
  66. package/dist/components/chat/index.cjs +23 -6
  67. package/dist/components/chat/index.d.ts +1 -0
  68. package/dist/components/chat/index.d.ts.map +1 -1
  69. package/dist/components/chat/index.js +22 -5
  70. package/dist/components/chat/utils/icon-library.d.ts.map +1 -1
  71. package/dist/components/contact/index.cjs +11 -11
  72. package/dist/components/contact/index.js +10 -10
  73. package/dist/components/docs/index.cjs +14 -14
  74. package/dist/components/docs/index.js +13 -13
  75. package/dist/components/embeds/index.cjs +11 -11
  76. package/dist/components/embeds/index.js +10 -10
  77. package/dist/components/faq/faq-ask-card.d.ts +44 -0
  78. package/dist/components/faq/faq-ask-card.d.ts.map +1 -0
  79. package/dist/components/faq/faq-document-page.d.ts +5 -1
  80. package/dist/components/faq/faq-document-page.d.ts.map +1 -1
  81. package/dist/components/faq/faq-section.d.ts +18 -5
  82. package/dist/components/faq/faq-section.d.ts.map +1 -1
  83. package/dist/components/faq/index.cjs +13 -12
  84. package/dist/components/faq/index.d.ts +1 -0
  85. package/dist/components/faq/index.d.ts.map +1 -1
  86. package/dist/components/faq/index.js +12 -11
  87. package/dist/components/features/auth/auth-benefits-panel.d.ts.map +1 -1
  88. package/dist/components/features/index.cjs +10 -10
  89. package/dist/components/features/index.js +9 -9
  90. package/dist/components/features/remote-session/remote-desktop-view.d.ts +6 -2
  91. package/dist/components/features/remote-session/remote-desktop-view.d.ts.map +1 -1
  92. package/dist/components/help-center-pages/index.cjs +104 -105
  93. package/dist/components/help-center-pages/index.js +28 -29
  94. package/dist/components/help-center-pages/trust-center-page.d.ts +4 -1
  95. package/dist/components/help-center-pages/trust-center-page.d.ts.map +1 -1
  96. package/dist/components/index.cjs +109 -197
  97. package/dist/components/index.js +228 -316
  98. package/dist/components/meeting-scheduler/index.cjs +50 -51
  99. package/dist/components/meeting-scheduler/index.js +12 -13
  100. package/dist/components/navigation/index.cjs +13 -13
  101. package/dist/components/navigation/index.js +12 -12
  102. package/dist/components/navigation/mingo-ai-button.d.ts +1 -1
  103. package/dist/components/navigation/mingo-ai-button.d.ts.map +1 -1
  104. package/dist/components/onboarding-guides/index.cjs +13 -14
  105. package/dist/components/onboarding-guides/index.js +12 -13
  106. package/dist/components/product-demo/index.cjs +7 -7
  107. package/dist/components/product-demo/index.js +7 -7
  108. package/dist/components/related-content/index.cjs +5 -7
  109. package/dist/components/related-content/index.js +4 -6
  110. package/dist/components/related-content/related-content-section.d.ts +6 -6
  111. package/dist/components/related-content/related-content-section.d.ts.map +1 -1
  112. package/dist/components/tickets/index.cjs +15 -15
  113. package/dist/components/tickets/index.js +14 -14
  114. package/dist/components/ui/index.cjs +26 -10
  115. package/dist/components/ui/index.js +25 -9
  116. package/dist/contexts/assistant-runtime-context.d.ts +74 -0
  117. package/dist/contexts/assistant-runtime-context.d.ts.map +1 -0
  118. package/dist/contexts/index.cjs +7 -1
  119. package/dist/contexts/index.d.ts +1 -0
  120. package/dist/contexts/index.d.ts.map +1 -1
  121. package/dist/contexts/index.js +6 -0
  122. package/dist/{devices-KRCGZMGA.cjs → devices-7Q2EUM7B.cjs} +11 -11
  123. package/dist/{devices-LHEX7O5T.js → devices-U3Y4IIW4.js} +9 -9
  124. package/dist/hooks/index.cjs +3 -4
  125. package/dist/hooks/index.js +2 -3
  126. package/dist/hooks/use-self-fetch.d.ts +3 -0
  127. package/dist/hooks/use-self-fetch.d.ts.map +1 -1
  128. package/dist/index.cjs +34 -14
  129. package/dist/index.js +33 -13
  130. package/dist/{knowledge-RZSFNR33.js → knowledge-NST53EXE.js} +9 -9
  131. package/dist/{knowledge-KLVPVEYZ.cjs → knowledge-UYIZ74MA.cjs} +11 -11
  132. package/dist/{logs-OX3XTVL2.cjs → logs-HTH7X7KV.cjs} +18 -18
  133. package/dist/{logs-E5DOV5JO.js → logs-JVTRG232.js} +9 -9
  134. package/dist/{policies-MC2S4S5G.js → policies-DTXTRK56.js} +9 -9
  135. package/dist/{policies-FOSCIZGK.cjs → policies-MXK2HB4W.cjs} +14 -14
  136. package/dist/{remote-session-JQ2BPIE3.js → remote-session-LAJZKQBN.js} +3 -3
  137. package/dist/{remote-session-DRFE5XZE.cjs → remote-session-SKKF4PBV.cjs} +5 -5
  138. package/dist/{software-update-D4OEIH65.js → software-update-6RHMPM3W.js} +9 -9
  139. package/dist/{software-update-HOBSTWVO.cjs → software-update-P6BSM6HX.cjs} +14 -14
  140. package/dist/utils/index.cjs +26 -2
  141. package/dist/utils/index.d.ts +1 -0
  142. package/dist/utils/index.d.ts.map +1 -1
  143. package/dist/utils/index.js +25 -3
  144. package/dist/utils/list-url.d.ts.map +1 -1
  145. package/dist/utils/source-icons.d.ts.map +1 -1
  146. package/dist/utils/trial.d.ts +18 -0
  147. package/dist/utils/trial.d.ts.map +1 -0
  148. package/package.json +1 -1
  149. package/src/components/chat/ask-prompts.tsx +25 -3
  150. package/src/components/chat/assistant-ask-prompts.tsx +78 -0
  151. package/src/components/chat/entity-cards/dispatch.tsx +38 -4
  152. package/src/components/chat/hooks/index.ts +12 -0
  153. package/src/components/chat/hooks/use-ask-prompts.ts +188 -0
  154. package/src/components/chat/index.ts +1 -0
  155. package/src/components/chat/utils/icon-library.tsx +6 -0
  156. package/src/components/faq/faq-ask-card.tsx +115 -0
  157. package/src/components/faq/faq-document-page.tsx +6 -1
  158. package/src/components/faq/faq-section.tsx +27 -5
  159. package/src/components/faq/index.ts +1 -0
  160. package/src/components/features/auth/auth-benefits-panel.tsx +5 -4
  161. package/src/components/features/remote-session/remote-desktop-view.tsx +86 -63
  162. package/src/components/help-center-pages/trust-center-page.tsx +5 -2
  163. package/src/components/navigation/mingo-ai-button.tsx +27 -6
  164. package/src/components/related-content/related-content-section.tsx +46 -47
  165. package/src/contexts/assistant-runtime-context.tsx +84 -0
  166. package/src/contexts/index.ts +9 -0
  167. package/src/hooks/use-self-fetch.ts +7 -0
  168. package/src/utils/index.ts +1 -0
  169. package/src/utils/list-url.ts +4 -0
  170. package/src/utils/source-icons.ts +10 -2
  171. package/src/utils/trial.ts +19 -0
  172. package/dist/chunk-AUMKE74M.cjs +0 -16
  173. package/dist/chunk-G3GRYDMS.js +0 -16
  174. package/dist/chunk-GEDY7HQI.cjs +0 -85
  175. package/dist/chunk-YBQQNDC7.js +0 -85
@@ -14,7 +14,7 @@ import {
14
14
  RoadmapView,
15
15
  useLegalDocs,
16
16
  useRoadmapVoting
17
- } from "../chunk-TBCZCRQ5.js";
17
+ } from "../chunk-Q5327DXK.js";
18
18
  import {
19
19
  DocNavigationProvider,
20
20
  DocViewer,
@@ -27,26 +27,27 @@ import {
27
27
  PersistentSidebar,
28
28
  useDocNavigation,
29
29
  useDocumentTree
30
- } from "../chunk-MM7MCIXL.js";
30
+ } from "../chunk-VYZCKY5K.js";
31
31
  import {
32
32
  FileDownloadCard,
33
33
  GoogleSheetsViewer,
34
34
  PdfViewer
35
- } from "../chunk-SGFTTJKO.js";
35
+ } from "../chunk-LO3KCLEF.js";
36
36
  import {
37
37
  PersistentPagination,
38
38
  PersistentPaginationWrapper,
39
39
  usePaginationLoading
40
- } from "../chunk-4QFWGLZO.js";
40
+ } from "../chunk-B2N4YX66.js";
41
41
  import {
42
42
  FaqAccordion,
43
+ FaqAskCard,
43
44
  FaqDocumentPage,
44
45
  FaqSection
45
- } from "../chunk-PQ6HBLZ7.js";
46
+ } from "../chunk-TORERAXD.js";
46
47
  import {
47
48
  GROUP_PAGE_SIZE,
48
49
  RelatedContentSection
49
- } from "../chunk-APJZBDQN.js";
50
+ } from "../chunk-PSMJYZMV.js";
50
51
  import {
51
52
  CveLink,
52
53
  OnboardingStepCard,
@@ -56,7 +57,7 @@ import {
56
57
  ShellTypeBadge,
57
58
  SoftwareInfo,
58
59
  SoftwareSourceBadge
59
- } from "../chunk-XGHGGBM3.js";
60
+ } from "../chunk-K2BYVPGR.js";
60
61
  import {
61
62
  AppHeader,
62
63
  AppLayout,
@@ -81,14 +82,14 @@ import {
81
82
  isMegaMenu,
82
83
  navLinkLabel,
83
84
  siteNavHasMobileMenus
84
- } from "../chunk-YEMCCYIF.js";
85
+ } from "../chunk-V6B2FBZK.js";
85
86
  import {
86
87
  MobileNavigationDropdown,
87
88
  MultiLevelNavigation,
88
89
  StickySectionNav,
89
90
  useScrollSpy,
90
91
  useSectionNavigation
91
- } from "../chunk-NZ5BHDFZ.js";
92
+ } from "../chunk-XW3Q623Q.js";
92
93
  import {
93
94
  DeliveryRow,
94
95
  DevCardRowContent,
@@ -97,16 +98,16 @@ import {
97
98
  DevSectionPage,
98
99
  DevSectionView,
99
100
  ListEmptyState
100
- } from "../chunk-45F7PXUI.js";
101
+ } from "../chunk-7HYEQKN6.js";
101
102
  import {
102
103
  EmptyState,
103
104
  UnifiedPagination
104
- } from "../chunk-6YPTUHM7.js";
105
- import "../chunk-JPD4NXH6.js";
105
+ } from "../chunk-URW23QUM.js";
106
+ import "../chunk-AZRI4XBP.js";
106
107
  import {
107
108
  ArticleAuthorByline,
108
109
  DetailPageSkeleton
109
- } from "../chunk-QXZCLQNV.js";
110
+ } from "../chunk-B5LNX4GZ.js";
110
111
  import {
111
112
  DocSearchBar,
112
113
  DocSearchResultRow,
@@ -114,10 +115,7 @@ import {
114
115
  mapDocSearchResults,
115
116
  resolveSearchResultAction,
116
117
  useDocSearch
117
- } from "../chunk-67QBMN4R.js";
118
- import {
119
- useSelfFetch
120
- } from "../chunk-YBQQNDC7.js";
118
+ } from "../chunk-O3MKJU6A.js";
121
119
  import {
122
120
  AIEnrichButton,
123
121
  AIEnrichSection,
@@ -704,7 +702,7 @@ import {
704
702
  useTrackerClock,
705
703
  useWalkthroughVideo,
706
704
  usersCountLabel
707
- } from "../chunk-N2PF5CFX.js";
705
+ } from "../chunk-7IOU6BJE.js";
708
706
  import {
709
707
  Board,
710
708
  BoardColumn,
@@ -779,7 +777,7 @@ import {
779
777
  formatRemoteSessionOffset,
780
778
  usePageActionsBottomPadding,
781
779
  useRemoteSessionTimer
782
- } from "../chunk-LOYPRJWA.js";
780
+ } from "../chunk-YK3X74SF.js";
783
781
  import {
784
782
  CommandApprovalToast,
785
783
  ToastCard,
@@ -791,7 +789,7 @@ import {
791
789
  useOnboardingState,
792
790
  useStickyToolbar,
793
791
  useToast
794
- } from "../chunk-IWCPXJEE.js";
792
+ } from "../chunk-3HZ6XSZC.js";
795
793
  import "../chunk-3K5ZLZE7.js";
796
794
  import {
797
795
  useEndpointsRuntime
@@ -806,7 +804,6 @@ import {
806
804
  PaginationNext,
807
805
  PaginationPrevious
808
806
  } from "../chunk-WSDT7LYL.js";
809
- import "../chunk-G3GRYDMS.js";
810
807
  import {
811
808
  Checkbox
812
809
  } from "../chunk-PLWMIU72.js";
@@ -814,6 +811,7 @@ import {
814
811
  ANNOUNCEMENT_CTA_DEFAULTS,
815
812
  ANTHROPIC_SUPPORTED_IMAGE_MIME,
816
813
  ASK_AI_OPEN_EVENT,
814
+ ASK_PROMPTS_DEFAULT_COUNT,
817
815
  AUTO_CONTINUATION_DIRECTIVE_PREFIX,
818
816
  AiAssistantInfo,
819
817
  ApprovalRequestMessage,
@@ -821,6 +819,7 @@ import {
821
819
  AskCard,
822
820
  AskDisplay,
823
821
  AskPrompts,
822
+ AssistantAskPrompts,
824
823
  BlockCard,
825
824
  CHAT_ATTACHMENT_CONCURRENT_UPLOADS_PER_USER,
826
825
  CHAT_ATTACHMENT_MARKDOWN_PATTERN,
@@ -986,6 +985,7 @@ import {
986
985
  UnarchiveChatModal,
987
986
  UnifiedSkeleton,
988
987
  UserDisplay,
988
+ VendorIcon,
989
989
  VideoBiteCard,
990
990
  VideoBitesStrip,
991
991
  WALL_SKELETON_LABEL_CH,
@@ -993,6 +993,8 @@ import {
993
993
  appendToTrailingAssistant,
994
994
  applyToolExecutionToMessages,
995
995
  approvalDisplaysInline,
996
+ assistantAvailable,
997
+ buildAskPromptsUrl,
996
998
  buildAutoContinuationDirective,
997
999
  buildCaptionsUrl,
998
1000
  buildChatAttachmentViewUrl,
@@ -1048,6 +1050,7 @@ import {
1048
1050
  getPlatformUrl,
1049
1051
  getSourceIconName,
1050
1052
  getSourceLabel,
1053
+ getVendorLogo,
1051
1054
  groupByAspectRatio,
1052
1055
  handleChatNavClick,
1053
1056
  historicalToUnified,
@@ -1086,6 +1089,8 @@ import {
1086
1089
  stripChatAttachmentMarkdown,
1087
1090
  stripSameOriginToPath,
1088
1091
  upsertTrailingCompaction,
1092
+ useAskPrompts,
1093
+ useAssistantOpen,
1089
1094
  useCaptions,
1090
1095
  useChat,
1091
1096
  useChatAppearance,
@@ -1109,12 +1114,14 @@ import {
1109
1114
  useSSE,
1110
1115
  useScriptedStream,
1111
1116
  useScrollFade,
1117
+ useShownAskPromptIds,
1118
+ useShownAskPrompts,
1112
1119
  useSlashCommandRegistry,
1113
1120
  useSlashCommands,
1114
1121
  useSseChatAdapter,
1115
1122
  useStableShallow,
1116
1123
  useUnifiedChat
1117
- } from "../chunk-JH2SIWPQ.js";
1124
+ } from "../chunk-PXAKSPLZ.js";
1118
1125
  import {
1119
1126
  ApprovalBatchMessage,
1120
1127
  ApprovalStatusTag,
@@ -1137,6 +1144,7 @@ import {
1137
1144
  useCollapsible,
1138
1145
  usesCanonicalStatusStyle
1139
1146
  } from "../chunk-2NASBO7O.js";
1147
+ import "../chunk-AFTRPEXO.js";
1140
1148
  import {
1141
1149
  APPROVAL_BLOCK_VARIANT,
1142
1150
  APPROVAL_STATUS,
@@ -1159,7 +1167,7 @@ import {
1159
1167
  SlashCommandSuggestions,
1160
1168
  isStructuredContent,
1161
1169
  normalizeContent
1162
- } from "../chunk-KBJJQFYU.js";
1170
+ } from "../chunk-ZPHOQDAE.js";
1163
1171
  import {
1164
1172
  ActionsMenu,
1165
1173
  ActionsMenuDropdown,
@@ -1295,9 +1303,10 @@ import {
1295
1303
  statusBadgeVariants,
1296
1304
  toStripProfile,
1297
1305
  useCoverImageFallback,
1306
+ useSelfFetch,
1298
1307
  useVideoOriginPreconnect,
1299
1308
  useVideoWarmup
1300
- } from "../chunk-TTVOLEUS.js";
1309
+ } from "../chunk-GANIUMRU.js";
1301
1310
  import {
1302
1311
  AgentMark
1303
1312
  } from "../chunk-H3PKYE4N.js";
@@ -1310,7 +1319,7 @@ import {
1310
1319
  getIconComponent,
1311
1320
  normalizeIconKey,
1312
1321
  resolveIcon
1313
- } from "../chunk-JHQ334WS.js";
1322
+ } from "../chunk-742BGXNX.js";
1314
1323
  import {
1315
1324
  FloatingTooltip,
1316
1325
  OPENFRAME_CLASSIFICATIONS,
@@ -1325,7 +1334,7 @@ import {
1325
1334
  } from "../chunk-FBZMAPWO.js";
1326
1335
  import {
1327
1336
  positiveInt
1328
- } from "../chunk-AGVXKD4K.js";
1337
+ } from "../chunk-FSQQZFVG.js";
1329
1338
  import {
1330
1339
  useChatRuntime
1331
1340
  } from "../chunk-E4ABZWTJ.js";
@@ -1741,113 +1750,7 @@ function AnnouncementBar({
1741
1750
 
1742
1751
  // src/components/categories-cart.tsx
1743
1752
  import { ChevronRight } from "lucide-react";
1744
-
1745
- // src/utils/url-fix.ts
1746
- function fixUrlDoubleSlashes(url) {
1747
- if (!url) return url;
1748
- const protocolMatch = url.match(/^(https?:\/\/)/);
1749
- if (protocolMatch) {
1750
- const protocol = protocolMatch[1];
1751
- const rest = url.substring(protocol.length);
1752
- const fixedRest = rest.replace(/\/+/g, "/");
1753
- return protocol + fixedRest;
1754
- }
1755
- return url.replace(/\/+/g, "/");
1756
- }
1757
- function fixSupabaseStorageUrl(url) {
1758
- if (!url) return url;
1759
- const SUPABASE_STORAGE_SEGMENT = "/storage/v1/object/public/";
1760
- if (url.includes(SUPABASE_STORAGE_SEGMENT)) {
1761
- return fixUrlDoubleSlashes(url);
1762
- }
1763
- return url;
1764
- }
1765
-
1766
- // src/utils/vendor-media-stub.ts
1767
- function getVendorLogo(vendor) {
1768
- if (vendor.logo_url) {
1769
- return fixSupabaseStorageUrl(vendor.logo_url);
1770
- }
1771
- if (vendor.logo) {
1772
- return fixSupabaseStorageUrl(vendor.logo);
1773
- }
1774
- const logoMedia = vendor.vendor_media?.find((m) => m.media_type === "logo");
1775
- if (logoMedia?.media_url) {
1776
- return fixSupabaseStorageUrl(logoMedia.media_url);
1777
- }
1778
- return null;
1779
- }
1780
-
1781
- // src/components/vendor-icon.tsx
1782
- import { jsx as jsx2 } from "react/jsx-runtime";
1783
- var sizeClasses = {
1784
- xs: "w-6 h-6",
1785
- sm: "w-8 h-8",
1786
- md: "w-10 h-10",
1787
- lg: "w-12 h-12",
1788
- l: "w-14 h-14",
1789
- xl: "w-16 h-16"
1790
- };
1791
- var imageSizeMap = {
1792
- xs: { width: 16, height: 16 },
1793
- sm: { width: 20, height: 20 },
1794
- md: { width: 32, height: 32 },
1795
- lg: { width: 40, height: 40 },
1796
- l: { width: 38, height: 38 },
1797
- xl: { width: 40, height: 40 }
1798
- };
1799
- var tilePxMap = {
1800
- xs: 24,
1801
- sm: 32,
1802
- md: 40,
1803
- lg: 48,
1804
- l: 56,
1805
- xl: 64
1806
- };
1807
- var backgroundClasses = {
1808
- dark: "bg-ods-bg border border-ods-border",
1809
- light: "bg-ods-card border border-ods-border",
1810
- white: "bg-white border border-[#E5E5E5]"
1811
- };
1812
- function VendorIcon({
1813
- vendor,
1814
- size = "md",
1815
- className = "",
1816
- showBackground = true,
1817
- backgroundStyle = "dark"
1818
- }) {
1819
- const logoUrl = getVendorLogo(vendor);
1820
- const { width, height } = showBackground ? imageSizeMap[size] : { width: tilePxMap[size], height: tilePxMap[size] };
1821
- const containerClasses = cn(
1822
- sizeClasses[size],
1823
- "flex flex-shrink-0 items-center justify-center rounded-lg",
1824
- showBackground && backgroundClasses[backgroundStyle],
1825
- !showBackground && "overflow-hidden",
1826
- className
1827
- );
1828
- return /* @__PURE__ */ jsx2("div", { className: containerClasses, children: logoUrl ? /* @__PURE__ */ jsx2(
1829
- next_image_default,
1830
- {
1831
- src: getProxiedImageUrl2(logoUrl) || logoUrl,
1832
- alt: `${vendor.title} logo`,
1833
- width,
1834
- height,
1835
- className: cn("object-contain", showBackground ? "p-1" : "h-full w-full")
1836
- }
1837
- ) : /* @__PURE__ */ jsx2(
1838
- "div",
1839
- {
1840
- className: cn(
1841
- "flex items-center justify-center uppercase text-h6",
1842
- backgroundStyle === "white" ? "text-[#333333]" : "text-ods-text-secondary"
1843
- ),
1844
- children: vendor.title?.substring(0, 2) || "??"
1845
- }
1846
- ) });
1847
- }
1848
-
1849
- // src/components/categories-cart.tsx
1850
- import { jsx as jsx3, jsxs as jsxs2 } from "react/jsx-runtime";
1753
+ import { jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime";
1851
1754
  function CategoriesCart({
1852
1755
  category,
1853
1756
  vendors = [],
@@ -1856,23 +1759,23 @@ function CategoriesCart({
1856
1759
  isLoading = false,
1857
1760
  className = ""
1858
1761
  }) {
1859
- return /* @__PURE__ */ jsx3(
1762
+ return /* @__PURE__ */ jsx2(
1860
1763
  next_link_default,
1861
1764
  {
1862
1765
  href: `/vendors?category=${category.slug}`,
1863
1766
  className: `group relative block rounded-lg border border-ods-border bg-ods-card p-3 pb-4 transition-colors hover:border-ods-accent md:p-4 md:pb-6 ${className}`,
1864
1767
  children: /* @__PURE__ */ jsxs2("div", { className: "flex flex-col gap-4 md:gap-6", children: [
1865
1768
  /* @__PURE__ */ jsxs2("div", { className: "relative h-8 w-full overflow-hidden md:h-10", children: [
1866
- /* @__PURE__ */ jsx3("div", { className: "flex w-full gap-2 md:gap-3", children: isLoading ? (
1769
+ /* @__PURE__ */ jsx2("div", { className: "flex w-full gap-2 md:gap-3", children: isLoading ? (
1867
1770
  // Skeleton loading for vendor icons
1868
- Array.from({ length: 20 }).map((_, index) => /* @__PURE__ */ jsx3(
1771
+ Array.from({ length: 20 }).map((_, index) => /* @__PURE__ */ jsx2(
1869
1772
  "div",
1870
1773
  {
1871
1774
  className: "h-8 w-8 flex-shrink-0 animate-pulse rounded bg-ods-border md:h-10 md:w-10"
1872
1775
  },
1873
1776
  index
1874
1777
  ))
1875
- ) : vendors && vendors.length > 0 ? vendors.map((vendor) => /* @__PURE__ */ jsx3(
1778
+ ) : vendors && vendors.length > 0 ? vendors.map((vendor) => /* @__PURE__ */ jsx2(
1876
1779
  VendorIcon,
1877
1780
  {
1878
1781
  vendor,
@@ -1882,21 +1785,21 @@ function CategoriesCart({
1882
1785
  vendor.id
1883
1786
  )) : (
1884
1787
  // No vendors found - show placeholder icons
1885
- Array.from({ length: 6 }).map((_, index) => /* @__PURE__ */ jsx3(
1788
+ Array.from({ length: 6 }).map((_, index) => /* @__PURE__ */ jsx2(
1886
1789
  "div",
1887
1790
  {
1888
1791
  className: "flex h-8 w-8 flex-shrink-0 items-center justify-center rounded bg-ods-border opacity-30 md:h-10 md:w-10",
1889
- children: /* @__PURE__ */ jsx3("div", { className: "h-4 w-4 rounded-sm bg-ods-skeleton md:h-6 md:w-6" })
1792
+ children: /* @__PURE__ */ jsx2("div", { className: "h-4 w-4 rounded-sm bg-ods-skeleton md:h-6 md:w-6" })
1890
1793
  },
1891
1794
  index
1892
1795
  ))
1893
1796
  ) }),
1894
- /* @__PURE__ */ jsx3("div", { className: "pointer-events-none absolute inset-y-0 left-0 w-4 bg-gradient-to-r from-[#212121] to-transparent md:w-6" }),
1895
- /* @__PURE__ */ jsx3("div", { className: "pointer-events-none absolute inset-y-0 right-0 w-4 bg-gradient-to-l from-[#212121] to-transparent md:w-6" })
1797
+ /* @__PURE__ */ jsx2("div", { className: "pointer-events-none absolute inset-y-0 left-0 w-4 bg-gradient-to-r from-[#212121] to-transparent md:w-6" }),
1798
+ /* @__PURE__ */ jsx2("div", { className: "pointer-events-none absolute inset-y-0 right-0 w-4 bg-gradient-to-l from-[#212121] to-transparent md:w-6" })
1896
1799
  ] }),
1897
1800
  /* @__PURE__ */ jsxs2("div", { className: "flex flex-col gap-2", children: [
1898
1801
  /* @__PURE__ */ jsxs2("div", { className: "flex flex-col gap-1", children: [
1899
- /* @__PURE__ */ jsx3("h3", { className: "text-ods-text-primary transition-colors text-h3 group-hover:text-ods-accent", children: category.name }),
1802
+ /* @__PURE__ */ jsx2("h3", { className: "text-ods-text-primary transition-colors text-h3 group-hover:text-ods-accent", children: category.name }),
1900
1803
  /* @__PURE__ */ jsxs2("p", { className: "text-ods-text-secondary text-h6", children: [
1901
1804
  subcategoryCount || 0,
1902
1805
  " Subcategories \u2022 ",
@@ -1905,13 +1808,13 @@ function CategoriesCart({
1905
1808
  ] })
1906
1809
  ] }),
1907
1810
  /* @__PURE__ */ jsxs2("div", { className: "flex items-start justify-between gap-4 md:items-end md:gap-6", children: [
1908
- /* @__PURE__ */ jsx3("p", { className: "flex-1 text-ods-text-primary text-h4", children: category.description }),
1909
- /* @__PURE__ */ jsx3(
1811
+ /* @__PURE__ */ jsx2("p", { className: "flex-1 text-ods-text-primary text-h4", children: category.description }),
1812
+ /* @__PURE__ */ jsx2(
1910
1813
  "div",
1911
1814
  {
1912
1815
  className: "flex h-10 w-10 flex-shrink-0 items-center justify-center rounded-md border border-ods-border bg-transparent transition-colors group-hover:bg-ods-accent md:h-12 md:w-12",
1913
1816
  "aria-label": `View ${category.name} category`,
1914
- children: /* @__PURE__ */ jsx3(ChevronRight, { className: "h-5 w-5 text-ods-text-primary transition-colors group-hover:text-ods-text-on-accent md:h-6 md:w-6" })
1817
+ children: /* @__PURE__ */ jsx2(ChevronRight, { className: "h-5 w-5 text-ods-text-primary transition-colors group-hover:text-ods-text-on-accent md:h-6 md:w-6" })
1915
1818
  }
1916
1819
  )
1917
1820
  ] })
@@ -1922,12 +1825,12 @@ function CategoriesCart({
1922
1825
  }
1923
1826
 
1924
1827
  // src/components/category-card.tsx
1925
- import { jsx as jsx4, jsxs as jsxs3 } from "react/jsx-runtime";
1828
+ import { jsx as jsx3, jsxs as jsxs3 } from "react/jsx-runtime";
1926
1829
  function CategoryCard({ name, description, categoryCount, productCount, icons = [] }) {
1927
1830
  return /* @__PURE__ */ jsxs3("article", { className: "box-border flex min-w-0 flex-col rounded-[12px] border border-ods-border bg-ods-card p-8", children: [
1928
- /* @__PURE__ */ jsx4("div", { className: "mb-8 flex items-center justify-center gap-6", children: (icons.length > 0 ? icons : Array(10).fill(null)).map((icon, i) => /* @__PURE__ */ jsx4("div", { className: "flex h-10 w-10 items-center justify-center rounded bg-ods-skeleton", children: icon }, i)) }),
1831
+ /* @__PURE__ */ jsx3("div", { className: "mb-8 flex items-center justify-center gap-6", children: (icons.length > 0 ? icons : Array(10).fill(null)).map((icon, i) => /* @__PURE__ */ jsx3("div", { className: "flex h-10 w-10 items-center justify-center rounded bg-ods-skeleton", children: icon }, i)) }),
1929
1832
  /* @__PURE__ */ jsxs3("div", { className: "flex flex-1 flex-col", children: [
1930
- /* @__PURE__ */ jsx4("h2", { className: "mb-2 text-left text-ods-text-primary text-h2", children: name }),
1833
+ /* @__PURE__ */ jsx3("h2", { className: "mb-2 text-left text-ods-text-primary text-h2", children: name }),
1931
1834
  /* @__PURE__ */ jsxs3("div", { className: "mb-4 text-left text-ods-text-secondary text-h6", children: [
1932
1835
  categoryCount,
1933
1836
  " Categories \u2022 ",
@@ -1935,14 +1838,14 @@ function CategoryCard({ name, description, categoryCount, productCount, icons =
1935
1838
  " Products"
1936
1839
  ] }),
1937
1840
  /* @__PURE__ */ jsxs3("div", { className: "flex flex-row items-start", children: [
1938
- /* @__PURE__ */ jsx4("p", { className: "flex-1 text-left text-ods-text-primary text-h6", children: description }),
1939
- /* @__PURE__ */ jsx4(
1841
+ /* @__PURE__ */ jsx3("p", { className: "flex-1 text-left text-ods-text-primary text-h6", children: description }),
1842
+ /* @__PURE__ */ jsx3(
1940
1843
  "button",
1941
1844
  {
1942
1845
  className: "ml-4 flex h-12 w-12 items-center justify-center rounded-[6px] border border-ods-border bg-transparent transition-colors hover:bg-ods-accent",
1943
1846
  style: { minWidth: 48, minHeight: 48 },
1944
1847
  "aria-label": `View ${name}`,
1945
- children: /* @__PURE__ */ jsx4("svg", { width: "24", height: "24", fill: "none", stroke: "#FAFAFA", strokeWidth: "2", viewBox: "0 0 24 24", children: /* @__PURE__ */ jsx4("path", { d: "M9 18l6-6-6-6" }) })
1848
+ children: /* @__PURE__ */ jsx3("svg", { width: "24", height: "24", fill: "none", stroke: "#FAFAFA", strokeWidth: "2", viewBox: "0 0 24 24", children: /* @__PURE__ */ jsx3("path", { d: "M9 18l6-6-6-6" }) })
1946
1849
  }
1947
1850
  )
1948
1851
  ] })
@@ -1952,7 +1855,7 @@ function CategoryCard({ name, description, categoryCount, productCount, icons =
1952
1855
 
1953
1856
  // src/components/auth-stub.tsx
1954
1857
  import { createContext } from "react";
1955
- import { jsx as jsx5 } from "react/jsx-runtime";
1858
+ import { jsx as jsx4 } from "react/jsx-runtime";
1956
1859
  var AuthContext = createContext({
1957
1860
  user: null,
1958
1861
  isLoading: false
@@ -1977,24 +1880,24 @@ function useAuth() {
1977
1880
  };
1978
1881
  }
1979
1882
  function AuthProvider({ children }) {
1980
- return /* @__PURE__ */ jsx5(AuthContext.Provider, { value: { user: { id: "mock-user-id", name: "Mock User" }, isLoading: false }, children });
1883
+ return /* @__PURE__ */ jsx4(AuthContext.Provider, { value: { user: { id: "mock-user-id", name: "Mock User" }, isLoading: false }, children });
1981
1884
  }
1982
1885
 
1983
1886
  // src/components/user-summary-stub.tsx
1984
- import { jsx as jsx6, jsxs as jsxs4 } from "react/jsx-runtime";
1887
+ import { jsx as jsx5, jsxs as jsxs4 } from "react/jsx-runtime";
1985
1888
  var getAuthProviderIcon = (provider) => {
1986
1889
  const p = provider.toLowerCase();
1987
1890
  switch (p) {
1988
1891
  case "google":
1989
- return /* @__PURE__ */ jsx6(next_image_default, { src: "/icons/google-logo.svg", alt: "Google", width: 16, height: 16, className: "h-4 w-4" });
1892
+ return /* @__PURE__ */ jsx5(next_image_default, { src: "/icons/google-logo.svg", alt: "Google", width: 16, height: 16, className: "h-4 w-4" });
1990
1893
  case "microsoft":
1991
1894
  case "azure":
1992
- return /* @__PURE__ */ jsx6(next_image_default, { src: "/icons/microsoft-logo.svg", alt: "Microsoft", width: 16, height: 16, className: "h-4 w-4" });
1895
+ return /* @__PURE__ */ jsx5(next_image_default, { src: "/icons/microsoft-logo.svg", alt: "Microsoft", width: 16, height: 16, className: "h-4 w-4" });
1993
1896
  case "slack":
1994
1897
  case "slack_oidc":
1995
- return /* @__PURE__ */ jsx6("div", { className: "h-4 w-4 rounded-full bg-ods-text-secondary" });
1898
+ return /* @__PURE__ */ jsx5("div", { className: "h-4 w-4 rounded-full bg-ods-text-secondary" });
1996
1899
  default:
1997
- return /* @__PURE__ */ jsx6("div", { className: "h-4 w-4 rounded-full bg-ods-text-secondary" });
1900
+ return /* @__PURE__ */ jsx5("div", { className: "h-4 w-4 rounded-full bg-ods-text-secondary" });
1998
1901
  }
1999
1902
  };
2000
1903
  var formatNumber = (n) => {
@@ -2025,7 +1928,7 @@ function UserSummary({
2025
1928
  if (compact) {
2026
1929
  return /* @__PURE__ */ jsxs4("div", { className: "flex min-w-0 items-center gap-3", children: [
2027
1930
  /* @__PURE__ */ jsxs4("div", { className: "relative shrink-0", children: [
2028
- avatarUrl ? /* @__PURE__ */ jsx6(
1931
+ avatarUrl ? /* @__PURE__ */ jsx5(
2029
1932
  next_image_default,
2030
1933
  {
2031
1934
  src: getProxiedImageUrl2(avatarUrl) ?? avatarUrl,
@@ -2034,7 +1937,7 @@ function UserSummary({
2034
1937
  height: avatarSize,
2035
1938
  className: "rounded-lg object-cover"
2036
1939
  }
2037
- ) : /* @__PURE__ */ jsx6(
1940
+ ) : /* @__PURE__ */ jsx5(
2038
1941
  "div",
2039
1942
  {
2040
1943
  className: "flex items-center justify-center rounded-lg bg-ods-accent font-heading font-bold text-ods-text-on-accent",
@@ -2042,7 +1945,7 @@ function UserSummary({
2042
1945
  children: name.split(" ").map((n) => n.charAt(0)).join("").slice(0, 2)
2043
1946
  }
2044
1947
  ),
2045
- mspPreview && mspPreview.logoUrl && /* @__PURE__ */ jsx6(
1948
+ mspPreview && mspPreview.logoUrl && /* @__PURE__ */ jsx5(
2046
1949
  next_image_default,
2047
1950
  {
2048
1951
  src: getProxiedImageUrl2(mspPreview.logoUrl) ?? mspPreview.logoUrl,
@@ -2068,7 +1971,7 @@ function UserSummary({
2068
1971
  ]
2069
1972
  }
2070
1973
  ),
2071
- /* @__PURE__ */ jsx6(
1974
+ /* @__PURE__ */ jsx5(
2072
1975
  "p",
2073
1976
  {
2074
1977
  className: "truncate text-ods-text-secondary text-h6",
@@ -2082,7 +1985,7 @@ function UserSummary({
2082
1985
  return /* @__PURE__ */ jsxs4("div", { className: "flex w-full flex-col gap-4", children: [
2083
1986
  /* @__PURE__ */ jsxs4("div", { className: "flex w-full items-start gap-6", children: [
2084
1987
  /* @__PURE__ */ jsxs4("div", { className: "relative h-24 w-24 shrink-0 overflow-visible", children: [
2085
- avatarUrl ? /* @__PURE__ */ jsx6(
1988
+ avatarUrl ? /* @__PURE__ */ jsx5(
2086
1989
  next_image_default,
2087
1990
  {
2088
1991
  src: getProxiedImageUrl2(avatarUrl) ?? avatarUrl,
@@ -2091,8 +1994,8 @@ function UserSummary({
2091
1994
  height: 96,
2092
1995
  className: "rounded-full object-cover"
2093
1996
  }
2094
- ) : /* @__PURE__ */ jsx6("div", { className: "flex h-full w-full items-center justify-center rounded-full border border-ods-border bg-ods-card font-heading text-3xl text-ods-text-secondary", children: name.charAt(0).toUpperCase() }),
2095
- mspPreview && /* @__PURE__ */ jsx6("div", { className: "absolute -bottom-1 -right-1 flex size-10 select-none items-center justify-center overflow-hidden rounded-full bg-ods-bg ring-2 ring-ods-border", children: mspPreview.logoUrl ? /* @__PURE__ */ jsx6(
1997
+ ) : /* @__PURE__ */ jsx5("div", { className: "flex h-full w-full items-center justify-center rounded-full border border-ods-border bg-ods-card font-heading text-3xl text-ods-text-secondary", children: name.charAt(0).toUpperCase() }),
1998
+ mspPreview && /* @__PURE__ */ jsx5("div", { className: "absolute -bottom-1 -right-1 flex size-10 select-none items-center justify-center overflow-hidden rounded-full bg-ods-bg ring-2 ring-ods-border", children: mspPreview.logoUrl ? /* @__PURE__ */ jsx5(
2096
1999
  next_image_default,
2097
2000
  {
2098
2001
  src: getProxiedImageUrl2(mspPreview.logoUrl) ?? mspPreview.logoUrl,
@@ -2101,12 +2004,12 @@ function UserSummary({
2101
2004
  height: 40,
2102
2005
  className: "object-cover"
2103
2006
  }
2104
- ) : /* @__PURE__ */ jsx6("span", { className: "font-heading text-sm font-bold text-ods-text-primary", children: mspPreview.name?.charAt(0).toUpperCase() || "?" }) })
2007
+ ) : /* @__PURE__ */ jsx5("span", { className: "font-heading text-sm font-bold text-ods-text-primary", children: mspPreview.name?.charAt(0).toUpperCase() || "?" }) })
2105
2008
  ] }),
2106
2009
  /* @__PURE__ */ jsxs4("div", { className: "grid flex-1 grid-cols-[1fr_auto] gap-4", children: [
2107
2010
  /* @__PURE__ */ jsxs4("div", { className: "flex min-h-[6rem] flex-col justify-center space-y-3 truncate", children: [
2108
- /* @__PURE__ */ jsx6("p", { className: "truncate leading-none text-ods-text-primary text-h2", title: name, children: name }),
2109
- /* @__PURE__ */ jsx6(
2011
+ /* @__PURE__ */ jsx5("p", { className: "truncate leading-none text-ods-text-primary text-h2", title: name, children: name }),
2012
+ /* @__PURE__ */ jsx5(
2110
2013
  "p",
2111
2014
  {
2112
2015
  className: "truncate break-all text-ods-text-secondary text-h4",
@@ -2122,30 +2025,30 @@ function UserSummary({
2122
2025
  typeof mspPreview.annualRevenue === "number" ? `$${formatNumber(mspPreview.annualRevenue)}` : null
2123
2026
  ].filter(Boolean);
2124
2027
  const mspTitle = mspSegments.join(" \u2022 ");
2125
- return /* @__PURE__ */ jsx6("p", { className: "truncate text-ods-text-primary text-h6", title: mspTitle, children: mspSegments.flatMap((txt, idx) => idx === 0 ? [txt] : [" \u2022 ", txt]).map((seg, idx) => /* @__PURE__ */ jsx6("span", { className: seg === "\u2022" ? "text-ods-text-secondary" : "", children: seg }, idx)) });
2028
+ return /* @__PURE__ */ jsx5("p", { className: "truncate text-ods-text-primary text-h6", title: mspTitle, children: mspSegments.flatMap((txt, idx) => idx === 0 ? [txt] : [" \u2022 ", txt]).map((seg, idx) => /* @__PURE__ */ jsx5("span", { className: seg === "\u2022" ? "text-ods-text-secondary" : "", children: seg }, idx)) });
2126
2029
  })()
2127
2030
  ] }),
2128
2031
  (authProviders?.length || showEditButton) && /* @__PURE__ */ jsxs4("div", { className: "hidden min-h-[6rem] flex-shrink-0 flex-col items-end justify-between md:flex", children: [
2129
2032
  authProviders && authProviders.length > 0 && /* @__PURE__ */ jsxs4("div", { className: "flex items-center gap-2", children: [
2130
- /* @__PURE__ */ jsx6("span", { className: "select-none whitespace-nowrap text-ods-text-secondary text-h6", children: "Authorized by" }),
2131
- /* @__PURE__ */ jsx6("div", { className: "flex items-center gap-2", children: authProviders.map((p) => /* @__PURE__ */ jsx6("div", { className: "flex h-4 w-4 items-center justify-center", children: getAuthProviderIcon(p) }, p)) })
2033
+ /* @__PURE__ */ jsx5("span", { className: "select-none whitespace-nowrap text-ods-text-secondary text-h6", children: "Authorized by" }),
2034
+ /* @__PURE__ */ jsx5("div", { className: "flex items-center gap-2", children: authProviders.map((p) => /* @__PURE__ */ jsx5("div", { className: "flex h-4 w-4 items-center justify-center", children: getAuthProviderIcon(p) }, p)) })
2132
2035
  ] }),
2133
- showEditButton && /* @__PURE__ */ jsx6("div", { className: "text-ods-text-secondary text-h6", children: "Edit Profile" })
2036
+ showEditButton && /* @__PURE__ */ jsx5("div", { className: "text-ods-text-secondary text-h6", children: "Edit Profile" })
2134
2037
  ] })
2135
2038
  ] })
2136
2039
  ] }),
2137
2040
  (authProviders?.length || showEditButton) && /* @__PURE__ */ jsxs4("div", { className: "flex w-full items-center justify-between gap-4 md:hidden", children: [
2138
2041
  authProviders && authProviders.length > 0 && /* @__PURE__ */ jsxs4("div", { className: "flex items-center gap-2", children: [
2139
- /* @__PURE__ */ jsx6("span", { className: "select-none whitespace-nowrap text-ods-text-secondary text-h6", children: "Authorized by" }),
2140
- /* @__PURE__ */ jsx6("div", { className: "flex items-center gap-2", children: authProviders.map((p) => /* @__PURE__ */ jsx6("div", { className: "flex h-4 w-4 items-center justify-center", children: getAuthProviderIcon(p) }, p)) })
2042
+ /* @__PURE__ */ jsx5("span", { className: "select-none whitespace-nowrap text-ods-text-secondary text-h6", children: "Authorized by" }),
2043
+ /* @__PURE__ */ jsx5("div", { className: "flex items-center gap-2", children: authProviders.map((p) => /* @__PURE__ */ jsx5("div", { className: "flex h-4 w-4 items-center justify-center", children: getAuthProviderIcon(p) }, p)) })
2141
2044
  ] }),
2142
- showEditButton && /* @__PURE__ */ jsx6("div", { className: "text-ods-text-secondary text-h6", children: "Edit Profile" })
2045
+ showEditButton && /* @__PURE__ */ jsx5("div", { className: "text-ods-text-secondary text-h6", children: "Edit Profile" })
2143
2046
  ] })
2144
2047
  ] });
2145
2048
  }
2146
2049
 
2147
2050
  // src/components/vendor-display-button.tsx
2148
- import { jsx as jsx7, jsxs as jsxs5 } from "react/jsx-runtime";
2051
+ import { jsx as jsx6, jsxs as jsxs5 } from "react/jsx-runtime";
2149
2052
  function VendorDisplayButton({ vendor, onClick, variant = "default", externalUrl }) {
2150
2053
  const handleClick = () => {
2151
2054
  if (externalUrl && vendor.slug) {
@@ -2162,7 +2065,7 @@ function VendorDisplayButton({ vendor, onClick, variant = "default", externalUrl
2162
2065
  onClick: handleClick,
2163
2066
  className: "inline-flex items-center gap-2 rounded-full border border-ods-border bg-ods-card px-3 py-1.5 transition-colors hover:border-ods-accent/50",
2164
2067
  children: [
2165
- logoUrl ? /* @__PURE__ */ jsx7("div", { className: "h-5 w-5 flex-shrink-0 overflow-hidden rounded", children: /* @__PURE__ */ jsx7(
2068
+ logoUrl ? /* @__PURE__ */ jsx6("div", { className: "h-5 w-5 flex-shrink-0 overflow-hidden rounded", children: /* @__PURE__ */ jsx6(
2166
2069
  next_image_default,
2167
2070
  {
2168
2071
  src: getProxiedImageUrl2(logoUrl) || logoUrl,
@@ -2171,8 +2074,8 @@ function VendorDisplayButton({ vendor, onClick, variant = "default", externalUrl
2171
2074
  height: 20,
2172
2075
  className: "h-full w-full object-cover"
2173
2076
  }
2174
- ) }) : /* @__PURE__ */ jsx7("div", { className: "flex h-5 w-5 flex-shrink-0 items-center justify-center rounded bg-ods-border", children: /* @__PURE__ */ jsx7("span", { className: "text-[10px] font-medium text-ods-text-secondary", children: vendor.title.charAt(0).toUpperCase() }) }),
2175
- /* @__PURE__ */ jsx7("span", { className: "text-ods-text-primary text-h6", children: vendor.title })
2077
+ ) }) : /* @__PURE__ */ jsx6("div", { className: "flex h-5 w-5 flex-shrink-0 items-center justify-center rounded bg-ods-border", children: /* @__PURE__ */ jsx6("span", { className: "text-[10px] font-medium text-ods-text-secondary", children: vendor.title.charAt(0).toUpperCase() }) }),
2078
+ /* @__PURE__ */ jsx6("span", { className: "text-ods-text-primary text-h6", children: vendor.title })
2176
2079
  ]
2177
2080
  }
2178
2081
  );
@@ -2183,7 +2086,7 @@ function VendorDisplayButton({ vendor, onClick, variant = "default", externalUrl
2183
2086
  onClick: handleClick,
2184
2087
  className: "flex max-w-full items-center gap-2 overflow-hidden rounded-lg border border-ods-border bg-ods-card px-3 py-2 transition-colors hover:border-ods-accent",
2185
2088
  children: [
2186
- logoUrl ? /* @__PURE__ */ jsx7("div", { className: "flex h-8 w-8 flex-shrink-0 items-center justify-center rounded-lg border border-ods-border bg-ods-card", children: /* @__PURE__ */ jsx7(
2089
+ logoUrl ? /* @__PURE__ */ jsx6("div", { className: "flex h-8 w-8 flex-shrink-0 items-center justify-center rounded-lg border border-ods-border bg-ods-card", children: /* @__PURE__ */ jsx6(
2187
2090
  next_image_default,
2188
2091
  {
2189
2092
  src: getProxiedImageUrl2(logoUrl) || logoUrl,
@@ -2192,15 +2095,15 @@ function VendorDisplayButton({ vendor, onClick, variant = "default", externalUrl
2192
2095
  height: 24,
2193
2096
  className: "rounded object-cover"
2194
2097
  }
2195
- ) }) : /* @__PURE__ */ jsx7("div", { className: "flex h-8 w-8 flex-shrink-0 items-center justify-center rounded-lg border border-ods-border bg-ods-border", children: /* @__PURE__ */ jsx7("span", { className: "text-ods-text-primary text-h6", children: vendor.title.charAt(0) }) }),
2196
- /* @__PURE__ */ jsx7("span", { className: "min-w-0 truncate text-ods-text-primary text-h4", title: vendor.title, children: vendor.title })
2098
+ ) }) : /* @__PURE__ */ jsx6("div", { className: "flex h-8 w-8 flex-shrink-0 items-center justify-center rounded-lg border border-ods-border bg-ods-border", children: /* @__PURE__ */ jsx6("span", { className: "text-ods-text-primary text-h6", children: vendor.title.charAt(0) }) }),
2099
+ /* @__PURE__ */ jsx6("span", { className: "min-w-0 truncate text-ods-text-primary text-h4", title: vendor.title, children: vendor.title })
2197
2100
  ]
2198
2101
  }
2199
2102
  );
2200
2103
  }
2201
2104
 
2202
2105
  // src/components/comment-card.tsx
2203
- import { Fragment, jsx as jsx8, jsxs as jsxs6 } from "react/jsx-runtime";
2106
+ import { Fragment, jsx as jsx7, jsxs as jsxs6 } from "react/jsx-runtime";
2204
2107
  function CommentCard({
2205
2108
  comment,
2206
2109
  onViewProduct,
@@ -2229,11 +2132,11 @@ function CommentCard({
2229
2132
  style: { maxWidth: "100%", wordBreak: "break-word" },
2230
2133
  children: [
2231
2134
  /* @__PURE__ */ jsxs6("div", { className: "mb-3 flex w-full flex-col gap-3 min-[420px]:flex-row min-[420px]:items-center min-[420px]:justify-between min-[420px]:gap-2", children: [
2232
- /* @__PURE__ */ jsx8("div", { className: "flex min-w-0 flex-1 items-center gap-2", children: leadWith === "vendor" && comment.vendor ? /* @__PURE__ */ jsxs6(Fragment, { children: [
2233
- /* @__PURE__ */ jsx8(VendorDisplayButton, { vendor: comment.vendor, onClick: onViewProduct || (() => {
2135
+ /* @__PURE__ */ jsx7("div", { className: "flex min-w-0 flex-1 items-center gap-2", children: leadWith === "vendor" && comment.vendor ? /* @__PURE__ */ jsxs6(Fragment, { children: [
2136
+ /* @__PURE__ */ jsx7(VendorDisplayButton, { vendor: comment.vendor, onClick: onViewProduct || (() => {
2234
2137
  }) }),
2235
- /* @__PURE__ */ jsx8("span", { className: "flex-shrink-0 whitespace-nowrap text-ods-text-secondary text-h6", children: formatActivityTime(comment.createdAt) })
2236
- ] }) : comment.user ? /* @__PURE__ */ jsx8(
2138
+ /* @__PURE__ */ jsx7("span", { className: "flex-shrink-0 whitespace-nowrap text-ods-text-secondary text-h6", children: formatActivityTime(comment.createdAt) })
2139
+ ] }) : comment.user ? /* @__PURE__ */ jsx7(
2237
2140
  UserSummary,
2238
2141
  {
2239
2142
  name: comment.user.name,
@@ -2253,7 +2156,7 @@ function CommentCard({
2253
2156
  authProviders: []
2254
2157
  }
2255
2158
  ) : null }),
2256
- /* @__PURE__ */ jsx8("div", { className: "flex justify-start gap-2 min-[420px]:justify-end", children: showDeleteButton && onDeleteComment && /* @__PURE__ */ jsx8(
2159
+ /* @__PURE__ */ jsx7("div", { className: "flex justify-start gap-2 min-[420px]:justify-end", children: showDeleteButton && onDeleteComment && /* @__PURE__ */ jsx7(
2257
2160
  Button,
2258
2161
  {
2259
2162
  onClick: () => onDeleteComment(comment.id),
@@ -2270,14 +2173,14 @@ function CommentCard({
2270
2173
  xmlns: "http://www.w3.org/2000/svg",
2271
2174
  className: "text-ods-text-primary",
2272
2175
  children: [
2273
- /* @__PURE__ */ jsx8(
2176
+ /* @__PURE__ */ jsx7(
2274
2177
  "path",
2275
2178
  {
2276
2179
  d: "M18.6025 4.37939C19.221 4.43597 19.6768 4.98399 19.6206 5.60254L18.5176 17.7358C18.4492 18.4886 18.3924 19.1183 18.3052 19.6299C18.2155 20.1552 18.0809 20.6447 17.8101 21.1021C17.4444 21.7195 16.9245 22.2292 16.3042 22.583L16.0317 22.7251C15.5519 22.9533 15.0526 23.0438 14.5215 23.0854C14.0042 23.126 13.3727 23.125 12.6172 23.125H9.38281C8.62726 23.125 7.9958 23.126 7.47852 23.0854C7.01357 23.049 6.57289 22.975 6.14844 22.8042L5.96826 22.7251C5.32037 22.4169 4.76543 21.9454 4.35693 21.3599L4.18994 21.1021C3.91912 20.6447 3.78445 20.1552 3.69482 19.6299C3.65123 19.3743 3.61556 19.0894 3.58203 18.7744L3.48242 17.7358L2.37939 5.60254L2.375 5.48682C2.38099 4.91684 2.81768 4.43244 3.39746 4.37939C3.97776 4.32664 4.496 4.72462 4.60449 5.28467L4.62061 5.39746L5.72363 17.5322C5.79528 18.3203 5.84358 18.8475 5.9126 19.252C5.97923 19.6424 6.05232 19.8298 6.12646 19.9551L6.28467 20.1836C6.45963 20.3987 6.68118 20.5732 6.93359 20.6934L7.04639 20.7388C7.17478 20.7822 7.35781 20.8195 7.6543 20.8428C8.06325 20.8749 8.59186 20.875 9.38281 20.875H12.6172C13.4081 20.875 13.9367 20.8749 14.3457 20.8428C14.7409 20.8117 14.9349 20.7559 15.0664 20.6934L15.3066 20.5557C15.5369 20.4008 15.7309 20.1958 15.8735 19.9551C15.9477 19.8298 16.0208 19.6424 16.0874 19.252C16.1564 18.8475 16.2047 18.3203 16.2764 17.5322L17.3794 5.39746C17.436 4.77903 17.984 4.32316 18.6025 4.37939Z",
2277
2180
  fill: "currentColor"
2278
2181
  }
2279
2182
  ),
2280
- /* @__PURE__ */ jsx8(
2183
+ /* @__PURE__ */ jsx7(
2281
2184
  "path",
2282
2185
  {
2283
2186
  d: "M7.37451 15.9995V11C7.37451 10.3788 7.87842 9.87526 8.49951 9.875C9.12083 9.875 9.62451 10.3787 9.62451 11V15.9995C9.62451 16.6208 9.12083 17.1245 8.49951 17.1245C7.87842 17.1242 7.37451 16.6207 7.37451 15.9995ZM12.3755 15.9995V11C12.3755 10.3787 12.8792 9.875 13.5005 9.875C14.1216 9.87526 14.6255 10.3788 14.6255 11V15.9995C14.6255 16.6207 14.1216 17.1242 13.5005 17.1245C12.8792 17.1245 12.3755 16.6208 12.3755 15.9995ZM12.585 0.875C13.0174 0.879157 13.425 0.903301 13.8096 1.02881L14.1157 1.14746C14.4155 1.28159 14.6931 1.46221 14.9375 1.68359L15.0811 1.82568C15.4034 2.16872 15.6379 2.59872 15.8984 3.05469L16.6528 4.37451H20L20.1157 4.38037C20.6825 4.43826 21.1248 4.91747 21.125 5.49951C21.125 6.08174 20.6827 6.5607 20.1157 6.61865L20 6.62451H2C1.37868 6.62451 0.875 6.12083 0.875 5.49951C0.875264 4.87842 1.37884 4.37451 2 4.37451H5.34717L6.32129 2.6709C6.53952 2.29735 6.76267 1.95525 7.0625 1.68359L7.31738 1.47705C7.58262 1.28327 7.87687 1.1312 8.19043 1.02881L8.38525 0.974609C8.71199 0.896341 9.05467 0.878464 9.41504 0.875H12.585ZM9.85742 3.125C9.29191 3.125 9.08123 3.13201 8.97266 3.14844L8.88916 3.16748C8.83075 3.18655 8.77503 3.21301 8.72217 3.24365L8.57275 3.35205C8.53704 3.38448 8.50137 3.42629 8.42773 3.54102L8.05566 4.1709L7.93848 4.37451H14.0615L13.9443 4.1709C13.6645 3.68114 13.554 3.50141 13.4858 3.41504L13.4272 3.35205C13.3815 3.31062 13.3309 3.27443 13.2778 3.24365L13.1108 3.16748C13.019 3.13753 12.8946 3.125 12.1426 3.125H9.85742Z",
@@ -2296,7 +2199,7 @@ function CommentCard({
2296
2199
  className: "w-full max-w-full space-y-2 overflow-hidden",
2297
2200
  style: { maxWidth: "100%", wordBreak: "break-word" },
2298
2201
  children: [
2299
- comment.title && /* @__PURE__ */ jsx8("div", { className: compact ? "flex h-[20px] items-center" : "flex h-[24px] items-center", children: /* @__PURE__ */ jsx8(
2202
+ comment.title && /* @__PURE__ */ jsx7("div", { className: compact ? "flex h-[20px] items-center" : "flex h-[24px] items-center", children: /* @__PURE__ */ jsx7(
2300
2203
  "h4",
2301
2204
  {
2302
2205
  className: "line-clamp-1 tracking-[-0.02em] text-ods-text-primary transition-colors text-h3 group-hover:text-ods-accent",
@@ -2315,7 +2218,7 @@ function CommentCard({
2315
2218
  ) }),
2316
2219
  fullBody ? (
2317
2220
  // Thread bodies are read in full — no fixed height, no clamp.
2318
- /* @__PURE__ */ jsx8(
2221
+ /* @__PURE__ */ jsx7(
2319
2222
  "p",
2320
2223
  {
2321
2224
  className: "whitespace-pre-wrap text-ods-text-primary text-h4",
@@ -2323,7 +2226,7 @@ function CommentCard({
2323
2226
  children: comment.content
2324
2227
  }
2325
2228
  )
2326
- ) : /* @__PURE__ */ jsx8("div", { className: compact ? "flex h-[60px] items-center" : "flex h-[72px] items-center", children: /* @__PURE__ */ jsx8(
2229
+ ) : /* @__PURE__ */ jsx7("div", { className: compact ? "flex h-[60px] items-center" : "flex h-[72px] items-center", children: /* @__PURE__ */ jsx7(
2327
2230
  "p",
2328
2231
  {
2329
2232
  className: "line-clamp-3 text-ods-text-primary text-h4",
@@ -2340,7 +2243,7 @@ function CommentCard({
2340
2243
  children: comment.content
2341
2244
  }
2342
2245
  ) }),
2343
- footer ? /* @__PURE__ */ jsx8("div", { className: "flex flex-wrap items-center gap-2 pt-2", children: footer }) : null
2246
+ footer ? /* @__PURE__ */ jsx7("div", { className: "flex flex-wrap items-center gap-2 pt-2", children: footer }) : null
2344
2247
  ]
2345
2248
  }
2346
2249
  )
@@ -2353,7 +2256,7 @@ function CommentCard({
2353
2256
 
2354
2257
  // src/components/comment-composer.tsx
2355
2258
  import { useState as useState2 } from "react";
2356
- import { jsx as jsx9, jsxs as jsxs7 } from "react/jsx-runtime";
2259
+ import { jsx as jsx8, jsxs as jsxs7 } from "react/jsx-runtime";
2357
2260
  function CommentComposer({
2358
2261
  withTitle = false,
2359
2262
  titleLabel = "Title",
@@ -2383,8 +2286,8 @@ function CommentComposer({
2383
2286
  /* @__PURE__ */ jsxs7("div", { className: "flex flex-col gap-[var(--spacing-system-sf)] md:flex-row", children: [
2384
2287
  /* @__PURE__ */ jsxs7("div", { className: "flex-1 overflow-hidden rounded-lg border border-ods-border bg-ods-bg", children: [
2385
2288
  withTitle ? /* @__PURE__ */ jsxs7("div", { className: "border-b border-ods-border", children: [
2386
- /* @__PURE__ */ jsx9(Label, { className: "px-3 pb-1 pt-2 text-ods-text-secondary text-badge", children: titleLabel }),
2387
- /* @__PURE__ */ jsx9(
2289
+ /* @__PURE__ */ jsx8(Label, { className: "px-3 pb-1 pt-2 text-ods-text-secondary text-badge", children: titleLabel }),
2290
+ /* @__PURE__ */ jsx8(
2388
2291
  Input,
2389
2292
  {
2390
2293
  ref: titleRef,
@@ -2396,8 +2299,8 @@ function CommentComposer({
2396
2299
  }
2397
2300
  )
2398
2301
  ] }) : null,
2399
- withTitle ? /* @__PURE__ */ jsx9(Label, { className: "px-3 pb-1 pt-2 text-ods-text-secondary text-badge", children: bodyLabel }) : null,
2400
- /* @__PURE__ */ jsx9(
2302
+ withTitle ? /* @__PURE__ */ jsx8(Label, { className: "px-3 pb-1 pt-2 text-ods-text-secondary text-badge", children: bodyLabel }) : null,
2303
+ /* @__PURE__ */ jsx8(
2401
2304
  Textarea,
2402
2305
  {
2403
2306
  value: body,
@@ -2410,8 +2313,8 @@ function CommentComposer({
2410
2313
  )
2411
2314
  ] }),
2412
2315
  /* @__PURE__ */ jsxs7("div", { className: "flex items-start gap-[var(--spacing-system-xsf)]", children: [
2413
- onCancel ? /* @__PURE__ */ jsx9(Button, { type: "button", variant: "outline", size: "small-legacy", onClick: onCancel, disabled: pending, children: cancelLabel }) : null,
2414
- /* @__PURE__ */ jsx9(
2316
+ onCancel ? /* @__PURE__ */ jsx8(Button, { type: "button", variant: "outline", size: "small-legacy", onClick: onCancel, disabled: pending, children: cancelLabel }) : null,
2317
+ /* @__PURE__ */ jsx8(
2415
2318
  Button,
2416
2319
  {
2417
2320
  type: "button",
@@ -2425,14 +2328,14 @@ function CommentComposer({
2425
2328
  )
2426
2329
  ] })
2427
2330
  ] }),
2428
- extras ? /* @__PURE__ */ jsx9("div", { className: "flex flex-wrap items-center gap-[var(--spacing-system-xsf)]", children: extras }) : null
2331
+ extras ? /* @__PURE__ */ jsx8("div", { className: "flex flex-wrap items-center gap-[var(--spacing-system-xsf)]", children: extras }) : null
2429
2332
  ] });
2430
2333
  }
2431
2334
 
2432
2335
  // src/components/comment-thread.tsx
2433
2336
  import { ChevronDown } from "lucide-react";
2434
2337
  import { useState as useState3 } from "react";
2435
- import { Fragment as Fragment2, jsx as jsx10, jsxs as jsxs8 } from "react/jsx-runtime";
2338
+ import { Fragment as Fragment2, jsx as jsx9, jsxs as jsxs8 } from "react/jsx-runtime";
2436
2339
  function CommentThread({
2437
2340
  comments,
2438
2341
  emptyLabel,
@@ -2446,9 +2349,9 @@ function CommentThread({
2446
2349
  onViewProduct
2447
2350
  }) {
2448
2351
  if (comments.length === 0) {
2449
- return emptyLabel ? /* @__PURE__ */ jsx10("p", { className: "text-ods-text-secondary text-h6", children: emptyLabel }) : null;
2352
+ return emptyLabel ? /* @__PURE__ */ jsx9("p", { className: "text-ods-text-secondary text-h6", children: emptyLabel }) : null;
2450
2353
  }
2451
- return /* @__PURE__ */ jsx10("div", { className: "flex flex-col gap-[var(--spacing-system-sf)]", children: comments.map((comment) => /* @__PURE__ */ jsx10(
2354
+ return /* @__PURE__ */ jsx9("div", { className: "flex flex-col gap-[var(--spacing-system-sf)]", children: comments.map((comment) => /* @__PURE__ */ jsx9(
2452
2355
  CommentThreadRow,
2453
2356
  {
2454
2357
  comment,
@@ -2486,7 +2389,7 @@ function CommentThreadRow({
2486
2389
  replies.length === 1 ? "reply" : "replies"
2487
2390
  ] }) : null,
2488
2391
  onReply || actions ? /* @__PURE__ */ jsxs8("span", { className: "ml-auto flex flex-wrap gap-[var(--spacing-system-xsf)]", children: [
2489
- onReply ? /* @__PURE__ */ jsx10(
2392
+ onReply ? /* @__PURE__ */ jsx9(
2490
2393
  Button,
2491
2394
  {
2492
2395
  type: "button",
@@ -2500,7 +2403,7 @@ function CommentThreadRow({
2500
2403
  actions
2501
2404
  ] }) : null
2502
2405
  ] });
2503
- return /* @__PURE__ */ jsx10(
2406
+ return /* @__PURE__ */ jsx9(
2504
2407
  CommentCard,
2505
2408
  {
2506
2409
  fullBody: true,
@@ -2510,7 +2413,7 @@ function CommentThreadRow({
2510
2413
  onDeleteComment: onDelete ? (id) => void onDelete(id) : void 0,
2511
2414
  footer,
2512
2415
  children: replies.length > 0 || replyOpen ? /* @__PURE__ */ jsxs8("div", { className: "ml-[var(--spacing-system-lf)] mt-[var(--spacing-system-xsf)] flex flex-col gap-[var(--spacing-system-xsf)] border-l border-ods-border pl-[var(--spacing-system-sf)]", children: [
2513
- replies.map((reply) => /* @__PURE__ */ jsx10(
2416
+ replies.map((reply) => /* @__PURE__ */ jsx9(
2514
2417
  CommentCard,
2515
2418
  {
2516
2419
  fullBody: true,
@@ -2520,7 +2423,7 @@ function CommentThreadRow({
2520
2423
  },
2521
2424
  reply.id
2522
2425
  )),
2523
- replyOpen && onReply ? /* @__PURE__ */ jsx10(
2426
+ replyOpen && onReply ? /* @__PURE__ */ jsx9(
2524
2427
  CommentComposer,
2525
2428
  {
2526
2429
  pending,
@@ -2548,7 +2451,7 @@ function CommentsBlock({ title, summary, defaultOpen = false, children, composer
2548
2451
  if (defaultOpen) setOpen(true);
2549
2452
  }
2550
2453
  return /* @__PURE__ */ jsxs8("div", { className: "space-y-[var(--spacing-system-sf)]", children: [
2551
- /* @__PURE__ */ jsx10(
2454
+ /* @__PURE__ */ jsx9(
2552
2455
  Button,
2553
2456
  {
2554
2457
  type: "button",
@@ -2556,7 +2459,7 @@ function CommentsBlock({ title, summary, defaultOpen = false, children, composer
2556
2459
  size: "small-legacy",
2557
2460
  className: "px-0 text-ods-text-secondary hover:text-ods-text-primary",
2558
2461
  onClick: () => setOpen((value) => !value),
2559
- rightIcon: /* @__PURE__ */ jsx10(ChevronDown, { className: `h-4 w-4 transition-transform ${open ? "rotate-180" : ""}` }),
2462
+ rightIcon: /* @__PURE__ */ jsx9(ChevronDown, { className: `h-4 w-4 transition-transform ${open ? "rotate-180" : ""}` }),
2560
2463
  children: `${title} \xB7 ${summary}`
2561
2464
  }
2562
2465
  ),
@@ -2569,7 +2472,7 @@ function CommentsBlock({ title, summary, defaultOpen = false, children, composer
2569
2472
 
2570
2473
  // src/components/filter-chip.tsx
2571
2474
  import { X as X2 } from "lucide-react";
2572
- import { jsx as jsx11, jsxs as jsxs9 } from "react/jsx-runtime";
2475
+ import { jsx as jsx10, jsxs as jsxs9 } from "react/jsx-runtime";
2573
2476
  function FilterChip({
2574
2477
  label,
2575
2478
  variant = "unselected",
@@ -2615,7 +2518,7 @@ function FilterChip({
2615
2518
  "aria-pressed": onClick && variant === "selected" ? true : void 0,
2616
2519
  "aria-disabled": disabled,
2617
2520
  children: [
2618
- /* @__PURE__ */ jsx11(
2521
+ /* @__PURE__ */ jsx10(
2619
2522
  "span",
2620
2523
  {
2621
2524
  className: cn(
@@ -2626,7 +2529,7 @@ function FilterChip({
2626
2529
  children: label
2627
2530
  }
2628
2531
  ),
2629
- removable && onRemove && /* @__PURE__ */ jsx11(
2532
+ removable && onRemove && /* @__PURE__ */ jsx10(
2630
2533
  "button",
2631
2534
  {
2632
2535
  type: "button",
@@ -2645,7 +2548,7 @@ function FilterChip({
2645
2548
  ),
2646
2549
  "aria-label": `Remove ${label} filter`,
2647
2550
  tabIndex: disabled ? -1 : 0,
2648
- children: /* @__PURE__ */ jsx11(X2, { className: "h-2 w-2 md:h-2 md:w-2" })
2551
+ children: /* @__PURE__ */ jsx10(X2, { className: "h-2 w-2 md:h-2 md:w-2" })
2649
2552
  }
2650
2553
  )
2651
2554
  ]
@@ -2962,7 +2865,7 @@ var blogFilterConfig = {
2962
2865
  // src/components/hero-image-uploader.tsx
2963
2866
  import { Loader2, Image as ImageIcon2, Upload, X as X3 } from "lucide-react";
2964
2867
  import { useRef, useState as useState4 } from "react";
2965
- import { Fragment as Fragment3, jsx as jsx12, jsxs as jsxs10 } from "react/jsx-runtime";
2868
+ import { Fragment as Fragment3, jsx as jsx11, jsxs as jsxs10 } from "react/jsx-runtime";
2966
2869
  function readUploadedUrl(payload) {
2967
2870
  if (typeof payload !== "object" || payload === null) return null;
2968
2871
  if ("data" in payload) {
@@ -3072,46 +2975,46 @@ function HeroImageUploader({
3072
2975
  className: "group relative flex aspect-square h-auto w-full items-center justify-center overflow-hidden md:aspect-auto md:h-full",
3073
2976
  style: { height: heightStyle },
3074
2977
  children: [
3075
- /* @__PURE__ */ jsx12(next_image_default, { src: imageUrl, className: `object-${objectFit}`, alt: "Cover", fill: true, sizes: "100vw", unoptimized: true }),
2978
+ /* @__PURE__ */ jsx11(next_image_default, { src: imageUrl, className: `object-${objectFit}`, alt: "Cover", fill: true, sizes: "100vw", unoptimized: true }),
3076
2979
  /* @__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: [
3077
- showReplaceButton && /* @__PURE__ */ jsx12(
2980
+ showReplaceButton && /* @__PURE__ */ jsx11(
3078
2981
  Button,
3079
2982
  {
3080
2983
  variant: "outline",
3081
2984
  size: "icon",
3082
2985
  onClick: openDialog,
3083
2986
  className: "h-12 w-12 rounded-full bg-white text-black hover:bg-gray-100",
3084
- children: /* @__PURE__ */ jsx12(Upload, { className: "h-5 w-5" })
2987
+ children: /* @__PURE__ */ jsx11(Upload, { className: "h-5 w-5" })
3085
2988
  }
3086
2989
  ),
3087
- /* @__PURE__ */ jsx12(
2990
+ /* @__PURE__ */ jsx11(
3088
2991
  Button,
3089
2992
  {
3090
2993
  variant: "outline",
3091
2994
  size: "icon",
3092
2995
  onClick: () => handleRemove(),
3093
2996
  className: "h-12 w-12 rounded-full bg-white text-black hover:bg-gray-100",
3094
- children: /* @__PURE__ */ jsx12(X3, { className: "h-5 w-5" })
2997
+ children: /* @__PURE__ */ jsx11(X3, { className: "h-5 w-5" })
3095
2998
  }
3096
2999
  )
3097
3000
  ] })
3098
3001
  ]
3099
3002
  }
3100
- ) : /* @__PURE__ */ jsx12(
3003
+ ) : /* @__PURE__ */ jsx11(
3101
3004
  "div",
3102
3005
  {
3103
3006
  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`,
3104
3007
  style: { height: heightStyle },
3105
3008
  onClick: openDialog,
3106
- children: uploading ? /* @__PURE__ */ jsx12(Loader2, { className: "h-8 w-8 animate-spin text-ods-accent" }) : /* @__PURE__ */ jsxs10(Fragment3, { children: [
3107
- /* @__PURE__ */ jsx12(ImageIcon2, { className: "h-12 w-12 text-ods-text-secondary" }),
3108
- /* @__PURE__ */ jsx12("span", { className: "mt-2 text-ods-text-primary text-h6", children: "Upload cover image" }),
3109
- /* @__PURE__ */ jsx12("span", { className: "mt-1 text-ods-text-secondary text-h6", children: "Click to upload or drag and drop" }),
3110
- /* @__PURE__ */ jsx12("span", { className: "text-ods-text-secondary text-h6", children: "PNG, JPEG, WebP, GIF up to 5MB" })
3009
+ children: uploading ? /* @__PURE__ */ jsx11(Loader2, { className: "h-8 w-8 animate-spin text-ods-accent" }) : /* @__PURE__ */ jsxs10(Fragment3, { children: [
3010
+ /* @__PURE__ */ jsx11(ImageIcon2, { className: "h-12 w-12 text-ods-text-secondary" }),
3011
+ /* @__PURE__ */ jsx11("span", { className: "mt-2 text-ods-text-primary text-h6", children: "Upload cover image" }),
3012
+ /* @__PURE__ */ jsx11("span", { className: "mt-1 text-ods-text-secondary text-h6", children: "Click to upload or drag and drop" }),
3013
+ /* @__PURE__ */ jsx11("span", { className: "text-ods-text-secondary text-h6", children: "PNG, JPEG, WebP, GIF up to 5MB" })
3111
3014
  ] })
3112
3015
  }
3113
3016
  ),
3114
- /* @__PURE__ */ jsx12("input", { ref: inputRef, type: "file", accept: IMAGE_FILE_ACCEPT, onChange: handleSelect, className: "hidden" })
3017
+ /* @__PURE__ */ jsx11("input", { ref: inputRef, type: "file", accept: IMAGE_FILE_ACCEPT, onChange: handleSelect, className: "hidden" })
3115
3018
  ] });
3116
3019
  }
3117
3020
 
@@ -3130,13 +3033,13 @@ var CommunityIcon2 = MessageSquare;
3130
3033
  var CompareIcon2 = GitCompare;
3131
3034
 
3132
3035
  // src/components/icons-block.tsx
3133
- import { jsx as jsx13, jsxs as jsxs11 } from "react/jsx-runtime";
3036
+ import { jsx as jsx12, jsxs as jsxs11 } from "react/jsx-runtime";
3134
3037
  var SunIcon2 = Sun;
3135
3038
  var MoonIcon2 = Moon;
3136
3039
  var CheckCircleIcon3 = CheckCircle;
3137
3040
  var GitHubIcon2 = Github;
3138
3041
  var PlusCircleIcon2 = PlusCircle;
3139
- var OpenmspLogo2 = () => /* @__PURE__ */ jsx13("div", { children: "Logo" });
3042
+ var OpenmspLogo2 = () => /* @__PURE__ */ jsx12("div", { children: "Logo" });
3140
3043
  var availableIcons = [
3141
3044
  VendorDirectoryIcon2,
3142
3045
  OpenSourceIcon2,
@@ -3199,13 +3102,13 @@ function ResponsiveIconsBlock({ loading = false }) {
3199
3102
  return iconGrid[row]?.[col] || availableIcons[0];
3200
3103
  };
3201
3104
  if (loading || iconGrid.length === 0) {
3202
- return /* @__PURE__ */ jsx13(
3105
+ return /* @__PURE__ */ jsx12(
3203
3106
  "div",
3204
3107
  {
3205
3108
  className: "relative h-[80px] w-full overflow-hidden bg-[#1A1A1A] md:h-[112px]",
3206
3109
  role: "presentation",
3207
3110
  "aria-hidden": "true",
3208
- children: /* @__PURE__ */ jsx13("div", { className: "absolute inset-0 animate-pulse bg-[#2A2A2A]/60" })
3111
+ children: /* @__PURE__ */ jsx12("div", { className: "absolute inset-0 animate-pulse bg-[#2A2A2A]/60" })
3209
3112
  }
3210
3113
  );
3211
3114
  }
@@ -3217,14 +3120,14 @@ function ResponsiveIconsBlock({ loading = false }) {
3217
3120
  role: "presentation",
3218
3121
  "aria-hidden": "true",
3219
3122
  children: [
3220
- /* @__PURE__ */ jsx13("style", { children: `
3123
+ /* @__PURE__ */ jsx12("style", { children: `
3221
3124
  .icons-block svg,
3222
3125
  .icons-block svg * {
3223
3126
  filter: grayscale(100%) brightness(0) invert(1) brightness(0.4) !important;
3224
3127
  fill: currentColor !important;
3225
3128
  }
3226
3129
  ` }),
3227
- /* @__PURE__ */ jsx13(
3130
+ /* @__PURE__ */ jsx12(
3228
3131
  "div",
3229
3132
  {
3230
3133
  className: "icons-block grid h-full w-full",
@@ -3236,7 +3139,7 @@ function ResponsiveIconsBlock({ loading = false }) {
3236
3139
  const col = idx % displayColumns;
3237
3140
  const row = Math.floor(idx / displayColumns);
3238
3141
  const IconComponent = getIconForIndex(idx);
3239
- return /* @__PURE__ */ jsx13(
3142
+ return /* @__PURE__ */ jsx12(
3240
3143
  "div",
3241
3144
  {
3242
3145
  className: "flex h-full w-full items-center justify-center",
@@ -3249,7 +3152,7 @@ function ResponsiveIconsBlock({ loading = false }) {
3249
3152
  boxSizing: "border-box"
3250
3153
  },
3251
3154
  role: "presentation",
3252
- children: /* @__PURE__ */ jsx13(IconComponent, { width: 16, height: 16, className: "text-[#666666] md:h-5 md:w-5", "aria-hidden": "true" })
3155
+ children: /* @__PURE__ */ jsx12(IconComponent, { width: 16, height: 16, className: "text-[#666666] md:h-5 md:w-5", "aria-hidden": "true" })
3253
3156
  },
3254
3157
  idx
3255
3158
  );
@@ -3265,7 +3168,7 @@ function ResponsiveIconsBlock({ loading = false }) {
3265
3168
  import { Check, RotateCcw } from "lucide-react";
3266
3169
  import { useCallback, useState as useState6 } from "react";
3267
3170
  import Cropper from "react-easy-crop";
3268
- import { jsx as jsx14, jsxs as jsxs12 } from "react/jsx-runtime";
3171
+ import { jsx as jsx13, jsxs as jsxs12 } from "react/jsx-runtime";
3269
3172
  function loadImage(src) {
3270
3173
  return new Promise((resolve, reject) => {
3271
3174
  const img = new Image();
@@ -3360,7 +3263,7 @@ var ImageCropper = ({
3360
3263
  tabIndex: 0,
3361
3264
  "aria-label": "Image cropper",
3362
3265
  children: [
3363
- /* @__PURE__ */ jsx14("div", { className: cn("relative aspect-square w-full overflow-hidden rounded-md md:aspect-video", checkerBg), children: /* @__PURE__ */ jsx14(
3266
+ /* @__PURE__ */ jsx13("div", { className: cn("relative aspect-square w-full overflow-hidden rounded-md md:aspect-video", checkerBg), children: /* @__PURE__ */ jsx13(
3364
3267
  Cropper,
3365
3268
  {
3366
3269
  image: src,
@@ -3379,8 +3282,8 @@ var ImageCropper = ({
3379
3282
  ) }),
3380
3283
  /* @__PURE__ */ jsxs12("div", { className: "flex flex-col gap-4", children: [
3381
3284
  /* @__PURE__ */ jsxs12("div", { className: "flex items-center gap-3", children: [
3382
- /* @__PURE__ */ jsx14("span", { className: "min-w-[60px] text-h6", children: "Zoom" }),
3383
- /* @__PURE__ */ jsx14(
3285
+ /* @__PURE__ */ jsx13("span", { className: "min-w-[60px] text-h6", children: "Zoom" }),
3286
+ /* @__PURE__ */ jsx13(
3384
3287
  Slider,
3385
3288
  {
3386
3289
  min: 1,
@@ -3394,8 +3297,8 @@ var ImageCropper = ({
3394
3297
  )
3395
3298
  ] }),
3396
3299
  /* @__PURE__ */ jsxs12("div", { className: "flex items-center gap-3", children: [
3397
- /* @__PURE__ */ jsx14("span", { className: "min-w-[60px] text-h6", children: "Rotate" }),
3398
- /* @__PURE__ */ jsx14(
3300
+ /* @__PURE__ */ jsx13("span", { className: "min-w-[60px] text-h6", children: "Rotate" }),
3301
+ /* @__PURE__ */ jsx13(
3399
3302
  Slider,
3400
3303
  {
3401
3304
  min: 0,
@@ -3407,12 +3310,12 @@ var ImageCropper = ({
3407
3310
  className: "flex-1"
3408
3311
  }
3409
3312
  ),
3410
- /* @__PURE__ */ jsx14(Button, { variant: "outline", size: "icon", onClick: () => setRotation(0), "aria-label": "Reset rotation", children: /* @__PURE__ */ jsx14(RotateCcw, { className: "h-4 w-4" }) })
3313
+ /* @__PURE__ */ jsx13(Button, { variant: "outline", size: "icon", onClick: () => setRotation(0), "aria-label": "Reset rotation", children: /* @__PURE__ */ jsx13(RotateCcw, { className: "h-4 w-4" }) })
3411
3314
  ] })
3412
3315
  ] }),
3413
3316
  /* @__PURE__ */ jsxs12("div", { className: "mt-2 flex justify-end gap-2", children: [
3414
- onCancel && /* @__PURE__ */ jsx14(Button, { variant: "outline", onClick: onCancel, "aria-label": "Cancel crop", children: "Cancel" }),
3415
- /* @__PURE__ */ jsx14(
3317
+ onCancel && /* @__PURE__ */ jsx13(Button, { variant: "outline", onClick: onCancel, "aria-label": "Cancel crop", children: "Cancel" }),
3318
+ /* @__PURE__ */ jsx13(
3416
3319
  Button,
3417
3320
  {
3418
3321
  variant: "accent",
@@ -3420,7 +3323,7 @@ var ImageCropper = ({
3420
3323
  const result = await exportCrop();
3421
3324
  if (result) onComplete(result);
3422
3325
  },
3423
- leftIcon: /* @__PURE__ */ jsx14(Check, { className: "h-4 w-4" }),
3326
+ leftIcon: /* @__PURE__ */ jsx13(Check, { className: "h-4 w-4" }),
3424
3327
  "aria-label": "Apply crop",
3425
3328
  children: "Apply"
3426
3329
  }
@@ -3432,19 +3335,19 @@ var ImageCropper = ({
3432
3335
  };
3433
3336
 
3434
3337
  // src/components/metric-value.tsx
3435
- import { jsx as jsx15, jsxs as jsxs13 } from "react/jsx-runtime";
3338
+ import { jsx as jsx14, jsxs as jsxs13 } from "react/jsx-runtime";
3436
3339
  function MetricValue({ value, label, className }) {
3437
3340
  return /* @__PURE__ */ jsxs13("div", { className: cn("flex items-end gap-2 whitespace-nowrap text-ods-text-primary text-h4", className), children: [
3438
3341
  value,
3439
- /* @__PURE__ */ jsx15("span", { className: "text-ods-text-secondary text-h6", children: label })
3342
+ /* @__PURE__ */ jsx14("span", { className: "text-ods-text-secondary text-h6", children: label })
3440
3343
  ] });
3441
3344
  }
3442
3345
 
3443
3346
  // src/components/msp-display.tsx
3444
- import { jsx as jsx16, jsxs as jsxs14 } from "react/jsx-runtime";
3347
+ import { jsx as jsx15, jsxs as jsxs14 } from "react/jsx-runtime";
3445
3348
  function MSPDisplay({ name, logoUrl, size = 40, className }) {
3446
3349
  return /* @__PURE__ */ jsxs14("div", { className: cn("flex min-w-0 items-center gap-2", className), children: [
3447
- /* @__PURE__ */ jsx16(
3350
+ /* @__PURE__ */ jsx15(
3448
3351
  SquareAvatar,
3449
3352
  {
3450
3353
  src: logoUrl ? getProxiedImageUrl(logoUrl) || logoUrl : void 0,
@@ -3453,16 +3356,16 @@ function MSPDisplay({ name, logoUrl, size = 40, className }) {
3453
3356
  sizePx: size
3454
3357
  }
3455
3358
  ),
3456
- /* @__PURE__ */ jsx16("h2", { className: "truncate pl-2", children: name })
3359
+ /* @__PURE__ */ jsx15("h2", { className: "truncate pl-2", children: name })
3457
3360
  ] });
3458
3361
  }
3459
3362
 
3460
3363
  // src/components/open-source-features.tsx
3461
3364
  import { Terminal, DollarSign as DollarSign2, Network, Users as Users2 } from "lucide-react";
3462
- import { jsx as jsx17, jsxs as jsxs15 } from "react/jsx-runtime";
3365
+ import { jsx as jsx16, jsxs as jsxs15 } from "react/jsx-runtime";
3463
3366
 
3464
3367
  // src/components/pricing-display.tsx
3465
- import { jsx as jsx18, jsxs as jsxs16 } from "react/jsx-runtime";
3368
+ import { jsx as jsx17, jsxs as jsxs16 } from "react/jsx-runtime";
3466
3369
  var PRICING_STYLES = {
3467
3370
  // Comparison table style (current default)
3468
3371
  comparison: {
@@ -3498,11 +3401,11 @@ function PricingDisplay({
3498
3401
  styleConfig = PRICING_STYLES.comparison
3499
3402
  }) {
3500
3403
  if (typeof pricing === "string") {
3501
- return /* @__PURE__ */ jsx18(LegacyPricingDisplay, { pricing, className, styleConfig });
3404
+ return /* @__PURE__ */ jsx17(LegacyPricingDisplay, { pricing, className, styleConfig });
3502
3405
  }
3503
3406
  const pricingArray = Array.isArray(pricing) ? pricing : [pricing];
3504
3407
  if (!pricingArray || pricingArray.length === 0) {
3505
- return /* @__PURE__ */ jsx18(
3408
+ return /* @__PURE__ */ jsx17(
3506
3409
  "span",
3507
3410
  {
3508
3411
  className: `${styleConfig.priceTextColor} ${styleConfig.priceTextSize} ${styleConfig.fontFamily} ${className}`,
@@ -3515,7 +3418,7 @@ function PricingDisplay({
3515
3418
  const price = item.ranges?.[0]?.min || 0;
3516
3419
  const unit = item.ranges?.[0]?.unit;
3517
3420
  return /* @__PURE__ */ jsxs16("span", { className: `${styleConfig.fontFamily} ${className}`, children: [
3518
- /* @__PURE__ */ jsx18("span", { className: `${styleConfig.priceTextColor} ${styleConfig.priceTextSize}`, children: formatPriceValue(price, styleConfig.showTildePrefix) }),
3421
+ /* @__PURE__ */ jsx17("span", { className: `${styleConfig.priceTextColor} ${styleConfig.priceTextSize}`, children: formatPriceValue(price, styleConfig.showTildePrefix) }),
3519
3422
  unit && /* @__PURE__ */ jsxs16("span", { className: `${styleConfig.secondaryTextColor} ${styleConfig.secondaryTextSize}`, children: [
3520
3423
  "/",
3521
3424
  unit
@@ -3527,7 +3430,7 @@ function PricingDisplay({
3527
3430
  );
3528
3431
  const itemWithUnit = pricingArray.find((item) => item.ranges?.[0]?.unit);
3529
3432
  return /* @__PURE__ */ jsxs16("span", { className: `${styleConfig.fontFamily} ${className}`, children: [
3530
- /* @__PURE__ */ jsx18("span", { className: `${styleConfig.priceTextColor} ${styleConfig.priceTextSize}`, children: priceValues.join(" | ") }),
3433
+ /* @__PURE__ */ jsx17("span", { className: `${styleConfig.priceTextColor} ${styleConfig.priceTextSize}`, children: priceValues.join(" | ") }),
3531
3434
  itemWithUnit && itemWithUnit.ranges?.[0]?.unit && /* @__PURE__ */ jsxs16("span", { className: `${styleConfig.secondaryTextColor} ${styleConfig.secondaryTextSize}`, children: [
3532
3435
  "/",
3533
3436
  itemWithUnit.ranges[0].unit
@@ -3549,7 +3452,7 @@ function LegacyPricingDisplay({
3549
3452
  styleConfig = PRICING_STYLES.comparison
3550
3453
  }) {
3551
3454
  if (pricing === "Free" || pricing === "No pricing data") {
3552
- return /* @__PURE__ */ jsx18(
3455
+ return /* @__PURE__ */ jsx17(
3553
3456
  "span",
3554
3457
  {
3555
3458
  className: `${styleConfig.priceTextColor} ${styleConfig.priceTextSize} ${styleConfig.fontFamily} ${className}`,
@@ -3612,8 +3515,8 @@ function LegacyPricingDisplay({
3612
3515
  };
3613
3516
  const { mainValue, secondaryInfo } = parsePricing(pricing);
3614
3517
  return /* @__PURE__ */ jsxs16("span", { className: `${styleConfig.fontFamily} ${className}`, children: [
3615
- /* @__PURE__ */ jsx18("span", { className: `${styleConfig.priceTextColor} ${styleConfig.priceTextSize}`, children: mainValue }),
3616
- secondaryInfo && /* @__PURE__ */ jsx18("span", { className: `${styleConfig.secondaryTextColor} ${styleConfig.secondaryTextSize}`, children: secondaryInfo })
3518
+ /* @__PURE__ */ jsx17("span", { className: `${styleConfig.priceTextColor} ${styleConfig.priceTextSize}`, children: mainValue }),
3519
+ secondaryInfo && /* @__PURE__ */ jsx17("span", { className: `${styleConfig.secondaryTextColor} ${styleConfig.secondaryTextSize}`, children: secondaryInfo })
3617
3520
  ] });
3618
3521
  }
3619
3522
  function formatPricingForDisplay(pricing) {
@@ -3621,7 +3524,7 @@ function formatPricingForDisplay(pricing) {
3621
3524
  }
3622
3525
 
3623
3526
  // src/components/results-count.tsx
3624
- import { Fragment as Fragment4, jsx as jsx19, jsxs as jsxs17 } from "react/jsx-runtime";
3527
+ import { Fragment as Fragment4, jsx as jsx18, jsxs as jsxs17 } from "react/jsx-runtime";
3625
3528
  function ResultsCount({ currentPage, pageSize, totalResults, resultType, sortingMessage }) {
3626
3529
  if (totalResults === 0) {
3627
3530
  return null;
@@ -3631,7 +3534,7 @@ function ResultsCount({ currentPage, pageSize, totalResults, resultType, sorting
3631
3534
  const plural = resultType === "vendors" ? "vendors" : "posts";
3632
3535
  const singular = resultType === "vendors" ? "vendor" : "post";
3633
3536
  const displayType = totalResults === 1 ? singular : plural;
3634
- 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: [
3537
+ return /* @__PURE__ */ jsx18("div", { className: "mb-6", children: /* @__PURE__ */ jsx18("p", { className: "text-ods-text-secondary text-h6", children: totalResults > 0 && /* @__PURE__ */ jsxs17(Fragment4, { children: [
3635
3538
  "Showing ",
3636
3539
  startIndex,
3637
3540
  "-",
@@ -3651,14 +3554,14 @@ function ResultsCount({ currentPage, pageSize, totalResults, resultType, sorting
3651
3554
  import { Boxes, Database, Hand, Plug, ShieldCheck, Sparkles } from "lucide-react";
3652
3555
 
3653
3556
  // src/components/openframe-logo.tsx
3654
- import { jsx as jsx20, jsxs as jsxs18 } from "react/jsx-runtime";
3557
+ import { jsx as jsx19, jsxs as jsxs18 } from "react/jsx-runtime";
3655
3558
  var OpenFrameLogo2 = ({
3656
3559
  className,
3657
3560
  lowerPathColor,
3658
3561
  upperPathColor,
3659
3562
  ...props
3660
3563
  }) => {
3661
- return /* @__PURE__ */ jsx20(
3564
+ return /* @__PURE__ */ jsx19(
3662
3565
  "svg",
3663
3566
  {
3664
3567
  ...props,
@@ -3674,28 +3577,28 @@ var OpenFrameLogo2 = ({
3674
3577
  },
3675
3578
  children: /* @__PURE__ */ jsxs18("g", { children: [
3676
3579
  /* @__PURE__ */ jsxs18("g", { children: [
3677
- /* @__PURE__ */ jsx20(
3580
+ /* @__PURE__ */ jsx19(
3678
3581
  "path",
3679
3582
  {
3680
3583
  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",
3681
3584
  fill: lowerPathColor ?? "#ffffff"
3682
3585
  }
3683
3586
  ),
3684
- /* @__PURE__ */ jsx20(
3587
+ /* @__PURE__ */ jsx19(
3685
3588
  "path",
3686
3589
  {
3687
3590
  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",
3688
3591
  fill: lowerPathColor ?? "#ffffff"
3689
3592
  }
3690
3593
  ),
3691
- /* @__PURE__ */ jsx20(
3594
+ /* @__PURE__ */ jsx19(
3692
3595
  "path",
3693
3596
  {
3694
3597
  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",
3695
3598
  fill: lowerPathColor ?? "#ffffff"
3696
3599
  }
3697
3600
  ),
3698
- /* @__PURE__ */ jsx20(
3601
+ /* @__PURE__ */ jsx19(
3699
3602
  "path",
3700
3603
  {
3701
3604
  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",
@@ -3703,7 +3606,7 @@ var OpenFrameLogo2 = ({
3703
3606
  }
3704
3607
  )
3705
3608
  ] }),
3706
- /* @__PURE__ */ jsx20(
3609
+ /* @__PURE__ */ jsx19(
3707
3610
  "path",
3708
3611
  {
3709
3612
  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",
@@ -3716,12 +3619,12 @@ var OpenFrameLogo2 = ({
3716
3619
  };
3717
3620
 
3718
3621
  // src/components/vendor-tag.tsx
3719
- import { jsx as jsx21, jsxs as jsxs19 } from "react/jsx-runtime";
3622
+ import { jsx as jsx20, jsxs as jsxs19 } from "react/jsx-runtime";
3720
3623
  function openFrameTag(classification, text) {
3721
3624
  return {
3722
3625
  text: text || OPENFRAME_CLASSIFICATIONS[classification].word,
3723
3626
  textColor: void 0,
3724
- icon: /* @__PURE__ */ jsx21(OpenFrameLogo2, { lowerPathColor: "currentColor", upperPathColor: "currentColor", className: "h-4 w-4 text-ods-accent" })
3627
+ icon: /* @__PURE__ */ jsx20(OpenFrameLogo2, { lowerPathColor: "currentColor", upperPathColor: "currentColor", className: "h-4 w-4 text-ods-accent" })
3725
3628
  };
3726
3629
  }
3727
3630
  function VendorTag({ type, text, className = "", hidden = false, size = "md", accentColor }) {
@@ -3735,101 +3638,101 @@ function VendorTag({ type, text, className = "", hidden = false, size = "md", ac
3735
3638
  return {
3736
3639
  text: "Placeholder",
3737
3640
  textColor: "text-ods-text-primary",
3738
- 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" }) })
3641
+ icon: /* @__PURE__ */ jsx20("div", { className: "flex h-4 w-4 flex-shrink-0 items-center justify-center rounded-sm", children: /* @__PURE__ */ jsx20(Sparkles, { width: 10, height: 10, className: "text-ods-text-primary" }) })
3739
3642
  };
3740
3643
  case "ai":
3741
3644
  return {
3742
3645
  text: "AI Selected",
3743
3646
  textColor: "text-ods-text-primary",
3744
- 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" }) })
3647
+ icon: /* @__PURE__ */ jsx20("div", { className: "flex h-4 w-4 flex-shrink-0 items-center justify-center rounded-sm", children: /* @__PURE__ */ jsx20(Sparkles, { width: 10, height: 10, className: "text-ods-text-primary" }) })
3745
3648
  };
3746
3649
  case "manual":
3747
3650
  return {
3748
3651
  text: "Manually Selected",
3749
3652
  textColor: "text-ods-text-secondary",
3750
- 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" }) })
3653
+ icon: /* @__PURE__ */ jsx20("div", { className: "flex h-4 w-4 flex-shrink-0 items-center justify-center rounded-sm", children: /* @__PURE__ */ jsx20(Hand, { width: 10, height: 10, className: "text-ods-text-secondary" }) })
3751
3654
  };
3752
3655
  case "open-source":
3753
3656
  return {
3754
3657
  text: text || "Open Source",
3755
- icon: /* @__PURE__ */ jsx21(
3658
+ icon: /* @__PURE__ */ jsx20(
3756
3659
  "div",
3757
3660
  {
3758
3661
  className: "flex h-4 w-4 flex-shrink-0 items-center justify-center rounded-sm bg-ods-accent",
3759
3662
  style: accentColor ? { backgroundColor: accentColor } : void 0,
3760
- children: /* @__PURE__ */ jsx21(OpenSourceIcon2, { width: 10, height: 10, className: "text-ods-text-on-accent" })
3663
+ children: /* @__PURE__ */ jsx20(OpenSourceIcon2, { width: 10, height: 10, className: "text-ods-text-on-accent" })
3761
3664
  }
3762
3665
  )
3763
3666
  };
3764
3667
  case "commercial":
3765
3668
  return {
3766
3669
  text: text || "Commercial Vendor",
3767
- 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" }) })
3670
+ icon: /* @__PURE__ */ jsx20("div", { className: "flex h-4 w-4 flex-shrink-0 items-center justify-center rounded-sm bg-ods-border", children: /* @__PURE__ */ jsx20(CoinsIcon2, { width: 10, height: 10, className: "text-ods-text-secondary" }) })
3768
3671
  };
3769
3672
  // platform-capability tags — same neutral icon-box chrome as 'commercial'
3770
3673
  case "api":
3771
3674
  return {
3772
3675
  text: text || "API",
3773
- 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" }) })
3676
+ icon: /* @__PURE__ */ jsx20("div", { className: "flex h-4 w-4 flex-shrink-0 items-center justify-center rounded-sm bg-ods-border", children: /* @__PURE__ */ jsx20(Plug, { width: 10, height: 10, className: "text-ods-text-secondary" }) })
3774
3677
  };
3775
3678
  case "data":
3776
3679
  return {
3777
3680
  text: text || "Data",
3778
- 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" }) })
3681
+ icon: /* @__PURE__ */ jsx20("div", { className: "flex h-4 w-4 flex-shrink-0 items-center justify-center rounded-sm bg-ods-border", children: /* @__PURE__ */ jsx20(Database, { width: 10, height: 10, className: "text-ods-text-secondary" }) })
3779
3682
  };
3780
3683
  case "k8s":
3781
3684
  return {
3782
3685
  text: text || "K8s",
3783
- 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" }) })
3686
+ icon: /* @__PURE__ */ jsx20("div", { className: "flex h-4 w-4 flex-shrink-0 items-center justify-center rounded-sm bg-ods-border", children: /* @__PURE__ */ jsx20(Boxes, { width: 10, height: 10, className: "text-ods-text-secondary" }) })
3784
3687
  };
3785
3688
  case "secured":
3786
3689
  return {
3787
3690
  text: text || "Secured",
3788
- 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" }) })
3691
+ icon: /* @__PURE__ */ jsx20("div", { className: "flex h-4 w-4 flex-shrink-0 items-center justify-center rounded-sm bg-ods-border", children: /* @__PURE__ */ jsx20(ShieldCheck, { width: 10, height: 10, className: "text-ods-text-secondary" }) })
3789
3692
  };
3790
3693
  case "free":
3791
3694
  return {
3792
3695
  text: text || "Free",
3793
- 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: "$" }) })
3696
+ icon: /* @__PURE__ */ jsx20("div", { className: "flex h-4 w-4 flex-shrink-0 items-center justify-center rounded-sm bg-ods-accent", children: /* @__PURE__ */ jsx20("span", { className: "text-[8px] font-bold text-ods-text-on-accent", children: "$" }) })
3794
3697
  };
3795
3698
  case "freemium":
3796
3699
  return {
3797
3700
  text: text || "Freemium",
3798
- 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: "$" }) })
3701
+ icon: /* @__PURE__ */ jsx20("div", { className: "flex h-4 w-4 flex-shrink-0 items-center justify-center rounded-sm bg-ods-accent", children: /* @__PURE__ */ jsx20("span", { className: "text-[8px] font-bold text-ods-text-on-accent", children: "$" }) })
3799
3702
  };
3800
3703
  case "paid":
3801
3704
  return {
3802
3705
  text: text || "Paid",
3803
- 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" }) })
3706
+ icon: /* @__PURE__ */ jsx20("div", { className: "flex h-4 w-4 flex-shrink-0 items-center justify-center rounded-sm bg-ods-border", children: /* @__PURE__ */ jsx20(CoinsIcon2, { width: 10, height: 10, className: "text-ods-text-secondary" }) })
3804
3707
  };
3805
3708
  case "enterprise":
3806
3709
  return {
3807
3710
  text: text || "Enterprise",
3808
- 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" }) })
3711
+ icon: /* @__PURE__ */ jsx20("div", { className: "flex h-4 w-4 flex-shrink-0 items-center justify-center rounded-sm bg-ods-accent", children: /* @__PURE__ */ jsx20("span", { className: "text-[8px] font-bold text-ods-text-on-accent", children: "E" }) })
3809
3712
  };
3810
3713
  case "recommended":
3811
3714
  return {
3812
3715
  text: text || "Recommended",
3813
- 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" }) })
3716
+ icon: /* @__PURE__ */ jsx20("div", { className: "flex h-4 w-4 flex-shrink-0 items-center justify-center rounded-sm bg-ods-accent", children: /* @__PURE__ */ jsx20("span", { className: "text-[8px] font-bold text-ods-text-on-accent", children: "\u2605" }) })
3814
3717
  };
3815
3718
  case "classification": {
3816
3719
  const classificationType = text?.toLowerCase();
3817
3720
  if (classificationType === "open_source") {
3818
3721
  return {
3819
3722
  text: "Open Source",
3820
- 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" }) })
3723
+ icon: /* @__PURE__ */ jsx20("div", { className: "flex h-4 w-4 flex-shrink-0 items-center justify-center rounded-sm bg-ods-accent", children: /* @__PURE__ */ jsx20(OpenSourceIcon2, { width: 10, height: 10, className: "text-ods-text-on-accent" }) })
3821
3724
  };
3822
3725
  } else if (classificationType === "commercial") {
3823
3726
  return {
3824
3727
  text: "Commercial Vendor",
3825
- 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" }) })
3728
+ icon: /* @__PURE__ */ jsx20("div", { className: "flex h-4 w-4 flex-shrink-0 items-center justify-center rounded-sm bg-ods-border", children: /* @__PURE__ */ jsx20(CoinsIcon2, { width: 10, height: 10, className: "text-ods-text-secondary" }) })
3826
3729
  };
3827
3730
  } else if (isOpenFrameClassification(classificationType)) {
3828
3731
  return openFrameTag(classificationType);
3829
3732
  } else {
3830
3733
  return {
3831
3734
  text: text || "Classification",
3832
- 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" }) })
3735
+ icon: /* @__PURE__ */ jsx20("div", { className: "flex h-4 w-4 flex-shrink-0 items-center justify-center rounded-sm bg-ods-accent", children: /* @__PURE__ */ jsx20("span", { className: "text-[8px] font-bold text-ods-text-on-accent", children: "C" }) })
3833
3736
  };
3834
3737
  }
3835
3738
  }
@@ -3847,17 +3750,17 @@ function VendorTag({ type, text, className = "", hidden = false, size = "md", ac
3847
3750
  const { text: displayText, icon, textColor } = getTagContent();
3848
3751
  return /* @__PURE__ */ jsxs19("div", { className: cn(baseClasses, className, hidden && "invisible"), children: [
3849
3752
  icon,
3850
- /* @__PURE__ */ jsx21("span", { className: cn("font-semibold text-h5", textColor ? textColor : "text-ods-text-primary"), children: displayText })
3753
+ /* @__PURE__ */ jsx20("span", { className: cn("font-semibold text-h5", textColor ? textColor : "text-ods-text-primary"), children: displayText })
3851
3754
  ] });
3852
3755
  }
3853
3756
 
3854
3757
  // src/components/selection-source-badge.tsx
3855
- import { jsx as jsx22 } from "react/jsx-runtime";
3758
+ import { jsx as jsx21 } from "react/jsx-runtime";
3856
3759
  function SelectionSourceBadge({ source, hidden = false }) {
3857
3760
  if (!source) {
3858
3761
  return null;
3859
3762
  }
3860
- return /* @__PURE__ */ jsx22(
3763
+ return /* @__PURE__ */ jsx21(
3861
3764
  VendorTag,
3862
3765
  {
3863
3766
  type: source?.toLowerCase(),
@@ -3869,32 +3772,32 @@ function SelectionSourceBadge({ source, hidden = false }) {
3869
3772
  }
3870
3773
 
3871
3774
  // src/components/vendor-page-skeleton.tsx
3872
- import { jsx as jsx23 } from "react/jsx-runtime";
3775
+ import { jsx as jsx22 } from "react/jsx-runtime";
3873
3776
  function VendorPageSkeleton() {
3874
- return /* @__PURE__ */ jsx23(VendorDetailLayoutSkeleton, {});
3777
+ return /* @__PURE__ */ jsx22(VendorDetailLayoutSkeleton, {});
3875
3778
  }
3876
3779
 
3877
3780
  // src/components/why-it-matters.tsx
3878
- import { jsx as jsx24, jsxs as jsxs20 } from "react/jsx-runtime";
3781
+ import { jsx as jsx23, jsxs as jsxs20 } from "react/jsx-runtime";
3879
3782
 
3880
3783
  // src/components/yes-no-display.tsx
3881
- import { jsx as jsx25, jsxs as jsxs21 } from "react/jsx-runtime";
3784
+ import { jsx as jsx24, jsxs as jsxs21 } from "react/jsx-runtime";
3882
3785
  function YesNoDisplay({ value, yesText = "Yes", noText = "No", customText, className = "" }) {
3883
3786
  if (customText) {
3884
3787
  return /* @__PURE__ */ jsxs21("div", { className: `flex items-center gap-2 ${className}`, children: [
3885
- /* @__PURE__ */ jsx25(CheckCircleIcon2, { className: "h-6 w-6" }),
3886
- /* @__PURE__ */ jsx25("span", { className: "text-ods-text-primary text-h6", children: customText })
3788
+ /* @__PURE__ */ jsx24(CheckCircleIcon2, { className: "h-6 w-6" }),
3789
+ /* @__PURE__ */ jsx24("span", { className: "text-ods-text-primary text-h6", children: customText })
3887
3790
  ] });
3888
3791
  }
3889
3792
  if (value) {
3890
3793
  return /* @__PURE__ */ jsxs21("div", { className: `flex items-center gap-2 ${className}`, children: [
3891
- /* @__PURE__ */ jsx25(CheckCircleIcon2, { className: "h-6 w-6" }),
3892
- /* @__PURE__ */ jsx25("span", { className: "text-ods-text-primary text-h6", children: yesText })
3794
+ /* @__PURE__ */ jsx24(CheckCircleIcon2, { className: "h-6 w-6" }),
3795
+ /* @__PURE__ */ jsx24("span", { className: "text-ods-text-primary text-h6", children: yesText })
3893
3796
  ] });
3894
3797
  }
3895
3798
  return /* @__PURE__ */ jsxs21("div", { className: `flex items-center gap-2 ${className}`, children: [
3896
- /* @__PURE__ */ jsx25(XCircleIcon, { className: "h-6 w-6" }),
3897
- /* @__PURE__ */ jsx25("span", { className: "text-ods-text-secondary text-h6", children: noText })
3799
+ /* @__PURE__ */ jsx24(XCircleIcon, { className: "h-6 w-6" }),
3800
+ /* @__PURE__ */ jsx24("span", { className: "text-ods-text-secondary text-h6", children: noText })
3898
3801
  ] });
3899
3802
  }
3900
3803
  function evaluateFeatureValue(value, dataType) {
@@ -3929,7 +3832,7 @@ function evaluateFeatureValue(value, dataType) {
3929
3832
 
3930
3833
  // src/components/made-with-love.tsx
3931
3834
  import { useState as useState7, useEffect as useEffect3 } from "react";
3932
- import { jsx as jsx26, jsxs as jsxs22 } from "react/jsx-runtime";
3835
+ import { jsx as jsx25, jsxs as jsxs22 } from "react/jsx-runtime";
3933
3836
  function MadeWithLove({ className = "", size = "md", showOnMobile = true }) {
3934
3837
  const [isMobile, setIsMobile] = useState7(false);
3935
3838
  const [isHovered, setIsHovered] = useState7(false);
@@ -4011,14 +3914,14 @@ function MadeWithLove({ className = "", size = "md", showOnMobile = true }) {
4011
3914
  onMouseEnter: () => setIsHovered(true),
4012
3915
  onMouseLeave: () => setIsHovered(false),
4013
3916
  children: [
4014
- /* @__PURE__ */ jsx26("div", { style: logoStyle, children: /* @__PURE__ */ jsx26(
3917
+ /* @__PURE__ */ jsx25("div", { style: logoStyle, children: /* @__PURE__ */ jsx25(
4015
3918
  FlamingoLogo2,
4016
3919
  {
4017
3920
  size: config.logoSize,
4018
3921
  color: "#f357bb"
4019
3922
  }
4020
3923
  ) }),
4021
- /* @__PURE__ */ jsx26("span", { style: textStyle, children: "Flamingo" })
3924
+ /* @__PURE__ */ jsx25("span", { style: textStyle, children: "Flamingo" })
4022
3925
  ]
4023
3926
  }
4024
3927
  )
@@ -4027,7 +3930,7 @@ function MadeWithLove({ className = "", size = "md", showOnMobile = true }) {
4027
3930
 
4028
3931
  // src/components/date-time-picker.tsx
4029
3932
  import DatePicker2 from "react-datepicker";
4030
- import { jsx as jsx27, jsxs as jsxs23 } from "react/jsx-runtime";
3933
+ import { jsx as jsx26, jsxs as jsxs23 } from "react/jsx-runtime";
4031
3934
  var inputClassName = cn(
4032
3935
  "flex h-10 w-full rounded-md border px-3 py-2 text-sm ring-offset-background",
4033
3936
  "file:border-0 file:bg-transparent file:text-sm file:font-medium",
@@ -4052,8 +3955,8 @@ function DateTimePicker({
4052
3955
  dateFormat = "MMMM d, yyyy h:mm aa"
4053
3956
  }) {
4054
3957
  return /* @__PURE__ */ jsxs23("div", { className: cn("space-y-2", className), children: [
4055
- label && /* @__PURE__ */ jsx27(Label, { className: "font-semibold text-ods-text-secondary text-h5", children: label }),
4056
- /* @__PURE__ */ jsx27("div", { className: "w-full", children: /* @__PURE__ */ jsx27(
3958
+ label && /* @__PURE__ */ jsx26(Label, { className: "font-semibold text-ods-text-secondary text-h5", children: label }),
3959
+ /* @__PURE__ */ jsx26("div", { className: "w-full", children: /* @__PURE__ */ jsx26(
4057
3960
  DatePicker2,
4058
3961
  {
4059
3962
  selected: value,
@@ -4068,7 +3971,7 @@ function DateTimePicker({
4068
3971
  className: inputClassName
4069
3972
  }
4070
3973
  ) }),
4071
- /* @__PURE__ */ jsx27(
3974
+ /* @__PURE__ */ jsx26(
4072
3975
  "style",
4073
3976
  {
4074
3977
  dangerouslySetInnerHTML: {
@@ -4179,7 +4082,7 @@ function DateTimePicker({
4179
4082
  }
4180
4083
 
4181
4084
  // src/components/authors/author-detail-view.tsx
4182
- import { jsx as jsx28, jsxs as jsxs24 } from "react/jsx-runtime";
4085
+ import { jsx as jsx27, jsxs as jsxs24 } from "react/jsx-runtime";
4183
4086
  function AuthorDetailView({ author, proxyImageUrl, children, className }) {
4184
4087
  const runtime = useChatRuntime();
4185
4088
  const proxiedAvatar = author.avatarUrl ? proxyImageUrl ? proxyImageUrl(author.avatarUrl) : getProxiedImageUrl(author.avatarUrl, {
@@ -4191,12 +4094,12 @@ function AuthorDetailView({ author, proxyImageUrl, children, className }) {
4191
4094
  const bioText = formatBioText(author.about);
4192
4095
  return /* @__PURE__ */ jsxs24("div", { className: cn("flex flex-col gap-5 md:gap-6", className), children: [
4193
4096
  /* @__PURE__ */ jsxs24("div", { className: "flex w-full items-start gap-6", children: [
4194
- /* @__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() }) }) }),
4097
+ /* @__PURE__ */ jsx27("div", { className: "relative h-24 w-24 shrink-0", children: /* @__PURE__ */ jsx27("div", { className: "relative h-full w-full overflow-hidden rounded-full border border-ods-border bg-ods-bg-surface", children: proxiedAvatar ? /* @__PURE__ */ jsx27(next_image_default, { src: proxiedAvatar, alt: author.fullName, fill: true, className: "object-cover", unoptimized: true }) : /* @__PURE__ */ jsx27("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() }) }) }),
4195
4098
  /* @__PURE__ */ jsxs24("div", { className: "flex min-w-0 flex-col justify-center gap-2", children: [
4196
- /* @__PURE__ */ jsx28("p", { className: "truncate leading-none text-ods-text-primary text-h2", children: author.fullName }),
4197
- subtitle && /* @__PURE__ */ jsx28("p", { className: "truncate font-body text-lg leading-none text-ods-text-secondary", children: subtitle }),
4099
+ /* @__PURE__ */ jsx27("p", { className: "truncate leading-none text-ods-text-primary text-h2", children: author.fullName }),
4100
+ subtitle && /* @__PURE__ */ jsx27("p", { className: "truncate font-body text-lg leading-none text-ods-text-secondary", children: subtitle }),
4198
4101
  author.socialLinks.length > 0 && // Ghost compact row (transparent 32px) — metadata, not CTAs.
4199
- /* @__PURE__ */ jsx28(
4102
+ /* @__PURE__ */ jsx27(
4200
4103
  SocialIconRow,
4201
4104
  {
4202
4105
  compact: true,
@@ -4209,8 +4112,8 @@ function AuthorDetailView({ author, proxyImageUrl, children, className }) {
4209
4112
  )
4210
4113
  ] })
4211
4114
  ] }),
4212
- bioText && /* @__PURE__ */ jsx28("p", { className: "text-ods-text-secondary text-h6", children: bioText }),
4213
- 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)) }),
4115
+ bioText && /* @__PURE__ */ jsx27("p", { className: "text-ods-text-secondary text-h6", children: bioText }),
4116
+ author.knowsAbout.length > 0 && /* @__PURE__ */ jsx27("div", { className: "flex flex-wrap gap-2", children: author.knowsAbout.map((topic) => /* @__PURE__ */ jsx27(StatusBadge, { text: topic, variant: "button", colorScheme: "cyan", singleLine: true }, topic)) }),
4214
4117
  children
4215
4118
  ] });
4216
4119
  }
@@ -4228,6 +4131,7 @@ export {
4228
4131
  APPROVAL_LEVEL_META,
4229
4132
  APPROVAL_STATUS,
4230
4133
  ASK_AI_OPEN_EVENT,
4134
+ ASK_PROMPTS_DEFAULT_COUNT,
4231
4135
  ASSISTANT_TYPE,
4232
4136
  AUTHOR_TYPE,
4233
4137
  AUTO_CONTINUATION_DIRECTIVE_PREFIX,
@@ -4302,6 +4206,7 @@ export {
4302
4206
  AspectRatio,
4303
4207
  AssignTicketModal,
4304
4208
  AssigneeDropdown,
4209
+ AssistantAskPrompts,
4305
4210
  AuditLoggingIcon,
4306
4211
  AuthBenefitsPanel,
4307
4212
  AuthProvider,
@@ -4656,6 +4561,7 @@ export {
4656
4561
  FacebookIcon,
4657
4562
  FadePreview,
4658
4563
  FaqAccordion,
4564
+ FaqAskCard,
4659
4565
  FaqDocumentPage,
4660
4566
  FaqSection,
4661
4567
  FeatureCardGrid,
@@ -5378,10 +5284,12 @@ export {
5378
5284
  approvalDisplaysInline,
5379
5285
  approvalMetaToBatchData,
5380
5286
  arrangePhotoWall,
5287
+ assistantAvailable,
5381
5288
  badgeVariants,
5382
5289
  benefitCardBorderClass,
5383
5290
  blogFilterConfig,
5384
5291
  buildAnchorProps,
5292
+ buildAskPromptsUrl,
5385
5293
  buildAutoContinuationDirective,
5386
5294
  buildCaptionsUrl,
5387
5295
  buildChatAttachmentViewUrl,
@@ -5587,6 +5495,8 @@ export {
5587
5495
  toggleVariants,
5588
5496
  upsertTrailingCompaction,
5589
5497
  useAppLayoutDrawerContainer,
5498
+ useAskPrompts,
5499
+ useAssistantOpen,
5590
5500
  useAuth,
5591
5501
  useBetweenAnchors,
5592
5502
  useBoardCollapse,
@@ -5641,6 +5551,8 @@ export {
5641
5551
  useScrollFade,
5642
5552
  useScrollSpy,
5643
5553
  useSectionNavigation,
5554
+ useShownAskPromptIds,
5555
+ useShownAskPrompts,
5644
5556
  useSlashCommandRegistry,
5645
5557
  useSlashCommands,
5646
5558
  useSortableItem,