@flamingo-stack/openframe-frontend-core 0.0.853 → 0.0.855

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 (214) hide show
  1. package/dist/build/export-map.json +1 -1
  2. package/dist/{case-study-card-WP5Z234Q.cjs → case-study-card-6VAMNHLU.cjs} +8 -8
  3. package/dist/{chunk-2W22LY3W.cjs → chunk-2JCA7BRK.cjs} +19 -19
  4. package/dist/{chunk-53QPG7SJ.cjs → chunk-2MCPK6AX.cjs} +28 -28
  5. package/dist/{chunk-QOW2GP3V.cjs → chunk-2P72KAG5.cjs} +23 -23
  6. package/dist/{chunk-NMWLXHFH.cjs → chunk-3GJ75OUL.cjs} +183 -183
  7. package/dist/{chunk-P63CRPWI.cjs → chunk-4H3J57AN.cjs} +25 -25
  8. package/dist/{chunk-6GWRPW6B.cjs → chunk-5NK3FUHY.cjs} +4 -4
  9. package/dist/{chunk-DLTPSP5F.cjs → chunk-5TYG5JNB.cjs} +2 -2
  10. package/dist/{chunk-EIACEY2L.cjs → chunk-65NMKAPQ.cjs} +12 -12
  11. package/dist/{chunk-IGVAPIEW.cjs → chunk-6C4OR4MZ.cjs} +2 -2
  12. package/dist/{chunk-GG466XFQ.cjs → chunk-6DMH4GXN.cjs} +30 -5
  13. package/dist/{chunk-EF2FZ7GT.cjs → chunk-6VVQJU76.cjs} +54 -54
  14. package/dist/{chunk-G7GF4PWA.cjs → chunk-77GX573I.cjs} +9 -9
  15. package/dist/{chunk-7RZHSBNX.cjs → chunk-AOOHJLXS.cjs} +90 -90
  16. package/dist/{chunk-O3EKOXFZ.cjs → chunk-AYMY2VNB.cjs} +37 -43
  17. package/dist/{chunk-67CZ2Q5K.cjs → chunk-BSPIGZCC.cjs} +36 -36
  18. package/dist/{chunk-FW7RKWPY.cjs → chunk-D6GEMVHD.cjs} +3 -3
  19. package/dist/{chunk-KEV6F3QN.cjs → chunk-DPNFI5XM.cjs} +100 -100
  20. package/dist/{chunk-6V2M2X3M.cjs → chunk-DTZ6KASI.cjs} +6 -6
  21. package/dist/{chunk-SSKMGH5O.cjs → chunk-DXVGGWLG.cjs} +10 -10
  22. package/dist/{chunk-IO6NN3SL.cjs → chunk-EOUEUYCQ.cjs} +54 -54
  23. package/dist/{chunk-5RMBLOJ5.cjs → chunk-ESGE7CUX.cjs} +14 -14
  24. package/dist/{chunk-ETZFBB7O.cjs → chunk-EXQSIX2I.cjs} +4 -4
  25. package/dist/{chunk-IC4IJJB2.cjs → chunk-F33EAPD2.cjs} +124 -124
  26. package/dist/{chunk-COWMXUHN.cjs → chunk-GK577ZLJ.cjs} +6 -14
  27. package/dist/{chunk-E4MFQKPC.cjs → chunk-GZYRDLJW.cjs} +103 -103
  28. package/dist/{chunk-LFEURIZN.cjs → chunk-HML3JUXF.cjs} +324 -322
  29. package/dist/{chunk-BNHTBLAG.cjs → chunk-J3CFRGZ2.cjs} +17 -17
  30. package/dist/{chunk-USPUZO53.cjs → chunk-KZAQPRTA.cjs} +9 -11
  31. package/dist/{chunk-HTYJUMFB.cjs → chunk-LSLRJJFP.cjs} +2 -2
  32. package/dist/{chunk-TBGQMHCG.cjs → chunk-MINFN3IG.cjs} +8 -8
  33. package/dist/{chunk-KHOB3TES.cjs → chunk-MX52LZ6M.cjs} +6 -6
  34. package/dist/{chunk-OH5TXFRR.cjs → chunk-O4CPT3RK.cjs} +7 -7
  35. package/dist/{chunk-HF3V6WBJ.cjs → chunk-OTHQ2KQW.cjs} +3 -3
  36. package/dist/{chunk-IUDBG3HJ.cjs → chunk-PCQ2HKU3.cjs} +5 -5
  37. package/dist/{chunk-BNG6JOGZ.cjs → chunk-QPHXYE5P.cjs} +27 -27
  38. package/dist/{chunk-UO2EJGRJ.cjs → chunk-QZXCUY36.cjs} +53 -53
  39. package/dist/{chunk-COJG2ATY.cjs → chunk-RIJU4HZ2.cjs} +51 -55
  40. package/dist/{chunk-KKFDRCQF.cjs → chunk-RY7INTYU.cjs} +14 -1
  41. package/dist/{chunk-GI3MMBP3.cjs → chunk-SQ7YHWEP.cjs} +228 -15
  42. package/dist/{chunk-U767P4JU.cjs → chunk-STV6VJ3U.cjs} +21 -21
  43. package/dist/chunk-T54I5ZZY.cjs +62 -0
  44. package/dist/{chunk-UV45EPXN.cjs → chunk-TW5Y4D5I.cjs} +7 -7
  45. package/dist/{chunk-FX35L4Y6.cjs → chunk-XCQ5I27Z.cjs} +3 -3
  46. package/dist/{chunk-AZEO7HBB.cjs → chunk-Y44EF4JW.cjs} +2 -2
  47. package/dist/{chunk-W7OFAROY.cjs → chunk-YSXVRTGT.cjs} +9 -12
  48. package/dist/{chunk-GI6ECCWB.cjs → chunk-ZUGJLCYP.cjs} +1272 -856
  49. package/dist/{chunk-KNN2GCMW.cjs → chunk-ZYAVIRQV.cjs} +25 -25
  50. package/dist/{cloud-tenants-QUL2XPAS.cjs → cloud-tenants-2XFIDDGU.cjs} +28 -29
  51. package/dist/components/case-studies/index.cjs +44 -45
  52. package/dist/components/chat/chat-message-row.d.ts +1 -1
  53. package/dist/components/chat/chat-message-row.d.ts.map +1 -1
  54. package/dist/components/chat/chat-message-row.js +4 -4
  55. package/dist/components/chat/entity-cards/use-cover-image-fallback.d.ts +7 -13
  56. package/dist/components/chat/entity-cards/use-cover-image-fallback.d.ts.map +1 -1
  57. package/dist/components/chat/entity-cards/use-cover-image-fallback.js +2 -8
  58. package/dist/components/chat/hooks/use-chat-attachment-image-gallery.d.ts.map +1 -1
  59. package/dist/components/chat/hooks/use-chat-attachment-image-gallery.js +8 -4
  60. package/dist/components/chat/index.cjs +22 -23
  61. package/dist/components/contact/index.cjs +29 -30
  62. package/dist/components/docs/index.cjs +32 -33
  63. package/dist/components/embeds/index.cjs +29 -30
  64. package/dist/components/faq/index.cjs +30 -31
  65. package/dist/components/features/cloud-tenants/index.d.ts +7 -5
  66. package/dist/components/features/cloud-tenants/index.d.ts.map +1 -1
  67. package/dist/components/features/cloud-tenants/index.js +8 -1
  68. package/dist/components/features/cloud-tenants/single-customer-tenants-table-view.d.ts +26 -0
  69. package/dist/components/features/cloud-tenants/single-customer-tenants-table-view.d.ts.map +1 -0
  70. package/dist/components/features/cloud-tenants/single-customer-tenants-table-view.js +176 -0
  71. package/dist/components/features/cloud-tenants/tenant-access-cell.d.ts +4 -2
  72. package/dist/components/features/cloud-tenants/tenant-access-cell.d.ts.map +1 -1
  73. package/dist/components/features/cloud-tenants/tenant-access-cell.js +3 -2
  74. package/dist/components/features/cloud-tenants/tenant-customer-cell.d.ts +12 -5
  75. package/dist/components/features/cloud-tenants/tenant-customer-cell.d.ts.map +1 -1
  76. package/dist/components/features/cloud-tenants/tenant-customer-cell.js +38 -7
  77. package/dist/components/features/cloud-tenants/tenant-licenses-cell.d.ts +7 -0
  78. package/dist/components/features/cloud-tenants/tenant-licenses-cell.d.ts.map +1 -0
  79. package/dist/components/features/cloud-tenants/tenant-licenses-cell.js +17 -0
  80. package/dist/components/features/cloud-tenants/tenant-presentation.d.ts +19 -0
  81. package/dist/components/features/cloud-tenants/tenant-presentation.d.ts.map +1 -1
  82. package/dist/components/features/cloud-tenants/tenant-presentation.js +24 -3
  83. package/dist/components/features/cloud-tenants/tenant-row.d.ts +35 -8
  84. package/dist/components/features/cloud-tenants/tenant-row.d.ts.map +1 -1
  85. package/dist/components/features/cloud-tenants/tenants-table-columns.d.ts +9 -3
  86. package/dist/components/features/cloud-tenants/tenants-table-columns.d.ts.map +1 -1
  87. package/dist/components/features/cloud-tenants/tenants-table-columns.js +5 -3
  88. package/dist/components/features/cloud-tenants/tenants-table-view.d.ts +27 -6
  89. package/dist/components/features/cloud-tenants/tenants-table-view.d.ts.map +1 -1
  90. package/dist/components/features/cloud-tenants/tenants-table-view.js +75 -17
  91. package/dist/components/features/devices/device-directory.d.ts +18 -0
  92. package/dist/components/features/devices/device-directory.d.ts.map +1 -0
  93. package/dist/components/features/devices/device-directory.js +35 -0
  94. package/dist/components/features/devices/devices-filter-toolbar.d.ts +3 -1
  95. package/dist/components/features/devices/devices-filter-toolbar.d.ts.map +1 -1
  96. package/dist/components/features/devices/devices-filter-toolbar.js +2 -1
  97. package/dist/components/features/devices/devices-panel-view.d.ts +3 -1
  98. package/dist/components/features/devices/devices-panel-view.d.ts.map +1 -1
  99. package/dist/components/features/devices/devices-panel-view.js +11 -2
  100. package/dist/components/features/devices/devices-table-columns.d.ts +17 -3
  101. package/dist/components/features/devices/devices-table-columns.d.ts.map +1 -1
  102. package/dist/components/features/devices/devices-table-columns.js +80 -10
  103. package/dist/components/features/devices/index.d.ts +1 -0
  104. package/dist/components/features/devices/index.d.ts.map +1 -1
  105. package/dist/components/features/devices/index.js +8 -0
  106. package/dist/components/features/devices/types.d.ts +14 -0
  107. package/dist/components/features/devices/types.d.ts.map +1 -1
  108. package/dist/components/features/devices/use-tag-filter-modal.d.ts +1 -0
  109. package/dist/components/features/devices/use-tag-filter-modal.d.ts.map +1 -1
  110. package/dist/components/features/devices/use-tag-filter-modal.js +13 -8
  111. package/dist/components/features/index.cjs +42 -29
  112. package/dist/components/help-center-pages/index.cjs +134 -135
  113. package/dist/components/index.cjs +126 -113
  114. package/dist/components/meeting-scheduler/index.cjs +102 -103
  115. package/dist/components/navigation/app-layout.js +2 -2
  116. package/dist/components/navigation/index.cjs +31 -32
  117. package/dist/components/onboarding-guides/index.cjs +31 -32
  118. package/dist/components/product-demo/index.cjs +39 -40
  119. package/dist/components/related-content/index.cjs +16 -17
  120. package/dist/components/tickets/index.cjs +35 -36
  121. package/dist/components/ui/date-picker.d.ts +2 -0
  122. package/dist/components/ui/date-picker.d.ts.map +1 -1
  123. package/dist/components/ui/date-picker.js +19 -6
  124. package/dist/components/ui/entity-image.d.ts +1 -2
  125. package/dist/components/ui/entity-image.d.ts.map +1 -1
  126. package/dist/components/ui/entity-image.js +4 -8
  127. package/dist/components/ui/index.cjs +28 -29
  128. package/dist/components/ui/markdown/base-components.d.ts +0 -13
  129. package/dist/components/ui/markdown/base-components.d.ts.map +1 -1
  130. package/dist/components/ui/markdown/base-components.js +7 -7
  131. package/dist/components/ui/square-avatar.d.ts.map +1 -1
  132. package/dist/components/ui/square-avatar.js +3 -8
  133. package/dist/{devices-LNB4CYPP.cjs → devices-O3DYGIZB.cjs} +29 -30
  134. package/dist/embed-shims/index.cjs +3 -2
  135. package/dist/embed-shims/next-image.cjs +3 -2
  136. package/dist/embed-shims/next-image.d.ts +2 -0
  137. package/dist/embed-shims/next-image.d.ts.map +1 -1
  138. package/dist/embed-shims/next-image.js +14 -4
  139. package/dist/{embeddable-chat-SJEEJI4N.cjs → embeddable-chat-QD7NFD2H.cjs} +100 -101
  140. package/dist/hooks/index.cjs +27 -16
  141. package/dist/hooks/index.d.ts +1 -0
  142. package/dist/hooks/index.d.ts.map +1 -1
  143. package/dist/hooks/index.js +1 -0
  144. package/dist/hooks/ui/use-content-breakpoint.d.ts +8 -0
  145. package/dist/hooks/ui/use-content-breakpoint.d.ts.map +1 -1
  146. package/dist/hooks/ui/use-content-breakpoint.js +17 -3
  147. package/dist/hooks/ui/use-media-query.d.ts +1 -0
  148. package/dist/hooks/ui/use-media-query.d.ts.map +1 -1
  149. package/dist/hooks/ui/use-media-query.js +3 -1
  150. package/dist/hooks/use-authed-asset-src.d.ts +77 -2
  151. package/dist/hooks/use-authed-asset-src.d.ts.map +1 -1
  152. package/dist/hooks/use-authed-asset-src.js +185 -73
  153. package/dist/hooks/use-authed-image-src.d.ts +11 -4
  154. package/dist/hooks/use-authed-image-src.d.ts.map +1 -1
  155. package/dist/hooks/use-authed-image-src.js +6 -2
  156. package/dist/hooks/use-image-fallback.d.ts +16 -0
  157. package/dist/hooks/use-image-fallback.d.ts.map +1 -0
  158. package/dist/hooks/use-image-fallback.js +14 -0
  159. package/dist/index.cjs +58 -36
  160. package/dist/{knowledge-UTWKB6XG.cjs → knowledge-K7AFNZNO.cjs} +29 -30
  161. package/dist/{logs-PMXIWMBQ.cjs → logs-MZ3BR2FR.cjs} +35 -36
  162. package/dist/{policies-6DCMFDL7.cjs → policies-XVKQ2W7S.cjs} +32 -33
  163. package/dist/{remote-session-SG44CNOK.cjs → remote-session-VOZJXDM4.cjs} +13 -14
  164. package/dist/{scripts-2G7LXW7Z.cjs → scripts-IBPMBS6G.cjs} +35 -36
  165. package/dist/{software-update-MYLKHDHC.cjs → software-update-PXTANMAO.cjs} +32 -33
  166. package/dist/{tickets-board-SQY2Y6QV.cjs → tickets-board-POYZS7BW.cjs} +16 -17
  167. package/dist/utils/app-origins.d.ts +3 -6
  168. package/dist/utils/app-origins.d.ts.map +1 -1
  169. package/dist/utils/app-origins.js +8 -1
  170. package/dist/utils/embed-authed-fetch.d.ts +46 -26
  171. package/dist/utils/embed-authed-fetch.d.ts.map +1 -1
  172. package/dist/utils/embed-authed-fetch.js +24 -8
  173. package/dist/utils/index.cjs +4 -1
  174. package/dist/utils/presentation-for.d.ts +6 -0
  175. package/dist/utils/presentation-for.d.ts.map +1 -0
  176. package/dist/utils/presentation-for.js +7 -0
  177. package/dist/{video-file-player-XMOB234V.cjs → video-file-player-RIOT24NT.cjs} +3 -4
  178. package/package.json +1 -1
  179. package/src/components/chat/chat-message-row.tsx +8 -7
  180. package/src/components/chat/entity-cards/use-cover-image-fallback.ts +8 -28
  181. package/src/components/chat/hooks/use-chat-attachment-image-gallery.tsx +19 -8
  182. package/src/components/features/cloud-tenants/index.ts +8 -3
  183. package/src/components/features/cloud-tenants/single-customer-tenants-table-view.tsx +234 -0
  184. package/src/components/features/cloud-tenants/tenant-access-cell.tsx +12 -5
  185. package/src/components/features/cloud-tenants/tenant-customer-cell.tsx +48 -12
  186. package/src/components/features/cloud-tenants/tenant-licenses-cell.tsx +28 -0
  187. package/src/components/features/cloud-tenants/tenant-presentation.ts +46 -4
  188. package/src/components/features/cloud-tenants/tenant-row.ts +38 -8
  189. package/src/components/features/cloud-tenants/tenants-table-columns.ts +8 -5
  190. package/src/components/features/cloud-tenants/tenants-table-view.tsx +123 -28
  191. package/src/components/features/devices/device-directory.ts +55 -0
  192. package/src/components/features/devices/devices-filter-toolbar.tsx +4 -1
  193. package/src/components/features/devices/devices-panel-view.tsx +12 -2
  194. package/src/components/features/devices/devices-table-columns.tsx +123 -8
  195. package/src/components/features/devices/index.ts +7 -0
  196. package/src/components/features/devices/types.ts +14 -0
  197. package/src/components/features/devices/use-tag-filter-modal.ts +32 -14
  198. package/src/components/navigation/app-layout.tsx +4 -4
  199. package/src/components/ui/date-picker.tsx +21 -3
  200. package/src/components/ui/entity-image.tsx +4 -12
  201. package/src/components/ui/markdown/base-components.tsx +15 -20
  202. package/src/components/ui/square-avatar.tsx +5 -8
  203. package/src/embed-shims/next-image.tsx +34 -3
  204. package/src/hooks/index.ts +1 -0
  205. package/src/hooks/ui/use-content-breakpoint.ts +21 -2
  206. package/src/hooks/ui/use-media-query.ts +1 -0
  207. package/src/hooks/use-authed-asset-src.ts +323 -107
  208. package/src/hooks/use-authed-image-src.ts +15 -5
  209. package/src/hooks/use-image-fallback.ts +31 -0
  210. package/src/utils/app-origins.ts +12 -7
  211. package/src/utils/embed-authed-fetch.ts +71 -32
  212. package/src/utils/presentation-for.ts +10 -0
  213. package/dist/chunk-UAI4VMEF.cjs +0 -46
  214. package/dist/chunk-YSDB6HGQ.cjs +0 -102
