@flamingo-stack/openframe-frontend-core 0.0.215 → 0.0.216

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 (228) hide show
  1. package/dist/chunk-2V4SACHE.js +302 -0
  2. package/dist/chunk-2V4SACHE.js.map +1 -0
  3. package/dist/chunk-572WQWIX.cjs +348 -0
  4. package/dist/chunk-572WQWIX.cjs.map +1 -0
  5. package/dist/{chunk-WT5JV2GS.cjs → chunk-5V6MSE3B.cjs} +39 -39
  6. package/dist/chunk-5V6MSE3B.cjs.map +1 -0
  7. package/dist/{chunk-WQZP3JIZ.js → chunk-CDLYRFDE.js} +1894 -1472
  8. package/dist/chunk-CDLYRFDE.js.map +1 -0
  9. package/dist/chunk-GVNQAGXB.js +232 -0
  10. package/dist/chunk-GVNQAGXB.js.map +1 -0
  11. package/dist/{chunk-P5EE2VJX.cjs → chunk-HOHDXYPR.cjs} +1 -1
  12. package/dist/chunk-HOHDXYPR.cjs.map +1 -0
  13. package/dist/chunk-IH76P5R6.cjs +232 -0
  14. package/dist/chunk-IH76P5R6.cjs.map +1 -0
  15. package/dist/{chunk-24KCAECR.cjs → chunk-JJR27M56.cjs} +3 -3
  16. package/dist/{chunk-24KCAECR.cjs.map → chunk-JJR27M56.cjs.map} +1 -1
  17. package/dist/chunk-K4DFAVSO.cjs +302 -0
  18. package/dist/chunk-K4DFAVSO.cjs.map +1 -0
  19. package/dist/{chunk-HICZPTRR.js → chunk-LCLTCCXS.js} +14 -14
  20. package/dist/chunk-LCLTCCXS.js.map +1 -0
  21. package/dist/{chunk-VFKQMAUF.cjs → chunk-OB45JHDY.cjs} +3 -3
  22. package/dist/{chunk-VFKQMAUF.cjs.map → chunk-OB45JHDY.cjs.map} +1 -1
  23. package/dist/{chunk-4XLJWX2N.js → chunk-ORJREQ2W.js} +4 -4
  24. package/dist/{chunk-7PCP7YQR.js → chunk-QTKU6ULP.js} +6 -6
  25. package/dist/{chunk-CIPO6DXK.js → chunk-QY75VKAS.js} +5 -5
  26. package/dist/{chunk-ZG2YY5E7.js → chunk-RFONYT63.js} +1 -1
  27. package/dist/chunk-RFONYT63.js.map +1 -0
  28. package/dist/{chunk-NGFP4RVL.cjs → chunk-SMCG2CCC.cjs} +30 -30
  29. package/dist/{chunk-NGFP4RVL.cjs.map → chunk-SMCG2CCC.cjs.map} +1 -1
  30. package/dist/{chunk-MX5MIFWA.js → chunk-UEBM4PC4.js} +5 -5
  31. package/dist/chunk-VC3ND5RB.js +348 -0
  32. package/dist/chunk-VC3ND5RB.js.map +1 -0
  33. package/dist/{chunk-UXZ3ZJ3M.cjs → chunk-XDPSSE4O.cjs} +4 -4
  34. package/dist/{chunk-UXZ3ZJ3M.cjs.map → chunk-XDPSSE4O.cjs.map} +1 -1
  35. package/dist/{chunk-D4MNFY67.cjs → chunk-ZGTDUPTW.cjs} +1316 -894
  36. package/dist/chunk-ZGTDUPTW.cjs.map +1 -0
  37. package/dist/components/chat/entity-cards/blog-card.d.ts +1 -1
  38. package/dist/components/chat/entity-cards/blog-card.d.ts.map +1 -1
  39. package/dist/components/chat/entity-cards/case-study-card.d.ts +1 -1
  40. package/dist/components/chat/entity-cards/case-study-card.d.ts.map +1 -1
  41. package/dist/components/chat/entity-cards/customer-interview-card.d.ts +1 -1
  42. package/dist/components/chat/entity-cards/customer-interview-card.d.ts.map +1 -1
  43. package/dist/components/chat/entity-cards/dispatch.d.ts.map +1 -1
  44. package/dist/components/chat/entity-cards/investor-update-card.d.ts +1 -1
  45. package/dist/components/chat/entity-cards/investor-update-card.d.ts.map +1 -1
  46. package/dist/components/chat/entity-cards/onboarding-guide-card.d.ts +1 -1
  47. package/dist/components/chat/entity-cards/onboarding-guide-card.d.ts.map +1 -1
  48. package/dist/components/chat/entity-cards/program-card.d.ts +1 -1
  49. package/dist/components/chat/entity-cards/program-card.d.ts.map +1 -1
  50. package/dist/components/chat/entity-cards/use-entity-card-link.d.ts +14 -0
  51. package/dist/components/chat/entity-cards/use-entity-card-link.d.ts.map +1 -0
  52. package/dist/components/chat/entity-cards/use-entity-card-placeholder.d.ts +13 -0
  53. package/dist/components/chat/entity-cards/use-entity-card-placeholder.d.ts.map +1 -0
  54. package/dist/components/chat/index.cjs +11 -11
  55. package/dist/components/chat/index.js +10 -10
  56. package/dist/components/contact/index.cjs +12 -12
  57. package/dist/components/contact/index.js +11 -11
  58. package/dist/components/features/captions-url.d.ts +18 -0
  59. package/dist/components/features/captions-url.d.ts.map +1 -0
  60. package/dist/components/features/index.cjs +23 -11
  61. package/dist/components/features/index.cjs.map +1 -1
  62. package/dist/components/features/index.d.ts +2 -0
  63. package/dist/components/features/index.d.ts.map +1 -1
  64. package/dist/components/features/index.js +24 -12
  65. package/dist/components/features/mux-origins.cjs +10 -0
  66. package/dist/components/features/mux-origins.cjs.map +1 -0
  67. package/dist/components/features/mux-origins.d.ts +26 -0
  68. package/dist/components/features/mux-origins.d.ts.map +1 -0
  69. package/dist/components/features/mux-origins.js +7 -0
  70. package/dist/components/features/mux-origins.js.map +1 -0
  71. package/dist/components/features/notifications/index.d.ts +2 -0
  72. package/dist/components/features/notifications/index.d.ts.map +1 -1
  73. package/dist/components/features/notifications/notification-drawer.d.ts +2 -1
  74. package/dist/components/features/notifications/notification-drawer.d.ts.map +1 -1
  75. package/dist/components/features/notifications/notification-popups.d.ts +10 -0
  76. package/dist/components/features/notifications/notification-popups.d.ts.map +1 -0
  77. package/dist/components/features/notifications/notifications-context.d.ts +8 -1
  78. package/dist/components/features/notifications/notifications-context.d.ts.map +1 -1
  79. package/dist/components/features/notifications/types.d.ts +1 -0
  80. package/dist/components/features/notifications/types.d.ts.map +1 -1
  81. package/dist/components/features/use-video-warmup.d.ts +53 -0
  82. package/dist/components/features/use-video-warmup.d.ts.map +1 -0
  83. package/dist/components/icons/index.cjs +3 -3
  84. package/dist/components/icons/index.js +2 -2
  85. package/dist/components/icons-v2-generated/index.cjs +2 -2
  86. package/dist/components/icons-v2-generated/index.cjs.map +1 -1
  87. package/dist/components/icons-v2-generated/index.js +4 -4
  88. package/dist/components/index.cjs +132 -102
  89. package/dist/components/index.cjs.map +1 -1
  90. package/dist/components/index.d.ts +1 -0
  91. package/dist/components/index.d.ts.map +1 -1
  92. package/dist/components/index.js +94 -64
  93. package/dist/components/index.js.map +1 -1
  94. package/dist/components/navigation/index.cjs +11 -11
  95. package/dist/components/navigation/index.js +10 -10
  96. package/dist/components/onboarding-guides/build-default-href.d.ts +15 -0
  97. package/dist/components/onboarding-guides/build-default-href.d.ts.map +1 -0
  98. package/dist/components/onboarding-guides/hooks/use-onboarding-guides.d.ts +28 -0
  99. package/dist/components/onboarding-guides/hooks/use-onboarding-guides.d.ts.map +1 -0
  100. package/dist/components/onboarding-guides/index.cjs +373 -0
  101. package/dist/components/onboarding-guides/index.cjs.map +1 -0
  102. package/dist/components/onboarding-guides/index.d.ts +25 -0
  103. package/dist/components/onboarding-guides/index.d.ts.map +1 -0
  104. package/dist/components/onboarding-guides/index.js +373 -0
  105. package/dist/components/onboarding-guides/index.js.map +1 -0
  106. package/dist/components/onboarding-guides/onboarding-guide-detail-view.d.ts +52 -0
  107. package/dist/components/onboarding-guides/onboarding-guide-detail-view.d.ts.map +1 -0
  108. package/dist/components/onboarding-guides/onboarding-guides-catalog-skeleton.d.ts +17 -0
  109. package/dist/components/onboarding-guides/onboarding-guides-catalog-skeleton.d.ts.map +1 -0
  110. package/dist/components/onboarding-guides/onboarding-guides-catalog-view.d.ts +43 -0
  111. package/dist/components/onboarding-guides/onboarding-guides-catalog-view.d.ts.map +1 -0
  112. package/dist/components/shared/doc-search/doc-search-bar.d.ts +59 -0
  113. package/dist/components/shared/doc-search/doc-search-bar.d.ts.map +1 -0
  114. package/dist/components/shared/doc-search/doc-search-result-row.d.ts +18 -0
  115. package/dist/components/shared/doc-search/doc-search-result-row.d.ts.map +1 -0
  116. package/dist/components/shared/doc-search/format-relative-path.d.ts +10 -0
  117. package/dist/components/shared/doc-search/format-relative-path.d.ts.map +1 -0
  118. package/dist/components/shared/doc-search/index.d.ts +8 -0
  119. package/dist/components/shared/doc-search/index.d.ts.map +1 -0
  120. package/dist/components/shared/doc-search/map-doc-search-results.d.ts +15 -0
  121. package/dist/components/shared/doc-search/map-doc-search-results.d.ts.map +1 -0
  122. package/dist/components/shared/doc-search/resolve-search-result-action.d.ts +37 -0
  123. package/dist/components/shared/doc-search/resolve-search-result-action.d.ts.map +1 -0
  124. package/dist/components/shared/doc-search/types.d.ts +29 -0
  125. package/dist/components/shared/doc-search/types.d.ts.map +1 -0
  126. package/dist/components/shared/doc-search/use-doc-search.d.ts +46 -0
  127. package/dist/components/shared/doc-search/use-doc-search.d.ts.map +1 -0
  128. package/dist/components/tickets/help-center-card.d.ts +5 -1
  129. package/dist/components/tickets/help-center-card.d.ts.map +1 -1
  130. package/dist/components/tickets/hooks/use-ticket-actions.d.ts +8 -0
  131. package/dist/components/tickets/hooks/use-ticket-actions.d.ts.map +1 -1
  132. package/dist/components/tickets/index.cjs +316 -145
  133. package/dist/components/tickets/index.cjs.map +1 -1
  134. package/dist/components/tickets/index.js +237 -66
  135. package/dist/components/tickets/index.js.map +1 -1
  136. package/dist/components/tickets/ticket-detail-drawer.d.ts +11 -2
  137. package/dist/components/tickets/ticket-detail-drawer.d.ts.map +1 -1
  138. package/dist/components/tickets/types.d.ts +50 -1
  139. package/dist/components/tickets/types.d.ts.map +1 -1
  140. package/dist/components/ui/file-manager/index.cjs +51 -51
  141. package/dist/components/ui/file-manager/index.cjs.map +1 -1
  142. package/dist/components/ui/file-manager/index.js +2 -2
  143. package/dist/components/ui/filter-pill-row.d.ts +20 -0
  144. package/dist/components/ui/filter-pill-row.d.ts.map +1 -0
  145. package/dist/components/ui/index.cjs +16 -14
  146. package/dist/components/ui/index.cjs.map +1 -1
  147. package/dist/components/ui/index.d.ts +1 -0
  148. package/dist/components/ui/index.d.ts.map +1 -1
  149. package/dist/components/ui/index.js +21 -19
  150. package/dist/components/ui/simple-markdown-renderer.d.ts.map +1 -1
  151. package/dist/contexts/chat-runtime-context.d.ts +42 -0
  152. package/dist/contexts/chat-runtime-context.d.ts.map +1 -1
  153. package/dist/contexts/index.cjs +2 -2
  154. package/dist/contexts/index.js +1 -1
  155. package/dist/embed-shims/index.cjs +3 -3
  156. package/dist/embed-shims/index.cjs.map +1 -1
  157. package/dist/embed-shims/index.js +5 -5
  158. package/dist/hooks/index.cjs +6 -6
  159. package/dist/hooks/index.js +5 -5
  160. package/dist/index.cjs +28 -14
  161. package/dist/index.cjs.map +1 -1
  162. package/dist/index.js +59 -45
  163. package/dist/utils/dev-sections/openframe-dev-sections.d.ts +2 -2
  164. package/dist/utils/dev-sections/openframe-dev-sections.d.ts.map +1 -1
  165. package/dist/utils/index.cjs +11 -5
  166. package/dist/utils/index.cjs.map +1 -1
  167. package/dist/utils/index.js +11 -5
  168. package/dist/utils/index.js.map +1 -1
  169. package/package.json +13 -1
  170. package/src/components/chat/entity-cards/blog-card.tsx +17 -5
  171. package/src/components/chat/entity-cards/case-study-card.tsx +23 -1
  172. package/src/components/chat/entity-cards/customer-interview-card.tsx +23 -1
  173. package/src/components/chat/entity-cards/dispatch.tsx +21 -0
  174. package/src/components/chat/entity-cards/investor-update-card.tsx +23 -1
  175. package/src/components/chat/entity-cards/onboarding-guide-card.tsx +30 -4
  176. package/src/components/chat/entity-cards/program-card.tsx +17 -3
  177. package/src/components/chat/entity-cards/use-entity-card-link.ts +66 -0
  178. package/src/components/chat/entity-cards/use-entity-card-placeholder.ts +50 -0
  179. package/src/components/features/captions-url.ts +25 -0
  180. package/src/components/features/index.ts +2 -0
  181. package/src/components/features/mux-origins.ts +27 -0
  182. package/src/components/features/notifications/index.ts +2 -0
  183. package/src/components/features/notifications/notification-drawer.tsx +100 -16
  184. package/src/components/features/notifications/notification-popups.tsx +105 -0
  185. package/src/components/features/notifications/notifications-context.tsx +16 -0
  186. package/src/components/features/notifications/types.ts +1 -0
  187. package/src/components/features/use-video-warmup.ts +176 -0
  188. package/src/components/index.ts +5 -0
  189. package/src/components/onboarding-guides/build-default-href.ts +16 -0
  190. package/src/components/onboarding-guides/hooks/use-onboarding-guides.ts +90 -0
  191. package/src/components/onboarding-guides/index.ts +39 -0
  192. package/src/components/onboarding-guides/onboarding-guide-detail-view.tsx +215 -0
  193. package/src/components/onboarding-guides/onboarding-guides-catalog-skeleton.tsx +62 -0
  194. package/src/components/onboarding-guides/onboarding-guides-catalog-view.tsx +230 -0
  195. package/src/components/shared/doc-search/doc-search-bar.tsx +100 -0
  196. package/src/components/shared/doc-search/doc-search-result-row.tsx +73 -0
  197. package/src/components/shared/doc-search/format-relative-path.ts +17 -0
  198. package/src/components/shared/doc-search/index.ts +24 -0
  199. package/src/components/shared/doc-search/map-doc-search-results.ts +113 -0
  200. package/src/components/shared/doc-search/resolve-search-result-action.ts +68 -0
  201. package/src/components/shared/doc-search/types.ts +28 -0
  202. package/src/components/shared/doc-search/use-doc-search.ts +263 -0
  203. package/src/components/tickets/help-center-card.tsx +8 -0
  204. package/src/components/tickets/help-center-list.tsx +17 -3
  205. package/src/components/tickets/hooks/use-ticket-actions.ts +210 -14
  206. package/src/components/tickets/ticket-detail-drawer.tsx +145 -5
  207. package/src/components/tickets/types.ts +55 -0
  208. package/src/components/ui/filter-pill-row.tsx +72 -0
  209. package/src/components/ui/index.ts +1 -0
  210. package/src/components/ui/simple-markdown-renderer.tsx +24 -1
  211. package/src/components/ui/toaster.tsx +3 -3
  212. package/src/contexts/chat-runtime-context.tsx +41 -0
  213. package/src/stories/NotificationDrawer.stories.tsx +18 -2
  214. package/src/utils/dev-sections/openframe-dev-sections.ts +12 -5
  215. package/dist/chunk-2G3NXF6J.cjs +0 -521
  216. package/dist/chunk-2G3NXF6J.cjs.map +0 -1
  217. package/dist/chunk-D4MNFY67.cjs.map +0 -1
  218. package/dist/chunk-HICZPTRR.js.map +0 -1
  219. package/dist/chunk-P5EE2VJX.cjs.map +0 -1
  220. package/dist/chunk-R6MLPU4A.js +0 -521
  221. package/dist/chunk-R6MLPU4A.js.map +0 -1
  222. package/dist/chunk-WQZP3JIZ.js.map +0 -1
  223. package/dist/chunk-WT5JV2GS.cjs.map +0 -1
  224. package/dist/chunk-ZG2YY5E7.js.map +0 -1
  225. /package/dist/{chunk-4XLJWX2N.js.map → chunk-ORJREQ2W.js.map} +0 -0
  226. /package/dist/{chunk-7PCP7YQR.js.map → chunk-QTKU6ULP.js.map} +0 -0
  227. /package/dist/{chunk-CIPO6DXK.js.map → chunk-QY75VKAS.js.map} +0 -0
  228. /package/dist/{chunk-MX5MIFWA.js.map → chunk-UEBM4PC4.js.map} +0 -0
