tw-next-image 1.0.0-beta.0 → 1.0.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 (49) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/LICENSE.md +16 -0
  3. package/README.md +75 -4
  4. package/dist/index.d.ts +2 -2
  5. package/dist/index.d.ts.map +1 -1
  6. package/dist/index.js +1 -1
  7. package/dist/index.js.map +1 -1
  8. package/dist/infer-sizes.d.ts.map +1 -1
  9. package/dist/infer-sizes.js +9 -10
  10. package/dist/infer-sizes.js.map +1 -1
  11. package/dist/internal/aspect-ratio.d.ts.map +1 -1
  12. package/dist/internal/aspect-ratio.js +19 -10
  13. package/dist/internal/aspect-ratio.js.map +1 -1
  14. package/dist/internal/class-names.d.ts +3 -1
  15. package/dist/internal/class-names.d.ts.map +1 -1
  16. package/dist/internal/class-names.js +17 -3
  17. package/dist/internal/class-names.js.map +1 -1
  18. package/dist/internal/constants.d.ts +2 -0
  19. package/dist/internal/constants.d.ts.map +1 -0
  20. package/dist/internal/constants.js +2 -0
  21. package/dist/internal/constants.js.map +1 -0
  22. package/dist/internal/css-length.js +4 -4
  23. package/dist/internal/css-length.js.map +1 -1
  24. package/dist/internal/size-info.d.ts +3 -1
  25. package/dist/internal/size-info.d.ts.map +1 -1
  26. package/dist/internal/size-info.js +3 -3
  27. package/dist/internal/size-info.js.map +1 -1
  28. package/dist/internal/tailwind-length.js +2 -2
  29. package/dist/internal/tailwind-length.js.map +1 -1
  30. package/dist/smart-image/create-smart-image.d.ts +3 -0
  31. package/dist/smart-image/create-smart-image.d.ts.map +1 -0
  32. package/dist/smart-image/create-smart-image.js +53 -0
  33. package/dist/smart-image/create-smart-image.js.map +1 -0
  34. package/dist/smart-image/create-smart-image.types.d.ts +11 -0
  35. package/dist/smart-image/create-smart-image.types.d.ts.map +1 -0
  36. package/dist/smart-image/create-smart-image.types.js +2 -0
  37. package/dist/smart-image/create-smart-image.types.js.map +1 -0
  38. package/dist/smart-image/index.d.ts +2 -0
  39. package/dist/smart-image/index.d.ts.map +1 -1
  40. package/dist/smart-image/index.js +1 -0
  41. package/dist/smart-image/index.js.map +1 -1
  42. package/dist/smart-image/smart-image.d.ts +1 -1
  43. package/dist/smart-image/smart-image.d.ts.map +1 -1
  44. package/dist/smart-image/smart-image.js +4 -25
  45. package/dist/smart-image/smart-image.js.map +1 -1
  46. package/dist/types.d.ts +0 -1
  47. package/dist/types.d.ts.map +1 -1
  48. package/package.json +5 -5
  49. package/LICENSE +0 -21
