@flamingo-stack/openframe-frontend-core 0.0.666 → 0.0.667-2387.7140.1
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-ZDGEJFDG.js → chunk-46Q75EJ6.js} +2 -2
- package/dist/{chunk-HQHZZ3SL.js → chunk-4GNH6Z7N.js} +2 -2
- package/dist/{chunk-7H7LYI4M.cjs → chunk-4PXVQEUJ.cjs} +4 -4
- package/dist/{chunk-7H7LYI4M.cjs.map → chunk-4PXVQEUJ.cjs.map} +1 -1
- package/dist/{chunk-XMY2XTHG.cjs → chunk-6QS3P3WR.cjs} +3 -3
- package/dist/{chunk-XMY2XTHG.cjs.map → chunk-6QS3P3WR.cjs.map} +1 -1
- package/dist/{chunk-DDW7G6U7.js → chunk-6VT4TY34.js} +4 -4
- package/dist/{chunk-IUNCGKFP.cjs → chunk-7HWZMCQE.cjs} +3 -3
- package/dist/{chunk-IUNCGKFP.cjs.map → chunk-7HWZMCQE.cjs.map} +1 -1
- package/dist/{chunk-JBRNIUYC.js → chunk-7OBHWW3T.js} +2 -2
- package/dist/{chunk-KDFSFVNX.cjs → chunk-BLB5X3XR.cjs} +10 -10
- package/dist/{chunk-KDFSFVNX.cjs.map → chunk-BLB5X3XR.cjs.map} +1 -1
- package/dist/{chunk-V3B37LQY.js → chunk-CU5BDIAL.js} +4 -4
- package/dist/{chunk-YVMSA7LR.js → chunk-DGG6ORNT.js} +5 -5
- package/dist/{chunk-2S44CUCH.cjs → chunk-DZ4W2JMA.cjs} +4 -4
- package/dist/{chunk-2S44CUCH.cjs.map → chunk-DZ4W2JMA.cjs.map} +1 -1
- package/dist/{chunk-L7QXTWI7.cjs → chunk-EJTVYJP7.cjs} +17 -17
- package/dist/{chunk-L7QXTWI7.cjs.map → chunk-EJTVYJP7.cjs.map} +1 -1
- package/dist/{chunk-VUYRTI3Z.cjs → chunk-FINX7OPD.cjs} +18 -18
- package/dist/{chunk-VUYRTI3Z.cjs.map → chunk-FINX7OPD.cjs.map} +1 -1
- package/dist/{chunk-WI5LLFA6.cjs → chunk-GJ4PJJYG.cjs} +13 -13
- package/dist/{chunk-WI5LLFA6.cjs.map → chunk-GJ4PJJYG.cjs.map} +1 -1
- package/dist/{chunk-EYCF3GGM.js → chunk-GLTY7JGI.js} +5 -5
- package/dist/{chunk-VI35TSB2.js → chunk-I4WW7UOA.js} +3 -3
- package/dist/{chunk-SCRVQY42.js → chunk-L7XUR55A.js} +2 -2
- package/dist/{chunk-R6NU4QFR.js → chunk-MCRVTJOK.js} +2 -2
- package/dist/{chunk-O5GV3WQO.js → chunk-QADD2X7I.js} +2 -2
- package/dist/{chunk-YAF2JKAK.cjs → chunk-SCQORRX5.cjs} +51 -51
- package/dist/{chunk-YAF2JKAK.cjs.map → chunk-SCQORRX5.cjs.map} +1 -1
- package/dist/{chunk-OPY4JNY2.cjs → chunk-SHC4DU2E.cjs} +36 -36
- package/dist/{chunk-OPY4JNY2.cjs.map → chunk-SHC4DU2E.cjs.map} +1 -1
- package/dist/{chunk-QSYYYL55.cjs → chunk-STF6ITNW.cjs} +3 -3
- package/dist/{chunk-QSYYYL55.cjs.map → chunk-STF6ITNW.cjs.map} +1 -1
- package/dist/{chunk-W2WEIVHT.cjs → chunk-UPTG32KO.cjs} +36 -9
- package/dist/chunk-UPTG32KO.cjs.map +1 -0
- package/dist/{chunk-VN2U4EBP.cjs → chunk-V3UVCAJM.cjs} +33 -33
- package/dist/{chunk-VN2U4EBP.cjs.map → chunk-V3UVCAJM.cjs.map} +1 -1
- package/dist/{chunk-NIVLGQKS.js → chunk-WISMH2ER.js} +2 -2
- package/dist/{chunk-CYPLD5F3.js → chunk-WL2NCWYK.js} +2 -2
- package/dist/{chunk-ILAEMVAI.js → chunk-WMCJWEJX.js} +54 -27
- package/dist/{chunk-ILAEMVAI.js.map → chunk-WMCJWEJX.js.map} +1 -1
- package/dist/{chunk-CRDKQMTP.js → chunk-X6XAQDDM.js} +2 -2
- package/dist/{chunk-AAIL6J56.cjs → chunk-YLQZTPZF.cjs} +3 -3
- package/dist/{chunk-AAIL6J56.cjs.map → chunk-YLQZTPZF.cjs.map} +1 -1
- package/dist/{chunk-XSRIPH6U.cjs → chunk-ZLATHAXJ.cjs} +17 -17
- package/dist/{chunk-XSRIPH6U.cjs.map → chunk-ZLATHAXJ.cjs.map} +1 -1
- package/dist/components/case-studies/index.cjs +11 -11
- package/dist/components/case-studies/index.js +2 -2
- package/dist/components/contact/index.cjs +3 -3
- package/dist/components/contact/index.js +2 -2
- package/dist/components/docs/index.cjs +6 -6
- package/dist/components/docs/index.js +5 -5
- package/dist/components/embeds/index.cjs +3 -3
- package/dist/components/embeds/index.js +2 -2
- package/dist/components/faq/index.cjs +3 -3
- package/dist/components/faq/index.js +2 -2
- package/dist/components/features/board/ticket-card.d.ts +8 -2
- package/dist/components/features/board/ticket-card.d.ts.map +1 -1
- package/dist/components/features/index.cjs +2 -2
- package/dist/components/features/index.js +1 -1
- package/dist/components/help-center-pages/index.cjs +22 -22
- package/dist/components/help-center-pages/index.js +13 -13
- package/dist/components/index.cjs +31 -31
- package/dist/components/index.js +12 -12
- package/dist/components/meeting-scheduler/index.cjs +21 -21
- package/dist/components/meeting-scheduler/index.js +1 -1
- package/dist/components/navigation/index.cjs +5 -5
- package/dist/components/navigation/index.js +4 -4
- package/dist/components/onboarding-guides/index.cjs +5 -5
- package/dist/components/onboarding-guides/index.js +4 -4
- package/dist/components/tickets/index.cjs +6 -6
- package/dist/components/tickets/index.js +5 -5
- package/dist/components/ui/index.cjs +2 -2
- package/dist/components/ui/index.js +1 -1
- package/dist/index.cjs +6 -6
- package/dist/index.js +5 -5
- package/package.json +1 -1
- package/src/__tests__/ticket-card-meta.test.tsx +39 -1
- package/src/components/features/board/.ticket-card.md +2 -2
- package/src/components/features/board/ticket-card.tsx +44 -9
- package/dist/chunk-W2WEIVHT.cjs.map +0 -1
- /package/dist/{chunk-ZDGEJFDG.js.map → chunk-46Q75EJ6.js.map} +0 -0
- /package/dist/{chunk-HQHZZ3SL.js.map → chunk-4GNH6Z7N.js.map} +0 -0
- /package/dist/{chunk-DDW7G6U7.js.map → chunk-6VT4TY34.js.map} +0 -0
- /package/dist/{chunk-JBRNIUYC.js.map → chunk-7OBHWW3T.js.map} +0 -0
- /package/dist/{chunk-V3B37LQY.js.map → chunk-CU5BDIAL.js.map} +0 -0
- /package/dist/{chunk-YVMSA7LR.js.map → chunk-DGG6ORNT.js.map} +0 -0
- /package/dist/{chunk-EYCF3GGM.js.map → chunk-GLTY7JGI.js.map} +0 -0
- /package/dist/{chunk-VI35TSB2.js.map → chunk-I4WW7UOA.js.map} +0 -0
- /package/dist/{chunk-SCRVQY42.js.map → chunk-L7XUR55A.js.map} +0 -0
- /package/dist/{chunk-R6NU4QFR.js.map → chunk-MCRVTJOK.js.map} +0 -0
- /package/dist/{chunk-O5GV3WQO.js.map → chunk-QADD2X7I.js.map} +0 -0
- /package/dist/{chunk-NIVLGQKS.js.map → chunk-WISMH2ER.js.map} +0 -0
- /package/dist/{chunk-CYPLD5F3.js.map → chunk-WL2NCWYK.js.map} +0 -0
- /package/dist/{chunk-CRDKQMTP.js.map → chunk-X6XAQDDM.js.map} +0 -0
|
@@ -7,6 +7,7 @@ import { preserveOffsetOnSource } from '@atlaskit/pragmatic-drag-and-drop/elemen
|
|
|
7
7
|
import { setCustomNativeDragPreview } from '@atlaskit/pragmatic-drag-and-drop/element/set-custom-native-drag-preview';
|
|
8
8
|
import {
|
|
9
9
|
memo,
|
|
10
|
+
useCallback,
|
|
10
11
|
useEffect,
|
|
11
12
|
useMemo,
|
|
12
13
|
useRef,
|
|
@@ -82,11 +83,25 @@ export interface TicketCardBodyProps {
|
|
|
82
83
|
* `TicketCard` adapts its own `(ticketId, requestId)` signature onto these). */
|
|
83
84
|
onApprove?: (requestId?: string) => void | Promise<void>;
|
|
84
85
|
onReject?: (requestId?: string) => void | Promise<void>;
|
|
86
|
+
/** Where the card opens. The body sits above the card's own link with pointer
|
|
87
|
+
* events off, but the number/time line has to take them back for its tooltip -
|
|
88
|
+
* so with an `href` that line is a link of its own, and a click on it opens the
|
|
89
|
+
* ticket like a click anywhere else on the card. */
|
|
90
|
+
href?: string;
|
|
91
|
+
onLinkClick?: (e: MouseEvent) => void;
|
|
85
92
|
}
|
|
86
93
|
|
|
87
94
|
/** The card's inner content: title + device/org, priority + assignees, tags,
|
|
88
95
|
* timestamp, "New Message", and the approval row. Pure — driven only by props. */
|
|
89
|
-
export function TicketCardBody({
|
|
96
|
+
export function TicketCardBody({
|
|
97
|
+
ticket,
|
|
98
|
+
columnColor,
|
|
99
|
+
renderAssignSlot,
|
|
100
|
+
onApprove,
|
|
101
|
+
onReject,
|
|
102
|
+
href,
|
|
103
|
+
onLinkClick,
|
|
104
|
+
}: TicketCardBodyProps) {
|
|
90
105
|
const showNewMessage = !!ticket.hasNewMessage && !!columnColor;
|
|
91
106
|
const newMessageTextColor = columnColor ? getReadableTextColor(columnColor) : undefined;
|
|
92
107
|
|
|
@@ -143,6 +158,22 @@ export function TicketCardBody({ ticket, columnColor, renderAssignSlot, onApprov
|
|
|
143
158
|
// may be empty - the hub hero card and tickets without one send '' - so either
|
|
144
159
|
// half stands on its own and the line disappears with both missing.
|
|
145
160
|
const metaLabel = [ticket.ticketNumber || null, timestampLabel].filter(Boolean).join(' \u2022 ');
|
|
161
|
+
const metaClass = 'truncate text-ods-text-secondary text-h6';
|
|
162
|
+
// Out of the tab order: the card's own link is the one stop for the ticket.
|
|
163
|
+
const meta = href ? (
|
|
164
|
+
<Link
|
|
165
|
+
href={href}
|
|
166
|
+
draggable={false}
|
|
167
|
+
prefetch={false}
|
|
168
|
+
tabIndex={-1}
|
|
169
|
+
onClick={onLinkClick}
|
|
170
|
+
className={cn('pointer-events-auto block', metaClass)}
|
|
171
|
+
>
|
|
172
|
+
{metaLabel}
|
|
173
|
+
</Link>
|
|
174
|
+
) : (
|
|
175
|
+
<p className={cn(tooltipLabel && 'pointer-events-auto', metaClass)}>{metaLabel}</p>
|
|
176
|
+
);
|
|
146
177
|
|
|
147
178
|
return (
|
|
148
179
|
<>
|
|
@@ -165,14 +196,12 @@ export function TicketCardBody({ ticket, columnColor, renderAssignSlot, onApprov
|
|
|
165
196
|
(tooltipLabel ? (
|
|
166
197
|
<TooltipProvider>
|
|
167
198
|
<Tooltip>
|
|
168
|
-
<TooltipTrigger asChild>
|
|
169
|
-
<p className="pointer-events-auto truncate text-ods-text-secondary text-h6">{metaLabel}</p>
|
|
170
|
-
</TooltipTrigger>
|
|
199
|
+
<TooltipTrigger asChild>{meta}</TooltipTrigger>
|
|
171
200
|
<TooltipContent>{tooltipLabel}</TooltipContent>
|
|
172
201
|
</Tooltip>
|
|
173
202
|
</TooltipProvider>
|
|
174
203
|
) : (
|
|
175
|
-
|
|
204
|
+
meta
|
|
176
205
|
))}
|
|
177
206
|
{ticket.escalatedByUser && (
|
|
178
207
|
<div className="flex items-center gap-[var(--spacing-system-xxs)] text-ods-open-yellow text-h6">
|
|
@@ -412,9 +441,13 @@ export const TicketCard = memo(function TicketCardImpl({
|
|
|
412
441
|
const style: CSSProperties = {};
|
|
413
442
|
if (showNewMessage) style.borderColor = columnColor;
|
|
414
443
|
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
444
|
+
// Stable between drags: it is handed into the memoized body below.
|
|
445
|
+
const handleClick = useCallback(
|
|
446
|
+
(e: MouseEvent) => {
|
|
447
|
+
if (isDragging) e.preventDefault();
|
|
448
|
+
},
|
|
449
|
+
[isDragging],
|
|
450
|
+
);
|
|
418
451
|
|
|
419
452
|
// Held as one memoized element, not re-created per render. A card being
|
|
420
453
|
// dragged over re-renders on every edge flip — it owns the hover state that
|
|
@@ -430,9 +463,11 @@ export const TicketCard = memo(function TicketCardImpl({
|
|
|
430
463
|
renderAssignSlot={renderAssignSlot}
|
|
431
464
|
onApprove={onApprove ? requestId => onApprove(ticket.id, requestId) : undefined}
|
|
432
465
|
onReject={onReject ? requestId => onReject(ticket.id, requestId) : undefined}
|
|
466
|
+
href={href}
|
|
467
|
+
onLinkClick={handleClick}
|
|
433
468
|
/>
|
|
434
469
|
),
|
|
435
|
-
[ticket, columnColor, renderAssignSlot, onApprove, onReject],
|
|
470
|
+
[ticket, columnColor, renderAssignSlot, onApprove, onReject, href, handleClick],
|
|
436
471
|
);
|
|
437
472
|
|
|
438
473
|
// No transition on the margins below, and that is not a style choice: room is
|