@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.
- package/dist/{chunk-SGWPW2AO.cjs → chunk-2A74VRAF.cjs} +18 -18
- package/dist/{chunk-SGWPW2AO.cjs.map → chunk-2A74VRAF.cjs.map} +1 -1
- package/dist/{chunk-LILQJ3UZ.cjs → chunk-3ENGUBJP.cjs} +1 -1
- package/dist/chunk-3ENGUBJP.cjs.map +1 -0
- package/dist/{chunk-AWDHRIL3.cjs → chunk-4ST2BOWJ.cjs} +75 -75
- package/dist/{chunk-AWDHRIL3.cjs.map → chunk-4ST2BOWJ.cjs.map} +1 -1
- package/dist/{chunk-SFJRMBJC.js → chunk-5SVNA7IU.js} +2 -2
- package/dist/{chunk-OAWFYZZT.js → chunk-7DOSAJDK.js} +3 -3
- package/dist/{chunk-J4T5ZBWG.cjs → chunk-BZRP54IO.cjs} +19 -19
- package/dist/{chunk-J4T5ZBWG.cjs.map → chunk-BZRP54IO.cjs.map} +1 -1
- package/dist/{chunk-BZF63JXP.js → chunk-CRJVO4KO.js} +6 -6
- package/dist/{chunk-5RIHLXEP.cjs → chunk-DDVQ5NKK.cjs} +33 -33
- package/dist/{chunk-5RIHLXEP.cjs.map → chunk-DDVQ5NKK.cjs.map} +1 -1
- package/dist/{chunk-HR6F6IP4.js → chunk-DIKJLAMY.js} +78 -43
- package/dist/chunk-DIKJLAMY.js.map +1 -0
- package/dist/{chunk-VO2ZONMR.js → chunk-FNTFWP2A.js} +3 -3
- package/dist/{chunk-2OXJ6NHI.cjs → chunk-GJZ42TTG.cjs} +7 -7
- package/dist/{chunk-2OXJ6NHI.cjs.map → chunk-GJZ42TTG.cjs.map} +1 -1
- package/dist/{chunk-JIZJDAXI.cjs → chunk-GXRVBKYX.cjs} +12 -12
- package/dist/{chunk-JIZJDAXI.cjs.map → chunk-GXRVBKYX.cjs.map} +1 -1
- package/dist/{chunk-F7AD5CUU.js → chunk-H3N4P3CG.js} +3 -3
- package/dist/chunk-H3N4P3CG.js.map +1 -0
- package/dist/{chunk-VCPTU4IW.js → chunk-HWER6KGU.js} +7 -7
- package/dist/{chunk-4SR2QHMB.js → chunk-ITVWX5HX.js} +3 -3
- package/dist/{chunk-FFXNRJ5S.cjs → chunk-LOBR7IC6.cjs} +6 -6
- package/dist/chunk-LOBR7IC6.cjs.map +1 -0
- package/dist/{chunk-72DF3QTA.cjs → chunk-MJQ263KS.cjs} +14 -14
- package/dist/{chunk-72DF3QTA.cjs.map → chunk-MJQ263KS.cjs.map} +1 -1
- package/dist/{chunk-FTOVZ7O2.js → chunk-NPO6CHCR.js} +7 -7
- package/dist/{chunk-XV5SXALY.js → chunk-NT5FX7GZ.js} +3 -3
- package/dist/{chunk-UCV4LFUG.cjs → chunk-NY75FKN6.cjs} +40 -40
- package/dist/{chunk-UCV4LFUG.cjs.map → chunk-NY75FKN6.cjs.map} +1 -1
- package/dist/{chunk-4UNQMYP7.cjs → chunk-O32Y4E4R.cjs} +3 -3
- package/dist/{chunk-4UNQMYP7.cjs.map → chunk-O32Y4E4R.cjs.map} +1 -1
- package/dist/{chunk-CLQEBWV7.js → chunk-QE55ROZW.js} +4 -4
- package/dist/{chunk-WHJGRRK2.js → chunk-QW7SW5HY.js} +52 -43
- package/dist/chunk-QW7SW5HY.js.map +1 -0
- package/dist/{chunk-JGXAVNZQ.js → chunk-R6CKL7IR.js} +2464 -1886
- package/dist/chunk-R6CKL7IR.js.map +1 -0
- package/dist/{chunk-L5CI57RM.cjs → chunk-T3BF6JTQ.cjs} +52 -43
- package/dist/chunk-T3BF6JTQ.cjs.map +1 -0
- package/dist/{chunk-G43CEISB.js → chunk-TA3VJ2QO.js} +4 -4
- package/dist/{chunk-7L2RVINX.cjs → chunk-TRS4CIAS.cjs} +35 -35
- package/dist/{chunk-7L2RVINX.cjs.map → chunk-TRS4CIAS.cjs.map} +1 -1
- package/dist/{chunk-DMXB3VE2.cjs → chunk-U3YLML53.cjs} +1837 -1259
- package/dist/chunk-U3YLML53.cjs.map +1 -0
- package/dist/{chunk-3T4SMJM5.cjs → chunk-VDKNUC3N.cjs} +181 -146
- package/dist/chunk-VDKNUC3N.cjs.map +1 -0
- package/dist/{chunk-RR3Z52X5.cjs → chunk-W3QCFQ56.cjs} +42 -42
- package/dist/{chunk-RR3Z52X5.cjs.map → chunk-W3QCFQ56.cjs.map} +1 -1
- package/dist/{chunk-VYEDTVIZ.js → chunk-XJPMTJAR.js} +4 -4
- package/dist/{chunk-6GT557KN.js → chunk-XKIA4XVE.js} +1 -1
- package/dist/chunk-XKIA4XVE.js.map +1 -0
- package/dist/components/case-studies/index.cjs +11 -11
- package/dist/components/case-studies/index.js +5 -5
- package/dist/components/chat/index.cjs +5 -5
- package/dist/components/chat/index.js +4 -4
- package/dist/components/contact/index.cjs +6 -6
- package/dist/components/contact/index.js +5 -5
- package/dist/components/docs/index.cjs +8 -8
- package/dist/components/docs/index.js +7 -7
- package/dist/components/embeds/index.cjs +6 -6
- package/dist/components/embeds/index.js +5 -5
- package/dist/components/faq/index.cjs +7 -7
- package/dist/components/faq/index.js +6 -6
- package/dist/components/features/index.cjs +5 -5
- package/dist/components/features/index.js +4 -4
- package/dist/components/help-center-pages/index.cjs +24 -24
- package/dist/components/help-center-pages/index.js +15 -15
- package/dist/components/index.cjs +169 -165
- package/dist/components/index.cjs.map +1 -1
- package/dist/components/index.js +17 -13
- package/dist/components/index.js.map +1 -1
- package/dist/components/navigation/app-header.d.ts +8 -0
- package/dist/components/navigation/app-header.d.ts.map +1 -1
- package/dist/components/navigation/header-button.d.ts +5 -1
- package/dist/components/navigation/header-button.d.ts.map +1 -1
- package/dist/components/navigation/header.d.ts.map +1 -1
- package/dist/components/navigation/index.cjs +9 -5
- package/dist/components/navigation/index.cjs.map +1 -1
- package/dist/components/navigation/index.d.ts +4 -0
- package/dist/components/navigation/index.d.ts.map +1 -1
- package/dist/components/navigation/index.js +8 -4
- package/dist/components/navigation/mingo-ai-button.d.ts.map +1 -1
- package/dist/components/navigation/navigation-sidebar-item.d.ts.map +1 -1
- package/dist/components/navigation/ticket-alerts-button.d.ts +29 -0
- package/dist/components/navigation/ticket-alerts-button.d.ts.map +1 -0
- package/dist/components/navigation/top-navigation.d.ts +5 -1
- package/dist/components/navigation/top-navigation.d.ts.map +1 -1
- package/dist/components/navigation/unread-dot.d.ts +19 -0
- package/dist/components/navigation/unread-dot.d.ts.map +1 -0
- package/dist/components/onboarding-guides/index.cjs +9 -9
- package/dist/components/onboarding-guides/index.js +8 -8
- package/dist/components/related-content/index.cjs +7 -7
- package/dist/components/related-content/index.js +6 -6
- package/dist/components/tickets/help-center-card.d.ts.map +1 -1
- package/dist/components/tickets/hooks/use-ticket-actions.d.ts.map +1 -1
- package/dist/components/tickets/hooks/use-ticket-engagements.d.ts +1 -9
- package/dist/components/tickets/hooks/use-ticket-engagements.d.ts.map +1 -1
- package/dist/components/tickets/hooks/use-tickets-list.d.ts +0 -7
- package/dist/components/tickets/hooks/use-tickets-list.d.ts.map +1 -1
- package/dist/components/tickets/index.cjs +15 -8
- package/dist/components/tickets/index.cjs.map +1 -1
- package/dist/components/tickets/index.d.ts +2 -1
- package/dist/components/tickets/index.d.ts.map +1 -1
- package/dist/components/tickets/index.js +14 -7
- package/dist/components/tickets/ticket-detail-drawer.d.ts.map +1 -1
- package/dist/components/tickets/ticket-live-provider.d.ts +58 -0
- package/dist/components/tickets/ticket-live-provider.d.ts.map +1 -0
- package/dist/components/tickets/types.d.ts +58 -11
- package/dist/components/tickets/types.d.ts.map +1 -1
- package/dist/components/ui/button/button.d.ts +6 -5
- package/dist/components/ui/button/button.d.ts.map +1 -1
- package/dist/components/ui/file-manager/index.cjs +50 -50
- package/dist/components/ui/file-manager/index.js +1 -1
- package/dist/components/ui/index.cjs +5 -5
- package/dist/components/ui/index.js +4 -4
- package/dist/contexts/chat-runtime-context.d.ts +8 -0
- package/dist/contexts/chat-runtime-context.d.ts.map +1 -1
- package/dist/contexts/index.cjs +2 -2
- package/dist/contexts/index.js +1 -1
- package/dist/hooks/index.cjs +3 -3
- package/dist/hooks/index.js +2 -2
- package/dist/hooks/ui/use-header-height.d.ts.map +1 -1
- package/dist/index.cjs +11 -5
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +10 -4
- package/dist/types/navigation.d.ts +10 -0
- package/dist/types/navigation.d.ts.map +1 -1
- package/dist/utils/index.cjs +171 -0
- package/dist/utils/index.cjs.map +1 -1
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +171 -1
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/sse-subscription.d.ts +60 -0
- package/dist/utils/sse-subscription.d.ts.map +1 -0
- package/package.json +1 -1
- package/src/components/features/time-tracker/time-tracker-header-button.tsx +1 -1
- package/src/components/navigation/app-header.tsx +36 -20
- package/src/components/navigation/header-button.tsx +18 -2
- package/src/components/navigation/header-mingo-button.tsx +2 -2
- package/src/components/navigation/header-skeleton.tsx +4 -4
- package/src/components/navigation/header.tsx +41 -21
- package/src/components/navigation/index.ts +4 -0
- package/src/components/navigation/mingo-ai-button.tsx +23 -22
- package/src/components/navigation/mobile-burger-menu.tsx +3 -3
- package/src/components/navigation/navigation-sidebar-item.tsx +2 -3
- package/src/components/navigation/ticket-alerts-button.tsx +61 -0
- package/src/components/navigation/top-navigation.tsx +17 -1
- package/src/components/navigation/unread-dot.tsx +34 -0
- package/src/components/tickets/.types.md +1 -2
- package/src/components/tickets/help-center-card.tsx +16 -0
- package/src/components/tickets/help-center-list.tsx +6 -6
- package/src/components/tickets/hooks/.use-ticket-engagements.md +3 -12
- package/src/components/tickets/hooks/.use-tickets-list.md +0 -2
- package/src/components/tickets/hooks/use-ticket-actions.ts +9 -0
- package/src/components/tickets/hooks/use-ticket-engagements.ts +4 -13
- package/src/components/tickets/hooks/use-tickets-list.ts +2 -13
- package/src/components/tickets/index.ts +10 -0
- package/src/components/tickets/ticket-detail-drawer.tsx +45 -13
- package/src/components/tickets/ticket-live-provider.tsx +474 -0
- package/src/components/tickets/types.ts +62 -11
- package/src/components/ui/button/button.tsx +165 -133
- package/src/contexts/chat-runtime-context.tsx +8 -0
- package/src/hooks/ui/use-header-height.ts +3 -1
- package/src/stories/TopNavigation.stories.tsx +20 -1
- package/src/types/navigation.ts +10 -0
- package/src/utils/index.ts +12 -0
- package/src/utils/sse-subscription.ts +276 -0
- package/dist/chunk-3T4SMJM5.cjs.map +0 -1
- package/dist/chunk-6GT557KN.js.map +0 -1
- package/dist/chunk-DMXB3VE2.cjs.map +0 -1
- package/dist/chunk-F7AD5CUU.js.map +0 -1
- package/dist/chunk-FFXNRJ5S.cjs.map +0 -1
- package/dist/chunk-HR6F6IP4.js.map +0 -1
- package/dist/chunk-JGXAVNZQ.js.map +0 -1
- package/dist/chunk-L5CI57RM.cjs.map +0 -1
- package/dist/chunk-LILQJ3UZ.cjs.map +0 -1
- package/dist/chunk-WHJGRRK2.js.map +0 -1
- /package/dist/{chunk-SFJRMBJC.js.map → chunk-5SVNA7IU.js.map} +0 -0
- /package/dist/{chunk-OAWFYZZT.js.map → chunk-7DOSAJDK.js.map} +0 -0
- /package/dist/{chunk-BZF63JXP.js.map → chunk-CRJVO4KO.js.map} +0 -0
- /package/dist/{chunk-VO2ZONMR.js.map → chunk-FNTFWP2A.js.map} +0 -0
- /package/dist/{chunk-VCPTU4IW.js.map → chunk-HWER6KGU.js.map} +0 -0
- /package/dist/{chunk-4SR2QHMB.js.map → chunk-ITVWX5HX.js.map} +0 -0
- /package/dist/{chunk-FTOVZ7O2.js.map → chunk-NPO6CHCR.js.map} +0 -0
- /package/dist/{chunk-XV5SXALY.js.map → chunk-NT5FX7GZ.js.map} +0 -0
- /package/dist/{chunk-CLQEBWV7.js.map → chunk-QE55ROZW.js.map} +0 -0
- /package/dist/{chunk-G43CEISB.js.map → chunk-TA3VJ2QO.js.map} +0 -0
- /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
|
-
*
|
|
193
|
-
*
|
|
194
|
-
*
|
|
195
|
-
*
|
|
196
|
-
*
|
|
197
|
-
*
|
|
198
|
-
*
|
|
199
|
-
*
|
|
200
|
-
*
|
|
201
|
-
*
|
|
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
|
|
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
|
|
2
|
-
import React from
|
|
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 =
|
|
11
|
-
type ButtonSize = Exclude<VariantProps<typeof buttonVariants>[
|
|
12
|
-
interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement>, Omit<VariantProps<typeof buttonVariants>,
|
|
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,
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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,
|
|
235
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
236
|
-
|
|
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
|
-
|
|
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,
|
|
251
|
+
item.separator && index > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkT3BF6JTQcjs.DropdownMenuSeparator, {}),
|
|
252
252
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
253
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
482
|
-
isSearchResult && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
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,
|
|
486
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-36 shrink-0 pl-4", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
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,
|
|
489
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
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
|
-
|
|
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
|
-
|
|
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,
|
|
711
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
712
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
713
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
714
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
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,
|
|
718
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
719
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
720
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
736
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex flex-col min-w-0", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
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,
|
|
739
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-36 shrink-0 pl-4", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
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,
|
|
742
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
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
|
] }) })
|