package/CHANGELOG.md ADDED
@@ -0,0 +1,25 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/), and this project adheres to
6
+ [Semantic Versioning](https://semver.org/).
7
+
8
+ ## [1.0.0] - 2026-01-02
9
+
10
+ Features:
11
+
12
+ - Supports all Tailwind sizing utilities: `w-*`, `h-*`, `size-*`, `max-w-*`, `max-h-*`
13
+ - Handles responsive variants (`sm:`, `md:`, `lg:`, `xl:`, `2xl:`)
14
+ - Parses arbitrary values (`w-[300px]`, `h-[50vh]`)
15
+ - Infers aspect ratio from static image imports
16
+ - Custom spacing and breakpoint configuration
17
+
18
+ ### Added
19
+
20
+ - `SmartImage` component: Tailwind-first Next.js image with automatic `sizes` inference
21
+ - `createSmartImage` factory: Create custom SmartImage with your own `tailwind-merge` config
22
+ - `inferImageSizes` function: Standalone sizes inference from Tailwind classes
23
+ - `DEFAULT_BREAKPOINTS`: Tailwind v4 breakpoint configuration
24
+ - Standalone export path `tw-next-image/infer-sizes` for React-free usage
25
+ - Full TypeScript support with exported types
package/LICENSE.md ADDED
@@ -0,0 +1,16 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 prb
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
6
+ documentation files (the "Software"), to deal in the Software without restriction, including without limitation the
7
+ rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit
8
+ persons to whom the Software is furnished to do so, subject to the following conditions:
9
+
10
+ The above copyright notice and this permission notice shall be included in all copies or substantial portions of the
11
+ Software.
12
+
13
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
14
+ WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
15
+ COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
16
+ OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
package/README.md CHANGED
@@ -1,16 +1,62 @@
1
1
  # tw-next-image
2
2
 
3
+ [![npm version](https://img.shields.io/npm/v/tw-next-image)](https://www.npmjs.com/package/tw-next-image)
4
+ [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](./LICENSE)
5
+
3
6
  Tailwind-first Next.js image component with automatic `sizes` inference.
4
7
 
5
8
  See [DOCS.md](./DOCS.md) for full examples and API reference.
6
9
 
7
- ## Install
10
+ ## Why
11
+
12
+ The `next/image` component requires a [`sizes`][mdn-sizes] attribute to serve optimally-sized images. Without it,
13
+ Next.js defaults to `100vw`—meaning a 64px thumbnail requests the same massive image as a full-width hero. This wastes
14
+ bandwidth and hurts Core Web Vitals.
15
+
16
+ The problem: crafting `sizes` by hand is tedious. Every responsive image needs a media query string that mirrors your
17
+ CSS breakpoints:
18
+
19
+ ```tsx
20
+ // Manual sizes for a responsive image 😴
21
+ <Image src="/avatar.webp" sizes="(min-width: 1024px) 120px, 100px" className="size-25 lg:size-30" />
22
+ ```
23
+
24
+ **`tw-next-image` eliminates this busywork.** It parses your Tailwind classes and infers the correct `sizes`
25
+ automatically:
26
+
27
+ ```tsx
28
+ // Same result, zero mental overhead 🎉
29
+ <SmartImage src="/avatar.webp" className="size-25 lg:size-30" />
30
+ // → sizes="(min-width: 1024px) 120px, 100px"
31
+ ```
32
+
33
+ <details>
34
+ <summary>Further reading</summary>
35
+
36
+ - [next/image responsive behavior discussion](https://github.com/vercel/next.js/discussions/25564)
37
+ - [Tailwind + next/image integration request](https://github.com/vercel/next.js/discussions/38945)
38
+ - [Inefficient srcset generation issue](https://github.com/vercel/next.js/issues/27547)
39
+ - [Deep dive: the sizes attribute in Next.js](https://morganfeeney.com/posts/sizes-attribute-nextjs-image)
40
+
41
+ </details>
42
+
43
+ [mdn-sizes]: https://developer.mozilla.org/en-US/docs/Web/API/HTMLImageElement/sizes
44
+
45
+ ## 📦 Install
8
46
 
9
47
  ```bash
48
+ npm install tw-next-image
49
+ # or
50
+ pnpm add tw-next-image
51
+ # or
52
+ yarn add tw-next-image
53
+ # or
10
54
  bun add tw-next-image
11
55
  ```
12
56
 
13
- ## Quick Start
57
+ **Requirements**: Next.js ≥13, React ≥18
58
+
59
+ ## 🚀 Quick Start
14
60
 
15
61
  ```tsx
16
62
  import { SmartImage } from "tw-next-image";
@@ -27,6 +73,31 @@ import { SmartImage } from "tw-next-image";
27
73
  `SmartImage` wraps `next/image` with `fill` mode—ensure the wrapper has height via `size-*`, `h-*`, `aspect-*`, or
28
74
  inline styles.
29
75
 
30
- ## License
76
+ ## 🔧 Custom `tailwind-merge`
77
+
78
+ If your app uses a custom `tailwind-merge` config, inject it via `createSmartImage`:
79
+
80
+ ```tsx
81
+ import { createSmartImage } from "tw-next-image";
82
+ import { customTwMerge } from "./tailwind/merge";
83
+
84
+ export const SmartImage = createSmartImage({ cx: customTwMerge });
85
+ ```
86
+
87
+ ## 📖 Standalone Inference
88
+
89
+ Use `inferImageSizes` without the React component:
90
+
91
+ ```tsx
92
+ import { inferImageSizes } from "tw-next-image/infer-sizes";
93
+
94
+ inferImageSizes({ className: "w-75" });
95
+ // → "300px"
96
+
97
+ inferImageSizes({ className: "size-25 lg:size-30" });
98
+ // → "(min-width: 1024px) 120px, 100px"
99
+ ```
100
+
101
+ ## 📄 License
31
102
 
32
- MIT
103
+ [MIT](./LICENSE) © [Paul Razvan Berg](https://github.com/PaulRBerg)
package/dist/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  export { type Breakpoint, type BreakpointConfig, DEFAULT_BREAKPOINTS } from "./breakpoints.js";
2
2
  export { inferImageSizes } from "./infer-sizes.js";
3
- export type { SmartImageProps } from "./smart-image/index.js";
4
- export { SmartImage } from "./smart-image/index.js";
3
+ export type { CreateSmartImageOptions, SmartImageClassNameFn, SmartImageComponent, SmartImageProps, } from "./smart-image/index.js";
4
+ export { createSmartImage, SmartImage } from "./smart-image/index.js";
5
5
  export type { InferSizesInput, InferSizesStyle, SizeInfo, StaticImageData } from "./types.js";
6
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC/F,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,YAAY,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAG9D,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC/F,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,YAAY,EACV,uBAAuB,EACvB,qBAAqB,EACrB,mBAAmB,EACnB,eAAe,GAChB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACtE,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC"}
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
1
  export { DEFAULT_BREAKPOINTS } from "./breakpoints.js";
2
2
  export { inferImageSizes } from "./infer-sizes.js";
3
- export { SmartImage } from "./smart-image/index.js";
3
+ export { createSmartImage, SmartImage } from "./smart-image/index.js";
4
4
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAA0C,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC/F,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAInD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAA0C,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC/F,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAQnD,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"infer-sizes.d.ts","sourceRoot":"","sources":["../src/infer-sizes.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,eAAe,EAAY,MAAM,YAAY,CAAC;AA6E5D,wBAAgB,eAAe,CAAC,EAC9B,SAAS,EACT,KAAK,EACL,KAAK,EACL,aAAuC,EACvC,GAAG,EACH,WAAiC,EACjC,aAAkB,GACnB,EAAE,eAAe,GAAG,MAAM,GAAG,IAAI,CAqBjC"}
1
+ {"version":3,"file":"infer-sizes.d.ts","sourceRoot":"","sources":["../src/infer-sizes.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,eAAe,EAAY,MAAM,YAAY,CAAC;AA6E5D,wBAAgB,eAAe,CAAC,EAC9B,SAAS,EACT,KAAK,EACL,KAAK,EACL,aAAuC,EACvC,GAAG,EACH,WAAiC,EACjC,aAAkB,GACnB,EAAE,eAAe,GAAG,MAAM,GAAG,IAAI,CAwBjC"}
@@ -3,7 +3,7 @@ import { getAspectRatioFromClassName, getSrcAspectRatio } from "./internal/aspec
3
3
  import { formatPx, minPx, parsePxNumber } from "./internal/css-length.js";
4
4
  import { mergeStyleIntoSizeInfo, parseSizeInfoByBreakpoint } from "./internal/size-info.js";
5
5
  const DEFAULT_BASE_SPACING_PX = 4;
6
- function resolveWidthCandidate(info, aspectRatio) {
6
+ function computeResolvedWidth(info, aspectRatio) {
7
7
  const fromWidthOrMax = (() => {
8
8
  if (info.width && info.maxWidth) {
9
9
  return minPx(info.width, info.maxWidth) ?? `min(${info.width}, ${info.maxWidth})`;
@@ -37,29 +37,28 @@ function buildBreakpointConditions(byBreakpoint, aspectRatio, breakpoints) {
37
37
  const conditions = [];
38
38
  const orderedBreakpoints = Object.entries(breakpoints).sort((a, b) => b[1] - a[1]);
39
39
  for (const [breakpoint, minWidthPx] of orderedBreakpoints) {
40
- const info = byBreakpoint[breakpoint];
41
- if (!info) {
40
+ const sizeInfo = byBreakpoint[breakpoint];
41
+ if (!sizeInfo) {
42
42
  continue;
43
43
  }
44
- const resolved = resolveWidthCandidate(info, aspectRatio);
45
- if (!resolved) {
44
+ const resolvedWidth = computeResolvedWidth(sizeInfo, aspectRatio);
45
+ if (!resolvedWidth) {
46
46
  continue;
47
47
  }
48
- conditions.push(`(min-width: ${minWidthPx}px) ${resolved}`);
48
+ conditions.push(`(min-width: ${minWidthPx}px) ${resolvedWidth}`);
49
49
  }
50
50
  return conditions;
51
51
  }
52
52
  export function inferImageSizes({ className, style, ratio, baseSpacingPx = DEFAULT_BASE_SPACING_PX, src, breakpoints = DEFAULT_BREAKPOINTS, customSpacing = {}, }) {
53
53
  const byBreakpoint = parseSizeInfoByBreakpoint(className, baseSpacingPx, breakpoints, customSpacing);
54
- const baseInfo = byBreakpoint.base ?? {};
55
- byBreakpoint.base = baseInfo;
54
+ const baseInfo = { ...(byBreakpoint.base ?? {}) };
56
55
  mergeStyleIntoSizeInfo(baseInfo, style);
57
56
  const aspectRatio = ratio ?? getSrcAspectRatio(src) ?? getAspectRatioFromClassName(className);
58
- const resolvedBase = resolveWidthCandidate(baseInfo, aspectRatio);
57
+ const resolvedBase = computeResolvedWidth(baseInfo, aspectRatio);
59
58
  if (!resolvedBase) {
60
59
  return null;
61
60
  }
62
- const conditions = buildBreakpointConditions(byBreakpoint, aspectRatio, breakpoints);
61
+ const conditions = buildBreakpointConditions({ ...byBreakpoint, base: baseInfo }, aspectRatio, breakpoints);
63
62
  return conditions.length === 0 ? resolvedBase : `${conditions.join(", ")}, ${resolvedBase}`;
64
63
  }
65
64
  //# sourceMappingURL=infer-sizes.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"infer-sizes.js","sourceRoot":"","sources":["../src/infer-sizes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"infer-sizes.js","sourceRoot":"","sources":["../src/infer-sizes.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"aspect-ratio.d.ts","sourceRoot":"","sources":["../../src/internal/aspect-ratio.ts"],"names":[],"mappings":"AAkBA,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAU7D;AA8CD,wBAAgB,2BAA2B,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAcxF"}
1
+ {"version":3,"file":"aspect-ratio.d.ts","sourceRoot":"","sources":["../../src/internal/aspect-ratio.ts"],"names":[],"mappings":"AAkBA,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAe7D;AAwDD,wBAAgB,2BAA2B,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAcxF"}
@@ -1,21 +1,24 @@
1
+ import { WHITESPACE_REGEX } from "./constants.js";
1
2
  import { parseVariantToken } from "./tailwind-variants.js";
2
- const WHITESPACE_REGEX = /\s+/;
3
3
  const ASPECT_FRACTION_REGEX = /^aspect-(\d+(?:\.\d+)?)\/(\d+(?:\.\d+)?)$/;
4
- const ASPECT_ARBITRARY_REGEX = /^aspect-\[(.+)\]$/;
5
- function isRecord(value) {
4
+ const ASPECT_BRACKET_REGEX = /^aspect-\[(.+)\]$/;
5
+ function isPlainObject(value) {
6
6
  return typeof value === "object" && value !== null;
7
7
  }
8
8
  function isStaticImageData(value) {
9
- if (!isRecord(value)) {
9
+ if (!isPlainObject(value)) {
10
10
  return false;
11
11
  }
12
12
  return typeof value.width === "number" && typeof value.height === "number";
13
13
  }
14
14
  export function getSrcAspectRatio(src) {
15
- if (isStaticImageData(src) && src.height !== 0) {
15
+ if (isStaticImageData(src) && src.height > 0 && src.width > 0) {
16
16
  return src.width / src.height;
17
17
  }
18
- if (isRecord(src) && isStaticImageData(src.default) && src.default.height !== 0) {
18
+ if (isPlainObject(src) &&
19
+ isStaticImageData(src.default) &&
20
+ src.default.height > 0 &&
21
+ src.default.width > 0) {
19
22
  return src.default.width / src.default.height;
20
23
  }
21
24
  return null;
@@ -31,12 +34,15 @@ function parseAspectRatioFromBaseToken(baseToken) {
31
34
  if (fractionMatch) {
32
35
  const numerator = Number(fractionMatch[1]);
33
36
  const denominator = Number(fractionMatch[2]);
34
- if (Number.isFinite(numerator) && Number.isFinite(denominator) && denominator !== 0) {
37
+ if (Number.isFinite(numerator) &&
38
+ Number.isFinite(denominator) &&
39
+ numerator > 0 &&
40
+ denominator > 0) {
35
41
  return numerator / denominator;
36
42
  }
37
43
  return null;
38
44
  }
39
- const match = ASPECT_ARBITRARY_REGEX.exec(baseToken);
45
+ const match = ASPECT_BRACKET_REGEX.exec(baseToken);
40
46
  if (!match) {
41
47
  return null;
42
48
  }
@@ -46,13 +52,16 @@ function parseAspectRatioFromBaseToken(baseToken) {
46
52
  }
47
53
  if (raw.includes("/")) {
48
54
  const [numerator, denominator] = raw.split("/", 2).map((part) => Number(part.trim()));
49
- if (Number.isFinite(numerator) && Number.isFinite(denominator) && denominator !== 0) {
55
+ if (Number.isFinite(numerator) &&
56
+ Number.isFinite(denominator) &&
57
+ numerator > 0 &&
58
+ denominator > 0) {
50
59
  return numerator / denominator;
51
60
  }
52
61
  return null;
53
62
  }
54
63
  const value = Number(raw);
55
- if (Number.isFinite(value) && value !== 0) {
64
+ if (Number.isFinite(value) && value > 0) {
56
65
  return value;
57
66
  }
58
67
  return null;
@@ -1 +1 @@
1
- {"version":3,"file":"aspect-ratio.js","sourceRoot":"","sources":["../../src/internal/aspect-ratio.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"aspect-ratio.js","sourceRoot":"","sources":["../../src/internal/aspect-ratio.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,5 @@
1
- export type ClassNameValue = string | false | null | undefined;
1
+ export type ClassNameValue = ClassNameArray | string | null | undefined | 0 | 0n | false;
2
+ type ClassNameArray = ClassNameValue[];
2
3
  export declare function cx(...values: readonly ClassNameValue[]): string;
4
+ export {};
3
5
  //# sourceMappingURL=class-names.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"class-names.d.ts","sourceRoot":"","sources":["../../src/internal/class-names.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,KAAK,GAAG,IAAI,GAAG,SAAS,CAAC;AAI/D,wBAAgB,EAAE,CAAC,GAAG,MAAM,EAAE,SAAS,cAAc,EAAE,GAAG,MAAM,CAqB/D"}
1
+ {"version":3,"file":"class-names.d.ts","sourceRoot":"","sources":["../../src/internal/class-names.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,cAAc,GAAG,cAAc,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC;AACzF,KAAK,cAAc,GAAG,cAAc,EAAE,CAAC;AAIvC,wBAAgB,EAAE,CAAC,GAAG,MAAM,EAAE,SAAS,cAAc,EAAE,GAAG,MAAM,CAU/D"}
@@ -1,11 +1,26 @@
1
+ import { WHITESPACE_REGEX } from "./constants.js";
1
2
  import { isNonEmptyString } from "./is-non-empty-string.js";
2
- const whitespaceRegex = /\s+/;
3
+ const MAX_NESTING_DEPTH = 10;
3
4
  export function cx(...values) {
4
5
  if (values.length === 0) {
5
6
  return "";
6
7
  }
7
8
  const tokens = [];
9
+ appendTokens(tokens, values, 0);
10
+ return tokens.join(" ");
11
+ }
12
+ function appendTokens(out, values, depth) {
13
+ if (depth > MAX_NESTING_DEPTH) {
14
+ return;
15
+ }
8
16
  for (const value of values) {
17
+ if (!value) {
18
+ continue;
19
+ }
20
+ if (Array.isArray(value)) {
21
+ appendTokens(out, value, depth + 1);
22
+ continue;
23
+ }
9
24
  if (!isNonEmptyString(value)) {
10
25
  continue;
11
26
  }
@@ -13,8 +28,7 @@ export function cx(...values) {
13
28
  if (!trimmed) {
14
29
  continue;
15
30
  }
16
- tokens.push(...trimmed.split(whitespaceRegex));
31
+ out.push(...trimmed.split(WHITESPACE_REGEX));
17
32
  }
18
- return tokens.join(" ");
19
33
  }
20
34
  //# sourceMappingURL=class-names.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"class-names.js","sourceRoot":"","sources":["../../src/internal/class-names.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAI5D,MAAM,eAAe,GAAG,KAAK,CAAC;AAE9B,MAAM,UAAU,EAAE,CAAC,GAAG,MAAiC;IACrD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC;YAC7B,SAAS;QACX,CAAC;QAED,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;QAC7B,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,SAAS;QACX,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC;IACjD,CAAC;IAED,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC1B,CAAC"}
1
+ {"version":3,"file":"class-names.js","sourceRoot":"","sources":["../../src/internal/class-names.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAK5D,MAAM,iBAAiB,GAAG,EAAE,CAAC;AAE7B,MAAM,UAAU,EAAE,CAAC,GAAG,MAAiC;IACrD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;IAEhC,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC1B,CAAC;AAED,SAAS,YAAY,CAAC,GAAa,EAAE,MAAiC,EAAE,KAAa;IACnF,IAAI,KAAK,GAAG,iBAAiB,EAAE,CAAC;QAC9B,OAAO;IACT,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,SAAS;QACX,CAAC;QAED,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,YAAY,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;YACpC,SAAS;QACX,CAAC;QAED,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC;YAC7B,SAAS;QACX,CAAC;QAED,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;QAC7B,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,SAAS;QACX,CAAC;QAED,GAAG,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAC/C,CAAC;AACH,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const WHITESPACE_REGEX: RegExp;
2
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/internal/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,gBAAgB,EAAE,MAAc,CAAC"}
@@ -0,0 +1,2 @@
1
+ export const WHITESPACE_REGEX = /\s+/;
2
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/internal/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,gBAAgB,GAAW,KAAK,CAAC"}
@@ -40,11 +40,11 @@ export function formatPx(value) {
40
40
  return `${String(rounded).replace(TRAILING_ZEROES_REGEX, "")}px`;
41
41
  }
42
42
  export function minPx(a, b) {
43
- const aPx = parsePxNumber(a);
44
- const bPx = parsePxNumber(b);
45
- if (aPx === null || bPx === null) {
43
+ const firstPx = parsePxNumber(a);
44
+ const secondPx = parsePxNumber(b);
45
+ if (firstPx === null || secondPx === null) {
46
46
  return null;
47
47
  }
48
- return formatPx(Math.min(aPx, bPx));
48
+ return formatPx(Math.min(firstPx, secondPx));
49
49
  }
50
50
  //# sourceMappingURL=css-length.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"css-length.js","sourceRoot":"","sources":["../../src/internal/css-length.ts"],"names":[],"mappings":"AAAA,MAAM,wBAAwB,GAAG,kEAAkE,CAAC;AACpG,MAAM,qBAAqB,GAAG,8BAA8B,CAAC;AAC7D,MAAM,aAAa,GAAG,aAAa,CAAC;AACpC,MAAM,eAAe,GAAG,qBAAqB,CAAC;AAC9C,MAAM,qBAAqB,GAAG,OAAO,CAAC;AAEtC,MAAM,UAAU,gBAAgB,CAAC,KAAc;IAC7C,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QAC1C,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,GAAG,KAAK,IAAI,CAAC;IACtB,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,IAAI,OAAO,KAAK,EAAE,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;QACzC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,wBAAwB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3C,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,IAAI,qBAAqB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACxC,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,IAAI,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAChC,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,MAAc;IAC1C,MAAM,KAAK,GAAG,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC3C,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,KAAa;IACpC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;IAChD,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,qBAAqB,EAAE,EAAE,CAAC,IAAI,CAAC;AACnE,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,CAAS,EAAE,CAAS;IACxC,MAAM,GAAG,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;IAC7B,MAAM,GAAG,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;IAC7B,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;QACjC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AACtC,CAAC"}
1
+ {"version":3,"file":"css-length.js","sourceRoot":"","sources":["../../src/internal/css-length.ts"],"names":[],"mappings":"AAAA,MAAM,wBAAwB,GAAG,kEAAkE,CAAC;AACpG,MAAM,qBAAqB,GAAG,8BAA8B,CAAC;AAC7D,MAAM,aAAa,GAAG,aAAa,CAAC;AACpC,MAAM,eAAe,GAAG,qBAAqB,CAAC;AAC9C,MAAM,qBAAqB,GAAG,OAAO,CAAC;AAEtC,MAAM,UAAU,gBAAgB,CAAC,KAAc;IAC7C,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QAC1C,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,GAAG,KAAK,IAAI,CAAC;IACtB,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,IAAI,OAAO,KAAK,EAAE,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;QACzC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,wBAAwB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3C,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,IAAI,qBAAqB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACxC,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,IAAI,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAChC,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,MAAc;IAC1C,MAAM,KAAK,GAAG,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC3C,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,KAAa;IACpC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;IAChD,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,qBAAqB,EAAE,EAAE,CAAC,IAAI,CAAC;AACnE,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,CAAS,EAAE,CAAS;IACxC,MAAM,OAAO,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;IACjC,MAAM,QAAQ,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;IAClC,IAAI,OAAO,KAAK,IAAI,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QAC1C,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;AAC/C,CAAC"}
@@ -1,5 +1,7 @@
1
1
  import type { BreakpointConfig } from "../breakpoints.js";
2
- import type { BreakpointKey, InferSizesStyle, SizeInfo } from "../types.js";
2
+ import type { InferSizesStyle, SizeInfo } from "../types.js";
3
+ type BreakpointKey = string | "base";
3
4
  export declare function parseSizeInfoByBreakpoint(className: string | undefined, baseSpacingPx: number, breakpoints: BreakpointConfig, customSpacing?: Record<string, string>): Partial<Record<BreakpointKey, SizeInfo>>;
4
5
  export declare function mergeStyleIntoSizeInfo(info: SizeInfo, style: InferSizesStyle | undefined): void;
6
+ export {};
5
7
  //# sourceMappingURL=size-info.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"size-info.d.ts","sourceRoot":"","sources":["../../src/internal/size-info.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAmD5E,wBAAgB,yBAAyB,CACvC,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE,gBAAgB,EAC7B,aAAa,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,GACzC,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC,CA6B1C;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,eAAe,GAAG,SAAS,QAsBxF"}
1
+ {"version":3,"file":"size-info.d.ts","sourceRoot":"","sources":["../../src/internal/size-info.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,KAAK,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAM7D,KAAK,aAAa,GAAG,MAAM,GAAG,MAAM,CAAC;AA+CrC,wBAAgB,yBAAyB,CACvC,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE,gBAAgB,EAC7B,aAAa,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,GACzC,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC,CA6B1C;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,eAAe,GAAG,SAAS,QAsBxF"}
@@ -1,7 +1,7 @@
1
+ import { WHITESPACE_REGEX } from "./constants.js";
1
2
  import { parseStyleLength } from "./css-length.js";
2
3
  import { parseTailwindLength } from "./tailwind-length.js";
3
4
  import { getBreakpoint, parseVariantToken } from "./tailwind-variants.js";
4
- const WHITESPACE_REGEX = /\s+/;
5
5
  const SIZE_REGEX = /^size-(.+)$/;
6
6
  const WIDTH_REGEX = /^w-(.+)$/;
7
7
  const MAX_WIDTH_REGEX = /^max-w-(.+)$/;
@@ -53,7 +53,7 @@ export function parseSizeInfoByBreakpoint(className, baseSpacingPx, breakpoints,
53
53
  const breakpoint = getBreakpoint(variants, breakpoints);
54
54
  const key = breakpoint ?? "base";
55
55
  const existing = byBreakpoint[key] ?? {};
56
- const didApply = applySizingBaseTokenToInfo({
56
+ const didApply = applySizingToken({
57
57
  baseSpacingPx,
58
58
  baseToken,
59
59
  breakpoints,
@@ -87,7 +87,7 @@ export function mergeStyleIntoSizeInfo(info, style) {
87
87
  info.maxHeight = styleMaxHeight;
88
88
  }
89
89
  }
90
- function applySizingBaseTokenToInfo({ baseSpacingPx, baseToken, breakpoints, customSpacing, info, }) {
90
+ function applySizingToken({ baseSpacingPx, baseToken, breakpoints, customSpacing, info, }) {
91
91
  for (const handler of SIZING_HANDLERS) {
92
92
  const match = handler.regex.exec(baseToken);
93
93
  if (!match) {
@@ -1 +1 @@
1
- {"version":3,"file":"size-info.js","sourceRoot":"","sources":["../../src/internal/size-info.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"size-info.js","sourceRoot":"","sources":["../../src/internal/size-info.ts"],"names":[],"mappings":"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"}
@@ -10,7 +10,7 @@ export function parseTailwindLength(raw, baseSpacingPx, breakpoints, customSpaci
10
10
  parseTailwindLengthFromFraction(raw) ??
11
11
  parseTailwindLengthFromArbitraryBrackets(raw) ??
12
12
  parseTailwindLengthFromArbitraryParens(raw) ??
13
- parseTailwindLengthFromNumber(raw, baseSpacingPx));
13
+ parseTailwindLengthFromSpacingUnit(raw, baseSpacingPx));
14
14
  }
15
15
  function parseTailwindLengthFromCustomSpacing(raw, customSpacing) {
16
16
  if (raw in customSpacing) {
@@ -83,7 +83,7 @@ function parseTailwindLengthFromArbitraryParens(raw) {
83
83
  }
84
84
  return inner;
85
85
  }
86
- function parseTailwindLengthFromNumber(raw, baseSpacingPx) {
86
+ function parseTailwindLengthFromSpacingUnit(raw, baseSpacingPx) {
87
87
  const numberValue = Number(raw);
88
88
  if (!Number.isFinite(numberValue) || numberValue < 0) {
89
89
  return null;
@@ -1 +1 @@
1
- {"version":3,"file":"tailwind-length.js","sourceRoot":"","sources":["../../src/internal/tailwind-length.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tailwind-length.js","sourceRoot":"","sources":["../../src/internal/tailwind-length.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { CreateSmartImageOptions, SmartImageComponent } from "./create-smart-image.types.js";
2
+ export declare function createSmartImage(options?: CreateSmartImageOptions): SmartImageComponent;
3
+ //# sourceMappingURL=create-smart-image.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-smart-image.d.ts","sourceRoot":"","sources":["../../src/smart-image/create-smart-image.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAqElG,wBAAgB,gBAAgB,CAAC,OAAO,GAAE,uBAA4B,GAAG,mBAAmB,CAqD3F"}
@@ -0,0 +1,53 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import NextImage from "next/image.js";
3
+ import { inferImageSizes } from "../infer-sizes.js";
4
+ import { cx as defaultCx } from "../internal/class-names.js";
5
+ import { getAltFromSrc } from "./get-alt-from-src.js";
6
+ const HAS_HEIGHT_OR_ASPECT_CLASS_REGEX = /(^|\s)(size-|h-|max-h-|aspect-)/;
7
+ function inferAltText({ alt, ariaHidden, src, }) {
8
+ if (alt !== undefined) {
9
+ return alt;
10
+ }
11
+ const isAriaHidden = ariaHidden === true || ariaHidden === "true";
12
+ if (isAriaHidden) {
13
+ return "";
14
+ }
15
+ return getAltFromSrc(typeof src === "string" ? src : "");
16
+ }
17
+ function warnMissingLayoutSizing({ className, ratio, style, shouldWarn, didWarn, }) {
18
+ if (!shouldWarn || didWarn) {
19
+ return didWarn;
20
+ }
21
+ const classTokens = className ?? "";
22
+ const hasHeightOrAspectClass = HAS_HEIGHT_OR_ASPECT_CLASS_REGEX.test(classTokens);
23
+ const hasHeightOrAspectStyle = Boolean(style?.height || style?.maxHeight || style?.aspectRatio);
24
+ if (hasHeightOrAspectClass || hasHeightOrAspectStyle || ratio) {
25
+ return didWarn;
26
+ }
27
+ console.warn("SmartImage: `fill` requires the wrapper to have a height. " +
28
+ "Use `size-*`/`h-*`, an `aspect-*` class, inline `style={{ aspectRatio }}`, or pass `ratio`.");
29
+ return true;
30
+ }
31
+ export function createSmartImage(options = {}) {
32
+ const cx = options.cx ?? defaultCx;
33
+ const baseWrapperClassName = options.wrapperClassName ?? "relative inline-block";
34
+ const baseImgClassName = options.imgClassName ?? "object-contain";
35
+ let didWarnMissingLayoutSizing = false;
36
+ return function SmartImage({ alt, className, imgClassName, imgStyle, ratio, sizes, src, style, ...props }) {
37
+ const derivedAlt = inferAltText({ alt, ariaHidden: props["aria-hidden"], src });
38
+ const inferredSizes = sizes ?? inferImageSizes({ className, ratio, src, style });
39
+ didWarnMissingLayoutSizing = warnMissingLayoutSizing({
40
+ className,
41
+ didWarn: didWarnMissingLayoutSizing,
42
+ ratio,
43
+ shouldWarn: process.env.NODE_ENV !== "production",
44
+ style,
45
+ });
46
+ if (!inferredSizes && process.env.NODE_ENV !== "production") {
47
+ throw new Error("SmartImage: missing `sizes` and couldn't infer from className/style. " +
48
+ "Add Tailwind sizing classes (size-*, w-*, max-w-*) or pass `sizes` explicitly.");
49
+ }
50
+ return (_jsx("span", { className: cx(baseWrapperClassName, className), style: style, children: _jsx(NextImage, { ...props, alt: derivedAlt, className: cx(baseImgClassName, imgClassName), fill: true, sizes: inferredSizes ?? "100vw", src: src, style: imgStyle }) }));
51
+ };
52
+ }
53
+ //# sourceMappingURL=create-smart-image.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-smart-image.js","sourceRoot":"","sources":["../../src/smart-image/create-smart-image.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import type { CSSProperties } from "react";
2
+ import type { ClassNameValue } from "../internal/class-names.js";
3
+ import type { SmartImageProps } from "./smart-image.types.js";
4
+ export type SmartImageClassNameFn = (...values: readonly ClassNameValue[]) => string;
5
+ export type CreateSmartImageOptions = {
6
+ cx?: SmartImageClassNameFn;
7
+ wrapperClassName?: ClassNameValue;
8
+ imgClassName?: ClassNameValue;
9
+ };
10
+ export type SmartImageComponent = <C extends string | undefined = undefined, S extends CSSProperties | undefined = undefined>(props: SmartImageProps<C, S>) => React.ReactElement;
11
+ //# sourceMappingURL=create-smart-image.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-smart-image.types.d.ts","sourceRoot":"","sources":["../../src/smart-image/create-smart-image.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAE3C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE9D,MAAM,MAAM,qBAAqB,GAAG,CAAC,GAAG,MAAM,EAAE,SAAS,cAAc,EAAE,KAAK,MAAM,CAAC;AAErF,MAAM,MAAM,uBAAuB,GAAG;IAOpC,EAAE,CAAC,EAAE,qBAAqB,CAAC;IAE3B,gBAAgB,CAAC,EAAE,cAAc,CAAC;IAElC,YAAY,CAAC,EAAE,cAAc,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,CAChC,CAAC,SAAS,MAAM,GAAG,SAAS,GAAG,SAAS,EACxC,CAAC,SAAS,aAAa,GAAG,SAAS,GAAG,SAAS,EAE/C,KAAK,EAAE,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,KACzB,KAAK,CAAC,YAAY,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=create-smart-image.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-smart-image.types.js","sourceRoot":"","sources":["../../src/smart-image/create-smart-image.types.ts"],"names":[],"mappings":""}
@@ -1,3 +1,5 @@
1
+ export { createSmartImage } from "./create-smart-image.js";
2
+ export type { CreateSmartImageOptions, SmartImageClassNameFn, SmartImageComponent, } from "./create-smart-image.types.js";
1
3
  export { SmartImage } from "./smart-image.js";
2
4
  export type { SmartImageProps } from "./smart-image.types.js";
3
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/smart-image/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,YAAY,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/smart-image/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,YAAY,EACV,uBAAuB,EACvB,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,YAAY,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC"}
@@ -1,2 +1,3 @@
1
+ export { createSmartImage } from "./create-smart-image.js";
1
2
  export { SmartImage } from "./smart-image.js";
2
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/smart-image/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/smart-image/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAM3D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC"}
@@ -1,4 +1,4 @@
1
1
  import type { CSSProperties } from "react";
2
2
  import type { SmartImageProps } from "./smart-image.types.js";
3
- export declare function SmartImage<C extends string | undefined = undefined, S extends CSSProperties | undefined = undefined>({ alt, className, imgClassName, imgStyle, ratio, sizes, src, style, ...props }: SmartImageProps<C, S>): import("react/jsx-runtime").JSX.Element;
3
+ export declare function SmartImage<C extends string | undefined = undefined, S extends CSSProperties | undefined = undefined>(props: SmartImageProps<C, S>): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
4
4
  //# sourceMappingURL=smart-image.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"smart-image.d.ts","sourceRoot":"","sources":["../../src/smart-image/smart-image.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAK3C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAkB9D,wBAAgB,UAAU,CACxB,CAAC,SAAS,MAAM,GAAG,SAAS,GAAG,SAAS,EACxC,CAAC,SAAS,aAAa,GAAG,SAAS,GAAG,SAAS,EAC/C,EACA,GAAG,EACH,SAAS,EACT,YAAY,EACZ,QAAQ,EACR,KAAK,EACL,KAAK,EACL,GAAG,EACH,KAAK,EACL,GAAG,KAAK,EACT,EAAE,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,2CAwCvB"}
1
+ {"version":3,"file":"smart-image.d.ts","sourceRoot":"","sources":["../../src/smart-image/smart-image.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAG3C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAgB9D,wBAAgB,UAAU,CACxB,CAAC,SAAS,MAAM,GAAG,SAAS,GAAG,SAAS,EACxC,CAAC,SAAS,aAAa,GAAG,SAAS,GAAG,SAAS,EAC/C,KAAK,EAAE,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,8FAE7B"}
@@ -1,27 +1,6 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import NextImage from "next/image.js";
3
- import { inferImageSizes } from "../infer-sizes.js";
4
- import { cx } from "../internal/class-names.js";
5
- import { getAltFromSrc } from "./get-alt-from-src.js";
6
- const HAS_HEIGHT_OR_ASPECT_CLASS_REGEX = /(^|\s)(size-|h-|max-h-|aspect-)/;
7
- let didWarnMissingLayoutSizing = false;
8
- export function SmartImage({ alt, className, imgClassName, imgStyle, ratio, sizes, src, style, ...props }) {
9
- const derivedAlt = alt ?? (props["aria-hidden"] ? "" : getAltFromSrc(typeof src === "string" ? src : ""));
10
- const inferredSizes = sizes ?? inferImageSizes({ className, ratio, src, style });
11
- if (!didWarnMissingLayoutSizing && process.env.NODE_ENV !== "production") {
12
- const classTokens = className ?? "";
13
- const hasHeightOrAspectClass = HAS_HEIGHT_OR_ASPECT_CLASS_REGEX.test(classTokens);
14
- const hasHeightOrAspectStyle = Boolean(style?.height || style?.maxHeight || style?.aspectRatio);
15
- if (!(hasHeightOrAspectClass || hasHeightOrAspectStyle || ratio)) {
16
- didWarnMissingLayoutSizing = true;
17
- console.warn("SmartImage: `fill` requires the wrapper to have a height. " +
18
- "Use `size-*`/`h-*`, an `aspect-*` class, inline `style={{ aspectRatio }}`, or pass `ratio`.");
19
- }
20
- }
21
- if (!inferredSizes && process.env.NODE_ENV !== "production") {
22
- throw new Error("SmartImage: missing `sizes` and couldn't infer from className/style. " +
23
- "Add Tailwind sizing classes (size-*, w-*, max-w-*) or pass `sizes` explicitly.");
24
- }
25
- return (_jsx("span", { className: cx("relative inline-block", className), style: style, children: _jsx(NextImage, { ...props, alt: derivedAlt, className: cx("object-contain", imgClassName), fill: true, sizes: inferredSizes ?? "100vw", src: src, style: imgStyle }) }));
1
+ import { createSmartImage } from "./create-smart-image.js";
2
+ const SmartImageImpl = createSmartImage();
3
+ export function SmartImage(props) {
4
+ return SmartImageImpl(props);
26
5
  }
27
6
  //# sourceMappingURL=smart-image.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"smart-image.js","sourceRoot":"","sources":["../../src/smart-image/smart-image.tsx"],"names":[],"mappings":";AAAA,OAAO,SAAS,MAAM,eAAe,CAAC;AAGtC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,EAAE,EAAE,MAAM,4BAA4B,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAGtD,MAAM,gCAAgC,GAAG,iCAAiC,CAAC;AAE3E,IAAI,0BAA0B,GAAG,KAAK,CAAC;AAcvC,MAAM,UAAU,UAAU,CAGxB,EACA,GAAG,EACH,SAAS,EACT,YAAY,EACZ,QAAQ,EACR,KAAK,EACL,KAAK,EACL,GAAG,EACH,KAAK,EACL,GAAG,KAAK,EACc;IACtB,MAAM,UAAU,GACd,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAEzF,MAAM,aAAa,GAAG,KAAK,IAAI,eAAe,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;IAEjF,IAAI,CAAC,0BAA0B,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE,CAAC;QACzE,MAAM,WAAW,GAAG,SAAS,IAAI,EAAE,CAAC;QACpC,MAAM,sBAAsB,GAAG,gCAAgC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAClF,MAAM,sBAAsB,GAAG,OAAO,CAAC,KAAK,EAAE,MAAM,IAAI,KAAK,EAAE,SAAS,IAAI,KAAK,EAAE,WAAW,CAAC,CAAC;QAEhG,IAAI,CAAC,CAAC,sBAAsB,IAAI,sBAAsB,IAAI,KAAK,CAAC,EAAE,CAAC;YACjE,0BAA0B,GAAG,IAAI,CAAC;YAClC,OAAO,CAAC,IAAI,CACV,4DAA4D;gBAC1D,6FAA6F,CAChG,CAAC;QACJ,CAAC;IACH,CAAC;IAED,IAAI,CAAC,aAAa,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE,CAAC;QAC5D,MAAM,IAAI,KAAK,CACb,uEAAuE;YACrE,gFAAgF,CACnF,CAAC;IACJ,CAAC;IAED,OAAO,CACL,eAAM,SAAS,EAAE,EAAE,CAAC,uBAAuB,EAAE,SAAS,CAAC,EAAE,KAAK,EAAE,KAAK,YACnE,KAAC,SAAS,OACJ,KAAK,EACT,GAAG,EAAE,UAAU,EACf,SAAS,EAAE,EAAE,CAAC,gBAAgB,EAAE,YAAY,CAAC,EAC7C,IAAI,QACJ,KAAK,EAAE,aAAa,IAAI,OAAO,EAC/B,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,QAAQ,GACf,GACG,CACR,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"smart-image.js","sourceRoot":"","sources":["../../src/smart-image/smart-image.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAG3D,MAAM,cAAc,GAAG,gBAAgB,EAAE,CAAC;AAc1C,MAAM,UAAU,UAAU,CAGxB,KAA4B;IAC5B,OAAO,cAAc,CAAC,KAAK,CAAC,CAAC;AAC/B,CAAC"}
package/dist/types.d.ts CHANGED
@@ -1,5 +1,4 @@
1
1
  import type { BreakpointConfig } from "./breakpoints.js";
2
- export type BreakpointKey = string | "base";
3
2
  export type InferSizesStyle = Partial<{
4
3
  width: number | string | null | undefined;
5
4
  maxWidth: number | string | null | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,MAAM,CAAC;AAE5C,MAAM,MAAM,eAAe,GAAG,OAAO,CAAC;IACpC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC1C,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC7C,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC3C,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;CAC/C,CAAC,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG;IAK5B,aAAa,CAAC,EAAE,MAAM,CAAC;IAKvB,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IAKnB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAKvC,KAAK,CAAC,EAAE,MAAM,CAAC;IAIf,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,KAAK,CAAC,EAAE,eAAe,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,MAAM,MAAM,eAAe,GAAG,OAAO,CAAC;IACpC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC1C,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC7C,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC3C,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;CAC/C,CAAC,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG;IAK5B,aAAa,CAAC,EAAE,MAAM,CAAC;IAKvB,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IAKnB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAMvC,KAAK,CAAC,EAAE,MAAM,CAAC;IAIf,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,KAAK,CAAC,EAAE,eAAe,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf,CAAC"}
package/package.json CHANGED
@@ -1,16 +1,16 @@
1
1
  {
2
2
  "description": "Tailwind-first Next.js Image component with automatic sizes inference.",
3
- "homepage": "https://github.com/PaulRBerg/tw-next-image",
3
+ "homepage": "https://github.com/PaulRBerg/tw-next-image#readme",
4
4
  "license": "MIT",
5
5
  "main": "./dist/index.js",
6
6
  "name": "tw-next-image",
7
7
  "sideEffects": false,
8
8
  "type": "module",
9
9
  "types": "./dist/index.d.ts",
10
- "version": "1.0.0-beta.0",
10
+ "version": "1.0.0",
11
11
  "files": [
12
12
  "dist/**",
13
- "LICENSE"
13
+ "CHANGELOG.md"
14
14
  ],
15
15
  "keywords": [
16
16
  "nextjs",
@@ -29,7 +29,7 @@
29
29
  },
30
30
  "devDependencies": {
31
31
  "@biomejs/biome": "^2.3.10",
32
- "@sablier/devkit": "^1.9.1",
32
+ "@sablier/devkit": "^1.10.0",
33
33
  "@testing-library/jest-dom": "^6.9.1",
34
34
  "@testing-library/react": "^16.3.1",
35
35
  "@types/node": "^25.0.3",
@@ -67,7 +67,7 @@
67
67
  },
68
68
  "repository": {
69
69
  "type": "git",
70
- "url": "https://github.com/PaulRBerg/tw-next-image.git"
70
+ "url": "git+https://github.com/PaulRBerg/tw-next-image.git"
71
71
  },
72
72
  "scripts": {
73
73
  "setup": "husky"
package/LICENSE DELETED
@@ -1,21 +0,0 @@
1
- MIT License
2
-
3
- Copyright (c) 2025 prb
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.