related-ui-components 2.8.3 → 2.8.5

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.
package/lib/module/app.js CHANGED
@@ -4,11 +4,10 @@ import React, { useState } from "react";
4
4
  import { SafeAreaView, StyleSheet, StatusBar } from "react-native";
5
5
  import CarouselCardStack from "./components/CarouselCardStack/CarouselCardStack.js"; // Adjust path as needed
6
6
  import { GestureHandlerRootView } from "react-native-gesture-handler";
7
- import { RedemptionOption } from "./components/index.js";
7
+ import { SelaDealCard } from "./components/index.js";
8
8
  import { lightTheme, RelatedProvider, useTheme } from "./theme/index.js";
9
9
  import { BottomSheetStackProvider } from "./contexts/index.js";
10
10
  import { SafeAreaProvider } from "react-native-safe-area-context";
11
- import { Ionicons } from "@expo/vector-icons";
12
11
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
13
12
  const DUMMY_DATA = Array.from({
14
13
  length: 10
@@ -49,13 +48,18 @@ const App = () => {
49
48
  // onActiveIndexChange={(index) => {
50
49
  // console.log("Active item index:", index);
51
50
  // }}
52
- }), /*#__PURE__*/_jsx(RedemptionOption, {
53
- text: "hello",
54
- orientation: "horizontal",
55
- icon: /*#__PURE__*/_jsx(Ionicons, {
56
- name: "accessibility",
57
- size: 24
58
- })
51
+ }), /*#__PURE__*/_jsx(SelaDealCard, {
52
+ variant: "horizontal",
53
+ width: 300,
54
+ height: 300,
55
+ label: "discount",
56
+ description: "HELLO",
57
+ providerName: "Riva Club",
58
+ price: "100",
59
+ lockOverlay: true
60
+ // grayscaleIntensity={80}
61
+ ,
62
+ backgroundImage: require("./assets/images/namshi-banner.png")
59
63
  })]
60
64
  })]
61
65
  })
