@flamingo-stack/openframe-frontend-core 0.0.503 → 0.0.504-snapshot.20260801181709

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 (191) hide show
  1. package/dist/{chunk-SGWPW2AO.cjs → chunk-2A74VRAF.cjs} +18 -18
  2. package/dist/{chunk-SGWPW2AO.cjs.map → chunk-2A74VRAF.cjs.map} +1 -1
  3. package/dist/{chunk-LILQJ3UZ.cjs → chunk-3ENGUBJP.cjs} +1 -1
  4. package/dist/chunk-3ENGUBJP.cjs.map +1 -0
  5. package/dist/{chunk-AWDHRIL3.cjs → chunk-4ST2BOWJ.cjs} +75 -75
  6. package/dist/{chunk-AWDHRIL3.cjs.map → chunk-4ST2BOWJ.cjs.map} +1 -1
  7. package/dist/{chunk-SFJRMBJC.js → chunk-5SVNA7IU.js} +2 -2
  8. package/dist/{chunk-OAWFYZZT.js → chunk-7DOSAJDK.js} +3 -3
  9. package/dist/{chunk-J4T5ZBWG.cjs → chunk-BZRP54IO.cjs} +19 -19
  10. package/dist/{chunk-J4T5ZBWG.cjs.map → chunk-BZRP54IO.cjs.map} +1 -1
  11. package/dist/{chunk-BZF63JXP.js → chunk-CRJVO4KO.js} +6 -6
  12. package/dist/{chunk-5RIHLXEP.cjs → chunk-DDVQ5NKK.cjs} +33 -33
  13. package/dist/{chunk-5RIHLXEP.cjs.map → chunk-DDVQ5NKK.cjs.map} +1 -1
  14. package/dist/{chunk-HR6F6IP4.js → chunk-DIKJLAMY.js} +78 -43
  15. package/dist/chunk-DIKJLAMY.js.map +1 -0
  16. package/dist/{chunk-VO2ZONMR.js → chunk-FNTFWP2A.js} +3 -3
  17. package/dist/{chunk-2OXJ6NHI.cjs → chunk-GJZ42TTG.cjs} +7 -7
  18. package/dist/{chunk-2OXJ6NHI.cjs.map → chunk-GJZ42TTG.cjs.map} +1 -1
  19. package/dist/{chunk-JIZJDAXI.cjs → chunk-GXRVBKYX.cjs} +12 -12
  20. package/dist/{chunk-JIZJDAXI.cjs.map → chunk-GXRVBKYX.cjs.map} +1 -1
  21. package/dist/{chunk-F7AD5CUU.js → chunk-H3N4P3CG.js} +3 -3
  22. package/dist/chunk-H3N4P3CG.js.map +1 -0
  23. package/dist/{chunk-VCPTU4IW.js → chunk-HWER6KGU.js} +7 -7
  24. package/dist/{chunk-4SR2QHMB.js → chunk-ITVWX5HX.js} +3 -3
  25. package/dist/{chunk-FFXNRJ5S.cjs → chunk-LOBR7IC6.cjs} +6 -6
  26. package/dist/chunk-LOBR7IC6.cjs.map +1 -0
  27. package/dist/{chunk-72DF3QTA.cjs → chunk-MJQ263KS.cjs} +14 -14
  28. package/dist/{chunk-72DF3QTA.cjs.map → chunk-MJQ263KS.cjs.map} +1 -1
  29. package/dist/{chunk-FTOVZ7O2.js → chunk-NPO6CHCR.js} +7 -7
  30. package/dist/{chunk-XV5SXALY.js → chunk-NT5FX7GZ.js} +3 -3
  31. package/dist/{chunk-UCV4LFUG.cjs → chunk-NY75FKN6.cjs} +40 -40
  32. package/dist/{chunk-UCV4LFUG.cjs.map → chunk-NY75FKN6.cjs.map} +1 -1
  33. package/dist/{chunk-4UNQMYP7.cjs → chunk-O32Y4E4R.cjs} +3 -3
  34. package/dist/{chunk-4UNQMYP7.cjs.map → chunk-O32Y4E4R.cjs.map} +1 -1
  35. package/dist/{chunk-CLQEBWV7.js → chunk-QE55ROZW.js} +4 -4
  36. package/dist/{chunk-WHJGRRK2.js → chunk-QW7SW5HY.js} +52 -43
  37. package/dist/chunk-QW7SW5HY.js.map +1 -0
  38. package/dist/{chunk-JGXAVNZQ.js → chunk-R6CKL7IR.js} +2464 -1886
  39. package/dist/chunk-R6CKL7IR.js.map +1 -0
  40. package/dist/{chunk-L5CI57RM.cjs → chunk-T3BF6JTQ.cjs} +52 -43
  41. package/dist/chunk-T3BF6JTQ.cjs.map +1 -0
  42. package/dist/{chunk-G43CEISB.js → chunk-TA3VJ2QO.js} +4 -4
  43. package/dist/{chunk-7L2RVINX.cjs → chunk-TRS4CIAS.cjs} +35 -35
  44. package/dist/{chunk-7L2RVINX.cjs.map → chunk-TRS4CIAS.cjs.map} +1 -1
  45. package/dist/{chunk-DMXB3VE2.cjs → chunk-U3YLML53.cjs} +1837 -1259
  46. package/dist/chunk-U3YLML53.cjs.map +1 -0
  47. package/dist/{chunk-3T4SMJM5.cjs → chunk-VDKNUC3N.cjs} +181 -146
  48. package/dist/chunk-VDKNUC3N.cjs.map +1 -0
  49. package/dist/{chunk-RR3Z52X5.cjs → chunk-W3QCFQ56.cjs} +42 -42
  50. package/dist/{chunk-RR3Z52X5.cjs.map → chunk-W3QCFQ56.cjs.map} +1 -1
  51. package/dist/{chunk-VYEDTVIZ.js → chunk-XJPMTJAR.js} +4 -4
  52. package/dist/{chunk-6GT557KN.js → chunk-XKIA4XVE.js} +1 -1
  53. package/dist/chunk-XKIA4XVE.js.map +1 -0
  54. package/dist/components/case-studies/index.cjs +11 -11
  55. package/dist/components/case-studies/index.js +5 -5
  56. package/dist/components/chat/index.cjs +5 -5
  57. package/dist/components/chat/index.js +4 -4
  58. package/dist/components/contact/index.cjs +6 -6
  59. package/dist/components/contact/index.js +5 -5
  60. package/dist/components/docs/index.cjs +8 -8
  61. package/dist/components/docs/index.js +7 -7
  62. package/dist/components/embeds/index.cjs +6 -6
  63. package/dist/components/embeds/index.js +5 -5
  64. package/dist/components/faq/index.cjs +7 -7
  65. package/dist/components/faq/index.js +6 -6
  66. package/dist/components/features/index.cjs +5 -5
  67. package/dist/components/features/index.js +4 -4
  68. package/dist/components/help-center-pages/index.cjs +24 -24
  69. package/dist/components/help-center-pages/index.js +15 -15
  70. package/dist/components/index.cjs +169 -165
  71. package/dist/components/index.cjs.map +1 -1
  72. package/dist/components/index.js +17 -13
  73. package/dist/components/index.js.map +1 -1
  74. package/dist/components/navigation/app-header.d.ts +8 -0
  75. package/dist/components/navigation/app-header.d.ts.map +1 -1
  76. package/dist/components/navigation/header-button.d.ts +5 -1
  77. package/dist/components/navigation/header-button.d.ts.map +1 -1
  78. package/dist/components/navigation/header.d.ts.map +1 -1
  79. package/dist/components/navigation/index.cjs +9 -5
  80. package/dist/components/navigation/index.cjs.map +1 -1
  81. package/dist/components/navigation/index.d.ts +4 -0
  82. package/dist/components/navigation/index.d.ts.map +1 -1
  83. package/dist/components/navigation/index.js +8 -4
  84. package/dist/components/navigation/mingo-ai-button.d.ts.map +1 -1
  85. package/dist/components/navigation/navigation-sidebar-item.d.ts.map +1 -1
  86. package/dist/components/navigation/ticket-alerts-button.d.ts +29 -0
  87. package/dist/components/navigation/ticket-alerts-button.d.ts.map +1 -0
  88. package/dist/components/navigation/top-navigation.d.ts +5 -1
  89. package/dist/components/navigation/top-navigation.d.ts.map +1 -1
  90. package/dist/components/navigation/unread-dot.d.ts +19 -0
  91. package/dist/components/navigation/unread-dot.d.ts.map +1 -0
  92. package/dist/components/onboarding-guides/index.cjs +9 -9
  93. package/dist/components/onboarding-guides/index.js +8 -8
  94. package/dist/components/related-content/index.cjs +7 -7
  95. package/dist/components/related-content/index.js +6 -6
  96. package/dist/components/tickets/help-center-card.d.ts.map +1 -1
  97. package/dist/components/tickets/hooks/use-ticket-actions.d.ts.map +1 -1
  98. package/dist/components/tickets/hooks/use-ticket-engagements.d.ts +1 -9
  99. package/dist/components/tickets/hooks/use-ticket-engagements.d.ts.map +1 -1
  100. package/dist/components/tickets/hooks/use-tickets-list.d.ts +0 -7
  101. package/dist/components/tickets/hooks/use-tickets-list.d.ts.map +1 -1
  102. package/dist/components/tickets/index.cjs +15 -8
  103. package/dist/components/tickets/index.cjs.map +1 -1
  104. package/dist/components/tickets/index.d.ts +2 -1
  105. package/dist/components/tickets/index.d.ts.map +1 -1
  106. package/dist/components/tickets/index.js +14 -7
  107. package/dist/components/tickets/ticket-detail-drawer.d.ts.map +1 -1
  108. package/dist/components/tickets/ticket-live-provider.d.ts +58 -0
  109. package/dist/components/tickets/ticket-live-provider.d.ts.map +1 -0
  110. package/dist/components/tickets/types.d.ts +58 -11
  111. package/dist/components/tickets/types.d.ts.map +1 -1
  112. package/dist/components/ui/button/button.d.ts +6 -5
  113. package/dist/components/ui/button/button.d.ts.map +1 -1
  114. package/dist/components/ui/file-manager/index.cjs +50 -50
  115. package/dist/components/ui/file-manager/index.js +1 -1
  116. package/dist/components/ui/index.cjs +5 -5
  117. package/dist/components/ui/index.js +4 -4
  118. package/dist/contexts/chat-runtime-context.d.ts +8 -0
  119. package/dist/contexts/chat-runtime-context.d.ts.map +1 -1
  120. package/dist/contexts/index.cjs +2 -2
  121. package/dist/contexts/index.js +1 -1
  122. package/dist/hooks/index.cjs +3 -3
  123. package/dist/hooks/index.js +2 -2
  124. package/dist/hooks/ui/use-header-height.d.ts.map +1 -1
  125. package/dist/index.cjs +11 -5
  126. package/dist/index.cjs.map +1 -1
  127. package/dist/index.js +10 -4
  128. package/dist/types/navigation.d.ts +10 -0
  129. package/dist/types/navigation.d.ts.map +1 -1
  130. package/dist/utils/index.cjs +171 -0
  131. package/dist/utils/index.cjs.map +1 -1
  132. package/dist/utils/index.d.ts +1 -0
  133. package/dist/utils/index.d.ts.map +1 -1
  134. package/dist/utils/index.js +171 -1
  135. package/dist/utils/index.js.map +1 -1
  136. package/dist/utils/sse-subscription.d.ts +60 -0
  137. package/dist/utils/sse-subscription.d.ts.map +1 -0
  138. package/package.json +1 -1
  139. package/src/components/features/time-tracker/time-tracker-header-button.tsx +1 -1
  140. package/src/components/navigation/app-header.tsx +36 -20
  141. package/src/components/navigation/header-button.tsx +18 -2
  142. package/src/components/navigation/header-mingo-button.tsx +2 -2
  143. package/src/components/navigation/header-skeleton.tsx +4 -4
  144. package/src/components/navigation/header.tsx +41 -21
  145. package/src/components/navigation/index.ts +4 -0
  146. package/src/components/navigation/mingo-ai-button.tsx +23 -22
  147. package/src/components/navigation/mobile-burger-menu.tsx +3 -3
  148. package/src/components/navigation/navigation-sidebar-item.tsx +2 -3
  149. package/src/components/navigation/ticket-alerts-button.tsx +61 -0
  150. package/src/components/navigation/top-navigation.tsx +17 -1
  151. package/src/components/navigation/unread-dot.tsx +34 -0
  152. package/src/components/tickets/.types.md +1 -2
  153. package/src/components/tickets/help-center-card.tsx +16 -0
  154. package/src/components/tickets/help-center-list.tsx +6 -6
  155. package/src/components/tickets/hooks/.use-ticket-engagements.md +3 -12
  156. package/src/components/tickets/hooks/.use-tickets-list.md +0 -2
  157. package/src/components/tickets/hooks/use-ticket-actions.ts +9 -0
  158. package/src/components/tickets/hooks/use-ticket-engagements.ts +4 -13
  159. package/src/components/tickets/hooks/use-tickets-list.ts +2 -13
  160. package/src/components/tickets/index.ts +10 -0
  161. package/src/components/tickets/ticket-detail-drawer.tsx +45 -13
  162. package/src/components/tickets/ticket-live-provider.tsx +474 -0
  163. package/src/components/tickets/types.ts +62 -11
  164. package/src/components/ui/button/button.tsx +165 -133
  165. package/src/contexts/chat-runtime-context.tsx +8 -0
  166. package/src/hooks/ui/use-header-height.ts +3 -1
  167. package/src/stories/TopNavigation.stories.tsx +20 -1
  168. package/src/types/navigation.ts +10 -0
  169. package/src/utils/index.ts +12 -0
  170. package/src/utils/sse-subscription.ts +276 -0
  171. package/dist/chunk-3T4SMJM5.cjs.map +0 -1
  172. package/dist/chunk-6GT557KN.js.map +0 -1
  173. package/dist/chunk-DMXB3VE2.cjs.map +0 -1
  174. package/dist/chunk-F7AD5CUU.js.map +0 -1
  175. package/dist/chunk-FFXNRJ5S.cjs.map +0 -1
  176. package/dist/chunk-HR6F6IP4.js.map +0 -1
  177. package/dist/chunk-JGXAVNZQ.js.map +0 -1
  178. package/dist/chunk-L5CI57RM.cjs.map +0 -1
  179. package/dist/chunk-LILQJ3UZ.cjs.map +0 -1
  180. package/dist/chunk-WHJGRRK2.js.map +0 -1
  181. /package/dist/{chunk-SFJRMBJC.js.map → chunk-5SVNA7IU.js.map} +0 -0
  182. /package/dist/{chunk-OAWFYZZT.js.map → chunk-7DOSAJDK.js.map} +0 -0
  183. /package/dist/{chunk-BZF63JXP.js.map → chunk-CRJVO4KO.js.map} +0 -0
  184. /package/dist/{chunk-VO2ZONMR.js.map → chunk-FNTFWP2A.js.map} +0 -0
  185. /package/dist/{chunk-VCPTU4IW.js.map → chunk-HWER6KGU.js.map} +0 -0
  186. /package/dist/{chunk-4SR2QHMB.js.map → chunk-ITVWX5HX.js.map} +0 -0
  187. /package/dist/{chunk-FTOVZ7O2.js.map → chunk-NPO6CHCR.js.map} +0 -0
  188. /package/dist/{chunk-XV5SXALY.js.map → chunk-NT5FX7GZ.js.map} +0 -0
  189. /package/dist/{chunk-CLQEBWV7.js.map → chunk-QE55ROZW.js.map} +0 -0
  190. /package/dist/{chunk-G43CEISB.js.map → chunk-TA3VJ2QO.js.map} +0 -0
  191. /package/dist/{chunk-VYEDTVIZ.js.map → chunk-XJPMTJAR.js.map} +0 -0
