@flamingo-stack/openframe-frontend-core 0.0.564 → 0.0.565-1861.5100.1

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 (189) hide show
  1. package/dist/{chunk-PKCZL56Y.cjs → chunk-4H7L4OSR.cjs} +4 -4
  2. package/dist/{chunk-PKCZL56Y.cjs.map → chunk-4H7L4OSR.cjs.map} +1 -1
  3. package/dist/chunk-5I3BSQ6D.js +2 -0
  4. package/dist/{chunk-6OPEULTD.cjs → chunk-BKDSNVGH.cjs} +9 -9
  5. package/dist/{chunk-6OPEULTD.cjs.map → chunk-BKDSNVGH.cjs.map} +1 -1
  6. package/dist/{chunk-OYFXHET4.cjs → chunk-BWMVI2KD.cjs} +7 -7
  7. package/dist/{chunk-OYFXHET4.cjs.map → chunk-BWMVI2KD.cjs.map} +1 -1
  8. package/dist/{chunk-YFLSOYX4.cjs → chunk-DLSDYLY3.cjs} +11 -11
  9. package/dist/{chunk-YFLSOYX4.cjs.map → chunk-DLSDYLY3.cjs.map} +1 -1
  10. package/dist/{chunk-NQ6UF4LP.js → chunk-EQEMZU45.js} +4 -4
  11. package/dist/{chunk-FG4BSJ4A.cjs → chunk-GG2HJQW3.cjs} +26 -26
  12. package/dist/{chunk-FG4BSJ4A.cjs.map → chunk-GG2HJQW3.cjs.map} +1 -1
  13. package/dist/{chunk-O3SEC45L.js → chunk-GG6CAELN.js} +4 -4
  14. package/dist/{chunk-J7R3VZL5.cjs → chunk-GZL5SAUI.cjs} +19 -15
  15. package/dist/chunk-GZL5SAUI.cjs.map +1 -0
  16. package/dist/{chunk-ASULU3T2.js → chunk-H4RCJ4IB.js} +7 -3
  17. package/dist/{chunk-ASULU3T2.js.map → chunk-H4RCJ4IB.js.map} +1 -1
  18. package/dist/{chunk-U5EVZLL5.cjs → chunk-KHEOXHF4.cjs} +5 -5
  19. package/dist/{chunk-U5EVZLL5.cjs.map → chunk-KHEOXHF4.cjs.map} +1 -1
  20. package/dist/{chunk-Z4VU6MJ4.js → chunk-LOWWLH2W.js} +2 -2
  21. package/dist/{chunk-NUKQWLOG.js → chunk-MIKGZY7V.js} +5 -5
  22. package/dist/{chunk-BK7V6CH5.js → chunk-MSUSONUK.js} +3297 -3209
  23. package/dist/chunk-MSUSONUK.js.map +1 -0
  24. package/dist/{chunk-PT4GS4CE.cjs → chunk-NAYXROCV.cjs} +3 -3
  25. package/dist/{chunk-PT4GS4CE.cjs.map → chunk-NAYXROCV.cjs.map} +1 -1
  26. package/dist/{chunk-G2VDS3M5.js → chunk-OEN3GTRL.js} +2 -2
  27. package/dist/{chunk-XFI5PCER.cjs → chunk-OTDVQBLI.cjs} +31 -31
  28. package/dist/{chunk-XFI5PCER.cjs.map → chunk-OTDVQBLI.cjs.map} +1 -1
  29. package/dist/{chunk-WGDZW237.cjs → chunk-PBH2BQYR.cjs} +86 -86
  30. package/dist/{chunk-WGDZW237.cjs.map → chunk-PBH2BQYR.cjs.map} +1 -1
  31. package/dist/{chunk-E6PW7GRQ.cjs → chunk-PZH3CZTJ.cjs} +89 -75
  32. package/dist/chunk-PZH3CZTJ.cjs.map +1 -0
  33. package/dist/{chunk-GEC2NHQH.cjs → chunk-QWVON3LG.cjs} +20 -20
  34. package/dist/{chunk-GEC2NHQH.cjs.map → chunk-QWVON3LG.cjs.map} +1 -1
  35. package/dist/{chunk-X4JKXYY5.js → chunk-SQ53GVCG.js} +2 -2
  36. package/dist/{chunk-AZPUAPXW.cjs → chunk-TA5P2M7V.cjs} +796 -708
  37. package/dist/chunk-TA5P2M7V.cjs.map +1 -0
  38. package/dist/chunk-UGAHDPNU.cjs +2 -0
  39. package/dist/{chunk-ZTM35Q76.cjs.map → chunk-UGAHDPNU.cjs.map} +1 -1
  40. package/dist/{chunk-T3P56JKN.js → chunk-XPLZB74T.js} +2 -2
  41. package/dist/{chunk-CQNK6RS6.js → chunk-XSK7ZQ3C.js} +2 -2
  42. package/dist/{chunk-TDYF6Q2D.js → chunk-XZNKPEWB.js} +2 -2
  43. package/dist/{chunk-VVDLVCPW.cjs → chunk-Y6IGG6RZ.cjs} +39 -39
  44. package/dist/{chunk-VVDLVCPW.cjs.map → chunk-Y6IGG6RZ.cjs.map} +1 -1
  45. package/dist/{chunk-7D62XVHH.js → chunk-YVOMHB73.js} +35 -21
  46. package/dist/chunk-YVOMHB73.js.map +1 -0
  47. package/dist/{chunk-CP7TMQBH.js → chunk-ZUVVJ24E.js} +2 -2
  48. package/dist/{chunk-DPMOEYEM.js → chunk-ZYC4O76Y.js} +2 -2
  49. package/dist/components/case-studies/index.cjs +8 -8
  50. package/dist/components/case-studies/index.js +2 -2
  51. package/dist/components/chat/entity-cards/employee-entry-card.d.ts.map +1 -1
  52. package/dist/components/chat/index.cjs +2 -2
  53. package/dist/components/chat/index.js +1 -1
  54. package/dist/components/comment-card.d.ts +18 -2
  55. package/dist/components/comment-card.d.ts.map +1 -1
  56. package/dist/components/comment-composer.d.ts +42 -0
  57. package/dist/components/comment-composer.d.ts.map +1 -0
  58. package/dist/components/contact/index.cjs +3 -3
  59. package/dist/components/contact/index.js +2 -2
  60. package/dist/components/docs/index.cjs +5 -5
  61. package/dist/components/docs/index.js +4 -4
  62. package/dist/components/embeds/claude-embed.d.ts +31 -0
  63. package/dist/components/embeds/claude-embed.d.ts.map +1 -0
  64. package/dist/components/embeds/index.cjs +6 -4
  65. package/dist/components/embeds/index.cjs.map +1 -1
  66. package/dist/components/embeds/index.d.ts +2 -0
  67. package/dist/components/embeds/index.d.ts.map +1 -1
  68. package/dist/components/embeds/index.js +5 -3
  69. package/dist/components/faq/index.cjs +3 -3
  70. package/dist/components/faq/index.js +2 -2
  71. package/dist/components/features/array-entry-manager.d.ts.map +1 -1
  72. package/dist/components/features/clickup-tasks-manager.d.ts +6 -1
  73. package/dist/components/features/clickup-tasks-manager.d.ts.map +1 -1
  74. package/dist/components/features/index.cjs +2 -2
  75. package/dist/components/features/index.js +1 -1
  76. package/dist/components/help-center-pages/index.cjs +22 -22
  77. package/dist/components/help-center-pages/index.js +13 -13
  78. package/dist/components/index.cjs +281 -204
  79. package/dist/components/index.cjs.map +1 -1
  80. package/dist/components/index.d.ts +1 -0
  81. package/dist/components/index.d.ts.map +1 -1
  82. package/dist/components/index.js +647 -570
  83. package/dist/components/index.js.map +1 -1
  84. package/dist/components/meeting-scheduler/index.cjs +30 -30
  85. package/dist/components/meeting-scheduler/index.js +3 -3
  86. package/dist/components/navigation/index.cjs +2 -2
  87. package/dist/components/navigation/index.js +1 -1
  88. package/dist/components/onboarding-guides/index.cjs +5 -5
  89. package/dist/components/onboarding-guides/index.js +4 -4
  90. package/dist/components/related-content/index.cjs +3 -3
  91. package/dist/components/related-content/index.js +2 -2
  92. package/dist/components/shared/delivery/delivery-row.d.ts +5 -1
  93. package/dist/components/shared/delivery/delivery-row.d.ts.map +1 -1
  94. package/dist/components/shared/roadmap/roadmap-grid.d.ts +10 -1
  95. package/dist/components/shared/roadmap/roadmap-grid.d.ts.map +1 -1
  96. package/dist/components/tickets/index.cjs +6 -6
  97. package/dist/components/tickets/index.js +5 -5
  98. package/dist/components/ui/card.d.ts.map +1 -1
  99. package/dist/components/ui/index.cjs +4 -2
  100. package/dist/components/ui/index.cjs.map +1 -1
  101. package/dist/components/ui/index.d.ts +1 -1
  102. package/dist/components/ui/index.d.ts.map +1 -1
  103. package/dist/components/ui/index.js +3 -1
  104. package/dist/components/ui/markdown/rich/embed-overrides.d.ts.map +1 -1
  105. package/dist/components/ui/markdown/rich/shortcodes.d.ts.map +1 -1
  106. package/dist/components/ui/table/index.d.ts +1 -1
  107. package/dist/components/ui/table/index.d.ts.map +1 -1
  108. package/dist/components/ui/table/table-row.d.ts.map +1 -1
  109. package/dist/components/ui/table/table-skeleton.d.ts +15 -2
  110. package/dist/components/ui/table/table-skeleton.d.ts.map +1 -1
  111. package/dist/components/ui/table/table.d.ts.map +1 -1
  112. package/dist/components/ui/table/types.d.ts +2 -0
  113. package/dist/components/ui/table/types.d.ts.map +1 -1
  114. package/dist/index.cjs +6 -2
  115. package/dist/index.cjs.map +1 -1
  116. package/dist/index.js +5 -1
  117. package/dist/types/department.d.ts +41 -0
  118. package/dist/types/department.d.ts.map +1 -0
  119. package/dist/types/design-doc.d.ts +247 -0
  120. package/dist/types/design-doc.d.ts.map +1 -0
  121. package/dist/types/employee.d.ts +25 -2
  122. package/dist/types/employee.d.ts.map +1 -1
  123. package/dist/types/index.d.ts +2 -0
  124. package/dist/types/index.d.ts.map +1 -1
  125. package/dist/types/marketing.d.ts +1 -1
  126. package/dist/types/marketing.d.ts.map +1 -1
  127. package/dist/types/profile.d.ts +2 -1
  128. package/dist/types/profile.d.ts.map +1 -1
  129. package/dist/types/team.d.ts +15 -1
  130. package/dist/types/team.d.ts.map +1 -1
  131. package/dist/types/user.d.ts +3 -1
  132. package/dist/types/user.d.ts.map +1 -1
  133. package/dist/utils/embed-url-converters.d.ts +17 -0
  134. package/dist/utils/embed-url-converters.d.ts.map +1 -1
  135. package/dist/utils/index.cjs +12 -0
  136. package/dist/utils/index.cjs.map +1 -1
  137. package/dist/utils/index.js +12 -1
  138. package/dist/utils/index.js.map +1 -1
  139. package/package.json +1 -1
  140. package/src/components/.comment-card.md +4 -5
  141. package/src/components/chat/entity-cards/employee-entry-card.tsx +6 -0
  142. package/src/components/comment-card.tsx +42 -17
  143. package/src/components/comment-composer.tsx +117 -0
  144. package/src/components/embeds/claude-embed.tsx +84 -0
  145. package/src/components/embeds/index.ts +2 -0
  146. package/src/components/features/array-entry-manager.tsx +2 -1
  147. package/src/components/features/clickup-tasks-manager.tsx +8 -1
  148. package/src/components/index.ts +1 -0
  149. package/src/components/shared/delivery/delivery-row.tsx +17 -1
  150. package/src/components/shared/roadmap/roadmap-grid.tsx +21 -1
  151. package/src/components/ui/card.tsx +4 -1
  152. package/src/components/ui/index.ts +1 -0
  153. package/src/components/ui/markdown/rich/__tests__/shortcodes.test.ts +44 -0
  154. package/src/components/ui/markdown/rich/embed-overrides.tsx +4 -0
  155. package/src/components/ui/markdown/rich/shortcodes.ts +12 -0
  156. package/src/components/ui/table/index.ts +1 -1
  157. package/src/components/ui/table/table-row.tsx +7 -2
  158. package/src/components/ui/table/table-skeleton.tsx +20 -3
  159. package/src/components/ui/table/table.tsx +1 -0
  160. package/src/components/ui/table/types.ts +2 -0
  161. package/src/types/department.ts +44 -0
  162. package/src/types/design-doc.ts +295 -0
  163. package/src/types/employee.ts +27 -2
  164. package/src/types/index.ts +2 -0
  165. package/src/types/marketing.ts +1 -0
  166. package/src/types/profile.ts +3 -1
  167. package/src/types/team.ts +17 -1
  168. package/src/types/user.ts +4 -1
  169. package/src/utils/__tests__/claude-embed-url.test.ts +42 -0
  170. package/src/utils/embed-url-converters.ts +32 -0
  171. package/dist/chunk-7D62XVHH.js.map +0 -1
  172. package/dist/chunk-AZPUAPXW.cjs.map +0 -1
  173. package/dist/chunk-BK7V6CH5.js.map +0 -1
  174. package/dist/chunk-E6PW7GRQ.cjs.map +0 -1
  175. package/dist/chunk-J7R3VZL5.cjs.map +0 -1
  176. package/dist/chunk-MVWSLZG7.js +0 -2
  177. package/dist/chunk-ZTM35Q76.cjs +0 -2
  178. /package/dist/{chunk-MVWSLZG7.js.map → chunk-5I3BSQ6D.js.map} +0 -0
  179. /package/dist/{chunk-NQ6UF4LP.js.map → chunk-EQEMZU45.js.map} +0 -0
  180. /package/dist/{chunk-O3SEC45L.js.map → chunk-GG6CAELN.js.map} +0 -0
  181. /package/dist/{chunk-Z4VU6MJ4.js.map → chunk-LOWWLH2W.js.map} +0 -0
  182. /package/dist/{chunk-NUKQWLOG.js.map → chunk-MIKGZY7V.js.map} +0 -0
  183. /package/dist/{chunk-G2VDS3M5.js.map → chunk-OEN3GTRL.js.map} +0 -0
  184. /package/dist/{chunk-X4JKXYY5.js.map → chunk-SQ53GVCG.js.map} +0 -0
  185. /package/dist/{chunk-T3P56JKN.js.map → chunk-XPLZB74T.js.map} +0 -0
  186. /package/dist/{chunk-CQNK6RS6.js.map → chunk-XSK7ZQ3C.js.map} +0 -0
  187. /package/dist/{chunk-TDYF6Q2D.js.map → chunk-XZNKPEWB.js.map} +0 -0
  188. /package/dist/{chunk-CP7TMQBH.js.map → chunk-ZUVVJ24E.js.map} +0 -0
  189. /package/dist/{chunk-DPMOEYEM.js.map → chunk-ZYC4O76Y.js.map} +0 -0
@@ -1,10 +1,10 @@
1
1
  "use client";
2
2
  "use client";
3
- import "../chunk-MVWSLZG7.js";
3
+ import "../chunk-5I3BSQ6D.js";
4
4
  import {
5
5
  GROUP_PAGE_SIZE,
6
6
  RelatedContentSection
7
- } from "../chunk-Z4VU6MJ4.js";
7
+ } from "../chunk-LOWWLH2W.js";
8
8
  import {
9
9
  DeliveryLists,
10
10
  DeliveryTable,
@@ -18,7 +18,7 @@ import {
18
18
  RoadmapView,
19
19
  useLegalDocs,
20
20
  useRoadmapVoting
21
- } from "../chunk-7D62XVHH.js";
21
+ } from "../chunk-YVOMHB73.js";
22
22
  import {
23
23
  AnnouncementBarSkeleton,
24
24
  ArticleLayoutSkeleton,
@@ -51,22 +51,22 @@ import {
51
51
  useDocNavigation,
52
52
  useDocumentTree,
53
53
  useScrollSpy
54
- } from "../chunk-O3SEC45L.js";
54
+ } from "../chunk-GG6CAELN.js";
55
55
  import {
56
56
  FileDownloadCard,
57
57
  GoogleSheetsViewer,
58
58
  PdfViewer
59
- } from "../chunk-G2VDS3M5.js";
59
+ } from "../chunk-OEN3GTRL.js";
60
60
  import {
61
61
  PersistentPagination,
62
62
  PersistentPaginationWrapper,
63
63
  usePaginationLoading
64
- } from "../chunk-CQNK6RS6.js";
64
+ } from "../chunk-XSK7ZQ3C.js";
65
65
  import {
66
66
  FaqAccordion,
67
67
  FaqDocumentPage,
68
68
  FaqSection
69
- } from "../chunk-X4JKXYY5.js";
69
+ } from "../chunk-SQ53GVCG.js";
70
70
  import {
71
71
  DeliveryRow,
72
72
  DevCardRowContent,
@@ -74,16 +74,16 @@ import {
74
74
  DevCardRowSkeletonList,
75
75
  DevSectionPage,
76
76
  DevSectionView
77
- } from "../chunk-ASULU3T2.js";
77
+ } from "../chunk-H4RCJ4IB.js";
78
78
  import {
79
79
  EmptyState,
80
80
  UnifiedPagination,
81
81
  init_unified_pagination
82
- } from "../chunk-T3P56JKN.js";
82
+ } from "../chunk-XPLZB74T.js";
83
83
  import {
84
84
  ArticleAuthorByline,
85
85
  DetailPageSkeleton
86
- } from "../chunk-CP7TMQBH.js";
86
+ } from "../chunk-ZUVVJ24E.js";
87
87
  import {
88
88
  DocSearchBar,
89
89
  DocSearchResultRow,
@@ -91,7 +91,7 @@ import {
91
91
  mapDocSearchResults,
92
92
  resolveSearchResultAction,
93
93
  useDocSearch
94
- } from "../chunk-TDYF6Q2D.js";
94
+ } from "../chunk-XZNKPEWB.js";
95
95
  import {
96
96
  useSelfFetch
97
97
  } from "../chunk-KL6ZDLDF.js";