@@ -1,12 +1,12 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }"use client";
2
2
 
3
3
 
4
- var _chunkUO2EJGRJcjs = require('./chunk-UO2EJGRJ.cjs');
4
+ var _chunkQZXCUY36cjs = require('./chunk-QZXCUY36.cjs');
5
5
 
6
6
 
7
7
 
8
8
 
9
- var _chunkIC4IJJB2cjs = require('./chunk-IC4IJJB2.cjs');
9
+ var _chunkF33EAPD2cjs = require('./chunk-F33EAPD2.cjs');
10
10
 
11
11
 
12
12
  var _chunkSXGDKNVEcjs = require('./chunk-SXGDKNVE.cjs');
@@ -47,19 +47,19 @@ var _chunk5OG5ZTNMcjs = require('./chunk-5OG5ZTNM.cjs');
47
47
 
48
48
 
49
49
 
50
- var _chunkNMWLXHFHcjs = require('./chunk-NMWLXHFH.cjs');
50
+ var _chunk3GJ75OULcjs = require('./chunk-3GJ75OUL.cjs');
51
51
 
52
52
 
53
- var _chunkW7OFAROYcjs = require('./chunk-W7OFAROY.cjs');
53
+ var _chunkYSXVRTGTcjs = require('./chunk-YSXVRTGT.cjs');
54
54
 