@@ -1,4 +1,4 @@
1
- import type { AnyTicket } from './types';
1
+ import type { AnyTicket, MappedTicketActionError } from './types';
2
2
  /** Identity bundle threaded through the action callbacks: local mirror
3
3
  * UUID + HubSpot external_id. Actions send `external_id` to HubSpot
4
4
  * (the only id it recognizes) and use `id` for the React-side mutex +
@@ -19,6 +19,15 @@ export interface TicketDetailDrawerProps {
19
19
  /** Called after a successful close/reopen so the parent can collapse
20
20
  * the drawer (status flipped — current action set is now stale). */
21
21
  onActionCollapsed: () => void;
22
+ /** Persisted reply-failure surface — when non-null the drawer renders
23
+ * an inline banner above the composer with the mapped copy + a
24
+ * dismiss control. Distinct from the transient toast; the banner
25
+ * stays visible so the customer can locate the failed draft after
26
+ * the toast disappears. Cleared on the next successful send. */
27
+ replyError?: MappedTicketActionError | null;
28
+ /** Dismiss-X handler for the banner. Parent calls
29
+ * `actions.clearReplyError(ticket.external_id)`. */
30
+ onClearReplyError?: () => void;
22
31
  }
23
- export declare function TicketDetailDrawer({ ticket, busy, supportSystemDown, onSendMessage, onClose, onReopen, onActionCollapsed, }: TicketDetailDrawerProps): import("react/jsx-runtime").JSX.Element;
32
+ export declare function TicketDetailDrawer({ ticket, busy, supportSystemDown, onSendMessage, onClose, onReopen, onActionCollapsed, replyError, onClearReplyError, }: TicketDetailDrawerProps): import("react/jsx-runtime").JSX.Element;
24
33
  //# sourceMappingURL=ticket-detail-drawer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ticket-detail-drawer.d.ts","sourceRoot":"","sources":["../../../src/components/tickets/ticket-detail-drawer.tsx"],"names":[],"mappings":"AAqDA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAGxC;;;sBAGsB;AACtB,MAAM,MAAM,SAAS,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAAA;AAE3D,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,SAAS,CAAA;IACjB,IAAI,EAAE,OAAO,CAAA;IACb,iBAAiB,EAAE,OAAO,CAAA;IAC1B;+BAC2B;IAC3B,aAAa,EAAE,CACb,MAAM,EAAE,SAAS,EACjB,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,OAAO,0CAA0C,EAAE,cAAc,EAAE,KAC7E,OAAO,CAAC,OAAO,CAAC,CAAA;IACrB,OAAO,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,UAAU,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;IACrE,QAAQ,EAAE,CAAC,MAAM,EAAE,SAAS,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;IACjD;yEACqE;IACrE,iBAAiB,EAAE,MAAM,IAAI,CAAA;CAC9B;AAED,wBAAgB,kBAAkB,CAAC,EACjC,MAAM,EACN,IAAI,EACJ,iBAAiB,EACjB,aAAa,EACb,OAAO,EACP,QAAQ,EACR,iBAAiB,GAClB,EAAE,uBAAuB,2CA0CzB"}
