@flamingo-stack/openframe-frontend-core 0.0.394-snapshot.20260709183206 → 0.0.394

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 (114) hide show
  1. package/dist/{chunk-ZB5HSWX4.js → chunk-2J6AOHJI.js} +2 -2
  2. package/dist/{chunk-Y4I4462K.cjs → chunk-4FT3KQD3.cjs} +15 -15
  3. package/dist/{chunk-Y4I4462K.cjs.map → chunk-4FT3KQD3.cjs.map} +1 -1
  4. package/dist/{chunk-NN73KMIK.js → chunk-5J3LR56Z.js} +2 -2
  5. package/dist/{chunk-WHJEU7V7.js → chunk-A7IGCQUD.js} +4 -4
  6. package/dist/{chunk-PFF6Q6N5.js → chunk-AGTM2H7T.js} +2 -2
  7. package/dist/{chunk-PJ2YFSMY.js → chunk-AQJ5S6RS.js} +2 -2
  8. package/dist/{chunk-T6FEE3R2.cjs → chunk-CJMM2WZP.cjs} +5 -5
  9. package/dist/{chunk-T6FEE3R2.cjs.map → chunk-CJMM2WZP.cjs.map} +1 -1
  10. package/dist/{chunk-5U72NXGG.cjs → chunk-DFCPMBYN.cjs} +9 -9
  11. package/dist/{chunk-5U72NXGG.cjs.map → chunk-DFCPMBYN.cjs.map} +1 -1
  12. package/dist/{chunk-J2UDV3FH.cjs → chunk-DRSAMA27.cjs} +62 -62
  13. package/dist/{chunk-J2UDV3FH.cjs.map → chunk-DRSAMA27.cjs.map} +1 -1
  14. package/dist/{chunk-TWLPG5IQ.js → chunk-DXIDOGF4.js} +2 -2
  15. package/dist/{chunk-3VJPMRNT.cjs → chunk-FIOOW474.cjs} +7 -7
  16. package/dist/{chunk-3VJPMRNT.cjs.map → chunk-FIOOW474.cjs.map} +1 -1
  17. package/dist/{chunk-YJE3HL6Q.js → chunk-FVFPGGDA.js} +4 -4
  18. package/dist/{chunk-TTEAYVLT.js → chunk-G6CNEEZ3.js} +2 -2
  19. package/dist/{chunk-NJPMHDFG.js → chunk-GAD4OYKN.js} +2 -2
  20. package/dist/{chunk-BEPZ5YAN.cjs → chunk-HXDBJR4A.cjs} +59 -59
  21. package/dist/{chunk-BEPZ5YAN.cjs.map → chunk-HXDBJR4A.cjs.map} +1 -1
  22. package/dist/{chunk-OSOKWP5R.cjs → chunk-IEKEUSPV.cjs} +31 -31
  23. package/dist/{chunk-OSOKWP5R.cjs.map → chunk-IEKEUSPV.cjs.map} +1 -1
  24. package/dist/{chunk-RNWLVI3V.cjs → chunk-LP3FQTCB.cjs} +26 -26
  25. package/dist/{chunk-RNWLVI3V.cjs.map → chunk-LP3FQTCB.cjs.map} +1 -1
  26. package/dist/{chunk-4YVUL4T7.cjs → chunk-N6SH4ZYN.cjs} +12 -12
  27. package/dist/{chunk-4YVUL4T7.cjs.map → chunk-N6SH4ZYN.cjs.map} +1 -1
  28. package/dist/{chunk-RWBTSF2E.js → chunk-NYBMBTBL.js} +5181 -5295
  29. package/dist/chunk-NYBMBTBL.js.map +1 -0
  30. package/dist/{chunk-M7WTWBCY.cjs → chunk-PVMISZQT.cjs} +37 -37
  31. package/dist/{chunk-M7WTWBCY.cjs.map → chunk-PVMISZQT.cjs.map} +1 -1
  32. package/dist/{chunk-PNMX75W4.cjs → chunk-R6PS3AXI.cjs} +1057 -1171
  33. package/dist/chunk-R6PS3AXI.cjs.map +1 -0
  34. package/dist/{chunk-45Z6B6CO.js → chunk-SSZL4QYX.js} +4 -4
  35. package/dist/{chunk-MPN3MV5H.js → chunk-WAKXAMRC.js} +4 -4
  36. package/dist/{chunk-ZCKVP4SU.cjs → chunk-YIJGUS7V.cjs} +26 -26
  37. package/dist/{chunk-ZCKVP4SU.cjs.map → chunk-YIJGUS7V.cjs.map} +1 -1
  38. package/dist/components/carousel.d.ts +19 -0
  39. package/dist/components/carousel.d.ts.map +1 -0
  40. package/dist/components/case-studies/index.cjs +8 -8
  41. package/dist/components/case-studies/index.js +2 -2
  42. package/dist/components/chat/index.cjs +2 -2
  43. package/dist/components/chat/index.js +1 -1
  44. package/dist/components/contact/index.cjs +3 -3
  45. package/dist/components/contact/index.js +2 -2
  46. package/dist/components/docs/index.cjs +5 -5
  47. package/dist/components/docs/index.js +4 -4
  48. package/dist/components/embeds/index.cjs +3 -3
  49. package/dist/components/embeds/index.js +2 -2
  50. package/dist/components/faq/index.cjs +3 -3
  51. package/dist/components/faq/index.js +2 -2
  52. package/dist/components/features/index.cjs +2 -6
  53. package/dist/components/features/index.cjs.map +1 -1
  54. package/dist/components/features/index.d.ts +0 -1
  55. package/dist/components/features/index.d.ts.map +1 -1
  56. package/dist/components/features/index.js +1 -5
  57. package/dist/components/features/video-bites-strip.d.ts +26 -15
  58. package/dist/components/features/video-bites-strip.d.ts.map +1 -1
  59. package/dist/components/help-center-pages/index.cjs +20 -20
  60. package/dist/components/help-center-pages/index.js +11 -11
  61. package/dist/components/index.cjs +120 -124
  62. package/dist/components/index.cjs.map +1 -1
  63. package/dist/components/index.js +9 -13
  64. package/dist/components/index.js.map +1 -1
  65. package/dist/components/navigation/index.cjs +2 -2
  66. package/dist/components/navigation/index.js +1 -1
  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 -6
  76. package/dist/index.cjs.map +1 -1
  77. package/dist/index.js +1 -5
  78. package/dist/types/blog.d.ts +10 -9
  79. package/dist/types/blog.d.ts.map +1 -1
  80. package/dist/types/case-study.d.ts +5 -2
  81. package/dist/types/case-study.d.ts.map +1 -1
  82. package/dist/types/customer-interview.d.ts +5 -2
  83. package/dist/types/customer-interview.d.ts.map +1 -1
  84. package/dist/types/index.d.ts +0 -1
  85. package/dist/types/index.d.ts.map +1 -1
  86. package/package.json +2 -1
  87. package/src/components/.carousel.md +50 -0
  88. package/src/components/carousel.tsx +262 -0
  89. package/src/components/features/index.ts +0 -3
  90. package/src/components/features/video-bites-strip.tsx +375 -53
  91. package/src/types/blog.ts +10 -9
  92. package/src/types/case-study.ts +5 -2
  93. package/src/types/customer-interview.ts +5 -2
  94. package/src/types/index.ts +0 -1
  95. package/dist/chunk-PNMX75W4.cjs.map +0 -1
  96. package/dist/chunk-RWBTSF2E.js.map +0 -1
  97. package/dist/components/features/cards-strip.d.ts +0 -114
  98. package/dist/components/features/cards-strip.d.ts.map +0 -1
  99. package/dist/types/entity-platform.d.ts +0 -22
  100. package/dist/types/entity-platform.d.ts.map +0 -1
  101. package/src/components/features/cards-strip.tsx +0 -587
  102. package/src/stories/CardsStrip.stories.tsx +0 -101
  103. package/src/types/entity-platform.ts +0 -21
  104. /package/dist/{chunk-ZB5HSWX4.js.map → chunk-2J6AOHJI.js.map} +0 -0
  105. /package/dist/{chunk-NN73KMIK.js.map → chunk-5J3LR56Z.js.map} +0 -0
  106. /package/dist/{chunk-WHJEU7V7.js.map → chunk-A7IGCQUD.js.map} +0 -0
  107. /package/dist/{chunk-PFF6Q6N5.js.map → chunk-AGTM2H7T.js.map} +0 -0
  108. /package/dist/{chunk-PJ2YFSMY.js.map → chunk-AQJ5S6RS.js.map} +0 -0
  109. /package/dist/{chunk-TWLPG5IQ.js.map → chunk-DXIDOGF4.js.map} +0 -0
  110. /package/dist/{chunk-YJE3HL6Q.js.map → chunk-FVFPGGDA.js.map} +0 -0
  111. /package/dist/{chunk-TTEAYVLT.js.map → chunk-G6CNEEZ3.js.map} +0 -0
  112. /package/dist/{chunk-NJPMHDFG.js.map → chunk-GAD4OYKN.js.map} +0 -0
  113. /package/dist/{chunk-45Z6B6CO.js.map → chunk-SSZL4QYX.js.map} +0 -0
  114. /package/dist/{chunk-MPN3MV5H.js.map → chunk-WAKXAMRC.js.map} +0 -0
