@blocklet/pages-kit 0.2.451 → 0.2.453

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.
@@ -3,6 +3,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.LanguageField = void 0;
7
- var LanguageField_1 = require("./LanguageField");
8
- Object.defineProperty(exports, "LanguageField", { enumerable: true, get: function () { return __importDefault(LanguageField_1).default; } });
6
+ exports.ResponsiveImage = exports.LanguageField = void 0;
7
+ const ResponsiveImage_1 = __importDefault(require("../../components/ResponsiveImage"));
8
+ exports.ResponsiveImage = ResponsiveImage_1.default;
9
+ const LanguageField_1 = __importDefault(require("./LanguageField"));
10
+ exports.LanguageField = LanguageField_1.default;
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+ var __rest = (this && this.__rest) || function (s, e) {
3
+ var t = {};
4
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
5
+ t[p] = s[p];
6
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
7
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
8
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
9
+ t[p[i]] = s[p[i]];
10
+ }
11
+ return t;
12
+ };
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ exports.default = ResponsiveImage;
15
+ const jsx_runtime_1 = require("react/jsx-runtime");
16
+ const Theme_1 = require("@arcblock/ux/lib/Theme");
17
+ const material_1 = require("@mui/material");
18
+ function ResponsiveImage(_a) {
19
+ var { src, sizesAttr, quality = 90, sx, alt } = _a, props = __rest(_a, ["src", "sizesAttr", "quality", "sx", "alt"]);
20
+ const theme = (0, Theme_1.useTheme)();
21
+ const breakpoints = theme.breakpoints.values;
22
+ // Generate srcset based on each breakpoint width
23
+ const generateSrcSet = (baseUrl, breakpointWidths) => {
24
+ var _a;
25
+ // Check if URL already has query parameters
26
+ if (baseUrl.includes('?')) {
27
+ return '';
28
+ }
29
+ // Check file extension
30
+ const fileExtension = (_a = baseUrl.split('.').pop()) === null || _a === void 0 ? void 0 : _a.toLowerCase();
31
+ const supportedExtensions = ['png', 'jpg', 'jpeg', 'webp', 'gif'];
32
+ if (!fileExtension || !supportedExtensions.includes(fileExtension)) {
33
+ return '';
34
+ }
35
+ // Get unique widths and their 2x versions
36
+ const widths = new Set(Object.values(breakpointWidths)
37
+ .flatMap((width) => [width, width * 2])
38
+ .sort((a, b) => a - b));
39
+ return Array.from(widths)
40
+ .map((width) => {
41
+ const resizeParams = `?imageFilter=resize&w=${Math.round(width)}&q=${quality}&f=webp`;
42
+ return `${baseUrl}${resizeParams} ${width}w`;
43
+ })
44
+ .join(', ');
45
+ };
46
+ // Generate sizes attribute based on breakpoint widths
47
+ const generateSizes = (breakpointWidths) => {
48
+ if (!breakpointWidths) {
49
+ return '';
50
+ }
51
+ const entries = Object.entries(breakpointWidths);
52
+ return entries
53
+ .sort(([a], [b]) => breakpoints[a] - breakpoints[b])
54
+ .map(([breakpoint, width], index) => {
55
+ // Check if breakpoint exists in theme breakpoints
56
+ if (!(breakpoint in breakpoints)) {
57
+ return null;
58
+ }
59
+ if (index === entries.length - 1) {
60
+ return `${width}px`;
61
+ }
62
+ return `(max-width: ${breakpoints[breakpoint]}px) ${width}px`;
63
+ })
64
+ .filter((size) => size !== null)
65
+ .join(', ');
66
+ };
67
+ return ((0, jsx_runtime_1.jsx)(material_1.Box, Object.assign({ component: "img", src: src, srcSet: generateSrcSet(src, sizesAttr), sizes: generateSizes(sizesAttr), alt: alt !== null && alt !== void 0 ? alt : '', loading: "lazy", sx: sx }, props)));
68
+ }
@@ -17,8 +17,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
17
17
  return (mod && mod.__esModule) ? mod : { "default": mod };
18
18
  };
19
19
  Object.defineProperty(exports, "__esModule", { value: true });
20
- exports.CustomComponentRenderer = void 0;
20
+ exports.ResponsiveImage = exports.CustomComponentRenderer = void 0;
21
21
  require("../utils/inject-global-components");
22
22
  var CustomComponentRenderer_1 = require("./CustomComponentRenderer");
23
23
  Object.defineProperty(exports, "CustomComponentRenderer", { enumerable: true, get: function () { return __importDefault(CustomComponentRenderer_1).default; } });
24
24
  __exportStar(require("./CustomComponentRenderer"), exports);
25
+ var ResponsiveImage_1 = require("./ResponsiveImage");
26
+ Object.defineProperty(exports, "ResponsiveImage", { enumerable: true, get: function () { return __importDefault(ResponsiveImage_1).default; } });