1
+ {"version":3,"file":"ticket-detail-drawer.d.ts","sourceRoot":"","sources":["../../../src/components/tickets/ticket-detail-drawer.tsx"],"names":[],"mappings":"AAsDA,OAAO,KAAK,EACV,SAAS,EAET,uBAAuB,EACxB,MAAM,SAAS,CAAA;AAGhB;;;sBAGsB;AACtB,MAAM,MAAM,SAAS,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAAA;AAE3D,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,SAAS,CAAA;IACjB,IAAI,EAAE,OAAO,CAAA;IACb,iBAAiB,EAAE,OAAO,CAAA;IAC1B;+BAC2B;IAC3B,aAAa,EAAE,CACb,MAAM,EAAE,SAAS,EACjB,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,OAAO,0CAA0C,EAAE,cAAc,EAAE,KAC7E,OAAO,CAAC,OAAO,CAAC,CAAA;IACrB,OAAO,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,UAAU,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;IACrE,QAAQ,EAAE,CAAC,MAAM,EAAE,SAAS,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;IACjD;yEACqE;IACrE,iBAAiB,EAAE,MAAM,IAAI,CAAA;IAC7B;;;;qEAIiE;IACjE,UAAU,CAAC,EAAE,uBAAuB,GAAG,IAAI,CAAA;IAC3C;yDACqD;IACrD,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAA;CAC/B;AAED,wBAAgB,kBAAkB,CAAC,EACjC,MAAM,EACN,IAAI,EACJ,iBAAiB,EACjB,aAAa,EACb,OAAO,EACP,QAAQ,EACR,iBAAiB,EACjB,UAAU,EACV,iBAAiB,GAClB,EAAE,uBAAuB,2CA8DzB"}
@@ -51,8 +51,28 @@ export interface TicketData {
51
51
  * Channels, so this is the only reliable source for "what's the
52
52
  * customer's name." */
53
53
  customer_name: string | null;
54
+ /** HubSpot owner id of the agent assigned to this ticket. Carried as
55
+ * raw id for debugging; rendering goes through `assignedOwner`. Null
56
+ * when unassigned. */
57
+ assigned_to: string | null;
58
+ /** Resolved assigned-owner profile — name + email + avatar. Populated
59
+ * server-side via `attachOwnerProfiles` which joins through the
60
+ * `hubspot_owners` mirror to `profiles` by email. Drives the
61
+ * "Assigned to" attribution in the drawer header. Null when
62
+ * unassigned OR the owner couldn't be resolved (rare — only when
63
+ * the agent was deleted from HubSpot between the ticket update and
64
+ * the next owners reconcile). */
65
+ assignedOwner: TicketAssignedOwner | null;
54
66
  hubspot_updated_at: string;
55
67
  }
