@se-studio/core-ui 1.25.3 → 1.27.0

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 (53) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/README.md +32 -22
  3. package/dist/components/HeroLoopVideo.d.ts +3 -2
  4. package/dist/components/HeroLoopVideo.d.ts.map +1 -1
  5. package/dist/components/HeroLoopVideo.js +6 -5
  6. package/dist/components/HeroLoopVideo.js.map +1 -1
  7. package/dist/components/LazyVideo.d.ts +4 -4
  8. package/dist/components/LazyVideo.js +6 -6
  9. package/dist/components/LazyVideo.js.map +1 -1
  10. package/dist/components/LocalVideo.d.ts +5 -1
  11. package/dist/components/LocalVideo.d.ts.map +1 -1
  12. package/dist/components/LocalVideo.js +7 -59
  13. package/dist/components/LocalVideo.js.map +1 -1
  14. package/dist/components/LocalVideoPlayOverlay.d.ts +3 -9
  15. package/dist/components/LocalVideoPlayOverlay.d.ts.map +1 -1
  16. package/dist/components/LocalVideoPlayOverlay.js +3 -9
  17. package/dist/components/LocalVideoPlayOverlay.js.map +1 -1
  18. package/dist/components/Visual.d.ts +29 -3
  19. package/dist/components/Visual.d.ts.map +1 -1
  20. package/dist/components/Visual.js +21 -2
  21. package/dist/components/Visual.js.map +1 -1
  22. package/dist/components/VisualComponent.d.ts.map +1 -1
  23. package/dist/components/VisualComponent.js +6 -7
  24. package/dist/components/VisualComponent.js.map +1 -1
  25. package/dist/index.d.ts +3 -3
  26. package/dist/index.d.ts.map +1 -1
  27. package/dist/index.js +2 -2
  28. package/dist/index.js.map +1 -1
  29. package/dist/utils/agent-ready.d.ts.map +1 -1
  30. package/dist/utils/agent-ready.js +0 -1
  31. package/dist/utils/agent-ready.js.map +1 -1
  32. package/dist/utils/marketingSiteSitemap.d.ts +1 -1
  33. package/dist/utils/marketingSiteSitemap.d.ts.map +1 -1
  34. package/dist/utils/marketingSiteSitemap.js +3 -2
  35. package/dist/utils/marketingSiteSitemap.js.map +1 -1
  36. package/dist/utils/sitemap.d.ts +47 -35
  37. package/dist/utils/sitemap.d.ts.map +1 -1
  38. package/dist/utils/sitemap.js +55 -33
  39. package/dist/utils/sitemap.js.map +1 -1
  40. package/docs/llms.md +16 -5
  41. package/package.json +3 -4
  42. package/dist/components/ImageKitClientVideo.d.ts +0 -16
  43. package/dist/components/ImageKitClientVideo.d.ts.map +0 -1
  44. package/dist/components/ImageKitClientVideo.js +0 -211
  45. package/dist/components/ImageKitClientVideo.js.map +0 -1
  46. package/dist/components/ImageKitHlsVideoClient.d.ts +0 -21
  47. package/dist/components/ImageKitHlsVideoClient.d.ts.map +0 -1
  48. package/dist/components/ImageKitHlsVideoClient.js +0 -167
  49. package/dist/components/ImageKitHlsVideoClient.js.map +0 -1
  50. package/dist/utils/imageKitVideoHls.d.ts +0 -3
  51. package/dist/utils/imageKitVideoHls.d.ts.map +0 -1
  52. package/dist/utils/imageKitVideoHls.js +0 -5
  53. package/dist/utils/imageKitVideoHls.js.map +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@se-studio/core-ui",
3
- "version": "1.25.3",
3
+ "version": "1.27.0",
4
4
  "description": "Shared React UI component library with Tailwind CSS v4 for SE Studio applications",
