@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.
Files changed (105) hide show
  1. package/dist/{chunk-42KMUJFK.cjs → chunk-234A5WF2.cjs} +26 -26
  2. package/dist/{chunk-42KMUJFK.cjs.map → chunk-234A5WF2.cjs.map} +1 -1
  3. package/dist/{chunk-S52UK6KQ.cjs → chunk-3F4LKYIK.cjs} +7 -7
  4. package/dist/{chunk-S52UK6KQ.cjs.map → chunk-3F4LKYIK.cjs.map} +1 -1
  5. package/dist/{chunk-T6VFIDS4.cjs → chunk-3OSTXIB6.cjs} +59 -59
  6. package/dist/{chunk-T6VFIDS4.cjs.map → chunk-3OSTXIB6.cjs.map} +1 -1
  7. package/dist/{chunk-MHUT2NR4.js → chunk-3RW27WRK.js} +2 -2
  8. package/dist/{chunk-SIF5WN7S.js → chunk-43AKGHDL.js} +4 -4
  9. package/dist/{chunk-P7FJIB7V.js → chunk-4AFA5N5Q.js} +2 -2
  10. package/dist/{chunk-YX2YP4YM.js → chunk-BGSIZWAK.js} +2 -2
  11. package/dist/{chunk-F3U6OH3K.cjs → chunk-BIFZRCGN.cjs} +31 -31
  12. package/dist/{chunk-F3U6OH3K.cjs.map → chunk-BIFZRCGN.cjs.map} +1 -1
  13. package/dist/{chunk-Y37BRIBI.js → chunk-CQ6MF7KT.js} +4 -4
  14. package/dist/{chunk-2IJX5XDG.cjs → chunk-CQG77HCB.cjs} +11 -11
  15. package/dist/{chunk-2IJX5XDG.cjs.map → chunk-CQG77HCB.cjs.map} +1 -1
  16. package/dist/{chunk-MOOMQTZ5.cjs → chunk-CRPIHDEI.cjs} +9 -9
  17. package/dist/{chunk-MOOMQTZ5.cjs.map → chunk-CRPIHDEI.cjs.map} +1 -1
  18. package/dist/{chunk-3R7XBEUB.cjs → chunk-D4NSPERU.cjs} +26 -26
  19. package/dist/{chunk-3R7XBEUB.cjs.map → chunk-D4NSPERU.cjs.map} +1 -1
  20. package/dist/{chunk-KGYUVJJ5.cjs → chunk-DQMH6NAF.cjs} +15 -15
  21. package/dist/{chunk-KGYUVJJ5.cjs.map → chunk-DQMH6NAF.cjs.map} +1 -1
  22. package/dist/{chunk-UL5RGRWZ.js → chunk-FHAMKB5L.js} +2 -2
  23. package/dist/{chunk-Y4ZQTUBT.js → chunk-GEUZA4VP.js} +2 -2
  24. package/dist/{chunk-WTJ4AOVR.js → chunk-GIHNDMGI.js} +2 -2
  25. package/dist/{chunk-GGTNMXGZ.cjs → chunk-IVWQIWZI.cjs} +5 -5
  26. package/dist/{chunk-GGTNMXGZ.cjs.map → chunk-IVWQIWZI.cjs.map} +1 -1
  27. package/dist/{chunk-BIRJP6QA.js → chunk-N6T7CDEN.js} +1396 -1470
  28. package/dist/chunk-N6T7CDEN.js.map +1 -0
  29. package/dist/{chunk-F4HV6IBG.cjs → chunk-QMGXJEZ3.cjs} +62 -62
  30. package/dist/{chunk-F4HV6IBG.cjs.map → chunk-QMGXJEZ3.cjs.map} +1 -1
  31. package/dist/{chunk-IEAQBLZI.js → chunk-QO2JZYIB.js} +4 -4
  32. package/dist/{chunk-H3HZMHN3.cjs → chunk-RQLQOH46.cjs} +37 -37
  33. package/dist/{chunk-H3HZMHN3.cjs.map → chunk-RQLQOH46.cjs.map} +1 -1
  34. package/dist/{chunk-53LGRFM2.cjs → chunk-S3PO5NOK.cjs} +369 -443
  35. package/dist/chunk-S3PO5NOK.cjs.map +1 -0
  36. package/dist/{chunk-6OZPER3T.js → chunk-SFZ2BJST.js} +2 -2
  37. package/dist/{chunk-E3AB36EG.js → chunk-VBJC75FT.js} +4 -4
  38. package/dist/components/announcement-bar.d.ts.map +1 -1
  39. package/dist/components/case-studies/index.cjs +8 -8
  40. package/dist/components/case-studies/index.js +2 -2
  41. package/dist/components/chat/chat-panel-header-mobile.d.ts +8 -8
  42. package/dist/components/chat/chat-panel-header-mobile.d.ts.map +1 -1
  43. package/dist/components/chat/index.cjs +2 -2
  44. package/dist/components/chat/index.js +1 -1
  45. package/dist/components/contact/index.cjs +3 -3
  46. package/dist/components/contact/index.js +2 -2
  47. package/dist/components/docs/index.cjs +5 -5
  48. package/dist/components/docs/index.js +4 -4
  49. package/dist/components/embeds/index.cjs +3 -3
  50. package/dist/components/embeds/index.js +2 -2
  51. package/dist/components/faq/index.cjs +3 -3
  52. package/dist/components/faq/index.js +2 -2
  53. package/dist/components/features/index.cjs +2 -2
  54. package/dist/components/features/index.js +1 -1
  55. package/dist/components/help-center-pages/index.cjs +20 -20
  56. package/dist/components/help-center-pages/index.js +11 -11
  57. package/dist/components/index.cjs +129 -131
  58. package/dist/components/index.cjs.map +1 -1
  59. package/dist/components/index.js +10 -12
  60. package/dist/components/index.js.map +1 -1
  61. package/dist/components/navigation/header.d.ts.map +1 -1
  62. package/dist/components/navigation/index.cjs +2 -4
  63. package/dist/components/navigation/index.cjs.map +1 -1
  64. package/dist/components/navigation/index.d.ts +0 -2
  65. package/dist/components/navigation/index.d.ts.map +1 -1
  66. package/dist/components/navigation/index.js +1 -3
  67. package/dist/components/onboarding-guides/index.cjs +5 -5
  68. package/dist/components/onboarding-guides/index.js +4 -4
  69. package/dist/components/related-content/index.cjs +3 -3
  70. package/dist/components/related-content/index.js +2 -2
  71. package/dist/components/tickets/index.cjs +5 -5
  72. package/dist/components/tickets/index.js +4 -4
  73. package/dist/components/ui/index.cjs +2 -2
  74. package/dist/components/ui/index.js +1 -1
  75. package/dist/index.cjs +2 -4
  76. package/dist/index.cjs.map +1 -1
  77. package/dist/index.js +1 -3
  78. package/dist/types/navigation.d.ts +0 -12
  79. package/dist/types/navigation.d.ts.map +1 -1
  80. package/package.json +1 -1
  81. package/src/components/announcement-bar.tsx +1 -5
  82. package/src/components/chat/chat-panel-header-mobile.tsx +8 -21
  83. package/src/components/chat/embeddable-chat.tsx +0 -13
  84. package/src/components/navigation/header.tsx +10 -25
  85. package/src/components/navigation/index.ts +0 -3
  86. package/src/stories/Header.stories.tsx +0 -28
  87. package/src/styles/chat-animations.css +0 -54
  88. package/src/types/navigation.ts +0 -12
  89. package/dist/chunk-53LGRFM2.cjs.map +0 -1
  90. package/dist/chunk-BIRJP6QA.js.map +0 -1
  91. package/dist/components/navigation/mingo-ai-button.d.ts +0 -16
  92. package/dist/components/navigation/mingo-ai-button.d.ts.map +0 -1
  93. package/src/components/navigation/mingo-ai-button.tsx +0 -98
  94. package/src/stories/MingoAiButton.stories.tsx +0 -46
  95. /package/dist/{chunk-MHUT2NR4.js.map → chunk-3RW27WRK.js.map} +0 -0
  96. /package/dist/{chunk-SIF5WN7S.js.map → chunk-43AKGHDL.js.map} +0 -0
  97. /package/dist/{chunk-P7FJIB7V.js.map → chunk-4AFA5N5Q.js.map} +0 -0
  98. /package/dist/{chunk-YX2YP4YM.js.map → chunk-BGSIZWAK.js.map} +0 -0
  99. /package/dist/{chunk-Y37BRIBI.js.map → chunk-CQ6MF7KT.js.map} +0 -0
  100. /package/dist/{chunk-UL5RGRWZ.js.map → chunk-FHAMKB5L.js.map} +0 -0
  101. /package/dist/{chunk-Y4ZQTUBT.js.map → chunk-GEUZA4VP.js.map} +0 -0
  102. /package/dist/{chunk-WTJ4AOVR.js.map → chunk-GIHNDMGI.js.map} +0 -0
  103. /package/dist/{chunk-IEAQBLZI.js.map → chunk-QO2JZYIB.js.map} +0 -0
  104. /package/dist/{chunk-6OZPER3T.js.map → chunk-SFZ2BJST.js.map} +0 -0
  105. /package/dist/{chunk-E3AB36EG.js.map → chunk-VBJC75FT.js.map} +0 -0