@@ -1 +1 @@
1
- {"version":3,"names":["React","useState","SafeAreaView","StyleSheet","StatusBar","CarouselCardStack","GestureHandlerRootView","RedemptionOption","lightTheme","RelatedProvider","useTheme","BottomSheetStackProvider","SafeAreaProvider","Ionicons","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","DUMMY_DATA","Array","from","length","_","i","id","image","title","App","theme","departureDate","setDepartureDate","undefined","returnDate","setReturnDate","progress","setProgress","handleAnimate","newProgress","Math","floor","random","children","style","flex","barStyle","styles","appContainer","data","text","orientation","icon","name","size","create","backgroundColor","justifyContent","alignItems"],"sourceRoot":"..\\..\\src","sources":["app.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAeC,QAAQ,QAAQ,OAAO;AAClD,SAASC,YAAY,EAAEC,UAAU,EAAEC,SAAS,QAAkC,cAAc;AAC5F,OAAOC,iBAAiB,MAAM,qDAAkD,CAAC,CAAC;AAClF,SAASC,sBAAsB,QAAQ,8BAA8B;AACrE,SASEC,gBAAgB,QAEX,uBAAc;AACrB,SAAoBC,UAAU,EAAEC,eAAe,EAAEC,QAAQ,QAAQ,kBAAS;AAG1E,SAASC,wBAAwB,QAAQ,qBAAY;AACrD,SAASC,gBAAgB,QAAQ,gCAAgC;AACjE,SAASC,QAAQ,QAAQ,oBAAoB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA,EAAAC,QAAA,IAAAC,SAAA;AAG9C,MAAMC,UAAU,GAAGC,KAAK,CAACC,IAAI,CAAC;EAAEC,MAAM,EAAE;AAAG,CAAC,EAAE,CAACC,CAAC,EAAEC,CAAC,MAAM;EACvDC,EAAE,EAAE,SAASD,CAAC,GAAG,CAAC,EAAE;EACpB;EACAE,KAAK,EAAE,2CAA2C;EAClDC,KAAK,EAAE,UAAUH,CAAC,GAAG,CAAC;AACxB,CAAC,CAAC,CAAC;AAEH,MAAMI,GAAG,GAAGA,CAAA,KAAM;EAChB,MAAM;IAAEC;EAAM,CAAC,GAAGpB,QAAQ,CAAC,CAAC;EAE5B,MAAM,CAACqB,aAAa,EAAEC,gBAAgB,CAAC,GAAG/B,QAAQ,CAChDgC,SACF,CAAC;EACD,MAAM,CAACC,UAAU,EAAEC,aAAa,CAAC,GAAGlC,QAAQ,CAAqBgC,SAAS,CAAC;EAE3E,MAAM,CAACG,QAAQ,EAAEC,WAAW,CAAC,GAAGpC,QAAQ,CAAC,EAAE,CAAC;EAC5C,MAAMqC,aAAa,GAAGA,CAAA,KAAM;IAC1B;IACA,MAAMC,WAAW,GAAGC,IAAI,CAACC,KAAK,CAACD,IAAI,CAACE,MAAM,CAAC,CAAC,GAAG,GAAG,CAAC;IACnDL,WAAW,CAACE,WAAW,CAAC;EAC1B,CAAC;EAED,oBACExB,IAAA,CAAAI,SAAA;IAAAwB,QAAA,eACE5B,IAAA,CAACH,gBAAgB;MAAA+B,QAAA,eACf5B,IAAA,CAACT,sBAAsB;QAACsC,KAAK,EAAE;UAAEC,IAAI,EAAE;QAAE,CAAE;QAAAF,QAAA,eACzC5B,IAAA,CAACN,eAAe;UAACqB,KAAK,EAAEtB,UAAW;UAAAmC,QAAA,eACjC1B,KAAA,CAACN,wBAAwB;YAAAgC,QAAA,gBACvB5B,IAAA,CAACX,SAAS;cAAC0C,QAAQ,EAAC;YAAe,CAAE,CAAC,eACtC7B,KAAA,CAACf,YAAY;cAAC0C,KAAK,EAAEG,MAAM,CAACC,YAAa;cAAAL,QAAA,gBACvC5B,IAAA,CAACV,iBAAiB;gBAChB4C,IAAI,EAAE7B;gBACN;gBACA;gBACA;gBACA;cAAA,CACD,CAAC,eAMNL,IAAA,CAACR,gBAAgB;gBAAC2C,IAAI,EAAC,OAAO;gBAACC,WAAW,EAAC,YAAY;gBAACC,IAAI,eAAErC,IAAA,CAACF,QAAQ;kBAACwC,IAAI,EAAC,eAAe;kBAACC,IAAI,EAAE;gBAAG,CAAW;cAAE,CAAmB,CAAC;YAAA,CAoEvH,CAAC;UAAA,CACS;QAAC,CACZ;MAAC,CACI;IAAC,CACT;EAAC,CACnB,CAAC;AAEP,CAAC;AAED,MAAMP,MAAM,GAAG5C,UAAU,CAACoD,MAAM,CAAC;EAC/BP,YAAY,EAAE;IACZH,IAAI,EAAE,CAAC;IACPW,eAAe,EAAE,MAAM;IACvBC,cAAc,EAAE,QAAQ;IAAE;IAC1BC,UAAU,EAAC;EACb;AACF,CAAC,CAAC;AAEF,eAAe7B,GAAG","ignoreList":[]}
1
+ {"version":3,"names":["React","useState","SafeAreaView","StyleSheet","StatusBar","CarouselCardStack","GestureHandlerRootView","SelaDealCard","lightTheme","RelatedProvider","useTheme","BottomSheetStackProvider","SafeAreaProvider","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","DUMMY_DATA","Array","from","length","_","i","id","image","title","App","theme","departureDate","setDepartureDate","undefined","returnDate","setReturnDate","progress","setProgress","handleAnimate","newProgress","Math","floor","random","children","style","flex","barStyle","styles","appContainer","data","variant","width","height","label","description","providerName","price","lockOverlay","backgroundImage","require","create","backgroundColor","justifyContent","alignItems"],"sourceRoot":"..\\..\\src","sources":["app.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAeC,QAAQ,QAAQ,OAAO;AAClD,SAASC,YAAY,EAAEC,UAAU,EAAEC,SAAS,QAAkC,cAAc;AAC5F,OAAOC,iBAAiB,MAAM,qDAAkD,CAAC,CAAC;AAClF,SAASC,sBAAsB,QAAQ,8BAA8B;AACrE,SAUEC,YAAY,QACP,uBAAc;AACrB,SAAoBC,UAAU,EAAEC,eAAe,EAAEC,QAAQ,QAAQ,kBAAS;AAG1E,SAASC,wBAAwB,QAAQ,qBAAY;AACrD,SAASC,gBAAgB,QAAQ,gCAAgC;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA,EAAAC,QAAA,IAAAC,SAAA;AAIlE,MAAMC,UAAU,GAAGC,KAAK,CAACC,IAAI,CAAC;EAAEC,MAAM,EAAE;AAAG,CAAC,EAAE,CAACC,CAAC,EAAEC,CAAC,MAAM;EACvDC,EAAE,EAAE,SAASD,CAAC,GAAG,CAAC,EAAE;EACpB;EACAE,KAAK,EAAE,2CAA2C;EAClDC,KAAK,EAAE,UAAUH,CAAC,GAAG,CAAC;AACxB,CAAC,CAAC,CAAC;AAEH,MAAMI,GAAG,GAAGA,CAAA,KAAM;EAChB,MAAM;IAAEC;EAAM,CAAC,GAAGnB,QAAQ,CAAC,CAAC;EAE5B,MAAM,CAACoB,aAAa,EAAEC,gBAAgB,CAAC,GAAG9B,QAAQ,CAChD+B,SACF,CAAC;EACD,MAAM,CAACC,UAAU,EAAEC,aAAa,CAAC,GAAGjC,QAAQ,CAAqB+B,SAAS,CAAC;EAE3E,MAAM,CAACG,QAAQ,EAAEC,WAAW,CAAC,GAAGnC,QAAQ,CAAC,EAAE,CAAC;EAC5C,MAAMoC,aAAa,GAAGA,CAAA,KAAM;IAC1B;IACA,MAAMC,WAAW,GAAGC,IAAI,CAACC,KAAK,CAACD,IAAI,CAACE,MAAM,CAAC,CAAC,GAAG,GAAG,CAAC;IACnDL,WAAW,CAACE,WAAW,CAAC;EAC1B,CAAC;EAED,oBACExB,IAAA,CAAAI,SAAA;IAAAwB,QAAA,eACE5B,IAAA,CAACF,gBAAgB;MAAA8B,QAAA,eACf5B,IAAA,CAACR,sBAAsB;QAACqC,KAAK,EAAE;UAAEC,IAAI,EAAE;QAAE,CAAE;QAAAF,QAAA,eACzC5B,IAAA,CAACL,eAAe;UAACoB,KAAK,EAAErB,UAAW;UAAAkC,QAAA,eACjC1B,KAAA,CAACL,wBAAwB;YAAA+B,QAAA,gBACvB5B,IAAA,CAACV,SAAS;cAACyC,QAAQ,EAAC;YAAe,CAAE,CAAC,eACtC7B,KAAA,CAACd,YAAY;cAACyC,KAAK,EAAEG,MAAM,CAACC,YAAa;cAAAL,QAAA,gBACvC5B,IAAA,CAACT,iBAAiB;gBAChB2C,IAAI,EAAE7B;gBACN;gBACA;gBACA;gBACA;cAAA,CACD,CAAC,eAwDFL,IAAA,CAACP,YAAY;gBACX0C,OAAO,EAAC,YAAY;gBACpBC,KAAK,EAAE,GAAI;gBACXC,MAAM,EAAE,GAAI;gBACZC,KAAK,EAAC,UAAU;gBAChBC,WAAW,EAAC,OAAO;gBACnBC,YAAY,EAAC,WAAW;gBACxBC,KAAK,EAAC,KAAK;gBACXC,WAAW;gBACX;gBAAA;gBACAC,eAAe,EAAEC,OAAO,CAAC,mCAAmC;cAAE,CACjD,CAAC;YAAA,CAEJ,CAAC;UAAA,CACS;QAAC,CACZ;MAAC,CACI;IAAC,CACT;EAAC,CACnB,CAAC;AAEP,CAAC;AAED,MAAMZ,MAAM,GAAG3C,UAAU,CAACwD,MAAM,CAAC;EAC/BZ,YAAY,EAAE;IACZH,IAAI,EAAE,CAAC;IACPgB,eAAe,EAAE,MAAM;IACvBC,cAAc,EAAE,QAAQ;IAAE;IAC1BC,UAAU,EAAC;EACb;AACF,CAAC,CAAC;AAEF,eAAelC,GAAG","ignoreList":[]}
@@ -4,6 +4,7 @@ import React from "react";
4
4
  import { View, TouchableOpacity, StyleSheet, ImageBackground } from "react-native";
5
5
  import { useTheme } from "../../theme/ThemeContext.js";
6
6
  import { LinearGradient } from "expo-linear-gradient";
7
+ import { Grayscale } from "react-native-color-matrix-image-filters";
7
8
  import { jsx as _jsx } from "react/jsx-runtime";
8
9
  const Card = ({
9
10
  children,
@@ -38,19 +39,21 @@ const Card = ({
38
39
  }];
39
40
  const renderCardContent = () => {
40
41
  if (backgroundImage) {
41
- return /*#__PURE__*/_jsx(ImageBackground, {
42
- source: backgroundImage.source,
43
- style: [styles.backgroundImage, backgroundImage.style],
44
- imageStyle: [{
45
- borderRadius
46
- }, backgroundImage.imageStyle],
47
- resizeMode: backgroundImage.resizeMode || "cover",
48
- blurRadius: backgroundImage.blurRadius,
49
- children: /*#__PURE__*/_jsx(View, {
50
- style: [styles.imageContentContainer, {
51
- opacity: backgroundImage.opacity !== undefined ? backgroundImage.opacity : 1
52
- }],
53
- children: children
42
+ return /*#__PURE__*/_jsx(Grayscale, {
43
+ children: /*#__PURE__*/_jsx(ImageBackground, {
44
+ source: backgroundImage.source,
45
+ style: [styles.backgroundImage, backgroundImage.style],
46
+ imageStyle: [{
47
+ borderRadius
48
+ }, backgroundImage.imageStyle],
49
+ resizeMode: backgroundImage.resizeMode || "cover",
50
+ blurRadius: backgroundImage.blurRadius,
51
+ children: /*#__PURE__*/_jsx(View, {
52
+ style: [styles.imageContentContainer, {
53
+ opacity: backgroundImage.opacity !== undefined ? backgroundImage.opacity : 1
54
+ }],
55
+ children: children
56
+ })
54
57
  })
55
58
  });
56
59
  } else if (gradient) {
@@ -1 +1 @@
1
- {"version":3,"names":["React","View","TouchableOpacity","StyleSheet","ImageBackground","useTheme","LinearGradient","jsx","_jsx","Card","children","style","onPress","disabled","elevation","testID","variant","backgroundColor","borderColor","borderRadius","backgroundImage","gradient","theme","getCardStyle","baseStyle","background","cardStyle","styles","card","opacity","renderCardContent","source","imageStyle","resizeMode","blurRadius","imageContentContainer","undefined","colors","start","end","activeOpacity","accessibilityRole","accessibilityLabel","create","flexDirection","display","width","height","flex","justifyContent","alignItems"],"sourceRoot":"..\\..\\..\\..\\src","sources":["components/Card/Card.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","View","TouchableOpacity","StyleSheet","ImageBackground","useTheme","LinearGradient","Grayscale","jsx","_jsx","Card","children","style","onPress","disabled","elevation","testID","variant","backgroundColor","borderColor","borderRadius","backgroundImage","gradient","theme","getCardStyle","baseStyle","background","cardStyle","styles","card","opacity","renderCardContent","source","imageStyle","resizeMode","blurRadius","imageContentContainer","undefined","colors","start","end","activeOpacity","accessibilityRole","accessibilityLabel","create","flexDirection","display","width","height","flex","justifyContent","alignItems"],"sourceRoot":"..\\..\\..\\..\\src","sources":["components/Card/Card.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SACEC,IAAI,EACJC,gBAAgB,EAChBC,UAAU,EAEVC,eAAe,QACV,cAAc;AAErB,SAASC,QAAQ,QAAQ,6BAA0B;AACnD,SAASC,cAAc,QAAQ,sBAAsB;AACrD,SAASC,SAAS,QAAQ,yCAAyC;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAEpE,MAAMC,IAAyB,GAAGA,CAAC;EACjCC,QAAQ;EACRC,KAAK;EACLC,OAAO;EACPC,QAAQ,GAAG,KAAK;EAChBC,SAAS,GAAG,CAAC;EACbC,MAAM;EACNC,OAAO;EACPC,eAAe;EACfC,WAAW;EACXC,YAAY,GAAG,CAAC;EAChBC,eAAe;EACfC;EACA;EACA;AACF,CAAC,KAAK;EACJ,MAAM;IAACC;EAAK,CAAC,GAAGlB,QAAQ,CAAC,CAAC;EAE1B,MAAMmB,YAAY,GAAGA,CAAA,KAAM;IACzB,MAAMC,SAAc,GAAG;MACrBP,eAAe,EAAEA,eAAe,IAAIK,KAAK,CAACG,UAAU;MACpDN;IACF,CAAC;IAED,OAAOK,SAAS;EAClB,CAAC;EAED,MAAME,SAAS,GAAG,CAChBC,MAAM,CAACC,IAAI,EACXL,YAAY,CAAC,CAAC,EACdV,QAAQ,IAAI;IAAEgB,OAAO,EAAE;EAAI,CAAC,EAC5BlB,KAAK,EACLS,eAAe,IAAI;IAAEH,eAAe,EAAE;EAAc,CAAC,CACtD;EAED,MAAMa,iBAAiB,GAAGA,CAAA,KAAM;IAC9B,IAAIV,eAAe,EAAE;MACnB,oBACEZ,IAAA,CAACF,SAAS;QAAAI,QAAA,eACRF,IAAA,CAACL,eAAe;UACd4B,MAAM,EAAEX,eAAe,CAACW,MAAO;UAC/BpB,KAAK,EAAE,CAACgB,MAAM,CAACP,eAAe,EAAEA,eAAe,CAACT,KAAK,CAAE;UACvDqB,UAAU,EAAE,CAAC;YAAEb;UAAa,CAAC,EAAEC,eAAe,CAACY,UAAU,CAAE;UAC3DC,UAAU,EAAEb,eAAe,CAACa,UAAU,IAAI,OAAQ;UAClDC,UAAU,EAAEd,eAAe,CAACc,UAAW;UAAAxB,QAAA,eAEvCF,IAAA,CAACR,IAAI;YACHW,KAAK,EAAE,CACLgB,MAAM,CAACQ,qBAAqB,EAC5B;cACEN,OAAO,EACLT,eAAe,CAACS,OAAO,KAAKO,SAAS,GACjChB,eAAe,CAACS,OAAO,GACvB;YACR,CAAC,CACD;YAAAnB,QAAA,EAEDA;UAAQ,CACL;QAAC,CACQ;MAAC,CACP,CAAC;IAElB,CAAC,MAAM,IAAIW,QAAQ,EAAE;MACnB,oBACEb,IAAA,CAACH,cAAc;QACbgC,MAAM,EAAEhB,QAAQ,CAACgB,MAAc;QAC/BC,KAAK,EAAEjB,QAAQ,CAACiB,KAAM;QACtBC,GAAG,EAAElB,QAAQ,CAACkB,GAAI;QAClB5B,KAAK,EAAE,CAACgB,MAAM,CAACN,QAAQ,EAAE;UAAEF;QAAa,CAAC,EAAEE,QAAQ,CAACV,KAAK,CAAE;QAAAD,QAAA,EAE1DA;MAAQ,CACK,CAAC;IAErB,CAAC,MAAM;MACL,OAAOA,QAAQ;IACjB;EACF,CAAC;EAED,IAAIE,OAAO,EAAE;IACX,oBACEJ,IAAA,CAACP,gBAAgB;MACfU,KAAK,EAAEe,SAAU;MACjBd,OAAO,EAAEA,OAAQ;MACjBC,QAAQ,EAAEA,QAAS;MACnBE,MAAM,EAAEA,MAAO;MACfyB,aAAa,EAAE,GAAI;MACnBC,iBAAiB,EAAC,QAAQ;MAC1BC,kBAAkB,EAAE,MAAO;MAAAhC,QAAA,EAE1BoB,iBAAiB,CAAC;IAAC,CACJ,CAAC;EAEvB;EAEA,oBACEtB,IAAA,CAACR,IAAI;IAACW,KAAK,EAAEe,SAAU;IAACX,MAAM,EAAEA,MAAO;IAAAL,QAAA,EACpCoB,iBAAiB,CAAC;EAAC,CAChB,CAAC;AAEX,CAAC;AAED,MAAMH,MAAM,GAAGzB,UAAU,CAACyC,MAAM,CAAC;EAC/Bf,IAAI,EAAE;IACJT,YAAY,EAAE,CAAC;IACfyB,aAAa,EAAE,QAAQ;IACvBC,OAAO,EAAE;EACX,CAAC;EACDzB,eAAe,EAAE;IACf0B,KAAK,EAAE,MAAM;IACbC,MAAM,EAAE;EACV,CAAC;EACDZ,qBAAqB,EAAE;IACrBa,IAAI,EAAE,CAAC;IACP/B,eAAe,EAAE;EACnB,CAAC;EACDI,QAAQ,EAAE;IACR2B,IAAI,EAAE,CAAC;IACPF,KAAK,EAAE,MAAM;IACbC,MAAM,EAAE,MAAM;IACdE,cAAc,EAAE,YAAY;IAC5BC,UAAU,EAAE;EACd;AACF,CAAC,CAAC;AAEF,eAAezC,IAAI","ignoreList":[]}
@@ -31,7 +31,9 @@ const SelaDealCard = ({
31
31
  darkOverlayEnabled = true,
32
32
  darkOverlayColor = "rgba(0, 0, 0, 0.3)",
33
33
  lockOverlay = false,
34
- priceContainerBlur
34
+ lockIcon,
35
+ priceContainerBlur,
36
+ grayscaleIntensity = 0
35
37
  }) => {
36
38
  const {
37
39
  theme,
@@ -73,7 +75,10 @@ const SelaDealCard = ({
73
75
  }, style],
74
76
  backgroundImage: {
75
77
  source: backgroundImage,
76
- resizeMode: "cover"
78
+ resizeMode: "cover",
79
+ style: {
80
+ filter: `grayscale(${grayscaleIntensity}%)`
81
+ }
77
82
  },
78
83
  children: [darkOverlayEnabled && /*#__PURE__*/_jsx(View, {
79
84
  style: [StyleSheet.absoluteFill, {
@@ -84,7 +89,9 @@ const SelaDealCard = ({
84
89
  }), /*#__PURE__*/_jsx(LockOverlay, {
85
90
  visible: lockOverlay,
86
91
  contentPosition: isRTL ? "top-left" : "top-right",
87
- iconSize: 24,
92
+ icon: lockIcon
93
+ // iconSize={24}
94
+ ,
88
95
  text: "",
89
96
  overlayOpacity: 0.4
90
97
  }), /*#__PURE__*/_jsxs(View, {
@@ -1 +1 @@
1
- {"version":3,"names":["React","useEffect","useState","View","StyleSheet","Image","Card","useTheme","LockOverlay","BlurView","ThemedText","Text","jsx","_jsx","jsxs","_jsxs","SelaDealCard","variant","backgroundImage","label","labelStyle","labelContainerStyle","providerName","providerNameStyle","description","descriptionStyle","price","priceStyle","priceContainerStyle","onPress","style","width","height","isRTL","propIsRTL","borderRadius","darkOverlayEnabled","darkOverlayColor","lockOverlay","priceContainerBlur","theme","themeIsRTL","undefined","styles","getStyles","dynamicHeight","setDynamicHeight","uri","getSize","imgWidth","imgHeight","aspectRatio","finalLabelContainerStyle","labelContainerBase","finalLabelStyle","labelTextBase","finalPriceContainerStyle","priceContainerBase","priceContainerHorizontal","priceContainerVertical","finalPriceStyle","priceTextBase","providerTextStyle","providerNameBase","color","onSurface","descriptionTextStyle","descriptionBase","cardBase","source","resizeMode","children","absoluteFill","backgroundColor","visible","contentPosition","iconSize","text","overlayOpacity","overlayContainer","topSection","bottomContentHorizontal","textBlockHorizontal","bottomContentVertical","textBlockVertical","experimentalBlurMethod","intensity","tint","primary","create","overflow","position","flex","padding","justifyContent","flexDirection","paddingVertical","paddingHorizontal","background","fontWeight","fontSize","onBackground","marginBottom","secondary","helper","onPrimary","alignItems","marginRight","alignSelf"],"sourceRoot":"..\\..\\..\\..\\..\\src","sources":["components/Card/templates/SelaDealCard.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","useEffect","useState","View","StyleSheet","Image","Card","useTheme","LockOverlay","BlurView","ThemedText","Text","jsx","_jsx","jsxs","_jsxs","SelaDealCard","variant","backgroundImage","label","labelStyle","labelContainerStyle","providerName","providerNameStyle","description","descriptionStyle","price","priceStyle","priceContainerStyle","onPress","style","width","height","isRTL","propIsRTL","borderRadius","darkOverlayEnabled","darkOverlayColor","lockOverlay","lockIcon","priceContainerBlur","grayscaleIntensity","theme","themeIsRTL","undefined","styles","getStyles","dynamicHeight","setDynamicHeight","uri","getSize","imgWidth","imgHeight","aspectRatio","finalLabelContainerStyle","labelContainerBase","finalLabelStyle","labelTextBase","finalPriceContainerStyle","priceContainerBase","priceContainerHorizontal","priceContainerVertical","finalPriceStyle","priceTextBase","providerTextStyle","providerNameBase","color","onSurface","descriptionTextStyle","descriptionBase","cardBase","source","resizeMode","filter","children","absoluteFill","backgroundColor","visible","contentPosition","icon","text","overlayOpacity","overlayContainer","topSection","bottomContentHorizontal","textBlockHorizontal","bottomContentVertical","textBlockVertical","experimentalBlurMethod","intensity","tint","primary","create","overflow","position","flex","padding","justifyContent","flexDirection","paddingVertical","paddingHorizontal","background","fontWeight","fontSize","onBackground","marginBottom","secondary","helper","onPrimary","alignItems","marginRight","alignSelf"],"sourceRoot":"..\\..\\..\\..\\..\\src","sources":["components/Card/templates/SelaDealCard.tsx"],"mappings":"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","ignoreList":[]}
@@ -1,11 +1,8 @@
1
1
  "use strict";
2
2
 
3
3
  import React from "react";
4
- import { View, Text, StyleSheet, TouchableOpacity
5
-
6
- // Import StyleProp for better type safety
7
- } from "react-native";
8
- import { Ionicons } from "@expo/vector-icons"; // Assuming you have this installed
4
+ import { View, Text, StyleSheet, TouchableOpacity } from "react-native";
5
+ import { Ionicons } from "@expo/vector-icons";
9
6
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
10
7
  const LockOverlay = ({
11
8
  visible = true,
@@ -14,97 +11,91 @@ const LockOverlay = ({
14
11
  iconStyle,
15
12
  textStyle,
16
13
  text = "Unlock",
17
- // Default text, but can be null or empty
18
- iconName = "lock-closed",
19
- iconSize = 50,
20
- iconColor = "white",
14
+ icon,
21
15
  overlayOpacity = 0.7,
22
16
  contentPosition = "center",
23
17
  contentPadding = 20,
24
- // Default padding for edge positions
18
+ grayscale = false,
25
19
  ...touchableProps
26
20
  }) => {
27
21
  if (!visible) return null;
28
- const overlayStyles = [styles.overlayBase, {
29
- backgroundColor: `rgba(0, 0, 0, ${overlayOpacity})`
30
- }];
31
-
32
- // Apply positioning styles to the main overlay container
22
+ const contentPositionStyle = {};
33
23
  switch (contentPosition) {
34
24
  case "top-center":
35
- overlayStyles.push({
36
- justifyContent: "flex-start",
37
- alignItems: "center",
38
- paddingTop: contentPadding
39
- });
25
+ contentPositionStyle.justifyContent = "flex-start";
26
+ contentPositionStyle.alignItems = "center";
27
+ contentPositionStyle.paddingTop = contentPadding;
40
28
  break;
41
29
  case "top-left":
42
- overlayStyles.push({
43
- justifyContent: "flex-start",
44
- alignItems: "flex-start",
45
- paddingTop: contentPadding,
46
- paddingLeft: contentPadding
47
- });
30
+ contentPositionStyle.justifyContent = "flex-start";
31
+ contentPositionStyle.alignItems = "flex-start";
32
+ contentPositionStyle.paddingTop = contentPadding;
33
+ contentPositionStyle.paddingLeft = contentPadding;
48
34
  break;
49
35
  case "top-right":
50
- overlayStyles.push({
51
- justifyContent: "flex-start",
52
- alignItems: "flex-end",
53
- paddingTop: contentPadding,
54
- paddingRight: contentPadding
55
- });
36
+ contentPositionStyle.justifyContent = "flex-start";
37
+ contentPositionStyle.alignItems = "flex-end";
38
+ contentPositionStyle.paddingTop = contentPadding;
39
+ contentPositionStyle.paddingRight = contentPadding;
56
40
  break;
57
41
  case "center":
58
42
  default:
59
- overlayStyles.push({
60
- justifyContent: "center",
61
- alignItems: "center"
62
- });
43
+ contentPositionStyle.justifyContent = "center";
44
+ contentPositionStyle.alignItems = "center";
63
45
  break;
64
46
  }
65
- overlayStyles.push(containerStyle); // Apply user-provided containerStyle last
66
-
67
- return /*#__PURE__*/_jsx(TouchableOpacity, {
68
- style: overlayStyles,
47
+ return /*#__PURE__*/_jsxs(TouchableOpacity, {
48
+ style: [styles.wrapper, containerStyle],
69
49
  activeOpacity: 0.8,
70
50
  ...touchableProps,
71
- children: /*#__PURE__*/_jsxs(View, {
72
- style: [styles.contentContainerBase, contentContainerStyle],
73
- children: [/*#__PURE__*/_jsx(Ionicons, {
74
- name: iconName // Cast to any if Ionicons types are too strict for dynamic names
75
- ,
76
- size: iconSize,
77
- color: iconColor,
78
- style: iconStyle
79
- }), text && text.trim() !== "" && /*#__PURE__*/_jsx(Text, {
80
- style: [styles.textBase, {
81
- color: iconColor
82
- }, textStyle],
83
- children: text
84
- })]
85
- })
51
+ children: [grayscale && /*#__PURE__*/_jsx(View, {
52
+ style: styles.grayscaleLayer
53
+ }), /*#__PURE__*/_jsx(View, {
54
+ style: [styles.darkTintLayer, {
55
+ backgroundColor: `rgba(0, 0, 0, ${overlayOpacity})`
56
+ }]
57
+ }), /*#__PURE__*/_jsx(View, {
58
+ style: [styles.contentContainer, contentPositionStyle],
59
+ children: /*#__PURE__*/_jsxs(View, {
60
+ style: [styles.content, contentContainerStyle],
61
+ children: [icon || /*#__PURE__*/_jsx(Ionicons, {
62
+ name: "lock-closed",
63
+ size: 30,
64
+ color: "white",
65
+ style: iconStyle
66
+ }), text && text.trim() !== "" && /*#__PURE__*/_jsx(Text, {
67
+ style: [styles.textBase, textStyle],
68
+ children: text
69
+ })]
70
+ })
71
+ })]
86
72
  });
87
73
  };
88
74
  const styles = StyleSheet.create({
89
- overlayBase: {
90
- position: "absolute",
91
- top: 0,
92
- left: 0,
93
- right: 0,
94
- bottom: 0,
95
- zIndex: 999 // Ensure it's on top
75
+ wrapper: {
76
+ ...StyleSheet.absoluteFillObject,
77
+ zIndex: 999
78
+ },
79
+ grayscaleLayer: {
80
+ ...StyleSheet.absoluteFillObject,
81
+ backgroundColor: "white",
82
+ opacity: 0.4 // Adjust this value to control the grayscale intensity
83
+ },
84
+ darkTintLayer: {
85
+ ...StyleSheet.absoluteFillObject
86
+ },
87
+ contentContainer: {
88
+ ...StyleSheet.absoluteFillObject
96
89
  },
97
- contentContainerBase: {
98
- // This container ensures icon and text (if present) are aligned relative to each other
99
- alignItems: "center" // Center text under the icon by default
90
+ content: {
91
+ alignItems: "center"
100
92
  },
101
93
  textBase: {
102
94
  fontSize: 18,
103
- // Adjusted default size slightly
104
95
  fontWeight: "bold",
105
96
  marginTop: 10,
106
- // Adjusted default margin
107
- textAlign: "center"
97
+ textAlign: "center",
98
+ color: "white" // Default text color to white for better visibility
108
99
  }
109
100
  });
110
101
  export default LockOverlay;
@@ -1 +1 @@
1
- {"version":3,"names":["React","View","Text","StyleSheet","TouchableOpacity","Ionicons","jsx","_jsx","jsxs","_jsxs","LockOverlay","visible","containerStyle","contentContainerStyle","iconStyle","textStyle","text","iconName","iconSize","iconColor","overlayOpacity","contentPosition","contentPadding","touchableProps","overlayStyles","styles","overlayBase","backgroundColor","push","justifyContent","alignItems","paddingTop","paddingLeft","paddingRight","style","activeOpacity","children","contentContainerBase","name","size","color","trim","textBase","create","position","top","left","right","bottom","zIndex","fontSize","fontWeight","marginTop","textAlign"],"sourceRoot":"..\\..\\..\\..\\src","sources":["components/LockOverlay/LockOverlay.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SACEC,IAAI,EACJC,IAAI,EACJC,UAAU,EAGVC;;AAEW;AAAA,OACN,cAAc;AAErB,SAASC,QAAQ,QAAQ,oBAAoB,CAAC,CAAC;AAAA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAiB/C,MAAMC,WAAuC,GAAGA,CAAC;EAC/CC,OAAO,GAAG,IAAI;EACdC,cAAc;EACdC,qBAAqB;EACrBC,SAAS;EACTC,SAAS;EACTC,IAAI,GAAG,QAAQ;EAAE;EACjBC,QAAQ,GAAG,aAAa;EACxBC,QAAQ,GAAG,EAAE;EACbC,SAAS,GAAG,OAAO;EACnBC,cAAc,GAAG,GAAG;EACpBC,eAAe,GAAG,QAAQ;EAC1BC,cAAc,GAAG,EAAE;EAAE;EACrB,GAAGC;AACL,CAAC,KAAK;EACJ,IAAI,CAACZ,OAAO,EAAE,OAAO,IAAI;EAEzB,MAAMa,aAAmC,GAAG,CAC1CC,MAAM,CAACC,WAAW,EAClB;IAAEC,eAAe,EAAE,iBAAiBP,cAAc;EAAI,CAAC,CACxD;;EAED;EACA,QAAQC,eAAe;IACrB,KAAK,YAAY;MACfG,aAAa,CAACI,IAAI,CAAC;QACjBC,cAAc,EAAE,YAAY;QAC5BC,UAAU,EAAE,QAAQ;QACpBC,UAAU,EAAET;MACd,CAAC,CAAC;MACF;IACF,KAAK,UAAU;MACbE,aAAa,CAACI,IAAI,CAAC;QACjBC,cAAc,EAAE,YAAY;QAC5BC,UAAU,EAAE,YAAY;QACxBC,UAAU,EAAET,cAAc;QAC1BU,WAAW,EAAEV;MACf,CAAC,CAAC;MACF;IACF,KAAK,WAAW;MACdE,aAAa,CAACI,IAAI,CAAC;QACjBC,cAAc,EAAE,YAAY;QAC5BC,UAAU,EAAE,UAAU;QACtBC,UAAU,EAAET,cAAc;QAC1BW,YAAY,EAAEX;MAChB,CAAC,CAAC;MACF;IACF,KAAK,QAAQ;IACb;MACEE,aAAa,CAACI,IAAI,CAAC;QACjBC,cAAc,EAAE,QAAQ;QACxBC,UAAU,EAAE;MACd,CAAC,CAAC;MACF;EACJ;EAEAN,aAAa,CAACI,IAAI,CAAChB,cAAc,CAAC,CAAC,CAAC;;EAEpC,oBACEL,IAAA,CAACH,gBAAgB;IACf8B,KAAK,EAAEV,aAAc;IACrBW,aAAa,EAAE,GAAI;IAAA,GACfZ,cAAc;IAAAa,QAAA,eAElB3B,KAAA,CAACR,IAAI;MAACiC,KAAK,EAAE,CAACT,MAAM,CAACY,oBAAoB,EAAExB,qBAAqB,CAAE;MAAAuB,QAAA,gBAChE7B,IAAA,CAACF,QAAQ;QACPiC,IAAI,EAAErB,QAAgB,CAAC;QAAA;QACvBsB,IAAI,EAAErB,QAAS;QACfsB,KAAK,EAAErB,SAAU;QACjBe,KAAK,EAAEpB;MAAU,CAClB,CAAC,EAEDE,IAAI,IAAIA,IAAI,CAACyB,IAAI,CAAC,CAAC,KAAK,EAAE,iBACzBlC,IAAA,CAACL,IAAI;QAACgC,KAAK,EAAE,CAACT,MAAM,CAACiB,QAAQ,EAAE;UAAEF,KAAK,EAAErB;QAAU,CAAC,EAAEJ,SAAS,CAAE;QAAAqB,QAAA,EAC7DpB;MAAI,CACD,CACP;IAAA,CACG;EAAC,CACS,CAAC;AAEvB,CAAC;AAED,MAAMS,MAAM,GAAGtB,UAAU,CAACwC,MAAM,CAAC;EAC/BjB,WAAW,EAAE;IACXkB,QAAQ,EAAE,UAAU;IACpBC,GAAG,EAAE,CAAC;IACNC,IAAI,EAAE,CAAC;IACPC,KAAK,EAAE,CAAC;IACRC,MAAM,EAAE,CAAC;IACTC,MAAM,EAAE,GAAG,CAAE;EACf,CAAC;EACDZ,oBAAoB,EAAE;IACpB;IACAP,UAAU,EAAE,QAAQ,CAAE;EACxB,CAAC;EACDY,QAAQ,EAAE;IACRQ,QAAQ,EAAE,EAAE;IAAE;IACdC,UAAU,EAAE,MAAM;IAClBC,SAAS,EAAE,EAAE;IAAE;IACfC,SAAS,EAAE;EACb;AACF,CAAC,CAAC;AAEF,eAAe3C,WAAW","ignoreList":[]}
1
+ {"version":3,"names":["React","View","Text","StyleSheet","TouchableOpacity","Ionicons","jsx","_jsx","jsxs","_jsxs","LockOverlay","visible","containerStyle","contentContainerStyle","iconStyle","textStyle","text","icon","overlayOpacity","contentPosition","contentPadding","grayscale","touchableProps","contentPositionStyle","justifyContent","alignItems","paddingTop","paddingLeft","paddingRight","style","styles","wrapper","activeOpacity","children","grayscaleLayer","darkTintLayer","backgroundColor","contentContainer","content","name","size","color","trim","textBase","create","absoluteFillObject","zIndex","opacity","fontSize","fontWeight","marginTop","textAlign"],"sourceRoot":"..\\..\\..\\..\\src","sources":["components/LockOverlay/LockOverlay.tsx"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../../src/app.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AA+BnD,QAAA,MAAM,GAAG,yBA8GR,CAAC;AAWF,eAAe,GAAG,CAAC"}
1
+ {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../../src/app.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AA+BnD,QAAA,MAAM,GAAG,yBAyGR,CAAC;AAWF,eAAe,GAAG,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"Card.d.ts","sourceRoot":"","sources":["../../../../../src/components/Card/Card.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAQ1B,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAIpC,QAAA,MAAM,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CAqG7B,CAAC;AAyBF,eAAe,IAAI,CAAC"}
1
+ {"version":3,"file":"Card.d.ts","sourceRoot":"","sources":["../../../../../src/components/Card/Card.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAQ1B,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAKpC,QAAA,MAAM,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CAmG7B,CAAC;AAyBF,eAAe,IAAI,CAAC"}
@@ -28,6 +28,8 @@ interface SelaDealCardProps {
28
28
  darkOverlayEnabled?: boolean;
29
29
  darkOverlayColor?: string;
30
30
  lockOverlay?: boolean;
31
+ grayscaleIntensity?: number;
32
+ lockIcon?: React.ReactNode;
31
33
  }
32
34
  declare const SelaDealCard: React.FC<SelaDealCardProps>;
33
35
  export default SelaDealCard;
@@ -1 +1 @@
1
- {"version":3,"file":"SelaDealCard.d.ts","sourceRoot":"","sources":["../../../../../../src/components/Card/templates/SelaDealCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AACnD,OAAO,EAEL,SAAS,EACT,SAAS,EAET,SAAS,EACT,cAAc,EAGd,cAAc,EACf,MAAM,cAAc,CAAC;AAQtB,UAAU,iBAAiB;IACzB,OAAO,EAAE,YAAY,GAAG,UAAU,CAAC;IACnC,eAAe,EAAE,cAAc,CAAC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAClC,mBAAmB,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC3C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACzC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAClC,mBAAmB,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC3C,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,KAAK,CAAC,EAAE,cAAc,CAAC;IACvB,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,QAAA,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAuL7C,CAAC;AAsEF,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"SelaDealCard.d.ts","sourceRoot":"","sources":["../../../../../../src/components/Card/templates/SelaDealCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AACnD,OAAO,EAEL,SAAS,EACT,SAAS,EAET,SAAS,EACT,cAAc,EAGd,cAAc,EACf,MAAM,cAAc,CAAC;AAQtB,UAAU,iBAAiB;IACzB,OAAO,EAAE,YAAY,GAAG,UAAU,CAAC;IACnC,eAAe,EAAE,cAAc,CAAC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAClC,mBAAmB,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC3C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACzC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAClC,mBAAmB,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC3C,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,KAAK,CAAC,EAAE,cAAc,CAAC;IACvB,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED,QAAA,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CA2L7C,CAAC;AAsEF,eAAe,YAAY,CAAC"}
@@ -7,12 +7,15 @@ interface LockOverlayProps extends TouchableOpacityProps {
7
7
  iconStyle?: StyleProp<TextStyle>;
8
8
  textStyle?: StyleProp<TextStyle>;
9
9
  text?: string | null;
10
- iconName?: string;
11
- iconSize?: number;
12
- iconColor?: string;
10
+ icon?: React.ReactNode;
13
11
  overlayOpacity?: number;
14
12
  contentPosition?: "center" | "top-center" | "top-left" | "top-right";
15
13
  contentPadding?: number;
14
+ /**
15
+ * If true, adds a white layer to desaturate the background, creating a grayscale effect.
16
+ * @default false
17
+ */
18
+ grayscale?: boolean;
16
19
  }
17
20
  declare const LockOverlay: React.FC<LockOverlayProps>;
18
21
  export default LockOverlay;
@@ -1 +1 @@
1
- {"version":3,"file":"LockOverlay.d.ts","sourceRoot":"","sources":["../../../../../src/components/LockOverlay/LockOverlay.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAIL,SAAS,EACT,SAAS,EAET,qBAAqB,EACrB,SAAS,EACV,MAAM,cAAc,CAAC;AAItB,UAAU,gBAAiB,SAAQ,qBAAqB;IACtD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,cAAc,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACtC,qBAAqB,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7C,SAAS,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACjC,SAAS,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACjC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,QAAQ,GAAG,YAAY,GAAG,UAAU,GAAG,WAAW,CAAC;IACrE,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,QAAA,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAgF3C,CAAC;AAuBF,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"LockOverlay.d.ts","sourceRoot":"","sources":["../../../../../src/components/LockOverlay/LockOverlay.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAIL,SAAS,EACT,SAAS,EAET,qBAAqB,EACrB,SAAS,EACV,MAAM,cAAc,CAAC;AAItB,UAAU,gBAAiB,SAAQ,qBAAqB;IACtD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,cAAc,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACtC,qBAAqB,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7C,SAAS,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACjC,SAAS,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACjC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,QAAQ,GAAG,YAAY,GAAG,UAAU,GAAG,WAAW,CAAC;IACrE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,QAAA,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CA8E3C,CAAC;AA8BF,eAAe,WAAW,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "related-ui-components",
3
- "version": "2.8.3",
3
+ "version": "2.8.5",
4
4
  "main": "./src/index.ts",
5
5
  "scripts": {
6
6
  "start": "expo start",
@@ -31,9 +31,9 @@
31
31
  "react-native-gesture-handler": "~2.24.0",
32
32
  "react-native-picker-select": "^9.3.1",
33
33
  "react-native-qrcode-svg": "^6.3.15",
34
- "react-native-reanimated": "^3.18.0",
35
34
  "react-native-safe-area-context": ">=5.0.0",
36
- "react-native-svg": "15.11.2"
35
+ "react-native-svg": "15.11.2",
36
+ "react-native-color-matrix-image-filters": "^7.0.2"
37
37
  },
38
38
  "devDependencies": {
39
39
  "@babel/core": "^7.25.2",
@@ -77,6 +77,7 @@
77
77
  "lib/"
78
78
  ],
79
79
  "dependencies": {
80
- "@shopify/flash-list": "^1.8.3"
80
+ "@shopify/flash-list": "^1.8.3",
81
+ "react-native-reanimated": "^3.17.4"
81
82
  }
82
83
  }
package/src/app.tsx CHANGED
@@ -64,7 +64,7 @@ const App = () => {
64
64
  lineCap="round"
65
65
  textFont={""}
66
66
  /> */}
67
- <RedemptionOption text="hello" orientation="horizontal" icon={<Ionicons name="accessibility" size={24}></Ionicons>}></RedemptionOption>
67
+ {/* <RedemptionOption text="hello" orientation="horizontal" icon={<Ionicons name="accessibility" size={24}></Ionicons>}></RedemptionOption> */}
68
68
  {/* <DateRangePicker
69
69
  onDatesChange={(t) => {
70
70
  setDepartureDate(t.departure);
@@ -114,7 +114,7 @@ const App = () => {
114
114
  inputContainerStyle={{ height: 55 }}
115
115
  ></PhoneInput> */}
116
116
 
117
- {/* <SelaDealCard
117
+ <SelaDealCard
118
118
  variant="horizontal"
119
119
  width={300}
120
120
  height={300}
@@ -122,16 +122,11 @@ const App = () => {
122
122
  description="HELLO"
123
123
  providerName="Riva Club"
124
124
  price="100"
125
+ lockOverlay
126
+ // grayscaleIntensity={80}
125
127
  backgroundImage={require("./assets/images/namshi-banner.png")}
126
128
  ></SelaDealCard>
127
- <RedemptionOption
128
- textContainerStyle={{ flex: 1 }}
129
- // containerStyle={{ flex: 1, alignItems: "center" }}
130
- text="hola"
131
- textStyle={{ fontSize: 20 }}
132
- icon={<Ionicons name="accessibility"></Ionicons>}
133
- orientation="horizontal"
134
- ></RedemptionOption> */}
129
+
135
130
  </SafeAreaView>
136
131
  </BottomSheetStackProvider>
137
132
  </RelatedProvider>
@@ -9,6 +9,7 @@ import {
9
9
  import { CardProps } from "./types";
10
10
  import { useTheme } from "../../theme/ThemeContext";
11
11
  import { LinearGradient } from "expo-linear-gradient";
12
+ import { Grayscale } from "react-native-color-matrix-image-filters";
12
13
 
13
14
  const Card: React.FC<CardProps> = ({
14
15
  children,
@@ -48,27 +49,29 @@ const Card: React.FC<CardProps> = ({
48
49
  const renderCardContent = () => {
49
50
  if (backgroundImage) {
50
51
  return (
51
- <ImageBackground
52
- source={backgroundImage.source}
53
- style={[styles.backgroundImage, backgroundImage.style]}
54
- imageStyle={[{ borderRadius }, backgroundImage.imageStyle]}
55
- resizeMode={backgroundImage.resizeMode || "cover"}
56
- blurRadius={backgroundImage.blurRadius}
57
- >
58
- <View
59
- style={[
60
- styles.imageContentContainer,
61
- {
62
- opacity:
63
- backgroundImage.opacity !== undefined
64
- ? backgroundImage.opacity
65
- : 1,
66
- },
67
- ]}
52
+ <Grayscale>
53
+ <ImageBackground
54
+ source={backgroundImage.source}
55
+ style={[styles.backgroundImage, backgroundImage.style]}
56
+ imageStyle={[{ borderRadius }, backgroundImage.imageStyle]}
57
+ resizeMode={backgroundImage.resizeMode || "cover"}
58
+ blurRadius={backgroundImage.blurRadius}
68
59
  >
69
- {children}
70
- </View>
71
- </ImageBackground>
60
+ <View
61
+ style={[
62
+ styles.imageContentContainer,
63
+ {
64
+ opacity:
65
+ backgroundImage.opacity !== undefined
66
+ ? backgroundImage.opacity
67
+ : 1,
68
+ },
69
+ ]}
70
+ >
71
+ {children}
72
+ </View>
73
+ </ImageBackground>
74
+ </Grayscale>
72
75
  );
73
76
  } else if (gradient) {
74
77
  return (
@@ -76,11 +79,7 @@ const Card: React.FC<CardProps> = ({
76
79
  colors={gradient.colors as any}
77
80
  start={gradient.start}
78
81
  end={gradient.end}
79
- style={[
80
- styles.gradient,
81
- { borderRadius },
82
- gradient.style,
83
- ]}
82
+ style={[styles.gradient, { borderRadius }, gradient.style]}
84
83
  >
85
84
  {children}
86
85
  </LinearGradient>
@@ -45,6 +45,8 @@ interface SelaDealCardProps {
45
45
  darkOverlayEnabled?: boolean; // New prop
46
46
  darkOverlayColor?: string; // New prop for custom overlay color
47
47
  lockOverlay?: boolean;
48
+ grayscaleIntensity?: number;
49
+ lockIcon?: React.ReactNode;
48
50
  }
49
51
 
50
52
  const SelaDealCard: React.FC<SelaDealCardProps> = ({
@@ -69,7 +71,9 @@ const SelaDealCard: React.FC<SelaDealCardProps> = ({
69
71
  darkOverlayEnabled = true,
70
72
  darkOverlayColor = "rgba(0, 0, 0, 0.3)",
71
73
  lockOverlay = false,
74
+ lockIcon,
72
75
  priceContainerBlur,
76
+ grayscaleIntensity = 0
73
77
  }) => {
74
78
  const { theme, isRTL: themeIsRTL } = useTheme();
75
79
  const isRTL = propIsRTL !== undefined ? propIsRTL : themeIsRTL;
@@ -143,6 +147,7 @@ const SelaDealCard: React.FC<SelaDealCardProps> = ({
143
147
  backgroundImage={{
144
148
  source: backgroundImage,
145
149
  resizeMode: "cover",
150
+ style:{filter: `grayscale(${grayscaleIntensity}%)`}
146
151
  }}
147
152
  >
148
153
  {darkOverlayEnabled && (
@@ -158,7 +163,8 @@ const SelaDealCard: React.FC<SelaDealCardProps> = ({
158
163
  <LockOverlay
159
164
  visible={lockOverlay}
160
165
  contentPosition={isRTL ? "top-left" : "top-right"}
161
- iconSize={24}
166
+ icon={lockIcon}
167
+ // iconSize={24}
162
168
  text={""}
163
169
  overlayOpacity={0.4}
164
170
  />
@@ -244,7 +250,7 @@ const getStyles = (theme: ThemeType, isRTL: boolean) =>
244
250
  justifyContent: "space-between",
245
251
  },
246
252
  topSection: {
247
- flexDirection:"row"
253
+ flexDirection:"row",
248
254
  },
249
255
  labelContainerBase: {
250
256
  paddingVertical: 6,
@@ -7,24 +7,27 @@ import {
7
7
  TextStyle,
8
8
  TouchableOpacity,
9
9
  TouchableOpacityProps,
10
- StyleProp, // Import StyleProp for better type safety
10
+ StyleProp,
11
11
  } from "react-native";
12
12
 
13
- import { Ionicons } from "@expo/vector-icons"; // Assuming you have this installed
13
+ import { Ionicons } from "@expo/vector-icons";
14
14
 
15
15
  interface LockOverlayProps extends TouchableOpacityProps {
16
16
  visible?: boolean;
17
- containerStyle?: StyleProp<ViewStyle>; // Style for the main TouchableOpacity overlay
18
- contentContainerStyle?: StyleProp<ViewStyle>; // Style for the inner View wrapping icon and text
19
- iconStyle?: StyleProp<TextStyle>; // Ionicons style prop is TextStyle
17
+ containerStyle?: StyleProp<ViewStyle>;
18
+ contentContainerStyle?: StyleProp<ViewStyle>;
19
+ iconStyle?: StyleProp<TextStyle>;
20
20
  textStyle?: StyleProp<TextStyle>;
21
- text?: string | null; // Text is now optional, null explicitly hides it
22
- iconName?: string; // Allow customizing the icon
23
- iconSize?: number;
24
- iconColor?: string;
21
+ text?: string | null;
22
+ icon?: React.ReactNode;
25
23
  overlayOpacity?: number;
26
24
  contentPosition?: "center" | "top-center" | "top-left" | "top-right";
27
- contentPadding?: number; // Padding from edges for top-left/top-right/top-center
25
+ contentPadding?: number;
26
+ /**
27
+ * If true, adds a white layer to desaturate the background, creating a grayscale effect.
28
+ * @default false
29
+ */
30
+ grayscale?: boolean;
28
31
  }
29
32
 
30
33
  const LockOverlay: React.FC<LockOverlayProps> = ({
@@ -33,100 +36,105 @@ const LockOverlay: React.FC<LockOverlayProps> = ({
33
36
  contentContainerStyle,
34
37
  iconStyle,
35
38
  textStyle,
36
- text = "Unlock", // Default text, but can be null or empty
37
- iconName = "lock-closed",
38
- iconSize = 50,
39
- iconColor = "white",
39
+ text = "Unlock",
40
+ icon,
40
41
  overlayOpacity = 0.7,
41
42
  contentPosition = "center",
42
- contentPadding = 20, // Default padding for edge positions
43
+ contentPadding = 20,
44
+ grayscale = false,
43
45
  ...touchableProps
44
46
  }) => {
45
47
  if (!visible) return null;
46
48
 
47
- const overlayStyles: StyleProp<ViewStyle> = [
48
- styles.overlayBase,
49
- { backgroundColor: `rgba(0, 0, 0, ${overlayOpacity})` },
50
- ];
51
-
52
- // Apply positioning styles to the main overlay container
49
+ const contentPositionStyle: StyleProp<ViewStyle> = {};
53
50
  switch (contentPosition) {
54
51
  case "top-center":
55
- overlayStyles.push({
56
- justifyContent: "flex-start",
57
- alignItems: "center",
58
- paddingTop: contentPadding,
59
- });
52
+ contentPositionStyle.justifyContent = "flex-start";
53
+ contentPositionStyle.alignItems = "center";
54
+ contentPositionStyle.paddingTop = contentPadding;
60
55
  break;
61
56
  case "top-left":
62
- overlayStyles.push({
63
- justifyContent: "flex-start",
64
- alignItems: "flex-start",
65
- paddingTop: contentPadding,
66
- paddingLeft: contentPadding,
67
- });
57
+ contentPositionStyle.justifyContent = "flex-start";
58
+ contentPositionStyle.alignItems = "flex-start";
59
+ contentPositionStyle.paddingTop = contentPadding;
60
+ contentPositionStyle.paddingLeft = contentPadding;
68
61
  break;
69
62
  case "top-right":
70
- overlayStyles.push({
71
- justifyContent: "flex-start",
72
- alignItems: "flex-end",
73
- paddingTop: contentPadding,
74
- paddingRight: contentPadding,
75
- });
63
+ contentPositionStyle.justifyContent = "flex-start";
64
+ contentPositionStyle.alignItems = "flex-end";
65
+ contentPositionStyle.paddingTop = contentPadding;
66
+ contentPositionStyle.paddingRight = contentPadding;
76
67
  break;
77
68
  case "center":
78
69
  default:
79
- overlayStyles.push({
80
- justifyContent: "center",
81
- alignItems: "center",
82
- });
70
+ contentPositionStyle.justifyContent = "center";
71
+ contentPositionStyle.alignItems = "center";
83
72
  break;
84
73
  }
85
74
 
86
- overlayStyles.push(containerStyle); // Apply user-provided containerStyle last
87
-
88
75
  return (
89
76
  <TouchableOpacity
90
- style={overlayStyles}
77
+ style={[styles.wrapper, containerStyle]}
91
78
  activeOpacity={0.8}
92
79
  {...touchableProps}
93
80
  >
94
- <View style={[styles.contentContainerBase, contentContainerStyle]}>
95
- <Ionicons
96
- name={iconName as any} // Cast to any if Ionicons types are too strict for dynamic names
97
- size={iconSize}
98
- color={iconColor}
99
- style={iconStyle}
100
- />
101
- {/* Conditionally render text if it's a non-empty string */}
102
- {text && text.trim() !== "" && (
103
- <Text style={[styles.textBase, { color: iconColor }, textStyle]}>
104
- {text}
105
- </Text>
106
- )}
81
+ {/* This layer desaturates the background image */}
82
+ {grayscale && <View style={styles.grayscaleLayer} />}
83
+
84
+ {/* This is the original dark tint layer */}
85
+ <View
86
+ style={[
87
+ styles.darkTintLayer,
88
+ { backgroundColor: `rgba(0, 0, 0, ${overlayOpacity})` },
89
+ ]}
90
+ />
91
+
92
+ {/* This layer holds the actual content (icon and text) */}
93
+ <View style={[styles.contentContainer, contentPositionStyle]}>
94
+ <View style={[styles.content, contentContainerStyle]}>
95
+ {icon || (
96
+ <Ionicons
97
+ name={"lock-closed"}
98
+ size={30}
99
+ color={"white"}
100
+ style={iconStyle}
101
+ />
102
+ )}
103
+
104
+ {text && text.trim() !== "" && (
105
+ <Text style={[styles.textBase, textStyle]}>{text}</Text>
106
+ )}
107
+ </View>
107
108
  </View>
108
109
  </TouchableOpacity>
109
110
  );
110
111
  };
111
112
 
112
113
  const styles = StyleSheet.create({
113
- overlayBase: {
114
- position: "absolute",
115
- top: 0,
116
- left: 0,
117
- right: 0,
118
- bottom: 0,
119
- zIndex: 999, // Ensure it's on top
114
+ wrapper: {
115
+ ...StyleSheet.absoluteFillObject,
116
+ zIndex: 999,
117
+ },
118
+ grayscaleLayer: {
119
+ ...StyleSheet.absoluteFillObject,
120
+ backgroundColor: "white",
121
+ opacity: 0.4, // Adjust this value to control the grayscale intensity
122
+ },
123
+ darkTintLayer: {
124
+ ...StyleSheet.absoluteFillObject,
125
+ },
126
+ contentContainer: {
127
+ ...StyleSheet.absoluteFillObject,
120
128
  },
121
- contentContainerBase: {
122
- // This container ensures icon and text (if present) are aligned relative to each other
123
- alignItems: "center", // Center text under the icon by default
129
+ content: {
130
+ alignItems: "center",
124
131
  },
125
132
  textBase: {
126
- fontSize: 18, // Adjusted default size slightly
133
+ fontSize: 18,
127
134
  fontWeight: "bold",
128
- marginTop: 10, // Adjusted default margin
135
+ marginTop: 10,
129
136
  textAlign: "center",
137
+ color: "white", // Default text color to white for better visibility
130
138
  },
131
139
  });
132
140