55
55
 
56
- var _chunkO3EKOXFZcjs = require('./chunk-O3EKOXFZ.cjs');
56
+ var _chunkAYMY2VNBcjs = require('./chunk-AYMY2VNB.cjs');
57
57
 
58
58
 
59
- var _chunkKKFDRCQFcjs = require('./chunk-KKFDRCQF.cjs');
59
+ var _chunkRY7INTYUcjs = require('./chunk-RY7INTYU.cjs');
60
60
 
61
61
 
62
- var _chunkGG466XFQcjs = require('./chunk-GG466XFQ.cjs');
62
+ var _chunk6DMH4GXNcjs = require('./chunk-6DMH4GXN.cjs');
63
63
 
64
64
 
65
65
  var _chunkPMUCEUFQcjs = require('./chunk-PMUCEUFQ.cjs');
@@ -172,31 +172,31 @@ CveLink.displayName = "CveLink";
172
172
  // src/components/platform/ShellTypeBadge.tsx
173
173
 
174
174
  var shellIconMap = {
175
- [_chunkIC4IJJB2cjs.ShellTypeValues.POWERSHELL]: {
175
+ [_chunkF33EAPD2cjs.ShellTypeValues.POWERSHELL]: {
176
176
  icon: _chunkMCQY746Mcjs.PowershellLogoGreyIcon,
177
177
  props: { size: 16, className: "text-ods-text-secondary" }
178
178
  },
179
- [_chunkIC4IJJB2cjs.ShellTypeValues.CMD]: {
179
+ [_chunkF33EAPD2cjs.ShellTypeValues.CMD]: {
180
180
  icon: _chunkUXUYT4WKcjs.CmdIcon,
181
181
  props: { size: 16, color: "var(--color-text-secondary)" }
182
182
  },
183
- [_chunkIC4IJJB2cjs.ShellTypeValues.BASH]: {
183
+ [_chunkF33EAPD2cjs.ShellTypeValues.BASH]: {
184
184
  icon: _chunk5OG5ZTNMcjs.BashIcon,
185
185
  props: { size: 16, color: "var(--color-text-secondary)" }
186
186
  },
187
- [_chunkIC4IJJB2cjs.ShellTypeValues.PYTHON]: {
187
+ [_chunkF33EAPD2cjs.ShellTypeValues.PYTHON]: {
188
188
  icon: _chunkBF77UKGDcjs.PythonLogoIcon,
189
189
  props: { size: 16, className: "text-ods-text-secondary" }
190
190
  },
191
- [_chunkIC4IJJB2cjs.ShellTypeValues.NUSHELL]: {
191
+ [_chunkF33EAPD2cjs.ShellTypeValues.NUSHELL]: {
192
192
  icon: _chunkG37H4CBTcjs.NushellIcon,
193
193
  props: { size: 16, color: "var(--color-text-secondary)" }
194
194
  },
195
- [_chunkIC4IJJB2cjs.ShellTypeValues.DENO]: {
195
+ [_chunkF33EAPD2cjs.ShellTypeValues.DENO]: {
196
196
  icon: _chunkHUL6SF5Acjs.DenoIcon,
197
197
  props: { size: 16, color: "var(--color-text-secondary)" }
198
198
  },
199
- [_chunkIC4IJJB2cjs.ShellTypeValues.SHELL]: {
199
+ [_chunkF33EAPD2cjs.ShellTypeValues.SHELL]: {
200
200
  icon: _chunk6RMATQNNcjs.ShellIcon,
201
201
  props: { size: 16, color: "var(--color-text-secondary)" }
202
202
  }
@@ -207,7 +207,7 @@ var defaultIconConfig = {
207
207
  };
208
208
  var ShellTypeBadge = ({ shellType, className, iconClassName }) => {
209
209
  const normalizedType = _optionalChain([shellType, 'optionalAccess', _ => _.toUpperCase, 'call', _2 => _2()]);
210
- const label = _chunkIC4IJJB2cjs.getShellLabel.call(void 0, normalizedType);
210
+ const label = _chunkF33EAPD2cjs.getShellLabel.call(void 0, normalizedType);
211
211
  const { icon: IconComponent, props: iconProps } = _nullishCoalesce(shellIconMap[normalizedType], () => ( defaultIconConfig));
212
212
  const defaultIconClassName = "className" in iconProps ? iconProps.className : void 0;
213
213
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk63A4GZMBcjs.cn.call(void 0, "flex items-center gap-1", className), children: [
@@ -223,21 +223,21 @@ function formatSupportedPlatforms(platforms) {
223
223
  if (!platforms || platforms.length === 0) {
224
224
  return "All Platforms";
225
225
  }
226
- return platforms.map((platform) => _chunkIC4IJJB2cjs.getOSLabel.call(void 0, platform)).join(", ");
226
+ return platforms.map((platform) => _chunkF33EAPD2cjs.getOSLabel.call(void 0, platform)).join(", ");
227
227
  }
228
228
  function InfoCell({ label, value, avatar, className }) {
229
229
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk63A4GZMBcjs.cn.call(void 0, "flex min-w-0 items-center gap-2", className), children: [
230
230
  avatar && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "relative size-8 shrink-0 overflow-hidden rounded-full border border-ods-border bg-ods-bg", children: avatar.photoUrl ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
231
- _chunkGG466XFQcjs.next_image_default,
231
+ _chunk6DMH4GXNcjs.next_image_default,
232
232
  {
233
233
  src: avatar.photoUrl,
234
234
  alt: avatar.name,
235
235
  className: "object-cover",
236
236
  fill: true,
237
- sizes: _chunkKKFDRCQFcjs.fixedImageSlot.call(void 0, "logo"),
237
+ sizes: _chunkRY7INTYUcjs.fixedImageSlot.call(void 0, "logo"),
238
238
  unoptimized: true
239
239
  }
240
- ) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex size-full items-center justify-center text-ods-text-secondary text-h6", children: avatar.initials || _chunkW7OFAROYcjs.nameInitials.call(void 0, avatar.name) }) }),
240
+ ) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex size-full items-center justify-center text-ods-text-secondary text-h6", children: avatar.initials || _chunkYSXVRTGTcjs.nameInitials.call(void 0, avatar.name) }) }),
241
241
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 flex-col", children: [
242
242
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "truncate text-ods-text-primary text-h4", title: value, children: value }),
243
243
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "truncate text-ods-text-secondary text-h6", children: label })
@@ -253,7 +253,7 @@ var ScriptInfoSection = ({
253
253
  author,
254
254
  className
255
255
  }) => {
256
- const shellLabel = _chunkIC4IJJB2cjs.getShellLabel.call(void 0, shellType);
256
+ const shellLabel = _chunkF33EAPD2cjs.getShellLabel.call(void 0, shellType);
257
257
  const platformsLabel = formatSupportedPlatforms(supportedPlatforms);
258
258
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk63A4GZMBcjs.cn.call(void 0, "overflow-hidden rounded-[6px] border border-ods-border bg-ods-card", className), children: [
259
259
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "border-b border-ods-border p-4", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-1", children: [
@@ -301,7 +301,7 @@ function OnboardingStepCard({
301
301
  onSkip();
302
302
  };
303
303
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
304
- _chunkNMWLXHFHcjs.InteractiveCard,
304
+ _chunk3GJ75OULcjs.InteractiveCard,
305
305
  {
306
306
  clickable: false,
307
307
  className: _chunk63A4GZMBcjs.cn.call(void 0,
@@ -327,7 +327,7 @@ function OnboardingStepCard({
327
327
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPMUCEUFQcjs.UnifiedSkeleton, { className: "h-[32px] w-[100px] rounded-[6px]" }),
328
328
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPMUCEUFQcjs.UnifiedSkeleton, { className: "h-[32px] w-[120px] rounded-[6px]" })
329
329
  ] }) : isCompleted ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
330
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkO3EKOXFZcjs.StatusBadge, { text: "COMPLETED", variant: "card", colorScheme: "success" }),
330
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkAYMY2VNBcjs.StatusBadge, { text: "COMPLETED", variant: "card", colorScheme: "success" }),
331
331
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
332
332
  _chunkFCZAUK4Dcjs.Button,
333
333
  {
@@ -338,7 +338,7 @@ function OnboardingStepCard({
338
338
  children: step.completedText
339
339
  }
340
340
  )
341
- ] }) : isSkipped ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _jsxruntime.Fragment, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkO3EKOXFZcjs.StatusBadge, { text: "SKIPPED", variant: "card", colorScheme: "default" }) }) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
341
+ ] }) : isSkipped ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _jsxruntime.Fragment, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkAYMY2VNBcjs.StatusBadge, { text: "SKIPPED", variant: "card", colorScheme: "default" }) }) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
342
342
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFCZAUK4Dcjs.Button, { variant: "outline", onClick: handleSkip, children: "Skip Step" }),
343
343
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFCZAUK4Dcjs.Button, { variant: "accent", onClick: handleAction, disabled: isProcessing, leftIcon: step.actionIcon("black"), children: step.actionText })
344
344
  ] })
