astro 5.7.5 → 5.7.6

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.
@@ -1,17 +1,10 @@
1
- [data-astro-image] {
2
- width: 100%;
3
- height: auto;
1
+ :where([data-astro-image]) {
4
2
  object-fit: var(--fit);
5
3
  object-position: var(--pos);
6
- aspect-ratio: var(--w) / var(--h);
7
4
  }
8
- /* Styles for responsive layout */
9
- [data-astro-image='responsive'] {
10
- max-width: calc(var(--w) * 1px);
11
- max-height: calc(var(--h) * 1px);
5
+ :where([data-astro-image='full-width']) {
6
+ width: 100%;
12
7
  }
13
- /* Styles for fixed layout */
14
- [data-astro-image='fixed'] {
15
- width: calc(var(--w) * 1px);
16
- height: calc(var(--h) * 1px);
8
+ :where([data-astro-image='constrained']) {
9
+ max-width: 100%;
17
10
  }
@@ -43,7 +43,7 @@ export declare const localFontFamilySchema: z.ZodObject<z.objectUtil.extendShape
43
43
 
44
44
  * If the last font in the `fallbacks` array is a [generic family name](https://developer.mozilla.org/en-US/docs/Web/CSS/font-family#generic-name), an [optimized fallback](https://developer.chrome.com/blog/font-fallbacks) using font metrics will be generated. To disable this optimization, set `optimizedFallbacks` to false.
45
45
  */
46
- fallbacks: z.ZodOptional<z.ZodArray<z.ZodString, "atleastone">>;
46
+ fallbacks: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
47
47
  /**
48
48
  * @default `true`
49
49
  *
@@ -173,7 +173,7 @@ export declare const localFontFamilySchema: z.ZodObject<z.objectUtil.extendShape
173
173
  featureSettings?: string | undefined;
174
174
  variationSettings?: string | undefined;
175
175
  }[]];
176
- fallbacks?: [string, ...string[]] | undefined;
176
+ fallbacks?: string[] | undefined;
177
177
  optimizedFallbacks?: boolean | undefined;
178
178
  }, {
179
179
  name: string;
@@ -210,7 +210,7 @@ export declare const localFontFamilySchema: z.ZodObject<z.objectUtil.extendShape
210
210
  featureSettings?: string | undefined;
211
211
  variationSettings?: string | undefined;
212
212
  }[]];
213
- fallbacks?: [string, ...string[]] | undefined;
213
+ fallbacks?: string[] | undefined;
214
214
  optimizedFallbacks?: boolean | undefined;
215
215
  }>;
216
216
  export declare const remoteFontFamilySchema: z.ZodObject<z.objectUtil.extendShape<z.objectUtil.extendShape<z.objectUtil.extendShape<{
@@ -276,7 +276,7 @@ export declare const remoteFontFamilySchema: z.ZodObject<z.objectUtil.extendShap
276
276
 
277
277
  * If the last font in the `fallbacks` array is a [generic family name](https://developer.mozilla.org/en-US/docs/Web/CSS/font-family#generic-name), an [optimized fallback](https://developer.chrome.com/blog/font-fallbacks) using font metrics will be generated. To disable this optimization, set `optimizedFallbacks` to false.
278
278
  */
279
- fallbacks: z.ZodOptional<z.ZodArray<z.ZodString, "atleastone">>;
279
+ fallbacks: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
280
280
  /**
281
281
  * @default `true`
282
282
  *
@@ -332,7 +332,7 @@ export declare const remoteFontFamilySchema: z.ZodObject<z.objectUtil.extendShap
332
332
  entrypoint: string | URL;
333
333
  config?: Record<string, any> | undefined;
334
334
  };
335
- fallbacks?: [string, ...string[]] | undefined;
335
+ fallbacks?: string[] | undefined;
336
336
  optimizedFallbacks?: boolean | undefined;
337
337
  display?: "fallback" | "auto" | "optional" | "block" | "swap" | undefined;
338
338
  unicodeRange?: [string, ...string[]] | undefined;
@@ -349,7 +349,7 @@ export declare const remoteFontFamilySchema: z.ZodObject<z.objectUtil.extendShap
349
349
  entrypoint: string | URL;
350
350
  config?: Record<string, any> | undefined;
351
351
  };
352
- fallbacks?: [string, ...string[]] | undefined;
352
+ fallbacks?: string[] | undefined;
353
353
  optimizedFallbacks?: boolean | undefined;
354
354
  display?: "fallback" | "auto" | "optional" | "block" | "swap" | undefined;
355
355
  unicodeRange?: [string, ...string[]] | undefined;
@@ -57,7 +57,7 @@ const fallbacksSchema = z.object({
57
57
 
58
58
  * If the last font in the `fallbacks` array is a [generic family name](https://developer.mozilla.org/en-US/docs/Web/CSS/font-family#generic-name), an [optimized fallback](https://developer.chrome.com/blog/font-fallbacks) using font metrics will be generated. To disable this optimization, set `optimizedFallbacks` to false.
59
59
  */
60
- fallbacks: z.array(z.string()).nonempty().optional(),
60
+ fallbacks: z.array(z.string()).optional(),
61
61
  /**
62
62
  * @default `true`
63
63
  *
@@ -3,7 +3,7 @@ export declare const DEFAULTS: {
3
3
  weights: string[];
4
4
  styles: ["normal", "italic"];
5
5
  subsets: [string, string, string, string, string, string, string];
6
- fallbacks: [string];
6
+ fallbacks: string[];
7
7
  optimizedFallbacks: true;
8
8
  };
9
9
  export declare const VIRTUAL_MODULE_ID = "virtual:astro:assets/fonts/internal";
@@ -76,9 +76,10 @@ export declare function generateFallbacksCSS({ family, fallbacks: _fallbacks, fo
76
76
  * one of the built-in providers and resolve it. The most important part is that if a
77
77
  * provider is not provided but `src` is, then it's inferred as the local provider.
78
78
  */
79
- export declare function resolveFontFamily({ family, generateNameWithHash, root, resolveMod, }: Omit<ResolveProviderOptions, 'provider'> & {
79
+ export declare function resolveFontFamily({ family, generateNameWithHash, root, resolveMod, resolveLocalEntrypoint, }: Omit<ResolveProviderOptions, 'provider'> & {
80
80
  family: FontFamily;
81
81
  generateNameWithHash: (family: FontFamily) => string;
82
+ resolveLocalEntrypoint: (url: string) => string;
82
83
  }): Promise<ResolvedFontFamily>;
83
84
  export declare function sortObjectByKey<T extends Record<string, any>>(unordered: T): T;
84
85
  /**
@@ -1,6 +1,6 @@
1
1
  import { createRequire } from "node:module";
2
2
  import { extname } from "node:path";
3
- import { fileURLToPath, pathToFileURL } from "node:url";
3
+ import { pathToFileURL } from "node:url";
4
4
  import { AstroError, AstroErrorData } from "../../core/errors/index.js";
5
5
  import { DEFAULT_FALLBACKS, FONT_TYPES, LOCAL_PROVIDER_NAME, SYSTEM_METRICS } from "./constants.js";
6
6
  import { resolveProvider } from "./providers/utils.js";
@@ -137,7 +137,7 @@ function dedupe(arr) {
137
137
  }
138
138
  function resolveVariants({
139
139
  variants,
140
- root
140
+ resolveEntrypoint: _resolveEntrypoint
141
141
  }) {
142
142
  return variants.map((variant) => ({
143
143
  ...variant,
@@ -147,7 +147,7 @@ function resolveVariants({
147
147
  const url = (isValue ? value : value.url).toString();
148
148
  const tech = isValue ? void 0 : value.tech;
149
149
  return {
150
- url: fileURLToPath(resolveEntrypoint(root, url)),
150
+ url: _resolveEntrypoint(url),
151
151
  tech
152
152
  };
153
153
  })
@@ -157,14 +157,18 @@ async function resolveFontFamily({
157
157
  family,
158
158
  generateNameWithHash,
159
159
  root,
160
- resolveMod
160
+ resolveMod,
161
+ resolveLocalEntrypoint
161
162
  }) {
162
163
  const nameWithHash = generateNameWithHash(family);
163
164
  if (family.provider === LOCAL_PROVIDER_NAME) {
164
165
  return {
165
166
  ...family,
166
167
  nameWithHash,
167
- variants: resolveVariants({ variants: family.variants, root }),
168
+ variants: resolveVariants({
169
+ variants: family.variants,
170
+ resolveEntrypoint: resolveLocalEntrypoint
171
+ }),
168
172
  fallbacks: family.fallbacks ? dedupe(family.fallbacks) : void 0
169
173
  };
170
174
  }
@@ -21,6 +21,7 @@ import { generateFallbackFontFace, readMetrics } from "./metrics.js";
21
21
  import {
22
22
  cache,
23
23
  extractFontType,
24
+ resolveEntrypoint,
24
25
  resolveFontFamily,
25
26
  sortObjectByKey,
26
27
  withoutQuotes
@@ -84,16 +85,31 @@ function fontsPlugin({ settings, sync, logger }) {
84
85
  hashToUrlMap = /* @__PURE__ */ new Map();
85
86
  resolvedMap = /* @__PURE__ */ new Map();
86
87
  const families = [];
88
+ const root = settings.config.root;
89
+ const pathsToWarn = /* @__PURE__ */ new Set();
87
90
  for (const family of settings.config.experimental.fonts) {
88
91
  families.push(
89
92
  await resolveFontFamily({
90
93
  family,
91
- root: settings.config.root,
94
+ root,
92
95
  resolveMod,
93
- generateNameWithHash: (_family) => `${withoutQuotes(_family.name)}-${h64ToString(JSON.stringify(sortObjectByKey(_family)))}`
96
+ generateNameWithHash: (_family) => `${withoutQuotes(_family.name)}-${h64ToString(JSON.stringify(sortObjectByKey(_family)))}`,
97
+ resolveLocalEntrypoint: (url) => {
98
+ const resolvedPath = fileURLToPath(resolveEntrypoint(root, url));
99
+ if (resolvedPath.startsWith(fileURLToPath(settings.config.publicDir))) {
100
+ pathsToWarn.add(resolvedPath);
101
+ }
102
+ return resolvedPath;
103
+ }
94
104
  })
95
105
  );
96
106
  }
107
+ for (const path of [...pathsToWarn]) {
108
+ logger.warn(
109
+ "assets",
110
+ `Found a local font file ${JSON.stringify(path)} in the \`public/\` folder. To avoid duplicated files in the build output, move this file into \`src/\``
111
+ );
112
+ }
97
113
  await loadFonts({
98
114
  base: baseUrl,
99
115
  families,
@@ -112,8 +112,6 @@ async function getImage(options, imageConfig) {
112
112
  if (layout !== "none") {
113
113
  resolvedOptions.style = addCSSVarsToStyle(
114
114
  {
115
- w: String(resolvedOptions.width),
116
- h: String(resolvedOptions.height),
117
115
  fit: cssFitValues.includes(resolvedOptions.fit ?? "") && resolvedOptions.fit,
118
116
  pos: resolvedOptions.position
119
117
  },
@@ -66,7 +66,7 @@ const getWidths = ({
66
66
  if (layout === "fixed") {
67
67
  return originalWidth && width > originalWidth ? [originalWidth] : [width, maxSize];
68
68
  }
69
- if (layout === "responsive") {
69
+ if (layout === "constrained") {
70
70
  return [
71
71
  // Always include the image at 1x and 2x the specified width
72
72
  width,
@@ -86,13 +86,13 @@ const getSizesAttribute = ({
86
86
  switch (layout) {
87
87
  // If screen is wider than the max size then image width is the max size,
88
88
  // otherwise it's the width of the screen
89
- case `responsive`:
89
+ case "constrained":
90
90
  return `(min-width: ${width}px) ${width}px, 100vw`;
91
91
  // Image is always the same width, whatever the size of the screen
92
- case `fixed`:
92
+ case "fixed":
93
93
  return `${width}px`;
94
94
  // Image is always the width of the screen
95
- case `full-width`:
95
+ case "full-width":
96
96
  return `100vw`;
97
97
  case "none":
98
98
  default:
@@ -5,7 +5,7 @@ export type ImageQualityPreset = 'low' | 'mid' | 'high' | 'max' | (string & {});
5
5
  export type ImageQuality = ImageQualityPreset | number;
6
6
  export type ImageInputFormat = (typeof VALID_INPUT_FORMATS)[number];
7
7
  export type ImageOutputFormat = (typeof VALID_OUTPUT_FORMATS)[number] | (string & {});
8
- export type ImageLayout = 'responsive' | 'fixed' | 'full-width' | 'none';
8
+ export type ImageLayout = 'constrained' | 'fixed' | 'full-width' | 'none';
9
9
  export type ImageFit = 'fill' | 'contain' | 'cover' | 'none' | 'scale-down' | (string & {});
10
10
  export type AssetsGlobalStaticImagesList = Map<string, {
11
11
  originalSrcPath: string | undefined;
@@ -140,15 +140,15 @@ type ImageSharedProps<T> = T & {
140
140
  /**
141
141
  * The layout type for responsive images. Requires the `experimental.responsiveImages` flag to be enabled in the Astro config.
142
142
  *
143
- * Allowed values are `responsive`, `fixed`, `full-width` or `none`. Defaults to value of `image.experimentalLayout`.
143
+ * Allowed values are `constrained`, `fixed`, `full-width` or `none`. Defaults to value of `image.experimentalLayout`.
144
144
  *
145
- * - `responsive` - The image will scale to fit the container, maintaining its aspect ratio, but will not exceed the specified dimensions.
145
+ * - `constrained` - The image will scale to fit the container, maintaining its aspect ratio, but will not exceed the specified dimensions.
146
146
  * - `fixed` - The image will maintain its original dimensions.
147
147
  * - `full-width` - The image will scale to fit the container, maintaining its aspect ratio, even if that means the image will exceed its original dimensions.
148
148
  *
149
149
  * **Example**:
150
150
  * ```astro
151
- * <Image src={...} layout="responsive" alt="..." />
151
+ * <Image src={...} layout="constrained" alt="..." />
152
152
  * ```
153
153
  */
154
154
  layout?: ImageLayout;
@@ -153,7 +153,7 @@ ${contentConfig.error.message}`);
153
153
  logger.info("Content config changed");
154
154
  shouldClear = true;
155
155
  }
156
- if (previousAstroVersion && previousAstroVersion !== "5.7.5") {
156
+ if (previousAstroVersion && previousAstroVersion !== "5.7.6") {
157
157
  logger.info("Astro version changed");
158
158
  shouldClear = true;
159
159
  }
@@ -161,8 +161,8 @@ ${contentConfig.error.message}`);
161
161
  logger.info("Clearing content store");
162
162
  this.#store.clearAll();
163
163
  }
164
- if ("5.7.5") {
165
- await this.#store.metaStore().set("astro-version", "5.7.5");
164
+ if ("5.7.6") {
165
+ await this.#store.metaStore().set("astro-version", "5.7.6");
166
166
  }
167
167
  if (currentConfigDigest) {
168
168
  await this.#store.metaStore().set("content-config-digest", currentConfigDigest);
@@ -240,7 +240,7 @@ export declare const AstroConfigSchema: z.ZodObject<{
240
240
  hostname?: string | undefined;
241
241
  pathname?: string | undefined;
242
242
  }>, "many">>;
243
- experimentalLayout: z.ZodOptional<z.ZodEnum<["responsive", "fixed", "full-width", "none"]>>;
243
+ experimentalLayout: z.ZodOptional<z.ZodEnum<["constrained", "fixed", "full-width", "none"]>>;
244
244
  experimentalObjectFit: z.ZodOptional<z.ZodString>;
245
245
  experimentalObjectPosition: z.ZodOptional<z.ZodString>;
246
246
  experimentalBreakpoints: z.ZodOptional<z.ZodArray<z.ZodNumber, "many">>;
@@ -260,7 +260,7 @@ export declare const AstroConfigSchema: z.ZodObject<{
260
260
  hostname?: string | undefined;
261
261
  pathname?: string | undefined;
262
262
  }[];
263
- experimentalLayout?: "none" | "fixed" | "responsive" | "full-width" | undefined;
263
+ experimentalLayout?: "none" | "fixed" | "constrained" | "full-width" | undefined;
264
264
  experimentalObjectFit?: string | undefined;
265
265
  experimentalObjectPosition?: string | undefined;
266
266
  experimentalBreakpoints?: number[] | undefined;
@@ -280,7 +280,7 @@ export declare const AstroConfigSchema: z.ZodObject<{
280
280
  hostname?: string | undefined;
281
281
  pathname?: string | undefined;
282
282
  }[] | undefined;
283
- experimentalLayout?: "none" | "fixed" | "responsive" | "full-width" | undefined;
283
+ experimentalLayout?: "none" | "fixed" | "constrained" | "full-width" | undefined;
284
284
  experimentalObjectFit?: string | undefined;
285
285
  experimentalObjectPosition?: string | undefined;
286
286
  experimentalBreakpoints?: number[] | undefined;
@@ -728,7 +728,7 @@ export declare const AstroConfigSchema: z.ZodObject<{
728
728
  name: z.ZodString;
729
729
  cssVariable: z.ZodString;
730
730
  }, {
731
- fallbacks: z.ZodOptional<z.ZodArray<z.ZodString, "atleastone">>;
731
+ fallbacks: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
732
732
  optimizedFallbacks: z.ZodOptional<z.ZodBoolean>;
733
733
  }>, {
734
734
  provider: z.ZodLiteral<"local">;
@@ -817,7 +817,7 @@ export declare const AstroConfigSchema: z.ZodObject<{
817
817
  featureSettings?: string | undefined;
818
818
  variationSettings?: string | undefined;
819
819
  }[]];
820
- fallbacks?: [string, ...string[]] | undefined;
820
+ fallbacks?: string[] | undefined;
821
821
  optimizedFallbacks?: boolean | undefined;
822
822
  }, {
823
823
  name: string;
@@ -854,7 +854,7 @@ export declare const AstroConfigSchema: z.ZodObject<{
854
854
  featureSettings?: string | undefined;
855
855
  variationSettings?: string | undefined;
856
856
  }[]];
857
- fallbacks?: [string, ...string[]] | undefined;
857
+ fallbacks?: string[] | undefined;
858
858
  optimizedFallbacks?: boolean | undefined;
859
859
  }>, z.ZodObject<z.objectUtil.extendShape<z.objectUtil.extendShape<z.objectUtil.extendShape<{
860
860
  name: z.ZodString;
@@ -868,7 +868,7 @@ export declare const AstroConfigSchema: z.ZodObject<{
868
868
  featureSettings: z.ZodOptional<z.ZodString>;
869
869
  variationSettings: z.ZodOptional<z.ZodString>;
870
870
  }, "style" | "weight">>, {
871
- fallbacks: z.ZodOptional<z.ZodArray<z.ZodString, "atleastone">>;
871
+ fallbacks: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
872
872
  optimizedFallbacks: z.ZodOptional<z.ZodBoolean>;
873
873
  }>, {
874
874
  provider: z.ZodObject<{
@@ -891,7 +891,7 @@ export declare const AstroConfigSchema: z.ZodObject<{
891
891
  entrypoint: string | URL;
892
892
  config?: Record<string, any> | undefined;
893
893
  };
894
- fallbacks?: [string, ...string[]] | undefined;
894
+ fallbacks?: string[] | undefined;
895
895
  optimizedFallbacks?: boolean | undefined;
896
896
  display?: "fallback" | "auto" | "optional" | "block" | "swap" | undefined;
897
897
  unicodeRange?: [string, ...string[]] | undefined;
@@ -908,7 +908,7 @@ export declare const AstroConfigSchema: z.ZodObject<{
908
908
  entrypoint: string | URL;
909
909
  config?: Record<string, any> | undefined;
910
910
  };
911
- fallbacks?: [string, ...string[]] | undefined;
911
+ fallbacks?: string[] | undefined;
912
912
  optimizedFallbacks?: boolean | undefined;
913
913
  display?: "fallback" | "auto" | "optional" | "block" | "swap" | undefined;
914
914
  unicodeRange?: [string, ...string[]] | undefined;
@@ -960,7 +960,7 @@ export declare const AstroConfigSchema: z.ZodObject<{
960
960
  featureSettings?: string | undefined;
961
961
  variationSettings?: string | undefined;
962
962
  }[]];
963
- fallbacks?: [string, ...string[]] | undefined;
963
+ fallbacks?: string[] | undefined;
964
964
  optimizedFallbacks?: boolean | undefined;
965
965
  } | {
966
966
  name: string;
@@ -969,7 +969,7 @@ export declare const AstroConfigSchema: z.ZodObject<{
969
969
  entrypoint: string | URL;
970
970
  config?: Record<string, any> | undefined;
971
971
  };
972
- fallbacks?: [string, ...string[]] | undefined;
972
+ fallbacks?: string[] | undefined;
973
973
  optimizedFallbacks?: boolean | undefined;
974
974
  display?: "fallback" | "auto" | "optional" | "block" | "swap" | undefined;
975
975
  unicodeRange?: [string, ...string[]] | undefined;
@@ -1021,7 +1021,7 @@ export declare const AstroConfigSchema: z.ZodObject<{
1021
1021
  featureSettings?: string | undefined;
1022
1022
  variationSettings?: string | undefined;
1023
1023
  }[]];
1024
- fallbacks?: [string, ...string[]] | undefined;
1024
+ fallbacks?: string[] | undefined;
1025
1025
  optimizedFallbacks?: boolean | undefined;
1026
1026
  } | {
1027
1027
  name: string;
@@ -1030,7 +1030,7 @@ export declare const AstroConfigSchema: z.ZodObject<{
1030
1030
  entrypoint: string | URL;
1031
1031
  config?: Record<string, any> | undefined;
1032
1032
  };
1033
- fallbacks?: [string, ...string[]] | undefined;
1033
+ fallbacks?: string[] | undefined;
1034
1034
  optimizedFallbacks?: boolean | undefined;
1035
1035
  display?: "fallback" | "auto" | "optional" | "block" | "swap" | undefined;
1036
1036
  unicodeRange?: [string, ...string[]] | undefined;
@@ -1106,7 +1106,7 @@ export declare const AstroConfigSchema: z.ZodObject<{
1106
1106
  hostname?: string | undefined;
1107
1107
  pathname?: string | undefined;
1108
1108
  }[];
1109
- experimentalLayout?: "none" | "fixed" | "responsive" | "full-width" | undefined;
1109
+ experimentalLayout?: "none" | "fixed" | "constrained" | "full-width" | undefined;
1110
1110
  experimentalObjectFit?: string | undefined;
1111
1111
  experimentalObjectPosition?: string | undefined;
1112
1112
  experimentalBreakpoints?: number[] | undefined;
@@ -1221,7 +1221,7 @@ export declare const AstroConfigSchema: z.ZodObject<{
1221
1221
  featureSettings?: string | undefined;
1222
1222
  variationSettings?: string | undefined;
1223
1223
  }[]];
1224
- fallbacks?: [string, ...string[]] | undefined;
1224
+ fallbacks?: string[] | undefined;
1225
1225
  optimizedFallbacks?: boolean | undefined;
1226
1226
  } | {
1227
1227
  name: string;
@@ -1230,7 +1230,7 @@ export declare const AstroConfigSchema: z.ZodObject<{
1230
1230
  entrypoint: string | URL;
1231
1231
  config?: Record<string, any> | undefined;
1232
1232
  };
1233
- fallbacks?: [string, ...string[]] | undefined;
1233
+ fallbacks?: string[] | undefined;
1234
1234
  optimizedFallbacks?: boolean | undefined;
1235
1235
  display?: "fallback" | "auto" | "optional" | "block" | "swap" | undefined;
1236
1236
  unicodeRange?: [string, ...string[]] | undefined;
@@ -1338,7 +1338,7 @@ export declare const AstroConfigSchema: z.ZodObject<{
1338
1338
  hostname?: string | undefined;
1339
1339
  pathname?: string | undefined;
1340
1340
  }[] | undefined;
1341
- experimentalLayout?: "none" | "fixed" | "responsive" | "full-width" | undefined;
1341
+ experimentalLayout?: "none" | "fixed" | "constrained" | "full-width" | undefined;
1342
1342
  experimentalObjectFit?: string | undefined;
1343
1343
  experimentalObjectPosition?: string | undefined;
1344
1344
  experimentalBreakpoints?: number[] | undefined;
@@ -1480,7 +1480,7 @@ export declare const AstroConfigSchema: z.ZodObject<{
1480
1480
  featureSettings?: string | undefined;
1481
1481
  variationSettings?: string | undefined;
1482
1482
  }[]];
1483
- fallbacks?: [string, ...string[]] | undefined;
1483
+ fallbacks?: string[] | undefined;
1484
1484
  optimizedFallbacks?: boolean | undefined;
1485
1485
  } | {
1486
1486
  name: string;
@@ -1489,7 +1489,7 @@ export declare const AstroConfigSchema: z.ZodObject<{
1489
1489
  entrypoint: string | URL;
1490
1490
  config?: Record<string, any> | undefined;
1491
1491
  };
1492
- fallbacks?: [string, ...string[]] | undefined;
1492
+ fallbacks?: string[] | undefined;
1493
1493
  optimizedFallbacks?: boolean | undefined;
1494
1494
  display?: "fallback" | "auto" | "optional" | "block" | "swap" | undefined;
1495
1495
  unicodeRange?: [string, ...string[]] | undefined;
@@ -146,7 +146,7 @@ const AstroConfigSchema = z.object({
146
146
  pathname: z.string().optional()
147
147
  })
148
148
  ).default([]),
149
- experimentalLayout: z.enum(["responsive", "fixed", "full-width", "none"]).optional(),
149
+ experimentalLayout: z.enum(["constrained", "fixed", "full-width", "none"]).optional(),
150
150
  experimentalObjectFit: z.string().optional(),
151
151
  experimentalObjectPosition: z.string().optional(),
152
152
  experimentalBreakpoints: z.array(z.number()).optional()
@@ -165,7 +165,7 @@ export declare function createRelativeSchema(cmd: string, fileProtocolRoot: stri
165
165
  hostname?: string | undefined;
166
166
  pathname?: string | undefined;
167
167
  }>, "many">>;
168
- experimentalLayout: z.ZodOptional<z.ZodEnum<["responsive", "fixed", "full-width", "none"]>>;
168
+ experimentalLayout: z.ZodOptional<z.ZodEnum<["constrained", "fixed", "full-width", "none"]>>;
169
169
  experimentalObjectFit: z.ZodOptional<z.ZodString>;
170
170
  experimentalObjectPosition: z.ZodOptional<z.ZodString>;
171
171
  experimentalBreakpoints: z.ZodOptional<z.ZodArray<z.ZodNumber, "many">>;
@@ -185,7 +185,7 @@ export declare function createRelativeSchema(cmd: string, fileProtocolRoot: stri
185
185
  hostname?: string | undefined;
186
186
  pathname?: string | undefined;
187
187
  }[];
188
- experimentalLayout?: "none" | "fixed" | "responsive" | "full-width" | undefined;
188
+ experimentalLayout?: "none" | "fixed" | "constrained" | "full-width" | undefined;
189
189
  experimentalObjectFit?: string | undefined;
190
190
  experimentalObjectPosition?: string | undefined;
191
191
  experimentalBreakpoints?: number[] | undefined;
@@ -205,7 +205,7 @@ export declare function createRelativeSchema(cmd: string, fileProtocolRoot: stri
205
205
  hostname?: string | undefined;
206
206
  pathname?: string | undefined;
207
207
  }[] | undefined;
208
- experimentalLayout?: "none" | "fixed" | "responsive" | "full-width" | undefined;
208
+ experimentalLayout?: "none" | "fixed" | "constrained" | "full-width" | undefined;
209
209
  experimentalObjectFit?: string | undefined;
210
210
  experimentalObjectPosition?: string | undefined;
211
211
  experimentalBreakpoints?: number[] | undefined;
@@ -653,7 +653,7 @@ export declare function createRelativeSchema(cmd: string, fileProtocolRoot: stri
653
653
  name: z.ZodString;
654
654
  cssVariable: z.ZodString;
655
655
  }, {
656
- fallbacks: z.ZodOptional<z.ZodArray<z.ZodString, "atleastone">>;
656
+ fallbacks: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
657
657
  optimizedFallbacks: z.ZodOptional<z.ZodBoolean>;
658
658
  }>, {
659
659
  provider: z.ZodLiteral<"local">;
@@ -742,7 +742,7 @@ export declare function createRelativeSchema(cmd: string, fileProtocolRoot: stri
742
742
  featureSettings?: string | undefined;
743
743
  variationSettings?: string | undefined;
744
744
  }[]];
745
- fallbacks?: [string, ...string[]] | undefined;
745
+ fallbacks?: string[] | undefined;
746
746
  optimizedFallbacks?: boolean | undefined;
747
747
  }, {
748
748
  name: string;
@@ -779,7 +779,7 @@ export declare function createRelativeSchema(cmd: string, fileProtocolRoot: stri
779
779
  featureSettings?: string | undefined;
780
780
  variationSettings?: string | undefined;
781
781
  }[]];
782
- fallbacks?: [string, ...string[]] | undefined;
782
+ fallbacks?: string[] | undefined;
783
783
  optimizedFallbacks?: boolean | undefined;
784
784
  }>, z.ZodObject<z.objectUtil.extendShape<z.objectUtil.extendShape<z.objectUtil.extendShape<{
785
785
  name: z.ZodString;
@@ -793,7 +793,7 @@ export declare function createRelativeSchema(cmd: string, fileProtocolRoot: stri
793
793
  featureSettings: z.ZodOptional<z.ZodString>;
794
794
  variationSettings: z.ZodOptional<z.ZodString>;
795
795
  }, "style" | "weight">>, {
796
- fallbacks: z.ZodOptional<z.ZodArray<z.ZodString, "atleastone">>;
796
+ fallbacks: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
797
797
  optimizedFallbacks: z.ZodOptional<z.ZodBoolean>;
798
798
  }>, {
799
799
  provider: z.ZodObject<{
@@ -816,7 +816,7 @@ export declare function createRelativeSchema(cmd: string, fileProtocolRoot: stri
816
816
  entrypoint: string | URL;
817
817
  config?: Record<string, any> | undefined;
818
818
  };
819
- fallbacks?: [string, ...string[]] | undefined;
819
+ fallbacks?: string[] | undefined;
820
820
  optimizedFallbacks?: boolean | undefined;
821
821
  display?: "fallback" | "auto" | "optional" | "block" | "swap" | undefined;
822
822
  unicodeRange?: [string, ...string[]] | undefined;
@@ -833,7 +833,7 @@ export declare function createRelativeSchema(cmd: string, fileProtocolRoot: stri
833
833
  entrypoint: string | URL;
834
834
  config?: Record<string, any> | undefined;
835
835
  };
836
- fallbacks?: [string, ...string[]] | undefined;
836
+ fallbacks?: string[] | undefined;
837
837
  optimizedFallbacks?: boolean | undefined;
838
838
  display?: "fallback" | "auto" | "optional" | "block" | "swap" | undefined;
839
839
  unicodeRange?: [string, ...string[]] | undefined;
@@ -885,7 +885,7 @@ export declare function createRelativeSchema(cmd: string, fileProtocolRoot: stri
885
885
  featureSettings?: string | undefined;
886
886
  variationSettings?: string | undefined;
887
887
  }[]];
888
- fallbacks?: [string, ...string[]] | undefined;
888
+ fallbacks?: string[] | undefined;
889
889
  optimizedFallbacks?: boolean | undefined;
890
890
  } | {
891
891
  name: string;
@@ -894,7 +894,7 @@ export declare function createRelativeSchema(cmd: string, fileProtocolRoot: stri
894
894
  entrypoint: string | URL;
895
895
  config?: Record<string, any> | undefined;
896
896
  };
897
- fallbacks?: [string, ...string[]] | undefined;
897
+ fallbacks?: string[] | undefined;
898
898
  optimizedFallbacks?: boolean | undefined;
899
899
  display?: "fallback" | "auto" | "optional" | "block" | "swap" | undefined;
900
900
  unicodeRange?: [string, ...string[]] | undefined;
@@ -946,7 +946,7 @@ export declare function createRelativeSchema(cmd: string, fileProtocolRoot: stri
946
946
  featureSettings?: string | undefined;
947
947
  variationSettings?: string | undefined;
948
948
  }[]];
949
- fallbacks?: [string, ...string[]] | undefined;
949
+ fallbacks?: string[] | undefined;
950
950
  optimizedFallbacks?: boolean | undefined;
951
951
  } | {
952
952
  name: string;
@@ -955,7 +955,7 @@ export declare function createRelativeSchema(cmd: string, fileProtocolRoot: stri
955
955
  entrypoint: string | URL;
956
956
  config?: Record<string, any> | undefined;
957
957
  };
958
- fallbacks?: [string, ...string[]] | undefined;
958
+ fallbacks?: string[] | undefined;
959
959
  optimizedFallbacks?: boolean | undefined;
960
960
  display?: "fallback" | "auto" | "optional" | "block" | "swap" | undefined;
961
961
  unicodeRange?: [string, ...string[]] | undefined;
@@ -1109,7 +1109,7 @@ export declare function createRelativeSchema(cmd: string, fileProtocolRoot: stri
1109
1109
  hostname?: string | undefined;
1110
1110
  pathname?: string | undefined;
1111
1111
  }[];
1112
- experimentalLayout?: "none" | "fixed" | "responsive" | "full-width" | undefined;
1112
+ experimentalLayout?: "none" | "fixed" | "constrained" | "full-width" | undefined;
1113
1113
  experimentalObjectFit?: string | undefined;
1114
1114
  experimentalObjectPosition?: string | undefined;
1115
1115
  experimentalBreakpoints?: number[] | undefined;
@@ -1224,7 +1224,7 @@ export declare function createRelativeSchema(cmd: string, fileProtocolRoot: stri
1224
1224
  featureSettings?: string | undefined;
1225
1225
  variationSettings?: string | undefined;
1226
1226
  }[]];
1227
- fallbacks?: [string, ...string[]] | undefined;
1227
+ fallbacks?: string[] | undefined;
1228
1228
  optimizedFallbacks?: boolean | undefined;
1229
1229
  } | {
1230
1230
  name: string;
@@ -1233,7 +1233,7 @@ export declare function createRelativeSchema(cmd: string, fileProtocolRoot: stri
1233
1233
  entrypoint: string | URL;
1234
1234
  config?: Record<string, any> | undefined;
1235
1235
  };
1236
- fallbacks?: [string, ...string[]] | undefined;
1236
+ fallbacks?: string[] | undefined;
1237
1237
  optimizedFallbacks?: boolean | undefined;
1238
1238
  display?: "fallback" | "auto" | "optional" | "block" | "swap" | undefined;
1239
1239
  unicodeRange?: [string, ...string[]] | undefined;
@@ -1341,7 +1341,7 @@ export declare function createRelativeSchema(cmd: string, fileProtocolRoot: stri
1341
1341
  hostname?: string | undefined;
1342
1342
  pathname?: string | undefined;
1343
1343
  }[] | undefined;
1344
- experimentalLayout?: "none" | "fixed" | "responsive" | "full-width" | undefined;
1344
+ experimentalLayout?: "none" | "fixed" | "constrained" | "full-width" | undefined;
1345
1345
  experimentalObjectFit?: string | undefined;
1346
1346
  experimentalObjectPosition?: string | undefined;
1347
1347
  experimentalBreakpoints?: number[] | undefined;
@@ -1483,7 +1483,7 @@ export declare function createRelativeSchema(cmd: string, fileProtocolRoot: stri
1483
1483
  featureSettings?: string | undefined;
1484
1484
  variationSettings?: string | undefined;
1485
1485
  }[]];
1486
- fallbacks?: [string, ...string[]] | undefined;
1486
+ fallbacks?: string[] | undefined;
1487
1487
  optimizedFallbacks?: boolean | undefined;
1488
1488
  } | {
1489
1489
  name: string;
@@ -1492,7 +1492,7 @@ export declare function createRelativeSchema(cmd: string, fileProtocolRoot: stri
1492
1492
  entrypoint: string | URL;
1493
1493
  config?: Record<string, any> | undefined;
1494
1494
  };
1495
- fallbacks?: [string, ...string[]] | undefined;
1495
+ fallbacks?: string[] | undefined;
1496
1496
  optimizedFallbacks?: boolean | undefined;
1497
1497
  display?: "fallback" | "auto" | "optional" | "block" | "swap" | undefined;
1498
1498
  unicodeRange?: [string, ...string[]] | undefined;
@@ -1565,7 +1565,7 @@ export declare function createRelativeSchema(cmd: string, fileProtocolRoot: stri
1565
1565
  hostname?: string | undefined;
1566
1566
  pathname?: string | undefined;
1567
1567
  }[];
1568
- experimentalLayout?: "none" | "fixed" | "responsive" | "full-width" | undefined;
1568
+ experimentalLayout?: "none" | "fixed" | "constrained" | "full-width" | undefined;
1569
1569
  experimentalObjectFit?: string | undefined;
1570
1570
  experimentalObjectPosition?: string | undefined;
1571
1571
  experimentalBreakpoints?: number[] | undefined;
@@ -1680,7 +1680,7 @@ export declare function createRelativeSchema(cmd: string, fileProtocolRoot: stri
1680
1680
  featureSettings?: string | undefined;
1681
1681
  variationSettings?: string | undefined;
1682
1682
  }[]];
1683
- fallbacks?: [string, ...string[]] | undefined;
1683
+ fallbacks?: string[] | undefined;
1684
1684
  optimizedFallbacks?: boolean | undefined;
1685
1685
  } | {
1686
1686
  name: string;
@@ -1689,7 +1689,7 @@ export declare function createRelativeSchema(cmd: string, fileProtocolRoot: stri
1689
1689
  entrypoint: string | URL;
1690
1690
  config?: Record<string, any> | undefined;
1691
1691
  };
1692
- fallbacks?: [string, ...string[]] | undefined;
1692
+ fallbacks?: string[] | undefined;
1693
1693
  optimizedFallbacks?: boolean | undefined;
1694
1694
  display?: "fallback" | "auto" | "optional" | "block" | "swap" | undefined;
1695
1695
  unicodeRange?: [string, ...string[]] | undefined;
@@ -1797,7 +1797,7 @@ export declare function createRelativeSchema(cmd: string, fileProtocolRoot: stri
1797
1797
  hostname?: string | undefined;
1798
1798
  pathname?: string | undefined;
1799
1799
  }[] | undefined;
1800
- experimentalLayout?: "none" | "fixed" | "responsive" | "full-width" | undefined;
1800
+ experimentalLayout?: "none" | "fixed" | "constrained" | "full-width" | undefined;
1801
1801
  experimentalObjectFit?: string | undefined;
1802
1802
  experimentalObjectPosition?: string | undefined;
1803
1803
  experimentalBreakpoints?: number[] | undefined;
@@ -1939,7 +1939,7 @@ export declare function createRelativeSchema(cmd: string, fileProtocolRoot: stri
1939
1939
  featureSettings?: string | undefined;
1940
1940
  variationSettings?: string | undefined;
1941
1941
  }[]];
1942
- fallbacks?: [string, ...string[]] | undefined;
1942
+ fallbacks?: string[] | undefined;
1943
1943
  optimizedFallbacks?: boolean | undefined;
1944
1944
  } | {
1945
1945
  name: string;
@@ -1948,7 +1948,7 @@ export declare function createRelativeSchema(cmd: string, fileProtocolRoot: stri
1948
1948
  entrypoint: string | URL;
1949
1949
  config?: Record<string, any> | undefined;
1950
1950
  };
1951
- fallbacks?: [string, ...string[]] | undefined;
1951
+ fallbacks?: string[] | undefined;
1952
1952
  optimizedFallbacks?: boolean | undefined;
1953
1953
  display?: "fallback" | "auto" | "optional" | "block" | "swap" | undefined;
1954
1954
  unicodeRange?: [string, ...string[]] | undefined;
@@ -1,4 +1,4 @@
1
- const ASTRO_VERSION = "5.7.5";
1
+ const ASTRO_VERSION = "5.7.6";
2
2
  const REROUTE_DIRECTIVE_HEADER = "X-Astro-Reroute";
3
3
  const REWRITE_DIRECTIVE_HEADER_KEY = "X-Astro-Rewrite";
4
4
  const REWRITE_DIRECTIVE_HEADER_VALUE = "yes";
@@ -22,7 +22,7 @@ async function dev(inlineConfig) {
22
22
  await telemetry.record([]);
23
23
  const restart = await createContainerWithAutomaticRestart({ inlineConfig, fs });
24
24
  const logger = restart.container.logger;
25
- const currentVersion = "5.7.5";
25
+ const currentVersion = "5.7.6";
26
26
  const isPrerelease = currentVersion.includes("-");
27
27
  if (!isPrerelease) {
28
28
  try {
@@ -874,7 +874,8 @@ export declare const RedirectWithNoLocation: {
874
874
  export declare const UnsupportedExternalRedirect: {
875
875
  name: string;
876
876
  title: string;
877
- message: string;
877
+ message: (from: string, to: string) => string;
878
+ hint: string;
878
879
  };
879
880
  /**
880
881
  * @docs
@@ -305,7 +305,8 @@ const RedirectWithNoLocation = {
305
305
  const UnsupportedExternalRedirect = {
306
306
  name: "UnsupportedExternalRedirect",
307
307
  title: "Unsupported or malformed URL.",
308
- message: "An external redirect must start with http or https, and must be a valid URL."
308
+ message: (from, to) => `The destination URL in the external redirect from "${from}" to "${to}" is unsupported.`,
309
+ hint: "An external redirect must start with http or https, and must be a valid URL."
309
310
  };
310
311
  const InvalidDynamicRoute = {
311
312
  name: "InvalidDynamicRoute",
@@ -37,7 +37,7 @@ function serverStart({
37
37
  host,
38
38
  base
39
39
  }) {
40
- const version = "5.7.5";
40
+ const version = "5.7.6";
41
41
  const localPrefix = `${dim("\u2503")} Local `;
42
42
  const networkPrefix = `${dim("\u2503")} Network `;
43
43
  const emptyPrefix = " ".repeat(11);
@@ -274,7 +274,7 @@ function printHelp({
274
274
  message.push(
275
275
  linebreak(),
276
276
  ` ${bgGreen(black(` ${commandName} `))} ${green(
277
- `v${"5.7.5"}`
277
+ `v${"5.7.6"}`
278
278
  )} ${headline}`
279
279
  );
280
280
  }
@@ -237,7 +237,10 @@ function createRedirectRoutes({ settings }, routeMap) {
237
237
  destination = to.destination;
238
238
  }
239
239
  if (URL.canParse(destination) && !/^https?:\/\//.test(destination)) {
240
- throw new AstroError(UnsupportedExternalRedirect);
240
+ throw new AstroError({
241
+ ...UnsupportedExternalRedirect,
242
+ message: UnsupportedExternalRedirect.message(from, destination)
243
+ });
241
244
  }
242
245
  routes.push({
243
246
  type: "redirect",
@@ -1246,7 +1246,7 @@ export interface ViteUserConfig extends OriginalViteUserConfig {
1246
1246
  * @description
1247
1247
  * The default layout type for responsive images. Can be overridden by the `layout` prop on the image component.
1248
1248
  * Requires the `experimental.responsiveImages` flag to be enabled.
1249
- * - `responsive` - The image will scale to fit the container, maintaining its aspect ratio, but will not exceed the specified dimensions.
1249
+ * - `constrained` - The image will scale to fit the container, maintaining its aspect ratio, but will not exceed the specified dimensions.
1250
1250
  * - `fixed` - The image will maintain its original dimensions.
1251
1251
  * - `full-width` - The image will scale to fit the container, maintaining its aspect ratio.
1252
1252
  */
@@ -1982,14 +1982,14 @@ export interface ViteUserConfig extends OriginalViteUserConfig {
1982
1982
  * }
1983
1983
  * ```
1984
1984
  *
1985
- * When enabled, you can pass a `layout` props to any `<Image />` or `<Picture />` component to create a responsive image. When a layout is set, images have automatically generated `srcset` and `sizes` attributes based on the image's dimensions and the layout type. Images with `responsive` and `full-width` layouts will have styles applied to ensure they resize according to their container.
1985
+ * When enabled, you can pass a `layout` props to any `<Image />` or `<Picture />` component to create a responsive image. When a layout is set, images have automatically generated `srcset` and `sizes` attributes based on the image's dimensions and the layout type. Images with `constrained` and `full-width` layouts will have styles applied to ensure they resize according to their container.
1986
1986
  *
1987
1987
  * ```astro title=MyComponent.astro
1988
1988
  * ---
1989
1989
  * import { Image, Picture } from 'astro:assets';
1990
1990
  * import myImage from '../assets/my_image.png';
1991
1991
  * ---
1992
- * <Image src={myImage} alt="A description of my image." layout='responsive' width={800} height={600} />
1992
+ * <Image src={myImage} alt="A description of my image." layout='constrained' width={800} height={600} />
1993
1993
  * <Picture src={myImage} alt="A description of my image." layout='full-width' formats={['avif', 'webp', 'jpeg']} />
1994
1994
  * ```
1995
1995
  * This `<Image />` component will generate the following HTML output:
@@ -2011,31 +2011,28 @@ export interface ViteUserConfig extends OriginalViteUserConfig {
2011
2011
  * fetchpriority="auto"
2012
2012
  * width="800"
2013
2013
  * height="600"
2014
- * style="--w: 800; --h: 600; --fit: cover; --pos: center;"
2015
- * data-astro-image="responsive"
2014
+ * style="--fit: cover; --pos: center;"
2015
+ * data-astro-image="constrained"
2016
2016
  * >
2017
2017
  * ```
2018
2018
  *
2019
2019
  * The following styles are applied to ensure the images resize correctly:
2020
2020
  *
2021
2021
  * ```css title="Responsive Image Styles"
2022
- * [data-astro-image] {
2023
- * width: 100%;
2024
- * height: auto;
2025
- * object-fit: var(--fit);
2026
- * object-position: var(--pos);
2027
- * aspect-ratio: var(--w) / var(--h)
2022
+ *
2023
+ * :where([data-astro-image]) {
2024
+ * object-fit: var(--fit);
2025
+ * object-position: var(--pos);
2028
2026
  * }
2029
2027
  *
2030
- * [data-astro-image=responsive] {
2031
- * max-width: calc(var(--w) * 1px);
2032
- * max-height: calc(var(--h) * 1px)
2028
+ * :where([data-astro-image='full-width']) {
2029
+ * width: 100%;
2033
2030
  * }
2034
2031
  *
2035
- * [data-astro-image=fixed] {
2036
- * width: calc(var(--w) * 1px);
2037
- * height: calc(var(--h) * 1px)
2032
+ * :where([data-astro-image='constrained']) {
2033
+ * max-width: 100%;
2038
2034
  * }
2035
+ *
2039
2036
  * ```
2040
2037
  * You can enable responsive images for all `<Image />` and `<Picture />` components by setting `image.experimentalLayout` with a default value. This can be overridden by the `layout` prop on each component.
2041
2038
  *
@@ -2044,7 +2041,7 @@ export interface ViteUserConfig extends OriginalViteUserConfig {
2044
2041
  * {
2045
2042
  * image: {
2046
2043
  * // Used for all `<Image />` and `<Picture />` components unless overridden
2047
- * experimentalLayout: 'responsive',
2044
+ * experimentalLayout: 'constrained',
2048
2045
  * },
2049
2046
  * experimental: {
2050
2047
  * responsiveImages: true,
@@ -2069,12 +2066,12 @@ export interface ViteUserConfig extends OriginalViteUserConfig {
2069
2066
  *
2070
2067
  * These are additional properties available to the `<Image />` and `<Picture />` components when responsive images are enabled:
2071
2068
  *
2072
- * - `layout`: The layout type for the image. Can be `responsive`, `fixed`, `full-width` or `none`. Defaults to value of `image.experimentalLayout`.
2069
+ * - `layout`: The layout type for the image. Can be `constrained`, `fixed`, `full-width` or `none`. Defaults to value of `image.experimentalLayout`.
2073
2070
  * - `fit`: Defines how the image should be cropped if the aspect ratio is changed. Values match those of CSS `object-fit`. Defaults to `cover`, or the value of `image.experimentalObjectFit` if set.
2074
2071
  * - `position`: Defines the position of the image crop if the aspect ratio is changed. Values match those of CSS `object-position`. Defaults to `center`, or the value of `image.experimentalObjectPosition` if set.
2075
2072
  * - `priority`: If set, eagerly loads the image. Otherwise images will be lazy-loaded. Use this for your largest above-the-fold image. Defaults to `false`.
2076
2073
  *
2077
- * The `widths` and `sizes` attributes are automatically generated based on the image's dimensions and the layout type, and in most cases should not be set manually. The generated `sizes` attribute for `responsive` and `full-width` images
2074
+ * The `widths` and `sizes` attributes are automatically generated based on the image's dimensions and the layout type, and in most cases should not be set manually. The generated `sizes` attribute for `constrained` and `full-width` images
2078
2075
  * is based on the assumption that the image is displayed at close to the full width of the screen when the viewport is smaller than the image's width. If it is significantly different (e.g. if it's in a multi-column layout on small screens) you may need to adjust the `sizes` attribute manually for best results.
2079
2076
  *
2080
2077
  * The `densities` attribute is not compatible with responsive images and will be ignored if set.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "astro",
3
- "version": "5.7.5",
3
+ "version": "5.7.6",
4
4
  "description": "Astro is a modern site builder with web best practices, performance, and DX front-of-mind.",
5
5
  "type": "module",
6
6
  "author": "withastro",