@flamingo-stack/openframe-frontend-core 0.0.559 → 0.0.560-1838.4933.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-ANI7I7SC.js → chunk-2IL7SPBP.js} +2 -2
- package/dist/{chunk-KDTQMUUY.js → chunk-57G6CG2E.js} +6 -6
- package/dist/{chunk-BOFSW6J7.js → chunk-65ZXR4YJ.js} +2 -2
- package/dist/{chunk-5OU7FNZD.js → chunk-BKQWCJP5.js} +2 -2
- package/dist/{chunk-33RSZGYQ.cjs → chunk-CSXEOFJ4.cjs} +5 -5
- package/dist/{chunk-33RSZGYQ.cjs.map → chunk-CSXEOFJ4.cjs.map} +1 -1
- package/dist/{chunk-D2EOIZ7V.js → chunk-F3F3PVJ3.js} +2 -2
- package/dist/{chunk-PCIN3YYW.cjs → chunk-FEI4KQYW.cjs} +172 -155
- package/dist/chunk-FEI4KQYW.cjs.map +1 -0
- package/dist/{chunk-V3TJN4XI.js → chunk-GMDPQ5FQ.js} +4 -4
- package/dist/{chunk-YMXR3AFK.cjs → chunk-GZSUDIJB.cjs} +4 -4
- package/dist/{chunk-YMXR3AFK.cjs.map → chunk-GZSUDIJB.cjs.map} +1 -1
- package/dist/{chunk-ZF3TRQD2.cjs → chunk-I7RGBCG6.cjs} +31 -31
- package/dist/{chunk-ZF3TRQD2.cjs.map → chunk-I7RGBCG6.cjs.map} +1 -1
- package/dist/{chunk-QAFVP2NG.js → chunk-IGO6GNG7.js} +5 -5
- package/dist/{chunk-NBWJDAPF.cjs → chunk-MAX76H7U.cjs} +3 -3
- package/dist/{chunk-NBWJDAPF.cjs.map → chunk-MAX76H7U.cjs.map} +1 -1
- package/dist/{chunk-O3T4MB5D.cjs → chunk-N66ANBF6.cjs} +39 -39
- package/dist/{chunk-O3T4MB5D.cjs.map → chunk-N66ANBF6.cjs.map} +1 -1
- package/dist/{chunk-SPUVLKXS.cjs → chunk-NCU45OV4.cjs} +9 -9
- package/dist/{chunk-SPUVLKXS.cjs.map → chunk-NCU45OV4.cjs.map} +1 -1
- package/dist/{chunk-CS34XXIX.cjs → chunk-NFMYNXFH.cjs} +86 -86
- package/dist/{chunk-CS34XXIX.cjs.map → chunk-NFMYNXFH.cjs.map} +1 -1
- package/dist/{chunk-3H4NJO43.js → chunk-PHIRRCPY.js} +2 -2
- package/dist/{chunk-C7LWJWOO.js → chunk-QKGNSXF2.js} +2 -2
- package/dist/{chunk-KYJSFHHH.cjs → chunk-QUYIRF6U.cjs} +20 -20
- package/dist/{chunk-KYJSFHHH.cjs.map → chunk-QUYIRF6U.cjs.map} +1 -1
- package/dist/{chunk-B4AGHKHF.js → chunk-QXDEXQDI.js} +2 -2
- package/dist/{chunk-P7RPGV3I.js → chunk-RDFMBOSI.js} +1970 -1953
- package/dist/chunk-RDFMBOSI.js.map +1 -0
- package/dist/{chunk-MO5EKODW.cjs → chunk-UR2JKFIO.cjs} +7 -7
- package/dist/{chunk-MO5EKODW.cjs.map → chunk-UR2JKFIO.cjs.map} +1 -1
- package/dist/{chunk-XLZGBSNT.cjs → chunk-UW42K54L.cjs} +14 -14
- package/dist/{chunk-XLZGBSNT.cjs.map → chunk-UW42K54L.cjs.map} +1 -1
- package/dist/{chunk-PG6NTQ72.js → chunk-VAAQZZHT.js} +2 -2
- package/dist/{chunk-3KFGRSM7.js → chunk-WIPZ65KU.js} +2 -2
- package/dist/{chunk-DEJC6ZID.cjs → chunk-WXJZULAB.cjs} +26 -26
- package/dist/{chunk-DEJC6ZID.cjs.map → chunk-WXJZULAB.cjs.map} +1 -1
- package/dist/{chunk-7YUCTU47.cjs → chunk-XQJPFAA7.cjs} +62 -62
- package/dist/{chunk-7YUCTU47.cjs.map → chunk-XQJPFAA7.cjs.map} +1 -1
- package/dist/{chunk-VWTUHH6T.cjs → chunk-XRP6VHOS.cjs} +11 -11
- package/dist/{chunk-VWTUHH6T.cjs.map → chunk-XRP6VHOS.cjs.map} +1 -1
- package/dist/{chunk-S4GVJZ7X.js → chunk-YNRK3N2D.js} +4 -4
- package/dist/components/case-studies/index.cjs +8 -8
- package/dist/components/case-studies/index.js +2 -2
- package/dist/components/chat/index.cjs +2 -2
- package/dist/components/chat/index.js +1 -1
- package/dist/components/contact/index.cjs +3 -3
- package/dist/components/contact/index.js +2 -2
- package/dist/components/docs/index.cjs +5 -5
- package/dist/components/docs/index.js +4 -4
- 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/board-column-header.d.ts.map +1 -1
- package/dist/components/features/board/types.d.ts +6 -0
- package/dist/components/features/board/types.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 +133 -131
- package/dist/components/index.cjs.map +1 -1
- package/dist/components/index.js +13 -11
- package/dist/components/index.js.map +1 -1
- package/dist/components/meeting-scheduler/index.cjs +28 -28
- package/dist/components/meeting-scheduler/index.js +3 -3
- package/dist/components/navigation/index.cjs +2 -2
- package/dist/components/navigation/index.js +1 -1
- package/dist/components/onboarding-guides/index.cjs +5 -5
- package/dist/components/onboarding-guides/index.js +4 -4
- package/dist/components/related-content/index.cjs +3 -3
- package/dist/components/related-content/index.js +2 -2
- package/dist/components/tickets/index.cjs +6 -6
- package/dist/components/tickets/index.js +5 -5
- package/dist/components/ui/index.cjs +4 -2
- package/dist/components/ui/index.cjs.map +1 -1
- package/dist/components/ui/index.d.ts +1 -0
- package/dist/components/ui/index.d.ts.map +1 -1
- package/dist/components/ui/index.js +3 -1
- package/dist/components/ui/ticket-status-config-row.d.ts.map +1 -1
- package/dist/components/ui/touch-friendly-tooltip.d.ts +14 -0
- package/dist/components/ui/touch-friendly-tooltip.d.ts.map +1 -0
- package/dist/index.cjs +4 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +3 -1
- package/package.json +1 -1
- package/src/components/features/board/board-column-header.tsx +14 -1
- package/src/components/features/board/types.ts +7 -0
- package/src/components/ui/index.ts +1 -0
- package/src/components/ui/ticket-status-config-row.tsx +5 -55
- package/src/components/ui/touch-friendly-tooltip.tsx +71 -0
- package/dist/chunk-P7RPGV3I.js.map +0 -1
- package/dist/chunk-PCIN3YYW.cjs.map +0 -1
- /package/dist/{chunk-ANI7I7SC.js.map → chunk-2IL7SPBP.js.map} +0 -0
- /package/dist/{chunk-KDTQMUUY.js.map → chunk-57G6CG2E.js.map} +0 -0
- /package/dist/{chunk-BOFSW6J7.js.map → chunk-65ZXR4YJ.js.map} +0 -0
- /package/dist/{chunk-5OU7FNZD.js.map → chunk-BKQWCJP5.js.map} +0 -0
- /package/dist/{chunk-D2EOIZ7V.js.map → chunk-F3F3PVJ3.js.map} +0 -0
- /package/dist/{chunk-V3TJN4XI.js.map → chunk-GMDPQ5FQ.js.map} +0 -0
- /package/dist/{chunk-QAFVP2NG.js.map → chunk-IGO6GNG7.js.map} +0 -0
- /package/dist/{chunk-3H4NJO43.js.map → chunk-PHIRRCPY.js.map} +0 -0
- /package/dist/{chunk-C7LWJWOO.js.map → chunk-QKGNSXF2.js.map} +0 -0
- /package/dist/{chunk-B4AGHKHF.js.map → chunk-QXDEXQDI.js.map} +0 -0
- /package/dist/{chunk-PG6NTQ72.js.map → chunk-VAAQZZHT.js.map} +0 -0
- /package/dist/{chunk-3KFGRSM7.js.map → chunk-WIPZ65KU.js.map} +0 -0
- /package/dist/{chunk-S4GVJZ7X.js.map → chunk-YNRK3N2D.js.map} +0 -0
|
@@ -11,7 +11,7 @@ import { ColorPresetSelect, ColorPickerInput } from './color-preset-select'
|
|
|
11
11
|
import { Input } from './input'
|
|
12
12
|
import { type TagProps } from './tag'
|
|
13
13
|
import { TicketStatusTag } from './ticket-status-tag'
|
|
14
|
-
import {
|
|
14
|
+
import { TouchFriendlyTooltip } from './touch-friendly-tooltip'
|
|
15
15
|
|
|
16
16
|
type SystemTagVariant = Extract<TagProps['variant'], 'outline' | 'primary'>
|
|
17
17
|
|
|
@@ -37,56 +37,6 @@ export interface TicketStatusConfigRowProps {
|
|
|
37
37
|
isDragging?: boolean
|
|
38
38
|
}
|
|
39
39
|
|
|
40
|
-
let dismissOpenTooltip: (() => void) | null = null
|
|
41
|
-
|
|
42
|
-
function WithLeftTooltip({ content, children }: { content?: string; children: React.ReactElement }) {
|
|
43
|
-
const [open, setOpen] = React.useState(false)
|
|
44
|
-
const isTouchRef = React.useRef(false)
|
|
45
|
-
const close = React.useCallback(() => setOpen(false), [])
|
|
46
|
-
|
|
47
|
-
if (!content) return children
|
|
48
|
-
|
|
49
|
-
const toggleFromTouch = () => {
|
|
50
|
-
setOpen(prev => {
|
|
51
|
-
const next = !prev
|
|
52
|
-
if (next) {
|
|
53
|
-
if (dismissOpenTooltip && dismissOpenTooltip !== close) dismissOpenTooltip()
|
|
54
|
-
dismissOpenTooltip = close
|
|
55
|
-
} else if (dismissOpenTooltip === close) {
|
|
56
|
-
dismissOpenTooltip = null
|
|
57
|
-
}
|
|
58
|
-
return next
|
|
59
|
-
})
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
return (
|
|
63
|
-
<TooltipProvider delayDuration={150}>
|
|
64
|
-
<Tooltip open={open} onOpenChange={setOpen}>
|
|
65
|
-
<TooltipTrigger
|
|
66
|
-
asChild
|
|
67
|
-
onPointerDown={e => {
|
|
68
|
-
isTouchRef.current = e.pointerType === 'touch'
|
|
69
|
-
if (!isTouchRef.current) return
|
|
70
|
-
e.preventDefault()
|
|
71
|
-
toggleFromTouch()
|
|
72
|
-
}}
|
|
73
|
-
onFocus={e => {
|
|
74
|
-
if (isTouchRef.current) e.preventDefault()
|
|
75
|
-
}}
|
|
76
|
-
onClick={e => {
|
|
77
|
-
if (isTouchRef.current) e.preventDefault()
|
|
78
|
-
}}
|
|
79
|
-
>
|
|
80
|
-
{children}
|
|
81
|
-
</TooltipTrigger>
|
|
82
|
-
<TooltipContent side="left" className="max-w-xs">
|
|
83
|
-
{content}
|
|
84
|
-
</TooltipContent>
|
|
85
|
-
</Tooltip>
|
|
86
|
-
</TooltipProvider>
|
|
87
|
-
)
|
|
88
|
-
}
|
|
89
|
-
|
|
90
40
|
export function TicketStatusConfigRow({
|
|
91
41
|
variant,
|
|
92
42
|
statusKey,
|
|
@@ -179,7 +129,7 @@ export function TicketStatusConfigRow({
|
|
|
179
129
|
|
|
180
130
|
<div className="flex h-11 w-12 shrink-0 items-center justify-center md:h-12">
|
|
181
131
|
{isSystem ? (
|
|
182
|
-
<
|
|
132
|
+
<TouchFriendlyTooltip content={systemTooltip}>
|
|
183
133
|
<button
|
|
184
134
|
type="button"
|
|
185
135
|
aria-label={systemTooltip ?? 'System status'}
|
|
@@ -187,9 +137,9 @@ export function TicketStatusConfigRow({
|
|
|
187
137
|
>
|
|
188
138
|
<InfoCircleIcon size={24} />
|
|
189
139
|
</button>
|
|
190
|
-
</
|
|
140
|
+
</TouchFriendlyTooltip>
|
|
191
141
|
) : (
|
|
192
|
-
<
|
|
142
|
+
<TouchFriendlyTooltip content={deleteDisabled ? deleteDisabledReason : undefined}>
|
|
193
143
|
<span className="inline-flex">
|
|
194
144
|
<Button
|
|
195
145
|
type="button"
|
|
@@ -203,7 +153,7 @@ export function TicketStatusConfigRow({
|
|
|
203
153
|
<TrashIcon className="text-ods-error"/>
|
|
204
154
|
</Button>
|
|
205
155
|
</span>
|
|
206
|
-
</
|
|
156
|
+
</TouchFriendlyTooltip>
|
|
207
157
|
)}
|
|
208
158
|
</div>
|
|
209
159
|
</div>
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
'use client'
|
|
2
|
+
|
|
3
|
+
import * as React from 'react'
|
|
4
|
+
import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from './tooltip'
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* The one tooltip allowed open at a time, across every instance — tapping a
|
|
8
|
+
* second trigger dismisses the first, since touch has no "mouse left" to close
|
|
9
|
+
* it. Module-level on purpose: instances live in unrelated subtrees.
|
|
10
|
+
*/
|
|
11
|
+
let dismissOpenTooltip: (() => void) | null = null
|
|
12
|
+
|
|
13
|
+
export interface TouchFriendlyTooltipProps {
|
|
14
|
+
/** Tooltip text; when absent the children render bare, with no trigger wiring. */
|
|
15
|
+
content?: string
|
|
16
|
+
side?: 'top' | 'right' | 'bottom' | 'left'
|
|
17
|
+
children: React.ReactElement
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Hover tooltip that also works on touch, where Radix's hover/focus model never
|
|
22
|
+
* opens: a tap toggles it instead. Wraps its own `TooltipProvider`, so it can be
|
|
23
|
+
* dropped anywhere without a provider up the tree.
|
|
24
|
+
*/
|
|
25
|
+
export function TouchFriendlyTooltip({ content, side = 'left', children }: TouchFriendlyTooltipProps) {
|
|
26
|
+
const [open, setOpen] = React.useState(false)
|
|
27
|
+
const isTouchRef = React.useRef(false)
|
|
28
|
+
const close = React.useCallback(() => setOpen(false), [])
|
|
29
|
+
|
|
30
|
+
if (!content) return children
|
|
31
|
+
|
|
32
|
+
const toggleFromTouch = () => {
|
|
33
|
+
setOpen(prev => {
|
|
34
|
+
const next = !prev
|
|
35
|
+
if (next) {
|
|
36
|
+
if (dismissOpenTooltip && dismissOpenTooltip !== close) dismissOpenTooltip()
|
|
37
|
+
dismissOpenTooltip = close
|
|
38
|
+
} else if (dismissOpenTooltip === close) {
|
|
39
|
+
dismissOpenTooltip = null
|
|
40
|
+
}
|
|
41
|
+
return next
|
|
42
|
+
})
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
return (
|
|
46
|
+
<TooltipProvider delayDuration={150}>
|
|
47
|
+
<Tooltip open={open} onOpenChange={setOpen}>
|
|
48
|
+
<TooltipTrigger
|
|
49
|
+
asChild
|
|
50
|
+
onPointerDown={e => {
|
|
51
|
+
isTouchRef.current = e.pointerType === 'touch'
|
|
52
|
+
if (!isTouchRef.current) return
|
|
53
|
+
e.preventDefault()
|
|
54
|
+
toggleFromTouch()
|
|
55
|
+
}}
|
|
56
|
+
onFocus={e => {
|
|
57
|
+
if (isTouchRef.current) e.preventDefault()
|
|
58
|
+
}}
|
|
59
|
+
onClick={e => {
|
|
60
|
+
if (isTouchRef.current) e.preventDefault()
|
|
61
|
+
}}
|
|
62
|
+
>
|
|
63
|
+
{children}
|
|
64
|
+
</TooltipTrigger>
|
|
65
|
+
<TooltipContent side={side} className="max-w-xs">
|
|
66
|
+
{content}
|
|
67
|
+
</TooltipContent>
|
|
68
|
+
</Tooltip>
|
|
69
|
+
</TooltipProvider>
|
|
70
|
+
)
|
|
71
|
+
}
|