@@ -374,7 +374,7 @@ function OnboardingWalkthrough({
374
374
  isStepSkipped,
375
375
  allStepsComplete,
376
376
  markMultipleComplete
377
- } = _chunkUO2EJGRJcjs.useOnboardingState.call(void 0, storageKey);
377
+ } = _chunkQZXCUY36cjs.useOnboardingState.call(void 0, storageKey);
378
378
  const hasAutoMarkedRef = _react.useRef.call(void 0, false);
379
379
  const autoMarkingInProgressRef = _react.useRef.call(void 0, false);
380
380
  const lastCompletionStatusRef = _react.useRef.call(void 0, null);
@@ -456,7 +456,7 @@ function OnboardingWalkthrough({
456
456
  const isAllComplete = allStepsComplete(steps);
457
457
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk63A4GZMBcjs.cn.call(void 0, "w-full space-y-4", className), children: [
458
458
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col items-start justify-between gap-3 md:flex-row md:items-center md:gap-0", children: [
459
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h2", { className: _chunkNMWLXHFHcjs.SECTION_HEADING_CLASS, children: _chunkNMWLXHFHcjs.accentSentenceMarks.call(void 0, title) }),
459
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h2", { className: _chunk3GJ75OULcjs.SECTION_HEADING_CLASS, children: _chunk3GJ75OULcjs.accentSentenceMarks.call(void 0, title) }),
460
460
  isLoadingCompletion ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPMUCEUFQcjs.UnifiedSkeleton, { className: "h-[48px] w-full rounded-[6px] md:w-[160px]" }) : isAllComplete ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFCZAUK4Dcjs.Button, { variant: "accent", onClick: handleDismiss, className: "w-full md:w-auto", children: "Close Onboarding" }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFCZAUK4Dcjs.Button, { variant: "outline", onClick: handleDismiss, className: "w-full md:w-auto", children: "Skip Onboarding" })
461
461
  ] }),