@@ -209,6 +209,7 @@ import {
209
209
  COMPACT_CARD_TEXT_COL,
210
210
  COMPACT_CARD_TITLE,
211
211
  COMPACT_CARD_TITLE_ROW,
212
+ COMPACT_ROW_MIN_HEIGHT_PX,
212
213
  CONNECTION_STATUS,
213
214
  CONTEXT_BACK_CLASS,
214
215
  CONTEXT_ICON_CLASS,
@@ -268,6 +269,7 @@ import {
268
269
  CheckboxWithDescription,
269
270
  ChevronButton,
270
271
  CircularProgress,
272
+ ClaudeEmbed,
271
273
  ClickUpTasksManager,
272
274
  ClientOnlyHeader,
273
275
  ColorPickerInput,
@@ -1001,7 +1003,7 @@ import {
1001
1003
  useVideoWarmup,
1002
1004
  useWalkthroughVideo,
1003
1005
  usesCanonicalStatusStyle
1004
- } from "../chunk-BK7V6CH5.js";
1006
+ } from "../chunk-MSUSONUK.js";
1005
1007
  import "../chunk-7EUIW46X.js";
1006
1008
  import {
1007
1009
  next_image_default
@@ -1849,7 +1851,10 @@ function CommentCard({
1849
1851
  onDeleteComment,
1850
1852
  showVendorInfo = true,
1851
1853
  compact = false,
1852
- context = "profile"
1854
+ leadWith = "commenter",
1855
+ fullBody = false,
1856
+ footer,
1857
+ children
1853
1858
  }) {
1854
1859
  const { user: currentUser } = useAuth();
1855
1860
  const formatActivityTime = (timestamp) => {
@@ -1857,89 +1862,158 @@ function CommentCard({
1857
1862
  };
1858
1863
  const canUserDeleteComment = () => {
1859
1864
  if (!currentUser) return false;
1860
- if (context === "profile") {
1861
- return comment.canDelete !== false;
1862
- }
1863
- if (context === "vendor" && comment.user) {
1864
- return currentUser.id === comment.user.id;
1865
- }
1866
- return false;
1865
+ if (typeof comment.canDelete === "boolean") return comment.canDelete;
1866
+ return !!comment.user && currentUser.id === comment.user.id;
1867
1867
  };
1868
1868
  const showDeleteButton = canUserDeleteComment();
1869
- return /* @__PURE__ */ jsxs6("div", { className: "bg-ods-card border border-ods-border rounded-lg p-4 hover:border-ods-accent transition-all group overflow-hidden w-full max-w-full box-border", style: { maxWidth: "100%", wordBreak: "break-word" }, children: [
1870
- /* @__PURE__ */ jsxs6("div", { className: "flex flex-col gap-3 mb-3 min-[420px]:flex-row min-[420px]:items-center min-[420px]:justify-between min-[420px]:gap-2 w-full", children: [
1871
- /* @__PURE__ */ jsx8("div", { className: "flex items-center gap-2 min-w-0 flex-1", children: context === "profile" && comment.vendor ? /* @__PURE__ */ jsxs6(Fragment, { children: [
1872
- /* @__PURE__ */ jsx8(
1873
- VendorDisplayButton,
1869
+ return /* @__PURE__ */ jsxs6(Fragment, { children: [
1870
+ /* @__PURE__ */ jsxs6("div", { className: "bg-ods-card border border-ods-border rounded-lg p-4 hover:border-ods-accent transition-all group overflow-hidden w-full max-w-full box-border", style: { maxWidth: "100%", wordBreak: "break-word" }, children: [
1871
+ /* @__PURE__ */ jsxs6("div", { className: "flex flex-col gap-3 mb-3 min-[420px]:flex-row min-[420px]:items-center min-[420px]:justify-between min-[420px]:gap-2 w-full", children: [
1872
+ /* @__PURE__ */ jsx8("div", { className: "flex items-center gap-2 min-w-0 flex-1", children: leadWith === "vendor" && comment.vendor ? /* @__PURE__ */ jsxs6(Fragment, { children: [
1873
+ /* @__PURE__ */ jsx8(
1874
+ VendorDisplayButton,
1875
+ {
1876
+ vendor: comment.vendor,
1877
+ onClick: onViewProduct || (() => {
1878
+ })
1879
+ }
1880
+ ),
1881
+ /* @__PURE__ */ jsx8("span", { className: "text-h6 text-ods-text-secondary whitespace-nowrap flex-shrink-0", children: formatActivityTime(comment.createdAt) })
1882
+ ] }) : comment.user ? /* @__PURE__ */ jsx8(
1883
+ UserSummary,
1874
1884
  {
1875
- vendor: comment.vendor,
1876
- onClick: onViewProduct || (() => {
1877
- })
1885
+ name: comment.user.name,
1886
+ email: "",
1887
+ compact: true,
1888
+ avatarSize: 48,
1889
+ subtitle: formatActivityTime(comment.createdAt),
1890
+ avatarUrl: comment.user.profilePicture ?? null,
1891
+ mspPreview: comment.user.msp ? {
1892
+ name: comment.user.msp.name ?? null,
1893
+ logoUrl: comment.user.msp.icon_url ?? null,
1894
+ seatCount: null,
1895
+ technicianCount: null,
1896
+ annualRevenue: null
1897
+ } : null,
1898
+ showEditButton: false,
1899
+ authProviders: []
1878
1900
  }
1879
- ),
1880
- /* @__PURE__ */ jsx8("span", { className: "text-h6 text-ods-text-secondary whitespace-nowrap flex-shrink-0", children: formatActivityTime(comment.createdAt) })
1881
- ] }) : context === "vendor" && comment.user ? /* @__PURE__ */ jsx8(
1882
- UserSummary,
1883
- {
1884
- name: comment.user.name,
1885
- email: "",
1886
- compact: true,
1887
- avatarSize: 48,
1888
- subtitle: formatActivityTime(comment.createdAt),
1889
- avatarUrl: comment.user.profilePicture ?? null,
1890
- mspPreview: comment.user.msp ? {
1891
- name: comment.user.msp.name ?? null,
1892
- logoUrl: comment.user.msp.icon_url ?? null,
1893
- seatCount: null,
1894
- technicianCount: null,
1895
- annualRevenue: null
1896
- } : null,
1897
- showEditButton: false,
1898
- authProviders: []
1899
- }
1900
- ) : null }),
1901
- /* @__PURE__ */ jsx8("div", { className: "flex gap-2 justify-start min-[420px]:justify-end", children: showDeleteButton && onDeleteComment && /* @__PURE__ */ jsx8(
1902
- Button,
1903
- {
1904
- onClick: () => onDeleteComment(comment.id),
1905
- variant: "outline",
1906
- size: "icon",
1907
- className: "text-ods-text-primary",
1908
- children: /* @__PURE__ */ jsxs6("svg", { width: "22", height: "24", viewBox: "0 0 22 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", className: "text-ods-text-primary", children: [
1909
- /* @__PURE__ */ jsx8("path", { 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", fill: "currentColor" }),
1910
- /* @__PURE__ */ jsx8("path", { 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", fill: "currentColor" })
1911
- ] })
1912
- }
1913
- ) })
1901
+ ) : null }),
1902
+ /* @__PURE__ */ jsx8("div", { className: "flex gap-2 justify-start min-[420px]:justify-end", children: showDeleteButton && onDeleteComment && /* @__PURE__ */ jsx8(
1903
+ Button,
1904
+ {
1905
+ onClick: () => onDeleteComment(comment.id),
1906
+ variant: "outline",
1907
+ size: "icon",
1908
+ className: "text-ods-text-primary",
1909
+ children: /* @__PURE__ */ jsxs6("svg", { width: "22", height: "24", viewBox: "0 0 22 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", className: "text-ods-text-primary", children: [
1910
+ /* @__PURE__ */ jsx8("path", { 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", fill: "currentColor" }),
1911
+ /* @__PURE__ */ jsx8("path", { 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", fill: "currentColor" })
1912
+ ] })
1913
+ }
1914
+ ) })
1915
+ ] }),
1916
+ /* @__PURE__ */ jsxs6("div", { className: "space-y-2 w-full max-w-full overflow-hidden", style: { maxWidth: "100%", wordBreak: "break-word" }, children: [
1917
+ comment.title && /* @__PURE__ */ jsx8("div", { className: compact ? "h-[20px] flex items-center" : "h-[24px] flex items-center", children: /* @__PURE__ */ jsx8("h4", { className: "text-h3 tracking-[-0.02em] text-ods-text-primary group-hover:text-ods-accent transition-colors line-clamp-1", style: {
1918
+ wordBreak: "break-word",
1919
+ overflowWrap: "break-word",
1920
+ maxWidth: "100%",
1921
+ textOverflow: "ellipsis",
1922
+ overflow: "hidden",
1923
+ display: "-webkit-box",
1924
+ WebkitBoxOrient: "vertical",
1925
+ WebkitLineClamp: 1
1926
+ }, children: comment.title }) }),
1927
+ fullBody ? (
1928
+ // Thread bodies are read in full — no fixed height, no clamp.
1929
+ /* @__PURE__ */ jsx8("p", { className: "text-h4 text-ods-text-primary whitespace-pre-wrap", style: { wordBreak: "break-word", overflowWrap: "break-word", maxWidth: "100%" }, children: comment.content })
1930
+ ) : /* @__PURE__ */ jsx8("div", { className: compact ? "h-[60px] flex items-center" : "h-[72px] flex items-center", children: /* @__PURE__ */ jsx8("p", { className: "text-h4 text-ods-text-primary line-clamp-3", style: {
1931
+ wordBreak: "break-word",
1932
+ overflowWrap: "break-word",
1933
+ maxWidth: "100%",
1934
+ textOverflow: "ellipsis",
1935
+ overflow: "hidden",
1936
+ display: "-webkit-box",
1937
+ WebkitBoxOrient: "vertical",
1938
+ WebkitLineClamp: 3
1939
+ }, children: comment.content }) }),
1940
+ footer ? /* @__PURE__ */ jsx8("div", { className: "pt-2 flex flex-wrap items-center gap-2", children: footer }) : null
1941
+ ] })
1914
1942
  ] }),
1915
- /* @__PURE__ */ jsxs6("div", { className: "space-y-2 w-full max-w-full overflow-hidden", style: { maxWidth: "100%", wordBreak: "break-word" }, children: [
1916
- comment.title && /* @__PURE__ */ jsx8("div", { className: compact ? "h-[20px] flex items-center" : "h-[24px] flex items-center", children: /* @__PURE__ */ jsx8("h4", { className: "text-h3 tracking-[-0.02em] text-ods-text-primary group-hover:text-ods-accent transition-colors line-clamp-1", style: {
1917
- wordBreak: "break-word",
1918
- overflowWrap: "break-word",
1919
- maxWidth: "100%",
1920
- textOverflow: "ellipsis",
1921
- overflow: "hidden",
1922
- display: "-webkit-box",
1923
- WebkitBoxOrient: "vertical",
1924
- WebkitLineClamp: 1
1925
- }, children: comment.title }) }),
1926
- /* @__PURE__ */ jsx8("div", { className: compact ? "h-[60px] flex items-center" : "h-[72px] flex items-center", children: /* @__PURE__ */ jsx8("p", { className: "text-h4 text-ods-text-primary line-clamp-3", style: {
1927
- wordBreak: "break-word",
1928
- overflowWrap: "break-word",
1929
- maxWidth: "100%",
1930
- textOverflow: "ellipsis",
1931
- overflow: "hidden",
1932
- display: "-webkit-box",
1933
- WebkitBoxOrient: "vertical",
1934
- WebkitLineClamp: 3
1935
- }, children: comment.content }) })
1936
- ] })
1943
+ children
1944
+ ] });
1945
+ }
1946
+
1947
+ // src/components/comment-composer.tsx
1948
+ import { useState as useState2 } from "react";
1949
+ import { jsx as jsx9, jsxs as jsxs7 } from "react/jsx-runtime";
1950
+ function CommentComposer({
1951
+ withTitle = false,
1952
+ titleLabel = "Title",
1953
+ titlePlaceholder = "Your comment title here",
1954
+ titleRef,
1955
+ bodyLabel = "Description",
1956
+ placeholder = "Write your comment...",
1957
+ extras,
1958
+ submitLabel = "Send",
1959
+ cancelLabel = "Cancel",
1960
+ onCancel,
1961
+ pending = false,
1962
+ ariaLabel,
1963
+ onSubmit
1964
+ }) {
1965
+ const [title, setTitle] = useState2("");
1966
+ const [body, setBody] = useState2("");
1967
+ const canSubmit = body.trim().length > 0 && (!withTitle || title.trim().length > 0) && !pending;
1968
+ const submit = async () => {
1969
+ if (!canSubmit) return;
1970
+ const kept = await onSubmit({ title: title.trim(), body: body.trim() });
1971
+ if (kept === false) return;
1972
+ setTitle("");
1973
+ setBody("");
1974
+ };
1975
+ return /* @__PURE__ */ jsxs7("div", { className: "flex flex-col gap-[var(--spacing-system-xsf)]", children: [
1976
+ /* @__PURE__ */ jsxs7("div", { className: "flex flex-col gap-[var(--spacing-system-sf)] md:flex-row", children: [
1977
+ /* @__PURE__ */ jsxs7("div", { className: "flex-1 overflow-hidden rounded-lg border border-ods-border bg-ods-bg", children: [
1978
+ withTitle ? /* @__PURE__ */ jsxs7("div", { className: "border-b border-ods-border", children: [
1979
+ /* @__PURE__ */ jsx9(Label, { className: "text-badge text-ods-text-secondary px-3 pt-2 pb-1", children: titleLabel }),
1980
+ /* @__PURE__ */ jsx9(
1981
+ Input,
1982
+ {
1983
+ ref: titleRef,
1984
+ value: title,
1985
+ onChange: (e) => setTitle(e.target.value),
1986
+ placeholder: titlePlaceholder,
1987
+ disabled: pending,
1988
+ className: "rounded-none border-0 bg-transparent focus-visible:ring-0"
1989
+ }
1990
+ )
1991
+ ] }) : null,
1992
+ withTitle ? /* @__PURE__ */ jsx9(Label, { className: "text-badge text-ods-text-secondary px-3 pt-2 pb-1", children: bodyLabel }) : null,
1993
+ /* @__PURE__ */ jsx9(
1994
+ Textarea,
1995
+ {
1996
+ value: body,
1997
+ onChange: (e) => setBody(e.target.value),
1998
+ placeholder,
1999
+ disabled: pending,
2000
+ "aria-label": ariaLabel ?? (withTitle ? bodyLabel : submitLabel),
2001
+ className: "min-h-[64px] rounded-none border-0 bg-transparent focus-visible:ring-0"
2002
+ }
2003
+ )
2004
+ ] }),
2005
+ /* @__PURE__ */ jsxs7("div", { className: "flex items-start gap-[var(--spacing-system-xsf)]", children: [
2006
+ onCancel ? /* @__PURE__ */ jsx9(Button, { type: "button", variant: "outline", size: "small-legacy", onClick: onCancel, disabled: pending, children: cancelLabel }) : null,
2007
+ /* @__PURE__ */ jsx9(Button, { type: "button", variant: "accent", size: "small-legacy", onClick: submit, disabled: !canSubmit, loading: pending, children: submitLabel })
2008
+ ] })
2009
+ ] }),
2010
+ extras ? /* @__PURE__ */ jsx9("div", { className: "flex flex-wrap items-center gap-[var(--spacing-system-xsf)]", children: extras }) : null
1937
2011
  ] });
1938
2012
  }
1939
2013
 
1940
2014
  // src/components/content-loading-container.tsx
1941
2015
  init_cn();
1942
- import { jsx as jsx9, jsxs as jsxs7 } from "react/jsx-runtime";
2016
+ import { jsx as jsx10, jsxs as jsxs8 } from "react/jsx-runtime";
1943
2017
  function ContentLoadingContainer({
1944
2018
  isLoading,
1945
2019
  children,
@@ -1949,7 +2023,7 @@ function ContentLoadingContainer({
1949
2023
  loadingOpacity = 1,
1950
2024
  transitionDuration = 300
1951
2025
  }) {
1952
- return /* @__PURE__ */ jsxs7(
2026
+ return /* @__PURE__ */ jsxs8(
1953
2027
  "div",
1954
2028
  {
1955
2029
  className: cn(
@@ -1964,7 +2038,7 @@ function ContentLoadingContainer({
1964
2038
  "aria-label": isLoading ? "Loading content" : "Content loaded",
1965
2039
  "aria-live": "polite",
1966
2040
  children: [
1967
- isLoading && /* @__PURE__ */ jsx9(
2041
+ isLoading && /* @__PURE__ */ jsx10(
1968
2042
  "div",
1969
2043
  {
1970
2044
  className: "absolute inset-0 z-10 bg-ods-bg",
@@ -1977,7 +2051,7 @@ function ContentLoadingContainer({
1977
2051
  children: skeletonComponent
1978
2052
  }
1979
2053
  ),
1980
- /* @__PURE__ */ jsx9(
2054
+ /* @__PURE__ */ jsx10(
1981
2055
  "div",
1982
2056
  {
1983
2057
  className: cn(
@@ -2030,7 +2104,7 @@ function useThemeAware() {
2030
2104
  }
2031
2105
 
2032
2106
  // src/components/dynamic-skeleton.tsx
2033
- import { Fragment as Fragment2, jsx as jsx10, jsxs as jsxs8 } from "react/jsx-runtime";
2107
+ import { Fragment as Fragment2, jsx as jsx11, jsxs as jsxs9 } from "react/jsx-runtime";
2034
2108
  var sizePresets = {
2035
2109
  sm: { width: "4rem", height: "1rem" },
2036
2110
  md: { width: "8rem", height: "1.5rem" },
@@ -2095,14 +2169,14 @@ function DynamicSkeleton({
2095
2169
  className
2096
2170
  );
2097
2171
  if (variant === "text" && lines > 1) {
2098
- return /* @__PURE__ */ jsx10(
2172
+ return /* @__PURE__ */ jsx11(
2099
2173
  "div",
2100
2174
  {
2101
2175
  className: "space-y-2",
2102
2176
  style: platformStyles,
2103
2177
  role: "status",
2104
2178
  "aria-label": includeAriaLabel ? "Loading content..." : void 0,
2105
- children: Array.from({ length: lines }, (_, index) => /* @__PURE__ */ jsx10(
2179
+ children: Array.from({ length: lines }, (_, index) => /* @__PURE__ */ jsx11(
2106
2180
  "div",
2107
2181
  {
2108
2182
  className: cn(
@@ -2120,7 +2194,7 @@ function DynamicSkeleton({
2120
2194
  }
2121
2195
  );
2122
2196
  }
2123
- return /* @__PURE__ */ jsx10(
2197
+ return /* @__PURE__ */ jsx11(
2124
2198
  "div",
2125
2199
  {
2126
2200
  className: baseClasses,
@@ -2135,72 +2209,72 @@ var SkeletonPresets = {
2135
2209
  /**
2136
2210
  * Card skeleton with header, content, and actions
2137
2211
  */
2138
- Card: ({ showActions = true, showImage = false }) => /* @__PURE__ */ jsxs8("div", { className: "bg-ods-card border border-ods-border rounded-lg p-6 space-y-4", children: [
2139
- showImage && /* @__PURE__ */ jsx10(DynamicSkeleton, { variant: "image", className: "w-full h-40" }),
2140
- /* @__PURE__ */ jsxs8("div", { className: "space-y-2", children: [
2141
- /* @__PURE__ */ jsx10(DynamicSkeleton, { variant: "text", size: "lg" }),
2142
- /* @__PURE__ */ jsx10(DynamicSkeleton, { variant: "text", lines: 2, size: "md" })
2212
+ Card: ({ showActions = true, showImage = false }) => /* @__PURE__ */ jsxs9("div", { className: "bg-ods-card border border-ods-border rounded-lg p-6 space-y-4", children: [
2213
+ showImage && /* @__PURE__ */ jsx11(DynamicSkeleton, { variant: "image", className: "w-full h-40" }),
2214
+ /* @__PURE__ */ jsxs9("div", { className: "space-y-2", children: [
2215
+ /* @__PURE__ */ jsx11(DynamicSkeleton, { variant: "text", size: "lg" }),
2216
+ /* @__PURE__ */ jsx11(DynamicSkeleton, { variant: "text", lines: 2, size: "md" })
2143
2217
  ] }),
2144
- showActions && /* @__PURE__ */ jsxs8("div", { className: "flex gap-2 pt-2", children: [
2145
- /* @__PURE__ */ jsx10(DynamicSkeleton, { variant: "button", width: "6rem", height: "2.5rem" }),
2146
- /* @__PURE__ */ jsx10(DynamicSkeleton, { variant: "button", width: "4rem", height: "2.5rem" })
2218
+ showActions && /* @__PURE__ */ jsxs9("div", { className: "flex gap-2 pt-2", children: [
2219
+ /* @__PURE__ */ jsx11(DynamicSkeleton, { variant: "button", width: "6rem", height: "2.5rem" }),
2220
+ /* @__PURE__ */ jsx11(DynamicSkeleton, { variant: "button", width: "4rem", height: "2.5rem" })
2147
2221
  ] })
2148
2222
  ] }),
2149
2223
  /**
2150
2224
  * User profile skeleton
2151
2225
  */
2152
- Profile: () => /* @__PURE__ */ jsxs8("div", { className: "flex items-start gap-4 p-4", children: [
2153
- /* @__PURE__ */ jsx10(DynamicSkeleton, { variant: "avatar", size: "lg" }),
2154
- /* @__PURE__ */ jsxs8("div", { className: "flex-1 space-y-2", children: [
2155
- /* @__PURE__ */ jsx10(DynamicSkeleton, { variant: "text", size: "lg", width: "8rem" }),
2156
- /* @__PURE__ */ jsx10(DynamicSkeleton, { variant: "text", size: "sm", width: "12rem" }),
2157
- /* @__PURE__ */ jsx10(DynamicSkeleton, { variant: "text", lines: 2, size: "md" })
2226
+ Profile: () => /* @__PURE__ */ jsxs9("div", { className: "flex items-start gap-4 p-4", children: [
2227
+ /* @__PURE__ */ jsx11(DynamicSkeleton, { variant: "avatar", size: "lg" }),
2228
+ /* @__PURE__ */ jsxs9("div", { className: "flex-1 space-y-2", children: [
2229
+ /* @__PURE__ */ jsx11(DynamicSkeleton, { variant: "text", size: "lg", width: "8rem" }),
2230
+ /* @__PURE__ */ jsx11(DynamicSkeleton, { variant: "text", size: "sm", width: "12rem" }),
2231
+ /* @__PURE__ */ jsx11(DynamicSkeleton, { variant: "text", lines: 2, size: "md" })
2158
2232
  ] })
2159
2233
  ] }),
2160
2234
  /**
2161
2235
  * Navigation skeleton
2162
2236
  */
2163
- Navigation: ({ items = 5 }) => /* @__PURE__ */ jsx10("nav", { className: "space-y-2 p-4", children: Array.from({ length: items }, (_, index) => /* @__PURE__ */ jsxs8("div", { className: "flex items-center gap-3", children: [
2164
- /* @__PURE__ */ jsx10(DynamicSkeleton, { variant: "avatar", size: "sm" }),
2165
- /* @__PURE__ */ jsx10(DynamicSkeleton, { variant: "text", size: "md" })
2237
+ Navigation: ({ items = 5 }) => /* @__PURE__ */ jsx11("nav", { className: "space-y-2 p-4", children: Array.from({ length: items }, (_, index) => /* @__PURE__ */ jsxs9("div", { className: "flex items-center gap-3", children: [
2238
+ /* @__PURE__ */ jsx11(DynamicSkeleton, { variant: "avatar", size: "sm" }),
2239
+ /* @__PURE__ */ jsx11(DynamicSkeleton, { variant: "text", size: "md" })
2166
2240
  ] }, index)) }),
2167
2241
  /**
2168
2242
  * Table skeleton
2169
2243
  */
2170
- Table: ({ rows = 5, columns = 4 }) => /* @__PURE__ */ jsxs8("div", { className: "space-y-3", children: [
2171
- /* @__PURE__ */ jsx10("div", { className: "grid gap-4", style: { gridTemplateColumns: `repeat(${columns}, 1fr)` }, children: Array.from({ length: columns }, (_, index) => /* @__PURE__ */ jsx10(DynamicSkeleton, { variant: "text", size: "md" }, `header-${index}`)) }),
2172
- Array.from({ length: rows }, (_, rowIndex) => /* @__PURE__ */ jsx10("div", { className: "grid gap-4", style: { gridTemplateColumns: `repeat(${columns}, 1fr)` }, children: Array.from({ length: columns }, (_2, colIndex) => /* @__PURE__ */ jsx10(DynamicSkeleton, { variant: "text", size: "sm" }, `cell-${rowIndex}-${colIndex}`)) }, `row-${rowIndex}`))
2244
+ Table: ({ rows = 5, columns = 4 }) => /* @__PURE__ */ jsxs9("div", { className: "space-y-3", children: [
2245
+ /* @__PURE__ */ jsx11("div", { className: "grid gap-4", style: { gridTemplateColumns: `repeat(${columns}, 1fr)` }, children: Array.from({ length: columns }, (_, index) => /* @__PURE__ */ jsx11(DynamicSkeleton, { variant: "text", size: "md" }, `header-${index}`)) }),
2246
+ Array.from({ length: rows }, (_, rowIndex) => /* @__PURE__ */ jsx11("div", { className: "grid gap-4", style: { gridTemplateColumns: `repeat(${columns}, 1fr)` }, children: Array.from({ length: columns }, (_2, colIndex) => /* @__PURE__ */ jsx11(DynamicSkeleton, { variant: "text", size: "sm" }, `cell-${rowIndex}-${colIndex}`)) }, `row-${rowIndex}`))
2173
2247
  ] }),
2174
2248
  /**
2175
2249
  * Vendor grid skeleton (specific to the app)
2176
2250
  */
2177
- VendorGrid: ({ items = 6 }) => /* @__PURE__ */ jsx10("div", { className: "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6", children: Array.from({ length: items }, (_, index) => /* @__PURE__ */ jsxs8("div", { className: "bg-ods-card border border-ods-border rounded-lg p-4 space-y-3", children: [
2178
- /* @__PURE__ */ jsxs8("div", { className: "flex items-center gap-3", children: [
2179
- /* @__PURE__ */ jsx10(DynamicSkeleton, { variant: "avatar", size: "md" }),
2180
- /* @__PURE__ */ jsxs8("div", { className: "flex-1", children: [
2181
- /* @__PURE__ */ jsx10(DynamicSkeleton, { variant: "text", size: "md", width: "6rem" }),
2182
- /* @__PURE__ */ jsx10(DynamicSkeleton, { variant: "text", size: "sm", width: "4rem", className: "mt-1" })
2251
+ VendorGrid: ({ items = 6 }) => /* @__PURE__ */ jsx11("div", { className: "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6", children: Array.from({ length: items }, (_, index) => /* @__PURE__ */ jsxs9("div", { className: "bg-ods-card border border-ods-border rounded-lg p-4 space-y-3", children: [
2252
+ /* @__PURE__ */ jsxs9("div", { className: "flex items-center gap-3", children: [
2253
+ /* @__PURE__ */ jsx11(DynamicSkeleton, { variant: "avatar", size: "md" }),
2254
+ /* @__PURE__ */ jsxs9("div", { className: "flex-1", children: [
2255
+ /* @__PURE__ */ jsx11(DynamicSkeleton, { variant: "text", size: "md", width: "6rem" }),
2256
+ /* @__PURE__ */ jsx11(DynamicSkeleton, { variant: "text", size: "sm", width: "4rem", className: "mt-1" })
2183
2257
  ] })
2184
2258
  ] }),
2185
- /* @__PURE__ */ jsx10(DynamicSkeleton, { variant: "text", lines: 2, size: "sm" }),
2186
- /* @__PURE__ */ jsxs8("div", { className: "flex gap-2", children: [
2187
- /* @__PURE__ */ jsx10(DynamicSkeleton, { variant: "custom", width: "3rem", height: "1.25rem", className: "rounded-full" }),
2188
- /* @__PURE__ */ jsx10(DynamicSkeleton, { variant: "custom", width: "4rem", height: "1.25rem", className: "rounded-full" })
2259
+ /* @__PURE__ */ jsx11(DynamicSkeleton, { variant: "text", lines: 2, size: "sm" }),
2260
+ /* @__PURE__ */ jsxs9("div", { className: "flex gap-2", children: [
2261
+ /* @__PURE__ */ jsx11(DynamicSkeleton, { variant: "custom", width: "3rem", height: "1.25rem", className: "rounded-full" }),
2262
+ /* @__PURE__ */ jsx11(DynamicSkeleton, { variant: "custom", width: "4rem", height: "1.25rem", className: "rounded-full" })
2189
2263
  ] })
2190
2264
  ] }, index)) }),
2191
2265
  /**
2192
2266
  * Blog post skeleton
2193
2267
  */
2194
- BlogPost: () => /* @__PURE__ */ jsxs8("article", { className: "space-y-6", children: [
2195
- /* @__PURE__ */ jsxs8("div", { className: "space-y-2", children: [
2196
- /* @__PURE__ */ jsx10(DynamicSkeleton, { variant: "text", size: "xl", width: "75%" }),
2197
- /* @__PURE__ */ jsxs8("div", { className: "flex gap-4 text-sm", children: [
2198
- /* @__PURE__ */ jsx10(DynamicSkeleton, { variant: "text", size: "sm", width: "4rem" }),
2199
- /* @__PURE__ */ jsx10(DynamicSkeleton, { variant: "text", size: "sm", width: "6rem" })
2268
+ BlogPost: () => /* @__PURE__ */ jsxs9("article", { className: "space-y-6", children: [
2269
+ /* @__PURE__ */ jsxs9("div", { className: "space-y-2", children: [
2270
+ /* @__PURE__ */ jsx11(DynamicSkeleton, { variant: "text", size: "xl", width: "75%" }),
2271
+ /* @__PURE__ */ jsxs9("div", { className: "flex gap-4 text-sm", children: [
2272
+ /* @__PURE__ */ jsx11(DynamicSkeleton, { variant: "text", size: "sm", width: "4rem" }),
2273
+ /* @__PURE__ */ jsx11(DynamicSkeleton, { variant: "text", size: "sm", width: "6rem" })
2200
2274
  ] })
2201
2275
  ] }),
2202
- /* @__PURE__ */ jsx10(DynamicSkeleton, { variant: "image", className: "w-full h-64" }),
2203
- /* @__PURE__ */ jsx10("div", { className: "space-y-3", children: Array.from({ length: 4 }, (_, index) => /* @__PURE__ */ jsx10(DynamicSkeleton, { variant: "text", lines: 3, size: "md" }, index)) })
2276
+ /* @__PURE__ */ jsx11(DynamicSkeleton, { variant: "image", className: "w-full h-64" }),
2277
+ /* @__PURE__ */ jsx11("div", { className: "space-y-3", children: Array.from({ length: 4 }, (_, index) => /* @__PURE__ */ jsx11(DynamicSkeleton, { variant: "text", lines: 3, size: "md" }, index)) })
2204
2278
  ] })
2205
2279
  };
2206
2280
  function PlatformSkeletonContainer({
@@ -2211,10 +2285,10 @@ function PlatformSkeletonContainer({
2211
2285
  }) {
2212
2286
  const { platform } = useThemeAware();
2213
2287
  if (!isLoading) {
2214
- return /* @__PURE__ */ jsx10(Fragment2, { children });
2288
+ return /* @__PURE__ */ jsx11(Fragment2, { children });
2215
2289
  }
2216
2290
  const SkeletonComponent = SkeletonPresets[skeletonType];
2217
- return /* @__PURE__ */ jsx10("div", { className: `platform-skeleton skeleton-${platform}`, children: /* @__PURE__ */ jsx10(SkeletonComponent, { ...skeletonProps }) });
2291
+ return /* @__PURE__ */ jsx11("div", { className: `platform-skeleton skeleton-${platform}`, children: /* @__PURE__ */ jsx11(SkeletonComponent, { ...skeletonProps }) });
2218
2292
  }
2219
2293
  function ProgressiveSkeleton({
2220
2294
  stages = ["basic", "detailed", "interactive"],
@@ -2229,7 +2303,7 @@ function ProgressiveSkeleton({
2229
2303
  2: { animation: "wave", variant: "custom" }
2230
2304
  };
2231
2305
  const config = stageConfig[currentStage] || stageConfig[0];
2232
- return /* @__PURE__ */ jsx10(
2306
+ return /* @__PURE__ */ jsx11(
2233
2307
  DynamicSkeleton,
2234
2308
  {
2235
2309
  ...props,
@@ -2247,7 +2321,7 @@ function ProgressiveSkeleton({
2247
2321
  // src/components/filter-chip.tsx
2248
2322
  init_cn();
2249
2323
  import { X as X2 } from "lucide-react";
2250
- import { jsx as jsx11, jsxs as jsxs9 } from "react/jsx-runtime";
2324
+ import { jsx as jsx12, jsxs as jsxs10 } from "react/jsx-runtime";
2251
2325
  function FilterChip({
2252
2326
  id,
2253
2327
  label,
@@ -2280,7 +2354,7 @@ function FilterChip({
2280
2354
  subcategory: "bg-ods-bg-surface text-ods-text-primary border border-ods-accent/60 hover:bg-ods-border hover:border-ods-accent/80 hover:text-ods-text-primary focus:ring-ods-accent/60 focus:ring-offset-ods-bg",
2281
2355
  tag: "bg-ods-bg-surface text-ods-text-primary border border-ods-accent/20 hover:bg-ods-border hover:border-ods-accent/30 hover:text-ods-text-primary focus:ring-ods-accent/20 focus:ring-offset-ods-bg"
2282
2356
  };
2283
- return /* @__PURE__ */ jsxs9(
2357
+ return /* @__PURE__ */ jsxs10(
2284
2358
  "div",
2285
2359
  {
2286
2360
  className: cn(baseClasses, variantClasses[variant], className),
@@ -2294,11 +2368,11 @@ function FilterChip({
2294
2368
  "aria-pressed": onClick && variant === "selected" ? true : void 0,
2295
2369
  "aria-disabled": disabled,
2296
2370
  children: [
2297
- /* @__PURE__ */ jsx11("span", { className: cn(
2371
+ /* @__PURE__ */ jsx12("span", { className: cn(
2298
2372
  "truncate font-body font-medium leading-none text-center",
2299
2373
  size === "sm" ? "max-w-[100px] md:max-w-[120px]" : "max-w-[120px] md:max-w-[140px]"
2300
2374
  ), title: label, children: label }),
2301
- removable && onRemove && /* @__PURE__ */ jsx11(
2375
+ removable && onRemove && /* @__PURE__ */ jsx12(
2302
2376
  "button",
2303
2377
  {
2304
2378
  type: "button",
@@ -2317,7 +2391,7 @@ function FilterChip({
2317
2391
  ),
2318
2392
  "aria-label": `Remove ${label} filter`,
2319
2393
  tabIndex: disabled ? -1 : 0,
2320
- children: /* @__PURE__ */ jsx11(X2, { className: "h-2 w-2 md:h-2 md:w-2" })
2394
+ children: /* @__PURE__ */ jsx12(X2, { className: "h-2 w-2 md:h-2 md:w-2" })
2321
2395
  }
2322
2396
  )
2323
2397
  ]
@@ -2331,7 +2405,7 @@ import { Suspense } from "react";
2331
2405
  // src/components/social-icon-row.tsx
2332
2406
  init_button();
2333
2407
  import { Mail } from "lucide-react";
2334
- import { jsx as jsx12, jsxs as jsxs10 } from "react/jsx-runtime";
2408
+ import { jsx as jsx13, jsxs as jsxs11 } from "react/jsx-runtime";
2335
2409
  var defaultLinks = [
2336
2410
  { platform: "github", href: "https://github.com/flamingo-stack", label: "GitHub" },
2337
2411
  { platform: "linkedin", href: "https://linkedin.com/company/flamingo.run", label: "LinkedIn" },
@@ -2341,51 +2415,51 @@ function renderSocialIcon(platform) {
2341
2415
  const normalizedPlatform = platform.toLowerCase().trim();
2342
2416
  switch (normalizedPlatform) {
2343
2417
  case "github":
2344
- return /* @__PURE__ */ jsx12(GitHubIcon, { className: "w-5 h-5" });
2418
+ return /* @__PURE__ */ jsx13(GitHubIcon, { className: "w-5 h-5" });
2345
2419
  case "twitter":
2346
2420
  case "x":
2347
- return /* @__PURE__ */ jsx12(XLogo, { className: "w-5 h-5" });
2421
+ return /* @__PURE__ */ jsx13(XLogo, { className: "w-5 h-5" });
2348
2422
  case "reddit":
2349
- return /* @__PURE__ */ jsx12(RedditIcon, { className: "w-5 h-5", variant: "white" });
2423
+ return /* @__PURE__ */ jsx13(RedditIcon, { className: "w-5 h-5", variant: "white" });
2350
2424
  case "linkedin":
2351
- return /* @__PURE__ */ jsx12(LinkedInIcon, { className: "w-5 h-5" });
2425
+ return /* @__PURE__ */ jsx13(LinkedInIcon, { className: "w-5 h-5" });
2352
2426
  case "luma":
2353
- return /* @__PURE__ */ jsx12(LumaIcon, { className: "w-5 h-5" });
2427
+ return /* @__PURE__ */ jsx13(LumaIcon, { className: "w-5 h-5" });
2354
2428
  case "whatsapp":
2355
- return /* @__PURE__ */ jsx12(WhatsAppIcon, { className: "w-5 h-5" });
2429
+ return /* @__PURE__ */ jsx13(WhatsAppIcon, { className: "w-5 h-5" });
2356
2430
  case "email":
2357
2431
  case "mail":
2358
- return /* @__PURE__ */ jsx12(Mail, { className: "w-5 h-5" });
2432
+ return /* @__PURE__ */ jsx13(Mail, { className: "w-5 h-5" });
2359
2433
  case "website":
2360
2434
  case "web":
2361
2435
  case "url":
2362
- return /* @__PURE__ */ jsx12(GlobeIcon, { className: "w-5 h-5" });
2436
+ return /* @__PURE__ */ jsx13(GlobeIcon, { className: "w-5 h-5" });
2363
2437
  case "slack":
2364
- return /* @__PURE__ */ jsx12(SlackIcon, { className: "w-5 h-5", injectedColor: "white" });
2438
+ return /* @__PURE__ */ jsx13(SlackIcon, { className: "w-5 h-5", injectedColor: "white" });
2365
2439
  case "discord":
2366
- return /* @__PURE__ */ jsx12(MessageCircleIcon, { className: "w-5 h-5" });
2440
+ return /* @__PURE__ */ jsx13(MessageCircleIcon, { className: "w-5 h-5" });
2367
2441
  case "telegram":
2368
- return /* @__PURE__ */ jsx12(TelegramIcon, { className: "w-5 h-5" });
2442
+ return /* @__PURE__ */ jsx13(TelegramIcon, { className: "w-5 h-5" });
2369
2443
  case "youtube":
2370
2444
  case "yt":
2371
- return /* @__PURE__ */ jsx12(YouTubeIcon, { className: "w-5 h-5" });
2445
+ return /* @__PURE__ */ jsx13(YouTubeIcon, { className: "w-5 h-5" });
2372
2446
  case "instagram":
2373
2447
  case "ig":
2374
- return /* @__PURE__ */ jsx12(InstagramIcon, { className: "w-5 h-5" });
2448
+ return /* @__PURE__ */ jsx13(InstagramIcon, { className: "w-5 h-5" });
2375
2449
  case "facebook":
2376
2450
  case "fb":
2377
- return /* @__PURE__ */ jsx12(FacebookIcon, { className: "w-5 h-5" });
2451
+ return /* @__PURE__ */ jsx13(FacebookIcon, { className: "w-5 h-5" });
2378
2452
  case "copy":
2379
- return /* @__PURE__ */ jsx12(CopyIcon, { className: "w-5 h-5", color: "var(--color-text-primary)" });
2453
+ return /* @__PURE__ */ jsx13(CopyIcon, { className: "w-5 h-5", color: "var(--color-text-primary)" });
2380
2454
  default:
2381
- return /* @__PURE__ */ jsx12(GlobeIcon, { className: "w-5 h-5" });
2455
+ return /* @__PURE__ */ jsx13(GlobeIcon, { className: "w-5 h-5" });
2382
2456
  }
2383
2457
  }
2384
2458
  function SocialIconRow({ className = "", links = defaultLinks, variant, compact = false, groupByVisibility = false }) {
2385
2459
  const resolvedVariant = variant !== void 0 ? variant : compact ? "transparent" : "outline";
2386
2460
  const renderButton = (link, index) => {
2387
2461
  const ariaLabel = link.label || link.platform;
2388
- return link.onClick ? /* @__PURE__ */ jsx12(
2462
+ return link.onClick ? /* @__PURE__ */ jsx13(
2389
2463
  Button,
2390
2464
  {
2391
2465
  type: "button",
@@ -2401,7 +2475,7 @@ function SocialIconRow({ className = "", links = defaultLinks, variant, compact
2401
2475
  // Props-based linking — Button renders the anchor itself
2402
2476
  // (openInNewTab carries target="_blank" + rel="noopener noreferrer");
2403
2477
  // no asChild/<a> nesting.
2404
- /* @__PURE__ */ jsx12(
2478
+ /* @__PURE__ */ jsx13(
2405
2479
  Button,
2406
2480
  {
2407
2481
  variant: resolvedVariant,
@@ -2421,42 +2495,42 @@ function SocialIconRow({ className = "", links = defaultLinks, variant, compact
2421
2495
  const external = links.filter((l) => l.visibility !== "internal");
2422
2496
  const internal = links.filter((l) => l.visibility === "internal");
2423
2497
  if (external.length > 0 && internal.length > 0) {
2424
- return /* @__PURE__ */ jsxs10("div", { className: rowClass, children: [
2498
+ return /* @__PURE__ */ jsxs11("div", { className: rowClass, children: [
2425
2499
  external.map((l, i) => renderButton(l, i)),
2426
- /* @__PURE__ */ jsx12("span", { "aria-hidden": true, className: "self-stretch w-px my-1 bg-ods-border shrink-0" }),
2500
+ /* @__PURE__ */ jsx13("span", { "aria-hidden": true, className: "self-stretch w-px my-1 bg-ods-border shrink-0" }),
2427
2501
  internal.map((l, i) => renderButton(l, external.length + i))
2428
2502
  ] });
2429
2503
  }
2430
2504
  }
2431
- return /* @__PURE__ */ jsx12("div", { className: rowClass, children: links.map((link, index) => renderButton(link, index)) });
2505
+ return /* @__PURE__ */ jsx13("div", { className: rowClass, children: links.map((link, index) => renderButton(link, index)) });
2432
2506
  }
2433
2507
 
2434
2508
  // src/components/footer.tsx
2435
- import { Fragment as Fragment3, jsx as jsx13, jsxs as jsxs11 } from "react/jsx-runtime";
2509
+ import { Fragment as Fragment3, jsx as jsx14, jsxs as jsxs12 } from "react/jsx-runtime";
2436
2510
  function NavLinkSkeleton() {
2437
- return /* @__PURE__ */ jsx13(Skeleton, { className: "h-5 md:h-6 w-20 md:w-24" });
2511
+ return /* @__PURE__ */ jsx14(Skeleton, { className: "h-5 md:h-6 w-20 md:w-24" });
2438
2512
  }
2439
2513
  function Footer({ config, renderLink }) {
2440
2514
  if (!config) {
2441
2515
  console.warn("Footer: No config provided");
2442
2516
  return null;
2443
2517
  }
2444
- return /* @__PURE__ */ jsx13(UniversalFooter, { config, renderLink });
2518
+ return /* @__PURE__ */ jsx14(UniversalFooter, { config, renderLink });
2445
2519
  }
2446
2520
  function UniversalFooter({ config, renderLink }) {
2447
- const defaultRenderLink = (link) => /* @__PURE__ */ jsx13("a", { href: link.href, className: "font-body font-medium text-md md:text-md leading-[1.33] text-ods-text-primary hover:text-ods-accent transition-colors", children: link.label });
2521
+ const defaultRenderLink = (link) => /* @__PURE__ */ jsx14("a", { href: link.href, className: "font-body font-medium text-md md:text-md leading-[1.33] text-ods-text-primary hover:text-ods-accent transition-colors", children: link.label });
2448
2522
  const linkRenderer = renderLink || defaultRenderLink;
2449
- return /* @__PURE__ */ jsxs11("footer", { className: `w-full flex flex-col justify-center items-center ${config.backgroundColor || "bg-ods-card"} px-6 py-10 relative gap-6 md:gap-6 min-h-[auto] md:min-h-[248px] z-[44] border-t border-ods-border`, children: [
2450
- /* @__PURE__ */ jsxs11("div", { className: "w-full grid grid-cols-2 lg:grid-cols-4 gap-6 md:gap-8 items-start", children: [
2451
- /* @__PURE__ */ jsxs11("div", { className: "flex flex-col gap-4 md:gap-6 items-start text-left col-span-2 md:col-span-1 lg:col-span-1", children: [
2452
- /* @__PURE__ */ jsxs11("div", { className: "flex items-center gap-2", children: [
2453
- config.logo && /* @__PURE__ */ jsx13(Suspense, { fallback: /* @__PURE__ */ jsx13(Skeleton, { className: "w-8 h-8" }), children: config.logo }),
2454
- config.nameElement || /* @__PURE__ */ jsx13("span", { className: "font-heading text-heading-5 font-bold text-ods-text-primary whitespace-nowrap", children: config.name })
2523
+ return /* @__PURE__ */ jsxs12("footer", { className: `w-full flex flex-col justify-center items-center ${config.backgroundColor || "bg-ods-card"} px-6 py-10 relative gap-6 md:gap-6 min-h-[auto] md:min-h-[248px] z-[44] border-t border-ods-border`, children: [
2524
+ /* @__PURE__ */ jsxs12("div", { className: "w-full grid grid-cols-2 lg:grid-cols-4 gap-6 md:gap-8 items-start", children: [
2525
+ /* @__PURE__ */ jsxs12("div", { className: "flex flex-col gap-4 md:gap-6 items-start text-left col-span-2 md:col-span-1 lg:col-span-1", children: [
2526
+ /* @__PURE__ */ jsxs12("div", { className: "flex items-center gap-2", children: [
2527
+ config.logo && /* @__PURE__ */ jsx14(Suspense, { fallback: /* @__PURE__ */ jsx14(Skeleton, { className: "w-8 h-8" }), children: config.logo }),
2528
+ config.nameElement || /* @__PURE__ */ jsx14("span", { className: "font-heading text-heading-5 font-bold text-ods-text-primary whitespace-nowrap", children: config.name })
2455
2529
  ] }),
2456
- !config.moveDescriptionToRight && /* @__PURE__ */ jsxs11(Fragment3, { children: [
2457
- /* @__PURE__ */ jsx13("p", { className: "font-body font-medium text-sm md:text-sm leading-[1.43] text-ods-text-primary", children: config.description }),
2458
- config.belowDescriptionContent && /* @__PURE__ */ jsx13(Suspense, { fallback: /* @__PURE__ */ jsx13(Skeleton, { className: "h-8 w-full" }), children: config.belowDescriptionContent }),
2459
- !config.hideSocialRow && /* @__PURE__ */ jsx13(
2530
+ !config.moveDescriptionToRight && /* @__PURE__ */ jsxs12(Fragment3, { children: [
2531
+ /* @__PURE__ */ jsx14("p", { className: "font-body font-medium text-sm md:text-sm leading-[1.43] text-ods-text-primary", children: config.description }),
2532
+ config.belowDescriptionContent && /* @__PURE__ */ jsx14(Suspense, { fallback: /* @__PURE__ */ jsx14(Skeleton, { className: "h-8 w-full" }), children: config.belowDescriptionContent }),
2533
+ !config.hideSocialRow && /* @__PURE__ */ jsx14(
2460
2534
  SocialIconRow,
2461
2535
  {
2462
2536
  className: "pt-2",
@@ -2464,22 +2538,22 @@ function UniversalFooter({ config, renderLink }) {
2464
2538
  }
2465
2539
  )
2466
2540
  ] }),
2467
- config.moveDescriptionToRight && config.keepBelowDescriptionLeft && config.belowDescriptionContent && /* @__PURE__ */ jsx13(Suspense, { fallback: /* @__PURE__ */ jsx13(Skeleton, { className: "h-8 w-full" }), children: config.belowDescriptionContent })
2541
+ config.moveDescriptionToRight && config.keepBelowDescriptionLeft && config.belowDescriptionContent && /* @__PURE__ */ jsx14(Suspense, { fallback: /* @__PURE__ */ jsx14(Skeleton, { className: "h-8 w-full" }), children: config.belowDescriptionContent })
2468
2542
  ] }),
2469
- config.sections.map((section, index) => /* @__PURE__ */ jsxs11("div", { className: "flex flex-col gap-3 items-start text-left col-span-1", children: [
2470
- /* @__PURE__ */ jsx13("h3", { className: "text-h5 tracking-[-0.02em] text-ods-text-muted", children: section.title }),
2471
- /* @__PURE__ */ jsx13("div", { className: "flex flex-col gap-3", children: section.links.map((link, linkIndex) => /* @__PURE__ */ jsx13(Suspense, { fallback: /* @__PURE__ */ jsx13(NavLinkSkeleton, {}), children: linkRenderer(link) }, linkIndex)) })
2543
+ config.sections.map((section, index) => /* @__PURE__ */ jsxs12("div", { className: "flex flex-col gap-3 items-start text-left col-span-1", children: [
2544
+ /* @__PURE__ */ jsx14("h3", { className: "text-h5 tracking-[-0.02em] text-ods-text-muted", children: section.title }),
2545
+ /* @__PURE__ */ jsx14("div", { className: "flex flex-col gap-3", children: section.links.map((link, linkIndex) => /* @__PURE__ */ jsx14(Suspense, { fallback: /* @__PURE__ */ jsx14(NavLinkSkeleton, {}), children: linkRenderer(link) }, linkIndex)) })
2472
2546
  ] }, index)),
2473
- config.customComponent && /* @__PURE__ */ jsx13("div", { className: "flex flex-col col-span-2 md:col-span-1 lg:col-span-1 justify-center", children: /* @__PURE__ */ jsx13(Suspense, { fallback: /* @__PURE__ */ jsx13(Skeleton, { className: "h-32 w-full" }), children: config.customComponent }) }),
2474
- (config.rightColumnContent || config.moveDescriptionToRight) && /* @__PURE__ */ jsxs11("div", { className: "flex flex-col col-span-2 md:col-span-1 lg:col-span-1 justify-start gap-4 md:gap-6", children: [
2475
- config.moveDescriptionToRight && /* @__PURE__ */ jsxs11(Fragment3, { children: [
2476
- /* @__PURE__ */ jsx13("p", { className: "font-body font-medium text-sm md:text-sm leading-[1.43] text-ods-text-primary", children: config.description }),
2477
- config.belowDescriptionContent && !config.keepBelowDescriptionLeft && /* @__PURE__ */ jsx13(Suspense, { fallback: /* @__PURE__ */ jsx13(Skeleton, { className: "h-8 w-full" }), children: config.belowDescriptionContent })
2547
+ config.customComponent && /* @__PURE__ */ jsx14("div", { className: "flex flex-col col-span-2 md:col-span-1 lg:col-span-1 justify-center", children: /* @__PURE__ */ jsx14(Suspense, { fallback: /* @__PURE__ */ jsx14(Skeleton, { className: "h-32 w-full" }), children: config.customComponent }) }),
2548
+ (config.rightColumnContent || config.moveDescriptionToRight) && /* @__PURE__ */ jsxs12("div", { className: "flex flex-col col-span-2 md:col-span-1 lg:col-span-1 justify-start gap-4 md:gap-6", children: [
2549
+ config.moveDescriptionToRight && /* @__PURE__ */ jsxs12(Fragment3, { children: [
2550
+ /* @__PURE__ */ jsx14("p", { className: "font-body font-medium text-sm md:text-sm leading-[1.43] text-ods-text-primary", children: config.description }),
2551
+ config.belowDescriptionContent && !config.keepBelowDescriptionLeft && /* @__PURE__ */ jsx14(Suspense, { fallback: /* @__PURE__ */ jsx14(Skeleton, { className: "h-8 w-full" }), children: config.belowDescriptionContent })
2478
2552
  ] }),
2479
- config.rightColumnContent && /* @__PURE__ */ jsx13(Suspense, { fallback: /* @__PURE__ */ jsx13(Skeleton, { className: "h-32 w-full" }), children: config.rightColumnContent })
2553
+ config.rightColumnContent && /* @__PURE__ */ jsx14(Suspense, { fallback: /* @__PURE__ */ jsx14(Skeleton, { className: "h-32 w-full" }), children: config.rightColumnContent })
2480
2554
  ] })
2481
2555
  ] }),
2482
- /* @__PURE__ */ jsxs11("p", { className: "font-body font-medium text-md md:text-md leading-[1.33] text-center w-full text-ods-text-muted pt-4 md:pt-0", children: [
2556
+ /* @__PURE__ */ jsxs12("p", { className: "font-body font-medium text-md md:text-md leading-[1.33] text-center w-full text-ods-text-muted pt-4 md:pt-0", children: [
2483
2557
  "\xA9 ",
2484
2558
  (/* @__PURE__ */ new Date()).getFullYear(),
2485
2559
  " ",
@@ -2786,19 +2860,19 @@ init_unified_pagination();
2786
2860
  init_next_navigation();
2787
2861
  import { useCallback } from "react";
2788
2862
  init_button();
2789
- import { jsx as jsx14 } from "react/jsx-runtime";
2863
+ import { jsx as jsx15 } from "react/jsx-runtime";
2790
2864
  function FooterWaitlistButton({ className }) {
2791
2865
  const router = useRouter();
2792
2866
  const runtime = useChatRuntime();
2793
2867
  const handleClick = useCallback(() => {
2794
2868
  executeNavigationImperative({ runtime, href: "/waitlist#top", fallbackNavigate: router.push });
2795
2869
  }, [router, runtime]);
2796
- return /* @__PURE__ */ jsx14(
2870
+ return /* @__PURE__ */ jsx15(
2797
2871
  Button,
2798
2872
  {
2799
2873
  onClick: handleClick,
2800
2874
  className,
2801
- leftIcon: /* @__PURE__ */ jsx14(OpenFrameLogo, {}),
2875
+ leftIcon: /* @__PURE__ */ jsx15(OpenFrameLogo, {}),
2802
2876
  children: "Join Waitlist"
2803
2877
  }
2804
2878
  );
@@ -2806,13 +2880,13 @@ function FooterWaitlistButton({ className }) {
2806
2880
 
2807
2881
  // src/components/hero-image-uploader.tsx
2808
2882
  init_button();
2809
- import { useRef as useRef2, useState as useState2 } from "react";
2883
+ import { useRef as useRef2, useState as useState3 } from "react";
2810
2884
  import { Loader2, Image as ImageIcon2, Upload, X as X3 } from "lucide-react";
2811
- import { Fragment as Fragment4, jsx as jsx15, jsxs as jsxs12 } from "react/jsx-runtime";
2885
+ import { Fragment as Fragment4, jsx as jsx16, jsxs as jsxs13 } from "react/jsx-runtime";
2812
2886
  function HeroImageUploader({ imageUrl, onChange, uploadEndpoint, height = 300, objectFit = "cover", showReplaceButton = true, deferUpload = false, onUpload, onDelete }) {
2813
2887
  const inputRef = useRef2(null);
2814
2888
  const { toast } = useToast();
2815
- const [uploading, setUploading] = useState2(false);
2889
+ const [uploading, setUploading] = useState3(false);
2816
2890
  const ALLOWED_TYPES = ["image/jpeg", "image/jpg", "image/png", "image/webp", "image/gif"];
2817
2891
  const MAX_SIZE = 5 * 1024 * 1024;
2818
2892
  const openDialog = () => inputRef.current?.click();
@@ -2884,51 +2958,51 @@ function HeroImageUploader({ imageUrl, onChange, uploadEndpoint, height = 300, o
2884
2958
  onChange(void 0);
2885
2959
  };
2886
2960
  const heightStyle = typeof height === "number" ? `${height}px` : height;
2887
- return /* @__PURE__ */ jsxs12("div", { className: "w-full h-full max-h-full space-y-2 min-h-[300px]", children: [
2888
- imageUrl ? /* @__PURE__ */ jsxs12("div", { className: "relative group w-full aspect-square md:aspect-auto h-auto md:h-full flex items-center justify-center overflow-hidden", style: { height: heightStyle }, children: [
2889
- /* @__PURE__ */ jsx15("img", { src: imageUrl, className: `absolute inset-0 w-full h-full object-${objectFit}`, alt: "Cover" }),
2890
- /* @__PURE__ */ jsxs12("div", { className: "absolute inset-0 bg-black/40 opacity-0 group-hover:opacity-100 flex items-center justify-center gap-4 transition-opacity rounded-lg", children: [
2891
- showReplaceButton && /* @__PURE__ */ jsx15(
2961
+ return /* @__PURE__ */ jsxs13("div", { className: "w-full h-full max-h-full space-y-2 min-h-[300px]", children: [
2962
+ imageUrl ? /* @__PURE__ */ jsxs13("div", { className: "relative group w-full aspect-square md:aspect-auto h-auto md:h-full flex items-center justify-center overflow-hidden", style: { height: heightStyle }, children: [
2963
+ /* @__PURE__ */ jsx16("img", { src: imageUrl, className: `absolute inset-0 w-full h-full object-${objectFit}`, alt: "Cover" }),
2964
+ /* @__PURE__ */ jsxs13("div", { className: "absolute inset-0 bg-black/40 opacity-0 group-hover:opacity-100 flex items-center justify-center gap-4 transition-opacity rounded-lg", children: [
2965
+ showReplaceButton && /* @__PURE__ */ jsx16(
2892
2966
  Button,
2893
2967
  {
2894
2968
  variant: "outline",
2895
2969
  size: "icon",
2896
2970
  onClick: openDialog,
2897
2971
  className: "bg-white text-black hover:bg-gray-100 rounded-full w-12 h-12",
2898
- children: /* @__PURE__ */ jsx15(Upload, { className: "h-5 w-5" })
2972
+ children: /* @__PURE__ */ jsx16(Upload, { className: "h-5 w-5" })
2899
2973
  }
2900
2974
  ),
2901
- /* @__PURE__ */ jsx15(
2975
+ /* @__PURE__ */ jsx16(
2902
2976
  Button,
2903
2977
  {
2904
2978
  variant: "outline",
2905
2979
  size: "icon",
2906
2980
  onClick: () => handleRemove(),
2907
2981
  className: "bg-white text-black hover:bg-gray-100 rounded-full w-12 h-12",
2908
- children: /* @__PURE__ */ jsx15(X3, { className: "h-5 w-5" })
2982
+ children: /* @__PURE__ */ jsx16(X3, { className: "h-5 w-5" })
2909
2983
  }
2910
2984
  )
2911
2985
  ] })
2912
- ] }) : /* @__PURE__ */ jsx15(
2986
+ ] }) : /* @__PURE__ */ jsx16(
2913
2987
  "div",
2914
2988
  {
2915
2989
  className: `w-full h-full border-2 border-dashed ${uploading ? "border-ods-accent" : "border-ods-border hover:border-ods-accent"} rounded-lg flex flex-col items-center justify-center cursor-pointer bg-ods-bg`,
2916
2990
  style: { height: heightStyle },
2917
2991
  onClick: openDialog,
2918
- children: uploading ? /* @__PURE__ */ jsx15(Loader2, { className: "h-8 w-8 animate-spin text-ods-accent" }) : /* @__PURE__ */ jsxs12(Fragment4, { children: [
2919
- /* @__PURE__ */ jsx15(ImageIcon2, { className: "h-12 w-12 text-ods-text-secondary" }),
2920
- /* @__PURE__ */ jsx15("span", { className: "text-ods-text-primary text-h6 mt-2", children: "Upload cover image" }),
2921
- /* @__PURE__ */ jsx15("span", { className: "text-ods-text-secondary text-h6 mt-1", children: "Click to upload or drag and drop" }),
2922
- /* @__PURE__ */ jsx15("span", { className: "text-ods-text-secondary text-h6", children: "PNG, JPEG, WebP, GIF up to 5MB" })
2992
+ children: uploading ? /* @__PURE__ */ jsx16(Loader2, { className: "h-8 w-8 animate-spin text-ods-accent" }) : /* @__PURE__ */ jsxs13(Fragment4, { children: [
2993
+ /* @__PURE__ */ jsx16(ImageIcon2, { className: "h-12 w-12 text-ods-text-secondary" }),
2994
+ /* @__PURE__ */ jsx16("span", { className: "text-ods-text-primary text-h6 mt-2", children: "Upload cover image" }),
2995
+ /* @__PURE__ */ jsx16("span", { className: "text-ods-text-secondary text-h6 mt-1", children: "Click to upload or drag and drop" }),
2996
+ /* @__PURE__ */ jsx16("span", { className: "text-ods-text-secondary text-h6", children: "PNG, JPEG, WebP, GIF up to 5MB" })
2923
2997
  ] })
2924
2998
  }
2925
2999
  ),
2926
- /* @__PURE__ */ jsx15("input", { ref: inputRef, type: "file", accept: "image/*", onChange: handleSelect, className: "hidden" })
3000
+ /* @__PURE__ */ jsx16("input", { ref: inputRef, type: "file", accept: "image/*", onChange: handleSelect, className: "hidden" })
2927
3001
  ] });
2928
3002
  }
2929
3003
 
2930
3004
  // src/components/icons-block.tsx
2931
- import { useState as useState3, useEffect as useEffect2, useRef as useRef3 } from "react";
3005
+ import { useState as useState4, useEffect as useEffect2, useRef as useRef3 } from "react";
2932
3006
 
2933
3007
  // src/components/icons-stub.tsx
2934
3008
  import { DollarSign, Code, Users, Building, GitCompare, MessageSquare } from "lucide-react";
@@ -2942,13 +3016,13 @@ var CompareIcon2 = GitCompare;
2942
3016
 
2943
3017
  // src/components/icons-block.tsx
2944
3018
  import { Sun, Moon, CheckCircle, Github, PlusCircle } from "lucide-react";
2945
- import { jsx as jsx16, jsxs as jsxs13 } from "react/jsx-runtime";
3019
+ import { jsx as jsx17, jsxs as jsxs14 } from "react/jsx-runtime";
2946
3020
  var SunIcon2 = Sun;
2947
3021
  var MoonIcon2 = Moon;
2948
3022
  var CheckCircleIcon3 = CheckCircle;
2949
3023
  var GitHubIcon2 = Github;
2950
3024
  var PlusCircleIcon2 = PlusCircle;
2951
- var OpenmspLogo2 = () => /* @__PURE__ */ jsx16("div", { children: "Logo" });
3025
+ var OpenmspLogo2 = () => /* @__PURE__ */ jsx17("div", { children: "Logo" });
2952
3026
  var availableIcons = [
2953
3027
  VendorDirectoryIcon2,
2954
3028
  OpenSourceIcon2,
@@ -2964,9 +3038,9 @@ var availableIcons = [
2964
3038
  OpenmspLogo2
2965
3039
  ];
2966
3040
  function ResponsiveIconsBlock({ loading = false }) {
2967
- const [columns, setColumns] = useState3(24);
2968
- const [iconGrid, setIconGrid] = useState3([]);
2969
- const [iconsLoaded, setIconsLoaded] = useState3(false);
3041
+ const [columns, setColumns] = useState4(24);
3042
+ const [iconGrid, setIconGrid] = useState4([]);
3043
+ const [iconsLoaded, setIconsLoaded] = useState4(false);
2970
3044
  const randomSeedRef = useRef3(0);
2971
3045
  useEffect2(() => {
2972
3046
  function calculateColumns() {
@@ -3011,17 +3085,17 @@ function ResponsiveIconsBlock({ loading = false }) {
3011
3085
  return iconGrid[row]?.[col] || availableIcons[0];
3012
3086
  };
3013
3087
  if (loading || iconGrid.length === 0) {
3014
- return /* @__PURE__ */ jsx16(
3088
+ return /* @__PURE__ */ jsx17(
3015
3089
  "div",
3016
3090
  {
3017
3091
  className: "w-full h-[80px] md:h-[112px] bg-[#1A1A1A] relative overflow-hidden",
3018
3092
  role: "presentation",
3019
3093
  "aria-hidden": "true",
3020
- children: /* @__PURE__ */ jsx16("div", { className: "absolute inset-0 animate-pulse bg-[#2A2A2A]/60" })
3094
+ children: /* @__PURE__ */ jsx17("div", { className: "absolute inset-0 animate-pulse bg-[#2A2A2A]/60" })
3021
3095
  }
3022
3096
  );
3023
3097
  }
3024
- return /* @__PURE__ */ jsxs13(
3098
+ return /* @__PURE__ */ jsxs14(
3025
3099
  "div",
3026
3100
  {
3027
3101
  className: "w-full h-[80px] md:h-[112px] overflow-hidden bg-[#1A1A1A] relative z-10",
@@ -3029,14 +3103,14 @@ function ResponsiveIconsBlock({ loading = false }) {
3029
3103
  role: "presentation",
3030
3104
  "aria-hidden": "true",
3031
3105
  children: [
3032
- /* @__PURE__ */ jsx16("style", { children: `
3106
+ /* @__PURE__ */ jsx17("style", { children: `
3033
3107
  .icons-block svg,
3034
3108
  .icons-block svg * {
3035
3109
  filter: grayscale(100%) brightness(0) invert(1) brightness(0.4) !important;
3036
3110
  fill: currentColor !important;
3037
3111
  }
3038
3112
  ` }),
3039
- /* @__PURE__ */ jsx16(
3113
+ /* @__PURE__ */ jsx17(
3040
3114
  "div",
3041
3115
  {
3042
3116
  className: "grid h-full icons-block w-full",
@@ -3048,7 +3122,7 @@ function ResponsiveIconsBlock({ loading = false }) {
3048
3122
  const col = idx % displayColumns;
3049
3123
  const row = Math.floor(idx / displayColumns);
3050
3124
  const IconComponent = getIconForIndex(idx);
3051
- return /* @__PURE__ */ jsx16(
3125
+ return /* @__PURE__ */ jsx17(
3052
3126
  "div",
3053
3127
  {
3054
3128
  className: "flex items-center justify-center w-full h-full",
@@ -3061,7 +3135,7 @@ function ResponsiveIconsBlock({ loading = false }) {
3061
3135
  boxSizing: "border-box"
3062
3136
  },
3063
3137
  role: "presentation",
3064
- children: /* @__PURE__ */ jsx16(
3138
+ children: /* @__PURE__ */ jsx17(
3065
3139
  IconComponent,
3066
3140
  {
3067
3141
  width: 16,
@@ -3083,11 +3157,11 @@ function ResponsiveIconsBlock({ loading = false }) {
3083
3157
 
3084
3158
  // src/components/image-cropper.tsx
3085
3159
  init_button();
3086
- import { useCallback as useCallback2, useState as useState4 } from "react";
3160
+ import { useCallback as useCallback2, useState as useState5 } from "react";
3087
3161
  import Cropper from "react-easy-crop";
3088
3162
  init_cn();
3089
3163
  import { Check, RotateCcw } from "lucide-react";
3090
- import { jsx as jsx17, jsxs as jsxs14 } from "react/jsx-runtime";
3164
+ import { jsx as jsx18, jsxs as jsxs15 } from "react/jsx-runtime";
3091
3165
  function loadImage(src) {
3092
3166
  return new Promise((resolve, reject) => {
3093
3167
  const img = new Image();
@@ -3106,10 +3180,10 @@ var ImageCropper = ({
3106
3180
  maxSizePx = 512,
3107
3181
  className
3108
3182
  }) => {
3109
- const [crop, setCrop] = useState4({ x: 0, y: 0 });
3110
- const [zoom, setZoom] = useState4(1);
3111
- const [rotation, setRotation] = useState4(0);
3112
- const [croppedAreaPixels, setCroppedAreaPixels] = useState4(null);
3183
+ const [crop, setCrop] = useState5({ x: 0, y: 0 });
3184
+ const [zoom, setZoom] = useState5(1);
3185
+ const [rotation, setRotation] = useState5(0);
3186
+ const [croppedAreaPixels, setCroppedAreaPixels] = useState5(null);
3113
3187
  const onCropComplete = useCallback2((_, area) => {
3114
3188
  setCroppedAreaPixels(area);
3115
3189
  }, []);
@@ -3175,7 +3249,7 @@ var ImageCropper = ({
3175
3249
  onCancel?.();
3176
3250
  }
3177
3251
  };
3178
- return /* @__PURE__ */ jsxs14(
3252
+ return /* @__PURE__ */ jsxs15(
3179
3253
  "div",
3180
3254
  {
3181
3255
  className: cn(
@@ -3186,14 +3260,14 @@ var ImageCropper = ({
3186
3260
  tabIndex: 0,
3187
3261
  "aria-label": "Image cropper",
3188
3262
  children: [
3189
- /* @__PURE__ */ jsx17(
3263
+ /* @__PURE__ */ jsx18(
3190
3264
  "div",
3191
3265
  {
3192
3266
  className: cn(
3193
3267
  "relative w-full aspect-square md:aspect-video rounded-md overflow-hidden",
3194
3268
  checkerBg
3195
3269
  ),
3196
- children: /* @__PURE__ */ jsx17(
3270
+ children: /* @__PURE__ */ jsx18(
3197
3271
  Cropper,
3198
3272
  {
3199
3273
  image: src,
@@ -3212,10 +3286,10 @@ var ImageCropper = ({
3212
3286
  )
3213
3287
  }
3214
3288
  ),
3215
- /* @__PURE__ */ jsxs14("div", { className: "flex flex-col gap-4", children: [
3216
- /* @__PURE__ */ jsxs14("div", { className: "flex items-center gap-3", children: [
3217
- /* @__PURE__ */ jsx17("span", { className: "min-w-[60px] text-h6", children: "Zoom" }),
3218
- /* @__PURE__ */ jsx17(
3289
+ /* @__PURE__ */ jsxs15("div", { className: "flex flex-col gap-4", children: [
3290
+ /* @__PURE__ */ jsxs15("div", { className: "flex items-center gap-3", children: [
3291
+ /* @__PURE__ */ jsx18("span", { className: "min-w-[60px] text-h6", children: "Zoom" }),
3292
+ /* @__PURE__ */ jsx18(
3219
3293
  Slider,
3220
3294
  {
3221
3295
  min: 1,
@@ -3228,9 +3302,9 @@ var ImageCropper = ({
3228
3302
  }
3229
3303
  )
3230
3304
  ] }),
3231
- /* @__PURE__ */ jsxs14("div", { className: "flex items-center gap-3", children: [
3232
- /* @__PURE__ */ jsx17("span", { className: "min-w-[60px] text-h6", children: "Rotate" }),
3233
- /* @__PURE__ */ jsx17(
3305
+ /* @__PURE__ */ jsxs15("div", { className: "flex items-center gap-3", children: [
3306
+ /* @__PURE__ */ jsx18("span", { className: "min-w-[60px] text-h6", children: "Rotate" }),
3307
+ /* @__PURE__ */ jsx18(
3234
3308
  Slider,
3235
3309
  {
3236
3310
  min: 0,
@@ -3242,21 +3316,21 @@ var ImageCropper = ({
3242
3316
  className: "flex-1"
3243
3317
  }
3244
3318
  ),
3245
- /* @__PURE__ */ jsx17(
3319
+ /* @__PURE__ */ jsx18(
3246
3320
  Button,
3247
3321
  {
3248
3322
  variant: "outline",
3249
3323
  size: "icon",
3250
3324
  onClick: () => setRotation(0),
3251
3325
  "aria-label": "Reset rotation",
3252
- children: /* @__PURE__ */ jsx17(RotateCcw, { className: "h-4 w-4" })
3326
+ children: /* @__PURE__ */ jsx18(RotateCcw, { className: "h-4 w-4" })
3253
3327
  }
3254
3328
  )
3255
3329
  ] })
3256
3330
  ] }),
3257
- /* @__PURE__ */ jsxs14("div", { className: "flex justify-end gap-2 mt-2", children: [
3258
- onCancel && /* @__PURE__ */ jsx17(Button, { variant: "outline", onClick: onCancel, "aria-label": "Cancel crop", children: "Cancel" }),
3259
- /* @__PURE__ */ jsx17(
3331
+ /* @__PURE__ */ jsxs15("div", { className: "flex justify-end gap-2 mt-2", children: [
3332
+ onCancel && /* @__PURE__ */ jsx18(Button, { variant: "outline", onClick: onCancel, "aria-label": "Cancel crop", children: "Cancel" }),
3333
+ /* @__PURE__ */ jsx18(
3260
3334
  Button,
3261
3335
  {
3262
3336
  variant: "accent",
@@ -3264,7 +3338,7 @@ var ImageCropper = ({
3264
3338
  const result = await exportCrop();
3265
3339
  if (result) onComplete(result);
3266
3340
  },
3267
- leftIcon: /* @__PURE__ */ jsx17(Check, { className: "h-4 w-4" }),
3341
+ leftIcon: /* @__PURE__ */ jsx18(Check, { className: "h-4 w-4" }),
3268
3342
  "aria-label": "Apply crop",
3269
3343
  children: "Apply"
3270
3344
  }
@@ -3277,20 +3351,20 @@ var ImageCropper = ({
3277
3351
 
3278
3352
  // src/components/metric-value.tsx
3279
3353
  init_cn();
3280
- import { jsx as jsx18, jsxs as jsxs15 } from "react/jsx-runtime";
3354
+ import { jsx as jsx19, jsxs as jsxs16 } from "react/jsx-runtime";
3281
3355
  function MetricValue({ value, label, className }) {
3282
- return /* @__PURE__ */ jsxs15("div", { className: cn("flex items-end gap-2 whitespace-nowrap text-h4 text-ods-text-primary", className), children: [
3356
+ return /* @__PURE__ */ jsxs16("div", { className: cn("flex items-end gap-2 whitespace-nowrap text-h4 text-ods-text-primary", className), children: [
3283
3357
  value,
3284
- /* @__PURE__ */ jsx18("span", { className: "text-h6 text-ods-text-secondary", children: label })
3358
+ /* @__PURE__ */ jsx19("span", { className: "text-h6 text-ods-text-secondary", children: label })
3285
3359
  ] });
3286
3360
  }
3287
3361
 
3288
3362
  // src/components/msp-display.tsx
3289
3363
  init_cn();
3290
- import { jsx as jsx19, jsxs as jsxs16 } from "react/jsx-runtime";
3364
+ import { jsx as jsx20, jsxs as jsxs17 } from "react/jsx-runtime";
3291
3365
  function MSPDisplay({ name, logoUrl, size = 40, className }) {
3292
- return /* @__PURE__ */ jsxs16("div", { className: cn("flex items-center gap-2 min-w-0", className), children: [
3293
- /* @__PURE__ */ jsx19(
3366
+ return /* @__PURE__ */ jsxs17("div", { className: cn("flex items-center gap-2 min-w-0", className), children: [
3367
+ /* @__PURE__ */ jsx20(
3294
3368
  SquareAvatar,
3295
3369
  {
3296
3370
  src: logoUrl ? getProxiedImageUrl(logoUrl) || logoUrl : void 0,
@@ -3299,19 +3373,19 @@ function MSPDisplay({ name, logoUrl, size = 40, className }) {
3299
3373
  sizePx: size
3300
3374
  }
3301
3375
  ),
3302
- /* @__PURE__ */ jsx19("h2", { className: "truncate pl-2", children: name })
3376
+ /* @__PURE__ */ jsx20("h2", { className: "truncate pl-2", children: name })
3303
3377
  ] });
3304
3378
  }
3305
3379
 
3306
3380
  // src/components/open-source-features.tsx
3307
3381
  import { Terminal, DollarSign as DollarSign2, Network, Users as Users2 } from "lucide-react";
3308
- import { jsx as jsx20, jsxs as jsxs17 } from "react/jsx-runtime";
3382
+ import { jsx as jsx21, jsxs as jsxs18 } from "react/jsx-runtime";
3309
3383
 
3310
3384
  // src/components/index.ts
3311
3385
  init_pagination();
3312
3386
 
3313
3387
  // src/components/pricing-display.tsx
3314
- import { jsx as jsx21, jsxs as jsxs18 } from "react/jsx-runtime";
3388
+ import { jsx as jsx22, jsxs as jsxs19 } from "react/jsx-runtime";
3315
3389
  var PRICING_STYLES = {
3316
3390
  // Comparison table style (current default)
3317
3391
  comparison: {
@@ -3347,19 +3421,19 @@ function PricingDisplay({
3347
3421
  styleConfig = PRICING_STYLES.comparison
3348
3422
  }) {
3349
3423
  if (typeof pricing === "string") {
3350
- return /* @__PURE__ */ jsx21(LegacyPricingDisplay, { pricing, className, styleConfig });
3424
+ return /* @__PURE__ */ jsx22(LegacyPricingDisplay, { pricing, className, styleConfig });
3351
3425
  }
3352
3426
  const pricingArray = Array.isArray(pricing) ? pricing : [pricing];
3353
3427
  if (!pricingArray || pricingArray.length === 0) {
3354
- return /* @__PURE__ */ jsx21("span", { className: `${styleConfig.priceTextColor} ${styleConfig.priceTextSize} ${styleConfig.fontFamily} ${className}`, children: "No pricing data" });
3428
+ return /* @__PURE__ */ jsx22("span", { className: `${styleConfig.priceTextColor} ${styleConfig.priceTextSize} ${styleConfig.fontFamily} ${className}`, children: "No pricing data" });
3355
3429
  }
3356
3430
  if (pricingArray.length === 1) {
3357
3431
  const item = pricingArray[0];
3358
3432
  const price = item.ranges?.[0]?.min || 0;
3359
3433
  const unit = item.ranges?.[0]?.unit;
3360
- return /* @__PURE__ */ jsxs18("span", { className: `${styleConfig.fontFamily} ${className}`, children: [
3361
- /* @__PURE__ */ jsx21("span", { className: `${styleConfig.priceTextColor} ${styleConfig.priceTextSize}`, children: formatPriceValue(price, styleConfig.showTildePrefix) }),
3362
- unit && /* @__PURE__ */ jsxs18("span", { className: `${styleConfig.secondaryTextColor} ${styleConfig.secondaryTextSize}`, children: [
3434
+ return /* @__PURE__ */ jsxs19("span", { className: `${styleConfig.fontFamily} ${className}`, children: [
3435
+ /* @__PURE__ */ jsx22("span", { className: `${styleConfig.priceTextColor} ${styleConfig.priceTextSize}`, children: formatPriceValue(price, styleConfig.showTildePrefix) }),
3436
+ unit && /* @__PURE__ */ jsxs19("span", { className: `${styleConfig.secondaryTextColor} ${styleConfig.secondaryTextSize}`, children: [
3363
3437
  "/",
3364
3438
  unit
3365
3439
  ] })
@@ -3367,9 +3441,9 @@ function PricingDisplay({
3367
3441
  }
3368
3442
  const priceValues = pricingArray.map((item) => formatPriceValue(item.ranges?.[0]?.min || 0, styleConfig.showTildePrefix));
3369
3443
  const itemWithUnit = pricingArray.find((item) => item.ranges?.[0]?.unit);
3370
- return /* @__PURE__ */ jsxs18("span", { className: `${styleConfig.fontFamily} ${className}`, children: [
3371
- /* @__PURE__ */ jsx21("span", { className: `${styleConfig.priceTextColor} ${styleConfig.priceTextSize}`, children: priceValues.join(" | ") }),
3372
- itemWithUnit && itemWithUnit.ranges?.[0]?.unit && /* @__PURE__ */ jsxs18("span", { className: `${styleConfig.secondaryTextColor} ${styleConfig.secondaryTextSize}`, children: [
3444
+ return /* @__PURE__ */ jsxs19("span", { className: `${styleConfig.fontFamily} ${className}`, children: [
3445
+ /* @__PURE__ */ jsx22("span", { className: `${styleConfig.priceTextColor} ${styleConfig.priceTextSize}`, children: priceValues.join(" | ") }),
3446
+ itemWithUnit && itemWithUnit.ranges?.[0]?.unit && /* @__PURE__ */ jsxs19("span", { className: `${styleConfig.secondaryTextColor} ${styleConfig.secondaryTextSize}`, children: [
3373
3447
  "/",
3374
3448
  itemWithUnit.ranges[0].unit
3375
3449
  ] })
@@ -3390,7 +3464,7 @@ function LegacyPricingDisplay({
3390
3464
  styleConfig = PRICING_STYLES.comparison
3391
3465
  }) {
3392
3466
  if (pricing === "Free" || pricing === "No pricing data") {
3393
- return /* @__PURE__ */ jsx21("span", { className: `${styleConfig.priceTextColor} ${styleConfig.priceTextSize} ${styleConfig.fontFamily} ${className}`, children: pricing });
3467
+ return /* @__PURE__ */ jsx22("span", { className: `${styleConfig.priceTextColor} ${styleConfig.priceTextSize} ${styleConfig.fontFamily} ${className}`, children: pricing });
3394
3468
  }
3395
3469
  const parsePricing = (pricingStr) => {
3396
3470
  if (pricingStr.includes(", ")) {
@@ -3446,9 +3520,9 @@ function LegacyPricingDisplay({
3446
3520
  };
3447
3521
  };
3448
3522
  const { mainValue, secondaryInfo } = parsePricing(pricing);
3449
- return /* @__PURE__ */ jsxs18("span", { className: `${styleConfig.fontFamily} ${className}`, children: [
3450
- /* @__PURE__ */ jsx21("span", { className: `${styleConfig.priceTextColor} ${styleConfig.priceTextSize}`, children: mainValue }),
3451
- secondaryInfo && /* @__PURE__ */ jsx21("span", { className: `${styleConfig.secondaryTextColor} ${styleConfig.secondaryTextSize}`, children: secondaryInfo })
3523
+ return /* @__PURE__ */ jsxs19("span", { className: `${styleConfig.fontFamily} ${className}`, children: [
3524
+ /* @__PURE__ */ jsx22("span", { className: `${styleConfig.priceTextColor} ${styleConfig.priceTextSize}`, children: mainValue }),
3525
+ secondaryInfo && /* @__PURE__ */ jsx22("span", { className: `${styleConfig.secondaryTextColor} ${styleConfig.secondaryTextSize}`, children: secondaryInfo })
3452
3526
  ] });
3453
3527
  }
3454
3528
  function formatPricingForDisplay(pricing) {
@@ -3456,7 +3530,7 @@ function formatPricingForDisplay(pricing) {
3456
3530
  }
3457
3531
 
3458
3532
  // src/components/results-count.tsx
3459
- import { Fragment as Fragment5, jsx as jsx22, jsxs as jsxs19 } from "react/jsx-runtime";
3533
+ import { Fragment as Fragment5, jsx as jsx23, jsxs as jsxs20 } from "react/jsx-runtime";
3460
3534
  function ResultsCount({
3461
3535
  currentPage,
3462
3536
  pageSize,
@@ -3472,7 +3546,7 @@ function ResultsCount({
3472
3546
  const plural = resultType === "vendors" ? "vendors" : "posts";
3473
3547
  const singular = resultType === "vendors" ? "vendor" : "post";
3474
3548
  const displayType = totalResults === 1 ? singular : plural;
3475
- return /* @__PURE__ */ jsx22("div", { className: "mb-6", children: /* @__PURE__ */ jsx22("p", { className: "text-ods-text-secondary text-h6", children: totalResults > 0 && /* @__PURE__ */ jsxs19(Fragment5, { children: [
3549
+ return /* @__PURE__ */ jsx23("div", { className: "mb-6", children: /* @__PURE__ */ jsx23("p", { className: "text-ods-text-secondary text-h6", children: totalResults > 0 && /* @__PURE__ */ jsxs20(Fragment5, { children: [
3476
3550
  "Showing ",
3477
3551
  startIndex,
3478
3552
  "-",
@@ -3481,7 +3555,7 @@ function ResultsCount({
3481
3555
  totalResults,
3482
3556
  " ",
3483
3557
  displayType,
3484
- sortingMessage && /* @__PURE__ */ jsxs19("span", { className: "ml-2 text-ods-accent", children: [
3558
+ sortingMessage && /* @__PURE__ */ jsxs20("span", { className: "ml-2 text-ods-accent", children: [
3485
3559
  "\u2022 ",
3486
3560
  sortingMessage
3487
3561
  ] })
@@ -3489,9 +3563,9 @@ function ResultsCount({
3489
3563
  }
3490
3564
 
3491
3565
  // src/components/openframe-logo.tsx
3492
- import { jsx as jsx23, jsxs as jsxs20 } from "react/jsx-runtime";
3566
+ import { jsx as jsx24, jsxs as jsxs21 } from "react/jsx-runtime";
3493
3567
  var OpenFrameLogo2 = ({ className, lowerPathColor, upperPathColor, ...props }) => {
3494
- return /* @__PURE__ */ jsx23(
3568
+ return /* @__PURE__ */ jsx24(
3495
3569
  "svg",
3496
3570
  {
3497
3571
  ...props,
@@ -3505,30 +3579,30 @@ var OpenFrameLogo2 = ({ className, lowerPathColor, upperPathColor, ...props }) =
3505
3579
  "--fill-0": "currentColor",
3506
3580
  ...props.style
3507
3581
  },
3508
- children: /* @__PURE__ */ jsxs20("g", { children: [
3509
- /* @__PURE__ */ jsxs20("g", { children: [
3510
- /* @__PURE__ */ jsx23(
3582
+ children: /* @__PURE__ */ jsxs21("g", { children: [
3583
+ /* @__PURE__ */ jsxs21("g", { children: [
3584
+ /* @__PURE__ */ jsx24(
3511
3585
  "path",
3512
3586
  {
3513
3587
  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",
3514
3588
  fill: lowerPathColor ?? "#ffffff"
3515
3589
  }
3516
3590
  ),
3517
- /* @__PURE__ */ jsx23(
3591
+ /* @__PURE__ */ jsx24(
3518
3592
  "path",
3519
3593
  {
3520
3594
  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",
3521
3595
  fill: lowerPathColor ?? "#ffffff"
3522
3596
  }
3523
3597
  ),
3524
- /* @__PURE__ */ jsx23(
3598
+ /* @__PURE__ */ jsx24(
3525
3599
  "path",
3526
3600
  {
3527
3601
  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",
3528
3602
  fill: lowerPathColor ?? "#ffffff"
3529
3603
  }
3530
3604
  ),
3531
- /* @__PURE__ */ jsx23(
3605
+ /* @__PURE__ */ jsx24(
3532
3606
  "path",
3533
3607
  {
3534
3608
  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",
@@ -3536,7 +3610,7 @@ var OpenFrameLogo2 = ({ className, lowerPathColor, upperPathColor, ...props }) =
3536
3610
  }
3537
3611
  )
3538
3612
  ] }),
3539
- /* @__PURE__ */ jsx23(
3613
+ /* @__PURE__ */ jsx24(
3540
3614
  "path",
3541
3615
  {
3542
3616
  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",
@@ -3551,7 +3625,7 @@ var OpenFrameLogo2 = ({ className, lowerPathColor, upperPathColor, ...props }) =
3551
3625
  // src/components/vendor-tag.tsx
3552
3626
  init_cn();
3553
3627
  import { Boxes, Database, Hand, Plug, ShieldCheck, Sparkles } from "lucide-react";
3554
- import { jsx as jsx24, jsxs as jsxs21 } from "react/jsx-runtime";
3628
+ import { jsx as jsx25, jsxs as jsxs22 } from "react/jsx-runtime";
3555
3629
  function VendorTag({
3556
3630
  type,
3557
3631
  text,
@@ -3570,110 +3644,110 @@ function VendorTag({
3570
3644
  return {
3571
3645
  text: "Placeholder",
3572
3646
  textColor: "text-ods-text-primary",
3573
- icon: /* @__PURE__ */ jsx24("div", { className: "w-4 h-4 rounded-sm flex items-center justify-center flex-shrink-0", children: /* @__PURE__ */ jsx24(Sparkles, { width: 10, height: 10, className: "text-ods-text-primary" }) })
3647
+ icon: /* @__PURE__ */ jsx25("div", { className: "w-4 h-4 rounded-sm flex items-center justify-center flex-shrink-0", children: /* @__PURE__ */ jsx25(Sparkles, { width: 10, height: 10, className: "text-ods-text-primary" }) })
3574
3648
  };
3575
3649
  case "ai":
3576
3650
  return {
3577
3651
  text: "AI Selected",
3578
3652
  textColor: "text-ods-text-primary",
3579
- icon: /* @__PURE__ */ jsx24("div", { className: "w-4 h-4 rounded-sm flex items-center justify-center flex-shrink-0", children: /* @__PURE__ */ jsx24(Sparkles, { width: 10, height: 10, className: "text-ods-text-primary" }) })
3653
+ icon: /* @__PURE__ */ jsx25("div", { className: "w-4 h-4 rounded-sm flex items-center justify-center flex-shrink-0", children: /* @__PURE__ */ jsx25(Sparkles, { width: 10, height: 10, className: "text-ods-text-primary" }) })
3580
3654
  };
3581
3655
  case "manual":
3582
3656
  return {
3583
3657
  text: "Manually Selected",
3584
3658
  textColor: "text-ods-text-secondary",
3585
- icon: /* @__PURE__ */ jsx24("div", { className: "w-4 h-4 rounded-sm flex items-center justify-center flex-shrink-0", children: /* @__PURE__ */ jsx24(Hand, { width: 10, height: 10, className: "text-ods-text-secondary" }) })
3659
+ icon: /* @__PURE__ */ jsx25("div", { className: "w-4 h-4 rounded-sm flex items-center justify-center flex-shrink-0", children: /* @__PURE__ */ jsx25(Hand, { width: 10, height: 10, className: "text-ods-text-secondary" }) })
3586
3660
  };
3587
3661
  case "open-source":
3588
3662
  return {
3589
3663
  text: text || "Open Source",
3590
- icon: /* @__PURE__ */ jsx24(
3664
+ icon: /* @__PURE__ */ jsx25(
3591
3665
  "div",
3592
3666
  {
3593
3667
  className: "w-4 h-4 bg-ods-accent rounded-sm flex items-center justify-center flex-shrink-0",
3594
3668
  style: accentColor ? { backgroundColor: accentColor } : void 0,
3595
- children: /* @__PURE__ */ jsx24(OpenSourceIcon2, { width: 10, height: 10, className: "text-ods-text-on-accent" })
3669
+ children: /* @__PURE__ */ jsx25(OpenSourceIcon2, { width: 10, height: 10, className: "text-ods-text-on-accent" })
3596
3670
  }
3597
3671
  )
3598
3672
  };
3599
3673
  case "commercial":
3600
3674
  return {
3601
3675
  text: text || "Commercial Vendor",
3602
- icon: /* @__PURE__ */ jsx24("div", { className: "w-4 h-4 bg-ods-border rounded-sm flex items-center justify-center flex-shrink-0", children: /* @__PURE__ */ jsx24(CoinsIcon2, { width: 10, height: 10, className: "text-ods-text-secondary" }) })
3676
+ icon: /* @__PURE__ */ jsx25("div", { className: "w-4 h-4 bg-ods-border rounded-sm flex items-center justify-center flex-shrink-0", children: /* @__PURE__ */ jsx25(CoinsIcon2, { width: 10, height: 10, className: "text-ods-text-secondary" }) })
3603
3677
  };
3604
3678
  // platform-capability tags — same neutral icon-box chrome as 'commercial'
3605
3679
  case "api":
3606
3680
  return {
3607
3681
  text: text || "API",
3608
- icon: /* @__PURE__ */ jsx24("div", { className: "w-4 h-4 bg-ods-border rounded-sm flex items-center justify-center flex-shrink-0", children: /* @__PURE__ */ jsx24(Plug, { width: 10, height: 10, className: "text-ods-text-secondary" }) })
3682
+ icon: /* @__PURE__ */ jsx25("div", { className: "w-4 h-4 bg-ods-border rounded-sm flex items-center justify-center flex-shrink-0", children: /* @__PURE__ */ jsx25(Plug, { width: 10, height: 10, className: "text-ods-text-secondary" }) })
3609
3683
  };
3610
3684
  case "data":
3611
3685
  return {
3612
3686
  text: text || "Data",
3613
- icon: /* @__PURE__ */ jsx24("div", { className: "w-4 h-4 bg-ods-border rounded-sm flex items-center justify-center flex-shrink-0", children: /* @__PURE__ */ jsx24(Database, { width: 10, height: 10, className: "text-ods-text-secondary" }) })
3687
+ icon: /* @__PURE__ */ jsx25("div", { className: "w-4 h-4 bg-ods-border rounded-sm flex items-center justify-center flex-shrink-0", children: /* @__PURE__ */ jsx25(Database, { width: 10, height: 10, className: "text-ods-text-secondary" }) })
3614
3688
  };
3615
3689
  case "k8s":
3616
3690
  return {
3617
3691
  text: text || "K8s",
3618
- icon: /* @__PURE__ */ jsx24("div", { className: "w-4 h-4 bg-ods-border rounded-sm flex items-center justify-center flex-shrink-0", children: /* @__PURE__ */ jsx24(Boxes, { width: 10, height: 10, className: "text-ods-text-secondary" }) })
3692
+ icon: /* @__PURE__ */ jsx25("div", { className: "w-4 h-4 bg-ods-border rounded-sm flex items-center justify-center flex-shrink-0", children: /* @__PURE__ */ jsx25(Boxes, { width: 10, height: 10, className: "text-ods-text-secondary" }) })
3619
3693
  };
3620
3694
  case "secured":
3621
3695
  return {
3622
3696
  text: text || "Secured",
3623
- icon: /* @__PURE__ */ jsx24("div", { className: "w-4 h-4 bg-ods-border rounded-sm flex items-center justify-center flex-shrink-0", children: /* @__PURE__ */ jsx24(ShieldCheck, { width: 10, height: 10, className: "text-ods-text-secondary" }) })
3697
+ icon: /* @__PURE__ */ jsx25("div", { className: "w-4 h-4 bg-ods-border rounded-sm flex items-center justify-center flex-shrink-0", children: /* @__PURE__ */ jsx25(ShieldCheck, { width: 10, height: 10, className: "text-ods-text-secondary" }) })
3624
3698
  };
3625
3699
  case "free":
3626
3700
  return {
3627
3701
  text: text || "Free",
3628
- icon: /* @__PURE__ */ jsx24("div", { className: "w-4 h-4 bg-ods-accent rounded-sm flex items-center justify-center flex-shrink-0", children: /* @__PURE__ */ jsx24("span", { className: "text-ods-text-on-accent text-[8px] font-bold", children: "$" }) })
3702
+ icon: /* @__PURE__ */ jsx25("div", { className: "w-4 h-4 bg-ods-accent rounded-sm flex items-center justify-center flex-shrink-0", children: /* @__PURE__ */ jsx25("span", { className: "text-ods-text-on-accent text-[8px] font-bold", children: "$" }) })
3629
3703
  };
3630
3704
  case "freemium":
3631
3705
  return {
3632
3706
  text: text || "Freemium",
3633
- icon: /* @__PURE__ */ jsx24("div", { className: "w-4 h-4 bg-ods-accent rounded-sm flex items-center justify-center flex-shrink-0", children: /* @__PURE__ */ jsx24("span", { className: "text-ods-text-on-accent text-[8px] font-bold", children: "$" }) })
3707
+ icon: /* @__PURE__ */ jsx25("div", { className: "w-4 h-4 bg-ods-accent rounded-sm flex items-center justify-center flex-shrink-0", children: /* @__PURE__ */ jsx25("span", { className: "text-ods-text-on-accent text-[8px] font-bold", children: "$" }) })
3634
3708
  };
3635
3709
  case "paid":
3636
3710
  return {
3637
3711
  text: text || "Paid",
3638
- icon: /* @__PURE__ */ jsx24("div", { className: "w-4 h-4 bg-ods-border rounded-sm flex items-center justify-center flex-shrink-0", children: /* @__PURE__ */ jsx24(CoinsIcon2, { width: 10, height: 10, className: "text-ods-text-secondary" }) })
3712
+ icon: /* @__PURE__ */ jsx25("div", { className: "w-4 h-4 bg-ods-border rounded-sm flex items-center justify-center flex-shrink-0", children: /* @__PURE__ */ jsx25(CoinsIcon2, { width: 10, height: 10, className: "text-ods-text-secondary" }) })
3639
3713
  };
3640
3714
  case "enterprise":
3641
3715
  return {
3642
3716
  text: text || "Enterprise",
3643
- icon: /* @__PURE__ */ jsx24("div", { className: "w-4 h-4 bg-ods-accent rounded-sm flex items-center justify-center flex-shrink-0", children: /* @__PURE__ */ jsx24("span", { className: "text-ods-text-on-accent text-[8px] font-bold", children: "E" }) })
3717
+ icon: /* @__PURE__ */ jsx25("div", { className: "w-4 h-4 bg-ods-accent rounded-sm flex items-center justify-center flex-shrink-0", children: /* @__PURE__ */ jsx25("span", { className: "text-ods-text-on-accent text-[8px] font-bold", children: "E" }) })
3644
3718
  };
3645
3719
  case "recommended":
3646
3720
  return {
3647
3721
  text: text || "Recommended",
3648
- icon: /* @__PURE__ */ jsx24("div", { className: "w-4 h-4 bg-ods-accent rounded-sm flex items-center justify-center flex-shrink-0", children: /* @__PURE__ */ jsx24("span", { className: "text-ods-text-on-accent text-[8px] font-bold", children: "\u2605" }) })
3722
+ icon: /* @__PURE__ */ jsx25("div", { className: "w-4 h-4 bg-ods-accent rounded-sm flex items-center justify-center flex-shrink-0", children: /* @__PURE__ */ jsx25("span", { className: "text-ods-text-on-accent text-[8px] font-bold", children: "\u2605" }) })
3649
3723
  };
3650
3724
  case "classification":
3651
3725
  const classificationType = text?.toLowerCase();
3652
3726
  if (classificationType === "open_source") {
3653
3727
  return {
3654
3728
  text: "Open Source",
3655
- icon: /* @__PURE__ */ jsx24("div", { className: "w-4 h-4 bg-ods-accent rounded-sm flex items-center justify-center flex-shrink-0", children: /* @__PURE__ */ jsx24(OpenSourceIcon2, { width: 10, height: 10, className: "text-ods-text-on-accent" }) })
3729
+ icon: /* @__PURE__ */ jsx25("div", { className: "w-4 h-4 bg-ods-accent rounded-sm flex items-center justify-center flex-shrink-0", children: /* @__PURE__ */ jsx25(OpenSourceIcon2, { width: 10, height: 10, className: "text-ods-text-on-accent" }) })
3656
3730
  };
3657
3731
  } else if (classificationType === "commercial") {
3658
3732
  return {
3659
3733
  text: "Commercial Vendor",
3660
- icon: /* @__PURE__ */ jsx24("div", { className: "w-4 h-4 bg-ods-border rounded-sm flex items-center justify-center flex-shrink-0", children: /* @__PURE__ */ jsx24(CoinsIcon2, { width: 10, height: 10, className: "text-ods-text-secondary" }) })
3734
+ icon: /* @__PURE__ */ jsx25("div", { className: "w-4 h-4 bg-ods-border rounded-sm flex items-center justify-center flex-shrink-0", children: /* @__PURE__ */ jsx25(CoinsIcon2, { width: 10, height: 10, className: "text-ods-text-secondary" }) })
3661
3735
  };
3662
3736
  } else if (classificationType === "openframe_selected") {
3663
3737
  return {
3664
3738
  text: "OpenFrame Selected",
3665
- icon: /* @__PURE__ */ jsx24(OpenFrameLogo2, { lowerPathColor: "currentColor", upperPathColor: "currentColor", className: "h-4 w-4 text-ods-accent" })
3739
+ icon: /* @__PURE__ */ jsx25(OpenFrameLogo2, { lowerPathColor: "currentColor", upperPathColor: "currentColor", className: "h-4 w-4 text-ods-accent" })
3666
3740
  };
3667
3741
  } else {
3668
3742
  return {
3669
3743
  text: text || "Classification",
3670
- icon: /* @__PURE__ */ jsx24("div", { className: "w-4 h-4 bg-ods-accent rounded-sm flex items-center justify-center flex-shrink-0", children: /* @__PURE__ */ jsx24("span", { className: "text-ods-text-on-accent text-[8px] font-bold", children: "C" }) })
3744
+ icon: /* @__PURE__ */ jsx25("div", { className: "w-4 h-4 bg-ods-accent rounded-sm flex items-center justify-center flex-shrink-0", children: /* @__PURE__ */ jsx25("span", { className: "text-ods-text-on-accent text-[8px] font-bold", children: "C" }) })
3671
3745
  };
3672
3746
  }
3673
3747
  case "openframe_selected":
3674
3748
  return {
3675
3749
  text: text || "OpenFrame Selected",
3676
- icon: /* @__PURE__ */ jsx24(OpenFrameLogo2, { lowerPathColor: "currentColor", upperPathColor: "currentColor", className: "h-4 w-4 text-ods-accent" })
3750
+ icon: /* @__PURE__ */ jsx25(OpenFrameLogo2, { lowerPathColor: "currentColor", upperPathColor: "currentColor", className: "h-4 w-4 text-ods-accent" })
3677
3751
  };
3678
3752
  default:
3679
3753
  return {
@@ -3683,9 +3757,9 @@ function VendorTag({
3683
3757
  }
3684
3758
  };
3685
3759
  const { text: displayText, icon, textColor } = getTagContent();
3686
- return /* @__PURE__ */ jsxs21("div", { className: cn(baseClasses, className, hidden && "invisible"), children: [
3760
+ return /* @__PURE__ */ jsxs22("div", { className: cn(baseClasses, className, hidden && "invisible"), children: [
3687
3761
  icon,
3688
- /* @__PURE__ */ jsx24("span", { className: cn(
3762
+ /* @__PURE__ */ jsx25("span", { className: cn(
3689
3763
  "text-h5 font-semibold",
3690
3764
  textColor ? textColor : "text-ods-text-primary"
3691
3765
  ), children: displayText })
@@ -3693,12 +3767,12 @@ function VendorTag({
3693
3767
  }
3694
3768
 
3695
3769
  // src/components/selection-source-badge.tsx
3696
- import { jsx as jsx25 } from "react/jsx-runtime";
3770
+ import { jsx as jsx26 } from "react/jsx-runtime";
3697
3771
  function SelectionSourceBadge({ source, hidden = false }) {
3698
3772
  if (!source) {
3699
3773
  return null;
3700
3774
  }
3701
- return /* @__PURE__ */ jsx25(
3775
+ return /* @__PURE__ */ jsx26(
3702
3776
  VendorTag,
3703
3777
  {
3704
3778
  type: source?.toLowerCase(),
@@ -3711,13 +3785,13 @@ function SelectionSourceBadge({ source, hidden = false }) {
3711
3785
 
3712
3786
  // src/components/loading/content-skeleton.tsx
3713
3787
  init_cn();
3714
- import { jsx as jsx26, jsxs as jsxs22 } from "react/jsx-runtime";
3788
+ import { jsx as jsx27, jsxs as jsxs23 } from "react/jsx-runtime";
3715
3789
  function ParagraphSkeleton({
3716
3790
  className,
3717
3791
  lines = 4
3718
3792
  }) {
3719
3793
  const lineWidths = ["w-full", "w-full", "w-5/6", "w-3/4", "w-4/5", "w-2/3"];
3720
- return /* @__PURE__ */ jsx26("div", { className: cn("space-y-2", className), children: Array.from({ length: lines }).map((_, index) => /* @__PURE__ */ jsx26(
3794
+ return /* @__PURE__ */ jsx27("div", { className: cn("space-y-2", className), children: Array.from({ length: lines }).map((_, index) => /* @__PURE__ */ jsx27(
3721
3795
  TextSkeleton.Body,
3722
3796
  {
3723
3797
  className: lineWidths[index % lineWidths.length]
@@ -3731,14 +3805,14 @@ function ListSkeleton({
3731
3805
  showIcons = false,
3732
3806
  showActions = false
3733
3807
  }) {
3734
- return /* @__PURE__ */ jsx26("div", { className: cn("space-y-3", className), children: Array.from({ length: items }).map((_, index) => /* @__PURE__ */ jsxs22("div", { className: "flex items-center justify-between", children: [
3735
- /* @__PURE__ */ jsxs22("div", { className: "flex items-center gap-3", children: [
3736
- showIcons && /* @__PURE__ */ jsx26(MediaSkeleton.Icon, { size: "sm" }),
3737
- /* @__PURE__ */ jsx26(TextSkeleton.Body, { className: "w-32 md:w-48" })
3808
+ return /* @__PURE__ */ jsx27("div", { className: cn("space-y-3", className), children: Array.from({ length: items }).map((_, index) => /* @__PURE__ */ jsxs23("div", { className: "flex items-center justify-between", children: [
3809
+ /* @__PURE__ */ jsxs23("div", { className: "flex items-center gap-3", children: [
3810
+ showIcons && /* @__PURE__ */ jsx27(MediaSkeleton.Icon, { size: "sm" }),
3811
+ /* @__PURE__ */ jsx27(TextSkeleton.Body, { className: "w-32 md:w-48" })
3738
3812
  ] }),
3739
- showActions && /* @__PURE__ */ jsxs22("div", { className: "flex items-center gap-2", children: [
3740
- /* @__PURE__ */ jsx26(TextSkeleton.Caption, { className: "w-8" }),
3741
- /* @__PURE__ */ jsx26(UnifiedSkeleton, { variant: "default", className: "w-4 h-4" })
3813
+ showActions && /* @__PURE__ */ jsxs23("div", { className: "flex items-center gap-2", children: [
3814
+ /* @__PURE__ */ jsx27(TextSkeleton.Caption, { className: "w-8" }),
3815
+ /* @__PURE__ */ jsx27(UnifiedSkeleton, { variant: "default", className: "w-4 h-4" })
3742
3816
  ] })
3743
3817
  ] }, index)) });
3744
3818
  }
@@ -3747,14 +3821,14 @@ function TableSkeleton({
3747
3821
  rows = 5,
3748
3822
  columns = 4
3749
3823
  }) {
3750
- return /* @__PURE__ */ jsxs22("div", { className: cn("space-y-4", className), children: [
3751
- /* @__PURE__ */ jsx26("div", { className: "grid gap-4", style: { gridTemplateColumns: `repeat(${columns}, 1fr)` }, children: Array.from({ length: columns }).map((_, index) => /* @__PURE__ */ jsx26(TextSkeleton.Subheading, { className: "w-3/4" }, index)) }),
3752
- /* @__PURE__ */ jsx26("div", { className: "space-y-3", children: Array.from({ length: rows }).map((_, rowIndex) => /* @__PURE__ */ jsx26(
3824
+ return /* @__PURE__ */ jsxs23("div", { className: cn("space-y-4", className), children: [
3825
+ /* @__PURE__ */ jsx27("div", { className: "grid gap-4", style: { gridTemplateColumns: `repeat(${columns}, 1fr)` }, children: Array.from({ length: columns }).map((_, index) => /* @__PURE__ */ jsx27(TextSkeleton.Subheading, { className: "w-3/4" }, index)) }),
3826
+ /* @__PURE__ */ jsx27("div", { className: "space-y-3", children: Array.from({ length: rows }).map((_, rowIndex) => /* @__PURE__ */ jsx27(
3753
3827
  "div",
3754
3828
  {
3755
3829
  className: "grid gap-4 py-2 border-b border-ods-divider",
3756
3830
  style: { gridTemplateColumns: `repeat(${columns}, 1fr)` },
3757
- children: Array.from({ length: columns }).map((_2, colIndex) => /* @__PURE__ */ jsx26(TextSkeleton.Body, { className: "w-2/3" }, colIndex))
3831
+ children: Array.from({ length: columns }).map((_2, colIndex) => /* @__PURE__ */ jsx27(TextSkeleton.Body, { className: "w-2/3" }, colIndex))
3758
3832
  },
3759
3833
  rowIndex
3760
3834
  )) })
@@ -3764,15 +3838,15 @@ function FormSkeleton({
3764
3838
  className,
3765
3839
  fields = 4
3766
3840
  }) {
3767
- return /* @__PURE__ */ jsxs22("div", { className: cn("space-y-6", className), children: [
3768
- Array.from({ length: fields }).map((_, index) => /* @__PURE__ */ jsxs22("div", { className: "space-y-2", children: [
3769
- /* @__PURE__ */ jsx26(TextSkeleton.Body, { className: "w-24" }),
3770
- /* @__PURE__ */ jsx26(InteractiveSkeleton.Input, {}),
3771
- index % 3 === 0 && /* @__PURE__ */ jsx26(TextSkeleton.Caption, { className: "w-48" })
3841
+ return /* @__PURE__ */ jsxs23("div", { className: cn("space-y-6", className), children: [
3842
+ Array.from({ length: fields }).map((_, index) => /* @__PURE__ */ jsxs23("div", { className: "space-y-2", children: [
3843
+ /* @__PURE__ */ jsx27(TextSkeleton.Body, { className: "w-24" }),
3844
+ /* @__PURE__ */ jsx27(InteractiveSkeleton.Input, {}),
3845
+ index % 3 === 0 && /* @__PURE__ */ jsx27(TextSkeleton.Caption, { className: "w-48" })
3772
3846
  ] }, index)),
3773
- /* @__PURE__ */ jsxs22("div", { className: "flex gap-4 pt-4", children: [
3774
- /* @__PURE__ */ jsx26(InteractiveSkeleton.Button, {}),
3775
- /* @__PURE__ */ jsx26(InteractiveSkeleton.Button, { className: "bg-ods-border" })
3847
+ /* @__PURE__ */ jsxs23("div", { className: "flex gap-4 pt-4", children: [
3848
+ /* @__PURE__ */ jsx27(InteractiveSkeleton.Button, {}),
3849
+ /* @__PURE__ */ jsx27(InteractiveSkeleton.Button, { className: "bg-ods-border" })
3776
3850
  ] })
3777
3851
  ] });
3778
3852
  }
@@ -3781,7 +3855,7 @@ function NavigationSkeleton({
3781
3855
  items = 6,
3782
3856
  horizontal = true
3783
3857
  }) {
3784
- return /* @__PURE__ */ jsx26(
3858
+ return /* @__PURE__ */ jsx27(
3785
3859
  "nav",
3786
3860
  {
3787
3861
  className: cn(
@@ -3791,7 +3865,7 @@ function NavigationSkeleton({
3791
3865
  ),
3792
3866
  role: "status",
3793
3867
  "aria-label": "Loading navigation",
3794
- children: Array.from({ length: items }).map((_, index) => /* @__PURE__ */ jsx26(TextSkeleton.Body, { className: "w-16 md:w-20" }, index))
3868
+ children: Array.from({ length: items }).map((_, index) => /* @__PURE__ */ jsx27(TextSkeleton.Body, { className: "w-16 md:w-20" }, index))
3795
3869
  }
3796
3870
  );
3797
3871
  }
@@ -3800,32 +3874,32 @@ function ProfileSkeleton({
3800
3874
  showBio = true,
3801
3875
  showStats = true
3802
3876
  }) {
3803
- return /* @__PURE__ */ jsxs22("div", { className: cn("space-y-4", className), children: [
3804
- /* @__PURE__ */ jsxs22("div", { className: "flex items-start gap-4", children: [
3805
- /* @__PURE__ */ jsx26(MediaSkeleton.Avatar, { size: "lg" }),
3806
- /* @__PURE__ */ jsxs22("div", { className: "flex-1 space-y-2", children: [
3807
- /* @__PURE__ */ jsx26(TextSkeleton.Subheading, { className: "w-1/2" }),
3808
- /* @__PURE__ */ jsx26(TextSkeleton.Caption, { className: "w-1/3" }),
3809
- /* @__PURE__ */ jsx26(TextSkeleton.Body, { className: "w-2/3" })
3877
+ return /* @__PURE__ */ jsxs23("div", { className: cn("space-y-4", className), children: [
3878
+ /* @__PURE__ */ jsxs23("div", { className: "flex items-start gap-4", children: [
3879
+ /* @__PURE__ */ jsx27(MediaSkeleton.Avatar, { size: "lg" }),
3880
+ /* @__PURE__ */ jsxs23("div", { className: "flex-1 space-y-2", children: [
3881
+ /* @__PURE__ */ jsx27(TextSkeleton.Subheading, { className: "w-1/2" }),
3882
+ /* @__PURE__ */ jsx27(TextSkeleton.Caption, { className: "w-1/3" }),
3883
+ /* @__PURE__ */ jsx27(TextSkeleton.Body, { className: "w-2/3" })
3810
3884
  ] })
3811
3885
  ] }),
3812
- showBio && /* @__PURE__ */ jsxs22("div", { className: "space-y-2", children: [
3813
- /* @__PURE__ */ jsx26(TextSkeleton.Body, { className: "w-full" }),
3814
- /* @__PURE__ */ jsx26(TextSkeleton.Body, { className: "w-4/5" }),
3815
- /* @__PURE__ */ jsx26(TextSkeleton.Body, { className: "w-3/4" })
3886
+ showBio && /* @__PURE__ */ jsxs23("div", { className: "space-y-2", children: [
3887
+ /* @__PURE__ */ jsx27(TextSkeleton.Body, { className: "w-full" }),
3888
+ /* @__PURE__ */ jsx27(TextSkeleton.Body, { className: "w-4/5" }),
3889
+ /* @__PURE__ */ jsx27(TextSkeleton.Body, { className: "w-3/4" })
3816
3890
  ] }),
3817
- showStats && /* @__PURE__ */ jsxs22("div", { className: "flex gap-6", children: [
3818
- /* @__PURE__ */ jsxs22("div", { className: "text-center", children: [
3819
- /* @__PURE__ */ jsx26(TextSkeleton.Subheading, { className: "w-8 mx-auto" }),
3820
- /* @__PURE__ */ jsx26(TextSkeleton.Caption, { className: "w-12 mx-auto" })
3891
+ showStats && /* @__PURE__ */ jsxs23("div", { className: "flex gap-6", children: [
3892
+ /* @__PURE__ */ jsxs23("div", { className: "text-center", children: [
3893
+ /* @__PURE__ */ jsx27(TextSkeleton.Subheading, { className: "w-8 mx-auto" }),
3894
+ /* @__PURE__ */ jsx27(TextSkeleton.Caption, { className: "w-12 mx-auto" })
3821
3895
  ] }),
3822
- /* @__PURE__ */ jsxs22("div", { className: "text-center", children: [
3823
- /* @__PURE__ */ jsx26(TextSkeleton.Subheading, { className: "w-8 mx-auto" }),
3824
- /* @__PURE__ */ jsx26(TextSkeleton.Caption, { className: "w-16 mx-auto" })
3896
+ /* @__PURE__ */ jsxs23("div", { className: "text-center", children: [
3897
+ /* @__PURE__ */ jsx27(TextSkeleton.Subheading, { className: "w-8 mx-auto" }),
3898
+ /* @__PURE__ */ jsx27(TextSkeleton.Caption, { className: "w-16 mx-auto" })
3825
3899
  ] }),
3826
- /* @__PURE__ */ jsxs22("div", { className: "text-center", children: [
3827
- /* @__PURE__ */ jsx26(TextSkeleton.Subheading, { className: "w-8 mx-auto" }),
3828
- /* @__PURE__ */ jsx26(TextSkeleton.Caption, { className: "w-14 mx-auto" })
3900
+ /* @__PURE__ */ jsxs23("div", { className: "text-center", children: [
3901
+ /* @__PURE__ */ jsx27(TextSkeleton.Subheading, { className: "w-8 mx-auto" }),
3902
+ /* @__PURE__ */ jsx27(TextSkeleton.Caption, { className: "w-14 mx-auto" })
3829
3903
  ] })
3830
3904
  ] })
3831
3905
  ] });
@@ -3835,34 +3909,34 @@ function CommentSkeleton({
3835
3909
  showRating = false,
3836
3910
  showReplies = false
3837
3911
  }) {
3838
- return /* @__PURE__ */ jsxs22("div", { className: cn("space-y-3", className), children: [
3839
- /* @__PURE__ */ jsxs22("div", { className: "flex items-center gap-3", children: [
3840
- /* @__PURE__ */ jsx26(MediaSkeleton.Avatar, { size: "sm" }),
3841
- /* @__PURE__ */ jsxs22("div", { className: "flex-1 flex items-center gap-4", children: [
3842
- /* @__PURE__ */ jsx26(TextSkeleton.Body, { className: "w-24" }),
3843
- /* @__PURE__ */ jsx26(TextSkeleton.Caption, { className: "w-16" }),
3844
- showRating && /* @__PURE__ */ jsx26("div", { className: "flex gap-1", children: Array.from({ length: 5 }).map((_, i) => /* @__PURE__ */ jsx26(MediaSkeleton.Icon, { size: "sm" }, i)) })
3912
+ return /* @__PURE__ */ jsxs23("div", { className: cn("space-y-3", className), children: [
3913
+ /* @__PURE__ */ jsxs23("div", { className: "flex items-center gap-3", children: [
3914
+ /* @__PURE__ */ jsx27(MediaSkeleton.Avatar, { size: "sm" }),
3915
+ /* @__PURE__ */ jsxs23("div", { className: "flex-1 flex items-center gap-4", children: [
3916
+ /* @__PURE__ */ jsx27(TextSkeleton.Body, { className: "w-24" }),
3917
+ /* @__PURE__ */ jsx27(TextSkeleton.Caption, { className: "w-16" }),
3918
+ showRating && /* @__PURE__ */ jsx27("div", { className: "flex gap-1", children: Array.from({ length: 5 }).map((_, i) => /* @__PURE__ */ jsx27(MediaSkeleton.Icon, { size: "sm" }, i)) })
3845
3919
  ] })
3846
3920
  ] }),
3847
- /* @__PURE__ */ jsxs22("div", { className: "ml-11 space-y-2", children: [
3848
- /* @__PURE__ */ jsx26(TextSkeleton.Body, { className: "w-full" }),
3849
- /* @__PURE__ */ jsx26(TextSkeleton.Body, { className: "w-3/4" }),
3850
- /* @__PURE__ */ jsx26(TextSkeleton.Body, { className: "w-1/2" })
3921
+ /* @__PURE__ */ jsxs23("div", { className: "ml-11 space-y-2", children: [
3922
+ /* @__PURE__ */ jsx27(TextSkeleton.Body, { className: "w-full" }),
3923
+ /* @__PURE__ */ jsx27(TextSkeleton.Body, { className: "w-3/4" }),
3924
+ /* @__PURE__ */ jsx27(TextSkeleton.Body, { className: "w-1/2" })
3851
3925
  ] }),
3852
- /* @__PURE__ */ jsxs22("div", { className: "ml-11 flex gap-4", children: [
3853
- /* @__PURE__ */ jsx26(TextSkeleton.Caption, { className: "w-12" }),
3854
- /* @__PURE__ */ jsx26(TextSkeleton.Caption, { className: "w-16" }),
3855
- /* @__PURE__ */ jsx26(TextSkeleton.Caption, { className: "w-8" })
3926
+ /* @__PURE__ */ jsxs23("div", { className: "ml-11 flex gap-4", children: [
3927
+ /* @__PURE__ */ jsx27(TextSkeleton.Caption, { className: "w-12" }),
3928
+ /* @__PURE__ */ jsx27(TextSkeleton.Caption, { className: "w-16" }),
3929
+ /* @__PURE__ */ jsx27(TextSkeleton.Caption, { className: "w-8" })
3856
3930
  ] }),
3857
- showReplies && /* @__PURE__ */ jsx26("div", { className: "ml-11 pl-4 border-l border-ods-divider space-y-4", children: Array.from({ length: 2 }).map((_, index) => /* @__PURE__ */ jsxs22("div", { className: "space-y-2", children: [
3858
- /* @__PURE__ */ jsxs22("div", { className: "flex items-center gap-3", children: [
3859
- /* @__PURE__ */ jsx26(MediaSkeleton.Avatar, { size: "sm" }),
3860
- /* @__PURE__ */ jsx26(TextSkeleton.Body, { className: "w-20" }),
3861
- /* @__PURE__ */ jsx26(TextSkeleton.Caption, { className: "w-12" })
3931
+ showReplies && /* @__PURE__ */ jsx27("div", { className: "ml-11 pl-4 border-l border-ods-divider space-y-4", children: Array.from({ length: 2 }).map((_, index) => /* @__PURE__ */ jsxs23("div", { className: "space-y-2", children: [
3932
+ /* @__PURE__ */ jsxs23("div", { className: "flex items-center gap-3", children: [
3933
+ /* @__PURE__ */ jsx27(MediaSkeleton.Avatar, { size: "sm" }),
3934
+ /* @__PURE__ */ jsx27(TextSkeleton.Body, { className: "w-20" }),
3935
+ /* @__PURE__ */ jsx27(TextSkeleton.Caption, { className: "w-12" })
3862
3936
  ] }),
3863
- /* @__PURE__ */ jsxs22("div", { className: "ml-11", children: [
3864
- /* @__PURE__ */ jsx26(TextSkeleton.Body, { className: "w-full" }),
3865
- /* @__PURE__ */ jsx26(TextSkeleton.Body, { className: "w-2/3" })
3937
+ /* @__PURE__ */ jsxs23("div", { className: "ml-11", children: [
3938
+ /* @__PURE__ */ jsx27(TextSkeleton.Body, { className: "w-full" }),
3939
+ /* @__PURE__ */ jsx27(TextSkeleton.Body, { className: "w-2/3" })
3866
3940
  ] })
3867
3941
  ] }, index)) })
3868
3942
  ] });
@@ -3874,35 +3948,35 @@ function FeatureListSkeleton({
3874
3948
  grouped = false
3875
3949
  }) {
3876
3950
  if (grouped) {
3877
- return /* @__PURE__ */ jsx26("div", { className: cn("space-y-6", className), children: Array.from({ length: 3 }).map((_, groupIndex) => /* @__PURE__ */ jsxs22("div", { className: "space-y-3", children: [
3878
- /* @__PURE__ */ jsx26(TextSkeleton.Subheading, { className: "w-1/3" }),
3879
- /* @__PURE__ */ jsx26("div", { className: "space-y-2", children: Array.from({ length: features / 3 }).map((_2, featureIndex) => /* @__PURE__ */ jsxs22("div", { className: "flex items-center gap-3", children: [
3880
- showIcons && /* @__PURE__ */ jsx26(MediaSkeleton.Icon, { size: "sm" }),
3881
- /* @__PURE__ */ jsx26(TextSkeleton.Body, { className: "w-2/3" })
3951
+ return /* @__PURE__ */ jsx27("div", { className: cn("space-y-6", className), children: Array.from({ length: 3 }).map((_, groupIndex) => /* @__PURE__ */ jsxs23("div", { className: "space-y-3", children: [
3952
+ /* @__PURE__ */ jsx27(TextSkeleton.Subheading, { className: "w-1/3" }),
3953
+ /* @__PURE__ */ jsx27("div", { className: "space-y-2", children: Array.from({ length: features / 3 }).map((_2, featureIndex) => /* @__PURE__ */ jsxs23("div", { className: "flex items-center gap-3", children: [
3954
+ showIcons && /* @__PURE__ */ jsx27(MediaSkeleton.Icon, { size: "sm" }),
3955
+ /* @__PURE__ */ jsx27(TextSkeleton.Body, { className: "w-2/3" })
3882
3956
  ] }, featureIndex)) })
3883
3957
  ] }, groupIndex)) });
3884
3958
  }
3885
- return /* @__PURE__ */ jsx26("div", { className: cn("space-y-3", className), children: Array.from({ length: features }).map((_, index) => /* @__PURE__ */ jsxs22("div", { className: "flex items-center gap-3", children: [
3886
- showIcons && /* @__PURE__ */ jsx26(MediaSkeleton.Icon, { size: "sm" }),
3887
- /* @__PURE__ */ jsx26(TextSkeleton.Body, { className: "w-2/3" })
3959
+ return /* @__PURE__ */ jsx27("div", { className: cn("space-y-3", className), children: Array.from({ length: features }).map((_, index) => /* @__PURE__ */ jsxs23("div", { className: "flex items-center gap-3", children: [
3960
+ showIcons && /* @__PURE__ */ jsx27(MediaSkeleton.Icon, { size: "sm" }),
3961
+ /* @__PURE__ */ jsx27(TextSkeleton.Body, { className: "w-2/3" })
3888
3962
  ] }, index)) });
3889
3963
  }
3890
3964
  function TimelineSkeleton({
3891
3965
  className,
3892
3966
  items = 5
3893
3967
  }) {
3894
- return /* @__PURE__ */ jsx26("div", { className: cn("space-y-6", className), children: Array.from({ length: items }).map((_, index) => /* @__PURE__ */ jsxs22("div", { className: "flex gap-4", children: [
3895
- /* @__PURE__ */ jsxs22("div", { className: "flex flex-col items-center", children: [
3896
- /* @__PURE__ */ jsx26(MediaSkeleton.Icon, { size: "sm" }),
3897
- index < items - 1 && /* @__PURE__ */ jsx26("div", { className: "w-px h-12 bg-ods-border mt-2" })
3968
+ return /* @__PURE__ */ jsx27("div", { className: cn("space-y-6", className), children: Array.from({ length: items }).map((_, index) => /* @__PURE__ */ jsxs23("div", { className: "flex gap-4", children: [
3969
+ /* @__PURE__ */ jsxs23("div", { className: "flex flex-col items-center", children: [
3970
+ /* @__PURE__ */ jsx27(MediaSkeleton.Icon, { size: "sm" }),
3971
+ index < items - 1 && /* @__PURE__ */ jsx27("div", { className: "w-px h-12 bg-ods-border mt-2" })
3898
3972
  ] }),
3899
- /* @__PURE__ */ jsxs22("div", { className: "flex-1 space-y-2", children: [
3900
- /* @__PURE__ */ jsxs22("div", { className: "flex items-center gap-3", children: [
3901
- /* @__PURE__ */ jsx26(TextSkeleton.Body, { className: "w-1/3" }),
3902
- /* @__PURE__ */ jsx26(TextSkeleton.Caption, { className: "w-16" })
3973
+ /* @__PURE__ */ jsxs23("div", { className: "flex-1 space-y-2", children: [
3974
+ /* @__PURE__ */ jsxs23("div", { className: "flex items-center gap-3", children: [
3975
+ /* @__PURE__ */ jsx27(TextSkeleton.Body, { className: "w-1/3" }),
3976
+ /* @__PURE__ */ jsx27(TextSkeleton.Caption, { className: "w-16" })
3903
3977
  ] }),
3904
- /* @__PURE__ */ jsx26(TextSkeleton.Body, { className: "w-full" }),
3905
- /* @__PURE__ */ jsx26(TextSkeleton.Body, { className: "w-3/4" })
3978
+ /* @__PURE__ */ jsx27(TextSkeleton.Body, { className: "w-full" }),
3979
+ /* @__PURE__ */ jsx27(TextSkeleton.Body, { className: "w-3/4" })
3906
3980
  ] })
3907
3981
  ] }, index)) });
3908
3982
  }
@@ -3910,54 +3984,54 @@ function PricingSkeleton({
3910
3984
  className,
3911
3985
  plans = 3
3912
3986
  }) {
3913
- return /* @__PURE__ */ jsx26("div", { className: cn(
3987
+ return /* @__PURE__ */ jsx27("div", { className: cn(
3914
3988
  "grid gap-6",
3915
3989
  plans === 2 && "grid-cols-1 md:grid-cols-2",
3916
3990
  plans === 3 && "grid-cols-1 md:grid-cols-3",
3917
3991
  plans === 4 && "grid-cols-1 md:grid-cols-2 lg:grid-cols-4",
3918
3992
  className
3919
- ), children: Array.from({ length: plans }).map((_, index) => /* @__PURE__ */ jsx26("div", { className: "bg-ods-card border border-ods-border rounded-lg p-6", children: /* @__PURE__ */ jsxs22("div", { className: "space-y-4", children: [
3920
- /* @__PURE__ */ jsx26(TextSkeleton.Subheading, { className: "w-1/2" }),
3921
- /* @__PURE__ */ jsxs22("div", { className: "space-y-1", children: [
3922
- /* @__PURE__ */ jsx26(TextSkeleton.Heading, { className: "w-1/3" }),
3923
- /* @__PURE__ */ jsx26(TextSkeleton.Caption, { className: "w-1/4" })
3993
+ ), children: Array.from({ length: plans }).map((_, index) => /* @__PURE__ */ jsx27("div", { className: "bg-ods-card border border-ods-border rounded-lg p-6", children: /* @__PURE__ */ jsxs23("div", { className: "space-y-4", children: [
3994
+ /* @__PURE__ */ jsx27(TextSkeleton.Subheading, { className: "w-1/2" }),
3995
+ /* @__PURE__ */ jsxs23("div", { className: "space-y-1", children: [
3996
+ /* @__PURE__ */ jsx27(TextSkeleton.Heading, { className: "w-1/3" }),
3997
+ /* @__PURE__ */ jsx27(TextSkeleton.Caption, { className: "w-1/4" })
3924
3998
  ] }),
3925
- /* @__PURE__ */ jsx26("div", { className: "space-y-3 py-4", children: Array.from({ length: 5 }).map((_2, featureIndex) => /* @__PURE__ */ jsxs22("div", { className: "flex items-center gap-2", children: [
3926
- /* @__PURE__ */ jsx26(MediaSkeleton.Icon, { size: "sm" }),
3927
- /* @__PURE__ */ jsx26(TextSkeleton.Body, { className: "w-3/4" })
3999
+ /* @__PURE__ */ jsx27("div", { className: "space-y-3 py-4", children: Array.from({ length: 5 }).map((_2, featureIndex) => /* @__PURE__ */ jsxs23("div", { className: "flex items-center gap-2", children: [
4000
+ /* @__PURE__ */ jsx27(MediaSkeleton.Icon, { size: "sm" }),
4001
+ /* @__PURE__ */ jsx27(TextSkeleton.Body, { className: "w-3/4" })
3928
4002
  ] }, featureIndex)) }),
3929
- /* @__PURE__ */ jsx26(InteractiveSkeleton.Button, { className: "w-full" })
4003
+ /* @__PURE__ */ jsx27(InteractiveSkeleton.Button, { className: "w-full" })
3930
4004
  ] }) }, index)) });
3931
4005
  }
3932
4006
 
3933
4007
  // src/components/profile/ProfileLoadingSkeleton.tsx
3934
4008
  init_cn();
3935
- import { jsx as jsx27, jsxs as jsxs23 } from "react/jsx-runtime";
4009
+ import { jsx as jsx28, jsxs as jsxs24 } from "react/jsx-runtime";
3936
4010
  function ProfileLoadingSkeleton({ className }) {
3937
- return /* @__PURE__ */ jsxs23("div", { className: cn("space-y-6", className), children: [
3938
- /* @__PURE__ */ jsxs23("div", { className: "flex items-center space-x-4", children: [
3939
- /* @__PURE__ */ jsx27("div", { className: "h-16 w-16 bg-ods-skeleton rounded-full animate-pulse" }),
3940
- /* @__PURE__ */ jsxs23("div", { className: "space-y-2", children: [
3941
- /* @__PURE__ */ jsx27("div", { className: "h-4 w-32 bg-ods-skeleton rounded animate-pulse" }),
3942
- /* @__PURE__ */ jsx27("div", { className: "h-3 w-24 bg-ods-skeleton rounded animate-pulse" })
4011
+ return /* @__PURE__ */ jsxs24("div", { className: cn("space-y-6", className), children: [
4012
+ /* @__PURE__ */ jsxs24("div", { className: "flex items-center space-x-4", children: [
4013
+ /* @__PURE__ */ jsx28("div", { className: "h-16 w-16 bg-ods-skeleton rounded-full animate-pulse" }),
4014
+ /* @__PURE__ */ jsxs24("div", { className: "space-y-2", children: [
4015
+ /* @__PURE__ */ jsx28("div", { className: "h-4 w-32 bg-ods-skeleton rounded animate-pulse" }),
4016
+ /* @__PURE__ */ jsx28("div", { className: "h-3 w-24 bg-ods-skeleton rounded animate-pulse" })
3943
4017
  ] })
3944
4018
  ] }),
3945
- /* @__PURE__ */ jsxs23("div", { className: "space-y-4", children: [
3946
- /* @__PURE__ */ jsx27("div", { className: "h-4 w-full bg-ods-skeleton rounded animate-pulse" }),
3947
- /* @__PURE__ */ jsx27("div", { className: "h-4 w-3/4 bg-ods-skeleton rounded animate-pulse" }),
3948
- /* @__PURE__ */ jsx27("div", { className: "h-4 w-1/2 bg-ods-skeleton rounded animate-pulse" })
4019
+ /* @__PURE__ */ jsxs24("div", { className: "space-y-4", children: [
4020
+ /* @__PURE__ */ jsx28("div", { className: "h-4 w-full bg-ods-skeleton rounded animate-pulse" }),
4021
+ /* @__PURE__ */ jsx28("div", { className: "h-4 w-3/4 bg-ods-skeleton rounded animate-pulse" }),
4022
+ /* @__PURE__ */ jsx28("div", { className: "h-4 w-1/2 bg-ods-skeleton rounded animate-pulse" })
3949
4023
  ] })
3950
4024
  ] });
3951
4025
  }
3952
4026
 
3953
4027
  // src/components/loading/msp-profile-form-skeleton.tsx
3954
4028
  init_cn();
3955
- import { jsx as jsx28, jsxs as jsxs24 } from "react/jsx-runtime";
4029
+ import { jsx as jsx29, jsxs as jsxs25 } from "react/jsx-runtime";
3956
4030
  function MspProfileFormSkeleton({
3957
4031
  className,
3958
4032
  fields = 4
3959
4033
  }) {
3960
- return /* @__PURE__ */ jsxs24(
4034
+ return /* @__PURE__ */ jsxs25(
3961
4035
  "div",
3962
4036
  {
3963
4037
  className: cn(
@@ -3967,13 +4041,13 @@ function MspProfileFormSkeleton({
3967
4041
  role: "status",
3968
4042
  "aria-label": "Loading MSP profile form",
3969
4043
  children: [
3970
- /* @__PURE__ */ jsxs24("div", { className: "flex flex-col space-y-2 h-full", children: [
3971
- /* @__PURE__ */ jsx28(TextSkeleton.Body, { className: "w-28" }),
3972
- /* @__PURE__ */ jsx28("div", { className: "flex-1 min-h-[180px] md:min-h-full", children: /* @__PURE__ */ jsx28(UnifiedSkeleton, { className: "w-full h-full rounded-lg", "aria-label": "Loading company logo" }) })
4044
+ /* @__PURE__ */ jsxs25("div", { className: "flex flex-col space-y-2 h-full", children: [
4045
+ /* @__PURE__ */ jsx29(TextSkeleton.Body, { className: "w-28" }),
4046
+ /* @__PURE__ */ jsx29("div", { className: "flex-1 min-h-[180px] md:min-h-full", children: /* @__PURE__ */ jsx29(UnifiedSkeleton, { className: "w-full h-full rounded-lg", "aria-label": "Loading company logo" }) })
3973
4047
  ] }),
3974
- /* @__PURE__ */ jsx28("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-4", children: Array.from({ length: fields }).map((_, idx) => /* @__PURE__ */ jsxs24("div", { className: "space-y-2 flex flex-col", children: [
3975
- /* @__PURE__ */ jsx28(TextSkeleton.Body, { className: "w-40" }),
3976
- /* @__PURE__ */ jsx28(InteractiveSkeleton.Input, {})
4048
+ /* @__PURE__ */ jsx29("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-4", children: Array.from({ length: fields }).map((_, idx) => /* @__PURE__ */ jsxs25("div", { className: "space-y-2 flex flex-col", children: [
4049
+ /* @__PURE__ */ jsx29(TextSkeleton.Body, { className: "w-40" }),
4050
+ /* @__PURE__ */ jsx29(InteractiveSkeleton.Input, {})
3977
4051
  ] }, idx)) })
3978
4052
  ]
3979
4053
  }
@@ -3982,9 +4056,9 @@ function MspProfileFormSkeleton({
3982
4056
 
3983
4057
  // src/components/loading/category-card-skeleton.tsx
3984
4058
  init_cn();
3985
- import { jsx as jsx29, jsxs as jsxs25 } from "react/jsx-runtime";
4059
+ import { jsx as jsx30, jsxs as jsxs26 } from "react/jsx-runtime";
3986
4060
  function CategoryCardSkeleton({ className }) {
3987
- return /* @__PURE__ */ jsxs25(
4061
+ return /* @__PURE__ */ jsxs26(
3988
4062
  "article",
3989
4063
  {
3990
4064
  className: cn(
@@ -3994,7 +4068,7 @@ function CategoryCardSkeleton({ className }) {
3994
4068
  role: "status",
3995
4069
  "aria-label": "Loading category card",
3996
4070
  children: [
3997
- /* @__PURE__ */ jsx29("div", { className: "flex gap-6 mb-8 justify-center items-center", children: Array.from({ length: 10 }).map((_, i) => /* @__PURE__ */ jsx29(
4071
+ /* @__PURE__ */ jsx30("div", { className: "flex gap-6 mb-8 justify-center items-center", children: Array.from({ length: 10 }).map((_, i) => /* @__PURE__ */ jsx30(
3998
4072
  UnifiedSkeleton,
3999
4073
  {
4000
4074
  variant: "circular",
@@ -4003,12 +4077,12 @@ function CategoryCardSkeleton({ className }) {
4003
4077
  },
4004
4078
  i
4005
4079
  )) }),
4006
- /* @__PURE__ */ jsxs25("div", { className: "flex-1 flex flex-col space-y-3", children: [
4007
- /* @__PURE__ */ jsx29(TextSkeleton.Heading, { className: "w-3/4" }),
4008
- /* @__PURE__ */ jsx29(TextSkeleton.Body, { className: "w-1/2" }),
4009
- /* @__PURE__ */ jsx29(TextSkeleton.Body, { className: "w-full" })
4080
+ /* @__PURE__ */ jsxs26("div", { className: "flex-1 flex flex-col space-y-3", children: [
4081
+ /* @__PURE__ */ jsx30(TextSkeleton.Heading, { className: "w-3/4" }),
4082
+ /* @__PURE__ */ jsx30(TextSkeleton.Body, { className: "w-1/2" }),
4083
+ /* @__PURE__ */ jsx30(TextSkeleton.Body, { className: "w-full" })
4010
4084
  ] }),
4011
- /* @__PURE__ */ jsx29("div", { className: "mt-4 flex justify-end", children: /* @__PURE__ */ jsx29(UnifiedSkeleton, { className: "w-12 h-12 rounded-[6px]", "aria-label": "Loading button" }) })
4085
+ /* @__PURE__ */ jsx30("div", { className: "mt-4 flex justify-end", children: /* @__PURE__ */ jsx30(UnifiedSkeleton, { className: "w-12 h-12 rounded-[6px]", "aria-label": "Loading button" }) })
4012
4086
  ]
4013
4087
  }
4014
4088
  );
@@ -4016,22 +4090,22 @@ function CategoryCardSkeleton({ className }) {
4016
4090
 
4017
4091
  // src/components/loading/category-vendor-selector-skeleton.tsx
4018
4092
  init_cn();
4019
- import { jsx as jsx30, jsxs as jsxs26 } from "react/jsx-runtime";
4093
+ import { jsx as jsx31, jsxs as jsxs27 } from "react/jsx-runtime";
4020
4094
  function CategoryVendorSelectorSkeleton({ subcategories = 3, className }) {
4021
- return /* @__PURE__ */ jsxs26(
4095
+ return /* @__PURE__ */ jsxs27(
4022
4096
  "div",
4023
4097
  {
4024
4098
  className: cn("bg-ods-card border border-ods-border rounded-lg p-6", className),
4025
4099
  role: "status",
4026
4100
  "aria-label": "Loading category section",
4027
4101
  children: [
4028
- /* @__PURE__ */ jsxs26("div", { className: "mb-6 space-y-2 max-w-xl", children: [
4029
- /* @__PURE__ */ jsx30(TextSkeleton.Heading, { className: "w-1/2" }),
4030
- /* @__PURE__ */ jsx30(TextSkeleton.Body, { className: "w-3/4" })
4102
+ /* @__PURE__ */ jsxs27("div", { className: "mb-6 space-y-2 max-w-xl", children: [
4103
+ /* @__PURE__ */ jsx31(TextSkeleton.Heading, { className: "w-1/2" }),
4104
+ /* @__PURE__ */ jsx31(TextSkeleton.Body, { className: "w-3/4" })
4031
4105
  ] }),
4032
- /* @__PURE__ */ jsx30("div", { className: "space-y-6", children: Array.from({ length: subcategories }).map((_, idx) => /* @__PURE__ */ jsxs26("div", { className: "space-y-2", children: [
4033
- /* @__PURE__ */ jsx30(TextSkeleton.Subheading, { className: "w-1/3" }),
4034
- /* @__PURE__ */ jsx30("div", { className: "grid grid-cols-2 md:grid-cols-3 gap-4", children: Array.from({ length: 2 }).map((__, j) => /* @__PURE__ */ jsx30(UnifiedSkeleton, { className: "h-20 rounded-lg" }, j)) })
4106
+ /* @__PURE__ */ jsx31("div", { className: "space-y-6", children: Array.from({ length: subcategories }).map((_, idx) => /* @__PURE__ */ jsxs27("div", { className: "space-y-2", children: [
4107
+ /* @__PURE__ */ jsx31(TextSkeleton.Subheading, { className: "w-1/3" }),
4108
+ /* @__PURE__ */ jsx31("div", { className: "grid grid-cols-2 md:grid-cols-3 gap-4", children: Array.from({ length: 2 }).map((__, j) => /* @__PURE__ */ jsx31(UnifiedSkeleton, { className: "h-20 rounded-lg" }, j)) })
4035
4109
  ] }, idx)) })
4036
4110
  ]
4037
4111
  }
@@ -4040,90 +4114,90 @@ function CategoryVendorSelectorSkeleton({ subcategories = 3, className }) {
4040
4114
 
4041
4115
  // src/components/loading/wizard-layout-skeleton.tsx
4042
4116
  init_cn();
4043
- import { jsx as jsx31, jsxs as jsxs27 } from "react/jsx-runtime";
4117
+ import { jsx as jsx32, jsxs as jsxs28 } from "react/jsx-runtime";
4044
4118
  function WizardLayoutSkeleton({ steps = 6, className }) {
4045
- return /* @__PURE__ */ jsxs27("div", { className: cn("space-y-6", className), role: "status", "aria-label": "Loading wizard layout", children: [
4046
- /* @__PURE__ */ jsx31("div", { className: "flex flex-wrap items-center gap-2", children: Array.from({ length: steps }).map((_, i) => /* @__PURE__ */ jsx31(UnifiedSkeleton, { className: "h-6 w-24 rounded" }, i)) }),
4047
- /* @__PURE__ */ jsxs27("div", { className: "space-y-2 max-w-2xl", children: [
4048
- /* @__PURE__ */ jsx31(TextSkeleton.Heading, { className: "w-2/3" }),
4049
- /* @__PURE__ */ jsx31(TextSkeleton.Body, { className: "w-1/2" })
4119
+ return /* @__PURE__ */ jsxs28("div", { className: cn("space-y-6", className), role: "status", "aria-label": "Loading wizard layout", children: [
4120
+ /* @__PURE__ */ jsx32("div", { className: "flex flex-wrap items-center gap-2", children: Array.from({ length: steps }).map((_, i) => /* @__PURE__ */ jsx32(UnifiedSkeleton, { className: "h-6 w-24 rounded" }, i)) }),
4121
+ /* @__PURE__ */ jsxs28("div", { className: "space-y-2 max-w-2xl", children: [
4122
+ /* @__PURE__ */ jsx32(TextSkeleton.Heading, { className: "w-2/3" }),
4123
+ /* @__PURE__ */ jsx32(TextSkeleton.Body, { className: "w-1/2" })
4050
4124
  ] }),
4051
- /* @__PURE__ */ jsxs27("div", { className: "flex justify-between mt-10", children: [
4052
- /* @__PURE__ */ jsx31(UnifiedSkeleton, { className: "h-10 w-24 rounded" }),
4053
- /* @__PURE__ */ jsx31(UnifiedSkeleton, { className: "h-10 w-32 rounded" })
4125
+ /* @__PURE__ */ jsxs28("div", { className: "flex justify-between mt-10", children: [
4126
+ /* @__PURE__ */ jsx32(UnifiedSkeleton, { className: "h-10 w-24 rounded" }),
4127
+ /* @__PURE__ */ jsx32(UnifiedSkeleton, { className: "h-10 w-32 rounded" })
4054
4128
  ] })
4055
4129
  ] });
4056
4130
  }
4057
4131
 
4058
4132
  // src/components/loading/margin-report-skeleton.tsx
4059
- import { jsx as jsx32, jsxs as jsxs28 } from "react/jsx-runtime";
4133
+ import { jsx as jsx33, jsxs as jsxs29 } from "react/jsx-runtime";
4060
4134
  function MarginReportSkeleton({ animate = true, description, overlayContent }) {
4061
- return /* @__PURE__ */ jsxs28("main", { className: `bg-ods-bg ${animate ? "animate-pulse" : ""} relative min-h-screen`, children: [
4062
- /* @__PURE__ */ jsxs28("div", { className: "max-w-[1920px] px-6 md:px-20 py-6 md:py-10 mx-auto space-y-10", children: [
4063
- /* @__PURE__ */ jsxs28("div", { className: "space-y-3", children: [
4064
- /* @__PURE__ */ jsx32("div", { className: "h-10 w-72 bg-ods-skeleton rounded" }),
4065
- /* @__PURE__ */ jsx32("div", { className: "h-4 w-80 bg-ods-skeleton rounded" })
4135
+ return /* @__PURE__ */ jsxs29("main", { className: `bg-ods-bg ${animate ? "animate-pulse" : ""} relative min-h-screen`, children: [
4136
+ /* @__PURE__ */ jsxs29("div", { className: "max-w-[1920px] px-6 md:px-20 py-6 md:py-10 mx-auto space-y-10", children: [
4137
+ /* @__PURE__ */ jsxs29("div", { className: "space-y-3", children: [
4138
+ /* @__PURE__ */ jsx33("div", { className: "h-10 w-72 bg-ods-skeleton rounded" }),
4139
+ /* @__PURE__ */ jsx33("div", { className: "h-4 w-80 bg-ods-skeleton rounded" })
4066
4140
  ] }),
4067
- /* @__PURE__ */ jsx32("div", { className: "grid grid-cols-1 md:grid-cols-3 gap-6", children: Array.from({ length: 3 }).map((_, i) => /* @__PURE__ */ jsx32("div", { className: "h-32 bg-ods-card border border-ods-border rounded" }, i)) }),
4068
- /* @__PURE__ */ jsxs28("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-6", children: [
4069
- /* @__PURE__ */ jsxs28("div", { className: "bg-ods-card border border-ods-border rounded-lg p-6 flex items-center gap-4 animate-pulse", children: [
4070
- /* @__PURE__ */ jsx32("div", { className: "w-14 h-14 rounded-lg bg-ods-skeleton" }),
4071
- /* @__PURE__ */ jsxs28("div", { className: "flex-1 space-y-2", children: [
4072
- /* @__PURE__ */ jsx32("div", { className: "h-4 bg-ods-skeleton rounded w-3/4" }),
4073
- /* @__PURE__ */ jsx32("div", { className: "h-3 bg-ods-skeleton rounded w-1/2" })
4141
+ /* @__PURE__ */ jsx33("div", { className: "grid grid-cols-1 md:grid-cols-3 gap-6", children: Array.from({ length: 3 }).map((_, i) => /* @__PURE__ */ jsx33("div", { className: "h-32 bg-ods-card border border-ods-border rounded" }, i)) }),
4142
+ /* @__PURE__ */ jsxs29("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-6", children: [
4143
+ /* @__PURE__ */ jsxs29("div", { className: "bg-ods-card border border-ods-border rounded-lg p-6 flex items-center gap-4 animate-pulse", children: [
4144
+ /* @__PURE__ */ jsx33("div", { className: "w-14 h-14 rounded-lg bg-ods-skeleton" }),
4145
+ /* @__PURE__ */ jsxs29("div", { className: "flex-1 space-y-2", children: [
4146
+ /* @__PURE__ */ jsx33("div", { className: "h-4 bg-ods-skeleton rounded w-3/4" }),
4147
+ /* @__PURE__ */ jsx33("div", { className: "h-3 bg-ods-skeleton rounded w-1/2" })
4074
4148
  ] })
4075
4149
  ] }),
4076
- /* @__PURE__ */ jsxs28("div", { className: "bg-ods-card border border-ods-border rounded-lg p-6 flex flex-col gap-4 animate-pulse", children: [
4077
- /* @__PURE__ */ jsxs28("div", { className: "flex items-center justify-between gap-4", children: [
4078
- /* @__PURE__ */ jsxs28("div", { className: "flex items-center gap-2", children: [
4079
- /* @__PURE__ */ jsx32("div", { className: "w-10 h-10 rounded-lg bg-ods-skeleton" }),
4080
- /* @__PURE__ */ jsxs28("div", { className: "space-y-1", children: [
4081
- /* @__PURE__ */ jsx32("div", { className: "h-4 w-32 bg-ods-skeleton rounded" }),
4082
- /* @__PURE__ */ jsx32("div", { className: "h-3 w-20 bg-ods-skeleton rounded" })
4150
+ /* @__PURE__ */ jsxs29("div", { className: "bg-ods-card border border-ods-border rounded-lg p-6 flex flex-col gap-4 animate-pulse", children: [
4151
+ /* @__PURE__ */ jsxs29("div", { className: "flex items-center justify-between gap-4", children: [
4152
+ /* @__PURE__ */ jsxs29("div", { className: "flex items-center gap-2", children: [
4153
+ /* @__PURE__ */ jsx33("div", { className: "w-10 h-10 rounded-lg bg-ods-skeleton" }),
4154
+ /* @__PURE__ */ jsxs29("div", { className: "space-y-1", children: [
4155
+ /* @__PURE__ */ jsx33("div", { className: "h-4 w-32 bg-ods-skeleton rounded" }),
4156
+ /* @__PURE__ */ jsx33("div", { className: "h-3 w-20 bg-ods-skeleton rounded" })
4083
4157
  ] })
4084
4158
  ] }),
4085
- /* @__PURE__ */ jsx32("div", { className: "h-6 w-36 bg-ods-skeleton rounded" })
4159
+ /* @__PURE__ */ jsx33("div", { className: "h-6 w-36 bg-ods-skeleton rounded" })
4086
4160
  ] }),
4087
- /* @__PURE__ */ jsx32("div", { className: "h-4 w-40 bg-ods-skeleton rounded mt-4" })
4161
+ /* @__PURE__ */ jsx33("div", { className: "h-4 w-40 bg-ods-skeleton rounded mt-4" })
4088
4162
  ] })
4089
4163
  ] }),
4090
- /* @__PURE__ */ jsx32("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-6", children: ["Commercial Stack", "Open-Source Stack"].map((label, idx) => /* @__PURE__ */ jsxs28("div", { className: "bg-ods-card border border-ods-border rounded-lg overflow-hidden flex flex-col animate-pulse", children: [
4091
- /* @__PURE__ */ jsxs28("div", { className: "flex items-center justify-between px-6 py-4", children: [
4092
- /* @__PURE__ */ jsx32("div", { className: "h-6 w-40 bg-ods-skeleton rounded" }),
4093
- /* @__PURE__ */ jsxs28("div", { className: "flex items-center gap-2", children: [
4094
- /* @__PURE__ */ jsx32("div", { className: "h-5 w-20 bg-ods-skeleton rounded" }),
4095
- /* @__PURE__ */ jsx32("div", { className: "h-4 w-10 bg-ods-skeleton rounded" })
4164
+ /* @__PURE__ */ jsx33("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-6", children: ["Commercial Stack", "Open-Source Stack"].map((label, idx) => /* @__PURE__ */ jsxs29("div", { className: "bg-ods-card border border-ods-border rounded-lg overflow-hidden flex flex-col animate-pulse", children: [
4165
+ /* @__PURE__ */ jsxs29("div", { className: "flex items-center justify-between px-6 py-4", children: [
4166
+ /* @__PURE__ */ jsx33("div", { className: "h-6 w-40 bg-ods-skeleton rounded" }),
4167
+ /* @__PURE__ */ jsxs29("div", { className: "flex items-center gap-2", children: [
4168
+ /* @__PURE__ */ jsx33("div", { className: "h-5 w-20 bg-ods-skeleton rounded" }),
4169
+ /* @__PURE__ */ jsx33("div", { className: "h-4 w-10 bg-ods-skeleton rounded" })
4096
4170
  ] })
4097
4171
  ] }),
4098
- /* @__PURE__ */ jsx32("div", { className: "flex-1 flex flex-col gap-3 p-3", children: Array.from({ length: 5 }).map((_, j) => /* @__PURE__ */ jsxs28("div", { className: "bg-ods-bg border border-ods-border rounded-lg px-4 py-3 flex items-center justify-between", children: [
4099
- /* @__PURE__ */ jsxs28("div", { className: "flex items-center gap-3 min-w-0", children: [
4100
- /* @__PURE__ */ jsx32("div", { className: "w-12 h-12 bg-ods-skeleton rounded-lg flex-shrink-0" }),
4101
- /* @__PURE__ */ jsxs28("div", { className: "flex flex-col min-w-0", children: [
4102
- /* @__PURE__ */ jsx32("div", { className: "h-4 w-32 bg-ods-skeleton rounded" }),
4103
- /* @__PURE__ */ jsx32("div", { className: "hidden md:block h-3 w-24 bg-ods-skeleton rounded mt-1" })
4172
+ /* @__PURE__ */ jsx33("div", { className: "flex-1 flex flex-col gap-3 p-3", children: Array.from({ length: 5 }).map((_, j) => /* @__PURE__ */ jsxs29("div", { className: "bg-ods-bg border border-ods-border rounded-lg px-4 py-3 flex items-center justify-between", children: [
4173
+ /* @__PURE__ */ jsxs29("div", { className: "flex items-center gap-3 min-w-0", children: [
4174
+ /* @__PURE__ */ jsx33("div", { className: "w-12 h-12 bg-ods-skeleton rounded-lg flex-shrink-0" }),
4175
+ /* @__PURE__ */ jsxs29("div", { className: "flex flex-col min-w-0", children: [
4176
+ /* @__PURE__ */ jsx33("div", { className: "h-4 w-32 bg-ods-skeleton rounded" }),
4177
+ /* @__PURE__ */ jsx33("div", { className: "hidden md:block h-3 w-24 bg-ods-skeleton rounded mt-1" })
4104
4178
  ] })
4105
4179
  ] }),
4106
- /* @__PURE__ */ jsxs28("div", { className: "flex items-center gap-1 flex-shrink-0", children: [
4107
- /* @__PURE__ */ jsx32("div", { className: "h-4 w-16 bg-ods-skeleton rounded" }),
4108
- /* @__PURE__ */ jsx32("div", { className: "h-3 w-8 bg-ods-skeleton rounded" })
4180
+ /* @__PURE__ */ jsxs29("div", { className: "flex items-center gap-1 flex-shrink-0", children: [
4181
+ /* @__PURE__ */ jsx33("div", { className: "h-4 w-16 bg-ods-skeleton rounded" }),
4182
+ /* @__PURE__ */ jsx33("div", { className: "h-3 w-8 bg-ods-skeleton rounded" })
4109
4183
  ] })
4110
4184
  ] }, j)) })
4111
4185
  ] }, idx)) }),
4112
- /* @__PURE__ */ jsx32("div", { className: "h-6 w-60 bg-ods-skeleton rounded" }),
4113
- /* @__PURE__ */ jsx32("div", { className: "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6", children: Array.from({ length: 3 }).map((_, i) => /* @__PURE__ */ jsx32("div", { className: "h-48 bg-ods-card border border-ods-border rounded" }, i)) }),
4114
- /* @__PURE__ */ jsxs28("div", { className: "border border-ods-border rounded-3xl p-8 space-y-6", children: [
4115
- /* @__PURE__ */ jsxs28("div", { className: "flex items-start gap-6", children: [
4116
- /* @__PURE__ */ jsxs28("div", { className: "flex-1 space-y-2 min-w-0", children: [
4117
- /* @__PURE__ */ jsx32("div", { className: "h-8 w-72 bg-ods-skeleton rounded" }),
4118
- /* @__PURE__ */ jsx32("div", { className: "h-4 w-3/4 bg-ods-skeleton rounded" })
4186
+ /* @__PURE__ */ jsx33("div", { className: "h-6 w-60 bg-ods-skeleton rounded" }),
4187
+ /* @__PURE__ */ jsx33("div", { className: "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6", children: Array.from({ length: 3 }).map((_, i) => /* @__PURE__ */ jsx33("div", { className: "h-48 bg-ods-card border border-ods-border rounded" }, i)) }),
4188
+ /* @__PURE__ */ jsxs29("div", { className: "border border-ods-border rounded-3xl p-8 space-y-6", children: [
4189
+ /* @__PURE__ */ jsxs29("div", { className: "flex items-start gap-6", children: [
4190
+ /* @__PURE__ */ jsxs29("div", { className: "flex-1 space-y-2 min-w-0", children: [
4191
+ /* @__PURE__ */ jsx33("div", { className: "h-8 w-72 bg-ods-skeleton rounded" }),
4192
+ /* @__PURE__ */ jsx33("div", { className: "h-4 w-3/4 bg-ods-skeleton rounded" })
4119
4193
  ] }),
4120
- /* @__PURE__ */ jsx32("div", { className: "w-12 h-12 bg-ods-skeleton rounded-md shrink-0" })
4194
+ /* @__PURE__ */ jsx33("div", { className: "w-12 h-12 bg-ods-skeleton rounded-md shrink-0" })
4121
4195
  ] }),
4122
- /* @__PURE__ */ jsx32("div", { className: "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6", children: Array.from({ length: 3 }).map((_, i) => /* @__PURE__ */ jsx32("div", { className: "h-32 bg-ods-card border border-ods-border rounded" }, i)) })
4196
+ /* @__PURE__ */ jsx33("div", { className: "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6", children: Array.from({ length: 3 }).map((_, i) => /* @__PURE__ */ jsx33("div", { className: "h-32 bg-ods-card border border-ods-border rounded" }, i)) })
4123
4197
  ] })
4124
4198
  ] }),
4125
- overlayContent && /* @__PURE__ */ jsx32("div", { className: "absolute inset-0 bg-ods-card/80 z-10 rounded-lg pointer-events-none", children: /* @__PURE__ */ jsxs28("div", { className: "fixed top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 pointer-events-auto flex flex-col items-center gap-4 text-center px-4", children: [
4126
- description && /* @__PURE__ */ jsx32("h3", { children: description }),
4199
+ overlayContent && /* @__PURE__ */ jsx33("div", { className: "absolute inset-0 bg-ods-card/80 z-10 rounded-lg pointer-events-none", children: /* @__PURE__ */ jsxs29("div", { className: "fixed top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 pointer-events-auto flex flex-col items-center gap-4 text-center px-4", children: [
4200
+ description && /* @__PURE__ */ jsx33("h3", { children: description }),
4127
4201
  overlayContent
4128
4202
  ] }) })
4129
4203
  ] });
@@ -4131,18 +4205,18 @@ function MarginReportSkeleton({ animate = true, description, overlayContent }) {
4131
4205
 
4132
4206
  // src/components/loading/users-grid-skeleton.tsx
4133
4207
  init_cn();
4134
- import { jsx as jsx33, jsxs as jsxs29 } from "react/jsx-runtime";
4208
+ import { jsx as jsx34, jsxs as jsxs30 } from "react/jsx-runtime";
4135
4209
  function UsersGridSkeleton({ rows = 10, className }) {
4136
4210
  const skeletonRows = Array.from({ length: rows });
4137
- return /* @__PURE__ */ jsx33("div", { className: cn("overflow-x-auto rounded-lg border border-ods-border bg-ods-card animate-pulse", className), children: /* @__PURE__ */ jsxs29("table", { className: "min-w-full divide-y divide-ods-border", children: [
4138
- /* @__PURE__ */ jsx33("thead", { className: "bg-ods-skeleton", children: /* @__PURE__ */ jsx33("tr", { children: ["Name", "Email", "Role", "Created", "Last Sign-In"].map((h) => /* @__PURE__ */ jsx33("th", { className: "px-4 py-3 text-left text-h6 text-ods-text-primary", children: h }, h)) }) }),
4139
- /* @__PURE__ */ jsx33("tbody", { className: "divide-y divide-ods-border", children: skeletonRows.map((_, idx) => /* @__PURE__ */ jsx33("tr", { children: Array.from({ length: 5 }).map((__, cell) => /* @__PURE__ */ jsx33("td", { className: "px-4 py-3 whitespace-nowrap", children: /* @__PURE__ */ jsx33("div", { className: "h-4 bg-ods-border rounded w-full" }) }, cell)) }, idx)) })
4211
+ return /* @__PURE__ */ jsx34("div", { className: cn("overflow-x-auto rounded-lg border border-ods-border bg-ods-card animate-pulse", className), children: /* @__PURE__ */ jsxs30("table", { className: "min-w-full divide-y divide-ods-border", children: [
4212
+ /* @__PURE__ */ jsx34("thead", { className: "bg-ods-skeleton", children: /* @__PURE__ */ jsx34("tr", { children: ["Name", "Email", "Role", "Created", "Last Sign-In"].map((h) => /* @__PURE__ */ jsx34("th", { className: "px-4 py-3 text-left text-h6 text-ods-text-primary", children: h }, h)) }) }),
4213
+ /* @__PURE__ */ jsx34("tbody", { className: "divide-y divide-ods-border", children: skeletonRows.map((_, idx) => /* @__PURE__ */ jsx34("tr", { children: Array.from({ length: 5 }).map((__, cell) => /* @__PURE__ */ jsx34("td", { className: "px-4 py-3 whitespace-nowrap", children: /* @__PURE__ */ jsx34("div", { className: "h-4 bg-ods-border rounded w-full" }) }, cell)) }, idx)) })
4140
4214
  ] }) });
4141
4215
  }
4142
4216
 
4143
4217
  // src/components/loading/organization-icon-skeleton.tsx
4144
4218
  init_cn();
4145
- import { jsx as jsx34 } from "react/jsx-runtime";
4219
+ import { jsx as jsx35 } from "react/jsx-runtime";
4146
4220
  var sizeClasses2 = {
4147
4221
  xs: "w-6 h-6",
4148
4222
  sm: "w-8 h-8",
@@ -4169,27 +4243,27 @@ function OrganizationIconSkeleton({
4169
4243
  !showBackground && "overflow-hidden",
4170
4244
  className
4171
4245
  );
4172
- return /* @__PURE__ */ jsx34(
4246
+ return /* @__PURE__ */ jsx35(
4173
4247
  "div",
4174
4248
  {
4175
4249
  className: containerClasses,
4176
4250
  role: "status",
4177
4251
  "aria-label": "Loading organization icon",
4178
- children: /* @__PURE__ */ jsx34("div", { className: "w-1/2 h-1/2 bg-ods-border rounded-sm animate-pulse" })
4252
+ children: /* @__PURE__ */ jsx35("div", { className: "w-1/2 h-1/2 bg-ods-border rounded-sm animate-pulse" })
4179
4253
  }
4180
4254
  );
4181
4255
  }
4182
4256
 
4183
4257
  // src/components/loading/organization-card-skeleton.tsx
4184
4258
  init_cn();
4185
- import { jsx as jsx35, jsxs as jsxs30 } from "react/jsx-runtime";
4259
+ import { jsx as jsx36, jsxs as jsxs31 } from "react/jsx-runtime";
4186
4260
  function OrganizationCardSkeleton({
4187
4261
  className,
4188
4262
  containerClassName,
4189
4263
  showFooter = true,
4190
4264
  showDescription = true
4191
4265
  }) {
4192
- return /* @__PURE__ */ jsx35(
4266
+ return /* @__PURE__ */ jsx36(
4193
4267
  "div",
4194
4268
  {
4195
4269
  className: cn(
@@ -4199,9 +4273,9 @@ function OrganizationCardSkeleton({
4199
4273
  ),
4200
4274
  role: "status",
4201
4275
  "aria-label": "Loading organization card",
4202
- children: /* @__PURE__ */ jsxs30("div", { className: "p-4 gap-3 flex flex-col", children: [
4203
- /* @__PURE__ */ jsxs30("div", { className: "flex items-start gap-3 w-full", children: [
4204
- /* @__PURE__ */ jsx35(
4276
+ children: /* @__PURE__ */ jsxs31("div", { className: "p-4 gap-3 flex flex-col", children: [
4277
+ /* @__PURE__ */ jsxs31("div", { className: "flex items-start gap-3 w-full", children: [
4278
+ /* @__PURE__ */ jsx36(
4205
4279
  OrganizationIconSkeleton,
4206
4280
  {
4207
4281
  size: "xl",
@@ -4210,29 +4284,29 @@ function OrganizationCardSkeleton({
4210
4284
  className: "w-[60px] h-[60px]"
4211
4285
  }
4212
4286
  ),
4213
- /* @__PURE__ */ jsxs30("div", { className: "flex-1 flex flex-col justify-center py-2 min-w-0 space-y-1", children: [
4214
- /* @__PURE__ */ jsx35(TextSkeleton.Subheading, { className: "w-3/4" }),
4215
- /* @__PURE__ */ jsx35(TextSkeleton.Caption, { className: "w-1/2" })
4287
+ /* @__PURE__ */ jsxs31("div", { className: "flex-1 flex flex-col justify-center py-2 min-w-0 space-y-1", children: [
4288
+ /* @__PURE__ */ jsx36(TextSkeleton.Subheading, { className: "w-3/4" }),
4289
+ /* @__PURE__ */ jsx36(TextSkeleton.Caption, { className: "w-1/2" })
4216
4290
  ] })
4217
4291
  ] }),
4218
- showDescription && /* @__PURE__ */ jsx35("div", { className: "w-full h-12 overflow-hidden flex items-center", children: /* @__PURE__ */ jsxs30("div", { className: "space-y-1 w-full", children: [
4219
- /* @__PURE__ */ jsx35(TextSkeleton.Body, { className: "w-full" }),
4220
- /* @__PURE__ */ jsx35(TextSkeleton.Body, { className: "w-2/3" })
4292
+ showDescription && /* @__PURE__ */ jsx36("div", { className: "w-full h-12 overflow-hidden flex items-center", children: /* @__PURE__ */ jsxs31("div", { className: "space-y-1 w-full", children: [
4293
+ /* @__PURE__ */ jsx36(TextSkeleton.Body, { className: "w-full" }),
4294
+ /* @__PURE__ */ jsx36(TextSkeleton.Body, { className: "w-2/3" })
4221
4295
  ] }) }),
4222
- showFooter && /* @__PURE__ */ jsxs30("div", { className: "flex items-center justify-between gap-2 w-full min-w-0", children: [
4223
- /* @__PURE__ */ jsxs30("div", { className: "flex items-center gap-3 md:gap-4 min-w-0 flex-shrink", children: [
4224
- /* @__PURE__ */ jsxs30("div", { className: "flex items-center gap-1 flex-shrink-0", children: [
4225
- /* @__PURE__ */ jsx35(MediaSkeleton.Icon, { size: "sm", className: "w-5 h-5" }),
4226
- /* @__PURE__ */ jsx35(TextSkeleton.Caption, { className: "w-8" })
4296
+ showFooter && /* @__PURE__ */ jsxs31("div", { className: "flex items-center justify-between gap-2 w-full min-w-0", children: [
4297
+ /* @__PURE__ */ jsxs31("div", { className: "flex items-center gap-3 md:gap-4 min-w-0 flex-shrink", children: [
4298
+ /* @__PURE__ */ jsxs31("div", { className: "flex items-center gap-1 flex-shrink-0", children: [
4299
+ /* @__PURE__ */ jsx36(MediaSkeleton.Icon, { size: "sm", className: "w-5 h-5" }),
4300
+ /* @__PURE__ */ jsx36(TextSkeleton.Caption, { className: "w-8" })
4227
4301
  ] }),
4228
- /* @__PURE__ */ jsxs30("div", { className: "flex items-center gap-1 flex-shrink-0", children: [
4229
- /* @__PURE__ */ jsx35(MediaSkeleton.Icon, { size: "sm", className: "w-5 h-5" }),
4230
- /* @__PURE__ */ jsx35(TextSkeleton.Caption, { className: "w-10" })
4302
+ /* @__PURE__ */ jsxs31("div", { className: "flex items-center gap-1 flex-shrink-0", children: [
4303
+ /* @__PURE__ */ jsx36(MediaSkeleton.Icon, { size: "sm", className: "w-5 h-5" }),
4304
+ /* @__PURE__ */ jsx36(TextSkeleton.Caption, { className: "w-10" })
4231
4305
  ] })
4232
4306
  ] }),
4233
- /* @__PURE__ */ jsx35("div", { className: "flex-shrink-0", children: /* @__PURE__ */ jsxs30("div", { className: "flex items-center gap-1.5 bg-ods-bg border border-ods-border rounded px-2.5 py-1.5", children: [
4234
- /* @__PURE__ */ jsx35("div", { className: "w-4 h-4 bg-ods-border rounded-sm flex items-center justify-center flex-shrink-0", children: /* @__PURE__ */ jsx35(MediaSkeleton.Icon, { size: "sm", className: "w-2.5 h-2.5" }) }),
4235
- /* @__PURE__ */ jsx35(TextSkeleton.Caption, { className: "w-16" })
4307
+ /* @__PURE__ */ jsx36("div", { className: "flex-shrink-0", children: /* @__PURE__ */ jsxs31("div", { className: "flex items-center gap-1.5 bg-ods-bg border border-ods-border rounded px-2.5 py-1.5", children: [
4308
+ /* @__PURE__ */ jsx36("div", { className: "w-4 h-4 bg-ods-border rounded-sm flex items-center justify-center flex-shrink-0", children: /* @__PURE__ */ jsx36(MediaSkeleton.Icon, { size: "sm", className: "w-2.5 h-2.5" }) }),
4309
+ /* @__PURE__ */ jsx36(TextSkeleton.Caption, { className: "w-16" })
4236
4310
  ] }) })
4237
4311
  ] })
4238
4312
  ] })
@@ -4246,7 +4320,7 @@ function OrganizationCardSkeletonGrid({
4246
4320
  showFooter = true,
4247
4321
  showDescription = true
4248
4322
  }) {
4249
- return /* @__PURE__ */ jsx35(
4323
+ return /* @__PURE__ */ jsx36(
4250
4324
  "div",
4251
4325
  {
4252
4326
  className: cn(
@@ -4255,7 +4329,7 @@ function OrganizationCardSkeletonGrid({
4255
4329
  ),
4256
4330
  role: "status",
4257
4331
  "aria-label": `Loading ${count} organization cards`,
4258
- children: Array.from({ length: count }, (_, index) => /* @__PURE__ */ jsx35(
4332
+ children: Array.from({ length: count }, (_, index) => /* @__PURE__ */ jsx36(
4259
4333
  OrganizationCardSkeleton,
4260
4334
  {
4261
4335
  containerClassName,
@@ -4270,9 +4344,9 @@ function OrganizationCardSkeletonGrid({
4270
4344
 
4271
4345
  // src/components/loading/device-card-skeleton.tsx
4272
4346
  init_cn();
4273
- import { jsx as jsx36, jsxs as jsxs31 } from "react/jsx-runtime";
4347
+ import { jsx as jsx37, jsxs as jsxs32 } from "react/jsx-runtime";
4274
4348
  function DeviceCardSkeleton({ className }) {
4275
- return /* @__PURE__ */ jsxs31(
4349
+ return /* @__PURE__ */ jsxs32(
4276
4350
  "div",
4277
4351
  {
4278
4352
  className: cn(
@@ -4282,19 +4356,19 @@ function DeviceCardSkeleton({ className }) {
4282
4356
  role: "status",
4283
4357
  "aria-label": "Loading device card",
4284
4358
  children: [
4285
- /* @__PURE__ */ jsxs31("div", { className: "flex gap-4 items-center px-4 py-3", children: [
4286
- /* @__PURE__ */ jsx36("div", { className: "w-8 h-8 bg-ods-bg border border-ods-border rounded-[6px] flex items-center justify-center flex-shrink-0", children: /* @__PURE__ */ jsx36("div", { className: "w-4 h-4 bg-ods-border rounded animate-pulse" }) }),
4287
- /* @__PURE__ */ jsx36("div", { className: "flex-1 min-w-0", children: /* @__PURE__ */ jsx36("div", { className: "h-6 w-3/4 bg-ods-border rounded animate-pulse" }) }),
4288
- /* @__PURE__ */ jsx36("div", { className: "w-12 h-12 bg-ods-border rounded-[6px] flex-shrink-0 animate-pulse" })
4359
+ /* @__PURE__ */ jsxs32("div", { className: "flex gap-4 items-center px-4 py-3", children: [
4360
+ /* @__PURE__ */ jsx37("div", { className: "w-8 h-8 bg-ods-bg border border-ods-border rounded-[6px] flex items-center justify-center flex-shrink-0", children: /* @__PURE__ */ jsx37("div", { className: "w-4 h-4 bg-ods-border rounded animate-pulse" }) }),
4361
+ /* @__PURE__ */ jsx37("div", { className: "flex-1 min-w-0", children: /* @__PURE__ */ jsx37("div", { className: "h-6 w-3/4 bg-ods-border rounded animate-pulse" }) }),
4362
+ /* @__PURE__ */ jsx37("div", { className: "w-12 h-12 bg-ods-border rounded-[6px] flex-shrink-0 animate-pulse" })
4289
4363
  ] }),
4290
- /* @__PURE__ */ jsxs31("div", { className: "flex gap-4 items-center px-4 py-2", children: [
4291
- /* @__PURE__ */ jsx36("div", { className: "w-24 h-6 bg-ods-border rounded flex-shrink-0 animate-pulse" }),
4292
- /* @__PURE__ */ jsx36(OrganizationIconSkeleton, { size: "sm" }),
4293
- /* @__PURE__ */ jsx36("div", { className: "flex-1 min-w-0", children: /* @__PURE__ */ jsx36("div", { className: "h-5 w-1/2 bg-ods-border rounded animate-pulse" }) })
4364
+ /* @__PURE__ */ jsxs32("div", { className: "flex gap-4 items-center px-4 py-2", children: [
4365
+ /* @__PURE__ */ jsx37("div", { className: "w-24 h-6 bg-ods-border rounded flex-shrink-0 animate-pulse" }),
4366
+ /* @__PURE__ */ jsx37(OrganizationIconSkeleton, { size: "sm" }),
4367
+ /* @__PURE__ */ jsx37("div", { className: "flex-1 min-w-0", children: /* @__PURE__ */ jsx37("div", { className: "h-5 w-1/2 bg-ods-border rounded animate-pulse" }) })
4294
4368
  ] }),
4295
- /* @__PURE__ */ jsxs31("div", { className: "flex gap-4 items-center px-4 py-2", children: [
4296
- /* @__PURE__ */ jsx36("div", { className: "w-20 h-6 bg-ods-border rounded-full flex-shrink-0 animate-pulse" }),
4297
- /* @__PURE__ */ jsx36("div", { className: "flex-1", children: /* @__PURE__ */ jsx36("div", { className: "h-5 w-40 bg-ods-border rounded animate-pulse" }) })
4369
+ /* @__PURE__ */ jsxs32("div", { className: "flex gap-4 items-center px-4 py-2", children: [
4370
+ /* @__PURE__ */ jsx37("div", { className: "w-20 h-6 bg-ods-border rounded-full flex-shrink-0 animate-pulse" }),
4371
+ /* @__PURE__ */ jsx37("div", { className: "flex-1", children: /* @__PURE__ */ jsx37("div", { className: "h-5 w-40 bg-ods-border rounded animate-pulse" }) })
4298
4372
  ] })
4299
4373
  ]
4300
4374
  }
@@ -4304,7 +4378,7 @@ function DeviceCardSkeletonGrid({
4304
4378
  count = 12,
4305
4379
  className
4306
4380
  }) {
4307
- return /* @__PURE__ */ jsx36(
4381
+ return /* @__PURE__ */ jsx37(
4308
4382
  "div",
4309
4383
  {
4310
4384
  className: cn(
@@ -4313,22 +4387,22 @@ function DeviceCardSkeletonGrid({
4313
4387
  ),
4314
4388
  role: "status",
4315
4389
  "aria-label": `Loading ${count} device cards`,
4316
- children: Array.from({ length: count }, (_, index) => /* @__PURE__ */ jsx36(DeviceCardSkeleton, {}, index))
4390
+ children: Array.from({ length: count }, (_, index) => /* @__PURE__ */ jsx37(DeviceCardSkeleton, {}, index))
4317
4391
  }
4318
4392
  );
4319
4393
  }
4320
4394
 
4321
4395
  // src/components/vendor-page-skeleton.tsx
4322
- import { jsx as jsx37 } from "react/jsx-runtime";
4396
+ import { jsx as jsx38 } from "react/jsx-runtime";
4323
4397
  function VendorPageSkeleton() {
4324
- return /* @__PURE__ */ jsx37(VendorDetailLayoutSkeleton, {});
4398
+ return /* @__PURE__ */ jsx38(VendorDetailLayoutSkeleton, {});
4325
4399
  }
4326
4400
 
4327
4401
  // src/components/why-it-matters.tsx
4328
- import { jsx as jsx38, jsxs as jsxs32 } from "react/jsx-runtime";
4402
+ import { jsx as jsx39, jsxs as jsxs33 } from "react/jsx-runtime";
4329
4403
 
4330
4404
  // src/components/yes-no-display.tsx
4331
- import { jsx as jsx39, jsxs as jsxs33 } from "react/jsx-runtime";
4405
+ import { jsx as jsx40, jsxs as jsxs34 } from "react/jsx-runtime";
4332
4406
  function YesNoDisplay({
4333
4407
  value,
4334
4408
  yesText = "Yes",
@@ -4337,20 +4411,20 @@ function YesNoDisplay({
4337
4411
  className = ""
4338
4412
  }) {
4339
4413
  if (customText) {
4340
- return /* @__PURE__ */ jsxs33("div", { className: `flex items-center gap-2 ${className}`, children: [
4341
- /* @__PURE__ */ jsx39(CheckCircleIcon2, { className: "h-6 w-6" }),
4342
- /* @__PURE__ */ jsx39("span", { className: "text-ods-text-primary text-h6", children: customText })
4414
+ return /* @__PURE__ */ jsxs34("div", { className: `flex items-center gap-2 ${className}`, children: [
4415
+ /* @__PURE__ */ jsx40(CheckCircleIcon2, { className: "h-6 w-6" }),
4416
+ /* @__PURE__ */ jsx40("span", { className: "text-ods-text-primary text-h6", children: customText })
4343
4417
  ] });
4344
4418
  }
4345
4419
  if (value) {
4346
- return /* @__PURE__ */ jsxs33("div", { className: `flex items-center gap-2 ${className}`, children: [
4347
- /* @__PURE__ */ jsx39(CheckCircleIcon2, { className: "h-6 w-6" }),
4348
- /* @__PURE__ */ jsx39("span", { className: "text-ods-text-primary text-h6", children: yesText })
4420
+ return /* @__PURE__ */ jsxs34("div", { className: `flex items-center gap-2 ${className}`, children: [
4421
+ /* @__PURE__ */ jsx40(CheckCircleIcon2, { className: "h-6 w-6" }),
4422
+ /* @__PURE__ */ jsx40("span", { className: "text-ods-text-primary text-h6", children: yesText })
4349
4423
  ] });
4350
4424
  }
4351
- return /* @__PURE__ */ jsxs33("div", { className: `flex items-center gap-2 ${className}`, children: [
4352
- /* @__PURE__ */ jsx39(XCircleIcon, { className: "h-6 w-6" }),
4353
- /* @__PURE__ */ jsx39("span", { className: "text-ods-text-secondary text-h6", children: noText })
4425
+ return /* @__PURE__ */ jsxs34("div", { className: `flex items-center gap-2 ${className}`, children: [
4426
+ /* @__PURE__ */ jsx40(XCircleIcon, { className: "h-6 w-6" }),
4427
+ /* @__PURE__ */ jsx40("span", { className: "text-ods-text-secondary text-h6", children: noText })
4354
4428
  ] });
4355
4429
  }
4356
4430
  function evaluateFeatureValue(value, dataType) {
@@ -4384,15 +4458,15 @@ function evaluateFeatureValue(value, dataType) {
4384
4458
  }
4385
4459
 
4386
4460
  // src/components/made-with-love.tsx
4387
- import { useState as useState5, useEffect as useEffect4 } from "react";
4388
- import { jsx as jsx40, jsxs as jsxs34 } from "react/jsx-runtime";
4461
+ import { useState as useState6, useEffect as useEffect4 } from "react";
4462
+ import { jsx as jsx41, jsxs as jsxs35 } from "react/jsx-runtime";
4389
4463
  function MadeWithLove({
4390
4464
  className = "",
4391
4465
  size = "md",
4392
4466
  showOnMobile = true
4393
4467
  }) {
4394
- const [isMobile, setIsMobile] = useState5(false);
4395
- const [isHovered, setIsHovered] = useState5(false);
4468
+ const [isMobile, setIsMobile] = useState6(false);
4469
+ const [isHovered, setIsHovered] = useState6(false);
4396
4470
  useEffect4(() => {
4397
4471
  const checkMobile = () => {
4398
4472
  setIsMobile(window.innerWidth < 640);
@@ -4459,14 +4533,14 @@ function MadeWithLove({
4459
4533
  marginLeft: "4px",
4460
4534
  textDecoration: "none"
4461
4535
  };
4462
- return /* @__PURE__ */ jsxs34(
4536
+ return /* @__PURE__ */ jsxs35(
4463
4537
  "div",
4464
4538
  {
4465
4539
  style: containerStyle,
4466
4540
  className,
4467
4541
  children: [
4468
4542
  "Made with love by",
4469
- /* @__PURE__ */ jsxs34(
4543
+ /* @__PURE__ */ jsxs35(
4470
4544
  "a",
4471
4545
  {
4472
4546
  href: flamingoUrl,
@@ -4476,14 +4550,14 @@ function MadeWithLove({
4476
4550
  onMouseEnter: () => setIsHovered(true),
4477
4551
  onMouseLeave: () => setIsHovered(false),
4478
4552
  children: [
4479
- /* @__PURE__ */ jsx40("div", { style: logoStyle, children: /* @__PURE__ */ jsx40(
4553
+ /* @__PURE__ */ jsx41("div", { style: logoStyle, children: /* @__PURE__ */ jsx41(
4480
4554
  FlamingoLogo2,
4481
4555
  {
4482
4556
  size: config.logoSize,
4483
4557
  color: "#f357bb"
4484
4558
  }
4485
4559
  ) }),
4486
- /* @__PURE__ */ jsx40("span", { style: textStyle, children: "Flamingo" })
4560
+ /* @__PURE__ */ jsx41("span", { style: textStyle, children: "Flamingo" })
4487
4561
  ]
4488
4562
  }
4489
4563
  )
@@ -4495,7 +4569,7 @@ function MadeWithLove({
4495
4569
  // src/components/date-time-picker.tsx
4496
4570
  init_cn();
4497
4571
  import DatePicker2 from "react-datepicker";
4498
- import { jsx as jsx41, jsxs as jsxs35 } from "react/jsx-runtime";
4572
+ import { jsx as jsx42, jsxs as jsxs36 } from "react/jsx-runtime";
4499
4573
  var inputClassName = cn(
4500
4574
  "flex h-10 w-full rounded-md border px-3 py-2 text-sm ring-offset-background",
4501
4575
  "file:border-0 file:bg-transparent file:text-sm file:font-medium",
@@ -4519,9 +4593,9 @@ function DateTimePicker({
4519
4593
  timeIntervals = 15,
4520
4594
  dateFormat = "MMMM d, yyyy h:mm aa"
4521
4595
  }) {
4522
- return /* @__PURE__ */ jsxs35("div", { className: cn("space-y-2", className), children: [
4523
- label && /* @__PURE__ */ jsx41(Label, { className: "text-h5 font-semibold text-ods-text-secondary", children: label }),
4524
- /* @__PURE__ */ jsx41("div", { className: "w-full", children: /* @__PURE__ */ jsx41(
4596
+ return /* @__PURE__ */ jsxs36("div", { className: cn("space-y-2", className), children: [
4597
+ label && /* @__PURE__ */ jsx42(Label, { className: "text-h5 font-semibold text-ods-text-secondary", children: label }),
4598
+ /* @__PURE__ */ jsx42("div", { className: "w-full", children: /* @__PURE__ */ jsx42(
4525
4599
  DatePicker2,
4526
4600
  {
4527
4601
  selected: value,
@@ -4536,7 +4610,7 @@ function DateTimePicker({
4536
4610
  className: inputClassName
4537
4611
  }
4538
4612
  ) }),
4539
- /* @__PURE__ */ jsx41("style", { dangerouslySetInnerHTML: { __html: `
4613
+ /* @__PURE__ */ jsx42("style", { dangerouslySetInnerHTML: { __html: `
4540
4614
  .react-datepicker-wrapper {
4541
4615
  width: 100% !important;
4542
4616
  display: block !important;
@@ -4641,7 +4715,7 @@ function DateTimePicker({
4641
4715
 
4642
4716
  // src/components/authors/author-detail-view.tsx
4643
4717
  init_cn();
4644
- import { jsx as jsx42, jsxs as jsxs36 } from "react/jsx-runtime";
4718
+ import { jsx as jsx43, jsxs as jsxs37 } from "react/jsx-runtime";
4645
4719
  function AuthorDetailView({
4646
4720
  author,
4647
4721
  proxyImageUrl,
@@ -4656,9 +4730,9 @@ function AuthorDetailView({
4656
4730
  }) ?? author.avatarUrl : null;
4657
4731
  const subtitle = [author.jobTitle, author.company].filter(Boolean).join(" @ ");
4658
4732
  const bioText = formatBioText(author.about);
4659
- return /* @__PURE__ */ jsxs36("div", { className: cn("flex flex-col gap-5 md:gap-6", className), children: [
4660
- /* @__PURE__ */ jsxs36("div", { className: "flex gap-6 w-full items-start", children: [
4661
- /* @__PURE__ */ jsx42("div", { className: "relative shrink-0 h-24 w-24", children: /* @__PURE__ */ jsx42("div", { className: "rounded-full overflow-hidden bg-ods-bg-surface border border-ods-border w-full h-full relative", children: proxiedAvatar ? /* @__PURE__ */ jsx42(
4733
+ return /* @__PURE__ */ jsxs37("div", { className: cn("flex flex-col gap-5 md:gap-6", className), children: [
4734
+ /* @__PURE__ */ jsxs37("div", { className: "flex gap-6 w-full items-start", children: [
4735
+ /* @__PURE__ */ jsx43("div", { className: "relative shrink-0 h-24 w-24", children: /* @__PURE__ */ jsx43("div", { className: "rounded-full overflow-hidden bg-ods-bg-surface border border-ods-border w-full h-full relative", children: proxiedAvatar ? /* @__PURE__ */ jsx43(
4662
4736
  next_image_default,
4663
4737
  {
4664
4738
  src: proxiedAvatar,
@@ -4667,12 +4741,12 @@ function AuthorDetailView({
4667
4741
  className: "object-cover",
4668
4742
  unoptimized: true
4669
4743
  }
4670
- ) : /* @__PURE__ */ jsx42("div", { className: "flex items-center justify-center h-full w-full text-3xl text-ods-text-secondary font-heading", children: author.fullName.charAt(0).toUpperCase() }) }) }),
4671
- /* @__PURE__ */ jsxs36("div", { className: "min-w-0 flex flex-col justify-center gap-2", children: [
4672
- /* @__PURE__ */ jsx42("p", { className: "text-h2 text-ods-text-primary leading-none truncate", children: author.fullName }),
4673
- subtitle && /* @__PURE__ */ jsx42("p", { className: "font-body text-lg text-ods-text-secondary leading-none truncate", children: subtitle }),
4744
+ ) : /* @__PURE__ */ jsx43("div", { className: "flex items-center justify-center h-full w-full text-3xl text-ods-text-secondary font-heading", children: author.fullName.charAt(0).toUpperCase() }) }) }),
4745
+ /* @__PURE__ */ jsxs37("div", { className: "min-w-0 flex flex-col justify-center gap-2", children: [
4746
+ /* @__PURE__ */ jsx43("p", { className: "text-h2 text-ods-text-primary leading-none truncate", children: author.fullName }),
4747
+ subtitle && /* @__PURE__ */ jsx43("p", { className: "font-body text-lg text-ods-text-secondary leading-none truncate", children: subtitle }),
4674
4748
  author.socialLinks.length > 0 && // Ghost compact row (transparent 32px) — metadata, not CTAs.
4675
- /* @__PURE__ */ jsx42(
4749
+ /* @__PURE__ */ jsx43(
4676
4750
  SocialIconRow,
4677
4751
  {
4678
4752
  compact: true,
@@ -4685,8 +4759,8 @@ function AuthorDetailView({
4685
4759
  )
4686
4760
  ] })
4687
4761
  ] }),
4688
- bioText && /* @__PURE__ */ jsx42("p", { className: "text-h6 text-ods-text-secondary", children: bioText }),
4689
- author.knowsAbout.length > 0 && /* @__PURE__ */ jsx42("div", { className: "flex flex-wrap gap-2", children: author.knowsAbout.map((topic) => /* @__PURE__ */ jsx42(StatusBadge, { text: topic, variant: "button", colorScheme: "cyan", singleLine: true }, topic)) }),
4762
+ bioText && /* @__PURE__ */ jsx43("p", { className: "text-h6 text-ods-text-secondary", children: bioText }),
4763
+ author.knowsAbout.length > 0 && /* @__PURE__ */ jsx43("div", { className: "flex flex-wrap gap-2", children: author.knowsAbout.map((topic) => /* @__PURE__ */ jsx43(StatusBadge, { text: topic, variant: "button", colorScheme: "cyan", singleLine: true }, topic)) }),
4690
4764
  children
4691
4765
  ] });
4692
4766
  }
@@ -4824,6 +4898,7 @@ export {
4824
4898
  COMPACT_CARD_TEXT_COL,
4825
4899
  COMPACT_CARD_TITLE,
4826
4900
  COMPACT_CARD_TITLE_ROW,
4901
+ COMPACT_ROW_MIN_HEIGHT_PX,
4827
4902
  CONNECTION_STATUS,
4828
4903
  CONTEXT_BACK_CLASS,
4829
4904
  CONTEXT_ICON_CLASS,
@@ -4894,6 +4969,7 @@ export {
4894
4969
  CheckboxWithDescription,
4895
4970
  ChevronButton,
4896
4971
  CircularProgress,
4972
+ ClaudeEmbed,
4897
4973
  ClaudeIcon,
4898
4974
  ClickUpIcon,
4899
4975
  ClickUpTasksManager,
@@ -4907,6 +4983,7 @@ export {
4907
4983
  CommandBlock,
4908
4984
  CommandBox,
4909
4985
  CommentCard,
4986
+ CommentComposer,
4910
4987
  CommentSkeleton,
4911
4988
  CommunityHubIcon,
4912
4989
  CommunityIcon,