@oxyhq/bloom 0.24.0 → 0.24.1

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.
@@ -55,6 +55,7 @@ const LinkPreviewCardComponent = ({
55
55
  description,
56
56
  image,
57
57
  siteName,
58
+ coverFill = false,
58
59
  onPress,
59
60
  className,
60
61
  style
@@ -107,7 +108,14 @@ const LinkPreviewCardComponent = ({
107
108
  resizeMode: "cover",
108
109
  className: 'w-full',
109
110
  style: {
110
- height: COVER_IMAGE_HEIGHT,
111
+ // Fill-height mode: flex into the card's bounding height (supplied
112
+ // by the consumer via `style`), letting the text block stay a
113
+ // compact footer. Default mode: fixed intrinsic cover height.
114
+ ...(coverFill ? {
115
+ flex: 1
116
+ } : {
117
+ height: COVER_IMAGE_HEIGHT
118
+ }),
111
119
  backgroundColor: colors.backgroundTertiary
112
120
  }
113
121
  }) : null, /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_useTheme","_useInteractionState","_scales","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","COVER_IMAGE_HEIGHT","PRESSED_OPACITY","hostnameOf","url","URL","hostname","replace","undefined","LinkPreviewCardComponent","title","description","image","siteName","onPress","className","style","colors","useTheme","state","pressed","onIn","onPressIn","onOut","onPressOut","useInteractionState","displaySiteName","displayTitle","useMemo","host","handlePress","useCallback","Linking","openURL","catch","surfaceClass","filter","Boolean","join","jsxs","Pressable","borderRadius","RADIUS","opacity","accessibilityRole","accessibilityLabel","children","jsx","Image","source","uri","resizeMode","height","backgroundColor","backgroundTertiary","View","Text","numberOfLines","LinkPreviewCard","exports","memo","displayName"],"sourceRoot":"../../../src","sources":["link-preview/LinkPreviewCard.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_useTheme","_useInteractionState","_scales","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","COVER_IMAGE_HEIGHT","PRESSED_OPACITY","hostnameOf","url","URL","hostname","replace","undefined","LinkPreviewCardComponent","title","description","image","siteName","coverFill","onPress","className","style","colors","useTheme","state","pressed","onIn","onPressIn","onOut","onPressOut","useInteractionState","displaySiteName","displayTitle","useMemo","host","handlePress","useCallback","Linking","openURL","catch","surfaceClass","filter","Boolean","join","jsxs","Pressable","borderRadius","RADIUS","opacity","accessibilityRole","accessibilityLabel","children","jsx","Image","source","uri","resizeMode","flex","height","backgroundColor","backgroundTertiary","View","Text","numberOfLines","LinkPreviewCard","exports","memo","displayName"],"sourceRoot":"../../../src","sources":["link-preview/LinkPreviewCard.tsx"],"mappings":";;;;;;AAoBA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAQA,IAAAE,SAAA,GAAAF,OAAA;AACA,IAAAG,oBAAA,GAAAH,OAAA;AACA,IAAAI,OAAA,GAAAJ,OAAA;AAAiD,IAAAK,WAAA,GAAAL,OAAA;AAAA,SAAAD,wBAAAO,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAT,uBAAA,YAAAA,CAAAO,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AA/BjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAeA;AACA,MAAMkB,kBAAkB,GAAG,GAAG;;AAE9B;AACA,MAAMC,eAAe,GAAG,IAAI;;AAE5B;AACA;AACA;AACA;AACA,SAASC,UAAUA,CAACC,GAAW,EAAsB;EACnD,IAAI;IACF,OAAO,IAAIC,GAAG,CAACD,GAAG,CAAC,CAACE,QAAQ,CAACC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC;EACpD,CAAC,CAAC,MAAM;IACN,OAAOC,SAAS;EAClB;AACF;AAEA,MAAMC,wBAAwD,GAAGA,CAAC;EAChEL,GAAG;EACHM,KAAK;EACLC,WAAW;EACXC,KAAK;EACLC,QAAQ;EACRC,SAAS,GAAG,KAAK;EACjBC,OAAO;EACPC,SAAS;EACTC;AACF,CAAC,KAAK;EACJ,MAAM;IAAEC;EAAO,CAAC,GAAG,IAAAC,kBAAQ,EAAC,CAAC;EAC7B,MAAM;IAAEC,KAAK,EAAEC,OAAO;IAAEC,IAAI,EAAEC,SAAS;IAAEC,KAAK,EAAEC;EAAW,CAAC,GAC1D,IAAAC,wCAAmB,EAAC,CAAC;EAEvB,MAAM;IAAEC,eAAe;IAAEC;EAAa,CAAC,GAAG,IAAAC,cAAO,EAAC,MAAM;IACtD,MAAMC,IAAI,GAAG3B,UAAU,CAACC,GAAG,CAAC;IAC5B,OAAO;MACLuB,eAAe,EAAEd,QAAQ,IAAIiB,IAAI;MACjCF,YAAY,EAAElB,KAAK,IAAIoB,IAAI,IAAI1B;IACjC,CAAC;EACH,CAAC,EAAE,CAACA,GAAG,EAAES,QAAQ,EAAEH,KAAK,CAAC,CAAC;EAE1B,MAAMqB,WAAW,GAAG,IAAAC,kBAAW,EAAC,MAAM;IACpC,IAAIjB,OAAO,EAAE;MACXA,OAAO,CAAC,CAAC;MACT;IACF;IACA;IACA;IACA;IACA,KAAKkB,oBAAO,CAACC,OAAO,CAAC9B,GAAG,CAAC,CAAC+B,KAAK,CAAC,MAAM3B,SAAS,CAAC;EAClD,CAAC,EAAE,CAACO,OAAO,EAAEX,GAAG,CAAC,CAAC;EAElB,MAAMgC,YAAY,GAAG,CAAC,8CAA8C,EAAEpB,SAAS,CAAC,CAC7EqB,MAAM,CAACC,OAAO,CAAC,CACfC,IAAI,CAAC,GAAG,CAAC;EAEZ,oBACE,IAAA1D,WAAA,CAAA2D,IAAA,EAAC/D,YAAA,CAAAgE,SAAS;IACDzB,SAAS,EAAEoB,YAAY;IAC9BnB,KAAK,EAAE,CACL;MAAEyB,YAAY,EAAEC,cAAM,CAAC,WAAW;IAAE,CAAC,EACrCtB,OAAO,IAAI;MAAEuB,OAAO,EAAE1C;IAAgB,CAAC,EACvCe,KAAK,CACL;IACFF,OAAO,EAAEgB,WAAY;IACrBR,SAAS,EAAEA,SAAU;IACrBE,UAAU,EAAEA,UAAW;IACvBoB,iBAAiB,EAAC,MAAM;IACxBC,kBAAkB,EAAElB,YAAa;IAAAmB,QAAA,GAEhCnC,KAAK,gBACJ,IAAA/B,WAAA,CAAAmE,GAAA,EAACvE,YAAA,CAAAwE,KAAK;MACJC,MAAM,EAAE;QAAEC,GAAG,EAAEvC;MAAM,CAAE;MACvBwC,UAAU,EAAC,OAAO;MACXpC,SAAS,EAAE,QAAQ;MAC1BC,KAAK,EAAE;QACL;QACA;QACA;QACA,IAAIH,SAAS,GAAG;UAAEuC,IAAI,EAAE;QAAE,CAAC,GAAG;UAAEC,MAAM,EAAErD;QAAmB,CAAC,CAAC;QAC7DsD,eAAe,EAAErC,MAAM,CAACsC;MAC1B;IAAE,CACH,CAAC,GACA,IAAI,eAER,IAAA3E,WAAA,CAAA2D,IAAA,EAAC/D,YAAA,CAAAgF,IAAI;MAAQzC,SAAS,EAAE,KAAK;MAAA+B,QAAA,GAC1BpB,eAAe,gBACd,IAAA9C,WAAA,CAAAmE,GAAA,EAACvE,YAAA,CAAAiF,IAAI;QACHC,aAAa,EAAE,CAAE;QAEf3C,SAAS,EACP,mEAAmE;QAAA+B,QAAA,EAGtEpB;MAAe,CACZ,CAAC,GACL,IAAI,EAEPC,YAAY,gBACX,IAAA/C,WAAA,CAAAmE,GAAA,EAACvE,YAAA,CAAAiF,IAAI;QACHC,aAAa,EAAE,CAAE;QAEf3C,SAAS,EAAE,gDAAgD;QAAA+B,QAAA,EAG5DnB;MAAY,CACT,CAAC,GACL,IAAI,EAEPjB,WAAW,gBACV,IAAA9B,WAAA,CAAAmE,GAAA,EAACvE,YAAA,CAAAiF,IAAI;QACHC,aAAa,EAAE,CAAE;QAEf3C,SAAS,EAAE,uDAAuD;QAAA+B,QAAA,EAGnEpC;MAAW,CACR,CAAC,GACL,IAAI;IAAA,CACJ,CAAC;EAAA,CACE,CAAC;AAEhB,CAAC;AAEM,MAAMiD,eAAe,GAAAC,OAAA,CAAAD,eAAA,gBAAG,IAAAE,WAAI,EAACrD,wBAAwB,CAAC;AAC7DmD,eAAe,CAACG,WAAW,GAAG,iBAAiB","ignoreList":[]}
@@ -49,6 +49,7 @@ const LinkPreviewCardComponent = ({
49
49
  description,
50
50
  image,
51
51
  siteName,
52
+ coverFill = false,
52
53
  onPress,
53
54
  className,
54
55
  style
@@ -101,7 +102,14 @@ const LinkPreviewCardComponent = ({
101
102
  resizeMode: "cover",
102
103
  className: 'w-full',
103
104
  style: {
104
- height: COVER_IMAGE_HEIGHT,
105
+ // Fill-height mode: flex into the card's bounding height (supplied
106
+ // by the consumer via `style`), letting the text block stay a
107
+ // compact footer. Default mode: fixed intrinsic cover height.
108
+ ...(coverFill ? {
109
+ flex: 1
110
+ } : {
111
+ height: COVER_IMAGE_HEIGHT
112
+ }),
105
113
  backgroundColor: colors.backgroundTertiary
106
114
  }
107
115
  }) : null, /*#__PURE__*/_jsxs(View, {
@@ -1 +1 @@
1
- {"version":3,"names":["React","memo","useCallback","useMemo","View","Text","Image","Pressable","Linking","useTheme","useInteractionState","RADIUS","jsx","_jsx","jsxs","_jsxs","COVER_IMAGE_HEIGHT","PRESSED_OPACITY","hostnameOf","url","URL","hostname","replace","undefined","LinkPreviewCardComponent","title","description","image","siteName","onPress","className","style","colors","state","pressed","onIn","onPressIn","onOut","onPressOut","displaySiteName","displayTitle","host","handlePress","openURL","catch","surfaceClass","filter","Boolean","join","borderRadius","opacity","accessibilityRole","accessibilityLabel","children","source","uri","resizeMode","height","backgroundColor","backgroundTertiary","numberOfLines","LinkPreviewCard","displayName"],"sourceRoot":"../../../src","sources":["link-preview/LinkPreviewCard.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","memo","useCallback","useMemo","View","Text","Image","Pressable","Linking","useTheme","useInteractionState","RADIUS","jsx","_jsx","jsxs","_jsxs","COVER_IMAGE_HEIGHT","PRESSED_OPACITY","hostnameOf","url","URL","hostname","replace","undefined","LinkPreviewCardComponent","title","description","image","siteName","coverFill","onPress","className","style","colors","state","pressed","onIn","onPressIn","onOut","onPressOut","displaySiteName","displayTitle","host","handlePress","openURL","catch","surfaceClass","filter","Boolean","join","borderRadius","opacity","accessibilityRole","accessibilityLabel","children","source","uri","resizeMode","flex","height","backgroundColor","backgroundTertiary","numberOfLines","LinkPreviewCard","displayName"],"sourceRoot":"../../../src","sources":["link-preview/LinkPreviewCard.tsx"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"LinkPreviewCard.d.ts","sourceRoot":"","sources":["../../../../src/link-preview/LinkPreviewCard.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,KAAqC,MAAM,OAAO,CAAC;AAY1D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AA0HpD,eAAO,MAAM,eAAe,kDAAiC,CAAC"}
1
+ {"version":3,"file":"LinkPreviewCard.d.ts","sourceRoot":"","sources":["../../../../src/link-preview/LinkPreviewCard.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,KAAqC,MAAM,OAAO,CAAC;AAY1D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AA8HpD,eAAO,MAAM,eAAe,kDAAiC,CAAC"}
@@ -22,6 +22,18 @@ export interface LinkPreviewCardProps {
22
22
  image?: string;
23
23
  /** Site / brand name shown above the title. Falls back to the URL hostname. */
24
24
  siteName?: string;
25
+ /**
26
+ * Fill-height mode for the cover image. Defaults to `false`.
27
+ *
28
+ * - `false` (default): the cover image keeps its fixed intrinsic height —
29
+ * correct when the card sizes itself (e.g. a link rendered alone).
30
+ * - `true`: the cover image flexes (`flex: 1`, no fixed height) to fill
31
+ * whatever vertical space the card is given, with the text block as a
32
+ * compact intrinsic-height footer below it. The consumer supplies the
33
+ * bounding height via `style` (e.g. `style={{ height: 180 }}`) so the card
34
+ * fits a fixed-height row alongside other attachments without overflowing.
35
+ */
36
+ coverFill?: boolean;
25
37
  /** Press handler. When omitted, the card opens `url` via `Linking.openURL`. */
26
38
  onPress?: () => void;
27
39
  /** Extra NativeWind utilities merged onto the card surface. */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/link-preview/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzD;;;;;;;GAOG;AACH,MAAM,WAAW,oBAAoB;IACnC,iFAAiF;IACjF,GAAG,EAAE,MAAM,CAAC;IACZ,0EAA0E;IAC1E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oCAAoC;IACpC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+EAA+E;IAC/E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,+EAA+E;IAC/E,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,+DAA+D;IAC/D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gDAAgD;IAChD,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAC9B"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/link-preview/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzD;;;;;;;GAOG;AACH,MAAM,WAAW,oBAAoB;IACnC,iFAAiF;IACjF,GAAG,EAAE,MAAM,CAAC;IACZ,0EAA0E;IAC1E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oCAAoC;IACpC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+EAA+E;IAC/E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;;;;;;OAUG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,+EAA+E;IAC/E,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,+DAA+D;IAC/D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gDAAgD;IAChD,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAC9B"}
@@ -1 +1 @@
1
- {"version":3,"file":"LinkPreviewCard.d.ts","sourceRoot":"","sources":["../../../../src/link-preview/LinkPreviewCard.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,KAAqC,MAAM,OAAO,CAAC;AAY1D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AA0HpD,eAAO,MAAM,eAAe,kDAAiC,CAAC"}
1
+ {"version":3,"file":"LinkPreviewCard.d.ts","sourceRoot":"","sources":["../../../../src/link-preview/LinkPreviewCard.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,KAAqC,MAAM,OAAO,CAAC;AAY1D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AA8HpD,eAAO,MAAM,eAAe,kDAAiC,CAAC"}
@@ -22,6 +22,18 @@ export interface LinkPreviewCardProps {
22
22
  image?: string;
23
23
  /** Site / brand name shown above the title. Falls back to the URL hostname. */
24
24
  siteName?: string;
25
+ /**
26
+ * Fill-height mode for the cover image. Defaults to `false`.
27
+ *
28
+ * - `false` (default): the cover image keeps its fixed intrinsic height —
29
+ * correct when the card sizes itself (e.g. a link rendered alone).
30
+ * - `true`: the cover image flexes (`flex: 1`, no fixed height) to fill
31
+ * whatever vertical space the card is given, with the text block as a
32
+ * compact intrinsic-height footer below it. The consumer supplies the
33
+ * bounding height via `style` (e.g. `style={{ height: 180 }}`) so the card
34
+ * fits a fixed-height row alongside other attachments without overflowing.
35
+ */
36
+ coverFill?: boolean;
25
37
  /** Press handler. When omitted, the card opens `url` via `Linking.openURL`. */
26
38
  onPress?: () => void;
27
39
  /** Extra NativeWind utilities merged onto the card surface. */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/link-preview/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzD;;;;;;;GAOG;AACH,MAAM,WAAW,oBAAoB;IACnC,iFAAiF;IACjF,GAAG,EAAE,MAAM,CAAC;IACZ,0EAA0E;IAC1E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oCAAoC;IACpC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+EAA+E;IAC/E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,+EAA+E;IAC/E,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,+DAA+D;IAC/D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gDAAgD;IAChD,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAC9B"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/link-preview/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzD;;;;;;;GAOG;AACH,MAAM,WAAW,oBAAoB;IACnC,iFAAiF;IACjF,GAAG,EAAE,MAAM,CAAC;IACZ,0EAA0E;IAC1E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oCAAoC;IACpC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+EAA+E;IAC/E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;;;;;;OAUG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,+EAA+E;IAC/E,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,+DAA+D;IAC/D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gDAAgD;IAChD,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAC9B"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oxyhq/bloom",
3
- "version": "0.24.0",
3
+ "version": "0.24.1",
4
4
  "description": "Bloom UI — Oxy ecosystem component library for React Native + Expo + Web",
5
5
  "main": "lib/commonjs/index.js",
6
6
  "module": "lib/module/index.js",
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { Linking } from 'react-native';
2
+ import { Image, Linking } from 'react-native';
3
3
  import { render, fireEvent } from '@testing-library/react-native';
4
4
 
5
5
  import { BloomThemeProvider } from '../theme/BloomThemeProvider';
@@ -57,4 +57,32 @@ describe('LinkPreviewCard', () => {
57
57
  expect(openURL).toHaveBeenCalledWith('https://example.com/open');
58
58
  openURL.mockRestore();
59
59
  });
60
+
61
+ it('gives the cover image a fixed height by default (coverFill omitted)', () => {
62
+ const { UNSAFE_getByType } = renderWithTheme(
63
+ <LinkPreviewCard
64
+ url="https://example.com"
65
+ title="Fixed"
66
+ image="https://cdn.example.com/og.png"
67
+ />,
68
+ );
69
+ const imageStyle = UNSAFE_getByType(Image).props.style as Record<string, unknown>;
70
+ expect(imageStyle.height).toBe(160);
71
+ expect(imageStyle.flex).toBeUndefined();
72
+ });
73
+
74
+ it('flexes the cover image (no fixed height) when coverFill is true', () => {
75
+ const { UNSAFE_getByType } = renderWithTheme(
76
+ <LinkPreviewCard
77
+ url="https://example.com"
78
+ title="Fill"
79
+ image="https://cdn.example.com/og.png"
80
+ coverFill
81
+ style={{ height: 180 }}
82
+ />,
83
+ );
84
+ const imageStyle = UNSAFE_getByType(Image).props.style as Record<string, unknown>;
85
+ expect(imageStyle.flex).toBe(1);
86
+ expect(imageStyle.height).toBeUndefined();
87
+ });
60
88
  });
@@ -56,6 +56,7 @@ const LinkPreviewCardComponent: React.FC<LinkPreviewCardProps> = ({
56
56
  description,
57
57
  image,
58
58
  siteName,
59
+ coverFill = false,
59
60
  onPress,
60
61
  className,
61
62
  style,
@@ -107,7 +108,10 @@ const LinkPreviewCardComponent: React.FC<LinkPreviewCardProps> = ({
107
108
  resizeMode="cover"
108
109
  {...({ className: 'w-full' } as Record<string, string>)}
109
110
  style={{
110
- height: COVER_IMAGE_HEIGHT,
111
+ // Fill-height mode: flex into the card's bounding height (supplied
112
+ // by the consumer via `style`), letting the text block stay a
113
+ // compact footer. Default mode: fixed intrinsic cover height.
114
+ ...(coverFill ? { flex: 1 } : { height: COVER_IMAGE_HEIGHT }),
111
115
  backgroundColor: colors.backgroundTertiary,
112
116
  }}
113
117
  />
@@ -23,6 +23,18 @@ export interface LinkPreviewCardProps {
23
23
  image?: string;
24
24
  /** Site / brand name shown above the title. Falls back to the URL hostname. */
25
25
  siteName?: string;
26
+ /**
27
+ * Fill-height mode for the cover image. Defaults to `false`.
28
+ *
29
+ * - `false` (default): the cover image keeps its fixed intrinsic height —
30
+ * correct when the card sizes itself (e.g. a link rendered alone).
31
+ * - `true`: the cover image flexes (`flex: 1`, no fixed height) to fill
32
+ * whatever vertical space the card is given, with the text block as a
33
+ * compact intrinsic-height footer below it. The consumer supplies the
34
+ * bounding height via `style` (e.g. `style={{ height: 180 }}`) so the card
35
+ * fits a fixed-height row alongside other attachments without overflowing.
36
+ */
37
+ coverFill?: boolean;
26
38
  /** Press handler. When omitted, the card opens `url` via `Linking.openURL`. */
27
39
  onPress?: () => void;
28
40
  /** Extra NativeWind utilities merged onto the card surface. */