@@ -7,7 +7,6 @@ import { cn } from '../../utils'
7
7
  import { Button } from '../ui/button'
8
8
  import { Menu01Icon } from '../icons-v2-generated'
9
9
  import { MOBILE_NAV_PANEL_ID } from './mobile-nav-panel'
10
- import { MingoAiButton } from './mingo-ai-button'
11
10
 
12
11
  export interface HeaderProps {
13
12
  config: HeaderConfig
@@ -274,12 +273,9 @@ export function Header({ config, platform }: HeaderProps) {
274
273
  >
275
274
  <header
276
275
  className={cn(
277
- // 72px = unified-header spec height (Figma 4033-90260); the right
278
- // cluster self-stretches so the Mingo launcher can sit flush.
279
- "w-full h-[72px] flex items-center justify-between",
276
+ "w-full flex items-center justify-between",
280
277
  "border-b border-ods-border backdrop-blur-sm",
281
- "pl-6",
282
- !config.mingo?.enabled && "pr-6",
278
+ "px-6 py-3",
283
279
  // Background color (configurable via backgroundColor prop)
284
280
  config.backgroundColor || "bg-ods-card",
285
281
  config.className
@@ -301,13 +297,13 @@ export function Header({ config, platform }: HeaderProps) {
301
297
 
302
298
  {/* Center: Navigation */}
303
299
  {config.navigation && config.navigation.items.length > 0 && (
304
- <nav
300
+ <nav
305
301
  className={cn(
306
- "hidden lg:flex items-center gap-2",
302
+ "hidden md:flex items-center gap-2",
307
303
  config.navigation.position === 'center' && "absolute left-1/2 transform -translate-x-1/2",
308
304
  config.navigation.position === 'right' && "ml-auto mr-4"
309
305
  )}
310
- role="navigation"
306
+ role="navigation"
311
307
  aria-label="Main navigation"
312
308
  >
313
309
  {config.navigation.items.map(renderNavigationItem)}
@@ -315,27 +311,20 @@ export function Header({ config, platform }: HeaderProps) {
315
311
  )}
316
312
 
317
313
  {/* Right: Actions */}
318
- <div className="flex items-center justify-end gap-3 flex-shrink-0 self-stretch">
319
- {/* Desktop Actions — banded with the nav/burger breakpoint (lg) so the
320
- desktop right-cluster and the mobile toggle never co-show. */}
314
+ <div className="flex items-center justify-end gap-4 flex-shrink-0">
315
+ {/* Desktop Actions */}
321
316
  {config.actions?.right && (
322
- <div className="hidden lg:flex items-center gap-3">
317
+ <div className="hidden md:flex items-center gap-4">
323
318
  {config.actions.right}
324
319
  </div>
325
320
  )}
326
321
 
327
- {config.actions?.persistent && config.actions.persistent.length > 0 && (
328
- <div className="flex items-center">
329
- {config.actions.persistent}
330
- </div>
331
- )}
332
-
333
322
  {/* Mobile Menu Toggle */}
334
323
  {config.mobile && config.mobile.enabled && (
335
324
  <Button
336
- variant="outline"
325
+ variant="transparent"
337
326
  size="icon"
338
- className="flex lg:hidden"
327
+ className="flex md:hidden"
339
328
  onClick={() => {
340
329
  config.mobile?.onToggle?.()
341
330
  }}
@@ -347,10 +336,6 @@ export function Header({ config, platform }: HeaderProps) {
347
336
  leftIcon={config.mobile?.menuIcon || <Menu01Icon />}
348
337
  />
349
338
  )}
350
-
351
- {config.mingo?.enabled && (
352
- <MingoAiButton source={config.mingo.source} icon={config.mingo.icon} label={config.mingo.label} className={config.mingo.className} />
353
- )}
354
339
  </div>
355
340
  </header>
356
341
  </div>
@@ -4,9 +4,6 @@
4
4
  export { Header } from './header'
5
5
  export type { HeaderConfig, HeaderProps } from './header'
6
6
 
7
- export { MingoAiButton } from './mingo-ai-button'
8
- export type { MingoAiButtonProps } from './mingo-ai-button'
9
-
10
7
  export { ClientOnlyHeader } from './client-only-header'
11
8
  export type { ClientOnlyHeaderProps } from './client-only-header'
12
9
 
@@ -197,31 +197,3 @@ export const FixedHeader: Story = {
197
197
  } satisfies HeaderConfig,
198
198
  },
199
199
  };
200
-
201
- /**
202
- * Header with the Mingo AI launcher enabled via `config.mingo`. `MingoAiButton`
203
- * renders after the mobile toggle, so below `lg` the right cluster reads
204
- * `Try for Free | hamburger | Mingo AI`; at `lg+` the hamburger is hidden and it
205
- * collapses to `Try for Free | Mingo AI`, with Mingo full-height and flush to the
206
- * right edge (its left border acts as the divider). Resize under 800px to see the
207
- * Mingo label collapse to icon-only. Clicking it dispatches an `ask-ai:open` event.
208
- */
209
- export const WithMingoAi: Story = {
210
- args: {
211
- config: {
212
- logo: { element: flamingoLogo, href: '/' },
213
- navigation: baseNavigation,
214
- actions: {
215
- persistent: [
216
- <Button key="cta" variant="accent" href="/signup">
217
- Try for Free
218
- </Button>,
219
- ],
220
- },
221
- autoHide: false,
222
- mobile: { enabled: true, onToggle: fn() },
223
- mingo: { enabled: true, source: 'flamingo' },
224
- className: 'px-0',
225
- } satisfies HeaderConfig,
226
- },
227
- };
@@ -63,57 +63,3 @@
63
63
  .mingo-chat-content[data-state="open"] { animation-name: mingo-chat-slide-in-right; }
64
64
  .mingo-chat-content[data-state="closed"] { animation-name: mingo-chat-slide-out-right; }
65
65
  }
66
-
67
- /* =============================================================================
68
- * Mingo AI header button — the 2026 AI edge-light pattern (Apple Intelligence
69
- * glow-edge / Gemini gradient language): a thin accent-gradient arc TRAVELS
70
- * around the button's border. No blurry blobs. Transform-only rotation on an
71
- * oversized conic layer (compositor-friendly); an inset cover reveals only
72
- * the edge. Reduced motion: rotation stops → a static gradient edge (the
73
- * colorful state survives, only motion is removed). Hover adds a one-shot
74
- * light-streak shimmer.
75
- * ---------------------------------------------------------------------------*/
76
- @keyframes mingo-edge-spin {
77
- from { transform: translate(-50%, -50%) rotate(0deg); }
78
- to { transform: translate(-50%, -50%) rotate(360deg); }
79
- }
80
-
81
- .mingo-edge {
82
- position: absolute;
83
- left: 50%;
84
- top: 50%;
85
- width: 300%;
86
- aspect-ratio: 1;
87
- transform: translate(-50%, -50%);
88
- /* Single luminous accent arc with a soft tail — platform-tinted via the
89
- RAW --color-* accent var (the --ods-* alias does not exist in raw CSS). */
90
- background: conic-gradient(
91
- from 0deg,
92
- transparent 0deg,
93
- color-mix(in srgb, var(--color-accent-primary) 40%, transparent) 50deg,
94
- var(--color-accent-primary) 90deg,
95
- color-mix(in srgb, var(--color-accent-primary) 45%, white) 105deg,
96
- transparent 160deg
97
- );
98
- animation: mingo-edge-spin 4s linear infinite;
99
- }
100
-
101
- @keyframes mingo-shimmer {
102
- from { transform: translateX(-160%) skewX(-18deg); }
103
- to { transform: translateX(260%) skewX(-18deg); }
104
- }
105
-
106
- .mingo-shimmer {
107
- opacity: 0;
108
- transform: translateX(-160%) skewX(-18deg);
109
- }
110
-
111
- .group\/mingo:hover .mingo-shimmer {
112
- opacity: 1;
113
- animation: mingo-shimmer 0.9s ease-out;
114
- }
115
-
116
- @media (prefers-reduced-motion: reduce) {
117
- .mingo-edge { animation: none; }
118
- .group\/mingo:hover .mingo-shimmer { animation: none; opacity: 0; }
119
- }
@@ -36,7 +36,6 @@ export interface HeaderConfig {
36
36
  actions?: {
37
37
  left?: React.ReactNode[]
38
38
  right?: React.ReactNode[]
39
- persistent?: React.ReactNode[]
40
39
  }
41
40
  mobile?: {
42
41
  enabled: boolean
@@ -45,17 +44,6 @@ export interface HeaderConfig {
45
44
  onToggle?: () => void
46
45
  isOpen?: boolean
47
46
  }
48
- mingo?: {
49
- enabled?: boolean
50
- source?: string
51
- className?: string
52
- /** Server-configured Mingo identity glyph (same EntityIcon the chat
53
- * panel renders); omit to use the packaged fallback mark. */
54
- icon?: React.ReactNode
55
- /** Server-configured assistant name for the wordmark/aria-label; omit
56
- * for the default "Mingo AI". */
57
- label?: string
58
- }
59
47
  className?: string
60
48
  style?: React.CSSProperties
61
49
  autoHide?: boolean