68
+ /** Resolved profile of a ticket's assigned agent — surfaced in the
69
+ * drawer header. Subset of the server's `MirroredOwnerProfile`
70
+ * trimmed to just the rendering fields. */
71
+ export interface TicketAssignedOwner {
72
+ name: string | null;
73
+ email: string | null;
74
+ avatarUrl: string | null;
75
+ }
56
76
  /** Compact projection of a linked ClickUp task — matches the server's
57
77
  * `ClickupSummary` and aligns with `DeliveryItem` so the linked-card
58
78
  * on a ticket can render through the same `DeliveryRow` primitive used
@@ -111,12 +131,41 @@ export interface OptimisticTicket extends TicketData {
111
131
  }
112
132
  export type AnyTicket = TicketData | OptimisticTicket;
113
133
  export declare function isOptimistic(t: AnyTicket): t is OptimisticTicket;
134
+ /**
135
+ * Shape of a single `['tickets', …]` TanStack-Query cache slot.
136
+ * Mirrors `FindTicketResponse` in `hooks/use-tickets-list.ts` — kept
137
+ * here because the cache-mutation call sites in `useTicketActions` and
138
+ * `<HelpCenterList>` would otherwise have to redeclare the shape inline.
139
+ *
140
+ * A 2026-05-29 prod regression (`t.map is not a function` on
141
+ * close/reopen) was caused by assuming the cache held a bare
142
+ * `TicketData[]` instead of this wrapper — every helper that calls
143
+ * `queryClient.setQueriesData` / `getQueriesData` on `['tickets']`
144
+ * MUST type the value through this shape and project / reassemble
145
+ * `tickets` explicitly.
146
+ */
147
+ export interface TicketsCacheSlot {
148
+ tickets?: TicketData[];
149
+ count?: number;
150
+ totalCount?: number;
151
+ page?: number;
152
+ pageSize?: number;
153
+ totalPages?: number;
154
+ scope?: 'self' | 'all';
155
+ }
114
156
  /**
115
157
  * Stable server-side error codes the ticket-action helpers route
116
158
  * through `mapTicketActionError`. Anything else is treated as a generic
117
159
  * server error.
160
+ *
161
+ * Reply-specific codes (`HUBSPOT_5XX` / `HUBSPOT_400_VALIDATION` /
162
+ * `HUBSPOT_404_THREAD` / `HUBSPOT_REPLY_UNKNOWN`) drive the drawer
163
+ * banner that appears above the composer when a customer reply fails.
164
+ * Distinct from `HUBSPOT_DISCONNECTED` (whole-system) and
165
+ * `TICKET_NOT_FOUND` (terminal-row) — the reply codes are per-attempt
166
+ * + retryable except for `HUBSPOT_404_THREAD`.
118
167
  */