462
462
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunk63A4GZMBcjs.cn.call(void 0, spacing), children: steps.map((step) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -9,22 +9,22 @@ var _chunkLHV2R6QUcjs = require('./chunk-LHV2R6QU.cjs');
9
9
  var _chunkFDZOE5TLcjs = require('./chunk-FDZOE5TL.cjs');
10
10
 
11
11
 
12
- var _chunkGI6ECCWBcjs = require('./chunk-GI6ECCWB.cjs');
13
- require('./chunk-USPUZO53.cjs');
14
- require('./chunk-COJG2ATY.cjs');
15
- require('./chunk-P63CRPWI.cjs');
12
+ var _chunkZUGJLCYPcjs = require('./chunk-ZUGJLCYP.cjs');
13
+ require('./chunk-KZAQPRTA.cjs');
14
+ require('./chunk-RIJU4HZ2.cjs');
15
+ require('./chunk-4H3J57AN.cjs');
16
16
  require('./chunk-HQQE74RO.cjs');
17
17
  require('./chunk-DEY6XXGO.cjs');
18
- require('./chunk-UO2EJGRJ.cjs');
18
+ require('./chunk-QZXCUY36.cjs');
19
19
  require('./chunk-24I6RFVU.cjs');
20
- require('./chunk-IUDBG3HJ.cjs');
20
+ require('./chunk-PCQ2HKU3.cjs');
21
21
  require('./chunk-MZ4KBSH7.cjs');
22
22
  require('./chunk-ZZDFMUEU.cjs');
23
- require('./chunk-IC4IJJB2.cjs');
24
- require('./chunk-LFEURIZN.cjs');
23
+ require('./chunk-F33EAPD2.cjs');
24
+ require('./chunk-HML3JUXF.cjs');
25
25
  require('./chunk-OT6P57ZS.cjs');
26
- require('./chunk-EIACEY2L.cjs');
27
- require('./chunk-U767P4JU.cjs');
26
+ require('./chunk-65NMKAPQ.cjs');
27
+ require('./chunk-STV6VJ3U.cjs');
28
28
  require('./chunk-KXFIYO4O.cjs');
29
29
  require('./chunk-PGAMWM6C.cjs');
30
30
  require('./chunk-7HH4Y27U.cjs');
@@ -1817,22 +1817,22 @@ require('./chunk-LMBYZITR.cjs');
1817
1817
  require('./chunk-TMVC7S2R.cjs');
1818
1818
  require('./chunk-IYHH5EIO.cjs');
1819
1819
  require('./chunk-XIBCMGBW.cjs');
1820
- require('./chunk-OH5TXFRR.cjs');
1821
- require('./chunk-G7GF4PWA.cjs');
1822
- require('./chunk-FW7RKWPY.cjs');
1823
- require('./chunk-IGVAPIEW.cjs');
1820
+ require('./chunk-O4CPT3RK.cjs');
1821
+ require('./chunk-77GX573I.cjs');
1822
+ require('./chunk-D6GEMVHD.cjs');
1823
+ require('./chunk-6C4OR4MZ.cjs');
1824
1824
  require('./chunk-JKX2C3I2.cjs');
1825
1825
  require('./chunk-WWUSFOJ7.cjs');
1826
1826
  require('./chunk-SKI6NKOE.cjs');
1827
1827
  require('./chunk-EWPR7662.cjs');
1828
1828
  require('./chunk-IX2E3AN7.cjs');
1829
1829
  require('./chunk-7DNL734S.cjs');
1830
- require('./chunk-2W22LY3W.cjs');
1831
- require('./chunk-NMWLXHFH.cjs');
1832
- require('./chunk-HTYJUMFB.cjs');
1833
- require('./chunk-W7OFAROY.cjs');
1834
- require('./chunk-O3EKOXFZ.cjs');
1835
- require('./chunk-SSKMGH5O.cjs');
1830
+ require('./chunk-2JCA7BRK.cjs');
1831
+ require('./chunk-3GJ75OUL.cjs');
1832
+ require('./chunk-LSLRJJFP.cjs');
1833
+ require('./chunk-YSXVRTGT.cjs');
1834
+ require('./chunk-AYMY2VNB.cjs');
1835
+ require('./chunk-DXVGGWLG.cjs');
1836
1836
  require('./chunk-X432Y6RM.cjs');
1837
1837
  require('./chunk-S5C3OZCO.cjs');
1838
1838
  require('./chunk-32ASZMTV.cjs');
@@ -1842,15 +1842,14 @@ require('./chunk-6VOOPMP5.cjs');
1842
1842
  require('./chunk-ORO54HDF.cjs');
1843
1843
  require('./chunk-RUHKTWGB.cjs');
1844
1844
  require('./chunk-BLH2SFOO.cjs');
1845
- require('./chunk-UAI4VMEF.cjs');
1846
- require('./chunk-COWMXUHN.cjs');
1847
- require('./chunk-YSDB6HGQ.cjs');
1848
- require('./chunk-ETZFBB7O.cjs');
1849
- require('./chunk-FX35L4Y6.cjs');
1850
- require('./chunk-KKFDRCQF.cjs');
1845
+ require('./chunk-T54I5ZZY.cjs');
1846
+ require('./chunk-GK577ZLJ.cjs');
1847
+ require('./chunk-EXQSIX2I.cjs');
1848
+ require('./chunk-XCQ5I27Z.cjs');
1849
+ require('./chunk-RY7INTYU.cjs');
1851
1850
  require('./chunk-NTPX5GXI.cjs');
1852
- require('./chunk-GI3MMBP3.cjs');
1853
- require('./chunk-GG466XFQ.cjs');
1851
+ require('./chunk-6DMH4GXN.cjs');
1852
+ require('./chunk-SQ7YHWEP.cjs');
1854
1853
  require('./chunk-UJ7AXHRZ.cjs');
1855
1854
  require('./chunk-HXURNKXI.cjs');
1856
1855
  require('./chunk-VCFQHPOO.cjs');
@@ -1921,7 +1920,7 @@ var getHref = () => "#";
1921
1920
  function CloudTenantsScreen(_props) {
1922
1921
  const cast = _chunkLHV2R6QUcjs.useProductDemoCast.call(void 0, );
1923
1922
  const fixture = _react.useMemo.call(void 0, () => buildCloudTenantsFixture(cast), [cast]);
1924
- const table = /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGI6ECCWBcjs.TenantsTableView, { rows: fixture.rows, getHref, now: fixture.now });
1923
+ const table = /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZUGJLCYPcjs.TenantsTableView, { rows: fixture.rows, getHref, now: fixture.now });
1925
1924
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-full bg-ods-bg p-[var(--spacing-system-l)]", children: table });
1926
1925
  }
1927
1926
 
@@ -4,31 +4,31 @@
4
4
  var _chunkDTKGIG4Acjs = require('../../chunk-DTKGIG4A.cjs');
5
5
 
6
6
 
7
- var _chunk53QPG7SJcjs = require('../../chunk-53QPG7SJ.cjs');
7
+ var _chunk2MCPK6AXcjs = require('../../chunk-2MCPK6AX.cjs');
8
8
 
9
9
 
10
10
 
11
11
 
12
12
 