@@ -0,0 +1,58 @@
1
+ /**
2
+ * TicketLiveProvider — the ONE client home for support-ticket realtime.
3
+ *
4
+ * Owns:
5
+ * - the SSE subscription lifecycle (`createSseSubscription` over
6
+ * `ticketStreamUrl`), with `connected` derived from the SERVER's
7
+ * `status` frames (`subscribed` → true; `retrying`/`reconnect_failed`
8
+ * → false) — never from "the HTTP stream is open";
9
+ * - the unread summary (single source: `ticket-unread-summary`) —
10
+ * header badge total AND per-row dots both read this map;
11
+ * - resync on every (re)connect (summary refetch + engagements
12
+ * invalidation) — the single rule that closes every event-gap class
13
+ * (forced maxDuration reconnects, network blips, tab sleep);
14
+ * - visibility gating: hidden → 45s grace → disconnect; visible →
15
+ * reconnect + resync;
16
+ * - `markRead` with local write-through zeroing (no interval polling
17
+ * exists — a stale post-close map would re-light the dot forever).
18
+ *
19
+ * There is NO polling anywhere: the summary query has no
20
+ * `refetchInterval`; it refetches on mount, (re)connect, window focus,
21
+ * and (debounced) stream events. Hosts whose stream endpoint 404s
22
+ * (terminal) or is absent keep exactly focus/mount freshness.
23
+ *
24
+ * Invalidation semantics on events — deliberately `invalidateQueries`,
25
+ * NOT `setQueryData` patches: the ticket hooks run `gcTime: 0`, so
26
+ * there is usually no cache entry to patch, and `TicketsCacheSlot`
27
+ * shape rules apply when there is.
28
+ */
29
+ import React from 'react';
30
+ export interface TicketLiveContextValue {
31
+ /** Viewer has a resolved, non-anon chat identity. Surfaces (e.g. the
32
+ * header cell) hide themselves when false — computed here so they
33
+ * don't each spin up their own identity resolution. */
34
+ authed: boolean;
35
+ /** Realtime-subscribed (server-confirmed), not merely HTTP-open. */
36
+ connected: boolean;
37
+ /** Unread total across tickets — drives the header dot. */
38
+ unreadTotal: number;
39
+ /** Per-ticket unread counts (missing key = 0) — drives row dots.
40
+ * The currently-open ticket is masked to 0. */
41
+ unreadByTicket: Record<string, number>;
42
+ /** Mark a ticket read: POSTs the receipt, then locally zeroes the
43
+ * ticket in the summary map (write-through; reconciled by the next
44
+ * real refetch). */
45
+ markRead: (ticketExternalId: string) => Promise<void>;
46
+ /** Drawer open/close registration — suppresses unread bumps for the
47
+ * open ticket and masks it in the derived map. */
48
+ setOpenTicketId: (ticketExternalId: string | null) => void;
49
+ /** Hint that the viewer just created a ticket — retries a `no-stream`
50
+ * (204) subscription. */
51
+ notifyTicketCreated: () => void;
52
+ }
53
+ export declare function useOptionalTicketLive(): TicketLiveContextValue | null;
54
+ export declare function useTicketLive(): TicketLiveContextValue;
55
+ export declare function TicketLiveProvider({ children }: {
56
+ children: React.ReactNode;
57
+ }): React.JSX.Element;
58
+ //# sourceMappingURL=ticket-live-provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ticket-live-provider.d.ts","sourceRoot":"","sources":["../../../src/components/tickets/ticket-live-provider.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAA;AAsCzB,MAAM,WAAW,sBAAsB;IACrC;;4DAEwD;IACxD,MAAM,EAAE,OAAO,CAAA;IACf,oEAAoE;IACpE,SAAS,EAAE,OAAO,CAAA;IAClB,2DAA2D;IAC3D,WAAW,EAAE,MAAM,CAAA;IACnB;oDACgD;IAChD,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACtC;;yBAEqB;IACrB,QAAQ,EAAE,CAAC,gBAAgB,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACrD;uDACmD;IACnD,eAAe,EAAE,CAAC,gBAAgB,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAA;IAC1D;8BAC0B;IAC1B,mBAAmB,EAAE,MAAM,IAAI,CAAA;CAChC;AAID,wBAAgB,qBAAqB,IAAI,sBAAsB,GAAG,IAAI,CAErE;AAED,wBAAgB,aAAa,IAAI,sBAAsB,CAMtD;AAUD,wBAAgB,kBAAkB,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,qBAsW7E"}
@@ -189,18 +189,65 @@ export interface MappedTicketActionError {
189
189
  */
190
190
  export declare const TICKET_TEXT_MAX_CHARS = 5000;
191
191
  /**
192
- * Live-refresh cadence (ms) for an OPEN ticket drawer. Drives BOTH
193
- * surfaces that must stay current while the customer is looking at a
194
- * ticket:
195
- * - the ticket LIST poll (`useTicketsList.refetchInterval`) surfaces
196
- * out-of-band status / pipeline / priority / assignee changes;
197
- * - the CONVERSATION poll (`useTicketEngagements.refetchInterval`) →
198
- * surfaces new agent replies + attachments.
199
- * Single source of truth so the two surfaces never drift. Both leave
200
- * `refetchIntervalInBackground` at its default (false), so polling pauses
201
- * on a hidden tab — no wasted requests when the user tabs away.
192
+ * Wire contract of the ticket live stream (`GET /api/chat/agent/
193
+ * ticket-stream`, SSE). Producer (the hub route's `mapEvent`) imports
194
+ * THIS type — same producer/consumer SSOT pattern as
195
+ * `ConversationEngagementWire = TicketEngagement`. A schema drift here
196
+ * would be a silent serialization bug; keep one named contract.
197
+ *
198
+ * Frames carry METADATA ONLY — never message bodies. Content is always
199
+ * refetched through the ACL'd `list-engagements` path (one read path).
200
+ *
201
+ * Event names (`eventType`):
202
+ * - `ticket-message` — a message row landed in the mirror for one of
203
+ * the viewer's tickets. `data` carries the metadata.
204
+ * - `ticket-resync` — degraded frame: something happened that the
205
+ * server couldn't fully describe (truncated Realtime payload, or
206
+ * the connection's ownership set just gained tickets). Clients
207
+ * respond by refetching the unread summary + invalidating queries.
208
+ *
209
+ * The server also emits `status` frames (`subscribed` / `retrying` /
210
+ * `reconnect_failed`) from the shared SSE utility — clients derive
211
+ * `connected` from those, NOT from the HTTP stream being open.
212
+ */
213
+ export type TicketStreamEventType = 'ticket-message' | 'ticket-resync';
214
+ /** Metadata payload of a `ticket-message` frame. */
215
+ export type TicketMessageStreamData = {
216
+ ticket_external_id: string;
217
+ /** Mirror row's HubSpot message id. */
218
+ message_id: string;
219
+ /** Server-stamped via the same direction predicate the wire mapper
220
+ * uses. Clients never re-derive author classification. */
221
+ authorRole: 'customer' | 'support';
222
+ /** Server-stamped via the visibility+direction unread predicate
223
+ * (`countsAsUnread` in the hub's conversations DAL). ONLY frames
224
+ * with `true` may bump client-side unread state. */
225
+ countsAsUnread: boolean;
226
+ hubspot_created_at: string | null;
227
+ };
228
+ export interface TicketStreamEvent {
229
+ eventType: TicketStreamEventType;
230
+ /** Human-readable label (SSE envelope compat) — clients ignore it. */
231
+ message: string;
232
+ /** Present on `ticket-message`; absent on `ticket-resync`. */
233
+ data?: TicketMessageStreamData;
234
+ }
235
+ /**
236
+ * Wire shape of `POST /api/chat/agent/ticket-unread-summary` — the
237
+ * SINGLE unread source. Header badge total AND per-row dots both read
238
+ * this via the `TicketLiveProvider` map; missing keys mean 0.
239
+ */
240
+ export interface TicketUnreadSummary {
241
+ totalUnread: number;
242
+ tickets: Record<string, number>;
243
+ }
244
+ /**
245
+ * Trailing debounce for `markRead` while the drawer is open and new
246
+ * messages stream in — flushed on drawer close so a fast open/close
247
+ * still persists the receipt. Named beside its sibling cadences so
248
+ * every timing knob lives in one file.
202
249
  */
203
- export declare const TICKET_LIVE_POLL_MS = 8000;
250
+ export declare const TICKET_MARK_READ_DEBOUNCE_MS = 2000;
204
251
  /**
205
252
  * Centralized toast copy. Keep all wording here so QA / localization
206
253
  * can find every user-visible string in one file.
@@ -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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"}
@@ -1,15 +1,16 @@
1
- import { type VariantProps } from "class-variance-authority";
2
- import React from "react";
1
+ import { type VariantProps } from 'class-variance-authority';
2
+ import React from 'react';
3
3
  declare const buttonVariants: (props?: ({
4
4
  variant?: "accent" | "warning" | "outline" | "transparent" | "destructive" | "glyph" | "overlay" | null | undefined;
5
5
  size?: "default" | "small" | "small-legacy" | "compact" | "icon" | "icon-sm" | "icon-glyph" | null | undefined;
6
+ font?: "bold" | "regular" | null | undefined;
6
7
  fullWidth?: boolean | null | undefined;
7
8
  noPaddingX?: boolean | null | undefined;
8
9
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
9
10
  /** @deprecated Use `size="small"` instead. Temporary alias kept for backward compatibility; will be removed in the future. */
10
- type DeprecatedButtonSize = "small-legacy";
11
- type ButtonSize = Exclude<VariantProps<typeof buttonVariants>["size"], "small-legacy" | null | undefined> | DeprecatedButtonSize;
12
- interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement>, Omit<VariantProps<typeof buttonVariants>, "size"> {
11
+ type DeprecatedButtonSize = 'small-legacy';
12
+ type ButtonSize = Exclude<VariantProps<typeof buttonVariants>['size'], 'small-legacy' | null | undefined> | DeprecatedButtonSize;
13
+ interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement>, Omit<VariantProps<typeof buttonVariants>, 'size'> {
13
14
  asChild?: boolean;
14
15
  href?: string;
15
16
  openInNewTab?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"button.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/button/button.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAEjE,OAAO,KAAK,MAAM,OAAO,CAAA;AAMzB,QAAA,MAAM,cAAc;;;;;8EAgEnB,CAAA;AAoED,8HAA8H;AAC9H,KAAK,oBAAoB,GAAG,cAAc,CAAA;AAE1C,KAAK,UAAU,GAAG,OAAO,CAAC,YAAY,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,EAAE,cAAc,GAAG,IAAI,GAAG,SAAS,CAAC,GAAG,oBAAoB,CAAA;AAEhI,UAAU,WACR,SAAQ,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EACnD,IAAI,CAAC,YAAY,CAAC,OAAO,cAAc,CAAC,EAAE,MAAM,CAAC;IACnD,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB;;;;;;OAMG;IACH,SAAS,CAAC,EAAE;QACV,IAAI,EAAE,MAAM,CAAA;QACZ,MAAM,CAAC,EAAE,QAAQ,CAAA;QACjB,GAAG,CAAC,EAAE,qBAAqB,CAAA;QAC3B,OAAO,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAA;KACrD,GAAG,IAAI,CAAA;IACR,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC1B,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC3B;;;;;OAKG;IACH,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC3B,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,IAAI,CAAC,EAAE,UAAU,CAAA;CAClB;AAaD,QAAA,MAAM,MAAM,uFAwKV,CAAA;AAEF,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,KAAK,WAAW,EAAE,CAAA"}
1
+ {"version":3,"file":"button.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/button/button.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,MAAM,OAAO,CAAC;AAY1B,QAAA,MAAM,cAAc;;;;;;8EA4EnB,CAAC;AAuFF,8HAA8H;AAC9H,KAAK,oBAAoB,GAAG,cAAc,CAAC;AAE3C,KAAK,UAAU,GACX,OAAO,CAAC,YAAY,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,EAAE,cAAc,GAAG,IAAI,GAAG,SAAS,CAAC,GACvF,oBAAoB,CAAC;AAEzB,UAAU,WACR,SAAQ,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EACnD,IAAI,CAAC,YAAY,CAAC,OAAO,cAAc,CAAC,EAAE,MAAM,CAAC;IACnD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;;;OAMG;IACH,SAAS,CAAC,EAAE;QACV,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,CAAC,EAAE,QAAQ,CAAC;QAClB,GAAG,CAAC,EAAE,qBAAqB,CAAC;QAC5B,OAAO,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;KACtD,GAAG,IAAI,CAAC;IACT,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC5B;;;;;OAKG;IACH,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC5B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,UAAU,CAAC;CACnB;AAaD,QAAA,MAAM,MAAM,uFAkKV,CAAC;AAEH,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,KAAK,WAAW,EAAE,CAAC"}
@@ -10,7 +10,7 @@
10
10
 
11
11
 
12
12
 
13
- var _chunkL5CI57RMcjs = require('../../../chunk-L5CI57RM.cjs');
13
+ var _chunkT3BF6JTQcjs = require('../../../chunk-T3BF6JTQ.cjs');
14
14
 
15
15
 
16
16
  var _chunkWZW7C7TFcjs = require('../../../chunk-WZW7C7TF.cjs');
@@ -56,7 +56,7 @@ function FileManagerBreadcrumb({
56
56
  }
57
57
 
58
58
  // src/components/ui/file-manager/file-manager-action-bar.tsx
59
- _chunkL5CI57RMcjs.init_button2.call(void 0, );
59
+ _chunkT3BF6JTQcjs.init_button2.call(void 0, );
60
60
  _chunkA62C4C4Vcjs.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: _chunkA62C4C4Vcjs.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
- _chunkL5CI57RMcjs.Button,
76
+ _chunkT3BF6JTQcjs.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
- _chunkL5CI57RMcjs.Button,
86
+ _chunkT3BF6JTQcjs.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
- _chunkL5CI57RMcjs.Button,
97
+ _chunkT3BF6JTQcjs.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
- _chunkL5CI57RMcjs.Button,
108
+ _chunkT3BF6JTQcjs.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
- _chunkL5CI57RMcjs.Button,
119
+ _chunkT3BF6JTQcjs.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
- _chunkL5CI57RMcjs.Button,
129
+ _chunkT3BF6JTQcjs.Button,
130
130
  {
131
131
  variant: "outline",
132
132
  size: "small-legacy",
@@ -145,7 +145,7 @@ _chunkA62C4C4Vcjs.init_cn.call(void 0, );
145
145
  // src/components/ui/file-manager/file-manager-table-row.tsx
146
146
 
147
147
 
148
- _chunkL5CI57RMcjs.init_button2.call(void 0, );
148
+ _chunkT3BF6JTQcjs.init_button2.call(void 0, );
149
149
  _chunkA62C4C4Vcjs.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
- _chunkL5CI57RMcjs.init_button2.call(void 0, );
188
+ _chunkT3BF6JTQcjs.init_button2.call(void 0, );
189
189
  _chunkA62C4C4Vcjs.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, _chunkL5CI57RMcjs.DropdownMenu, { open, onOpenChange, children: [
235
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkL5CI57RMcjs.DropdownMenuTrigger, { asChild: true, children: trigger || /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
236
- _chunkL5CI57RMcjs.Button,
234
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkT3BF6JTQcjs.DropdownMenu, { open, onOpenChange, children: [
235
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkT3BF6JTQcjs.DropdownMenuTrigger, { asChild: true, children: trigger || /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
236
+ _chunkT3BF6JTQcjs.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
- _chunkL5CI57RMcjs.DropdownMenuContent,
245
+ _chunkT3BF6JTQcjs.DropdownMenuContent,
246
246
  {
247
247
  align: "end",
248
248
  className: _chunkA62C4C4Vcjs.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, _chunkL5CI57RMcjs.DropdownMenuSeparator, {}),
251
+ item.separator && index > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkT3BF6JTQcjs.DropdownMenuSeparator, {}),
252
252
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
253
- _chunkL5CI57RMcjs.DropdownMenuItem,
253
+ _chunkT3BF6JTQcjs.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
- _chunkL5CI57RMcjs.Checkbox,
318
+ _chunkT3BF6JTQcjs.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
- _chunkL5CI57RMcjs.Button,
350
+ _chunkT3BF6JTQcjs.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
- _chunkL5CI57RMcjs.Button,
364
+ _chunkT3BF6JTQcjs.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
- _chunkL5CI57RMcjs.init_button2.call(void 0, );
383
+ _chunkT3BF6JTQcjs.init_button2.call(void 0, );
384
384
  _chunkA62C4C4Vcjs.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-h4 text-ods-text-primary mb-2", children: message }),
399
399
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-h6 text-ods-text-secondary text-center max-w-md mb-6", children: description }),
400
400
  action && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
401
- _chunkL5CI57RMcjs.Button,
401
+ _chunkT3BF6JTQcjs.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: _chunkA62C4C4Vcjs.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-surface 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, _chunkL5CI57RMcjs.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, _chunkT3BF6JTQcjs.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-h5 text-ods-text-secondary", children: "NAME" }),
472
472
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-24 shrink-0 pr-4 text-h5 text-ods-text-secondary", children: "SIZE" }),
473
473
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-36 shrink-0 pl-4 text-h5 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, _chunkL5CI57RMcjs.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, _chunkT3BF6JTQcjs.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, _chunkL5CI57RMcjs.Skeleton, { className: "h-6 w-6 rounded" }),
479
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkT3BF6JTQcjs.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, _chunkL5CI57RMcjs.Skeleton, { className: "h-4 w-32" }),
482
- isSearchResult && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkL5CI57RMcjs.Skeleton, { className: "h-3 w-48 mt-1" })
481
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkT3BF6JTQcjs.Skeleton, { className: "h-4 w-32" }),
482
+ isSearchResult && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkT3BF6JTQcjs.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, _chunkL5CI57RMcjs.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, _chunkL5CI57RMcjs.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, _chunkT3BF6JTQcjs.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, _chunkT3BF6JTQcjs.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, _chunkL5CI57RMcjs.Skeleton, { className: "h-8 w-8 rounded" }),
489
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkL5CI57RMcjs.Skeleton, { className: "h-8 w-8 rounded" })
488
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkT3BF6JTQcjs.Skeleton, { className: "h-8 w-8 rounded" }),
489
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkT3BF6JTQcjs.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-surface 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
- _chunkL5CI57RMcjs.Checkbox,
506
+ _chunkT3BF6JTQcjs.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
- _chunkL5CI57RMcjs.Input,
670
+ _chunkT3BF6JTQcjs.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, _chunkL5CI57RMcjs.Skeleton, { className: "h-5 w-12" }),
711
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkL5CI57RMcjs.Skeleton, { className: "h-4 w-4 rounded-full" }),
712
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkL5CI57RMcjs.Skeleton, { className: "h-5 w-20" }),
713
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkL5CI57RMcjs.Skeleton, { className: "h-4 w-4 rounded-full" }),
714
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkL5CI57RMcjs.Skeleton, { className: "h-5 w-24" })
710
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkT3BF6JTQcjs.Skeleton, { className: "h-5 w-12" }),
711
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkT3BF6JTQcjs.Skeleton, { className: "h-4 w-4 rounded-full" }),
712
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkT3BF6JTQcjs.Skeleton, { className: "h-5 w-20" }),
713
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkT3BF6JTQcjs.Skeleton, { className: "h-4 w-4 rounded-full" }),
714
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkT3BF6JTQcjs.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, _chunkL5CI57RMcjs.Skeleton, { className: "h-9 w-24" }),
718
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkL5CI57RMcjs.Skeleton, { className: "h-9 w-20" }),
719
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkL5CI57RMcjs.Skeleton, { className: "h-9 w-20" }),
720
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkL5CI57RMcjs.Skeleton, { className: "h-9 w-28" })
717
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkT3BF6JTQcjs.Skeleton, { className: "h-9 w-24" }),
718
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkT3BF6JTQcjs.Skeleton, { className: "h-9 w-20" }),
719
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkT3BF6JTQcjs.Skeleton, { className: "h-9 w-20" }),
720
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkT3BF6JTQcjs.Skeleton, { className: "h-9 w-28" })
721
721
  ] })
