@flamingo-stack/openframe-frontend-core 0.0.396 → 0.0.397-snapshot.20260710044003

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 (170) hide show
  1. package/dist/{chunk-HWJUWOXK.cjs → chunk-2DGA5LHT.cjs} +19 -19
  2. package/dist/{chunk-HWJUWOXK.cjs.map → chunk-2DGA5LHT.cjs.map} +1 -1
  3. package/dist/{chunk-J2UHW4UM.js → chunk-2TBXIW7L.js} +3 -3
  4. package/dist/{chunk-HNXZFKDQ.cjs → chunk-4BVRLCCA.cjs} +73 -73
  5. package/dist/{chunk-HNXZFKDQ.cjs.map → chunk-4BVRLCCA.cjs.map} +1 -1
  6. package/dist/{chunk-WWHPTP4B.js → chunk-4KWIQEZT.js} +2 -2
  7. package/dist/{chunk-6DGQPKVA.cjs → chunk-7Q2DZEUA.cjs} +32 -32
  8. package/dist/{chunk-6DGQPKVA.cjs.map → chunk-7Q2DZEUA.cjs.map} +1 -1
  9. package/dist/{chunk-SV7IJPIH.js → chunk-B2K5COVE.js} +5458 -5029
  10. package/dist/chunk-B2K5COVE.js.map +1 -0
  11. package/dist/{chunk-AODSKL5I.cjs → chunk-C4DHYDXB.cjs} +12 -12
  12. package/dist/{chunk-AODSKL5I.cjs.map → chunk-C4DHYDXB.cjs.map} +1 -1
  13. package/dist/{chunk-HEH47UTC.cjs → chunk-FZIMFLJG.cjs} +15 -15
  14. package/dist/{chunk-HEH47UTC.cjs.map → chunk-FZIMFLJG.cjs.map} +1 -1
  15. package/dist/{chunk-PQXUY6SB.js → chunk-G42EXM23.js} +2 -2
  16. package/dist/{chunk-TIC3UE6L.js → chunk-GKRJOS6S.js} +3 -3
  17. package/dist/{chunk-NAFW3LKI.cjs → chunk-HMTOQGYU.cjs} +7 -7
  18. package/dist/{chunk-NAFW3LKI.cjs.map → chunk-HMTOQGYU.cjs.map} +1 -1
  19. package/dist/{chunk-743FCO64.cjs → chunk-JWBRDNYH.cjs} +31 -31
  20. package/dist/{chunk-743FCO64.cjs.map → chunk-JWBRDNYH.cjs.map} +1 -1
  21. package/dist/{chunk-VSPNWVIE.cjs → chunk-LBDKAMOH.cjs} +75 -75
  22. package/dist/{chunk-VSPNWVIE.cjs.map → chunk-LBDKAMOH.cjs.map} +1 -1
  23. package/dist/{chunk-LWNPMLIH.cjs → chunk-LPH2JDOW.cjs} +56 -2
  24. package/dist/chunk-LPH2JDOW.cjs.map +1 -0
  25. package/dist/{chunk-OP3H7VB2.js → chunk-MGJZQ3EE.js} +2 -2
  26. package/dist/{chunk-GA3R77TB.js → chunk-MNQVBME4.js} +3 -3
  27. package/dist/{chunk-H4WIS6RJ.js → chunk-MQXUIYYN.js} +4 -4
  28. package/dist/{chunk-2PTEK3D6.js → chunk-N4R7TRF3.js} +2 -2
  29. package/dist/{chunk-LQHMXPOJ.js → chunk-N7YBNHVT.js} +563 -509
  30. package/dist/chunk-N7YBNHVT.js.map +1 -0
  31. package/dist/{chunk-KRMGVMIO.cjs → chunk-PE37UDPF.cjs} +40 -40
  32. package/dist/{chunk-KRMGVMIO.cjs.map → chunk-PE37UDPF.cjs.map} +1 -1
  33. package/dist/{chunk-FAUC7EA3.js → chunk-URODM26E.js} +6 -6
  34. package/dist/{chunk-EKYE2VJU.js → chunk-VDDNJ6XC.js} +5 -5
  35. package/dist/{chunk-Y36KVLBX.cjs → chunk-VVO7AZKZ.cjs} +1413 -984
  36. package/dist/chunk-VVO7AZKZ.cjs.map +1 -0
  37. package/dist/{chunk-2U3YPWHG.cjs → chunk-WBLRUO3F.cjs} +3 -3
  38. package/dist/{chunk-2U3YPWHG.cjs.map → chunk-WBLRUO3F.cjs.map} +1 -1
  39. package/dist/{chunk-RUYZ5QMK.cjs → chunk-WJSUUOPU.cjs} +40 -40
  40. package/dist/{chunk-RUYZ5QMK.cjs.map → chunk-WJSUUOPU.cjs.map} +1 -1
  41. package/dist/{chunk-STEM5CPV.js → chunk-WXOIEYXW.js} +5 -5
  42. package/dist/{chunk-XQILJ7FF.cjs → chunk-XYT5PIKZ.cjs} +5 -5
  43. package/dist/{chunk-XQILJ7FF.cjs.map → chunk-XYT5PIKZ.cjs.map} +1 -1
  44. package/dist/{chunk-NFRHBR7W.js → chunk-Y3FREU4B.js} +7 -7
  45. package/dist/{chunk-CCV6Z3CL.cjs → chunk-YEWGFWNM.cjs} +29 -29
  46. package/dist/{chunk-CCV6Z3CL.cjs.map → chunk-YEWGFWNM.cjs.map} +1 -1
  47. package/dist/{chunk-KQESCGVG.js → chunk-ZSZRJWY3.js} +2 -2
  48. package/dist/components/case-studies/index.cjs +14 -14
  49. package/dist/components/case-studies/index.js +4 -4
  50. package/dist/components/chat/entity-cards/blog-card.d.ts +6 -3
  51. package/dist/components/chat/entity-cards/blog-card.d.ts.map +1 -1
  52. package/dist/components/chat/entity-cards/case-study-card.d.ts +7 -3
  53. package/dist/components/chat/entity-cards/case-study-card.d.ts.map +1 -1
  54. package/dist/components/chat/entity-cards/customer-interview-card.d.ts +6 -3
  55. package/dist/components/chat/entity-cards/customer-interview-card.d.ts.map +1 -1
  56. package/dist/components/chat/entity-cards/entity-portrait-card.d.ts +59 -0
  57. package/dist/components/chat/entity-cards/entity-portrait-card.d.ts.map +1 -0
  58. package/dist/components/chat/entity-cards/index.d.ts +3 -0
  59. package/dist/components/chat/entity-cards/index.d.ts.map +1 -1
  60. package/dist/components/chat/entity-cards/investor-update-card.d.ts +6 -3
  61. package/dist/components/chat/entity-cards/investor-update-card.d.ts.map +1 -1
  62. package/dist/components/chat/entity-cards/onboarding-guide-card.d.ts +4 -2
  63. package/dist/components/chat/entity-cards/onboarding-guide-card.d.ts.map +1 -1
  64. package/dist/components/chat/entity-cards/program-card.d.ts +17 -5
  65. package/dist/components/chat/entity-cards/program-card.d.ts.map +1 -1
  66. package/dist/components/chat/entity-cards/use-cover-image-fallback.d.ts +26 -0
  67. package/dist/components/chat/entity-cards/use-cover-image-fallback.d.ts.map +1 -0
  68. package/dist/components/chat/index.cjs +12 -4
  69. package/dist/components/chat/index.cjs.map +1 -1
  70. package/dist/components/chat/index.js +11 -3
  71. package/dist/components/chat/types/entities/program-types.d.ts +23 -0
  72. package/dist/components/chat/types/entities/program-types.d.ts.map +1 -1
  73. package/dist/components/contact/index.cjs +5 -5
  74. package/dist/components/contact/index.js +4 -4
  75. package/dist/components/docs/index.cjs +7 -7
  76. package/dist/components/docs/index.js +6 -6
  77. package/dist/components/embeds/index.cjs +5 -5
  78. package/dist/components/embeds/index.js +4 -4
  79. package/dist/components/faq/index.cjs +6 -6
  80. package/dist/components/faq/index.js +5 -5
  81. package/dist/components/features/cards-strip.d.ts.map +1 -1
  82. package/dist/components/features/index.cjs +8 -4
  83. package/dist/components/features/index.cjs.map +1 -1
  84. package/dist/components/features/index.d.ts +1 -0
  85. package/dist/components/features/index.d.ts.map +1 -1
  86. package/dist/components/features/index.js +7 -3
  87. package/dist/components/features/video-bites-strip.d.ts.map +1 -1
  88. package/dist/components/features/video-center-badge.d.ts +40 -0
  89. package/dist/components/features/video-center-badge.d.ts.map +1 -0
  90. package/dist/components/features/video.d.ts +7 -4
  91. package/dist/components/features/video.d.ts.map +1 -1
  92. package/dist/components/help-center-pages/index.cjs +23 -23
  93. package/dist/components/help-center-pages/index.js +14 -14
  94. package/dist/components/icons/index.cjs +6 -2
  95. package/dist/components/icons/index.cjs.map +1 -1
  96. package/dist/components/icons/index.d.ts +2 -0
  97. package/dist/components/icons/index.d.ts.map +1 -1
  98. package/dist/components/icons/index.js +5 -1
  99. package/dist/components/icons/play-filled-icon.d.ts +15 -0
  100. package/dist/components/icons/play-filled-icon.d.ts.map +1 -0
  101. package/dist/components/icons/volume-off-filled-icon.d.ts +14 -0
  102. package/dist/components/icons/volume-off-filled-icon.d.ts.map +1 -0
  103. package/dist/components/index.cjs +160 -142
  104. package/dist/components/index.cjs.map +1 -1
  105. package/dist/components/index.js +30 -12
  106. package/dist/components/index.js.map +1 -1
  107. package/dist/components/media-carousel.d.ts.map +1 -1
  108. package/dist/components/navigation/index.cjs +4 -4
  109. package/dist/components/navigation/index.js +3 -3
  110. package/dist/components/onboarding-guides/index.cjs +8 -8
  111. package/dist/components/onboarding-guides/index.js +7 -7
  112. package/dist/components/related-content/index.cjs +6 -6
  113. package/dist/components/related-content/index.js +5 -5
  114. package/dist/components/tickets/index.cjs +7 -7
  115. package/dist/components/tickets/index.js +6 -6
  116. package/dist/components/ui/crossfade-panels.d.ts +52 -0
  117. package/dist/components/ui/crossfade-panels.d.ts.map +1 -0
  118. package/dist/components/ui/index.cjs +14 -4
  119. package/dist/components/ui/index.cjs.map +1 -1
  120. package/dist/components/ui/index.d.ts +1 -0
  121. package/dist/components/ui/index.d.ts.map +1 -1
  122. package/dist/components/ui/index.js +13 -3
  123. package/dist/components/ui/tab-navigation.d.ts +6 -2
  124. package/dist/components/ui/tab-navigation.d.ts.map +1 -1
  125. package/dist/hooks/index.cjs +3 -3
  126. package/dist/hooks/index.js +2 -2
  127. package/dist/index.cjs +22 -4
  128. package/dist/index.cjs.map +1 -1
  129. package/dist/index.js +21 -3
  130. package/package.json +4 -4
  131. package/src/components/chat/entity-cards/blog-card.tsx +40 -7
  132. package/src/components/chat/entity-cards/case-study-card.tsx +32 -6
  133. package/src/components/chat/entity-cards/customer-interview-card.tsx +31 -6
  134. package/src/components/chat/entity-cards/entity-portrait-card.tsx +201 -0
  135. package/src/components/chat/entity-cards/index.ts +18 -0
  136. package/src/components/chat/entity-cards/investor-update-card.tsx +28 -2
  137. package/src/components/chat/entity-cards/onboarding-guide-card.tsx +30 -1
  138. package/src/components/chat/entity-cards/program-card.tsx +69 -17
  139. package/src/components/chat/entity-cards/use-cover-image-fallback.ts +50 -0
  140. package/src/components/chat/types/entities/program-types.ts +34 -0
  141. package/src/components/features/cards-strip.tsx +122 -8
  142. package/src/components/features/index.ts +1 -0
  143. package/src/components/features/video-bites-strip.tsx +77 -15
  144. package/src/components/features/video-center-badge.tsx +77 -0
  145. package/src/components/features/video.tsx +51 -28
  146. package/src/components/icons/index.ts +2 -0
  147. package/src/components/icons/play-filled-icon.tsx +36 -0
  148. package/src/components/icons/volume-off-filled-icon.tsx +38 -0
  149. package/src/components/media-carousel.tsx +2 -4
  150. package/src/components/ui/crossfade-panels.tsx +88 -0
  151. package/src/components/ui/index.ts +1 -0
  152. package/src/components/ui/tab-navigation.tsx +31 -14
  153. package/src/styles/app-globals.css +23 -0
  154. package/dist/chunk-LQHMXPOJ.js.map +0 -1
  155. package/dist/chunk-LWNPMLIH.cjs.map +0 -1
  156. package/dist/chunk-SV7IJPIH.js.map +0 -1
  157. package/dist/chunk-Y36KVLBX.cjs.map +0 -1
  158. /package/dist/{chunk-J2UHW4UM.js.map → chunk-2TBXIW7L.js.map} +0 -0
  159. /package/dist/{chunk-WWHPTP4B.js.map → chunk-4KWIQEZT.js.map} +0 -0
  160. /package/dist/{chunk-PQXUY6SB.js.map → chunk-G42EXM23.js.map} +0 -0
  161. /package/dist/{chunk-TIC3UE6L.js.map → chunk-GKRJOS6S.js.map} +0 -0
  162. /package/dist/{chunk-OP3H7VB2.js.map → chunk-MGJZQ3EE.js.map} +0 -0
  163. /package/dist/{chunk-GA3R77TB.js.map → chunk-MNQVBME4.js.map} +0 -0
  164. /package/dist/{chunk-H4WIS6RJ.js.map → chunk-MQXUIYYN.js.map} +0 -0
  165. /package/dist/{chunk-2PTEK3D6.js.map → chunk-N4R7TRF3.js.map} +0 -0
  166. /package/dist/{chunk-FAUC7EA3.js.map → chunk-URODM26E.js.map} +0 -0
  167. /package/dist/{chunk-EKYE2VJU.js.map → chunk-VDDNJ6XC.js.map} +0 -0
  168. /package/dist/{chunk-STEM5CPV.js.map → chunk-WXOIEYXW.js.map} +0 -0
  169. /package/dist/{chunk-NFRHBR7W.js.map → chunk-Y3FREU4B.js.map} +0 -0
  170. /package/dist/{chunk-KQESCGVG.js.map → chunk-ZSZRJWY3.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/openframe-oss-lib/openframe-oss-lib/openframe-frontend-core/dist/index.cjs"],"names":[],"mappings":"AAAA,qFAAY;AACZ;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,wDAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B,gCAA6B;AAC7B,gCAA6B;AAC7B,gCAA6B;AAC7B,gCAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,wDAA6B;AAC7B,gCAA6B;AAC7B,gCAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,wDAA6B;AAC7B,gCAA6B;AAC7B;AACE;AACA;AACA;AACA;AACF,wDAA6B;AAC7B,gCAA6B;AAC7B,gCAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,201EAAC","file":"/home/runner/work/openframe-oss-lib/openframe-oss-lib/openframe-frontend-core/dist/index.cjs"}
1
+ {"version":3,"sources":["/home/runner/work/openframe-oss-lib/openframe-oss-lib/openframe-frontend-core/dist/index.cjs"],"names":[],"mappings":"AAAA,qFAAY;AACZ;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,wDAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B,gCAA6B;AAC7B,gCAA6B;AAC7B,gCAA6B;AAC7B,gCAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,wDAA6B;AAC7B,gCAA6B;AAC7B,gCAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,wDAA6B;AAC7B,gCAA6B;AAC7B;AACE;AACA;AACA;AACA;AACF,wDAA6B;AAC7B,gCAA6B;AAC7B,gCAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,o52EAAC","file":"/home/runner/work/openframe-oss-lib/openframe-oss-lib/openframe-frontend-core/dist/index.cjs"}
package/dist/index.js CHANGED
@@ -186,6 +186,7 @@ import {
186
186
  ContextItemsSkeleton,
187
187
  ContextMenuRow,
188
188
  CreateOrganizationForm,
189
+ CrossfadePanels,
189
190
  CursorPagination,
190
191
  CursorPaginationSimple,
191
192
  CustomerInterviewCard,
@@ -253,6 +254,7 @@ import {
253
254
  EntityImage,
254
255
  EntityMetadataAuthorCell,
255
256
  EntityMetadataValueCell,
257
+ EntityPortraitCard,
256
258
  EntitySummaryEditor,
257
259
  EntityTagBadges,
258
260
  EntityVideoSection,
@@ -605,7 +607,9 @@ import {
605
607
  VideoBitesDisplay,
606
608
  VideoBitesStrip,
607
609
  VideoClipsSection,
610
+ VideoPlayBadge,
608
611
  VideoSourceSelector,
612
+ VideoUnmuteGlyph,
609
613
  ViewToggle,
610
614
  WaitlistForm,
611
615
  WarningBlock,
@@ -779,6 +783,7 @@ import {
779
783
  handleChatNavClick,
780
784
  hasGenericEmailDomain,
781
785
  hexToRgb,
786
+ hideOnError,
782
787
  isApprovalNotification,
783
788
  isControlChunk,
784
789
  isCrossOriginUrl,
@@ -821,6 +826,7 @@ import {
821
826
  pathToNodeId,
822
827
  processHistoricalMessages,
823
828
  processHistoricalMessagesWithErrors,
829
+ programItemToStripProfile,
824
830
  ratioToCategory,
825
831
  readLeadingDecisionFrame,
826
832
  releaseStatusOptions,
@@ -878,6 +884,7 @@ import {
878
884
  useChunkCatchup,
879
885
  useCloseOnNavigation,
880
886
  useCollapsible,
887
+ useCoverImageFallback,
881
888
  useDataTable,
882
889
  useDataTableContext,
883
890
  useDynamicTheme,
@@ -909,7 +916,7 @@ import {
909
916
  validateEmailDomain,
910
917
  validateEmailDomainList,
911
918
  validatePhoneNumber
912
- } from "./chunk-SV7IJPIH.js";
919
+ } from "./chunk-B2K5COVE.js";
913
920
  import {
914
921
  CommandApprovalToast,
915
922
  DEFAULT_MIN_FILL_MS,
@@ -1020,7 +1027,7 @@ import {
1020
1027
  validateSchema,
1021
1028
  validateVariables,
1022
1029
  variablesToUrlParams
1023
- } from "./chunk-KQESCGVG.js";
1030
+ } from "./chunk-ZSZRJWY3.js";
1024
1031
  import {
1025
1032
  PLAY_ICON_PATH
1026
1033
  } from "./chunk-OYGFWWLQ.js";
@@ -1163,6 +1170,7 @@ import {
1163
1170
  PackageIcon,
1164
1171
  PatchPolicyIcon,
1165
1172
  PilotIcon,
1173
+ PlayFilledIcon,
1166
1174
  PlusCircleIcon,
1167
1175
  PodbeanIcon,
1168
1176
  PoliciesIcon,
@@ -1205,6 +1213,7 @@ import {
1205
1213
  VendorDirectoryIcon,
1206
1214
  VendorShowcaseMainIcon,
1207
1215
  VendorsIcon,
1216
+ VolumeOffFilledIcon,
1208
1217
  WhatsAppIcon,
1209
1218
  WindowsIcon,
1210
1219
  XIcon,
@@ -1212,7 +1221,7 @@ import {
1212
1221
  YouTubeIcon,
1213
1222
  getDeviceTypeIcon,
1214
1223
  renderSvgIcon
1215
- } from "./chunk-LQHMXPOJ.js";
1224
+ } from "./chunk-N7YBNHVT.js";
1216
1225
  import "./chunk-W72U7OU7.js";
1217
1226
  import {
1218
1227
  cn,
@@ -1435,6 +1444,7 @@ export {
1435
1444
  CopyIcon,
1436
1445
  CpuIcon,
1437
1446
  CreateOrganizationForm,
1447
+ CrossfadePanels,
1438
1448
  CursorPagination,
1439
1449
  CursorPaginationSimple,
1440
1450
  CustomExternalLinkIcon,
@@ -1535,6 +1545,7 @@ export {
1535
1545
  EntityImage,
1536
1546
  EntityMetadataAuthorCell,
1537
1547
  EntityMetadataValueCell,
1548
+ EntityPortraitCard,
1538
1549
  EntitySummaryEditor,
1539
1550
  EntityTagBadges,
1540
1551
  EntityVideoSection,
@@ -1789,6 +1800,7 @@ export {
1789
1800
  PilotIcon,
1790
1801
  PlatformBadge,
1791
1802
  PlatformFilterComponent,
1803
+ PlayFilledIcon,
1792
1804
  PlusCircleIcon,
1793
1805
  PodbeanIcon,
1794
1806
  PoliciesIcon,
@@ -2013,8 +2025,11 @@ export {
2013
2025
  VideoBitesDisplay,
2014
2026
  VideoBitesStrip,
2015
2027
  VideoClipsSection,
2028
+ VideoPlayBadge,
2016
2029
  VideoSourceSelector,
2030
+ VideoUnmuteGlyph,
2017
2031
  ViewToggle,
2032
+ VolumeOffFilledIcon,
2018
2033
  WaitlistForm,
2019
2034
  WarningBlock,
2020
2035
  WhatIShippedCard,
@@ -2231,6 +2246,7 @@ export {
2231
2246
  handleChatNavClick,
2232
2247
  hasGenericEmailDomain,
2233
2248
  hexToRgb,
2249
+ hideOnError,
2234
2250
  introspector,
2235
2251
  isApprovalNotification,
2236
2252
  isControlChunk,
@@ -2287,6 +2303,7 @@ export {
2287
2303
  platformSlogans,
2288
2304
  processHistoricalMessages,
2289
2305
  processHistoricalMessagesWithErrors,
2306
+ programItemToStripProfile,
2290
2307
  progressColorByVariant,
2291
2308
  ratioToCategory,
2292
2309
  readLeadingDecisionFrame,
@@ -2366,6 +2383,7 @@ export {
2366
2383
  useCollapsible,
2367
2384
  useContactSubmission,
2368
2385
  useCopyToClipboard,
2386
+ useCoverImageFallback,
2369
2387
  useCursorPaginationState,
2370
2388
  useDataTable,
2371
2389
  useDataTableContext,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flamingo-stack/openframe-frontend-core",
3
- "version": "0.0.396",
3
+ "version": "0.0.397-snapshot.20260710044003",
4
4
  "description": "Shared design system and components for all Flamingo platforms",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -257,9 +257,9 @@
257
257
  "test:ui": "vitest --ui",
258
258
  "test:run": "vitest run",
259
259
  "test:coverage": "vitest run --coverage",
260
- "yalc:watch": "NODE_OPTIONS='--max-old-space-size=4096' nodemon --watch src --watch tsconfig.json --watch tsup.config.ts --watch tailwind.config.ts --watch package.json -e ts,tsx,json,css --ignore dist --ignore node_modules --ignore '*.lock' --ignore .yalc --ignore yalc.lock --exec 'rm -rf dist && tsup && tsc -p tsconfig.declarations.json && yalc push --changed'",
261
- "yalc:push": "yalc push",
262
- "yalc:publish": "yalc publish",
260
+ "yalc:watch": "NODE_OPTIONS='--max-old-space-size=4096' nodemon --watch src --watch tsconfig.json --watch tsup.config.ts --watch tailwind.config.ts --watch package.json -e ts,tsx,json,css --ignore dist --ignore node_modules --ignore '*.lock' --ignore .yalc --ignore yalc.lock --exec 'rm -rf dist && tsup && tsc -p tsconfig.declarations.json && yalc push --changed ${YALC_STORE_FOLDER:+--store-folder \"$YALC_STORE_FOLDER\"}'",
261
+ "yalc:push": "yalc push ${YALC_STORE_FOLDER:+--store-folder \"$YALC_STORE_FOLDER\"}",
262
+ "yalc:publish": "yalc publish ${YALC_STORE_FOLDER:+--store-folder \"$YALC_STORE_FOLDER\"}",
263
263
  "generate:icons": "node scripts/generate-icons.mjs",
264
264
  "storybook": "storybook dev -p 6006",
265
265
  "build-storybook": "storybook build"
@@ -18,14 +18,16 @@
18
18
  * `bg-ods-bg` (via the slot's background).
19
19
  */
20
20
 
21
- import React, { useState } from 'react'
21
+ import React from 'react'
22
22
  import { Eye } from 'lucide-react'
23
23
  import Image from '../../../embed-shims/next-image'
24
24
  import { StatusBadge } from '../../ui/status-badge'
25
25
  import { cn } from '../../../utils/cn'
26
26
  import type { BlogPostSummary } from '../../../types/blog'
27
+ import { EntityPortraitCard } from './entity-portrait-card'
27
28
  import { useEntityCardLink } from './use-entity-card-link'
28
29
  import { useEntityCardPlaceholder } from './use-entity-card-placeholder'
30
+ import { useCoverImageFallback } from './use-cover-image-fallback'
29
31
  import {
30
32
  COMPACT_CARD_IMAGE_SLOT,
31
33
  COMPACT_CARD_META_ROW_BOX,
@@ -55,7 +57,9 @@ export interface BlogCardProps {
55
57
  /** Placeholder URL when `post.featured_image` is missing. Caller
56
58
  * resolves via `useOgPlaceholderUrl` (hub) or a static asset. */
57
59
  placeholderUrl?: string | null
58
- size?: 'default' | 'sm'
60
+ size?: 'default' | 'sm' | 'portrait'
61
+ /** Portrait density: render the content-type chip. Mixed rails only; single-type rails pass false. Default true. */
62
+ showTypeBadge?: boolean
59
63
  className?: string
60
64
  /** Surfaces a "Video" badge in compact mode. */
61
65
  hasEmbeddedVideo?: boolean
@@ -65,7 +69,8 @@ export interface BlogCardProps {
65
69
  priority?: boolean
66
70
  }
67
71
 
68
- export function BlogCardSkeleton({ size = 'default' }: { size?: 'default' | 'sm' }) {
72
+ /** `portrait` shares the default skeleton shape (same zone boxes). */
73
+ export function BlogCardSkeleton({ size = 'default' }: { size?: 'default' | 'sm' | 'portrait' }) {
69
74
  if (size === 'sm') {
70
75
  return (
71
76
  <span className={COMPACT_CARD_SKELETON_OUTER}>
@@ -109,6 +114,7 @@ export function BlogCard({
109
114
  targetPlatform,
110
115
  placeholderUrl: placeholderUrlProp,
111
116
  size = 'default',
117
+ showTypeBadge = true,
112
118
  className,
113
119
  hasEmbeddedVideo = false,
114
120
  priority = false,
@@ -124,8 +130,8 @@ export function BlogCard({
124
130
  placeholderUrl: placeholderUrlProp,
125
131
  aspect: size === 'sm' ? 'square' : 'wide',
126
132
  })
127
- const [imageError, setImageError] = useState(false)
128
- const displayImage = (post.featured_image && !imageError) ? post.featured_image : placeholderUrl
133
+ // Shared cover placeholder → hide chain (ONE fallback logic for all cards).
134
+ const { src: displayImage, onError: onImageError } = useCoverImageFallback(post.featured_image, placeholderUrl)
129
135
 
130
136
  if (size === 'sm') {
131
137
  const dateStr = post.published_at
@@ -149,7 +155,7 @@ export function BlogCard({
149
155
  sizes="56px"
150
156
  className="object-contain"
151
157
  unoptimized
152
- onError={() => setImageError(true)}
158
+ onError={onImageError}
153
159
  />
154
160
  ) : null}
155
161
  </span>
@@ -177,6 +183,33 @@ export function BlogCard({
177
183
  )
178
184
  }
179
185
 
186
+ if (size === 'portrait') {
187
+ // Rail/strip density — shared <EntityPortraitCard> shell. Raw cover +
188
+ // placeholder go in separately; the shell runs the SAME shared
189
+ // useCoverImageFallback chain internally (so its error recovery works).
190
+ const dateStr = post.published_at
191
+ ? new Date(post.published_at).toLocaleDateString('en-US', { year: 'numeric', month: 'short', day: 'numeric', timeZone: 'UTC' })
192
+ : ''
193
+ return (
194
+ <EntityPortraitCard
195
+ href={href}
196
+ target={target}
197
+ rel={rel}
198
+ typeLabel={showTypeBadge ? 'Blog Post' : undefined}
199
+ imageUrl={post.featured_image}
200
+ placeholderUrl={placeholderUrl}
201
+ imageAlt={post.title}
202
+ title={post.title}
203
+ person={{
204
+ name: post.author_name || 'Anonymous',
205
+ avatarUrl: post.author_avatar,
206
+ subtitle: dateStr || null,
207
+ }}
208
+ className={className}
209
+ />
210
+ )
211
+ }
212
+
180
213
  // Default: full vertical card.
181
214
  const dateStr = post.published_at
182
215
  ? new Date(post.published_at).toLocaleDateString('en-US', { year: 'numeric', month: 'short', day: 'numeric', timeZone: 'UTC' })
@@ -215,7 +248,7 @@ export function BlogCard({
215
248
  )}
216
249
  sizes="(max-width: 768px) 100vw, (max-width: 1519px) 50vw, 33vw"
217
250
  unoptimized
218
- onError={() => setImageError(true)}
251
+ onError={onImageError}
219
252
  />
220
253
  ) : null}
221
254
  </div>
@@ -17,6 +17,7 @@ import Image from '../../../embed-shims/next-image'
17
17
  import { Card } from '../../ui/card'
18
18
  import { cn } from '../../../utils/cn'
19
19
  import type { CaseStudy } from '../../../types/case-study'
20
+ import { EntityPortraitCard } from './entity-portrait-card'
20
21
  import { useEntityCardLink } from './use-entity-card-link'
21
22
  import { useEntityCardPlaceholder } from './use-entity-card-placeholder'
22
23
  import {
@@ -32,10 +33,7 @@ import {
32
33
  COMPACT_CARD_TITLE,
33
34
  COMPACT_CARD_TITLE_ROW,
34
35
  } from '../utils/compact-card-classes'
35
-
36
- const hideOnError = (e: React.SyntheticEvent<HTMLImageElement>) => {
37
- ;(e.currentTarget as HTMLImageElement).style.display = 'none'
38
- }
36
+ import { hideOnError } from './use-cover-image-fallback'
39
37
 
40
38
  export interface CaseStudyCardProps {
41
39
  study: CaseStudy
@@ -48,11 +46,15 @@ export interface CaseStudyCardProps {
48
46
  targetPlatform?: string | null
49
47
  /** OG placeholder URL, used when `study.featured_image` is missing. */
50
48
  placeholderUrl?: string | null
51
- size?: 'default' | 'sm'
49
+ size?: 'default' | 'sm' | 'portrait'
50
+ /** Portrait density: render the content-type chip. Mixed rails only; single-type rails pass false. Default true. */
51
+ showTypeBadge?: boolean
52
52
  className?: string
53
53
  }
54
54
 
55
- export function CaseStudyCardSkeleton({ size = 'default' }: { size?: 'default' | 'sm' }) {
55
+ /** `portrait` shares the default skeleton shape the portrait anatomy uses the
56
+ * same zone boxes (media aspect → 72px title → 60px person footer). */
57
+ export function CaseStudyCardSkeleton({ size = 'default' }: { size?: 'default' | 'sm' | 'portrait' }) {
56
58
  if (size === 'sm') {
57
59
  return (
58
60
  <span className={COMPACT_CARD_SKELETON_OUTER}>
@@ -98,6 +100,7 @@ export function CaseStudyCard({
98
100
  targetPlatform,
99
101
  placeholderUrl: placeholderUrlProp,
100
102
  size = 'default',
103
+ showTypeBadge = true,
101
104
  className,
102
105
  }: CaseStudyCardProps) {
103
106
  const { target, rel } = useEntityCardLink({
@@ -145,6 +148,29 @@ export function CaseStudyCard({
145
148
  )
146
149
  }
147
150
 
151
+ if (size === 'portrait') {
152
+ // Rail/strip density — shared <EntityPortraitCard> shell.
153
+ return (
154
+ <EntityPortraitCard
155
+ href={href}
156
+ target={target}
157
+ rel={rel}
158
+ typeLabel={showTypeBadge ? 'Case Study' : undefined}
159
+ imageUrl={study.featured_image}
160
+ placeholderUrl={placeholderUrl}
161
+ imageAlt={study.msp?.name || study.title}
162
+ title={study.title}
163
+ person={{
164
+ name: study.user?.full_name || 'Anonymous',
165
+ avatarUrl: study.user?.avatar_url,
166
+ subtitle: study.msp?.name ?? null,
167
+ iconOverlayUrl: study.msp?.icon_url ?? null,
168
+ }}
169
+ className={className}
170
+ />
171
+ )
172
+ }
173
+
148
174
  return (
149
175
  <a href={href} target={target} rel={rel} className={cn('block h-full', className)}>
150
176
  <Card className="bg-ods-card border border-ods-border hover:border-ods-accent transition-colors p-6 flex flex-col gap-6 overflow-hidden">
@@ -13,6 +13,7 @@ import { Card } from '../../ui/card'
13
13
  import { cn } from '../../../utils/cn'
14
14
  import { Video } from 'lucide-react'
15
15
  import type { CustomerInterview } from '../../../types/customer-interview'
16
+ import { EntityPortraitCard } from './entity-portrait-card'
16
17
  import { useEntityCardLink } from './use-entity-card-link'
17
18
  import { useEntityCardPlaceholder } from './use-entity-card-placeholder'
18
19
  import {
@@ -28,10 +29,7 @@ import {
28
29
  COMPACT_CARD_TITLE,
29
30
  COMPACT_CARD_TITLE_ROW,
30
31
  } from '../utils/compact-card-classes'
31
-
32
- const hideOnError = (e: React.SyntheticEvent<HTMLImageElement>) => {
33
- ;(e.currentTarget as HTMLImageElement).style.display = 'none'
34
- }
32
+ import { hideOnError } from './use-cover-image-fallback'
35
33
 
36
34
  export interface CustomerInterviewCardProps {
37
35
  interview: CustomerInterview
@@ -43,11 +41,14 @@ export interface CustomerInterviewCardProps {
43
41
  targetPlatform?: string | null
44
42
  /** OG placeholder URL fallback when `interview.featured_image` is missing. */
45
43
  placeholderUrl?: string | null
46
- size?: 'default' | 'sm'
44
+ size?: 'default' | 'sm' | 'portrait'
45
+ /** Portrait density: render the content-type chip. Mixed rails only; single-type rails pass false. Default true. */
46
+ showTypeBadge?: boolean
47
47
  className?: string
48
48
  }
49
49
 
50
- export function CustomerInterviewCardSkeleton({ size = 'default' }: { size?: 'default' | 'sm' }) {
50
+ /** `portrait` shares the default skeleton shape (same zone boxes). */
51
+ export function CustomerInterviewCardSkeleton({ size = 'default' }: { size?: 'default' | 'sm' | 'portrait' }) {
51
52
  if (size === 'sm') {
52
53
  return (
53
54
  <span className={COMPACT_CARD_SKELETON_OUTER}>
@@ -98,6 +99,7 @@ export function CustomerInterviewCard({
98
99
  targetPlatform,
99
100
  placeholderUrl: placeholderUrlProp,
100
101
  size = 'default',
102
+ showTypeBadge = true,
101
103
  className,
102
104
  }: CustomerInterviewCardProps) {
103
105
  const { target, rel } = useEntityCardLink({
@@ -150,6 +152,29 @@ export function CustomerInterviewCard({
150
152
  )
151
153
  }
152
154
 
155
+ if (size === 'portrait') {
156
+ // Rail/strip density — shared <EntityPortraitCard> shell.
157
+ return (
158
+ <EntityPortraitCard
159
+ href={href}
160
+ target={target}
161
+ rel={rel}
162
+ typeLabel={showTypeBadge ? 'Customer Interview' : undefined}
163
+ imageUrl={interview.featured_image}
164
+ placeholderUrl={placeholderUrl}
165
+ imageAlt={interview.title}
166
+ title={interview.title}
167
+ person={{
168
+ name: interview.user?.full_name || 'Customer',
169
+ avatarUrl: interview.user?.avatar_url,
170
+ subtitle: interview.msp?.name ?? null,
171
+ iconOverlayUrl: interview.msp?.icon_url ?? null,
172
+ }}
173
+ className={className}
174
+ />
175
+ )
176
+ }
177
+
153
178
  return (
154
179
  <a href={href} target={target} rel={rel} className={cn('block h-full', className)}>
155
180
  <Card className="bg-ods-card border border-ods-border hover:border-ods-accent transition-colors p-6 flex flex-col gap-6 overflow-hidden">