13
- var _chunkGI6ECCWBcjs = require('../../chunk-GI6ECCWB.cjs');
14
- require('../../chunk-USPUZO53.cjs');
15
- require('../../chunk-COJG2ATY.cjs');
16
- require('../../chunk-P63CRPWI.cjs');
13
+ var _chunkZUGJLCYPcjs = require('../../chunk-ZUGJLCYP.cjs');
14
+ require('../../chunk-KZAQPRTA.cjs');
15
+ require('../../chunk-RIJU4HZ2.cjs');
16
+ require('../../chunk-4H3J57AN.cjs');
17
17
  require('../../chunk-HQQE74RO.cjs');
18
18
  require('../../chunk-DEY6XXGO.cjs');
19
- require('../../chunk-UO2EJGRJ.cjs');
19
+ require('../../chunk-QZXCUY36.cjs');
20
20
  require('../../chunk-24I6RFVU.cjs');
21
- require('../../chunk-IUDBG3HJ.cjs');
21
+ require('../../chunk-PCQ2HKU3.cjs');
22
22
  require('../../chunk-MZ4KBSH7.cjs');
23
23
  require('../../chunk-ZZDFMUEU.cjs');
24
- require('../../chunk-IC4IJJB2.cjs');
24
+ require('../../chunk-F33EAPD2.cjs');
25
25
 
26
26
 
27
27
 
28
- var _chunkLFEURIZNcjs = require('../../chunk-LFEURIZN.cjs');
28
+ var _chunkHML3JUXFcjs = require('../../chunk-HML3JUXF.cjs');
29
29
  require('../../chunk-OT6P57ZS.cjs');
30
- require('../../chunk-EIACEY2L.cjs');
31
- require('../../chunk-U767P4JU.cjs');
30
+ require('../../chunk-65NMKAPQ.cjs');
31
+ require('../../chunk-STV6VJ3U.cjs');
32
32
  require('../../chunk-KXFIYO4O.cjs');
33
33
  require('../../chunk-PGAMWM6C.cjs');
34
34
  require('../../chunk-7HH4Y27U.cjs');
@@ -1831,27 +1831,27 @@ require('../../chunk-IYHH5EIO.cjs');
1831
1831
  require('../../chunk-XIBCMGBW.cjs');
1832
1832
 
1833
1833
 
1834
- var _chunkOH5TXFRRcjs = require('../../chunk-OH5TXFRR.cjs');
1835
- require('../../chunk-G7GF4PWA.cjs');
1836
- require('../../chunk-FW7RKWPY.cjs');
1837
- require('../../chunk-IGVAPIEW.cjs');
1834
+ var _chunkO4CPT3RKcjs = require('../../chunk-O4CPT3RK.cjs');
1835
+ require('../../chunk-77GX573I.cjs');
1836
+ require('../../chunk-D6GEMVHD.cjs');
1837
+ require('../../chunk-6C4OR4MZ.cjs');
1838
1838
  require('../../chunk-JKX2C3I2.cjs');
1839
1839
  require('../../chunk-WWUSFOJ7.cjs');
1840
1840
  require('../../chunk-SKI6NKOE.cjs');
1841
1841
  require('../../chunk-EWPR7662.cjs');
1842
1842
  require('../../chunk-IX2E3AN7.cjs');
1843
1843
  require('../../chunk-7DNL734S.cjs');
1844
- require('../../chunk-2W22LY3W.cjs');
1844
+ require('../../chunk-2JCA7BRK.cjs');
1845
1845
 
1846
1846
 
1847
1847
 
1848
- var _chunkNMWLXHFHcjs = require('../../chunk-NMWLXHFH.cjs');
1849
- require('../../chunk-HTYJUMFB.cjs');
1850
- require('../../chunk-W7OFAROY.cjs');
1848
+ var _chunk3GJ75OULcjs = require('../../chunk-3GJ75OUL.cjs');
1849
+ require('../../chunk-LSLRJJFP.cjs');
1850
+ require('../../chunk-YSXVRTGT.cjs');
1851
1851
 
1852
1852
 
1853
- var _chunkO3EKOXFZcjs = require('../../chunk-O3EKOXFZ.cjs');
1854
- require('../../chunk-SSKMGH5O.cjs');
1853
+ var _chunkAYMY2VNBcjs = require('../../chunk-AYMY2VNB.cjs');
1854
+ require('../../chunk-DXVGGWLG.cjs');
1855
1855
  require('../../chunk-X432Y6RM.cjs');
1856
1856
  require('../../chunk-S5C3OZCO.cjs');
1857
1857
  require('../../chunk-32ASZMTV.cjs');
@@ -1861,15 +1861,14 @@ require('../../chunk-6VOOPMP5.cjs');
1861
1861
  require('../../chunk-ORO54HDF.cjs');
1862
1862
  require('../../chunk-RUHKTWGB.cjs');
1863
1863
  require('../../chunk-BLH2SFOO.cjs');
1864
- require('../../chunk-UAI4VMEF.cjs');
1865
- require('../../chunk-COWMXUHN.cjs');
1866
- require('../../chunk-YSDB6HGQ.cjs');
1867
- require('../../chunk-ETZFBB7O.cjs');
1868
- require('../../chunk-FX35L4Y6.cjs');
1869
- require('../../chunk-KKFDRCQF.cjs');
1864
+ require('../../chunk-T54I5ZZY.cjs');
1865
+ require('../../chunk-GK577ZLJ.cjs');
1866
+ require('../../chunk-EXQSIX2I.cjs');
1867
+ require('../../chunk-XCQ5I27Z.cjs');
1868
+ require('../../chunk-RY7INTYU.cjs');
1870
1869
  require('../../chunk-NTPX5GXI.cjs');
1871
- require('../../chunk-GI3MMBP3.cjs');
1872
- require('../../chunk-GG466XFQ.cjs');
1870
+ require('../../chunk-6DMH4GXN.cjs');
1871
+ require('../../chunk-SQ7YHWEP.cjs');
1873
1872
  require('../../chunk-UJ7AXHRZ.cjs');
1874
1873
  require('../../chunk-HXURNKXI.cjs');
1875
1874
  require('../../chunk-VCFQHPOO.cjs');
@@ -1889,7 +1888,7 @@ require('../../chunk-QDB2JO55.cjs');
1889
1888
 
1890
1889
  // src/components/case-studies/share-experience-section.tsx
1891
1890
  var _jsxruntime = require('react/jsx-runtime');