119
- export type TicketActionErrorCode = 'PROPOSAL_NOT_CLAIMABLE' | 'TICKET_NOT_FOUND' | 'TICKET_OWNERSHIP_DENIED' | 'HUBSPOT_DISCONNECTED' | 'RATE_LIMITED' | 'INVALID_TOOL_ARGS' | 'UNKNOWN';
168
+ export type TicketActionErrorCode = 'PROPOSAL_NOT_CLAIMABLE' | 'TICKET_NOT_FOUND' | 'TICKET_OWNERSHIP_DENIED' | 'HUBSPOT_DISCONNECTED' | 'RATE_LIMITED' | 'INVALID_TOOL_ARGS' | 'HUBSPOT_5XX' | 'HUBSPOT_400_VALIDATION' | 'HUBSPOT_404_THREAD' | 'HUBSPOT_REPLY_UNKNOWN' | 'UNKNOWN';
120
169
  export interface MappedTicketActionError {
121
170
  code: TicketActionErrorCode;
122
171
  /** Human-readable copy safe to show in a toast. */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/tickets/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/tickets/types.ts"],"names":[],"mappings":"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"}
@@ -10,7 +10,8 @@
10
10
 
11
11
 
12
12
 
13
- var _chunkUXZ3ZJ3Mcjs = require('../../../chunk-UXZ3ZJ3M.cjs');
13
+ var _chunkXDPSSE4Ocjs = require('../../../chunk-XDPSSE4O.cjs');
14
+ require('../../../chunk-WBR7H6E3.cjs');
14
15
 
15
16
 
16
17
 
@@ -18,7 +19,6 @@ var _chunk664KA5FIcjs = require('../../../chunk-664KA5FI.cjs');
18
19
 
19
20
 
20
21
  var _chunkWZW7C7TFcjs = require('../../../chunk-WZW7C7TF.cjs');
21
- require('../../../chunk-WBR7H6E3.cjs');
22
22
  require('../../../chunk-VRHGVLSL.cjs');
23
23
 
24
24
  // src/components/ui/file-manager/file-manager.tsx
@@ -56,7 +56,7 @@ function FileManagerBreadcrumb({
56
56
  }
57
57
 
58
58
  // src/components/ui/file-manager/file-manager-action-bar.tsx
59
- _chunkUXZ3ZJ3Mcjs.init_button2.call(void 0, );
59
+ _chunkXDPSSE4Ocjs.init_button2.call(void 0, );
60
60
  _chunk664KA5FIcjs.init_cn.call(void 0, );
61
61
 
62
62
 
@@ -73,7 +73,7 @@ function FileManagerActionBar({
73
73
  }) {
74
74
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk664KA5FIcjs.cn.call(void 0, "flex items-center gap-4 flex-wrap md:justify-end", className), children: [
75
75
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
76
- _chunkUXZ3ZJ3Mcjs.Button,
76
+ _chunkXDPSSE4Ocjs.Button,
77
77
  {
78
78
  variant: "outline",
79
79
  size: "small-legacy",
@@ -83,7 +83,7 @@ function FileManagerActionBar({
83
83
  }
84
84
  ),
85
85
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
86
- _chunkUXZ3ZJ3Mcjs.Button,
86
+ _chunkXDPSSE4Ocjs.Button,
87
87
  {
88
88
  variant: "outline",
89
89
  size: "small-legacy",
@@ -94,7 +94,7 @@ function FileManagerActionBar({
94
94
  }
95
95
  ),
96
96
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
97
- _chunkUXZ3ZJ3Mcjs.Button,
97
+ _chunkXDPSSE4Ocjs.Button,
98
98
  {
99
99
  variant: "outline",
100
100
  size: "small-legacy",
@@ -105,7 +105,7 @@ function FileManagerActionBar({
105
105
  }
106
106
  ),
107
107
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
108
- _chunkUXZ3ZJ3Mcjs.Button,
108
+ _chunkXDPSSE4Ocjs.Button,
109
109
  {
110
110
  variant: "outline",
111
111
  size: "small-legacy",
@@ -116,7 +116,7 @@ function FileManagerActionBar({
116
116
  }
117
117
  ),
118
118
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
119
- _chunkUXZ3ZJ3Mcjs.Button,
119
+ _chunkXDPSSE4Ocjs.Button,
120
120
  {
121
121
  variant: "outline",
122
122
  size: "small-legacy",
@@ -126,7 +126,7 @@ function FileManagerActionBar({
126
126
  }
127
127
  ),
128
128
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
129
- _chunkUXZ3ZJ3Mcjs.Button,
129
+ _chunkXDPSSE4Ocjs.Button,
130
130
  {
131
131
  variant: "outline",
132
132
  size: "small-legacy",
@@ -145,7 +145,7 @@ _chunk664KA5FIcjs.init_cn.call(void 0, );
145
145
  // src/components/ui/file-manager/file-manager-table-row.tsx
146
146
 
147
147
 
148
- _chunkUXZ3ZJ3Mcjs.init_button2.call(void 0, );
148
+ _chunkXDPSSE4Ocjs.init_button2.call(void 0, );
149
149
  _chunk664KA5FIcjs.init_cn.call(void 0, );
150
150
 
151
151
  // src/components/ui/file-manager/file-icon.tsx
@@ -185,7 +185,7 @@ function FileIcon({ type, extension, className, size = "md" }) {
185
185
  // src/components/ui/file-manager/file-manager-context-menu.tsx
186
186
 
187
187
 
188
- _chunkUXZ3ZJ3Mcjs.init_button2.call(void 0, );
188
+ _chunkXDPSSE4Ocjs.init_button2.call(void 0, );
189
189
  _chunk664KA5FIcjs.init_cn.call(void 0, );
190
190
 
191
191
  function FileManagerContextMenu({
@@ -231,9 +231,9 @@ function FileManagerContextMenu({
231
231
  }
232
232
  ];
233
233
  const visibleItems = menuItems.filter((item) => item.show);
234
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkUXZ3ZJ3Mcjs.DropdownMenu, { open, onOpenChange, children: [
235
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkUXZ3ZJ3Mcjs.DropdownMenuTrigger, { asChild: true, children: trigger || /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
236
- _chunkUXZ3ZJ3Mcjs.Button,
234
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkXDPSSE4Ocjs.DropdownMenu, { open, onOpenChange, children: [
235
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXDPSSE4Ocjs.DropdownMenuTrigger, { asChild: true, children: trigger || /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
236
+ _chunkXDPSSE4Ocjs.Button,
237
237
  {
238
238
  variant: "transparent",
239
239
  size: "small-legacy",
@@ -242,15 +242,15 @@ function FileManagerContextMenu({
242
242
  }
243
243
  ) }),
244
244
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
245
- _chunkUXZ3ZJ3Mcjs.DropdownMenuContent,
245
+ _chunkXDPSSE4Ocjs.DropdownMenuContent,
246
246
  {
247
247
  align: "end",
248
248
  className: _chunk664KA5FIcjs.cn.call(void 0, "w-56", className),
249
249
  onClick: (e) => e.stopPropagation(),
250
250
  children: visibleItems.map((item, index) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _react2.default.Fragment, { children: [
251
- item.separator && index > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkUXZ3ZJ3Mcjs.DropdownMenuSeparator, {}),
251
+ item.separator && index > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXDPSSE4Ocjs.DropdownMenuSeparator, {}),
252
252
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
253
- _chunkUXZ3ZJ3Mcjs.DropdownMenuItem,
253
+ _chunkXDPSSE4Ocjs.DropdownMenuItem,
254
254
  {
255
255
  onClick: (e) => {
256
256
  e.stopPropagation();
@@ -315,7 +315,7 @@ function FileManagerTableRow({
315
315
  },
316
316
  children: [
317
317
  showCheckbox && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "mr-4", "data-no-row-click": true, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
318
- _chunkUXZ3ZJ3Mcjs.Checkbox,
318
+ _chunkXDPSSE4Ocjs.Checkbox,
319
319
  {
320
320
  checked: isSelected,
321
321
  onCheckedChange: handleCheckboxChange,
@@ -347,7 +347,7 @@ function FileManagerTableRow({
347
347
  onAction: handleContextAction,
348
348
  fileType: file.type,
349
349
  trigger: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
350
- _chunkUXZ3ZJ3Mcjs.Button,
350
+ _chunkXDPSSE4Ocjs.Button,
351
351
  {
352
352
  variant: "transparent",
353
353
  size: "small-legacy",
@@ -361,7 +361,7 @@ function FileManagerTableRow({
361
361
  }
362
362
  ),
363
363
  file.type === "folder" ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
364
- _chunkUXZ3ZJ3Mcjs.Button,
364
+ _chunkXDPSSE4Ocjs.Button,
365
365
  {
366
366
  variant: "transparent",
367
367
  size: "small-legacy",
@@ -380,7 +380,7 @@ function FileManagerTableRow({
380
380
  }
381
381
 
382
382
  // src/components/ui/file-manager/file-manager-empty.tsx
383
- _chunkUXZ3ZJ3Mcjs.init_button2.call(void 0, );
383
+ _chunkXDPSSE4Ocjs.init_button2.call(void 0, );
384
384
  _chunk664KA5FIcjs.init_cn.call(void 0, );
385
385
 
386
386
 
@@ -398,7 +398,7 @@ function FileManagerEmpty({
398
398
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h3", { className: "text-lg font-medium text-ods-text-primary mb-2", children: message }),
399
399
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-sm text-ods-text-secondary text-center max-w-md mb-6", children: description }),
400
400
  action && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
401
- _chunkUXZ3ZJ3Mcjs.Button,
401
+ _chunkXDPSSE4Ocjs.Button,
402
402
  {
403
403
  variant: "accent",
404
404
  size: "small-legacy",
@@ -467,26 +467,26 @@ function FileManagerTable({
467
467
  const skeletonRows = 8;
468
468
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk664KA5FIcjs.cn.call(void 0, "bg-ods-bg border border-ods-border rounded-lg flex flex-col", className), children: [
469
469
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center h-12 px-4 bg-ods-bg-secondary border-b border-ods-border rounded-t-lg", children: [
470
- showCheckboxes && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "mr-4", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkUXZ3ZJ3Mcjs.Skeleton, { className: "h-5 w-5 rounded" }) }),
470
+ showCheckboxes && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "mr-4", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXDPSSE4Ocjs.Skeleton, { className: "h-5 w-5 rounded" }) }),
471
471
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex items-center gap-3 flex-1 min-w-0 text-sm font-medium text-ods-text-secondary", children: "NAME" }),
472
472
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-24 shrink-0 pr-4 text-sm font-medium text-ods-text-secondary", children: "SIZE" }),
473
473
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-36 shrink-0 pl-4 text-sm font-medium text-ods-text-secondary", children: "EDITED" }),
474
474
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-48 shrink-0 pl-4 flex justify-end" })
475
475
  ] }),
476
476
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "divide-y divide-ods-border rounded-b-lg flex-1 overflow-auto", children: Array.from({ length: skeletonRows }).map((_, idx) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "bg-ods-card group flex items-center h-16 px-4 border-ods-border", children: [
477
- showCheckboxes && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "mr-4", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkUXZ3ZJ3Mcjs.Skeleton, { className: "h-5 w-5 rounded" }) }),
477
+ showCheckboxes && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "mr-4", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXDPSSE4Ocjs.Skeleton, { className: "h-5 w-5 rounded" }) }),
478
478
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-3 flex-1 min-w-0", children: [
479
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkUXZ3ZJ3Mcjs.Skeleton, { className: "h-6 w-6 rounded" }),
479
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXDPSSE4Ocjs.Skeleton, { className: "h-6 w-6 rounded" }),
480
480
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col min-w-0", children: [
481
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkUXZ3ZJ3Mcjs.Skeleton, { className: "h-4 w-32" }),
482
- isSearchResult && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkUXZ3ZJ3Mcjs.Skeleton, { className: "h-3 w-48 mt-1" })
481
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXDPSSE4Ocjs.Skeleton, { className: "h-4 w-32" }),
482
+ isSearchResult && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXDPSSE4Ocjs.Skeleton, { className: "h-3 w-48 mt-1" })
483
483
  ] })
484
484
  ] }),
485
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-24 shrink-0 pr-4", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkUXZ3ZJ3Mcjs.Skeleton, { className: "h-4 w-16" }) }),
486
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-36 shrink-0 pl-4", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkUXZ3ZJ3Mcjs.Skeleton, { className: "h-4 w-24" }) }),
485
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-24 shrink-0 pr-4", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXDPSSE4Ocjs.Skeleton, { className: "h-4 w-16" }) }),
486
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-36 shrink-0 pl-4", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXDPSSE4Ocjs.Skeleton, { className: "h-4 w-24" }) }),
487
487
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "w-48 shrink-0 pl-4 flex items-center justify-end gap-1", children: [
488
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkUXZ3ZJ3Mcjs.Skeleton, { className: "h-8 w-8 rounded" }),
489
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkUXZ3ZJ3Mcjs.Skeleton, { className: "h-8 w-8 rounded" })
488
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXDPSSE4Ocjs.Skeleton, { className: "h-8 w-8 rounded" }),
489
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXDPSSE4Ocjs.Skeleton, { className: "h-8 w-8 rounded" })
490
490
  ] })
491
491
  ] }, idx)) })
