@flamingo-stack/openframe-frontend-core 0.0.414 → 0.0.415-snapshot.20260711220253
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-2K2L5TSX.cjs → chunk-234A5WF2.cjs} +29 -29
- package/dist/{chunk-2K2L5TSX.cjs.map → chunk-234A5WF2.cjs.map} +1 -1
- package/dist/{chunk-DQ764R3U.cjs → chunk-3F4LKYIK.cjs} +7 -7
- package/dist/{chunk-DQ764R3U.cjs.map → chunk-3F4LKYIK.cjs.map} +1 -1
- package/dist/{chunk-ANTB4HVV.cjs → chunk-3OSTXIB6.cjs} +75 -75
- package/dist/{chunk-ANTB4HVV.cjs.map → chunk-3OSTXIB6.cjs.map} +1 -1
- package/dist/{chunk-W5BV2PET.js → chunk-3RW27WRK.js} +3 -3
- package/dist/{chunk-3NTF2T7Z.js → chunk-43AKGHDL.js} +5 -5
- package/dist/{chunk-VJXNK62Q.js → chunk-4AFA5N5Q.js} +2 -2
- package/dist/{chunk-42KRPKJ6.js → chunk-BGSIZWAK.js} +4 -4
- package/dist/{chunk-YNUOHY35.cjs → chunk-BIFZRCGN.cjs} +40 -40
- package/dist/{chunk-YNUOHY35.cjs.map → chunk-BIFZRCGN.cjs.map} +1 -1
- package/dist/{chunk-5RXP6XT4.js → chunk-CQ6MF7KT.js} +5 -5
- package/dist/{chunk-MEKFY5GJ.cjs → chunk-CQG77HCB.cjs} +18 -18
- package/dist/{chunk-MEKFY5GJ.cjs.map → chunk-CQG77HCB.cjs.map} +1 -1
- package/dist/{chunk-5VFRKFOX.cjs → chunk-CRPIHDEI.cjs} +12 -12
- package/dist/{chunk-5VFRKFOX.cjs.map → chunk-CRPIHDEI.cjs.map} +1 -1
- package/dist/{chunk-LOTEW3AI.cjs → chunk-D4NSPERU.cjs} +32 -32
- package/dist/{chunk-LOTEW3AI.cjs.map → chunk-D4NSPERU.cjs.map} +1 -1
- package/dist/{chunk-QDARR6G4.cjs → chunk-DQMH6NAF.cjs} +15 -15
- package/dist/{chunk-QDARR6G4.cjs.map → chunk-DQMH6NAF.cjs.map} +1 -1
- package/dist/{chunk-DGIF3YDV.js → chunk-FFCGB73K.js} +2 -2
- package/dist/{chunk-BJXF4BGQ.js → chunk-FHAMKB5L.js} +2 -2
- package/dist/{chunk-D6CFAQ7B.js → chunk-GEUZA4VP.js} +3 -3
- package/dist/{chunk-LPH2JDOW.cjs → chunk-GHHUCCLX.cjs} +2 -2
- package/dist/{chunk-LPH2JDOW.cjs.map → chunk-GHHUCCLX.cjs.map} +1 -1
- package/dist/{chunk-KHCAOHL4.js → chunk-GIHNDMGI.js} +2 -2
- package/dist/{chunk-WHHHMJQN.cjs → chunk-IVWQIWZI.cjs} +5 -5
- package/dist/{chunk-WHHHMJQN.cjs.map → chunk-IVWQIWZI.cjs.map} +1 -1
- package/dist/{chunk-ZUTBP5YD.js → chunk-N6T7CDEN.js} +5 -4
- package/dist/chunk-N6T7CDEN.js.map +1 -0
- package/dist/{chunk-4FNDOTW2.js → chunk-OMUCATVA.js} +2 -2
- package/dist/{chunk-3I3633MR.cjs → chunk-QMGXJEZ3.cjs} +73 -73
- package/dist/{chunk-3I3633MR.cjs.map → chunk-QMGXJEZ3.cjs.map} +1 -1
- package/dist/{chunk-UUOCY4XK.js → chunk-QO2JZYIB.js} +7 -7
- package/dist/{chunk-CZJJ4BX5.cjs → chunk-RQLQOH46.cjs} +40 -40
- package/dist/{chunk-CZJJ4BX5.cjs.map → chunk-RQLQOH46.cjs.map} +1 -1
- package/dist/{chunk-JOPOMUFZ.cjs → chunk-S3PO5NOK.cjs} +180 -179
- package/dist/chunk-S3PO5NOK.cjs.map +1 -0
- package/dist/{chunk-7U57L7Z7.js → chunk-SFZ2BJST.js} +3 -3
- package/dist/{chunk-3SNDISEN.cjs → chunk-SR6LEWCF.cjs} +31 -31
- package/dist/{chunk-3SNDISEN.cjs.map → chunk-SR6LEWCF.cjs.map} +1 -1
- package/dist/{chunk-HAJRIISX.js → chunk-VBJC75FT.js} +6 -6
- package/dist/{chunk-N7YBNHVT.js → chunk-Z6NIMOXQ.js} +2 -2
- package/dist/chunk-Z6NIMOXQ.js.map +1 -0
- package/dist/{chunk-G2G7HLEM.cjs → chunk-ZKIYCRVQ.cjs} +3 -3
- package/dist/{chunk-G2G7HLEM.cjs.map → chunk-ZKIYCRVQ.cjs.map} +1 -1
- package/dist/components/case-studies/index.cjs +14 -14
- package/dist/components/case-studies/index.js +4 -4
- package/dist/components/chat/index.cjs +4 -4
- package/dist/components/chat/index.js +3 -3
- package/dist/components/chat/utils/is-cross-origin-url.d.ts.map +1 -1
- package/dist/components/contact/index.cjs +5 -5
- package/dist/components/contact/index.js +4 -4
- package/dist/components/docs/index.cjs +7 -7
- package/dist/components/docs/index.js +6 -6
- package/dist/components/embeds/index.cjs +5 -5
- package/dist/components/embeds/index.js +4 -4
- package/dist/components/faq/index.cjs +6 -6
- package/dist/components/faq/index.js +5 -5
- package/dist/components/features/index.cjs +4 -4
- package/dist/components/features/index.js +3 -3
- package/dist/components/help-center-pages/index.cjs +23 -23
- package/dist/components/help-center-pages/index.js +14 -14
- package/dist/components/icons/figma-icon.d.ts.map +1 -1
- package/dist/components/icons/index.cjs +2 -2
- package/dist/components/icons/index.js +1 -1
- package/dist/components/index.cjs +151 -151
- package/dist/components/index.js +12 -12
- package/dist/components/navigation/index.cjs +4 -4
- package/dist/components/navigation/index.js +3 -3
- package/dist/components/onboarding-guides/index.cjs +8 -8
- package/dist/components/onboarding-guides/index.js +7 -7
- package/dist/components/related-content/index.cjs +6 -6
- package/dist/components/related-content/index.js +5 -5
- package/dist/components/tickets/index.cjs +7 -7
- package/dist/components/tickets/index.js +6 -6
- package/dist/components/ui/index.cjs +4 -4
- package/dist/components/ui/index.js +3 -3
- package/dist/hooks/index.cjs +3 -3
- package/dist/hooks/index.js +2 -2
- package/dist/index.cjs +4 -4
- package/dist/index.js +3 -3
- package/dist/utils/index.cjs +1 -0
- package/dist/utils/index.cjs.map +1 -1
- package/dist/utils/index.js +1 -0
- package/dist/utils/index.js.map +1 -1
- package/package.json +1 -1
- package/src/components/chat/entity-cards/roadmap-card.tsx +1 -1
- package/src/components/chat/utils/__tests__/is-cross-origin-url.test.ts +43 -0
- package/src/components/chat/utils/is-cross-origin-url.ts +4 -0
- package/src/components/icons/figma-icon.tsx +1 -1
- package/dist/chunk-JOPOMUFZ.cjs.map +0 -1
- package/dist/chunk-N7YBNHVT.js.map +0 -1
- package/dist/chunk-ZUTBP5YD.js.map +0 -1
- /package/dist/{chunk-W5BV2PET.js.map → chunk-3RW27WRK.js.map} +0 -0
- /package/dist/{chunk-3NTF2T7Z.js.map → chunk-43AKGHDL.js.map} +0 -0
- /package/dist/{chunk-VJXNK62Q.js.map → chunk-4AFA5N5Q.js.map} +0 -0
- /package/dist/{chunk-42KRPKJ6.js.map → chunk-BGSIZWAK.js.map} +0 -0
- /package/dist/{chunk-5RXP6XT4.js.map → chunk-CQ6MF7KT.js.map} +0 -0
- /package/dist/{chunk-DGIF3YDV.js.map → chunk-FFCGB73K.js.map} +0 -0
- /package/dist/{chunk-BJXF4BGQ.js.map → chunk-FHAMKB5L.js.map} +0 -0
- /package/dist/{chunk-D6CFAQ7B.js.map → chunk-GEUZA4VP.js.map} +0 -0
- /package/dist/{chunk-KHCAOHL4.js.map → chunk-GIHNDMGI.js.map} +0 -0
- /package/dist/{chunk-4FNDOTW2.js.map → chunk-OMUCATVA.js.map} +0 -0
- /package/dist/{chunk-UUOCY4XK.js.map → chunk-QO2JZYIB.js.map} +0 -0
- /package/dist/{chunk-7U57L7Z7.js.map → chunk-SFZ2BJST.js.map} +0 -0
- /package/dist/{chunk-HAJRIISX.js.map → chunk-VBJC75FT.js.map} +0 -0
package/package.json
CHANGED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { describe, it, expect } from 'vitest'
|
|
2
|
+
import { isCrossOriginUrl } from '../is-cross-origin-url'
|
|
3
|
+
import { decideNewTab } from '../decide-new-tab'
|
|
4
|
+
|
|
5
|
+
describe('isCrossOriginUrl', () => {
|
|
6
|
+
it('treats falsy values as same-origin', () => {
|
|
7
|
+
expect(isCrossOriginUrl(null)).toBe(false)
|
|
8
|
+
expect(isCrossOriginUrl(undefined)).toBe(false)
|
|
9
|
+
expect(isCrossOriginUrl('')).toBe(false)
|
|
10
|
+
})
|
|
11
|
+
|
|
12
|
+
it('treats same-document references as same-origin', () => {
|
|
13
|
+
// Regression: bare-hash anchors ("More coming in Next Generations" on
|
|
14
|
+
// /pricing) were classified cross-origin and opened in a new tab.
|
|
15
|
+
expect(isCrossOriginUrl('#next-generations')).toBe(false)
|
|
16
|
+
expect(isCrossOriginUrl('?tab=pricing')).toBe(false)
|
|
17
|
+
})
|
|
18
|
+
|
|
19
|
+
it('treats rooted relative paths as same-origin', () => {
|
|
20
|
+
expect(isCrossOriginUrl('/support')).toBe(false)
|
|
21
|
+
expect(isCrossOriginUrl('/roadmap#top')).toBe(false)
|
|
22
|
+
})
|
|
23
|
+
|
|
24
|
+
it('treats explicit-host URLs as cross-origin', () => {
|
|
25
|
+
expect(isCrossOriginUrl('https://flamingo.run/support')).toBe(true)
|
|
26
|
+
expect(isCrossOriginUrl('http://example.com')).toBe(true)
|
|
27
|
+
expect(isCrossOriginUrl('//cdn.example.com/file.js')).toBe(true)
|
|
28
|
+
})
|
|
29
|
+
})
|
|
30
|
+
|
|
31
|
+
describe('decideNewTab fallback (no targetPlatform)', () => {
|
|
32
|
+
it('keeps same-page hash CTAs in the same tab', () => {
|
|
33
|
+
expect(
|
|
34
|
+
decideNewTab({ href: '#next-generations', currentSource: 'flamingo' }),
|
|
35
|
+
).toBe(false)
|
|
36
|
+
})
|
|
37
|
+
|
|
38
|
+
it('still opens explicit-host URLs in a new tab', () => {
|
|
39
|
+
expect(
|
|
40
|
+
decideNewTab({ href: 'https://example.com', currentSource: 'flamingo' }),
|
|
41
|
+
).toBe(true)
|
|
42
|
+
})
|
|
43
|
+
})
|
|
@@ -20,6 +20,10 @@
|
|
|
20
20
|
*/
|
|
21
21
|
export function isCrossOriginUrl(url: string | null | undefined): boolean {
|
|
22
22
|
if (!url) return false
|
|
23
|
+
// Same-document references — a bare fragment (`#anchor`) or query
|
|
24
|
+
// (`?tab=x`) resolves against the current page and can never leave
|
|
25
|
+
// the origin.
|
|
26
|
+
if (url.startsWith('#') || url.startsWith('?')) return false
|
|
23
27
|
// Relative URL — by definition same origin.
|
|
24
28
|
if (url.startsWith('/') && !url.startsWith('//')) return false
|
|
25
29
|
// Anything else — absolute URL (http(s)://) or protocol-relative (//)
|
|
@@ -4,7 +4,7 @@ interface FigmaIconProps {
|
|
|
4
4
|
}
|
|
5
5
|
|
|
6
6
|
/** @deprecated Use icons from icons-v2-generated instead. */
|
|
7
|
-
export const FigmaIcon = ({ className = 'w-6 h-6', color =
|
|
7
|
+
export const FigmaIcon = ({ className = 'w-6 h-6', color = 'currentColor' }: FigmaIconProps) => (
|
|
8
8
|
<svg fill={color} width="800px" height="800px" viewBox="0 0 256 256" xmlns="http://www.w3.org/2000/svg" className={className}>
|
|
9
9
|
<path
|
|
10
10
|
d="M178.94238,94.00049A37.991,37.991,0,0,0,162,22.001H94A37.991,37.991,0,0,0,77.05762,94.00049,37.97671,37.97671,0,0,0,77.05811,162,37.99416,37.99416,0,1,0,132,195.99951V151.28223a37.98414,37.98414,0,1,0,46.94238-57.28174ZM192,60.001a30.03343,30.03343,0,0,1-29.98047,29.99951L162,90l-.03857.001L132,90V30.001h30A30.03406,30.03406,0,0,1,192,60.001ZM138.71729,98.00024A38.32407,38.32407,0,0,0,132,104.71777V98.00012ZM64,60.001a30.03406,30.03406,0,0,1,30-30h30V90H94l-.019.00049A30.03392,30.03392,0,0,1,64,60.001ZM94,225.999A29.99951,29.99951,0,1,1,94,166l30-.00085v30.00036A30.03364,30.03364,0,0,1,94,225.999Zm30-68L94,158a29.99976,29.99976,0,0,1-.019-59.99951L94,98.001l30-.00086ZM162,158a29.99952,29.99952,0,0,1-.03857-59.999H162l.019-.00049A29.99976,29.99976,0,0,1,162,158Z"
|