@flamingo-stack/openframe-frontend-core 0.0.416-snapshot.20260712013500 → 0.0.416
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-42KMUJFK.cjs → chunk-234A5WF2.cjs} +26 -26
- package/dist/{chunk-42KMUJFK.cjs.map → chunk-234A5WF2.cjs.map} +1 -1
- package/dist/{chunk-S52UK6KQ.cjs → chunk-3F4LKYIK.cjs} +7 -7
- package/dist/{chunk-S52UK6KQ.cjs.map → chunk-3F4LKYIK.cjs.map} +1 -1
- package/dist/{chunk-T6VFIDS4.cjs → chunk-3OSTXIB6.cjs} +59 -59
- package/dist/{chunk-T6VFIDS4.cjs.map → chunk-3OSTXIB6.cjs.map} +1 -1
- package/dist/{chunk-MHUT2NR4.js → chunk-3RW27WRK.js} +2 -2
- package/dist/{chunk-SIF5WN7S.js → chunk-43AKGHDL.js} +4 -4
- package/dist/{chunk-P7FJIB7V.js → chunk-4AFA5N5Q.js} +2 -2
- package/dist/{chunk-YX2YP4YM.js → chunk-BGSIZWAK.js} +2 -2
- package/dist/{chunk-F3U6OH3K.cjs → chunk-BIFZRCGN.cjs} +31 -31
- package/dist/{chunk-F3U6OH3K.cjs.map → chunk-BIFZRCGN.cjs.map} +1 -1
- package/dist/{chunk-Y37BRIBI.js → chunk-CQ6MF7KT.js} +4 -4
- package/dist/{chunk-2IJX5XDG.cjs → chunk-CQG77HCB.cjs} +11 -11
- package/dist/{chunk-2IJX5XDG.cjs.map → chunk-CQG77HCB.cjs.map} +1 -1
- package/dist/{chunk-MOOMQTZ5.cjs → chunk-CRPIHDEI.cjs} +9 -9
- package/dist/{chunk-MOOMQTZ5.cjs.map → chunk-CRPIHDEI.cjs.map} +1 -1
- package/dist/{chunk-3R7XBEUB.cjs → chunk-D4NSPERU.cjs} +26 -26
- package/dist/{chunk-3R7XBEUB.cjs.map → chunk-D4NSPERU.cjs.map} +1 -1
- package/dist/{chunk-KGYUVJJ5.cjs → chunk-DQMH6NAF.cjs} +15 -15
- package/dist/{chunk-KGYUVJJ5.cjs.map → chunk-DQMH6NAF.cjs.map} +1 -1
- package/dist/{chunk-UL5RGRWZ.js → chunk-FHAMKB5L.js} +2 -2
- package/dist/{chunk-Y4ZQTUBT.js → chunk-GEUZA4VP.js} +2 -2
- package/dist/{chunk-WTJ4AOVR.js → chunk-GIHNDMGI.js} +2 -2
- package/dist/{chunk-GGTNMXGZ.cjs → chunk-IVWQIWZI.cjs} +5 -5
- package/dist/{chunk-GGTNMXGZ.cjs.map → chunk-IVWQIWZI.cjs.map} +1 -1
- package/dist/{chunk-BIRJP6QA.js → chunk-N6T7CDEN.js} +1396 -1470
- package/dist/chunk-N6T7CDEN.js.map +1 -0
- package/dist/{chunk-F4HV6IBG.cjs → chunk-QMGXJEZ3.cjs} +62 -62
- package/dist/{chunk-F4HV6IBG.cjs.map → chunk-QMGXJEZ3.cjs.map} +1 -1
- package/dist/{chunk-IEAQBLZI.js → chunk-QO2JZYIB.js} +4 -4
- package/dist/{chunk-H3HZMHN3.cjs → chunk-RQLQOH46.cjs} +37 -37
- package/dist/{chunk-H3HZMHN3.cjs.map → chunk-RQLQOH46.cjs.map} +1 -1
- package/dist/{chunk-53LGRFM2.cjs → chunk-S3PO5NOK.cjs} +369 -443
- package/dist/chunk-S3PO5NOK.cjs.map +1 -0
- package/dist/{chunk-6OZPER3T.js → chunk-SFZ2BJST.js} +2 -2
- package/dist/{chunk-E3AB36EG.js → chunk-VBJC75FT.js} +4 -4
- package/dist/components/announcement-bar.d.ts.map +1 -1
- package/dist/components/case-studies/index.cjs +8 -8
- package/dist/components/case-studies/index.js +2 -2
- package/dist/components/chat/chat-panel-header-mobile.d.ts +8 -8
- package/dist/components/chat/chat-panel-header-mobile.d.ts.map +1 -1
- 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/index.cjs +2 -2
- package/dist/components/features/index.js +1 -1
- package/dist/components/help-center-pages/index.cjs +20 -20
- package/dist/components/help-center-pages/index.js +11 -11
- package/dist/components/index.cjs +129 -131
- package/dist/components/index.cjs.map +1 -1
- package/dist/components/index.js +10 -12
- package/dist/components/index.js.map +1 -1
- package/dist/components/navigation/header.d.ts.map +1 -1
- package/dist/components/navigation/index.cjs +2 -4
- package/dist/components/navigation/index.cjs.map +1 -1
- package/dist/components/navigation/index.d.ts +0 -2
- package/dist/components/navigation/index.d.ts.map +1 -1
- package/dist/components/navigation/index.js +1 -3
- 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 +5 -5
- package/dist/components/tickets/index.js +4 -4
- package/dist/components/ui/index.cjs +2 -2
- package/dist/components/ui/index.js +1 -1
- package/dist/index.cjs +2 -4
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +1 -3
- package/dist/types/navigation.d.ts +0 -12
- package/dist/types/navigation.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/components/announcement-bar.tsx +1 -5
- package/src/components/chat/chat-panel-header-mobile.tsx +8 -21
- package/src/components/chat/embeddable-chat.tsx +0 -13
- package/src/components/navigation/header.tsx +10 -25
- package/src/components/navigation/index.ts +0 -3
- package/src/stories/Header.stories.tsx +0 -28
- package/src/styles/chat-animations.css +0 -54
- package/src/types/navigation.ts +0 -12
- package/dist/chunk-53LGRFM2.cjs.map +0 -1
- package/dist/chunk-BIRJP6QA.js.map +0 -1
- package/dist/components/navigation/mingo-ai-button.d.ts +0 -16
- package/dist/components/navigation/mingo-ai-button.d.ts.map +0 -1
- package/src/components/navigation/mingo-ai-button.tsx +0 -98
- package/src/stories/MingoAiButton.stories.tsx +0 -46
- /package/dist/{chunk-MHUT2NR4.js.map → chunk-3RW27WRK.js.map} +0 -0
- /package/dist/{chunk-SIF5WN7S.js.map → chunk-43AKGHDL.js.map} +0 -0
- /package/dist/{chunk-P7FJIB7V.js.map → chunk-4AFA5N5Q.js.map} +0 -0
- /package/dist/{chunk-YX2YP4YM.js.map → chunk-BGSIZWAK.js.map} +0 -0
- /package/dist/{chunk-Y37BRIBI.js.map → chunk-CQ6MF7KT.js.map} +0 -0
- /package/dist/{chunk-UL5RGRWZ.js.map → chunk-FHAMKB5L.js.map} +0 -0
- /package/dist/{chunk-Y4ZQTUBT.js.map → chunk-GEUZA4VP.js.map} +0 -0
- /package/dist/{chunk-WTJ4AOVR.js.map → chunk-GIHNDMGI.js.map} +0 -0
- /package/dist/{chunk-IEAQBLZI.js.map → chunk-QO2JZYIB.js.map} +0 -0
- /package/dist/{chunk-6OZPER3T.js.map → chunk-SFZ2BJST.js.map} +0 -0
- /package/dist/{chunk-E3AB36EG.js.map → chunk-VBJC75FT.js.map} +0 -0
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
export interface MingoAiButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
|
|
3
|
-
source?: string;
|
|
4
|
-
/** The platform's Mingo identity glyph — pass the SAME server-configured
|
|
5
|
-
* icon the chat panel renders (host-side: `EntityIcon` fed by the admin
|
|
6
|
-
* `assistantIcon`), so the launcher and the panel can never diverge.
|
|
7
|
-
* Falls back to the packaged Mingo mark when the server has none. */
|
|
8
|
-
icon?: React.ReactNode;
|
|
9
|
-
/** The launcher's wordmark + aria-label — pass the server-configured
|
|
10
|
-
* assistant name (same `assistantName` the chat panel shows) so the
|
|
11
|
-
* launcher never hardcodes an identity the admin has renamed. */
|
|
12
|
-
label?: string;
|
|
13
|
-
}
|
|
14
|
-
export declare function MingoAiButton({ source, icon, label, className, onClick, ...props }: MingoAiButtonProps): React.JSX.Element;
|
|
15
|
-
export default MingoAiButton;
|
|
16
|
-
//# sourceMappingURL=mingo-ai-button.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mingo-ai-button.d.ts","sourceRoot":"","sources":["../../../src/components/navigation/mingo-ai-button.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,MAAM,WAAW,kBAAmB,SAAQ,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC;IACvF,MAAM,CAAC,EAAE,MAAM,CAAA;IACf;;;0EAGsE;IACtE,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACtB;;sEAEkE;IAClE,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAmBD,wBAAgB,aAAa,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,KAAkB,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,KAAK,EAAE,EAAE,kBAAkB,qBA2DnH;AAED,eAAe,aAAa,CAAA"}
|
|
@@ -1,98 +0,0 @@
|
|
|
1
|
-
'use client'
|
|
2
|
-
|
|
3
|
-
import React from 'react'
|
|
4
|
-
import { MingoIcon } from '../icons'
|
|
5
|
-
import { cn } from '../../utils'
|
|
6
|
-
|
|
7
|
-
export interface MingoAiButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
|
|
8
|
-
source?: string
|
|
9
|
-
/** The platform's Mingo identity glyph — pass the SAME server-configured
|
|
10
|
-
* icon the chat panel renders (host-side: `EntityIcon` fed by the admin
|
|
11
|
-
* `assistantIcon`), so the launcher and the panel can never diverge.
|
|
12
|
-
* Falls back to the packaged Mingo mark when the server has none. */
|
|
13
|
-
icon?: React.ReactNode
|
|
14
|
-
/** The launcher's wordmark + aria-label — pass the server-configured
|
|
15
|
-
* assistant name (same `assistantName` the chat panel shows) so the
|
|
16
|
-
* launcher never hardcodes an identity the admin has renamed. */
|
|
17
|
-
label?: string
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
/**
|
|
21
|
-
* Marketing-header Mingo AI launcher: the flush, full-height button rendered
|
|
22
|
-
* at the far right edge of the public `Header` (`config.mingo`). Stateless:
|
|
23
|
-
* clicking dispatches an `ask-ai:open` CustomEvent (source-filtered) that the
|
|
24
|
-
* mounted `EmbeddableChat` panel listens for.
|
|
25
|
-
*
|
|
26
|
-
* Distinct from `header-mingo-button.tsx` (`HeaderMingoButton`), the
|
|
27
|
-
* dashboard/AppHeader controlled toggle; different surface and contract, do
|
|
28
|
-
* not merge them.
|
|
29
|
-
*
|
|
30
|
-
* Deliberately a raw `<button>` rather than the ui-kit `Button`: it needs
|
|
31
|
-
* full-height flush layout, an absolutely-positioned glow child, and icon-only
|
|
32
|
-
* collapse that `Button` cannot express (same precedent as
|
|
33
|
-
* `header-mingo-button.tsx`).
|
|
34
|
-
*/
|
|
35
|
-
const MINGO_ACCENT = 'var(--ods-flamingo-cyan-base)'
|
|
36
|
-
|
|
37
|
-
export function MingoAiButton({ source, icon, label = 'Mingo AI', className, onClick, ...props }: MingoAiButtonProps) {
|
|
38
|
-
return (
|
|
39
|
-
<button
|
|
40
|
-
{...props}
|
|
41
|
-
type="button"
|
|
42
|
-
aria-label={label}
|
|
43
|
-
onClick={(e) => {
|
|
44
|
-
// Coalesce to '' so a source-less mount still matches EmbeddableChat's
|
|
45
|
-
// own `runtime.source ?? ''` comparison (undefined !== '' would make
|
|
46
|
-
// the panel silently ignore the event).
|
|
47
|
-
window.dispatchEvent(new CustomEvent('ask-ai:open', { detail: { source: source ?? '' } }))
|
|
48
|
-
onClick?.(e)
|
|
49
|
-
}}
|
|
50
|
-
className={cn(
|
|
51
|
-
// `--spacing-system-l` is itself responsive (16px, 24px from 800px):
|
|
52
|
-
// the compact mobile padding keeps the 375px header row
|
|
53
|
-
// (logo + CTA + burger + Mingo) inside one viewport per Figma
|
|
54
|
-
// 3924-35639 (mobile) / 4033-90260 (desktop).
|
|
55
|
-
'group/mingo relative flex h-full items-center border-l border-ods-border bg-ods-card px-[var(--spacing-system-l)] transition-colors duration-200 focus:outline-none focus-visible:ring-2 focus-visible:ring-ods-accent',
|
|
56
|
-
className,
|
|
57
|
-
)}
|
|
58
|
-
>
|
|
59
|
-
{/* Inner box = 1:1 twin of the ui-kit Button geometry the header CTA
|
|
60
|
-
uses (rounded-md, h-10 md:h-12, px m) so the animated ring traces
|
|
61
|
-
EXACTLY where a normal button border would sit. */}
|
|
62
|
-
<span className="relative flex h-10 items-center gap-[var(--spacing-system-s)] rounded-md px-[var(--spacing-system-m)] md:h-12">
|
|
63
|
-
{/* AI edge light (Apple-Intelligence-style): a rotating accent-
|
|
64
|
-
gradient arc revealed as a 3px ring on the Button-shaped outline,
|
|
65
|
-
platform-tinted via the accent token. */}
|
|
66
|
-
<span aria-hidden="true" className="pointer-events-none absolute inset-0 overflow-hidden rounded-md">
|
|
67
|
-
<span className="mingo-edge" />
|
|
68
|
-
</span>
|
|
69
|
-
{/* Interior cover: reveals the rotating gradient ONLY as the ring
|
|
70
|
-
band; radius = rounded-md minus the 3px band so the inner curve
|
|
71
|
-
stays concentric. Must match the button surface (bg-ods-card). */}
|
|
72
|
-
<span aria-hidden="true" className="pointer-events-none absolute inset-[3px] rounded-[3px] bg-ods-card" />
|
|
73
|
-
{/* One-shot light-streak shimmer on hover, clipped to the box. */}
|
|
74
|
-
<span aria-hidden="true" className="pointer-events-none absolute inset-0 overflow-hidden rounded-md">
|
|
75
|
-
<span
|
|
76
|
-
className="mingo-shimmer absolute inset-y-0 left-0 w-1/2"
|
|
77
|
-
style={{ background: 'linear-gradient(105deg, transparent, color-mix(in srgb, var(--ods-system-greys-white) 12%, transparent), transparent)' }}
|
|
78
|
-
/>
|
|
79
|
-
</span>
|
|
80
|
-
{icon ? (
|
|
81
|
-
<span className="relative inline-flex size-6 shrink-0 items-center justify-center">{icon}</span>
|
|
82
|
-
) : (
|
|
83
|
-
<MingoIcon
|
|
84
|
-
color="currentColor"
|
|
85
|
-
eyesColor={MINGO_ACCENT}
|
|
86
|
-
cornerColor={MINGO_ACCENT}
|
|
87
|
-
className="relative h-6 w-6 shrink-0 text-ods-text-primary"
|
|
88
|
-
/>
|
|
89
|
-
)}
|
|
90
|
-
<span className="relative hidden whitespace-nowrap text-h3 font-bold tracking-[-0.36px] text-ods-text-primary md:inline">
|
|
91
|
-
{label}
|
|
92
|
-
</span>
|
|
93
|
-
</span>
|
|
94
|
-
</button>
|
|
95
|
-
)
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
export default MingoAiButton
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import type { Meta, StoryObj } from '@storybook/nextjs-vite'
|
|
2
|
-
import { MingoAiButton } from '../components/navigation/mingo-ai-button'
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* Marketing-header Mingo AI launcher. Full-height and flush inside the 72px
|
|
6
|
-
* unified header: the decorator reproduces that context so the left border
|
|
7
|
-
* divider and traveling accent edge light render as they do in `Header` (`config.mingo`).
|
|
8
|
-
* The "Mingo AI" label hides below `md` (icon-only, see IconOnly).
|
|
9
|
-
*/
|
|
10
|
-
const meta = {
|
|
11
|
-
title: 'Navigation/MingoAiButton',
|
|
12
|
-
component: MingoAiButton,
|
|
13
|
-
parameters: {
|
|
14
|
-
layout: 'centered',
|
|
15
|
-
},
|
|
16
|
-
tags: ['autodocs'],
|
|
17
|
-
argTypes: {
|
|
18
|
-
source: { control: 'text' },
|
|
19
|
-
},
|
|
20
|
-
decorators: [
|
|
21
|
-
(Story) => (
|
|
22
|
-
<div className="flex h-[72px] items-center justify-end border-b border-ods-border bg-ods-card w-[360px]">
|
|
23
|
-
<Story />
|
|
24
|
-
</div>
|
|
25
|
-
),
|
|
26
|
-
],
|
|
27
|
-
} satisfies Meta<typeof MingoAiButton>
|
|
28
|
-
|
|
29
|
-
export default meta
|
|
30
|
-
type Story = StoryObj<typeof meta>
|
|
31
|
-
|
|
32
|
-
export const Default: Story = {
|
|
33
|
-
args: {
|
|
34
|
-
source: 'flamingo',
|
|
35
|
-
},
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
/** Below `md` the wordmark is hidden and only the Mingo icon shows. */
|
|
39
|
-
export const IconOnly: Story = {
|
|
40
|
-
args: {
|
|
41
|
-
source: 'flamingo',
|
|
42
|
-
},
|
|
43
|
-
parameters: {
|
|
44
|
-
viewport: { defaultViewport: 'mobile1' },
|
|
45
|
-
},
|
|
46
|
-
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|