492
492
  ] });
@@ -503,7 +503,7 @@ function FileManagerTable({
503
503
  children: [
504
504
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center h-12 px-4 bg-ods-bg-secondary border-b border-ods-border rounded-t-lg", children: [
505
505
  showCheckboxes && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "mr-4", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
506
- _chunkUXZ3ZJ3Mcjs.Checkbox,
506
+ _chunkXDPSSE4Ocjs.Checkbox,
507
507
  {
508
508
  checked: allSelected || someSelected,
509
509
  onCheckedChange: handleSelectAll,
@@ -667,7 +667,7 @@ function FileManager({
667
667
  )
668
668
  ] }),
669
669
  showSearch && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
670
- _chunkUXZ3ZJ3Mcjs.Input,
670
+ _chunkXDPSSE4Ocjs.Input,
671
671
  {
672
672
  value: searchQuery,
673
673
  onChange: (e) => _optionalChain([onSearch, 'optionalCall', _27 => _27(e.target.value)]),
@@ -707,39 +707,39 @@ function FileManagerSkeleton({
707
707
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex flex-col h-full bg-ods-bg", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex-1 flex flex-col py-6 space-y-6 min-h-0", children: [
708
708
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-wrap items-start justify-between gap-4", children: [
709
709
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex-1 min-w-0 flex items-center gap-2", children: [
710
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkUXZ3ZJ3Mcjs.Skeleton, { className: "h-5 w-12" }),
711
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkUXZ3ZJ3Mcjs.Skeleton, { className: "h-4 w-4 rounded-full" }),
712
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkUXZ3ZJ3Mcjs.Skeleton, { className: "h-5 w-20" }),
713
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkUXZ3ZJ3Mcjs.Skeleton, { className: "h-4 w-4 rounded-full" }),
714
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkUXZ3ZJ3Mcjs.Skeleton, { className: "h-5 w-24" })
710
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXDPSSE4Ocjs.Skeleton, { className: "h-5 w-12" }),
711
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXDPSSE4Ocjs.Skeleton, { className: "h-4 w-4 rounded-full" }),
712
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXDPSSE4Ocjs.Skeleton, { className: "h-5 w-20" }),
713
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXDPSSE4Ocjs.Skeleton, { className: "h-4 w-4 rounded-full" }),
714
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXDPSSE4Ocjs.Skeleton, { className: "h-5 w-24" })
715
715
  ] }),