@@ -1,114 +0,0 @@
1
- /**
2
- * <CardsStrip> — THE horizontal card-strip engine (single source of truth).
3
- *
4
- * Extracted verbatim from <VideoBitesStrip> so every strip surface shares ONE
5
- * marquee/chevron/seam/measure implementation ("unify means delete
6
- * variations"). Two input modes, one engine:
7
- *
8
- * MODE A — render-prop (`items` + `itemKey` + `renderCard`): full control.
9
- * The card receives the strip context (controlled activation, clone flag,
10
- * shared player-mount gate) and owns its own clone a11y. Used by
11
- * <VideoBitesStrip>. The engine adds NO cell wrapper in this mode — the
12
- * card's root is the track's direct child (`scrollByCard` measures
13
- * `track.firstElementChild.offsetWidth`, and the `flex items-stretch gap-4`
14
- * sizing contract depends on it).
15
- *
16
- * MODE B — children (organic): ANY card components as plain JSX children.
17
- * Each child is auto-wrapped in a managed cell (fixed width, hover/keyboard
18
- * marquee-pause, clone `aria-hidden` + `inert`, row-height stretch).
19
- * Adding a new card type requires ZERO strip code. Contract:
20
- * (a) pass an ARRAY of children (`{rows.map(...)}`) — `Children.toArray`
21
- * does NOT flatten through a single <Fragment> child (it would become
22
- * one giant cell; a dev-only warning fires);
23
- * (b) when `autoScroll` is on, children must be ref-free / unique-DOM-id-
24
- * free / mount-effect-free — the clone copy mounts the same element a
25
- * second time (double-fired effects, duplicate ids, last-mounted ref).
26
- *
27
- * Activation invariant: hover/focus activation is wired in exactly ONE place —
28
- * the managed cell (children mode) OR the card itself (render-prop mode,
29
- * e.g. <VideoBiteCard>) — never both.
30
- *
31
- * Marquee state model (explicit — do not "simplify" into one timer):
32
- * the rAF advances only when the pause-reason set {cardHovered, offViewport,
33
- * tabHidden, reducedMotion} is empty AND `now > max(chevronSuppressUntil,
34
- * userScrollSuppressUntil)`. cardHovered means the pointer is over a CARD
35
- * (incl. its overlay) — leaving the card resumes the marquee immediately.
36
- * Chevron clicks and manual wheel/touch each set their own suppress-until
37
- * timestamp; any card-level leave-grace is a separate concern that never
38
- * touches marquee state.
39
- */
40
- import React from 'react';
41
- /** Per-card strip context passed to `renderCard` (and used internally by the
42
- * children-mode managed cell). */
43
- export interface CardStripRenderCtx {
44
- /** Item index (copy-independent — the clone copy repeats the same indices). */
45
- index: number;
46
- /** `${itemKey}__${copyIndex}__${index}` — unique per rendered card, even for
47
- * duplicate items (the trailing index disambiguates). */
48
- cardKey: string;
49
- isClone: boolean;
50
- isTouch: boolean;
51
- /** Engine's (max-width: 767px) media query. */
52
- isMobile: boolean;
53
- /** activeKey === cardKey (controlled hover/focus activation). */
54
- active: boolean;
55
- onActivate: (key: string) => void;
56
- onDeactivate: (key: string) => void;
57
- /** Shared-by-index 500px near-viewport gate (opt-in — only meaningful when
58
- * the card registers via `rootRef`). */
59
- mounted: boolean;
60
- /** Registers the card root with the mount-gate IntersectionObserver.
61
- * May return a cleanup (React 19 ref contract). */
62
- rootRef: (el: HTMLDivElement | null) => (() => void) | undefined;
63
- }
64
- interface CardsStripEngineProps {
65
- /** Section heading. Omit `title` (or set `showTitle={false}`) to hide. */
66
- title?: string;
67
- showTitle?: boolean;
68
- /** Custom node rendered between the heading and the strip. */
69
- headerSlot?: React.ReactNode;
70
- /** Marquee auto-scroll. Auto-disabled on no-overflow and
71
- * prefers-reduced-motion. Pass `autoScroll={false}` for chevron-style
72
- * entity strips — the default stays `true` for bites-contract parity. */
73
- autoScroll?: boolean;
74
- /** Marquee speed in px/s. Default 60 — marquee libraries (e.g. GSAP marquee)
75
- * default around 100px/s; 60 keeps drift lively while cards stay easy to
76
- * hover-target. 60px/s ≈ 1px per 60Hz frame, the smoothest integer step. */
77
- autoScrollSpeed?: number;
78
- /** Pause the marquee while a CARD is hovered (resumes as soon as the
79
- * pointer leaves the card — strip whitespace/heading never pauses). */
80
- pauseOnHover?: boolean;
81
- /** Floating prev/next buttons. Hidden automatically when nothing overflows. */
82
- showChevrons?: boolean;
83
- /** Chevron aria-labels. */
84
- prevLabel?: string;
85
- nextLabel?: string;
86
- /** Merged into the engine's wrapper ref (e.g. `useVideoWarmup().ref`). */
87
- rootRef?: (el: HTMLDivElement | null) => void;
88
- className?: string;
89
- }
90
- /** MODE A — render-prop (advanced): full ctx control, no cell wrapper. */
91
- interface RenderCardMode<T> {
92
- items: ReadonlyArray<T>;
93
- itemKey: (item: T, index: number) => string;
94
- renderCard: (item: T, ctx: CardStripRenderCtx) => React.ReactNode;
95
- children?: never;
96
- cardWidthDesktop?: never;
97
- cardWidthMobile?: never;
98
- }
99
- /** MODE B — children (organic): ANY card components, zero registration. */
100
- interface ChildrenMode {
101
- children: React.ReactNode;
102
- /** Managed cell width in px per breakpoint (Figma: 400 desktop). */
103
- cardWidthDesktop?: number;
104
- cardWidthMobile?: number;
105
- items?: never;
106
- itemKey?: never;
107
- renderCard?: never;
108
- }
109
- export type CardsStripProps<T = unknown> = CardsStripEngineProps & (RenderCardMode<T> | ChildrenMode);
110
- /** Single source for the strip cell width cap (shared with <VideoBiteCard>). */
111
- export declare const STRIP_CELL_MAX_WIDTH = "90vw";
112
- export declare function CardsStrip<T = unknown>(props: CardsStripProps<T>): React.ReactElement | null;
113
- export {};
114
- //# sourceMappingURL=cards-strip.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cards-strip.d.ts","sourceRoot":"","sources":["../../../src/components/features/cards-strip.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAEH,OAAO,KAA4D,MAAM,OAAO,CAAC;AAWjF;mCACmC;AACnC,MAAM,WAAW,kBAAkB;IACjC,+EAA+E;IAC/E,KAAK,EAAE,MAAM,CAAC;IACd;8DAC0D;IAC1D,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,+CAA+C;IAC/C,QAAQ,EAAE,OAAO,CAAC;IAClB,iEAAiE;IACjE,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,YAAY,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC;6CACyC;IACzC,OAAO,EAAE,OAAO,CAAC;IACjB;wDACoD;IACpD,OAAO,EAAE,CAAC,EAAE,EAAE,cAAc,GAAG,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;CAClE;AAED,UAAU,qBAAqB;IAC7B,0EAA0E;IAC1E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,8DAA8D;IAC9D,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC7B;;8EAE0E;IAC1E,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;iFAE6E;IAC7E,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;4EACwE;IACxE,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,+EAA+E;IAC/E,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,2BAA2B;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,0EAA0E;IAC1E,OAAO,CAAC,EAAE,CAAC,EAAE,EAAE,cAAc,GAAG,IAAI,KAAK,IAAI,CAAC;IAC9C,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAOD,0EAA0E;AAC1E,UAAU,cAAc,CAAC,CAAC;IACxB,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;IACxB,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IAC5C,UAAU,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,kBAAkB,KAAK,KAAK,CAAC,SAAS,CAAC;IAClE,QAAQ,CAAC,EAAE,KAAK,CAAC;IACjB,gBAAgB,CAAC,EAAE,KAAK,CAAC;IACzB,eAAe,CAAC,EAAE,KAAK,CAAC;CACzB;AAED,2EAA2E;AAC3E,UAAU,YAAY;IACpB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,oEAAoE;IACpE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,OAAO,CAAC,EAAE,KAAK,CAAC;IAChB,UAAU,CAAC,EAAE,KAAK,CAAC;CACpB;AAED,MAAM,MAAM,eAAe,CAAC,CAAC,GAAG,OAAO,IAAI,qBAAqB,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC;AAYtG,gFAAgF;AAChF,eAAO,MAAM,oBAAoB,SAAS,CAAC;AAQ3C,wBAAgB,UAAU,CAAC,CAAC,GAAG,OAAO,EAAE,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,YAAY,GAAG,IAAI,CAmb5F"}
@@ -1,22 +0,0 @@
1
- /**
2
- * Hydrated `entity_platforms` junction row — THE shape the hub's
3
- * attachPlatformsToRows puts on every `<entity>_platforms[]` array
4
- * (rows arrive featured-first with the platform record's fields spread on
5
- * via PLATFORM_EMBED). One definition; the per-entity types
6
- * (case_study_platforms / blog_post_platforms / customer_interview_platforms)
7
- * all reference it so the shape can never drift per entity.
8
- */
9
- export interface EntityPlatformAssoc {
10
- platform_id: string;
11
- is_featured: boolean;
12
- featured_order?: number | null;
13
- /** Platform name — spread from the platform record. Feeds platform-aware
14
- * URL composition (composeContentUrlFromPlatforms) without casts. */
15
- name?: string;
16
- display_name?: string;
17
- /** Alias some admin fetches add (e.g. getCaseStudyForAdmin). */
18
- platform_name?: string;
19
- id?: string;
20
- created_at?: string;
21
- }
22
- //# sourceMappingURL=entity-platform.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"entity-platform.d.ts","sourceRoot":"","sources":["../../src/types/entity-platform.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE,MAAM,CAAA;IACnB,WAAW,EAAE,OAAO,CAAA;IACpB,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B;0EACsE;IACtE,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,gEAAgE;IAChE,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB"}