@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/CHANGELOG.md CHANGED
@@ -1,5 +1,23 @@
1
1
  # @se-studio/core-ui
2
2
 
3
+ ## 1.27.0
4
+
5
+ ### Minor Changes
6
+
7
+ - Stop applying 2px video overscan by default (`edgeOverscan` opt-in). Remove ImageKit/HLS. CMS local files are mute-loop packs only (click-to-play is YouTube/Vimeo). Raise mute-loop max duration to 2 minutes. Drop `videoPrefix`.
8
+
9
+ ### Patch Changes
10
+
11
+ - Updated dependencies
12
+ - @se-studio/contentful-rest-api@1.26.0
13
+ - @se-studio/core-data-types@1.13.0
14
+
15
+ ## 1.26.0
16
+
17
+ ### Minor Changes
18
+
19
+ - Add `createSitemapXmlRouteHandler` so marketing sites serve `/sitemap.xml` as a force-dynamic Route Handler with CDN no-store (the se-website production pattern). Listing fetches stay tagged `sitemap` with no hourly `revalidate`.
20
+
3
21
  ## 1.25.3
4
22
 
5
23
  ### Patch Changes
package/README.md CHANGED
@@ -429,8 +429,10 @@ const previewConfig = mergeCmsRendererConfig(
429
429
  - **`buildListingItems`** / **`buildListingStructuredDataContext`** — ItemList JSON-LD context for article-type, tag, and person listing pages (async CMS fetch via `getAllArticleLinks` + `filterRelatedArticles`)
430
430
 
431
431
  #### Sitemap Utilities
432
+ - **`createSitemapXmlRouteHandler`** / **`createSitemapXmlResponse`** — GET helper for `app/sitemap.xml/route.ts` (force-dynamic + CDN no-store). Do **not** use metadata `app/sitemap.ts` on Vercel.
433
+ - **`SITEMAP_CACHE_TAG`** / **`SITEMAP_XML_HEADERS`** — listing fetch tag (`sitemap`) and XML response headers
432
434
  - **`buildSitemap`** - Builds a Next.js sitemap from multiple async sources; calls each source in parallel, deduplicates by URL, and converts to `MetadataRoute.Sitemap`
433
- - **`sitemapToXml`** - Converts a `MetadataRoute.Sitemap` array to sitemap XML string for Route Handlers (e.g. `/sitemap-unindexed.xml`)
435
+ - **`sitemapToXml`** - Converts a `MetadataRoute.Sitemap` array to sitemap XML string for Route Handlers
434
436
  - **`generateNextSitemap`** - Converts sitemap entries to Next.js format with baseUrl normalization
435
437
  - **`deduplicateSitemapEntries`** - Deduplicates entries by URL (keeps most recent `lastModified`)
436
438
  - **`sortSitemapEntries`** - Sorts by priority then lastModified
@@ -446,42 +448,50 @@ For detailed JSDoc documentation on all exports, see the TypeScript declaration
446
448
 
447
449
  ### Sitemap Usage
448
450
 
449
- Use `buildSitemap` with source functions for a thin `sitemap.ts`:
451
+ Use a Route Handler (`app/sitemap.xml/route.ts`), not metadata `app/sitemap.ts`. Next metadata sitemaps are static/ISR; on Vercel the CDN can keep serving HIT after the Contentful webhook calls `revalidateTag('sitemap')`. The listing fetch is still `force-cache` + the `sitemap` tag (no hourly `revalidate`), so Contentful is not hit on every request.
452
+
453
+ `dynamic` and `revalidate` **must** be literals in the route file (Next.js static analysis). Do not re-export them from this package.
450
454
 
451
455
  ```ts
452
- // app/sitemap.ts
453
- import { buildSitemap } from '@se-studio/core-ui';
456
+ // app/sitemap.xml/route.ts
457
+ import { createSitemapXmlRouteHandler } from '@se-studio/core-ui';
454
458
  import { baseUrl } from '@/lib/server-config';
455
459
  import { getSitemapEntries } from '@/lib/sitemap-sources';
456
460
 
457
- export default async function sitemap() {
458
- return buildSitemap(
459
- [() => getSitemapEntries({ includeUnindexed: false })],
460
- { baseUrl, defaultPriority: 0.5, defaultChangeFrequency: 'monthly', trailingSlash: true },
461
- );
462
- }
461
+ export const dynamic = 'force-dynamic';
462
+ export const revalidate = 0;
463
+
464
+ export const GET = createSitemapXmlRouteHandler({
465
+ getEntries: () => getSitemapEntries({ includeUnindexed: false }),
466
+ baseUrl,
467
+ defaultPriority: 0.5,
468
+ defaultChangeFrequency: 'monthly',
469
+ trailingSlash: true,
470
+ });
463
471
  ```
464
472
 
465
- For a custom route (e.g. unindexed pages sitemap), use `sitemapToXml`:
473
+ Unindexed (audit) sitemap — same helper, `includeUnindexed: true`:
466
474
 
467
475
  ```ts
468
476
  // app/sitemap-unindexed.xml/route.ts
469
- import { buildSitemap, sitemapToXml } from '@se-studio/core-ui';
470
- import { NextResponse } from 'next/server';
477
+ import { createSitemapXmlRouteHandler } from '@se-studio/core-ui';
471
478
  import { baseUrl } from '@/lib/server-config';
472
479
  import { getSitemapEntries } from '@/lib/sitemap-sources';
473
480
 
474
- export async function GET() {
475
- const entries = await buildSitemap(
476
- [() => getSitemapEntries({ includeUnindexed: true })],
477
- { baseUrl, defaultPriority: 0.5, defaultChangeFrequency: 'monthly', trailingSlash: true },
478
- );
479
- return new NextResponse(sitemapToXml(entries), {
480
- headers: { 'Content-Type': 'application/xml' },
481
- });
482
- }
481
+ export const dynamic = 'force-dynamic';
482
+ export const revalidate = 0;
483
+
484
+ export const GET = createSitemapXmlRouteHandler({
485
+ getEntries: () => getSitemapEntries({ includeUnindexed: true }),
486
+ baseUrl,
487
+ defaultPriority: 0.5,
488
+ defaultChangeFrequency: 'monthly',
489
+ trailingSlash: true,
490
+ });
483
491
  ```
484
492
 
493
+ Add both paths to `route-build-policy.json` `allowedDynamic`. Do not keep `app/sitemap.ts` next to `app/sitemap.xml/route.ts` — they both serve `/sitemap.xml`.
494
+
485
495
  ### Marketing Site Sitemap (createAppHelpers)
486
496
 
487
497
  When using `createAppHelpers`, pass `marketingSiteSitemap` to enable `getSitemapEntries` for sites with articles, tags, and people. When provided, `getSitemapEntries` is guaranteed and correctly typed (return type is `AppHelpersWithSitemap`), so you can re-export it from a `sitemap-sources` module without type assertions.
@@ -4,10 +4,11 @@ export declare function shouldOfferHero1080(visualSizes?: IVisualSizes): boolean
4
4
  export declare function heroLoopErrorMessage(error: IHeroDelivery['error'] | 'not_mute_loop'): string;
5
5
  export declare function formatHeroDurationSec(durationSec?: number): string | undefined;
6
6
  export declare function heroLoopErrorMeta(delivery: IHeroDelivery): string | undefined;
7
- export declare function HeroLoopVideo({ delivery, autoPlay, loop, visualSizes, contained: _contained, dontCrop, verticalCropPosition, horizontalCropPosition, className, style, loading, fetchPriority, }: {
7
+ /** Mute-loop pack player. Does not clip overflow; `edgeOverscan` needs a clipping parent. */
8
+ export declare function HeroLoopVideo({ delivery, autoPlay, loop, visualSizes, contained: _contained, edgeOverscan, dontCrop, verticalCropPosition, horizontalCropPosition, className, style, loading, fetchPriority, }: {
8
9
  delivery: IHeroDelivery;
9
10
  dontCrop?: boolean | null;
10
11
  verticalCropPosition?: Vertical | null;
11
12
  horizontalCropPosition?: Horizontal | null;
12
- } & Pick<IVideoProps, 'autoPlay' | 'loop' | 'visualSizes' | 'contained' | 'className' | 'style' | 'loading' | 'fetchPriority'>): import("react").JSX.Element;
13
+ } & Pick<IVideoProps, 'autoPlay' | 'loop' | 'visualSizes' | 'contained' | 'edgeOverscan' | 'className' | 'style' | 'loading' | 'fetchPriority'>): import("react").JSX.Element;
13
14
  //# sourceMappingURL=HeroLoopVideo.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"HeroLoopVideo.d.ts","sourceRoot":"","sources":["../../src/components/HeroLoopVideo.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAKpG,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAQ3C,wBAAgB,mBAAmB,CAAC,WAAW,CAAC,EAAE,YAAY,GAAG,OAAO,CAUvE;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC,GAAG,eAAe,GAAG,MAAM,CAc5F;AAED,wBAAgB,qBAAqB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAM9E;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,aAAa,GAAG,MAAM,GAAG,SAAS,CAa7E;AASD,wBAAgB,aAAa,CAAC,EAC5B,QAAQ,EACR,QAAQ,EACR,IAAI,EACJ,WAAW,EACX,SAAS,EAAE,UAAU,EACrB,QAAQ,EACR,oBAAoB,EACpB,sBAAsB,EACtB,SAAS,EACT,KAAK,EACL,OAAO,EACP,aAAa,GACd,EAAE;IACD,QAAQ,EAAE,aAAa,CAAC;IACxB,QAAQ,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAC1B,oBAAoB,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;IACvC,sBAAsB,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;CAC5C,GAAG,IAAI,CACN,WAAW,EACT,UAAU,GACV,MAAM,GACN,aAAa,GACb,WAAW,GACX,WAAW,GACX,OAAO,GACP,SAAS,GACT,eAAe,CAClB,+BA0IA"}
1
+ {"version":3,"file":"HeroLoopVideo.d.ts","sourceRoot":"","sources":["../../src/components/HeroLoopVideo.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAKpG,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAG3C,wBAAgB,mBAAmB,CAAC,WAAW,CAAC,EAAE,YAAY,GAAG,OAAO,CAUvE;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC,GAAG,eAAe,GAAG,MAAM,CAc5F;AAED,wBAAgB,qBAAqB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAM9E;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,aAAa,GAAG,MAAM,GAAG,SAAS,CAa7E;AASD,6FAA6F;AAC7F,wBAAgB,aAAa,CAAC,EAC5B,QAAQ,EACR,QAAQ,EACR,IAAI,EACJ,WAAW,EACX,SAAS,EAAE,UAAU,EACrB,YAAY,EACZ,QAAQ,EACR,oBAAoB,EACpB,sBAAsB,EACtB,SAAS,EACT,KAAK,EACL,OAAO,EACP,aAAa,GACd,EAAE;IACD,QAAQ,EAAE,aAAa,CAAC;IACxB,QAAQ,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAC1B,oBAAoB,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;IACvC,sBAAsB,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;CAC5C,GAAG,IAAI,CACN,WAAW,EACT,UAAU,GACV,MAAM,GACN,aAAa,GACb,WAAW,GACX,cAAc,GACd,WAAW,GACX,OAAO,GACP,SAAS,GACT,eAAe,CAClB,+BA0IA"}
@@ -1,10 +1,10 @@
1
1
  'use client';
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
- import { processSizes } from '@se-studio/core-data-types';
3
+ import { HERO_LOOP_MAX_DURATION_SEC, processSizes } from '@se-studio/core-data-types';
4
4
  import { useEffect, useRef } from 'react';
5
5
  import { cn } from '../utils/cn';
6
6
  import { HERO_LOOP_LAPTOP_MIN_WIDTH, heroLoopAttachRootMargin, isEagerHeroLoop } from './heroLoop';
7
- import { CONTAINED_VIDEO_CLASSES, CONTENT_VIDEO_CLASSES, calculateCropDetails, shouldShowFullFrameVideo, } from './Visual';
7
+ import { calculateCropDetails, shouldShowFullFrameVideo, videoFrameClasses } from './Visual';
8
8
  export function shouldOfferHero1080(visualSizes) {
9
9
  if (!visualSizes) {
10
10
  return true;
@@ -19,7 +19,7 @@ export function shouldOfferHero1080(visualSizes) {
19
19
  export function heroLoopErrorMessage(error) {
20
20
  switch (error) {
21
21
  case 'too_long':
22
- return 'This local video is longer than 30 seconds. Use Vimeo or YouTube.';
22
+ return `This local video is longer than ${String(Math.round(HERO_LOOP_MAX_DURATION_SEC / 60))} minutes. Use Vimeo or YouTube.`;
23
23
  case 'not_mute_loop':
24
24
  return 'Local video is only for mute looping heroes. Turn on Autoplay and Loop, or use Vimeo / YouTube.';
25
25
  case 'no_video_stream':
@@ -58,7 +58,8 @@ function aspectStyle(width, height) {
58
58
  }
59
59
  return { aspectRatio: '16 / 9' };
60
60
  }
61
- export function HeroLoopVideo({ delivery, autoPlay, loop, visualSizes, contained: _contained, dontCrop, verticalCropPosition, horizontalCropPosition, className, style, loading, fetchPriority, }) {
61
+ /** Mute-loop pack player. Does not clip overflow; `edgeOverscan` needs a clipping parent. */
62
+ export function HeroLoopVideo({ delivery, autoPlay, loop, visualSizes, contained: _contained, edgeOverscan, dontCrop, verticalCropPosition, horizontalCropPosition, className, style, loading, fetchPriority, }) {
62
63
  const isMuteLoop = Boolean(autoPlay && loop);
63
64
  const isEager = isEagerHeroLoop({ loading, fetchPriority });
64
65
  const videoRef = useRef(null);
@@ -141,6 +142,6 @@ export function HeroLoopVideo({ delivery, autoPlay, loop, visualSizes, contained
141
142
  const offer1080 = Boolean(delivery.src1080 && shouldOfferHero1080(visualSizes));
142
143
  const width = delivery.width && delivery.width > 0 ? delivery.width : 1920;
143
144
  const height = delivery.height && delivery.height > 0 ? delivery.height : 1080;
144
- return (_jsx("div", { className: cn('relative block w-full', className), style: boxStyle, children: _jsxs("video", { ref: videoRef, poster: delivery.poster, "aria-hidden": true, className: cn(showFullFrame ? CONTENT_VIDEO_CLASSES : CONTAINED_VIDEO_CLASSES), playsInline: true, autoPlay: true, loop: true, muted: true, controls: false, width: width, height: height, preload: "none", "data-src-720": isEager ? undefined : delivery.src720, "data-src-1080": isEager || !offer1080 ? undefined : delivery.src1080, style: { display: 'block', ...crop }, children: [isEager && offer1080 && delivery.src1080 ? (_jsx("source", { src: delivery.src1080, media: `(min-width: ${String(HERO_LOOP_LAPTOP_MIN_WIDTH)}px)`, type: "video/mp4" })) : null, isEager ? _jsx("source", { src: delivery.src720, type: "video/mp4" }) : null, _jsx("track", { kind: "captions", default: true })] }) }));
145
+ return (_jsx("div", { className: cn('relative block w-full', className), style: boxStyle, children: _jsxs("video", { ref: videoRef, poster: delivery.poster, "aria-hidden": true, className: cn(videoFrameClasses({ showFullFrame, edgeOverscan })), playsInline: true, autoPlay: true, loop: true, muted: true, controls: false, width: width, height: height, preload: "none", "data-src-720": isEager ? undefined : delivery.src720, "data-src-1080": isEager || !offer1080 ? undefined : delivery.src1080, style: { display: 'block', ...crop }, children: [isEager && offer1080 && delivery.src1080 ? (_jsx("source", { src: delivery.src1080, media: `(min-width: ${String(HERO_LOOP_LAPTOP_MIN_WIDTH)}px)`, type: "video/mp4" })) : null, isEager ? _jsx("source", { src: delivery.src720, type: "video/mp4" }) : null, _jsx("track", { kind: "captions", default: true })] }) }));
145
146
  }
146
147
  //# sourceMappingURL=HeroLoopVideo.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"HeroLoopVideo.js","sourceRoot":"","sources":["../../src/components/HeroLoopVideo.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"HeroLoopVideo.js","sourceRoot":"","sources":["../../src/components/HeroLoopVideo.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAGb,OAAO,EAAE,0BAA0B,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AACtF,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,0BAA0B,EAAE,wBAAwB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAEnG,OAAO,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAE7F,MAAM,UAAU,mBAAmB,CAAC,WAA0B;IAC5D,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,SAAS,GAAG,YAAY,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC;IACzD,MAAM,MAAM,GAAG,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,0BAA0B,CAAC,CAAC;IACjF,IAAI,MAAM,EAAE,UAAU,KAAK,SAAS,EAAE,CAAC;QACrC,OAAO,MAAM,CAAC,UAAU,GAAG,GAAG,CAAC;IACjC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,KAA+C;IAClF,QAAQ,KAAK,EAAE,CAAC;QACd,KAAK,UAAU;YACb,OAAO,mCAAmC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,0BAA0B,GAAG,EAAE,CAAC,CAAC,iCAAiC,CAAC;QACjI,KAAK,eAAe;YAClB,OAAO,iGAAiG,CAAC;QAC3G,KAAK,iBAAiB,CAAC;QACvB,KAAK,kBAAkB;YACrB,OAAO,oCAAoC,CAAC;QAC9C,KAAK,eAAe;YAClB,OAAO,oCAAoC,CAAC;QAC9C;YACE,OAAO,8BAA8B,CAAC;IAC1C,CAAC;AACH,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,WAAoB;IACxD,IAAI,WAAW,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QAC/D,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;IAClD,OAAO,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;AACtF,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,QAAuB;IACvD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;QACxB,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IAClC,CAAC;IACD,IAAI,QAAQ,CAAC,KAAK,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;QACtC,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACvE,CAAC;IACD,MAAM,QAAQ,GAAG,qBAAqB,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IAC7D,IAAI,QAAQ,EAAE,CAAC;QACb,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACvB,CAAC;IACD,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC1D,CAAC;AAED,SAAS,WAAW,CAAC,KAAc,EAAE,MAAe;IAClD,IAAI,KAAK,IAAI,MAAM,IAAI,KAAK,GAAG,CAAC,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/C,OAAO,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;IACjE,CAAC;IACD,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC;AACnC,CAAC;AAED,6FAA6F;AAC7F,MAAM,UAAU,aAAa,CAAC,EAC5B,QAAQ,EACR,QAAQ,EACR,IAAI,EACJ,WAAW,EACX,SAAS,EAAE,UAAU,EACrB,YAAY,EACZ,QAAQ,EACR,oBAAoB,EACpB,sBAAsB,EACtB,SAAS,EACT,KAAK,EACL,OAAO,EACP,aAAa,GAiBd;IACC,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC,CAAC;IAC7C,MAAM,OAAO,GAAG,eAAe,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,CAAC;IAC5D,MAAM,QAAQ,GAAG,MAAM,CAAmB,IAAI,CAAC,CAAC;IAChD,MAAM,IAAI,GAAG,oBAAoB,CAAC;QAChC,QAAQ;QACR,oBAAoB;QACpB,sBAAsB;KACvB,CAAC,CAAC;IACH,MAAM,aAAa,GAAG,wBAAwB,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IACzE,MAAM,QAAQ,GAAG;QACf,GAAG,WAAW,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC;QAC/C,GAAG,KAAK;KACT,CAAC;IAEF,qEAAqE;IACrE,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC;QAC5B,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,OAAO;QACT,CAAC;QACD,EAAE,CAAC,KAAK,GAAG,IAAI,CAAC;QAChB,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO;QACT,CAAC;QAED,MAAM,aAAa,GAAG,GAAG,EAAE;YACzB,IAAI,EAAE,CAAC,aAAa,CAAC,aAAa,CAAC,EAAE,CAAC;gBACpC,OAAO;YACT,CAAC;YACD,wEAAwE;YACxE,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;YACjD,MAAM,MAAM,GAAG,EAAE,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;YAC/C,MAAM,KAAK,GAAG,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;YACxC,MAAM,MAAM,GAAG,CAAC,IAAuB,EAAE,EAAE;gBACzC,IAAI,KAAK,EAAE,CAAC;oBACV,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;gBAC/B,CAAC;qBAAM,CAAC;oBACN,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;gBACvB,CAAC;YACH,CAAC,CAAC;YACF,IAAI,OAAO,EAAE,CAAC;gBACZ,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;gBAChD,MAAM,CAAC,GAAG,GAAG,OAAO,CAAC;gBACrB,MAAM,CAAC,IAAI,GAAG,WAAW,CAAC;gBAC1B,MAAM,CAAC,KAAK,GAAG,eAAe,MAAM,CAAC,0BAA0B,CAAC,KAAK,CAAC;gBACtE,MAAM,CAAC,MAAM,CAAC,CAAC;YACjB,CAAC;YACD,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;gBAChD,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC;gBACpB,MAAM,CAAC,IAAI,GAAG,WAAW,CAAC;gBAC1B,MAAM,CAAC,MAAM,CAAC,CAAC;YACjB,CAAC;YACD,EAAE,CAAC,IAAI,EAAE,CAAC;YACV,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACjC,CAAC,CAAC;QAEF,MAAM,EAAE,GAAG,IAAI,oBAAoB,CACjC,CAAC,OAAO,EAAE,EAAE;YACV,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC;gBAChC,OAAO;YACT,CAAC;YACD,EAAE,CAAC,UAAU,EAAE,CAAC;YAChB,aAAa,EAAE,CAAC;QAClB,CAAC,EACD,EAAE,UAAU,EAAE,wBAAwB,EAAE,EAAE,CAC3C,CAAC;QACF,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACf,OAAO,GAAG,EAAE;YACV,EAAE,CAAC,UAAU,EAAE,CAAC;QAClB,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAEd,MAAM,KAAK,GAAyD,CAAC,UAAU;QAC7E,CAAC,CAAC,eAAe;QACjB,CAAC,CAAC,QAAQ,CAAC,MAAM,KAAK,UAAU,IAAI,QAAQ,CAAC,MAAM,KAAK,QAAQ;YAC9D,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,IAAI,eAAe,CAAC;YACrC,CAAC,CAAC,SAAS,CAAC;IAEhB,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,IAAI,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QACzC,OAAO,CACL,eACE,SAAS,EAAE,EAAE,CACX,qKAAqK,EACrK,SAAS,CACV,EACD,KAAK,EAAE,QAAQ,EACf,IAAI,EAAC,QAAQ,aAEb,sBAAI,oBAAoB,CAAC,KAAK,CAAC,GAAK,EACnC,IAAI,CAAC,CAAC,CAAC,YAAG,SAAS,EAAC,oCAAoC,YAAE,IAAI,GAAK,CAAC,CAAC,CAAC,IAAI,IACvE,CACP,CAAC;IACJ,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,KAAK,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;QACpD,OAAO,CACL,cAAK,SAAS,EAAE,EAAE,CAAC,4BAA4B,EAAE,SAAS,CAAC,EAAE,KAAK,EAAE,QAAQ,wBAAgB,CAC7F,CAAC;IACJ,CAAC;IAED,MAAM,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC,OAAO,IAAI,mBAAmB,CAAC,WAAW,CAAC,CAAC,CAAC;IAChF,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,IAAI,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;IAC3E,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;IAE/E,OAAO,CACL,cAAK,SAAS,EAAE,EAAE,CAAC,uBAAuB,EAAE,SAAS,CAAC,EAAE,KAAK,EAAE,QAAQ,YACrE,iBACE,GAAG,EAAE,QAAQ,EACb,MAAM,EAAE,QAAQ,CAAC,MAAM,uBAEvB,SAAS,EAAE,EAAE,CAAC,iBAAiB,CAAC,EAAE,aAAa,EAAE,YAAY,EAAE,CAAC,CAAC,EACjE,WAAW,QACX,QAAQ,QACR,IAAI,QACJ,KAAK,QACL,QAAQ,EAAE,KAAK,EACf,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,OAAO,EAAC,MAAM,kBACA,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,mBACpC,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,EACnE,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,aAEnC,OAAO,IAAI,SAAS,IAAI,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAC1C,iBACE,GAAG,EAAE,QAAQ,CAAC,OAAO,EACrB,KAAK,EAAE,eAAe,MAAM,CAAC,0BAA0B,CAAC,KAAK,EAC7D,IAAI,EAAC,WAAW,GAChB,CACH,CAAC,CAAC,CAAC,IAAI,EACP,OAAO,CAAC,CAAC,CAAC,iBAAQ,GAAG,EAAE,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAC,WAAW,GAAG,CAAC,CAAC,CAAC,IAAI,EACnE,gBAAO,IAAI,EAAC,UAAU,EAAC,OAAO,SAAG,IAC3B,GACJ,CACP,CAAC;AACJ,CAAC"}
@@ -9,10 +9,10 @@ type Props = VideoComponentProps;
9
9
  * Siteimprove “content missing after heading”) only see the SSR HTML. Always
10
10
  * reserve aspect ratio and, when available, render poster + accessible name.
11
11
  *
12
- * Non-autoplay shells also show a play-button affordance so first paint matches
13
- * the interactive player. A user click on the shell loads the player and
14
- * requests {@link VideoComponentProps.startPlaybackOnMount} so playback starts
15
- * without a second click.
12
+ * Non-autoplay **YouTube / Vimeo** shells also show a play-button affordance so
13
+ * first paint matches the interactive player. A user click on the shell loads the
14
+ * player and requests {@link VideoComponentProps.startPlaybackOnMount} so playback
15
+ * starts without a second click. CMS local files are mute-loop only (no shell play).
16
16
  */
17
17
  export declare function LazyVideo(maybeProps: Props | null | undefined): import("react").JSX.Element | null;
18
18
  export {};
@@ -35,10 +35,10 @@ function getVideoAccessibleName(video) {
35
35
  * Siteimprove “content missing after heading”) only see the SSR HTML. Always
36
36
  * reserve aspect ratio and, when available, render poster + accessible name.
37
37
  *
38
- * Non-autoplay shells also show a play-button affordance so first paint matches
39
- * the interactive player. A user click on the shell loads the player and
40
- * requests {@link VideoComponentProps.startPlaybackOnMount} so playback starts
41
- * without a second click.
38
+ * Non-autoplay **YouTube / Vimeo** shells also show a play-button affordance so
39
+ * first paint matches the interactive player. A user click on the shell loads the
40
+ * player and requests {@link VideoComponentProps.startPlaybackOnMount} so playback
41
+ * starts without a second click. CMS local files are mute-loop only (no shell play).
42
42
  */
43
43
  export function LazyVideo(maybeProps) {
44
44
  const ref = useRef(null);
@@ -112,8 +112,8 @@ export function LazyVideo(maybeProps) {
112
112
  // (default next/image is lazy without these, which fails LCP discovery).
113
113
  const posterPriority = props.fetchPriority === 'high';
114
114
  const posterLoading = props.loading === 'eager' || posterPriority ? 'eager' : 'lazy';
115
- // Match ExternalVimeo/YouTube click-to-play chrome for non-autoplay videos.
116
- const showPlayAffordance = !autoPlay;
115
+ // Match YouTube/Vimeo click-to-play chrome. CMS local files are mute-loop only.
116
+ const showPlayAffordance = !autoPlay && isExternalVideo(video);
117
117
  return (_jsxs("div", { ref: ref, className: cn(className, showPlayAffordance && 'bg-neutral-900'), style: shellStyle, children: [poster ? (_jsx(Image, { src: poster, alt: name, width: w ?? 1920, height: h ?? 1080, sizes: "100vw", loading: posterLoading, fetchPriority: posterPriority ? 'high' : undefined, priority: posterPriority, style: {
118
118
  display: 'block',
119
119
  width: '100%',
@@ -1 +1 @@
1
- {"version":3,"file":"LazyVideo.js","sourceRoot":"","sources":["../../src/components/LazyVideo.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LazyVideo.js","sourceRoot":"","sources":["../../src/components/LazyVideo.tsx"],"names":[],"mappings":"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"}
@@ -1,6 +1,10 @@
1
- import { type IAnalyticsContext, type IFullVideo, type ILocalVideo } from '@se-studio/core-data-types';
1
+ import type { IAnalyticsContext, IFullVideo, ILocalVideo } from '@se-studio/core-data-types';
2
2
  import type { FC } from 'react';
3
3
  import type { IVideoProps } from './Video';
4
+ /**
5
+ * CMS local / full files are mute-loop heroes only (media pipeline pack).
6
+ * Click-to-play belongs on YouTube or Vimeo.
7
+ */
4
8
  declare const LocalVideo: FC<{
5
9
  video: ILocalVideo | IFullVideo;
6
10
  analyticsContext: IAnalyticsContext | null | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"LocalVideo.d.ts","sourceRoot":"","sources":["../../src/components/LocalVideo.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,UAAU,EACf,KAAK,WAAW,EAEjB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,KAAK,EAAiC,EAAE,EAAE,MAAM,OAAO,CAAC;AAI/D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAiB3C,QAAA,MAAM,UAAU,EAAE,EAAE,CAClB;IACE,KAAK,EAAE,WAAW,GAAG,UAAU,CAAC;IAChC,gBAAgB,EAAE,iBAAiB,GAAG,IAAI,GAAG,SAAS,CAAC;IACvD,cAAc,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;CAC3C,GAAG,WAAW,CA8GhB,CAAC;eAEa,UAAU"}
1
+ {"version":3,"file":"LocalVideo.d.ts","sourceRoot":"","sources":["../../src/components/LocalVideo.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EACjB,UAAU,EAEV,WAAW,EACZ,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAEhC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAI3C;;;GAGG;AACH,QAAA,MAAM,UAAU,EAAE,EAAE,CAClB;IACE,KAAK,EAAE,WAAW,GAAG,UAAU,CAAC;IAChC,gBAAgB,EAAE,iBAAiB,GAAG,IAAI,GAAG,SAAS,CAAC;IACvD,cAAc,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;CAC3C,GAAG,WAAW,CAiChB,CAAC;eAEa,UAAU"}
@@ -1,66 +1,14 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
- import { isFullVideo, } from '@se-studio/core-data-types';
3
- import dynamic from 'next/dynamic';
4
- import { isImageKitHlsEnabled } from '../utils/imageKitVideoHls';
5
2
  import { HeroLoopVideo } from './HeroLoopVideo';
6
- import ImageKitVideo from './ImageKitClientVideo';
7
- import { calculateCropDetails } from './Visual';
8
- /** Loaded only when `IMAGEKIT_VIDEO_HLS` is set at build time — keeps `hls.js` out of MP4-only app bundles. */
9
- const ImageKitHlsVideoClient = isImageKitHlsEnabled()
10
- ? dynamic(() => import('./ImageKitHlsVideoClient'), { ssr: false })
11
- : null;
12
- function hostedPlaybackUrl(video) {
13
- if (isFullVideo(video)) {
14
- return video.full?.videoUrl ?? video.preview?.videoUrl;
15
- }
16
- return video.preview?.videoUrl;
17
- }
18
- const LocalVideo = ({ video, autoPlay, loop, controls, poster, contained, analyticsContext, componentLabel, ...props }) => {
3
+ const PENDING_HERO_DELIVERY = { status: 'pending' };
4
+ /**
5
+ * CMS local / full files are mute-loop heroes only (media pipeline pack).
6
+ * Click-to-play belongs on YouTube or Vimeo.
7
+ */
8
+ const LocalVideo = ({ video, autoPlay, loop, contained, edgeOverscan, visualSizes, className, style, loading, fetchPriority, }) => {
19
9
  const resolvedAutoPlay = video.autoPlay ?? autoPlay;
20
10
  const resolvedLoop = video.loop ?? loop;
21
- if (video.heroDelivery) {
22
- return (_jsx(HeroLoopVideo, { delivery: video.heroDelivery, autoPlay: resolvedAutoPlay, loop: resolvedLoop, visualSizes: props.visualSizes, contained: contained, dontCrop: video.dontCrop, verticalCropPosition: video.verticalCropPosition, horizontalCropPosition: video.horizontalCropPosition, className: props.className, style: props.style }));
23
- }
24
- const playbackUrl = hostedPlaybackUrl(video);
25
- if (!playbackUrl) {
26
- return null;
27
- }
28
- // Use MP4 for autoplay+loop to avoid HLS loop/autoplay issues on some browsers (e.g. Safari).
29
- const useHls = isImageKitHlsEnabled() && !(resolvedAutoPlay && resolvedLoop);
30
- const resolvedControls = !video.hideControls && controls;
31
- const resolvedPoster = video.poster ?? poster;
32
- // Dimensions are pre-populated by imagekitEnrichVideoAssets / seEnrichVideoAssets.
33
- // Use undefined rather than 0 so the browser omits intrinsic size when unavailable.
34
- const width = video.width || undefined;
35
- const height = video.height || undefined;
36
- const engagementProps = {
37
- analyticsContext: analyticsContext ?? undefined,
38
- componentLabel,
39
- videoId: video.id,
40
- videoTitle: video.name,
41
- };
42
- if (useHls && ImageKitHlsVideoClient) {
43
- const fullUrl = new URL(playbackUrl);
44
- const pathname = fullUrl.pathname;
45
- const basePath = pathname.replace(/\/$/, '');
46
- const representations = process.env.IMAGEKIT_VIDEO_HLS_REPRESENTATIONS ?? '240_360_480_720_1080';
47
- const hlsSrc = `${video.videoPrefix}${basePath}/ik-master.m3u8?tr=sr-${representations}`;
48
- // Always force /ik-video.mp4 transformation so ImageKit delivers H.264 MP4 regardless
49
- // of source container (Contentful files may be WebM despite a .mp4 extension).
50
- const fallbackMp4Url = `${video.videoPrefix}${pathname}/ik-video.mp4`;
51
- const posterUrl = resolvedPoster ?? `${video.videoPrefix}${pathname}/ik-thumbnail.jpg`;
52
- const cropStyle = calculateCropDetails({
53
- dontCrop: video.dontCrop,
54
- verticalCropPosition: video.verticalCropPosition,
55
- horizontalCropPosition: video.horizontalCropPosition,
56
- });
57
- return (_jsx(ImageKitHlsVideoClient, { hlsSrc: hlsSrc, fallbackMp4Url: fallbackMp4Url, width: width, height: height, autoPlay: resolvedAutoPlay, loop: resolvedLoop, controls: resolvedControls, poster: posterUrl, videoUrl: playbackUrl, ...engagementProps, ...props,
58
- // After spreads so callers cannot wipe content-media no-crop / crop style.
59
- style: { ...props.style, ...cropStyle }, contained: contained, dontCrop: video.dontCrop }));
60
- }
61
- return (_jsx(ImageKitVideo, { url: playbackUrl, videoPrefix: video.videoPrefix, width: width, height: height, autoPlay: resolvedAutoPlay, loop: resolvedLoop, controls: resolvedControls, poster: resolvedPoster, ...engagementProps, ...props,
62
- // After spreads so callers cannot wipe content-media no-crop.
63
- contained: contained, dontCrop: video.dontCrop, verticalCropPosition: video.verticalCropPosition, horizontalCropPosition: video.horizontalCropPosition }));
11
+ return (_jsx(HeroLoopVideo, { delivery: video.heroDelivery ?? PENDING_HERO_DELIVERY, autoPlay: resolvedAutoPlay, loop: resolvedLoop, visualSizes: visualSizes, contained: contained, edgeOverscan: edgeOverscan, dontCrop: video.dontCrop, verticalCropPosition: video.verticalCropPosition, horizontalCropPosition: video.horizontalCropPosition, className: className, style: style, loading: loading, fetchPriority: fetchPriority }));
64
12
  };
65
13
  export default LocalVideo;
66
14
  //# sourceMappingURL=LocalVideo.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LocalVideo.js","sourceRoot":"","sources":["../../src/components/LocalVideo.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LocalVideo.js","sourceRoot":"","sources":["../../src/components/LocalVideo.tsx"],"names":[],"mappings":";AAOA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGhD,MAAM,qBAAqB,GAAkB,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;AAEnE;;;GAGG;AACH,MAAM,UAAU,GAMZ,CAAC,EACH,KAAK,EACL,QAAQ,EACR,IAAI,EACJ,SAAS,EACT,YAAY,EACZ,WAAW,EACX,SAAS,EACT,KAAK,EACL,OAAO,EACP,aAAa,GACd,EAAE,EAAE;IACH,MAAM,gBAAgB,GAAG,KAAK,CAAC,QAAQ,IAAI,QAAQ,CAAC;IACpD,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC;IAExC,OAAO,CACL,KAAC,aAAa,IACZ,QAAQ,EAAE,KAAK,CAAC,YAAY,IAAI,qBAAqB,EACrD,QAAQ,EAAE,gBAAgB,EAC1B,IAAI,EAAE,YAAY,EAClB,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,SAAS,EACpB,YAAY,EAAE,YAAY,EAC1B,QAAQ,EAAE,KAAK,CAAC,QAAQ,EACxB,oBAAoB,EAAE,KAAK,CAAC,oBAAoB,EAChD,sBAAsB,EAAE,KAAK,CAAC,sBAAsB,EACpD,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,OAAO,EAChB,aAAa,EAAE,aAAa,GAC5B,CACH,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,UAAU,CAAC"}
@@ -1,14 +1,8 @@
1
1
  import type { PropsWithChildren, ReactNode } from 'react';
2
2
  /**
3
- * Wraps a visual that contains a local HTML5 `<video>` and adds a click-to-play
4
- * overlay (same affordance as external YouTube/Vimeo embeds).
5
- *
6
- * Prefer built-in click-to-play on ImageKit/local players when rendering through
7
- * core-ui. Use this only when wrapping an arbitrary tree that already mounts a
8
- * `<video>` (e.g. site-specific cards).
9
- *
10
- * Poster/chrome stay visible with a wait cursor until the video fires `playing`.
11
- * Do not wrap external embeds — they already render their own overlay.
3
+ * Wraps an arbitrary tree that already mounts an HTML5 `<video>` with click-to-play
4
+ * chrome. CMS local files rendered through `Visual` are mute-loop heroes only —
5
+ * use YouTube or Vimeo for click-to-play. Do not wrap external embeds.
12
6
  */
13
7
  export declare function LocalVideoPlayOverlay({ children, label, className, playButton, }: PropsWithChildren<{
14
8
  /** Accessible name for the play control */
@@ -1 +1 @@
1
- {"version":3,"file":"LocalVideoPlayOverlay.d.ts","sourceRoot":"","sources":["../../src/components/LocalVideoPlayOverlay.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAK1D;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CAAC,EACpC,QAAQ,EACR,KAAK,EACL,SAAS,EACT,UAAU,GACX,EAAE,iBAAiB,CAAC;IACnB,2CAA2C;IAC3C,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,SAAS,CAAC;CACxB,CAAC,+BA+CD"}
1
+ {"version":3,"file":"LocalVideoPlayOverlay.d.ts","sourceRoot":"","sources":["../../src/components/LocalVideoPlayOverlay.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAK1D;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,EACpC,QAAQ,EACR,KAAK,EACL,SAAS,EACT,UAAU,GACX,EAAE,iBAAiB,CAAC;IACnB,2CAA2C;IAC3C,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,SAAS,CAAC;CACxB,CAAC,+BA+CD"}
@@ -4,15 +4,9 @@ import { useCallback, useRef, useState } from 'react';
4
4
  import { cn } from '../utils/cn';
5
5
  import { LocalVideoPlayChrome } from './LocalVideoPlayChrome';
6
6
  /**
7
- * Wraps a visual that contains a local HTML5 `<video>` and adds a click-to-play
8
- * overlay (same affordance as external YouTube/Vimeo embeds).
9
- *
10
- * Prefer built-in click-to-play on ImageKit/local players when rendering through
11
- * core-ui. Use this only when wrapping an arbitrary tree that already mounts a
12
- * `<video>` (e.g. site-specific cards).
13
- *
14
- * Poster/chrome stay visible with a wait cursor until the video fires `playing`.
15
- * Do not wrap external embeds — they already render their own overlay.
7
+ * Wraps an arbitrary tree that already mounts an HTML5 `<video>` with click-to-play
8
+ * chrome. CMS local files rendered through `Visual` are mute-loop heroes only —
9
+ * use YouTube or Vimeo for click-to-play. Do not wrap external embeds.
16
10
  */
17
11
  export function LocalVideoPlayOverlay({ children, label, className, playButton, }) {
18
12
  const ref = useRef(null);
@@ -1 +1 @@
1
- {"version":3,"file":"LocalVideoPlayOverlay.js","sourceRoot":"","sources":["../../src/components/LocalVideoPlayOverlay.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAGb,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACtD,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D;;;;;;;;;;GAUG;AACH,MAAM,UAAU,qBAAqB,CAAC,EACpC,QAAQ,EACR,KAAK,EACL,SAAS,EACT,UAAU,GAMV;IACA,MAAM,GAAG,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IACzC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9C,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE9C,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE;QAClC,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;QAClD,IAAI,CAAC,KAAK;YAAE,OAAO;QAEnB,UAAU,CAAC,IAAI,CAAC,CAAC;QAEjB,MAAM,SAAS,GAAG,GAAG,EAAE;YACrB,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;YACtB,UAAU,CAAC,IAAI,CAAC,CAAC;YACjB,UAAU,CAAC,KAAK,CAAC,CAAC;YAClB,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC;QACF,MAAM,OAAO,GAAG,GAAG,EAAE;YACnB,UAAU,CAAC,KAAK,CAAC,CAAC;YAClB,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC;QACF,MAAM,OAAO,GAAG,GAAG,EAAE;YACnB,KAAK,CAAC,mBAAmB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;YAChD,KAAK,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC9C,CAAC,CAAC;QAEF,KAAK,CAAC,gBAAgB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAC7C,KAAK,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACzC,KAAK,KAAK,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE;YAC3B,UAAU,CAAC,KAAK,CAAC,CAAC;YAClB,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC,CAAC;IACL,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,CACL,eAAK,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,UAAU,EAAE,SAAS,CAAC,aAChD,QAAQ,EACR,CAAC,OAAO,IAAI,CACX,KAAC,oBAAoB,IACnB,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,eAAe,KAAK,EAAE,EAChE,MAAM,EAAE,UAAU,EAClB,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,OAAO,GAChB,CACH,IACG,CACP,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"LocalVideoPlayOverlay.js","sourceRoot":"","sources":["../../src/components/LocalVideoPlayOverlay.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAGb,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACtD,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CAAC,EACpC,QAAQ,EACR,KAAK,EACL,SAAS,EACT,UAAU,GAMV;IACA,MAAM,GAAG,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IACzC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9C,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE9C,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE;QAClC,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;QAClD,IAAI,CAAC,KAAK;YAAE,OAAO;QAEnB,UAAU,CAAC,IAAI,CAAC,CAAC;QAEjB,MAAM,SAAS,GAAG,GAAG,EAAE;YACrB,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;YACtB,UAAU,CAAC,IAAI,CAAC,CAAC;YACjB,UAAU,CAAC,KAAK,CAAC,CAAC;YAClB,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC;QACF,MAAM,OAAO,GAAG,GAAG,EAAE;YACnB,UAAU,CAAC,KAAK,CAAC,CAAC;YAClB,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC;QACF,MAAM,OAAO,GAAG,GAAG,EAAE;YACnB,KAAK,CAAC,mBAAmB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;YAChD,KAAK,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC9C,CAAC,CAAC;QAEF,KAAK,CAAC,gBAAgB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAC7C,KAAK,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACzC,KAAK,KAAK,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE;YAC3B,UAAU,CAAC,KAAK,CAAC,CAAC;YAClB,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC,CAAC;IACL,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,CACL,eAAK,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,UAAU,EAAE,SAAS,CAAC,aAChD,QAAQ,EACR,CAAC,OAAO,IAAI,CACX,KAAC,oBAAoB,IACnB,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,eAAe,KAAK,EAAE,EAChE,MAAM,EAAE,UAAU,EAClB,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,OAAO,GAChB,CACH,IACG,CACP,CAAC;AACJ,CAAC"}
@@ -1,9 +1,12 @@
1
1
  import { type IAnalyticsContext, type IVisual, type IVisualCommon, type IVisualSizes } from '@se-studio/core-data-types';
2
2
  import type { PlaceholderValue } from 'next/dist/shared/lib/get-img-props';
3
3
  import type { CSSProperties, ReactNode } from 'react';
4
- /** Tailwind classes for sub-pixel video fix: oversize and shift so thin black lines are clipped by container.
5
- * Only for cover/fill placements — never use when `dontCrop` (editorial content must show full frame). */
4
+ /** Tailwind classes for opt-in sub-pixel overscan: oversize and shift so thin lines are clipped.
5
+ * Cover/fill only — never use when `dontCrop` (editorial content must show full frame).
6
+ * `HeroLoopVideo` does not add its own overflow clip; the parent must clip. */
6
7
  export declare const CONTAINED_VIDEO_CLASSES = "rounded-[1px] w-[calc(100%+4px)] h-[calc(100%+4px)] -translate-x-[2px] translate-y-[2px]";
8
+ /** Default cover/fill video: fill the box without overscan. */
9
+ export declare const COVER_VIDEO_CLASSES = "rounded-[1px] block w-full h-full";
7
10
  /** Editorial / content video: natural aspect, no cover crop. */
8
11
  export declare const CONTENT_VIDEO_CLASSES = "rounded-[1px] block w-full h-auto max-w-full";
9
12
  /**
@@ -11,6 +14,17 @@ export declare const CONTENT_VIDEO_CLASSES = "rounded-[1px] block w-full h-auto
11
14
  * Prefer explicit `dontCrop`; also treat `object-fit: contain` as full-frame.
12
15
  */
13
16
  export declare function shouldShowFullFrameVideo(dontCrop?: boolean | null, objectFit?: CSSProperties['objectFit']): boolean;
17
+ /**
18
+ * Layout classes for native video. Overscan is opt-in and never applied to full-frame.
19
+ * When `edgeOverscan` is true, the element is 4px larger than the box. Mute-loop
20
+ * `HeroLoopVideo` does not add `overflow-clip`. Use `contained` when an ancestor
21
+ * already clips (`ContainedVisual` / `ResponsiveVisual`). Bare `<Visual edgeOverscan>`
22
+ * will bleed 2px unless the caller clips.
23
+ */
24
+ export declare function videoFrameClasses(options: {
25
+ showFullFrame: boolean;
26
+ edgeOverscan?: boolean;
27
+ }): string;
14
28
  export type IVisualProps = {
15
29
  className?: string;
16
30
  style?: Omit<CSSProperties, 'objectFit' | 'objectPosition'>;
@@ -23,8 +37,20 @@ export type IVisualProps = {
23
37
  fetchPriority?: 'high' | 'low' | undefined;
24
38
  visualSizes?: IVisualSizes;
25
39
  fullPlayer?: boolean;
26
- /** When true, the visual is in a clipping container (e.g. ResponsiveVisual); native video gets sub-pixel fix styles. */
40
+ /**
41
+ * When true, the visual is already in a clipping container (`ContainedVisual` /
42
+ * `ResponsiveVisual`). Mute-loop `HeroLoopVideo` never self-clips; this flag is
43
+ * for callers that need to know a parent already uses `overflow-clip`.
44
+ */
27
45
  contained?: boolean;
46
+ /**
47
+ * Cover/fill only: oversize the video by 2px each side so a parent clip can hide
48
+ * sub-pixel decoder hairlines. Ignored when the video is full-frame (`dontCrop`).
49
+ * Default off. **Parent must clip** (`overflow-clip` / radius). Hero loops do not
50
+ * add `overflow-clip` themselves — use `ContainedVisual` / `ResponsiveVisual`, or
51
+ * wrap the visual. Do not pass this on a bare `Visual` unless that parent clips.
52
+ */
53
+ edgeOverscan?: boolean;
28
54
  analyticsContext?: IAnalyticsContext;
29
55
  componentLabel?: string | null;
30
56
  /** Optional custom play button content for external video (YouTube/Vimeo). Rendered instead of default when provided. */
@@ -1 +1 @@
1
- {"version":3,"file":"Visual.d.ts","sourceRoot":"","sources":["../../src/components/Visual.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,iBAAiB,EACtB,KAAK,OAAO,EACZ,KAAK,aAAa,EAClB,KAAK,YAAY,EAElB,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEtD;0GAC0G;AAC1G,eAAO,MAAM,uBAAuB,6FACwD,CAAC;AAE7F,gEAAgE;AAChE,eAAO,MAAM,qBAAqB,iDAAiD,CAAC;AAEpF;;;GAGG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,CAAC,EAAE,OAAO,GAAG,IAAI,EACzB,SAAS,CAAC,EAAE,aAAa,CAAC,WAAW,CAAC,GACrC,OAAO,CAET;AAED,MAAM,MAAM,YAAY,GAAG;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,IAAI,CAAC,aAAa,EAAE,WAAW,GAAG,gBAAgB,CAAC,CAAC;IAC5D,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAAC;IACvC,aAAa,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS,CAAC;IAC3C,WAAW,CAAC,EAAE,YAAY,CAAC;IAC3B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,wHAAwH;IACxH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,gBAAgB,CAAC,EAAE,iBAAiB,CAAC;IACrC,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,yHAAyH;IACzH,uBAAuB,CAAC,EAAE,SAAS,CAAC;CACrC,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,YAAY,GAAG;IACvC,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAwBF,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,eAAe,CAAC,GACrE,IAAI,CAAC,aAAa,EAAE,WAAW,GAAG,gBAAgB,CAAC,CAarD;AAED,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,MAAM,GAEX;IAAE,aAAa,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS,CAAC;IAAC,OAAO,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAAA;CAAE,GACpF,SAAS,CAKZ;AAMD,wBAAgB,gCAAgC,CAAC,MAAM,CAAC,EAAE,OAAO,GAAG,aAAa,GAAG,SAAS,CAO5F"}
1
+ {"version":3,"file":"Visual.d.ts","sourceRoot":"","sources":["../../src/components/Visual.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,iBAAiB,EACtB,KAAK,OAAO,EACZ,KAAK,aAAa,EAClB,KAAK,YAAY,EAElB,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEtD;;+EAE+E;AAC/E,eAAO,MAAM,uBAAuB,6FACwD,CAAC;AAE7F,+DAA+D;AAC/D,eAAO,MAAM,mBAAmB,sCAAsC,CAAC;AAEvE,gEAAgE;AAChE,eAAO,MAAM,qBAAqB,iDAAiD,CAAC;AAEpF;;;GAGG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,CAAC,EAAE,OAAO,GAAG,IAAI,EACzB,SAAS,CAAC,EAAE,aAAa,CAAC,WAAW,CAAC,GACrC,OAAO,CAET;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE;IACzC,aAAa,EAAE,OAAO,CAAC;IACvB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,GAAG,MAAM,CAQT;AAED,MAAM,MAAM,YAAY,GAAG;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,IAAI,CAAC,aAAa,EAAE,WAAW,GAAG,gBAAgB,CAAC,CAAC;IAC5D,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAAC;IACvC,aAAa,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS,CAAC;IAC3C,WAAW,CAAC,EAAE,YAAY,CAAC;IAC3B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;OAIG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,gBAAgB,CAAC,EAAE,iBAAiB,CAAC;IACrC,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,yHAAyH;IACzH,uBAAuB,CAAC,EAAE,SAAS,CAAC;CACrC,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,YAAY,GAAG;IACvC,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAwBF,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,eAAe,CAAC,GACrE,IAAI,CAAC,aAAa,EAAE,WAAW,GAAG,gBAAgB,CAAC,CAarD;AAED,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,MAAM,GAEX;IAAE,aAAa,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS,CAAC;IAAC,OAAO,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAAA;CAAE,GACpF,SAAS,CAKZ;AAMD,wBAAgB,gCAAgC,CAAC,MAAM,CAAC,EAAE,OAAO,GAAG,aAAa,GAAG,SAAS,CAO5F"}
@@ -1,7 +1,10 @@
1
1
  import { getVisualWidthPercent, } from '@se-studio/core-data-types';
2
- /** Tailwind classes for sub-pixel video fix: oversize and shift so thin black lines are clipped by container.
3
- * Only for cover/fill placements — never use when `dontCrop` (editorial content must show full frame). */
2
+ /** Tailwind classes for opt-in sub-pixel overscan: oversize and shift so thin lines are clipped.
3
+ * Cover/fill only — never use when `dontCrop` (editorial content must show full frame).
4
+ * `HeroLoopVideo` does not add its own overflow clip; the parent must clip. */
4
5
  export const CONTAINED_VIDEO_CLASSES = 'rounded-[1px] w-[calc(100%+4px)] h-[calc(100%+4px)] -translate-x-[2px] translate-y-[2px]';
6
+ /** Default cover/fill video: fill the box without overscan. */
7
+ export const COVER_VIDEO_CLASSES = 'rounded-[1px] block w-full h-full';
5
8
  /** Editorial / content video: natural aspect, no cover crop. */
6
9
  export const CONTENT_VIDEO_CLASSES = 'rounded-[1px] block w-full h-auto max-w-full';
7
10
  /**
@@ -11,6 +14,22 @@ export const CONTENT_VIDEO_CLASSES = 'rounded-[1px] block w-full h-auto max-w-fu
11
14
  export function shouldShowFullFrameVideo(dontCrop, objectFit) {
12
15
  return !!dontCrop || objectFit === 'contain';
13
16
  }
17
+ /**
18
+ * Layout classes for native video. Overscan is opt-in and never applied to full-frame.
19
+ * When `edgeOverscan` is true, the element is 4px larger than the box. Mute-loop
20
+ * `HeroLoopVideo` does not add `overflow-clip`. Use `contained` when an ancestor
21
+ * already clips (`ContainedVisual` / `ResponsiveVisual`). Bare `<Visual edgeOverscan>`
22
+ * will bleed 2px unless the caller clips.
23
+ */
24
+ export function videoFrameClasses(options) {
25
+ if (options.showFullFrame) {
26
+ return CONTENT_VIDEO_CLASSES;
27
+ }
28
+ if (options.edgeOverscan) {
29
+ return CONTAINED_VIDEO_CLASSES;
30
+ }
31
+ return COVER_VIDEO_CLASSES;
32
+ }
14
33
  function calculateVertical(position) {
15
34
  switch (position) {
16
35
  case 'Bottom':
@@ -1 +1 @@
1
- {"version":3,"file":"Visual.js","sourceRoot":"","sources":["../../src/components/Visual.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,GAOtB,MAAM,4BAA4B,CAAC;AAIpC;0GAC0G;AAC1G,MAAM,CAAC,MAAM,uBAAuB,GAClC,0FAA0F,CAAC;AAE7F,gEAAgE;AAChE,MAAM,CAAC,MAAM,qBAAqB,GAAG,8CAA8C,CAAC;AAEpF;;;GAGG;AACH,MAAM,UAAU,wBAAwB,CACtC,QAAyB,EACzB,SAAsC;IAEtC,OAAO,CAAC,CAAC,QAAQ,IAAI,SAAS,KAAK,SAAS,CAAC;AAC/C,CAAC;AA2BD,SAAS,iBAAiB,CAAC,QAA0B;IACnD,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,QAAQ;YACX,OAAO,QAAQ,CAAC;QAClB,KAAK,KAAK;YACR,OAAO,KAAK,CAAC;QACf;YACE,OAAO,QAAQ,CAAC;IACpB,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB,CAAC,QAA4B;IACvD,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,MAAM;YACT,OAAO,MAAM,CAAC;QAChB,KAAK,OAAO;YACV,OAAO,OAAO,CAAC;QACjB;YACE,OAAO,QAAQ,CAAC;IACpB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,OAAsE;IAEtE,MAAM,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IAE3E,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;IAClC,CAAC;IAED,OAAO;QACL,SAAS,EAAE,OAAO;QAClB,cAAc,EAAE,GAAG,mBAAmB,CACpC,sBAAsB,CACvB,IAAI,iBAAiB,CAAC,oBAAoB,CAAC,EAAE;KAC/C,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,KAAa;IAIb,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;QAChB,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;IACrD,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,yBAAyB,CAAC,MAAgB;IACjD,OAAO,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,gCAAgC,CAAC,MAAgB;IAC/D,MAAM,YAAY,GAAG,yBAAyB,CAAC,MAAM,CAAC,CAAC;IACvD,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,EAAE,eAAe,EAAE,GAAG,YAAY,GAAG,EAAmB,CAAC;AAClE,CAAC"}
1
+ {"version":3,"file":"Visual.js","sourceRoot":"","sources":["../../src/components/Visual.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,GAOtB,MAAM,4BAA4B,CAAC;AAIpC;;+EAE+E;AAC/E,MAAM,CAAC,MAAM,uBAAuB,GAClC,0FAA0F,CAAC;AAE7F,+DAA+D;AAC/D,MAAM,CAAC,MAAM,mBAAmB,GAAG,mCAAmC,CAAC;AAEvE,gEAAgE;AAChE,MAAM,CAAC,MAAM,qBAAqB,GAAG,8CAA8C,CAAC;AAEpF;;;GAGG;AACH,MAAM,UAAU,wBAAwB,CACtC,QAAyB,EACzB,SAAsC;IAEtC,OAAO,CAAC,CAAC,QAAQ,IAAI,SAAS,KAAK,SAAS,CAAC;AAC/C,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAGjC;IACC,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;QAC1B,OAAO,qBAAqB,CAAC;IAC/B,CAAC;IACD,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;QACzB,OAAO,uBAAuB,CAAC;IACjC,CAAC;IACD,OAAO,mBAAmB,CAAC;AAC7B,CAAC;AAuCD,SAAS,iBAAiB,CAAC,QAA0B;IACnD,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,QAAQ;YACX,OAAO,QAAQ,CAAC;QAClB,KAAK,KAAK;YACR,OAAO,KAAK,CAAC;QACf;YACE,OAAO,QAAQ,CAAC;IACpB,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB,CAAC,QAA4B;IACvD,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,MAAM;YACT,OAAO,MAAM,CAAC;QAChB,KAAK,OAAO;YACV,OAAO,OAAO,CAAC;QACjB;YACE,OAAO,QAAQ,CAAC;IACpB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,OAAsE;IAEtE,MAAM,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IAE3E,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;IAClC,CAAC;IAED,OAAO;QACL,SAAS,EAAE,OAAO;QAClB,cAAc,EAAE,GAAG,mBAAmB,CACpC,sBAAsB,CACvB,IAAI,iBAAiB,CAAC,oBAAoB,CAAC,EAAE;KAC/C,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,KAAa;IAIb,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;QAChB,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;IACrD,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,yBAAyB,CAAC,MAAgB;IACjD,OAAO,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,gCAAgC,CAAC,MAAgB;IAC/D,MAAM,YAAY,GAAG,yBAAyB,CAAC,MAAM,CAAC,CAAC;IACvD,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,EAAE,eAAe,EAAE,GAAG,YAAY,GAAG,EAAmB,CAAC;AAClE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"VisualComponent.d.ts","sourceRoot":"","sources":["../../src/components/VisualComponent.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAoB,MAAM,4BAA4B,CAAC;AAC5E,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAS/B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAU7C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2EG;AACH,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,MAAM,EAAE,OAAO,CAAA;CAAE,GAAG,YAAY,CA8J/D,CAAC"}
1
+ {"version":3,"file":"VisualComponent.d.ts","sourceRoot":"","sources":["../../src/components/VisualComponent.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,OAAO,EAIb,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAQ/B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAU7C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2EG;AACH,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,MAAM,EAAE,OAAO,CAAA;CAAE,GAAG,YAAY,CAmK/D,CAAC"}