1892
- var DEFAULT_TITLE = /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkNMWLXHFHcjs.HeadingLines, { children: [
1891
+ var DEFAULT_TITLE = /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk3GJ75OULcjs.HeadingLines, { children: [
1893
1892
  "Share Your Experience",
1894
1893
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
1895
1894
  "with Fellow MSPs",
@@ -1914,7 +1913,7 @@ var DEFAULT_CONTACT_FORM_PROPS = {
1914
1913
  buttonVariant: "outline",
1915
1914
  buttonClassName: "w-full",
1916
1915
  successToastMessage: "Thank you! We'll reach out to schedule your case study.",
1917
- rescue: _chunkOH5TXFRRcjs.RESCUE_FORMS.caseStudyPitch
1916
+ rescue: _chunkO4CPT3RKcjs.RESCUE_FORMS.caseStudyPitch
1918
1917
  };
1919
1918
  function ShareExperienceSection({
1920
1919
  title = DEFAULT_TITLE,
@@ -1926,7 +1925,7 @@ function ShareExperienceSection({
1926
1925
  } = {}) {
1927
1926
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "section", { className: `flex flex-col gap-10${className ? ` ${className}` : ""}`, children: [
1928
1927
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "text-ods-text-primary", children: [
1929
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h2", { className: "text-ods-text-primary text-h1", children: _chunkNMWLXHFHcjs.accentSentenceMarks.call(void 0, title) }),
1928
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h2", { className: "text-ods-text-primary text-h1", children: _chunk3GJ75OULcjs.accentSentenceMarks.call(void 0, title) }),
1930
1929
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "mt-6 max-w-[765px] text-h4", children: subtitle })
1931
1930
  ] }),
1932
1931
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "rounded-md border border-ods-border bg-ods-bg p-10", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-10", children: [
@@ -1934,9 +1933,9 @@ function ShareExperienceSection({
1934
1933
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h3", { className: "text-h2", children: howItWorksTitle }),
1935
1934
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-h4", children: howItWorksBody })
1936
1935
  ] }),
1937
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkGI6ECCWBcjs.BenefitCardGrid, { columns: 4, children: [
1936
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkZUGJLCYPcjs.BenefitCardGrid, { columns: 4, children: [
1938
1937
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1939
- _chunkGI6ECCWBcjs.BenefitCard,
1938
+ _chunkZUGJLCYPcjs.BenefitCard,
1940
1939
  {
1941
1940
  icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex h-12 w-12 items-center justify-center rounded-md border border-ods-border bg-ods-bg p-2", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkMJQLBIZMcjs.G2Icon, { color: "var(--social-g2)", size: 24 }) }),
1942
1941
  title: "G2",
@@ -1945,7 +1944,7 @@ function ShareExperienceSection({
1945
1944
  }
1946
1945
  ),
1947
1946
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1948
- _chunkGI6ECCWBcjs.BenefitCard,
1947
+ _chunkZUGJLCYPcjs.BenefitCard,
1949
1948
  {
1950
1949
  icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex h-12 w-12 items-center justify-center rounded-md border border-ods-border bg-ods-bg p-2", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkA2VKPXOBcjs.CapterraIcon, { size: 24 }) }),
1951
1950
  title: "Capterra",
@@ -1954,7 +1953,7 @@ function ShareExperienceSection({
1954
1953
  }
1955
1954
  ),
1956
1955
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1957
- _chunkGI6ECCWBcjs.BenefitCard,
1956
+ _chunkZUGJLCYPcjs.BenefitCard,
1958
1957
  {
1959
1958
  icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex h-12 w-12 items-center justify-center rounded-md border border-ods-border bg-ods-bg p-2", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTLKSZG3Dcjs.TrustpilotIcon, { size: 24 }) }),
1960
1959
  title: "TrustPilot",
@@ -1963,7 +1962,7 @@ function ShareExperienceSection({
1963
1962
  }
1964
1963
  ),
1965
1964
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1966
- _chunkGI6ECCWBcjs.BenefitCard,
1965
+ _chunkZUGJLCYPcjs.BenefitCard,
1967
1966
  {
1968
1967
  icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex h-12 w-12 items-center justify-center rounded-md border border-ods-border bg-ods-bg p-2", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkILYW6BQNcjs.GetappIcon, { size: 24 }) }),
1969
1968
  title: "GetApp",
@@ -1972,7 +1971,7 @@ function ShareExperienceSection({
1972
1971
  }
1973
1972
  )
1974
1973
  ] }),
1975
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk53QPG7SJcjs.ContactForm, { ...DEFAULT_CONTACT_FORM_PROPS, ...contactFormProps })
1974
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk2MCPK6AXcjs.ContactForm, { ...DEFAULT_CONTACT_FORM_PROPS, ...contactFormProps })
1976
1975
  ] }) })
1977
1976
  ] });
1978
1977
  }
@@ -1989,7 +1988,7 @@ function EntityQuotesPanel({ quotes, className }) {
1989
1988
  // Optional per record, so the loading state draws none: the gate leaves the loaded panel out of its comparison.
1990
1989
  // A plain block around the one panel, so the parent's spacing applies to it as it did to the panel.
1991
1990
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { "data-loading-optional": true, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1992
- _chunkGI6ECCWBcjs.StackedRowsPanel,
1991
+ _chunkZUGJLCYPcjs.StackedRowsPanel,
1993
1992
  {
1994
1993
  className,
1995
1994
  title: `${_chunkDTKGIG4Acjs.ENTITY_QUOTES_TITLE} \xB7 ${quotes.length}`,
@@ -2020,26 +2019,26 @@ var QUOTE_CARD_CLASS = "relative p-[var(--spacing-system-sf)]";
2020
2019
  function QuoteCardTile({ quote, decorative, className, loading, ...props }) {
2021
2020
  if (_chunk63A4GZMBcjs.useLoadingScope.call(void 0, ) || loading || !quote) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, QuoteCardTileSkeleton, { className });
2022
2021
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
2023
- _chunkO3EKOXFZcjs.Card,
2022
+ _chunkAYMY2VNBcjs.Card,
2024
2023
  {
2025
2024
  variant: "panel",
2026
2025
  "aria-hidden": decorative || void 0,
2027
2026
  className: _chunk63A4GZMBcjs.cn.call(void 0, QUOTE_CARD_CLASS, "hover:border-ods-border-hover", className),
2028
2027
  ...props,
2029
2028
  children: [
2030
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGI6ECCWBcjs.PersonCell, { size: "lg", name: `"${quote.text}"`, secondary: quote.attribution, avatarUrl: quote.logoUrl }),
2031
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLFEURIZNcjs.CardHitLayer, { href: quote.href, label: `${quote.text}, ${quote.attribution}`, decorative })
2029
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZUGJLCYPcjs.PersonCell, { size: "lg", name: `"${quote.text}"`, secondary: quote.attribution, avatarUrl: quote.logoUrl }),
2030
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkHML3JUXFcjs.CardHitLayer, { href: quote.href, label: `${quote.text}, ${quote.attribution}`, decorative })
2032
2031
  ]
2033
2032
  }
2034
2033
  );
2035
2034
  }
2036
2035
  function QuoteCardTileSkeleton({ className }) {
2037
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkO3EKOXFZcjs.Card, { variant: "panel", className: _chunk63A4GZMBcjs.cn.call(void 0, QUOTE_CARD_CLASS, className), children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk2XCORRJVcjs.LoadingRegion, { label: "Loading a customer story", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGI6ECCWBcjs.PersonCell, { loading: true, size: "lg" }) }) });
2036
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkAYMY2VNBcjs.Card, { variant: "panel", className: _chunk63A4GZMBcjs.cn.call(void 0, QUOTE_CARD_CLASS, className), children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk2XCORRJVcjs.LoadingRegion, { label: "Loading a customer story", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZUGJLCYPcjs.PersonCell, { loading: true, size: "lg" }) }) });
2038
2037
  }
2039
2038
  var QUOTE_STRIP_SKELETON_CARDS = 4;
