@timmbr/ui 1.6.0 → 1.7.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.
@@ -1 +1 @@
1
- {"version":3,"file":"MediaCard.d.ts","sourceRoot":"","sources":["../../../src/components/MediaCard/MediaCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,KAAK,EAAsB,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAc5E;;;;;;;;GAQG;AACH,eAAO,MAAM,SAAS,oFA8IrB,CAAC"}
1
+ {"version":3,"file":"MediaCard.d.ts","sourceRoot":"","sources":["../../../src/components/MediaCard/MediaCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,KAAK,EAAsB,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAc5E;;;;;;;;GAQG;AACH,eAAO,MAAM,SAAS,oFAgJrB,CAAC"}
@@ -5,7 +5,7 @@ import { mediaCardOverlayVariants, mediaCardMediaVariants, mediaCardVariants } f
5
5
  import { Text } from '../Text/Text.js';
6
6
 
7
7
  const PRESET_RATIOS = ["square", "portrait", "landscape"];
8
- const DefaultLink = ({ href, className, children }) => /* @__PURE__ */ jsx("a", { href, className, children });
8
+ const DefaultLink = ({ href, className, title, children }) => /* @__PURE__ */ jsx("a", { href, className, title, children });
9
9
  const STRETCHED_LINK = "rounded-sm after:absolute after:inset-0 hover:text-primary focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring";
10
10
  const MediaCard = React.forwardRef(
11
11
  ({
@@ -21,6 +21,7 @@ const MediaCard = React.forwardRef(
21
21
  spacing = "compact",
22
22
  eyebrow,
23
23
  title,
24
+ fullTitle = typeof title === "string" ? title : void 0,
24
25
  subtitle,
25
26
  meta,
26
27
  aside,
@@ -94,7 +95,8 @@ const MediaCard = React.forwardRef(
94
95
  titleClassName
95
96
  ),
96
97
  "data-slot": "media-card-title",
97
- children: href ? /* @__PURE__ */ jsx(Link, { href, className: STRETCHED_LINK, children: title }) : title
98
+ title: href ? void 0 : fullTitle,
99
+ children: href ? /* @__PURE__ */ jsx(Link, { href, className: STRETCHED_LINK, title: fullTitle, children: title }) : title
98
100
  }
99
101
  ),
100
102
  subtitle && /* @__PURE__ */ jsx(Text, { asChild: true, variant: "body-2", foreground: "muted", children: /* @__PURE__ */ jsx("div", { className: "mt-0.5", "data-slot": "media-card-subtitle", children: subtitle }) }),
@@ -9,6 +9,8 @@ import type { MediaCardMediaVariants, MediaCardVariants } from './MediaCard.styl
9
9
  export interface MediaCardLinkProps {
10
10
  href: string;
11
11
  className?: string;
12
+ /** Native hover text (the card's `fullTitle`). */
13
+ title?: string;
12
14
  children: React.ReactNode;
13
15
  }
14
16
  export interface MediaCardProps extends Omit<React.HTMLAttributes<HTMLElement>, 'title'>, MediaCardVariants, Omit<MediaCardMediaVariants, 'ratio'> {
@@ -53,6 +55,13 @@ export interface MediaCardProps extends Omit<React.HTMLAttributes<HTMLElement>,
53
55
  /** Small line above the title (category, options, brand…). */
54
56
  eyebrow?: React.ReactNode;
55
57
  title: React.ReactNode;
58
+ /**
59
+ * Full title shown by the browser on hover (the HTML `title` attribute), so a
60
+ * clamped title can still be read. Defaults to `title` when it is a string.
61
+ * Set on the title link when there is an `href` (it covers the whole card),
62
+ * otherwise on the title element.
63
+ */
64
+ fullTitle?: string;
56
65
  subtitle?: React.ReactNode;
57
66
  /** Small details under the title (attributes, quantity, dates…). */
58
67
  meta?: React.ReactNode;
@@ -1 +1 @@
1
- {"version":3,"file":"MediaCard.types.d.ts","sourceRoot":"","sources":["../../../src/components/MediaCard/MediaCard.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AACpC,OAAO,KAAK,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAEpF;;;;GAIG;AACH,2DAA2D;AAC3D,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED,MAAM,WAAW,cACf,SAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC,EACtD,iBAAiB,EACjB,IAAI,CAAC,sBAAsB,EAAE,OAAO,CAAC;IACvC;;;OAGG;IACH,KAAK,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,WAAW,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;IAC5D;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,aAAa,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC;IACxD,8EAA8E;IAC9E,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAChC;;OAEG;IACH,SAAS,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACxB;;;OAGG;IACH,OAAO,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IAChC,+EAA+E;IAC/E,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB;;;OAGG;IACH,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAChC,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC9B,6DAA6D;IAC7D,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,kEAAkE;IAClE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,8DAA8D;IAC9D,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,oEAAoE;IACpE,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB;;;OAGG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,2EAA2E;IAC3E,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,gEAAgE;IAChE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,oDAAoD;IACpD,OAAO,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,CAAC;IACnC,8CAA8C;IAC9C,EAAE,CAAC,EAAE,SAAS,GAAG,KAAK,GAAG,IAAI,CAAC;CAC/B"}
1
+ {"version":3,"file":"MediaCard.types.d.ts","sourceRoot":"","sources":["../../../src/components/MediaCard/MediaCard.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AACpC,OAAO,KAAK,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAEpF;;;;GAIG;AACH,2DAA2D;AAC3D,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kDAAkD;IAClD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED,MAAM,WAAW,cACf,SAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC,EACtD,iBAAiB,EACjB,IAAI,CAAC,sBAAsB,EAAE,OAAO,CAAC;IACvC;;;OAGG;IACH,KAAK,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,WAAW,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;IAC5D;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,aAAa,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC;IACxD,8EAA8E;IAC9E,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAChC;;OAEG;IACH,SAAS,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACxB;;;OAGG;IACH,OAAO,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IAChC,+EAA+E;IAC/E,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB;;;OAGG;IACH,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAChC,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC9B,6DAA6D;IAC7D,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,kEAAkE;IAClE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,8DAA8D;IAC9D,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,oEAAoE;IACpE,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB;;;OAGG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,2EAA2E;IAC3E,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,gEAAgE;IAChE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,oDAAoD;IACpD,OAAO,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,CAAC;IACnC,8CAA8C;IAC9C,EAAE,CAAC,EAAE,SAAS,GAAG,KAAK,GAAG,IAAI,CAAC;CAC/B"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@timmbr/ui",
3
- "version": "1.6.0",
3
+ "version": "1.7.0",
4
4
  "description": "High-performance, Next.js App Router-compatible UI design system components for Timmbr",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -42,11 +42,11 @@
42
42
  "@radix-ui/react-tooltip": "^1.2.16",
43
43
  "class-variance-authority": "^0.7.1",
44
44
  "input-otp": "^1.5.0",
45
+ "@timmbr/hooks": "1.0.0",
46
+ "@timmbr/motion": "1.2.2",
45
47
  "@timmbr/icons": "1.4.0",
46
48
  "@timmbr/theme": "1.3.0",
47
- "@timmbr/utils": "1.4.0",
48
- "@timmbr/motion": "1.2.2",
49
- "@timmbr/hooks": "1.0.0"
49
+ "@timmbr/utils": "1.4.0"
50
50
  },
51
51
  "peerDependencies": {
52
52
  "next": ">=13.0.0 || >=14.0.0 || >=15.0.0 || >=16.0.0",