716
716
  showActions && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex-shrink-0 flex items-center gap-2", children: [
717
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkUXZ3ZJ3Mcjs.Skeleton, { className: "h-9 w-24" }),
718
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkUXZ3ZJ3Mcjs.Skeleton, { className: "h-9 w-20" }),
719
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkUXZ3ZJ3Mcjs.Skeleton, { className: "h-9 w-20" }),
720
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkUXZ3ZJ3Mcjs.Skeleton, { className: "h-9 w-28" })
717
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXDPSSE4Ocjs.Skeleton, { className: "h-9 w-24" }),
718
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXDPSSE4Ocjs.Skeleton, { className: "h-9 w-20" }),
719
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXDPSSE4Ocjs.Skeleton, { className: "h-9 w-20" }),
720
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXDPSSE4Ocjs.Skeleton, { className: "h-9 w-28" })
721
721
  ] })
722
722
  ] }),
723
- showSearch && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkUXZ3ZJ3Mcjs.Skeleton, { className: "h-10 w-full rounded-lg" }),
723
+ showSearch && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXDPSSE4Ocjs.Skeleton, { className: "h-10 w-full rounded-lg" }),
724
724
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex-1 min-h-0", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "bg-ods-bg border border-ods-border rounded-lg flex flex-col", children: [
725
725
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center h-12 px-4 bg-ods-bg-secondary border-b border-ods-border rounded-t-lg", children: [
726
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "mr-4", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkUXZ3ZJ3Mcjs.Skeleton, { className: "h-5 w-5 rounded" }) }),
726
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "mr-4", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXDPSSE4Ocjs.Skeleton, { className: "h-5 w-5 rounded" }) }),
727
727
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex items-center gap-3 flex-1 min-w-0 text-sm font-medium text-ods-text-secondary", children: "NAME" }),
728
728
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-24 shrink-0 pr-4 text-sm font-medium text-ods-text-secondary", children: "SIZE" }),
729
729
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-36 shrink-0 pl-4 text-sm font-medium text-ods-text-secondary", children: "EDITED" }),
730
730
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-48 shrink-0 pl-4 flex justify-end" })
731
731
  ] }),