5
5
  "repository": {
6
6
  "type": "git",
@@ -79,13 +79,12 @@
79
79
  "@types/mustache": "4.2.6",
80
80
  "@vimeo/player": "^2.30.4",
81
81
  "clsx": "^2.1.1",
82
- "hls.js": "^1.7.1",
83
82
  "html-entities": "^2.6.0",
84
83
  "mustache": "4.2.0",
85
84
  "server-only": "0.0.1",
86
85
  "tailwind-merge": "^3.6.0",
87
- "@se-studio/contentful-rest-api": "1.25.3",
88
- "@se-studio/core-data-types": "1.12.0"
86
+ "@se-studio/contentful-rest-api": "1.26.0",
87
+ "@se-studio/core-data-types": "1.13.0"
89
88
  },
90
89
  "devDependencies": {
91
90
  "@biomejs/biome": "^2.5.10",
@@ -1,16 +0,0 @@
1
- import type { IAnalyticsContext } from '@se-studio/core-data-types';
2
- import { type IVisualCommon } from '@se-studio/core-data-types';
3
- import React from 'react';
4
- import type { IVideoProps } from './Video';
5
- declare function ImageKitVideo({ url, videoPrefix, autoPlay, loop, muted, controls, style, poster, contained, dontCrop, verticalCropPosition, horizontalCropPosition, width, height, visualSizes, loading, fetchPriority, noPoster, className, fullPlayer: _fullPlayer, analyticsContext, componentLabel, videoId, videoTitle, startPlaybackOnMount, ...props }: {
6
- url: string;
7
- videoPrefix: string;
8
- width: number | undefined;
9
- height: number | undefined;
10
- analyticsContext?: IAnalyticsContext;
11
- componentLabel?: string | null;
12
- videoId?: string;
13
- videoTitle?: string;
14
- } & Omit<IVisualCommon, 'id' | 'type' | 'name' | 'nameAsCaption'> & IVideoProps): React.JSX.Element;
15
- export default ImageKitVideo;
16
- //# sourceMappingURL=ImageKitClientVideo.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ImageKitClientVideo.d.ts","sourceRoot":"","sources":["../../src/components/ImageKitClientVideo.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,KAAK,aAAa,EAAmC,MAAM,4BAA4B,CAAC;AAEjG,OAAO,KAAmE,MAAM,OAAO,CAAC;AAKxF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAyG3C,iBAAS,aAAa,CAAC,EACrB,GAAG,EACH,WAAW,EACX,QAAQ,EACR,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,KAAK,EACL,MAAM,EACN,SAAS,EACT,QAAQ,EACR,oBAAoB,EACpB,sBAAsB,EACtB,KAAK,EACL,MAAM,EACN,WAAW,EACX,OAAO,EACP,aAAa,EACb,QAAQ,EACR,SAAS,EACT,UAAU,EAAE,WAAW,EACvB,gBAAgB,EAChB,cAAc,EACd,OAAO,EACP,UAAU,EACV,oBAA4B,EAC5B,GAAG,KAAK,EACT,EAAE;IACD,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,gBAAgB,CAAC,EAAE,iBAAiB,CAAC;IACrC,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GAAG,IAAI,CAAC,aAAa,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,eAAe,CAAC,GAC/D,WAAW,qBAkPZ;eAEc,aAAa"}
@@ -1,211 +0,0 @@
1
- 'use client';
2
- import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
- import { processSizes } from '@se-studio/core-data-types';
4
- import Image from 'next/image';
5
- import React, { useCallback, useEffect, useRef, useState } from 'react';
6
- import { useHtml5VideoEngagement } from '../analytics/video/useHtml5VideoEngagement';
7
- import { useVideoEngagement } from '../analytics/video/useVideoEngagement';
8
- import { cn } from '../utils/cn';
9
- import { LocalVideoPlayChrome } from './LocalVideoPlayChrome';
10
- import { CONTAINED_VIDEO_CLASSES, CONTENT_VIDEO_CLASSES, calculateCropDetails, shouldShowFullFrameVideo, } from './Visual';
11
- /** Named transformation widths registered in ImageKit (ascending order). */
12
- const NAMED_TRANSFORMATION_WIDTHS = [640, 768, 960, 1440, 1920, 2880];
13
- /** Extra viewport widths for high-DPI video sources (srcset-style). */
14
- const VIDEO_EXPANSION_VIEWPORTS = [1280, 1920, 2560, 3840];
15
- /**
16
- * Snaps a pixel width to the smallest named transformation width that covers it.
17
- * Falls back to the largest available width if pixels exceeds all named widths.
18
- */
19
- function snapToNamedWidth(pixels) {
20
- const match = NAMED_TRANSFORMATION_WIDTHS.find((w) => w >= pixels);
21
- return match ?? NAMED_TRANSFORMATION_WIDTHS[NAMED_TRANSFORMATION_WIDTHS.length - 1] ?? pixels;
22
- }
23
- function expandBreakpointsForVideo(breakpoints) {
24
- if (!breakpoints?.length)
25
- return breakpoints ?? [];
26
- const sorted = [...breakpoints].sort((a, b) => a.minWidth - b.minWidth);
27
- const max = sorted[sorted.length - 1];
28
- if (!max)
29
- return breakpoints;
30
- const ratio = max.pixels / max.minWidth;
31
- const existingWidths = new Set(breakpoints.map((b) => b.minWidth));
32
- const expanded = [...sorted];
33
- for (const vw of VIDEO_EXPANSION_VIEWPORTS) {
34
- if (vw > max.minWidth && !existingWidths.has(vw)) {
35
- expanded.push({ minWidth: vw, pixels: Math.round(vw * ratio) });
36
- existingWidths.add(vw);
37
- }
38
- }
39
- return expanded.sort((a, b) => a.minWidth - b.minWidth);
40
- }
41
- const VideoSources = ({ rawSrc, mp4Src, videoPrefix, width, visualSizes }) => {
42
- if (!visualSizes) {
43
- return (_jsxs(_Fragment, { children: [_jsx("source", { src: `${videoPrefix}${rawSrc}`, type: "video/webm" }), _jsx("source", { src: `${videoPrefix}${mp4Src}`, type: "video/mp4" })] }));
44
- }
45
- const processed = processSizes(visualSizes)?.breakpoints;
46
- const expanded = expandBreakpointsForVideo(processed);
47
- const sizes = expanded
48
- .filter((x) => !width || x.pixels < width)
49
- .sort((a, b) => b.minWidth - a.minWidth);
50
- const defaultW = visualSizes.defaultPixels
51
- ? snapToNamedWidth(visualSizes.defaultPixels)
52
- : NAMED_TRANSFORMATION_WIDTHS[0];
53
- return (_jsxs(_Fragment, { children: [sizes?.map(({ minWidth, pixels }) => {
54
- const w = snapToNamedWidth(pixels);
55
- return (_jsxs(React.Fragment, { children: [_jsx("source", { src: `${videoPrefix}${rawSrc}?w${w}`, media: `(min-width: ${minWidth}px)`, type: "video/webm" }), _jsx("source", { src: `${videoPrefix}${mp4Src}?w${w}`, media: `(min-width: ${minWidth}px)`, type: "video/mp4" })] }, minWidth));
56
- }), _jsx("source", { src: `${videoPrefix}${rawSrc}?w${defaultW}`, type: "video/webm" }), _jsx("source", { src: `${videoPrefix}${mp4Src}?w${defaultW}`, type: "video/mp4" })] }));
57
- };
58
- function calculateSizes(visualSizes) {
59
- if (!visualSizes)
60
- return '100vw';
61
- const result = processSizes(visualSizes)
62
- ?.breakpoints?.sort((a, b) => b.minWidth - a.minWidth)
63
- .map(({ minWidth, size }) => `(min-width: ${minWidth}px) ${size}`) ?? [];
64
- if (visualSizes.defaultSize)
65
- result.push(visualSizes.defaultSize);
66
- else if (visualSizes.defaultPixels)
67
- result.push(`${visualSizes.defaultPixels}px`);
68
- else
69
- result.push('100vw');
70
- return result.join(',');
71
- }
72
- function ImageKitVideo({ url, videoPrefix, autoPlay, loop, muted, controls, style, poster, contained, dontCrop, verticalCropPosition, horizontalCropPosition, width, height, visualSizes, loading, fetchPriority, noPoster, className, fullPlayer: _fullPlayer, analyticsContext, componentLabel, videoId, videoTitle, startPlaybackOnMount = false, ...props }) {
73
- const fullUrl = new URL(url);
74
- const cropProperties = calculateCropDetails({
75
- dontCrop,
76
- verticalCropPosition,
77
- horizontalCropPosition,
78
- });
79
- const realAutoPlay = !!autoPlay;
80
- const realMuted = muted || realAutoPlay;
81
- const pathname = fullUrl.pathname;
82
- // Always force /ik-video.mp4 so ImageKit delivers H.264 MP4 regardless of source container.
83
- // Contentful files may be WebM despite a .mp4 extension; raw path is offered as webm source.
84
- const rawSrc = pathname;
85
- const mp4Src = `${pathname}/ik-video.mp4`;
86
- const realPoster = noPoster
87
- ? undefined
88
- : (poster ?? `${videoPrefix}${pathname}/ik-thumbnail.jpg`);
89
- // Autoplay heroes: show poster first and defer MP4 sources until idle so LCP isn't
90
- // blocked by multi-MB background video downloads.
91
- const deferAutoplaySources = realAutoPlay && !!realPoster;
92
- const [posterVisible, setPosterVisible] = useState(!!realPoster);
93
- const [sourcesReady, setSourcesReady] = useState(!deferAutoplaySources);
94
- /**
95
- * Non-autoplay: `pending` after click while buffering; `started` once playback begins.
96
- * Poster + play chrome stay until `started`.
97
- */
98
- const [playPending, setPlayPending] = useState(false);
99
- const [userStarted, setUserStarted] = useState(false);
100
- // React's `muted` JSX prop doesn't reliably set the DOM property on client-rendered
101
- // elements — Safari checks video.muted (the property) to allow autoplay, not the attribute.
102
- const videoRef = useRef(null);
103
- const showPlayChrome = !realAutoPlay && !userStarted;
104
- const effectiveControls = realAutoPlay ? Boolean(controls) : userStarted && controls !== false;
105
- const engagementEnabled = !realAutoPlay && !!analyticsContext;
106
- const { sessionRef, rootRef } = useVideoEngagement({
107
- identity: {
108
- video_provider: 'local',
109
- video_id: videoId || pathname || url,
110
- video_title: videoTitle || 'Video',
111
- video_url: url,
112
- location: componentLabel ?? undefined,
113
- },
114
- analyticsContext,
115
- enabled: engagementEnabled,
116
- });
117
- useHtml5VideoEngagement(videoRef, sessionRef, engagementEnabled);
118
- const markPlaying = useCallback(() => {
119
- setUserStarted(true);
120
- setPlayPending(false);
121
- setPosterVisible(false);
122
- }, []);
123
- const handlePlayChrome = useCallback(() => {
124
- const video = videoRef.current;
125
- setPlayPending(true);
126
- if (video) {
127
- void video.play().catch(() => {
128
- setPlayPending(false);
129
- });
130
- }
131
- }, []);
132
- useEffect(() => {
133
- if (!playPending)
134
- return;
135
- const id = window.setTimeout(() => {
136
- const video = videoRef.current;
137
- if (video && !video.paused) {
138
- markPlaying();
139
- }
140
- else {
141
- setPlayPending(false);
142
- }
143
- }, 12_000);
144
- return () => window.clearTimeout(id);
145
- }, [playPending, markPlaying]);
146
- useEffect(() => {
147
- if (!startPlaybackOnMount || realAutoPlay)
148
- return;
149
- handlePlayChrome();
150
- }, [startPlaybackOnMount, realAutoPlay, handlePlayChrome]);
151
- useEffect(() => {
152
- if (videoRef.current) {
153
- videoRef.current.muted = realMuted;
154
- }
155
- }, [realMuted]);
156
- useEffect(() => {
157
- if (!deferAutoplaySources || sourcesReady)
158
- return;
159
- const activate = () => setSourcesReady(true);
160
- if (typeof requestIdleCallback !== 'undefined') {
161
- const id = requestIdleCallback(activate, { timeout: 2500 });
162
- return () => cancelIdleCallback(id);
163
- }
164
- const timer = window.setTimeout(activate, 2000);
165
- return () => clearTimeout(timer);
166
- }, [deferAutoplaySources, sourcesReady]);
167
- useEffect(() => {
168
- if (!sourcesReady || !deferAutoplaySources)
169
- return;
170
- const video = videoRef.current;
171
- if (!video)
172
- return;
173
- video.load();
174
- if (realAutoPlay) {
175
- void video.play().catch(() => { });
176
- }
177
- }, [sourcesReady, deferAutoplaySources, realAutoPlay]);
178
- // Prefer explicit dontCrop; also treat object-fit:contain as full-frame so we never
179
- // mix cover-poster / contained-oversize with a contain video.
180
- const showFullFrame = shouldShowFullFrameVideo(dontCrop, cropProperties.objectFit);
181
- const videoStyle = {
182
- display: 'block',
183
- ...style,
184
- ...cropProperties,
185
- };
186
- const posterOverlay = posterVisible && realPoster ? (showFullFrame ? (_jsx(Image, { src: realPoster, alt: "", width: width && width > 0 ? width : 1920, height: height && height > 0 ? height : 1080, className: "absolute inset-0 size-full object-contain pointer-events-none", sizes: calculateSizes(visualSizes), priority: fetchPriority === 'high', loading: loading === 'lazy' ? 'lazy' : undefined, fetchPriority: fetchPriority, "aria-hidden": true })) : (_jsx(Image, { src: realPoster, alt: "", fill: true, className: "object-cover pointer-events-none", sizes: calculateSizes(visualSizes), priority: fetchPriority === 'high', loading: loading === 'lazy' ? 'lazy' : undefined, fetchPriority: fetchPriority, "aria-hidden": true }))) : null;
187
- const videoElement = (_jsxs("video", { ref: videoRef, "aria-hidden": realMuted && loop, className: cn(showFullFrame ? CONTENT_VIDEO_CLASSES : CONTAINED_VIDEO_CLASSES, className), playsInline: true, autoPlay: realAutoPlay, loop: loop, muted: realMuted, controls: effectiveControls, style: videoStyle, width: width, height: height, preload: !sourcesReady
188
- ? 'none'
189
- : fetchPriority === 'high' || loading === 'eager'
190
- ? 'auto'
191
- : loading === 'lazy'
192
- ? 'metadata'
193
- : undefined, fetchPriority: sourcesReady ? fetchPriority : undefined, onPlaying: markPlaying, onPlay: () => {
194
- // Some browsers only fire play; still prefer playing for first frame.
195
- if (!realAutoPlay && videoRef.current && videoRef.current.readyState >= 2) {
196
- markPlaying();
197
- }
198
- }, ...props, children: [sourcesReady ? (_jsx(VideoSources, { width: width, videoPrefix: videoPrefix, rawSrc: rawSrc, mp4Src: mp4Src, visualSizes: visualSizes })) : null, realMuted && _jsx("track", { kind: "captions", default: true })] }));
199
- const playChrome = showPlayChrome ? (_jsx(LocalVideoPlayChrome, { label: `Play video: ${videoTitle || 'Video'}`, onPlay: handlePlayChrome, loading: playPending })) : null;
200
- // Full-frame content always needs a relative box for the poster overlay; cover/fill
201
- // modes keep existing contained vs overflow-clip wrappers (parent may clip).
202
- if (showFullFrame) {
203
- return (_jsxs("div", { ref: rootRef, className: "relative block w-full", style: { display: 'block' }, children: [videoElement, posterOverlay, playChrome] }));
204
- }
205
- if (contained) {
206
- return (_jsxs("div", { ref: rootRef, className: "relative", children: [videoElement, posterOverlay, playChrome] }));
207
- }
208
- return (_jsxs("div", { ref: rootRef, className: "relative overflow-clip rounded-[1px]", style: { display: 'block' }, children: [videoElement, posterOverlay, playChrome] }));
209
- }
210
- export default ImageKitVideo;
211
- //# sourceMappingURL=ImageKitClientVideo.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ImageKitClientVideo.js","sourceRoot":"","sources":["../../src/components/ImageKitClientVideo.tsx"],"names":[],"mappings":"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"}
@@ -1,21 +0,0 @@
1
- import type { IAnalyticsContext } from '@se-studio/core-data-types';
2
- import type { IVideoProps } from './Video';
3
- interface ImageKitHlsVideoClientProps extends Omit<IVideoProps, 'poster'> {
4
- hlsSrc: string;
5
- /** Optional MP4 URL used when HLS fails fatally (e.g. unsupported codec or network error). */
6
- fallbackMp4Url?: string | null;
7
- poster?: string | null;
8
- width?: number;
9
- height?: number;
10
- noPoster?: boolean;
11
- /** When true, show full video frame (object-fit contain) — no cover crop. */
12
- dontCrop?: boolean | null;
13
- analyticsContext?: IAnalyticsContext;
14
- componentLabel?: string | null;
15
- videoId?: string;
16
- videoTitle?: string;
17
- videoUrl?: string;
18
- }
19
- export default function ImageKitHlsVideoClient({ hlsSrc, fallbackMp4Url, autoPlay, loop, muted, controls, style, poster, contained, dontCrop, width, height, loading, fetchPriority, noPoster, className, visualSizes, fullPlayer: _fullPlayer, analyticsContext, componentLabel, videoId, videoTitle, videoUrl, startPlaybackOnMount, ...props }: ImageKitHlsVideoClientProps): import("react").JSX.Element;
20
- export {};
21
- //# sourceMappingURL=ImageKitHlsVideoClient.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ImageKitHlsVideoClient.d.ts","sourceRoot":"","sources":["../../src/components/ImageKitHlsVideoClient.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAQpE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAG3C,UAAU,2BAA4B,SAAQ,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC;IACvE,MAAM,EAAE,MAAM,CAAC;IACf,8FAA8F;IAC9F,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAC1B,gBAAgB,CAAC,EAAE,iBAAiB,CAAC;IACrC,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAcD,MAAM,CAAC,OAAO,UAAU,sBAAsB,CAAC,EAC7C,MAAM,EACN,cAAc,EACd,QAAQ,EACR,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,KAAK,EACL,MAAM,EACN,SAAS,EACT,QAAQ,EACR,KAAK,EACL,MAAM,EACN,OAAO,EACP,aAAa,EACb,QAAQ,EACR,SAAS,EACT,WAAW,EACX,UAAU,EAAE,WAAW,EACvB,gBAAgB,EAChB,cAAc,EACd,OAAO,EACP,UAAU,EACV,QAAQ,EACR,oBAA4B,EAC5B,GAAG,KAAK,EACT,EAAE,2BAA2B,+BA0O7B"}
@@ -1,167 +0,0 @@
1
- 'use client';
2
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
- import { processSizes } from '@se-studio/core-data-types';
4
- import Image from 'next/image';
5
- import { useCallback, useEffect, useRef, useState } from 'react';
6
- import { useHtml5VideoEngagement } from '../analytics/video/useHtml5VideoEngagement';
7
- import { useVideoEngagement } from '../analytics/video/useVideoEngagement';
8
- import { cn } from '../utils/cn';
9
- import { LocalVideoPlayChrome } from './LocalVideoPlayChrome';
10
- import { CONTAINED_VIDEO_CLASSES, CONTENT_VIDEO_CLASSES, shouldShowFullFrameVideo } from './Visual';
11
- function calculateSizes(visualSizes) {
12
- if (!visualSizes)
13
- return '100vw';
14
- const result = processSizes(visualSizes)
15
- ?.breakpoints?.sort((a, b) => b.minWidth - a.minWidth)
16
- .map(({ minWidth, size }) => `(min-width: ${minWidth}px) ${size}`) ?? [];
17
- if (visualSizes.defaultSize)
18
- result.push(visualSizes.defaultSize);
19
- else if (visualSizes.defaultPixels)
20
- result.push(`${visualSizes.defaultPixels}px`);
21
- else
22
- result.push('100vw');
23
- return result.join(',');
24
- }
25
- export default function ImageKitHlsVideoClient({ hlsSrc, fallbackMp4Url, autoPlay, loop, muted, controls, style, poster, contained, dontCrop, width, height, loading, fetchPriority, noPoster, className, visualSizes, fullPlayer: _fullPlayer, analyticsContext, componentLabel, videoId, videoTitle, videoUrl, startPlaybackOnMount = false, ...props }) {
26
- const videoRef = useRef(null);
27
- const [useFallbackMp4, setUseFallbackMp4] = useState(false);
28
- const [hlsActive, setHlsActive] = useState(false);
29
- const realAutoPlay = !!autoPlay;
30
- const realMuted = muted ?? realAutoPlay;
31
- const realPoster = noPoster ? undefined : (poster ?? undefined);
32
- const showFullFrame = shouldShowFullFrameVideo(dontCrop);
33
- const [posterVisible, setPosterVisible] = useState(!realAutoPlay);
34
- const [playPending, setPlayPending] = useState(false);
35
- const [userStarted, setUserStarted] = useState(false);
36
- const showPlayChrome = !realAutoPlay && !userStarted;
37
- const effectiveControls = realAutoPlay ? Boolean(controls) : userStarted && controls !== false;
38
- const engagementEnabled = !realAutoPlay && !!analyticsContext;
39
- const { sessionRef, rootRef } = useVideoEngagement({
40
- identity: {
41
- video_provider: 'local',
42
- video_id: videoId || hlsSrc,
43
- video_title: videoTitle || 'Video',
44
- video_url: videoUrl || hlsSrc,
45
- location: componentLabel ?? undefined,
46
- },
47
- analyticsContext,
48
- enabled: engagementEnabled,
49
- });
50
- useHtml5VideoEngagement(videoRef, sessionRef, engagementEnabled);
51
- const markPlaying = useCallback(() => {
52
- setUserStarted(true);
53
- setPlayPending(false);
54
- setPosterVisible(false);
55
- }, []);
56
- const handlePlayChrome = useCallback(() => {
57
- const video = videoRef.current;
58
- setPlayPending(true);
59
- if (video) {
60
- void video.play().catch(() => {
61
- setPlayPending(false);
62
- });
63
- }
64
- }, []);
65
- useEffect(() => {
66
- if (!playPending)
67
- return;
68
- const id = window.setTimeout(() => {
69
- const video = videoRef.current;
70
- if (video && !video.paused) {
71
- markPlaying();
72
- }
73
- else {
74
- setPlayPending(false);
75
- }
76
- }, 12_000);
77
- return () => window.clearTimeout(id);
78
- }, [playPending, markPlaying]);
79
- useEffect(() => {
80
- if (!startPlaybackOnMount || realAutoPlay)
81
- return;
82
- handlePlayChrome();
83
- }, [startPlaybackOnMount, realAutoPlay, handlePlayChrome]);
84
- useEffect(() => {
85
- const video = videoRef.current;
86
- if (!video)
87
- return;
88
- video.playsInline = true;
89
- video.muted = realMuted;
90
- }, [realMuted]);
91
- useEffect(() => {
92
- if (useFallbackMp4)
93
- return;
94
- const video = videoRef.current;
95
- if (!video)
96
- return;
97
- // Safari/iOS natively supports HLS — the declarative src already works
98
- if (video.canPlayType('application/vnd.apple.mpegurl')) {
99
- return;
100
- }
101
- let hlsInstance = null;
102
- const setupHls = async () => {
103
- const Hls = (await import('hls.js')).default;
104
- if (!Hls.isSupported()) {
105
- if (fallbackMp4Url)
106
- setUseFallbackMp4(true);
107
- return;
108
- }
109
- hlsInstance = new Hls();
110
- hlsInstance.loadSource(hlsSrc);
111
- hlsInstance.attachMedia(video);
112
- hlsInstance.on(Hls.Events.MANIFEST_PARSED, () => setHlsActive(true));
113
- hlsInstance.on(Hls.Events.ERROR, (_event, data) => {
114
- if (data.fatal) {
115
- hlsInstance?.destroy();
116
- hlsInstance = null;
117
- setHlsActive(false);
118
- if (fallbackMp4Url)
119
- setUseFallbackMp4(true);
120
- }
121
- });
122
- };
123
- setupHls();
124
- return () => {
125
- if (hlsInstance) {
126
- hlsInstance.destroy();
127
- hlsInstance = null;
128
- }
129
- setHlsActive(false);
130
- };
131
- }, [hlsSrc, fallbackMp4Url, useFallbackMp4]);
132
- // Safari's native HLS player ignores the loop attribute on .m3u8 streams
133
- const handleEnded = () => {
134
- if (hlsActive || !loop)
135
- return;
136
- const video = videoRef.current;
137
- if (!video)
138
- return;
139
- video.currentTime = 0;
140
- video.play().catch(() => { });
141
- };
142
- const useMp4 = useFallbackMp4 && fallbackMp4Url;
143
- const resolvedSrc = useMp4 ? fallbackMp4Url : hlsActive ? undefined : hlsSrc;
144
- const videoStyle = {
145
- display: 'block',
146
- ...style,
147
- };
148
- const posterOverlay = posterVisible && realPoster ? (showFullFrame ? (_jsx(Image, { src: realPoster, alt: "", width: width && width > 0 ? width : 1920, height: height && height > 0 ? height : 1080, className: "absolute inset-0 size-full object-contain pointer-events-none", sizes: calculateSizes(visualSizes), "aria-hidden": true })) : (_jsx(Image, { src: realPoster, alt: "", fill: true, className: "object-cover pointer-events-none", sizes: calculateSizes(visualSizes), "aria-hidden": true }))) : null;
149
- const videoElement = (_jsx("video", { ref: videoRef, src: resolvedSrc, "aria-hidden": realMuted && loop, className: cn(showFullFrame ? CONTENT_VIDEO_CLASSES : CONTAINED_VIDEO_CLASSES, className), playsInline: true, autoPlay: realAutoPlay, loop: loop, muted: realMuted, controls: effectiveControls, style: videoStyle, width: width, height: height, preload: fetchPriority === 'high' || loading === 'eager'
150
- ? 'auto'
151
- : loading === 'lazy'
152
- ? 'metadata'
153
- : undefined, fetchPriority: fetchPriority, onPlaying: markPlaying, onPlay: () => {
154
- if (!realAutoPlay && videoRef.current && videoRef.current.readyState >= 2) {
155
- markPlaying();
156
- }
157
- }, onEnded: handleEnded, ...props, children: realMuted && _jsx("track", { kind: "captions", default: true }) }));
158
- const playChrome = showPlayChrome ? (_jsx(LocalVideoPlayChrome, { label: `Play video: ${videoTitle || 'Video'}`, onPlay: handlePlayChrome, loading: playPending })) : null;
159
- if (showFullFrame) {
160
- return (_jsxs("div", { ref: rootRef, className: "relative block w-full", style: { display: 'block' }, children: [videoElement, posterOverlay, playChrome] }));
161
- }
162
- if (contained) {
163
- return (_jsxs("div", { ref: rootRef, className: "relative", children: [videoElement, posterOverlay, playChrome] }));
164
- }
165
- return (_jsxs("div", { ref: rootRef, className: "relative overflow-clip rounded-[1px]", style: { display: 'block' }, children: [videoElement, posterOverlay, playChrome] }));
166
- }
167
- //# sourceMappingURL=ImageKitHlsVideoClient.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ImageKitHlsVideoClient.js","sourceRoot":"","sources":["../../src/components/ImageKitHlsVideoClient.tsx"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- /** True when ImageKit HLS playback is enabled. MP4-only sites leave `IMAGEKIT_VIDEO_HLS` unset. */
2
- export declare function isImageKitHlsEnabled(): boolean;
3
- //# sourceMappingURL=imageKitVideoHls.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"imageKitVideoHls.d.ts","sourceRoot":"","sources":["../../src/utils/imageKitVideoHls.ts"],"names":[],"mappings":"AAAA,mGAAmG;AACnG,wBAAgB,oBAAoB,IAAI,OAAO,CAE9C"}
@@ -1,5 +0,0 @@
1
- /** True when ImageKit HLS playback is enabled. MP4-only sites leave `IMAGEKIT_VIDEO_HLS` unset. */
2
- export function isImageKitHlsEnabled() {
3
- return process.env.IMAGEKIT_VIDEO_HLS === 'true' || process.env.IMAGEKIT_VIDEO_HLS === '1';
4
- }
5
- //# sourceMappingURL=imageKitVideoHls.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"imageKitVideoHls.js","sourceRoot":"","sources":["../../src/utils/imageKitVideoHls.ts"],"names":[],"mappings":"AAAA,mGAAmG;AACnG,MAAM,UAAU,oBAAoB;IAClC,OAAO,OAAO,CAAC,GAAG,CAAC,kBAAkB,KAAK,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,kBAAkB,KAAK,GAAG,CAAC;AAC7F,CAAC"}