@se-studio/core-ui 1.30.1 → 1.30.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +8 -0
- package/dist/components/PictureComponent.d.ts.map +1 -1
- package/dist/components/PictureComponent.js +10 -1
- package/dist/components/PictureComponent.js.map +1 -1
- package/dist/utils/visualSizes.d.ts +1 -0
- package/dist/utils/visualSizes.d.ts.map +1 -1
- package/dist/utils/visualSizes.js +1 -0
- package/dist/utils/visualSizes.js.map +1 -1
- package/docs/llms.md +4 -2
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
# @se-studio/core-ui
|
|
2
2
|
|
|
3
|
+
## 1.30.2
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- c3f9c5e: GIF origin bandwidth: default Images API `fm=webp` + `w≤1280` for `image/gif` on images/assets.ctfassets.net, with `gifTransform: 'off'` opt-out. PictureComponent sets `unoptimized` for GIF mime so next/image does not srcSet the GIF master. Blur enricher skips GIFs. Custom loaders must preserve `fm`.
|
|
8
|
+
- Updated dependencies [c3f9c5e]
|
|
9
|
+
- @se-studio/contentful-rest-api@1.28.0
|
|
10
|
+
|
|
3
11
|
## 1.30.1
|
|
4
12
|
|
|
5
13
|
### Patch Changes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PictureComponent.d.ts","sourceRoot":"","sources":["../../src/components/PictureComponent.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAmC,MAAM,4BAA4B,CAAC;AAE5F,OAAO,EAAwB,KAAK,WAAW,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"PictureComponent.d.ts","sourceRoot":"","sources":["../../src/components/PictureComponent.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAmC,MAAM,4BAA4B,CAAC;AAE5F,OAAO,EAAwB,KAAK,WAAW,EAAE,MAAM,UAAU,CAAC;AA+BlE,iBAAS,gBAAgB,CAAC,EACxB,KAAK,EACL,KAAK,EACL,WAAW,EACX,WAAW,EACX,WAAW,EACX,GAAG,IAAI,EACR,EAAE;IAAE,KAAK,EAAE,QAAQ,CAAA;CAAE,GAAG,IAAI,CAAC,WAAW,EAAE,WAAW,GAAG,gBAAgB,CAAC,+BAoBzE;eACc,gBAAgB"}
|
|
@@ -20,10 +20,19 @@ function calculateSizes(visualSizes) {
|
|
|
20
20
|
}
|
|
21
21
|
return result.join(',');
|
|
22
22
|
}
|
|
23
|
+
function isGifPicture(image) {
|
|
24
|
+
const mime = image.mimeType?.toLowerCase() ?? '';
|
|
25
|
+
if (mime === 'image/gif') {
|
|
26
|
+
return true;
|
|
27
|
+
}
|
|
28
|
+
const path = image.src.split('?')[0]?.toLowerCase() ?? '';
|
|
29
|
+
return path.endsWith('.gif');
|
|
30
|
+
}
|
|
23
31
|
function PictureComponent({ image, style, visualSizes, placeholder, blurDataURL, ...rest }) {
|
|
24
32
|
const cropProperties = calculateCropDetails(image);
|
|
25
33
|
const useImageBlur = Boolean(image.blurDataURL) && placeholder === undefined && blurDataURL === undefined;
|
|
26
|
-
|
|
34
|
+
const gifUnoptimized = isGifPicture(image);
|
|
35
|
+
return (_jsx(Image, { src: image.src, width: image.width, height: image.height, style: { ...style, ...cropProperties }, alt: image.description ?? image.name, sizes: calculateSizes(visualSizes), placeholder: useImageBlur ? 'blur' : placeholder, blurDataURL: useImageBlur ? image.blurDataURL : blurDataURL, ...rest, unoptimized: gifUnoptimized || undefined }));
|
|
27
36
|
}
|
|
28
37
|
export default PictureComponent;
|
|
29
38
|
//# sourceMappingURL=PictureComponent.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PictureComponent.js","sourceRoot":"","sources":["../../src/components/PictureComponent.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAoC,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC5F,OAAO,KAAK,MAAM,YAAY,CAAC;AAC/B,OAAO,EAAE,oBAAoB,EAAoB,MAAM,UAAU,CAAC;AAElE,SAAS,cAAc,CAAC,WAA0B;IAChD,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,MAAM,MAAM,GACV,YAAY,CAAC,WAAW,CAAC;QACvB,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC;SACrD,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,eAAe,QAAQ,OAAO,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;IAC7E,IAAI,WAAW,CAAC,WAAW,EAAE,CAAC;QAC5B,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IACvC,CAAC;SAAM,IAAI,WAAW,CAAC,aAAa,EAAE,CAAC;QACrC,MAAM,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,aAAa,IAAI,CAAC,CAAC;IAChD,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACvB,CAAC;IAED,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC1B,CAAC;AAED,SAAS,gBAAgB,CAAC,EACxB,KAAK,EACL,KAAK,EACL,WAAW,EACX,WAAW,EACX,WAAW,EACX,GAAG,IAAI,EACiE;IACxE,MAAM,cAAc,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;IACnD,MAAM,YAAY,GAChB,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,WAAW,KAAK,SAAS,IAAI,WAAW,KAAK,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"PictureComponent.js","sourceRoot":"","sources":["../../src/components/PictureComponent.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAoC,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC5F,OAAO,KAAK,MAAM,YAAY,CAAC;AAC/B,OAAO,EAAE,oBAAoB,EAAoB,MAAM,UAAU,CAAC;AAElE,SAAS,cAAc,CAAC,WAA0B;IAChD,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,MAAM,MAAM,GACV,YAAY,CAAC,WAAW,CAAC;QACvB,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC;SACrD,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,eAAe,QAAQ,OAAO,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;IAC7E,IAAI,WAAW,CAAC,WAAW,EAAE,CAAC;QAC5B,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IACvC,CAAC;SAAM,IAAI,WAAW,CAAC,aAAa,EAAE,CAAC;QACrC,MAAM,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,aAAa,IAAI,CAAC,CAAC;IAChD,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACvB,CAAC;IAED,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC1B,CAAC;AAED,SAAS,YAAY,CAAC,KAAe;IACnC,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;IACjD,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;IAC1D,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AAC/B,CAAC;AAED,SAAS,gBAAgB,CAAC,EACxB,KAAK,EACL,KAAK,EACL,WAAW,EACX,WAAW,EACX,WAAW,EACX,GAAG,IAAI,EACiE;IACxE,MAAM,cAAc,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;IACnD,MAAM,YAAY,GAChB,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,WAAW,KAAK,SAAS,IAAI,WAAW,KAAK,SAAS,CAAC;IACvF,MAAM,cAAc,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IAE3C,OAAO,CACL,KAAC,KAAK,IACJ,GAAG,EAAE,KAAK,CAAC,GAAG,EACd,KAAK,EAAE,KAAK,CAAC,KAAK,EAClB,MAAM,EAAE,KAAK,CAAC,MAAM,EACpB,KAAK,EAAE,EAAE,GAAG,KAAK,EAAE,GAAG,cAAc,EAAE,EACtC,GAAG,EAAE,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,IAAI,EACpC,KAAK,EAAE,cAAc,CAAC,WAAW,CAAC,EAClC,WAAW,EAAE,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,EAChD,WAAW,EAAE,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,KACvD,IAAI,EACR,WAAW,EAAE,cAAc,IAAI,SAAS,GACxC,CACH,CAAC;AACJ,CAAC;AACD,eAAe,gBAAgB,CAAC"}
|
|
@@ -19,6 +19,7 @@ export declare function heroVisualSizes(): IVisualSizes;
|
|
|
19
19
|
/**
|
|
20
20
|
* Card-grid `visualSizes`: mobile column vw, laptop column vw capped at the
|
|
21
21
|
* content-max px slot, desktop px cap (`contentMax / columns`).
|
|
22
|
+
* Use this (not `calculateVisualSizes(1)`) for Explore-style in-card GIFs.
|
|
22
23
|
*/
|
|
23
24
|
export declare function cardVisualSizes({ columns, contentMax, mobileColumns, breakpoints, }: CardVisualSizesOptions): IVisualSizes;
|
|
24
25
|
//# sourceMappingURL=visualSizes.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"visualSizes.d.ts","sourceRoot":"","sources":["../../src/utils/visualSizes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE/D,eAAO,MAAM,mBAAmB,OAAO,CAAC;AAExC,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,CAItE,CAAC;AAEF,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACtD;AAED,wBAAgB,oBAAoB,CAClC,YAAY,EAAE,MAAM,EACpB,gBAAgB,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EAClD,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC,GAC7C,YAAY,CAsBd;AAaD,iEAAiE;AACjE,wBAAgB,eAAe,IAAI,YAAY,CAE9C;AAED
|
|
1
|
+
{"version":3,"file":"visualSizes.d.ts","sourceRoot":"","sources":["../../src/utils/visualSizes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE/D,eAAO,MAAM,mBAAmB,OAAO,CAAC;AAExC,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,CAItE,CAAC;AAEF,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACtD;AAED,wBAAgB,oBAAoB,CAClC,YAAY,EAAE,MAAM,EACpB,gBAAgB,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EAClD,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC,GAC7C,YAAY,CAsBd;AAaD,iEAAiE;AACjE,wBAAgB,eAAe,IAAI,YAAY,CAE9C;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,EAC9B,OAAO,EACP,UAAgC,EAChC,aAAiB,EACjB,WAAiC,GAClC,EAAE,sBAAsB,GAAG,YAAY,CA+BvC"}
|
|
@@ -39,6 +39,7 @@ export function heroVisualSizes() {
|
|
|
39
39
|
/**
|
|
40
40
|
* Card-grid `visualSizes`: mobile column vw, laptop column vw capped at the
|
|
41
41
|
* content-max px slot, desktop px cap (`contentMax / columns`).
|
|
42
|
+
* Use this (not `calculateVisualSizes(1)`) for Explore-style in-card GIFs.
|
|
42
43
|
*/
|
|
43
44
|
export function cardVisualSizes({ columns, contentMax = DEFAULT_CONTENT_MAX, mobileColumns = 1, breakpoints = DEFAULT_BREAKPOINTS, }) {
|
|
44
45
|
if (!(columns >= 1)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"visualSizes.js","sourceRoot":"","sources":["../../src/utils/visualSizes.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,CAAC;AAExC,MAAM,CAAC,MAAM,mBAAmB,GAA2C;IACzE,MAAM,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE;IAC3B,MAAM,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE;IAC5B,OAAO,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE;CAC9B,CAAC;AASF,MAAM,UAAU,oBAAoB,CAClC,YAAoB,EACpB,gBAAkD,EAClD,KAA8C;IAE9C,MAAM,cAAc,GAAG,KAAK,IAAI,mBAAmB,CAAC;IAEpD,MAAM,WAAW,GAAiB;QAChC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,GAAG,CAAC,IAAI;QAClD,WAAW,EAAE,gBAAgB;YAC3B,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE;gBACrD,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;gBAClC,IAAI,CAAC,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;oBACjC,MAAM,IAAI,KAAK,CAAC,QAAQ,IAAI,mDAAmD,CAAC,CAAC;gBACnF,CAAC;gBACD,OAAO;oBACL,QAAQ,EAAE,IAAI,CAAC,UAAU;oBACzB,UAAU,EAAE,KAAK;oBACjB,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;oBAC3C,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC,IAAI;iBACrC,CAAC;YACJ,CAAC,CAAC;YACJ,CAAC,CAAC,SAAS;KACd,CAAC;IAEF,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,SAAS,iBAAiB,CACxB,WAAmD,EACnD,IAAY;IAEZ,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IAC/B,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CAAC,QAAQ,IAAI,6BAA6B,CAAC,CAAC;IAC7D,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,iEAAiE;AACjE,MAAM,UAAU,eAAe;IAC7B,OAAO,oBAAoB,CAAC,CAAC,CAAC,CAAC;AACjC,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"visualSizes.js","sourceRoot":"","sources":["../../src/utils/visualSizes.ts"],"names":[],"mappings":"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"}
|
package/docs/llms.md
CHANGED
|
@@ -116,9 +116,11 @@ import { ResponsiveVisual, ContainedVisual } from '@se-studio/core-ui';
|
|
|
116
116
|
<ResponsiveVisual visual={responsiveVisual} className="w-full" />
|
|
117
117
|
```
|
|
118
118
|
|
|
119
|
-
Keep the default `next/image` loader. Set `images.minimumCacheTTL: 2_678_400` (31 days) in the app `next.config`. Raster CMS pictures already have Contentful Images API `w`/`fm`/`q` on `src` from `@se-studio/contentful-rest-api`.
|
|
119
|
+
Keep the default `next/image` loader. Set `images.minimumCacheTTL: 2_678_400` (31 days) in the app `next.config`. Raster CMS pictures already have Contentful Images API `w`/`fm`/`q` on `src` from `@se-studio/contentful-rest-api`. GIF pictures use origin `fm=webp` and `PictureComponent` sets `unoptimized` so Next does not srcSet a GIF master.
|
|
120
120
|
|
|
121
|
-
Pass `visualSizes` on every `Visual` / `ResponsiveVisual` with images. Use `cardVisualSizes({ columns, mobileColumns })` for card grids (match the real column counts), `heroVisualSizes()` for full-bleed (`defaultSize` `100vw`, no breakpoints), and `calculateVisualSizes(...)` for other vw ratios.
|
|
121
|
+
Pass `visualSizes` on every `Visual` / `ResponsiveVisual` with images. Use `cardVisualSizes({ columns, mobileColumns })` for card grids (match the real column counts), `heroVisualSizes()` for full-bleed (`defaultSize` `100vw`, no breakpoints), and `calculateVisualSizes(...)` for other vw ratios. **Never `calculateVisualSizes(1)` for Explore-style / in-card GIFs** — that tells the optimizer the image is full viewport and inflates GIF/WebP requests. Use `cardVisualSizes` (or a matching column ratio) instead.
|
|
122
|
+
|
|
123
|
+
If a site already uses a custom `next/image` loader that rewrites `w`, **keep the existing `fm` query param**. Stripping `fm=webp` from GIF origins fetches the GIF master.
|
|
122
124
|
|
|
123
125
|
## TrackedLink and dest `asChild`
|
|
124
126
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@se-studio/core-ui",
|
|
3
|
-
"version": "1.30.
|
|
3
|
+
"version": "1.30.2",
|
|
4
4
|
"description": "Shared React UI component library with Tailwind CSS v4 for SE Studio applications",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -76,7 +76,7 @@
|
|
|
76
76
|
"@contentful/rich-text-react-renderer": "^16.2.2",
|
|
77
77
|
"@contentful/rich-text-types": "^17.2.7",
|
|
78
78
|
"@radix-ui/react-slot": "1.3.3",
|
|
79
|
-
"@se-studio/contentful-rest-api": "1.
|
|
79
|
+
"@se-studio/contentful-rest-api": "1.28.0",
|
|
80
80
|
"@se-studio/core-data-types": "1.13.5",
|
|
81
81
|
"@types/mustache": "4.2.6",
|
|
82
82
|
"@vimeo/player": "^2.30.4",
|