722
722
  ] }),
723
- showSearch && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkL5CI57RMcjs.Skeleton, { className: "h-10 w-full rounded-lg" }),
723
+ showSearch && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkT3BF6JTQcjs.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-surface 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, _chunkL5CI57RMcjs.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, _chunkT3BF6JTQcjs.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-h5 text-ods-text-secondary", children: "NAME" }),
728
728
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-24 shrink-0 pr-4 text-h5 text-ods-text-secondary", children: "SIZE" }),
729
729
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-36 shrink-0 pl-4 text-h5 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, _chunkL5CI57RMcjs.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, _chunkT3BF6JTQcjs.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, _chunkL5CI57RMcjs.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, _chunkL5CI57RMcjs.Skeleton, { className: "h-4 w-32" }) })
735
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkT3BF6JTQcjs.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, _chunkT3BF6JTQcjs.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, _chunkL5CI57RMcjs.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, _chunkL5CI57RMcjs.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, _chunkT3BF6JTQcjs.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, _chunkT3BF6JTQcjs.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, _chunkL5CI57RMcjs.Skeleton, { className: "h-8 w-8 rounded" }),
742
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkL5CI57RMcjs.Skeleton, { className: "h-8 w-8 rounded" })
741
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkT3BF6JTQcjs.Skeleton, { className: "h-8 w-8 rounded" }),
742
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkT3BF6JTQcjs.Skeleton, { className: "h-8 w-8 rounded" })
743
743
  ] })
744
744
  ] }, idx)) })
745
745
  ] }) })
@@ -10,7 +10,7 @@ import {
10
10
  Input,
11
11
  Skeleton,
12
12
  init_button2 as init_button
13
- } from "../../../chunk-WHJGRRK2.js";
13
+ } from "../../../chunk-QW7SW5HY.js";
14
14
  import {
15
15
  SearchIcon
16
16
  } from "../../../chunk-6U3IUD57.js";