2040
2039
  function QuoteCardsStripSkeleton({ count, className }) {
2041
2040
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
2042
- _chunkLFEURIZNcjs.CardsStrip,
2041
+ _chunkHML3JUXFcjs.CardsStrip,
2043
2042
  {
2044
2043
  className,
2045
2044
  showTitle: false,
@@ -2058,7 +2057,7 @@ function QuoteCardsStrip({ quotes, loading = false, skeletonCount, className })
2058
2057
  }
2059
2058
  if (quotes.length === 0) return null;
2060
2059
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
2061
- _chunkLFEURIZNcjs.CardsStrip,
2060
+ _chunkHML3JUXFcjs.CardsStrip,
2062
2061
  {
2063
2062
  className,
2064
2063
  showTitle: false,
@@ -16,7 +16,7 @@
16
16
  * `footer` is the only per-surface variation slot: the Slack feed passes its
17
17
  * "N replies" badge; the ticket feed passes `<TicketAttachmentsList>`.
18
18
  */
19
- import { type ReactNode } from 'react';
19
+ import type { ReactNode } from 'react';
20
20
  export interface ChatMessageRowProps {
21
21
  /** Display name (bold, top-left). */
22
22
  displayName: string;
@@ -1 +1 @@
1
- {"version":3,"file":"chat-message-row.d.ts","sourceRoot":"","sources":["../../../src/components/chat/chat-message-row.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAY,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAyBjD,MAAM,WAAW,mBAAmB;IAClC,qCAAqC;IACrC,WAAW,EAAE,MAAM,CAAC;IACpB;iEAC6D;IAC7D,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B;;2EAEuE;IACvE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B;;qEAEiE;IACjE,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,+EAA+E;IAC/E,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,gGAAgG;IAChG,CAAC,GAAG,EAAE,QAAQ,MAAM,EAAE,GAAG,OAAO,CAAC;CAClC;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,mBAAmB,+BAIxD"}
1
+ {"version":3,"file":"chat-message-row.d.ts","sourceRoot":"","sources":["../../../src/components/chat/chat-message-row.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AA2BvC,MAAM,WAAW,mBAAmB;IAClC,qCAAqC;IACrC,WAAW,EAAE,MAAM,CAAC;IACpB;iEAC6D;IAC7D,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B;;2EAEuE;IACvE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B;;qEAEiE;IACjE,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,+EAA+E;IAC/E,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,gGAAgG;IAChG,CAAC,GAAG,EAAE,QAAQ,MAAM,EAAE,GAAG,OAAO,CAAC;CAClC;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,mBAAmB,+BAIxD"}
@@ -1,7 +1,8 @@
1
1
  "use client";
2
2
  import { jsx, jsxs } from "react/jsx-runtime";
3
- import { useState } from "react";
4
3
  import Image from "../../embed-shims/next-image.js";
4
+ import { useAuthedImageSrc } from "../../hooks/use-authed-image-src.js";
5
+ import { useImageFallback } from "../../hooks/use-image-fallback.js";
5
6
  import { AVATAR_SIZE_PX } from "../../styles/component-sizes.js";
6
7
  import { cn } from "../../utils/cn.js";
7
8
  import { personInitials } from "../../utils/format.js";
@@ -23,8 +24,7 @@ function ChatMessageRowLoaded(props) {
23
24
  const { displayName, avatarUrl, timeLabel, body, footer } = props;
24
25
  const proxiedAvatar = useProxiedImageUrl(avatarUrl ?? "");
25
26
  const resolvedAvatar = proxiedAvatar || avatarUrl || void 0;
26
- const [failedSrc, setFailedSrc] = useState(null);
27
- const src = resolvedAvatar && resolvedAvatar !== failedSrc ? resolvedAvatar : void 0;
27
+ const { src, onError } = useImageFallback(useAuthedImageSrc(resolvedAvatar));
28
28
  const hasBody = typeof body === "string" ? body.trim().length > 0 : body != null && body !== false;
29
29
  return /* @__PURE__ */ jsxs("div", { className: ROW_CLASS, ...loadingItemProps(props), children: [
30
30
  src ? /* @__PURE__ */ jsx(
@@ -35,7 +35,7 @@ function ChatMessageRowLoaded(props) {
35
35
  className: cn(AVATAR_BOX_CLASS, "object-cover"),
36
36
  width: AVATAR_SIZE_PX.md,
37
37
  height: AVATAR_SIZE_PX.md,
38
- onError: () => setFailedSrc(resolvedAvatar ?? null)
38
+ onError
39
39
  }
40
40
  ) : /* @__PURE__ */ jsx(
41
41
  "div",
@@ -6,21 +6,15 @@
6
6
  * ternary (they drift: the pre-hook BlogCard chain couldn't recover from a
7
7
  * FAILING placeholder, EntityPortraitCard duplicated the same logic with
8
8
  * different state). Cards wire `src` + `onError` and render their own
9
- * empty-state when `src` is null.
10
- *
11
- * Implementation note: state is the SET of candidate URLs that failed, and
12
- * `src` is derived — so a prop change (new cover URL) re-resolves instantly
13
- * with no reset effect, and a URL that failed once isn't retried in a loop.
9
+ * empty-state when `src` is null. The chain itself is `useImageFallback`.
14
10
  */
15
- import { type SyntheticEvent } from 'react';
16
- export interface CoverImageFallback {
17
- /** Resolved source: first non-failed of [imageUrl, placeholderUrl], else null. */
18
- src: string | null;
19
- /** Wire to the media element's `onError`. */
20
- onError: () => void;
21
- }
11
+ import type { SyntheticEvent } from 'react';
12
+ import { type ImageFallback } from '../../../hooks/use-image-fallback';
13
+ export type CoverImageFallback = ImageFallback;
22
14
  export declare function useCoverImageFallback(imageUrl?: string | null, placeholderUrl?: string | null): CoverImageFallback;
23
15
  /** Fallback for cards with NO placeholder chain (compact/sm image slots):
24
- * a broken cover simply disappears, leaving the slot's background. */
16
+ * a broken cover simply disappears, leaving the slot's background.
17
+ * Legacy: a DOM write in `onError`, which the next src does not undo. New
18
+ * code renders nothing when `useImageFallback(url).src` is null instead. */
25
19
  export declare const hideOnError: (e: SyntheticEvent<HTMLImageElement>) => void;
26
20
  //# sourceMappingURL=use-cover-image-fallback.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-cover-image-fallback.d.ts","sourceRoot":"","sources":["../../../../src/components/chat/entity-cards/use-cover-image-fallback.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAyB,KAAK,cAAc,EAAE,MAAM,OAAO,CAAC;AAEnE,MAAM,WAAW,kBAAkB;IACjC,kFAAkF;IAClF,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,6CAA6C;IAC7C,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,wBAAgB,qBAAqB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,kBAAkB,CAgBlH;AAED;uEACuE;AACvE,eAAO,MAAM,WAAW,GAAI,GAAG,cAAc,CAAC,gBAAgB,CAAC,SAG9D,CAAC"}
1
+ {"version":3,"file":"use-cover-image-fallback.d.ts","sourceRoot":"","sources":["../../../../src/components/chat/entity-cards/use-cover-image-fallback.ts"],"names":[],"mappings":"AAEA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,KAAK,aAAa,EAAoB,MAAM,mCAAmC,CAAC;AAEzF,MAAM,MAAM,kBAAkB,GAAG,aAAa,CAAC;AAE/C,wBAAgB,qBAAqB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,kBAAkB,CAElH;AAED;;;6EAG6E;AAC7E,eAAO,MAAM,WAAW,GAAI,GAAG,cAAc,CAAC,gBAAgB,CAAC,SAG9D,CAAC"}
@@ -1,13 +1,7 @@
1
1
  "use client";
2
- import { useCallback, useState } from "react";
2
+ import { useImageFallback } from "../../../hooks/use-image-fallback.js";
3
3
  function useCoverImageFallback(imageUrl, placeholderUrl) {
4
- const [failed, setFailed] = useState(() => /* @__PURE__ */ new Set());
5
- const src = imageUrl && !failed.has(imageUrl) ? imageUrl : placeholderUrl && !failed.has(placeholderUrl) ? placeholderUrl : null;
6
- const onError = useCallback(() => {
7
- if (!src) return;
8
- setFailed((prev) => new Set(prev).add(src));
9
- }, [src]);
10
- return { src, onError };
4
+ return useImageFallback(imageUrl, placeholderUrl);
11
5
  }
12
6
  const hideOnError = (e) => {
13
7
  const img = e.currentTarget;
@@ -1 +1 @@
1
- {"version":3,"file":"use-chat-attachment-image-gallery.d.ts","sourceRoot":"","sources":["../../../../src/components/chat/hooks/use-chat-attachment-image-gallery.tsx"],"names":[],"mappings":"AAsCA,wBAAgB,6BAA6B;;;EA8D5C"}
1
+ {"version":3,"file":"use-chat-attachment-image-gallery.d.ts","sourceRoot":"","sources":["../../../../src/components/chat/hooks/use-chat-attachment-image-gallery.tsx"],"names":[],"mappings":"AAuCA,wBAAgB,6BAA6B;;;EA8D5C"}