732
732
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "divide-y divide-ods-border rounded-b-lg flex-1 overflow-auto min-h-0", children: rowPlaceholders.map((_, idx) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "bg-ods-card flex items-center h-16 px-4 border-ods-border", children: [
733
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "mr-4", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkUXZ3ZJ3Mcjs.Skeleton, { className: "h-5 w-5 rounded" }) }),
733
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "mr-4", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXDPSSE4Ocjs.Skeleton, { className: "h-5 w-5 rounded" }) }),
734
734
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-3 flex-1 min-w-0", children: [
735
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkUXZ3ZJ3Mcjs.Skeleton, { className: "h-6 w-6 rounded" }),
736
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex flex-col min-w-0", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkUXZ3ZJ3Mcjs.Skeleton, { className: "h-4 w-32" }) })
735
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXDPSSE4Ocjs.Skeleton, { className: "h-6 w-6 rounded" }),
736
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex flex-col min-w-0", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXDPSSE4Ocjs.Skeleton, { className: "h-4 w-32" }) })
737
737
  ] }),
738
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-24 shrink-0 pr-4", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkUXZ3ZJ3Mcjs.Skeleton, { className: "h-4 w-16" }) }),
739
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-36 shrink-0 pl-4", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkUXZ3ZJ3Mcjs.Skeleton, { className: "h-4 w-24" }) }),
738
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-24 shrink-0 pr-4", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXDPSSE4Ocjs.Skeleton, { className: "h-4 w-16" }) }),
739
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-36 shrink-0 pl-4", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXDPSSE4Ocjs.Skeleton, { className: "h-4 w-24" }) }),
740
740
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "w-48 shrink-0 pl-4 flex items-center justify-end gap-1", children: [
741
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkUXZ3ZJ3Mcjs.Skeleton, { className: "h-8 w-8 rounded" }),
742
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkUXZ3ZJ3Mcjs.Skeleton, { className: "h-8 w-8 rounded" })
741
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXDPSSE4Ocjs.Skeleton, { className: "h-8 w-8 rounded" }),
742
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXDPSSE4Ocjs.Skeleton, { className: "h-8 w-8 rounded" })
743
743
  ] })
744
744
  ] }, idx)) })
745
745
  ] }) })