@hayanmind/monetai-react-native 0.3.0 → 0.4.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 (134) hide show
  1. package/lib/commonjs/MonetaiProvider.js +45 -23
  2. package/lib/commonjs/MonetaiProvider.js.map +1 -1
  3. package/lib/commonjs/PaywallManager.js +63 -0
  4. package/lib/commonjs/PaywallManager.js.map +1 -0
  5. package/lib/commonjs/components/Banner.js +141 -0
  6. package/lib/commonjs/components/Banner.js.map +1 -0
  7. package/lib/commonjs/components/Paywall.js +236 -0
  8. package/lib/commonjs/components/Paywall.js.map +1 -0
  9. package/lib/commonjs/components/paywall-wrappers/CompactPaywallWrapper.js +61 -0
  10. package/lib/commonjs/components/paywall-wrappers/CompactPaywallWrapper.js.map +1 -0
  11. package/lib/commonjs/components/paywall-wrappers/HighlightBenefitsPaywallWrapper.js +33 -0
  12. package/lib/commonjs/components/paywall-wrappers/HighlightBenefitsPaywallWrapper.js.map +1 -0
  13. package/lib/commonjs/components/paywall-wrappers/KeyFeatureSummaryPaywallWrapper.js +33 -0
  14. package/lib/commonjs/components/paywall-wrappers/KeyFeatureSummaryPaywallWrapper.js.map +1 -0
  15. package/lib/commonjs/components/paywall-wrappers/TextFocusedPaywallWrapper.js +33 -0
  16. package/lib/commonjs/components/paywall-wrappers/TextFocusedPaywallWrapper.js.map +1 -0
  17. package/lib/commonjs/components/paywall-wrappers/index.js +41 -0
  18. package/lib/commonjs/components/paywall-wrappers/index.js.map +1 -0
  19. package/lib/commonjs/constants/paywall.js +11 -0
  20. package/lib/commonjs/constants/paywall.js.map +1 -0
  21. package/lib/commonjs/hooks/useBanner.js +84 -0
  22. package/lib/commonjs/hooks/useBanner.js.map +1 -0
  23. package/lib/commonjs/hooks/useInterval.js +34 -0
  24. package/lib/commonjs/hooks/useInterval.js.map +1 -0
  25. package/lib/commonjs/hooks/usePaywall.js +60 -0
  26. package/lib/commonjs/hooks/usePaywall.js.map +1 -0
  27. package/lib/commonjs/index.js +54 -1
  28. package/lib/commonjs/index.js.map +1 -1
  29. package/lib/commonjs/lib.js +2 -2
  30. package/lib/module/MonetaiProvider.js +48 -25
  31. package/lib/module/MonetaiProvider.js.map +1 -1
  32. package/lib/module/PaywallManager.js +58 -0
  33. package/lib/module/PaywallManager.js.map +1 -0
  34. package/lib/module/components/Banner.js +136 -0
  35. package/lib/module/components/Banner.js.map +1 -0
  36. package/lib/module/components/Paywall.js +230 -0
  37. package/lib/module/components/Paywall.js.map +1 -0
  38. package/lib/module/components/paywall-wrappers/CompactPaywallWrapper.js +55 -0
  39. package/lib/module/components/paywall-wrappers/CompactPaywallWrapper.js.map +1 -0
  40. package/lib/module/components/paywall-wrappers/HighlightBenefitsPaywallWrapper.js +27 -0
  41. package/lib/module/components/paywall-wrappers/HighlightBenefitsPaywallWrapper.js.map +1 -0
  42. package/lib/module/components/paywall-wrappers/KeyFeatureSummaryPaywallWrapper.js +27 -0
  43. package/lib/module/components/paywall-wrappers/KeyFeatureSummaryPaywallWrapper.js.map +1 -0
  44. package/lib/module/components/paywall-wrappers/TextFocusedPaywallWrapper.js +27 -0
  45. package/lib/module/components/paywall-wrappers/TextFocusedPaywallWrapper.js.map +1 -0
  46. package/lib/module/components/paywall-wrappers/index.js +11 -0
  47. package/lib/module/components/paywall-wrappers/index.js.map +1 -0
  48. package/lib/module/constants/paywall.js +7 -0
  49. package/lib/module/constants/paywall.js.map +1 -0
  50. package/lib/module/hooks/useBanner.js +79 -0
  51. package/lib/module/hooks/useBanner.js.map +1 -0
  52. package/lib/module/hooks/useInterval.js +30 -0
  53. package/lib/module/hooks/useInterval.js.map +1 -0
  54. package/lib/module/hooks/usePaywall.js +55 -0
  55. package/lib/module/hooks/usePaywall.js.map +1 -0
  56. package/lib/module/index.js +8 -1
  57. package/lib/module/index.js.map +1 -1
  58. package/lib/module/lib.js +2 -2
  59. package/lib/typescript/commonjs/src/MonetaiProvider.d.ts +3 -7
  60. package/lib/typescript/commonjs/src/MonetaiProvider.d.ts.map +1 -1
  61. package/lib/typescript/commonjs/src/PaywallManager.d.ts +7 -0
  62. package/lib/typescript/commonjs/src/PaywallManager.d.ts.map +1 -0
  63. package/lib/typescript/commonjs/src/components/Banner.d.ts +10 -0
  64. package/lib/typescript/commonjs/src/components/Banner.d.ts.map +1 -0
  65. package/lib/typescript/commonjs/src/components/Paywall.d.ts +14 -0
  66. package/lib/typescript/commonjs/src/components/Paywall.d.ts.map +1 -0
  67. package/lib/typescript/commonjs/src/components/paywall-wrappers/CompactPaywallWrapper.d.ts +8 -0
  68. package/lib/typescript/commonjs/src/components/paywall-wrappers/CompactPaywallWrapper.d.ts.map +1 -0
  69. package/lib/typescript/commonjs/src/components/paywall-wrappers/HighlightBenefitsPaywallWrapper.d.ts +8 -0
  70. package/lib/typescript/commonjs/src/components/paywall-wrappers/HighlightBenefitsPaywallWrapper.d.ts.map +1 -0
  71. package/lib/typescript/commonjs/src/components/paywall-wrappers/KeyFeatureSummaryPaywallWrapper.d.ts +8 -0
  72. package/lib/typescript/commonjs/src/components/paywall-wrappers/KeyFeatureSummaryPaywallWrapper.d.ts.map +1 -0
  73. package/lib/typescript/commonjs/src/components/paywall-wrappers/TextFocusedPaywallWrapper.d.ts +8 -0
  74. package/lib/typescript/commonjs/src/components/paywall-wrappers/TextFocusedPaywallWrapper.d.ts.map +1 -0
  75. package/lib/typescript/commonjs/src/components/paywall-wrappers/index.d.ts +6 -0
  76. package/lib/typescript/commonjs/src/components/paywall-wrappers/index.d.ts.map +1 -0
  77. package/lib/typescript/commonjs/src/constants/paywall.d.ts +3 -0
  78. package/lib/typescript/commonjs/src/constants/paywall.d.ts.map +1 -0
  79. package/lib/typescript/commonjs/src/hooks/useBanner.d.ts +14 -0
  80. package/lib/typescript/commonjs/src/hooks/useBanner.d.ts.map +1 -0
  81. package/lib/typescript/commonjs/src/hooks/useInterval.d.ts +7 -0
  82. package/lib/typescript/commonjs/src/hooks/useInterval.d.ts.map +1 -0
  83. package/lib/typescript/commonjs/src/hooks/usePaywall.d.ts +15 -0
  84. package/lib/typescript/commonjs/src/hooks/usePaywall.d.ts.map +1 -0
  85. package/lib/typescript/commonjs/src/index.d.ts +7 -1
  86. package/lib/typescript/commonjs/src/index.d.ts.map +1 -1
  87. package/lib/typescript/commonjs/src/types.d.ts +48 -2
  88. package/lib/typescript/commonjs/src/types.d.ts.map +1 -1
  89. package/lib/typescript/module/src/MonetaiProvider.d.ts +3 -7
  90. package/lib/typescript/module/src/MonetaiProvider.d.ts.map +1 -1
  91. package/lib/typescript/module/src/PaywallManager.d.ts +7 -0
  92. package/lib/typescript/module/src/PaywallManager.d.ts.map +1 -0
  93. package/lib/typescript/module/src/components/Banner.d.ts +10 -0
  94. package/lib/typescript/module/src/components/Banner.d.ts.map +1 -0
  95. package/lib/typescript/module/src/components/Paywall.d.ts +14 -0
  96. package/lib/typescript/module/src/components/Paywall.d.ts.map +1 -0
  97. package/lib/typescript/module/src/components/paywall-wrappers/CompactPaywallWrapper.d.ts +8 -0
  98. package/lib/typescript/module/src/components/paywall-wrappers/CompactPaywallWrapper.d.ts.map +1 -0
  99. package/lib/typescript/module/src/components/paywall-wrappers/HighlightBenefitsPaywallWrapper.d.ts +8 -0
  100. package/lib/typescript/module/src/components/paywall-wrappers/HighlightBenefitsPaywallWrapper.d.ts.map +1 -0
  101. package/lib/typescript/module/src/components/paywall-wrappers/KeyFeatureSummaryPaywallWrapper.d.ts +8 -0
  102. package/lib/typescript/module/src/components/paywall-wrappers/KeyFeatureSummaryPaywallWrapper.d.ts.map +1 -0
  103. package/lib/typescript/module/src/components/paywall-wrappers/TextFocusedPaywallWrapper.d.ts +8 -0
  104. package/lib/typescript/module/src/components/paywall-wrappers/TextFocusedPaywallWrapper.d.ts.map +1 -0
  105. package/lib/typescript/module/src/components/paywall-wrappers/index.d.ts +6 -0
  106. package/lib/typescript/module/src/components/paywall-wrappers/index.d.ts.map +1 -0
  107. package/lib/typescript/module/src/constants/paywall.d.ts +3 -0
  108. package/lib/typescript/module/src/constants/paywall.d.ts.map +1 -0
  109. package/lib/typescript/module/src/hooks/useBanner.d.ts +14 -0
  110. package/lib/typescript/module/src/hooks/useBanner.d.ts.map +1 -0
  111. package/lib/typescript/module/src/hooks/useInterval.d.ts +7 -0
  112. package/lib/typescript/module/src/hooks/useInterval.d.ts.map +1 -0
  113. package/lib/typescript/module/src/hooks/usePaywall.d.ts +15 -0
  114. package/lib/typescript/module/src/hooks/usePaywall.d.ts.map +1 -0
  115. package/lib/typescript/module/src/index.d.ts +7 -1
  116. package/lib/typescript/module/src/index.d.ts.map +1 -1
  117. package/lib/typescript/module/src/types.d.ts +48 -2
  118. package/lib/typescript/module/src/types.d.ts.map +1 -1
  119. package/package.json +4 -2
  120. package/src/MonetaiProvider.tsx +72 -29
  121. package/src/PaywallManager.tsx +61 -0
  122. package/src/components/Banner.tsx +152 -0
  123. package/src/components/Paywall.tsx +254 -0
  124. package/src/components/paywall-wrappers/CompactPaywallWrapper.tsx +58 -0
  125. package/src/components/paywall-wrappers/HighlightBenefitsPaywallWrapper.tsx +30 -0
  126. package/src/components/paywall-wrappers/KeyFeatureSummaryPaywallWrapper.tsx +30 -0
  127. package/src/components/paywall-wrappers/TextFocusedPaywallWrapper.tsx +30 -0
  128. package/src/components/paywall-wrappers/index.ts +8 -0
  129. package/src/constants/paywall.ts +4 -0
  130. package/src/hooks/useBanner.ts +112 -0
  131. package/src/hooks/useInterval.ts +29 -0
  132. package/src/hooks/usePaywall.ts +73 -0
  133. package/src/index.tsx +36 -1
  134. package/src/types.ts +65 -2
@@ -1 +1 @@
1
- {"version":3,"names":["useEffect","useState","StyleSheet","View","monetaiSDK","getAppUserDiscount","jsx","_jsx","styles","create","container","flex","MonetaiProvider","children","onDiscountInfoChange","discountInfo","setDiscountInfo","emitter","getEmitter","onLoadDiscountInfo","userId","getUserId","sdkKey","getSdkKey","console","warn","discount","app_user_id","startedAt","started_at","endedAt","ended_at","sdk_key","on","off","style"],"sourceRoot":"../../src","sources":["MonetaiProvider.tsx"],"mappings":";;AAAA;AACA,SAASA,SAAS,EAAEC,QAAQ,QAAwB,OAAO;AAC3D,SAASC,UAAU,EAAEC,IAAI,QAAQ,cAAc;AAC/C,OAAOC,UAAU,MAAM,iBAAc;AAErC,SAASC,kBAAkB,QAAQ,iBAAc;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAElD,MAAMC,MAAM,GAAGN,UAAU,CAACO,MAAM,CAAC;EAC/BC,SAAS,EAAE;IAAEC,IAAI,EAAE;EAAE;AACvB,CAAC,CAAC;AAYF;AACA;AACA;AACA;AACA,eAAe,SAASC,eAAeA,CAAC;EACtCC,QAAQ;EACRC;AACoB,CAAC,EAAE;EACvB,MAAM,CAACC,YAAY,EAAEC,eAAe,CAAC,GAAGf,QAAQ,CAAsB,IAAI,CAAC;EAE3ED,SAAS,CAAC,MAAM;IACd,MAAMiB,OAAO,GAAGb,UAAU,CAACc,UAAU,CAAC,CAAC;IACvC,MAAMC,kBAAkB,GAAG,MAAAA,CAAA,KAAY;MACrC,MAAMC,MAAM,GAAG,MAAMhB,UAAU,CAACiB,SAAS,CAAC,CAAC;MAC3C,MAAMC,MAAM,GAAG,MAAMlB,UAAU,CAACmB,SAAS,CAAC,CAAC;MAE3C,IAAIH,MAAM,IAAI,IAAI,IAAIE,MAAM,IAAI,IAAI,EAAE;QACpCE,OAAO,CAACC,IAAI,CAAC,oDAAoD,CAAC;QAClE;MACF;MAEA,MAAMC,QAAQ,GAAG,MAAMrB,kBAAkB,CAAC;QAAEe,MAAM;QAAEE;MAAO,CAAC,CAAC;MAC7D,IAAII,QAAQ,IAAI,IAAI,IAAIA,QAAQ,CAACC,WAAW,KAAKP,MAAM,EAAE;QACvD;MACF;MAEAJ,eAAe,CACbU,QAAQ,IAAI,IAAI,GACZ,IAAI,GACJ;QACEE,SAAS,EAAEF,QAAQ,CAACG,UAAU;QAC9BC,OAAO,EAAEJ,QAAQ,CAACK,QAAQ;QAC1BX,MAAM,EAAEM,QAAQ,CAACC,WAAW;QAC5BL,MAAM,EAAEI,QAAQ,CAACM;MACnB,CACN,CAAC;IACH,CAAC;IAEDf,OAAO,CAACgB,EAAE,CAAC,oBAAoB,EAAEd,kBAAkB,CAAC;IAEpD,OAAO,MAAM;MACXF,OAAO,CAACiB,GAAG,CAAC,oBAAoB,EAAEf,kBAAkB,CAAC;IACvD,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;EAENnB,SAAS,CAAC,MAAM;IACd,IAAIc,oBAAoB,EAAE;MACxBA,oBAAoB,CAACC,YAAY,CAAC;IACpC;EACF,CAAC,EAAE,CAACD,oBAAoB,EAAEC,YAAY,CAAC,CAAC;EAExC,oBACER,IAAA,CAACJ,IAAI;IAACgC,KAAK,EAAE3B,MAAM,CAACE,SAAU;IAAAG,QAAA,EAE3BA;EAAQ,CACL,CAAC;AAEX","ignoreList":[]}
1
+ {"version":3,"names":["useCallback","useEffect","useMemo","useState","StyleSheet","View","monetaiSDK","getAppUserDiscount","PaywallManager","dayjs","isBetween","jsx","_jsx","jsxs","_jsxs","extend","styles","create","container","flex","MonetaiProvider","children","onDiscountInfoChange","paywallConfig","discountInfo","setDiscountInfo","onLoadDiscountInfo","userId","getUserId","sdkKey","getSdkKey","console","warn","discount","app_user_id","newDiscountInfo","startedAt","Date","started_at","endedAt","ended_at","sdk_key","emitter","getEmitter","on","off","isPromotionActive","enabled","isSubscriber","style"],"sourceRoot":"../../src","sources":["MonetaiProvider.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+
3
+ import Banner from "./components/Banner.js";
4
+ import Paywall from "./components/Paywall.js";
5
+ import { useBanner } from "./hooks/useBanner.js";
6
+ import { usePaywall } from "./hooks/usePaywall.js";
7
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
8
+ const PaywallManager = ({
9
+ paywallConfig,
10
+ discountInfo
11
+ }) => {
12
+ // 배너 상태 관리 및 자동 표시 훅 사용
13
+ const {
14
+ bannerVisible,
15
+ bannerParams
16
+ } = useBanner({
17
+ paywallConfig,
18
+ discountInfo
19
+ });
20
+
21
+ // 페이월 상태 관리 훅 사용
22
+ const {
23
+ paywallVisible,
24
+ paywallParams,
25
+ openPaywall,
26
+ closePaywall
27
+ } = usePaywall({
28
+ discountInfo,
29
+ paywallConfig
30
+ });
31
+
32
+ // 페이월 열기 (배너 닫기 + 페이월 열기)
33
+ const handlePaywall = () => {
34
+ openPaywall(); // 페이월 열기
35
+ };
36
+
37
+ // 구매 처리
38
+ const handlePurchase = () => {
39
+ paywallConfig?.onPurchase?.(closePaywall);
40
+ };
41
+ return /*#__PURE__*/_jsxs(_Fragment, {
42
+ children: [bannerParams != null && /*#__PURE__*/_jsx(Banner, {
43
+ visible: bannerVisible,
44
+ onPaywall: handlePaywall,
45
+ bannerParams: bannerParams
46
+ }), paywallParams && /*#__PURE__*/_jsx(Paywall, {
47
+ visible: paywallVisible,
48
+ params: paywallParams,
49
+ onClose: closePaywall,
50
+ onPurchase: handlePurchase,
51
+ onTermsOfService: paywallConfig?.onTermsOfService,
52
+ onPrivacyPolicy: paywallConfig?.onPrivacyPolicy,
53
+ preload: true
54
+ })]
55
+ });
56
+ };
57
+ export default PaywallManager;
58
+ //# sourceMappingURL=PaywallManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Banner","Paywall","useBanner","usePaywall","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","PaywallManager","paywallConfig","discountInfo","bannerVisible","bannerParams","paywallVisible","paywallParams","openPaywall","closePaywall","handlePaywall","handlePurchase","onPurchase","children","visible","onPaywall","params","onClose","onTermsOfService","onPrivacyPolicy","preload"],"sourceRoot":"../../src","sources":["PaywallManager.tsx"],"mappings":";;AAAA,OAAOA,MAAM,MAAM,wBAAqB;AACxC,OAAOC,OAAO,MAAM,yBAAsB;AAC1C,SAASC,SAAS,QAAQ,sBAAmB;AAC7C,SAASC,UAAU,QAAQ,uBAAoB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,QAAA,IAAAC,SAAA,EAAAC,IAAA,IAAAC,KAAA;AAGhD,MAAMC,cAAc,GAAGA,CAAC;EACtBC,aAAa;EACbC;AAIF,CAAC,KAAK;EACJ;EACA,MAAM;IAAEC,aAAa;IAAEC;EAAa,CAAC,GAAGZ,SAAS,CAAC;IAChDS,aAAa;IACbC;EACF,CAAC,CAAC;;EAEF;EACA,MAAM;IAAEG,cAAc;IAAEC,aAAa;IAAEC,WAAW;IAAEC;EAAa,CAAC,GAChEf,UAAU,CAAC;IACTS,YAAY;IACZD;EACF,CAAC,CAAC;;EAEJ;EACA,MAAMQ,aAAa,GAAGA,CAAA,KAAM;IAC1BF,WAAW,CAAC,CAAC,CAAC,CAAC;EACjB,CAAC;;EAED;EACA,MAAMG,cAAc,GAAGA,CAAA,KAAM;IAC3BT,aAAa,EAAEU,UAAU,GAAGH,YAAY,CAAC;EAC3C,CAAC;EAED,oBACET,KAAA,CAAAF,SAAA;IAAAe,QAAA,GACGR,YAAY,IAAI,IAAI,iBACnBT,IAAA,CAACL,MAAM;MACLuB,OAAO,EAAEV,aAAc;MACvBW,SAAS,EAAEL,aAAc;MACzBL,YAAY,EAAEA;IAAa,CAC5B,CACF,EACAE,aAAa,iBACZX,IAAA,CAACJ,OAAO;MACNsB,OAAO,EAAER,cAAe;MACxBU,MAAM,EAAET,aAAc;MACtBU,OAAO,EAAER,YAAa;MACtBG,UAAU,EAAED,cAAe;MAC3BO,gBAAgB,EAAEhB,aAAa,EAAEgB,gBAAiB;MAClDC,eAAe,EAAEjB,aAAa,EAAEiB,eAAgB;MAChDC,OAAO;IAAA,CACR,CACF;EAAA,CACD,CAAC;AAEP,CAAC;AAED,eAAenB,cAAc","ignoreList":[]}
@@ -0,0 +1,136 @@
1
+ "use strict";
2
+
3
+ import React, { useState } from 'react';
4
+ import { View, StyleSheet } from 'react-native';
5
+ import { WebView } from 'react-native-webview';
6
+ import { PAYWELL_BASE_URL, WEBVIEW_USER_AGENT } from "../constants/paywall.js";
7
+ import { jsx as _jsx } from "react/jsx-runtime";
8
+ const MESSAGE_KEY_CLICK_BANNER = 'CLICK_BANNER';
9
+ const Banner = ({
10
+ visible,
11
+ onPaywall,
12
+ bannerParams
13
+ }) => {
14
+ const [isLoaded, setIsLoaded] = useState(false);
15
+ const [hasWebViewError, setHasWebViewError] = useState(false);
16
+ const handleWebViewMessage = event => {
17
+ const message = event.nativeEvent.data;
18
+ if (message === MESSAGE_KEY_CLICK_BANNER) {
19
+ onPaywall();
20
+ }
21
+ };
22
+ const getBannerWebViewUrl = () => {
23
+ // Banner 컴포넌트에서 직접 URL 생성
24
+ const baseUrl = `${PAYWELL_BASE_URL}/banner`;
25
+ const bannerStyle = bannerParams.style;
26
+
27
+ // 기본 파라미터들
28
+ const params = new URLSearchParams();
29
+ params.append('discount', bannerParams.discountPercent.toString());
30
+ params.append('locale', bannerParams.locale);
31
+ params.append('endedAt', bannerParams.endedAt.toISOString());
32
+ const url = `${baseUrl}/${bannerStyle}?${params.toString()}`;
33
+ return url;
34
+ };
35
+ const isCompactStyle = bannerParams.style === 'compact';
36
+ const isKeyFeatureSummaryStyle = bannerParams.style === 'key-feature-summary';
37
+ const isHighlightBenefitsStyle = bannerParams.style === 'highlight-benefits';
38
+ const isTextFocusedStyle = bannerParams.style === 'text-focused';
39
+ if (!visible || hasWebViewError) return null;
40
+ return /*#__PURE__*/_jsx(View, {
41
+ style: [styles.bannerContainer, {
42
+ bottom: bannerParams.bottom ?? 20
43
+ }, bannerParams.zIndex != null && {
44
+ zIndex: bannerParams.zIndex
45
+ }, bannerParams.elevation != null && {
46
+ elevation: bannerParams.elevation
47
+ }, isCompactStyle && styles.compactBannerContainer, isKeyFeatureSummaryStyle && styles.keyFeatureSummaryBannerContainer, isHighlightBenefitsStyle && styles.highlightBenefitsBannerContainer, isCompactStyle && styles.noShadow, isTextFocusedStyle && styles.redShadow, isKeyFeatureSummaryStyle && styles.blackShadow, isHighlightBenefitsStyle && styles.blackShadow, isLoaded ? styles.visible : styles.hidden],
48
+ pointerEvents: isLoaded ? 'auto' : 'none',
49
+ children: /*#__PURE__*/_jsx(View, {
50
+ style: styles.innerRoundedContainer,
51
+ children: /*#__PURE__*/_jsx(WebView, {
52
+ source: {
53
+ uri: getBannerWebViewUrl()
54
+ },
55
+ onMessage: handleWebViewMessage,
56
+ onLoadStart: () => setIsLoaded(false),
57
+ onLoadEnd: () => setIsLoaded(true),
58
+ onError: () => {
59
+ console.error('[MonetaiSDK] Banner WebView onError');
60
+ setHasWebViewError(true);
61
+ },
62
+ onHttpError: () => {
63
+ console.error('[MonetaiSDK] Banner WebView onHttpError');
64
+ setHasWebViewError(true);
65
+ },
66
+ javaScriptEnabled: true,
67
+ userAgent: WEBVIEW_USER_AGENT,
68
+ style: styles.webView
69
+ })
70
+ })
71
+ });
72
+ };
73
+ const styles = StyleSheet.create({
74
+ bannerContainer: {
75
+ position: 'absolute',
76
+ left: 12,
77
+ right: 12,
78
+ height: 45,
79
+ // 기본 높이
80
+ backgroundColor: 'white',
81
+ borderRadius: 12,
82
+ // 둥근 모서리
83
+ shadowColor: 'rgba(0, 0, 0, 0.25)',
84
+ shadowOffset: {
85
+ width: 0,
86
+ height: 4
87
+ },
88
+ shadowOpacity: 1,
89
+ shadowRadius: 10,
90
+ elevation: 8,
91
+ flexDirection: 'row',
92
+ alignItems: 'center',
93
+ justifyContent: 'center',
94
+ zIndex: 1000
95
+ },
96
+ compactBannerContainer: {
97
+ height: 68 // compact 스타일일 때 높이
98
+ },
99
+ noShadow: {
100
+ shadowColor: 'transparent',
101
+ shadowOffset: {
102
+ width: 0,
103
+ height: 0
104
+ },
105
+ shadowOpacity: 0,
106
+ shadowRadius: 0
107
+ },
108
+ webView: {
109
+ flex: 1
110
+ },
111
+ visible: {
112
+ opacity: 1
113
+ },
114
+ hidden: {
115
+ opacity: 0
116
+ },
117
+ innerRoundedContainer: {
118
+ flex: 1,
119
+ borderRadius: 12,
120
+ overflow: 'hidden'
121
+ },
122
+ keyFeatureSummaryBannerContainer: {
123
+ height: 56 // key-feature-summary 스타일일 때 높이
124
+ },
125
+ highlightBenefitsBannerContainer: {
126
+ height: 56 // highlight-benefits 스타일일 때 높이
127
+ },
128
+ blackShadow: {
129
+ shadowColor: 'rgba(0, 0, 0, 0.25)'
130
+ },
131
+ redShadow: {
132
+ shadowColor: 'rgba(228, 78, 72, 0.25)'
133
+ }
134
+ });
135
+ export default Banner;
136
+ //# sourceMappingURL=Banner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","useState","View","StyleSheet","WebView","PAYWELL_BASE_URL","WEBVIEW_USER_AGENT","jsx","_jsx","MESSAGE_KEY_CLICK_BANNER","Banner","visible","onPaywall","bannerParams","isLoaded","setIsLoaded","hasWebViewError","setHasWebViewError","handleWebViewMessage","event","message","nativeEvent","data","getBannerWebViewUrl","baseUrl","bannerStyle","style","params","URLSearchParams","append","discountPercent","toString","locale","endedAt","toISOString","url","isCompactStyle","isKeyFeatureSummaryStyle","isHighlightBenefitsStyle","isTextFocusedStyle","styles","bannerContainer","bottom","zIndex","elevation","compactBannerContainer","keyFeatureSummaryBannerContainer","highlightBenefitsBannerContainer","noShadow","redShadow","blackShadow","hidden","pointerEvents","children","innerRoundedContainer","source","uri","onMessage","onLoadStart","onLoadEnd","onError","console","error","onHttpError","javaScriptEnabled","userAgent","webView","create","position","left","right","height","backgroundColor","borderRadius","shadowColor","shadowOffset","width","shadowOpacity","shadowRadius","flexDirection","alignItems","justifyContent","flex","opacity","overflow"],"sourceRoot":"../../../src","sources":["components/Banner.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,230 @@
1
+ "use strict";
2
+
3
+ import React, { useState } from 'react';
4
+ import { ActivityIndicator, StyleSheet, View, Text, TouchableOpacity } from 'react-native';
5
+ import { WebView } from 'react-native-webview';
6
+ import { PAYWELL_BASE_URL, WEBVIEW_USER_AGENT } from "../constants/paywall.js";
7
+ import CompactPaywallWrapper from "./paywall-wrappers/CompactPaywallWrapper.js";
8
+ import HighlightBenefitsPaywallWrapper from "./paywall-wrappers/HighlightBenefitsPaywallWrapper.js";
9
+ import KeyFeatureSummaryPaywallWrapper from "./paywall-wrappers/KeyFeatureSummaryPaywallWrapper.js";
10
+ import TextFocusedPaywallWrapper from "./paywall-wrappers/TextFocusedPaywallWrapper.js";
11
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
12
+ const MESSAGE_KEY_PURCHASE_BUTTON = 'CLICK_PURCHASE_BUTTON';
13
+ const MESSAGE_KEY_CLOSE_BUTTON = 'CLICK_CLOSE_BUTTON';
14
+ const MESSAGE_KEY_TERMS_OF_SERVICE = 'CLICK_TERMS_OF_SERVICE';
15
+ const MESSAGE_KEY_PRIVACY_POLICY = 'CLICK_PRIVACY_POLICY';
16
+ const Paywall = ({
17
+ visible,
18
+ preload,
19
+ onClose,
20
+ onPurchase,
21
+ onTermsOfService,
22
+ onPrivacyPolicy,
23
+ params
24
+ }) => {
25
+ const [isLoaded, setIsLoaded] = useState(false);
26
+ const [hasWebViewError, setHasWebViewError] = useState(false);
27
+ const handleWebViewMessage = event => {
28
+ switch (event.nativeEvent.data) {
29
+ case MESSAGE_KEY_PURCHASE_BUTTON:
30
+ onPurchase();
31
+ break;
32
+ case MESSAGE_KEY_CLOSE_BUTTON:
33
+ onClose();
34
+ break;
35
+ case MESSAGE_KEY_TERMS_OF_SERVICE:
36
+ onTermsOfService?.();
37
+ break;
38
+ case MESSAGE_KEY_PRIVACY_POLICY:
39
+ onPrivacyPolicy?.();
40
+ break;
41
+ }
42
+ };
43
+ const getPaywallWebViewUrl = () => {
44
+ // monetai-web의 현재 구조에 맞춰 URL 생성
45
+ // 각 스타일별로 별도의 페이지가 있으므로 직접 스타일을 URL에 포함
46
+ const baseUrl = `${PAYWELL_BASE_URL}/paywall`;
47
+ const paywallStyle = params.style;
48
+ const searchParams = new URLSearchParams();
49
+ if (params.discountPercent) {
50
+ searchParams.append('discount', params.discountPercent);
51
+ }
52
+ if (params.endedAt) {
53
+ searchParams.append('endedAt', params.endedAt);
54
+ }
55
+ if (params.regularPrice) {
56
+ searchParams.append('regularPrice', params.regularPrice);
57
+ }
58
+ if (params.discountedPrice) {
59
+ searchParams.append('discountedPrice', params.discountedPrice);
60
+ }
61
+ if (params.locale) {
62
+ searchParams.append('locale', params.locale);
63
+ }
64
+ if (params.features) {
65
+ searchParams.append('features', JSON.stringify(params.features));
66
+ }
67
+ const queryString = searchParams.toString();
68
+ const url = `${baseUrl}/${paywallStyle}${queryString ? `?${queryString}` : ''}`;
69
+ return url;
70
+ };
71
+
72
+ // 프리로드 옵션이 없고 보이지도 않으면 렌더하지 않음
73
+ if (!visible && !preload) return null;
74
+
75
+ // 스타일에 따른 래퍼 선택
76
+ const getPaywallWrapper = () => {
77
+ const style = params.style;
78
+ const url = getPaywallWebViewUrl();
79
+
80
+ // 공통 WebView 컴포넌트
81
+ const commonWebView = /*#__PURE__*/_jsxs(_Fragment, {
82
+ children: [!isLoaded && /*#__PURE__*/_jsx(View, {
83
+ style: styles.loadingContainer,
84
+ pointerEvents: "none",
85
+ children: /*#__PURE__*/_jsx(ActivityIndicator, {
86
+ size: "small"
87
+ })
88
+ }), /*#__PURE__*/_jsx(WebView, {
89
+ source: {
90
+ uri: url
91
+ },
92
+ onMessage: handleWebViewMessage,
93
+ onLoadStart: () => {
94
+ setIsLoaded(false);
95
+ },
96
+ onLoadEnd: () => {
97
+ setIsLoaded(true);
98
+ },
99
+ onError: () => {
100
+ console.error('[MonetaiSDK] Paywall WebView onError');
101
+ setIsLoaded(true);
102
+ setHasWebViewError(true);
103
+ },
104
+ onHttpError: () => {
105
+ console.error('[MonetaiSDK] Paywall WebView onHttpError');
106
+ setIsLoaded(true);
107
+ setHasWebViewError(true);
108
+ },
109
+ javaScriptEnabled: true,
110
+ userAgent: WEBVIEW_USER_AGENT,
111
+ style: [styles.webView, !isLoaded && styles.webViewHidden]
112
+ }), hasWebViewError && /*#__PURE__*/_jsx(View, {
113
+ style: styles.errorOverlay,
114
+ pointerEvents: "auto",
115
+ children: /*#__PURE__*/_jsxs(View, {
116
+ style: styles.errorCard,
117
+ children: [/*#__PURE__*/_jsx(Text, {
118
+ style: styles.errorTitle,
119
+ children: "Failed to load"
120
+ }), /*#__PURE__*/_jsx(Text, {
121
+ style: styles.errorMessage,
122
+ children: "An unexpected error occurred while loading the paywall."
123
+ }), /*#__PURE__*/_jsx(TouchableOpacity, {
124
+ style: styles.errorButton,
125
+ onPress: onClose,
126
+ children: /*#__PURE__*/_jsx(Text, {
127
+ style: styles.errorButtonText,
128
+ children: "Close"
129
+ })
130
+ })]
131
+ })
132
+ })]
133
+ });
134
+ switch (style) {
135
+ case 'compact':
136
+ return /*#__PURE__*/_jsx(CompactPaywallWrapper, {
137
+ onClose: onClose,
138
+ children: commonWebView
139
+ });
140
+ case 'highlight-benefits':
141
+ return /*#__PURE__*/_jsx(HighlightBenefitsPaywallWrapper, {
142
+ onClose: onClose,
143
+ children: commonWebView
144
+ });
145
+ case 'key-feature-summary':
146
+ return /*#__PURE__*/_jsx(KeyFeatureSummaryPaywallWrapper, {
147
+ onClose: onClose,
148
+ children: commonWebView
149
+ });
150
+ case 'text-focused':
151
+ default:
152
+ return /*#__PURE__*/_jsx(TextFocusedPaywallWrapper, {
153
+ onClose: onClose,
154
+ children: commonWebView
155
+ });
156
+ }
157
+ };
158
+ return /*#__PURE__*/_jsx(View, {
159
+ style: [styles.overlayContainer, params.zIndex != null && {
160
+ zIndex: params.zIndex
161
+ }, params.elevation != null && {
162
+ elevation: params.elevation
163
+ }, !visible && styles.overlayHidden],
164
+ pointerEvents: visible ? 'auto' : 'none',
165
+ children: getPaywallWrapper()
166
+ });
167
+ };
168
+ const styles = StyleSheet.create({
169
+ webView: {
170
+ flex: 1
171
+ },
172
+ webViewHidden: {
173
+ opacity: 0
174
+ },
175
+ overlayContainer: {
176
+ position: 'absolute',
177
+ top: 0,
178
+ left: 0,
179
+ right: 0,
180
+ bottom: 0,
181
+ zIndex: 2000,
182
+ elevation: 16
183
+ },
184
+ overlayHidden: {
185
+ opacity: 0
186
+ },
187
+ loadingContainer: {
188
+ ...StyleSheet.absoluteFillObject,
189
+ alignItems: 'center',
190
+ justifyContent: 'center',
191
+ backgroundColor: 'white'
192
+ },
193
+ errorOverlay: {
194
+ ...StyleSheet.absoluteFillObject,
195
+ backgroundColor: 'rgba(0,0,0,0.4)',
196
+ alignItems: 'center',
197
+ justifyContent: 'center'
198
+ },
199
+ errorCard: {
200
+ width: '80%',
201
+ backgroundColor: 'white',
202
+ borderRadius: 12,
203
+ padding: 16,
204
+ alignItems: 'center'
205
+ },
206
+ errorTitle: {
207
+ fontSize: 16,
208
+ fontWeight: '600',
209
+ marginBottom: 8
210
+ },
211
+ errorMessage: {
212
+ fontSize: 13,
213
+ color: '#666',
214
+ textAlign: 'center',
215
+ marginBottom: 12
216
+ },
217
+ errorButton: {
218
+ marginTop: 4,
219
+ backgroundColor: '#111827',
220
+ borderRadius: 8,
221
+ paddingHorizontal: 16,
222
+ paddingVertical: 10
223
+ },
224
+ errorButtonText: {
225
+ color: 'white',
226
+ fontWeight: '600'
227
+ }
228
+ });
229
+ export default Paywall;
230
+ //# sourceMappingURL=Paywall.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","useState","ActivityIndicator","StyleSheet","View","Text","TouchableOpacity","WebView","PAYWELL_BASE_URL","WEBVIEW_USER_AGENT","CompactPaywallWrapper","HighlightBenefitsPaywallWrapper","KeyFeatureSummaryPaywallWrapper","TextFocusedPaywallWrapper","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","MESSAGE_KEY_PURCHASE_BUTTON","MESSAGE_KEY_CLOSE_BUTTON","MESSAGE_KEY_TERMS_OF_SERVICE","MESSAGE_KEY_PRIVACY_POLICY","Paywall","visible","preload","onClose","onPurchase","onTermsOfService","onPrivacyPolicy","params","isLoaded","setIsLoaded","hasWebViewError","setHasWebViewError","handleWebViewMessage","event","nativeEvent","data","getPaywallWebViewUrl","baseUrl","paywallStyle","style","searchParams","URLSearchParams","discountPercent","append","endedAt","regularPrice","discountedPrice","locale","features","JSON","stringify","queryString","toString","url","getPaywallWrapper","commonWebView","children","styles","loadingContainer","pointerEvents","size","source","uri","onMessage","onLoadStart","onLoadEnd","onError","console","error","onHttpError","javaScriptEnabled","userAgent","webView","webViewHidden","errorOverlay","errorCard","errorTitle","errorMessage","errorButton","onPress","errorButtonText","overlayContainer","zIndex","elevation","overlayHidden","create","flex","opacity","position","top","left","right","bottom","absoluteFillObject","alignItems","justifyContent","backgroundColor","width","borderRadius","padding","fontSize","fontWeight","marginBottom","color","textAlign","marginTop","paddingHorizontal","paddingVertical"],"sourceRoot":"../../../src","sources":["components/Paywall.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+
3
+ import React from 'react';
4
+ import { StyleSheet, TouchableOpacity, View } from 'react-native';
5
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
6
+ // Compact 스타일 래퍼: 하단에 붙어서 372px 높이, dim background 클릭 시 닫기
7
+ export const CompactPaywallWrapper = ({
8
+ onClose,
9
+ children
10
+ }) => {
11
+ return /*#__PURE__*/_jsxs(View, {
12
+ style: styles.compactPaywallContainer,
13
+ children: [/*#__PURE__*/_jsx(TouchableOpacity, {
14
+ style: styles.dimBackground,
15
+ activeOpacity: 1,
16
+ onPress: onClose
17
+ }), /*#__PURE__*/_jsx(View, {
18
+ style: styles.compactPaywallContent,
19
+ children: children
20
+ })]
21
+ });
22
+ };
23
+ const styles = StyleSheet.create({
24
+ compactPaywallContainer: {
25
+ position: 'absolute',
26
+ top: 0,
27
+ left: 0,
28
+ right: 0,
29
+ bottom: 0,
30
+ zIndex: 2000
31
+ },
32
+ dimBackground: {
33
+ position: 'absolute',
34
+ top: 0,
35
+ left: 0,
36
+ right: 0,
37
+ bottom: 0,
38
+ backgroundColor: 'rgba(0, 0, 0, 0.5)'
39
+ },
40
+ compactPaywallContent: {
41
+ position: 'absolute',
42
+ bottom: 0,
43
+ // 하단에 붙음
44
+ left: 0,
45
+ // 여백 제거
46
+ right: 0,
47
+ // 여백 제거
48
+ height: 372,
49
+ backgroundColor: 'white',
50
+ borderRadius: 12,
51
+ overflow: 'hidden'
52
+ }
53
+ });
54
+ export default CompactPaywallWrapper;
55
+ //# sourceMappingURL=CompactPaywallWrapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","StyleSheet","TouchableOpacity","View","jsx","_jsx","jsxs","_jsxs","CompactPaywallWrapper","onClose","children","style","styles","compactPaywallContainer","dimBackground","activeOpacity","onPress","compactPaywallContent","create","position","top","left","right","bottom","zIndex","backgroundColor","height","borderRadius","overflow"],"sourceRoot":"../../../../src","sources":["components/paywall-wrappers/CompactPaywallWrapper.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,UAAU,EAAEC,gBAAgB,EAAEC,IAAI,QAAQ,cAAc;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAOlE;AACA,OAAO,MAAMC,qBAA2D,GAAGA,CAAC;EAC1EC,OAAO;EACPC;AACF,CAAC,KAAK;EACJ,oBACEH,KAAA,CAACJ,IAAI;IAACQ,KAAK,EAAEC,MAAM,CAACC,uBAAwB;IAAAH,QAAA,gBAE1CL,IAAA,CAACH,gBAAgB;MACfS,KAAK,EAAEC,MAAM,CAACE,aAAc;MAC5BC,aAAa,EAAE,CAAE;MACjBC,OAAO,EAAEP;IAAQ,CAClB,CAAC,eAGFJ,IAAA,CAACF,IAAI;MAACQ,KAAK,EAAEC,MAAM,CAACK,qBAAsB;MAAAP,QAAA,EAAEA;IAAQ,CAAO,CAAC;EAAA,CACxD,CAAC;AAEX,CAAC;AAED,MAAME,MAAM,GAAGX,UAAU,CAACiB,MAAM,CAAC;EAC/BL,uBAAuB,EAAE;IACvBM,QAAQ,EAAE,UAAU;IACpBC,GAAG,EAAE,CAAC;IACNC,IAAI,EAAE,CAAC;IACPC,KAAK,EAAE,CAAC;IACRC,MAAM,EAAE,CAAC;IACTC,MAAM,EAAE;EACV,CAAC;EACDV,aAAa,EAAE;IACbK,QAAQ,EAAE,UAAU;IACpBC,GAAG,EAAE,CAAC;IACNC,IAAI,EAAE,CAAC;IACPC,KAAK,EAAE,CAAC;IACRC,MAAM,EAAE,CAAC;IACTE,eAAe,EAAE;EACnB,CAAC;EACDR,qBAAqB,EAAE;IACrBE,QAAQ,EAAE,UAAU;IACpBI,MAAM,EAAE,CAAC;IAAE;IACXF,IAAI,EAAE,CAAC;IAAE;IACTC,KAAK,EAAE,CAAC;IAAE;IACVI,MAAM,EAAE,GAAG;IACXD,eAAe,EAAE,OAAO;IACxBE,YAAY,EAAE,EAAE;IAChBC,QAAQ,EAAE;EACZ;AACF,CAAC,CAAC;AAEF,eAAepB,qBAAqB","ignoreList":[]}
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+
3
+ import React from 'react';
4
+ import { StyleSheet, SafeAreaView } from 'react-native';
5
+ import { jsx as _jsx } from "react/jsx-runtime";
6
+ // Highlight Benefits 스타일 래퍼: 전체 화면을 차지
7
+ export const HighlightBenefitsPaywallWrapper = ({
8
+ children
9
+ }) => {
10
+ return /*#__PURE__*/_jsx(SafeAreaView, {
11
+ style: styles.fullScreenContainer,
12
+ children: children
13
+ });
14
+ };
15
+ const styles = StyleSheet.create({
16
+ fullScreenContainer: {
17
+ position: 'absolute',
18
+ top: 0,
19
+ left: 0,
20
+ right: 0,
21
+ bottom: 0,
22
+ backgroundColor: 'white',
23
+ zIndex: 2000
24
+ }
25
+ });
26
+ export default HighlightBenefitsPaywallWrapper;
27
+ //# sourceMappingURL=HighlightBenefitsPaywallWrapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","StyleSheet","SafeAreaView","jsx","_jsx","HighlightBenefitsPaywallWrapper","children","style","styles","fullScreenContainer","create","position","top","left","right","bottom","backgroundColor","zIndex"],"sourceRoot":"../../../../src","sources":["components/paywall-wrappers/HighlightBenefitsPaywallWrapper.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,UAAU,EAAEC,YAAY,QAAQ,cAAc;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAOxD;AACA,OAAO,MAAMC,+BAEZ,GAAGA,CAAC;EAAEC;AAAS,CAAC,KAAK;EACpB,oBACEF,IAAA,CAACF,YAAY;IAACK,KAAK,EAAEC,MAAM,CAACC,mBAAoB;IAAAH,QAAA,EAAEA;EAAQ,CAAe,CAAC;AAE9E,CAAC;AAED,MAAME,MAAM,GAAGP,UAAU,CAACS,MAAM,CAAC;EAC/BD,mBAAmB,EAAE;IACnBE,QAAQ,EAAE,UAAU;IACpBC,GAAG,EAAE,CAAC;IACNC,IAAI,EAAE,CAAC;IACPC,KAAK,EAAE,CAAC;IACRC,MAAM,EAAE,CAAC;IACTC,eAAe,EAAE,OAAO;IACxBC,MAAM,EAAE;EACV;AACF,CAAC,CAAC;AAEF,eAAeZ,+BAA+B","ignoreList":[]}
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+
3
+ import React from 'react';
4
+ import { StyleSheet, SafeAreaView } from 'react-native';
5
+ import { jsx as _jsx } from "react/jsx-runtime";
6
+ // Key Feature Summary 스타일 래퍼: 전체 화면을 차지
7
+ export const KeyFeatureSummaryPaywallWrapper = ({
8
+ children
9
+ }) => {
10
+ return /*#__PURE__*/_jsx(SafeAreaView, {
11
+ style: styles.fullScreenContainer,
12
+ children: children
13
+ });
14
+ };
15
+ const styles = StyleSheet.create({
16
+ fullScreenContainer: {
17
+ position: 'absolute',
18
+ top: 0,
19
+ left: 0,
20
+ right: 0,
21
+ bottom: 0,
22
+ backgroundColor: 'white',
23
+ zIndex: 2000
24
+ }
25
+ });
26
+ export default KeyFeatureSummaryPaywallWrapper;
27
+ //# sourceMappingURL=KeyFeatureSummaryPaywallWrapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","StyleSheet","SafeAreaView","jsx","_jsx","KeyFeatureSummaryPaywallWrapper","children","style","styles","fullScreenContainer","create","position","top","left","right","bottom","backgroundColor","zIndex"],"sourceRoot":"../../../../src","sources":["components/paywall-wrappers/KeyFeatureSummaryPaywallWrapper.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,UAAU,EAAEC,YAAY,QAAQ,cAAc;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAOxD;AACA,OAAO,MAAMC,+BAEZ,GAAGA,CAAC;EAAEC;AAAS,CAAC,KAAK;EACpB,oBACEF,IAAA,CAACF,YAAY;IAACK,KAAK,EAAEC,MAAM,CAACC,mBAAoB;IAAAH,QAAA,EAAEA;EAAQ,CAAe,CAAC;AAE9E,CAAC;AAED,MAAME,MAAM,GAAGP,UAAU,CAACS,MAAM,CAAC;EAC/BD,mBAAmB,EAAE;IACnBE,QAAQ,EAAE,UAAU;IACpBC,GAAG,EAAE,CAAC;IACNC,IAAI,EAAE,CAAC;IACPC,KAAK,EAAE,CAAC;IACRC,MAAM,EAAE,CAAC;IACTC,eAAe,EAAE,OAAO;IACxBC,MAAM,EAAE;EACV;AACF,CAAC,CAAC;AAEF,eAAeZ,+BAA+B","ignoreList":[]}
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+
3
+ import React from 'react';
4
+ import { StyleSheet, SafeAreaView } from 'react-native';
5
+ import { jsx as _jsx } from "react/jsx-runtime";
6
+ // Text Focused 스타일 래퍼: 전체 화면을 차지
7
+ export const TextFocusedPaywallWrapper = ({
8
+ children
9
+ }) => {
10
+ return /*#__PURE__*/_jsx(SafeAreaView, {
11
+ style: styles.fullScreenContainer,
12
+ children: children
13
+ });
14
+ };
15
+ const styles = StyleSheet.create({
16
+ fullScreenContainer: {
17
+ position: 'absolute',
18
+ top: 0,
19
+ left: 0,
20
+ right: 0,
21
+ bottom: 0,
22
+ backgroundColor: 'white',
23
+ zIndex: 2000
24
+ }
25
+ });
26
+ export default TextFocusedPaywallWrapper;
27
+ //# sourceMappingURL=TextFocusedPaywallWrapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","StyleSheet","SafeAreaView","jsx","_jsx","TextFocusedPaywallWrapper","children","style","styles","fullScreenContainer","create","position","top","left","right","bottom","backgroundColor","zIndex"],"sourceRoot":"../../../../src","sources":["components/paywall-wrappers/TextFocusedPaywallWrapper.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,UAAU,EAAEC,YAAY,QAAQ,cAAc;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAOxD;AACA,OAAO,MAAMC,yBAEZ,GAAGA,CAAC;EAAEC;AAAS,CAAC,KAAK;EACpB,oBACEF,IAAA,CAACF,YAAY;IAACK,KAAK,EAAEC,MAAM,CAACC,mBAAoB;IAAAH,QAAA,EAAEA;EAAQ,CAAe,CAAC;AAE9E,CAAC;AAED,MAAME,MAAM,GAAGP,UAAU,CAACS,MAAM,CAAC;EAC/BD,mBAAmB,EAAE;IACnBE,QAAQ,EAAE,UAAU;IACpBC,GAAG,EAAE,CAAC;IACNC,IAAI,EAAE,CAAC;IACPC,KAAK,EAAE,CAAC;IACRC,MAAM,EAAE,CAAC;IACTC,eAAe,EAAE,OAAO;IACxBC,MAAM,EAAE;EACV;AACF,CAAC,CAAC;AAEF,eAAeZ,yBAAyB","ignoreList":[]}
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+
3
+ // Paywall Wrappers
4
+ export { default as CompactPaywallWrapper } from "./CompactPaywallWrapper.js";
5
+ export { default as HighlightBenefitsPaywallWrapper } from "./HighlightBenefitsPaywallWrapper.js";
6
+ export { default as KeyFeatureSummaryPaywallWrapper } from "./KeyFeatureSummaryPaywallWrapper.js";
7
+ export { default as TextFocusedPaywallWrapper } from "./TextFocusedPaywallWrapper.js";
8
+
9
+ // Default export for backward compatibility
10
+ export { default } from "./CompactPaywallWrapper.js";
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["default","CompactPaywallWrapper","HighlightBenefitsPaywallWrapper","KeyFeatureSummaryPaywallWrapper","TextFocusedPaywallWrapper"],"sourceRoot":"../../../../src","sources":["components/paywall-wrappers/index.ts"],"mappings":";;AAAA;AACA,SAASA,OAAO,IAAIC,qBAAqB,QAAQ,4BAAyB;AAC1E,SAASD,OAAO,IAAIE,+BAA+B,QAAQ,sCAAmC;AAC9F,SAASF,OAAO,IAAIG,+BAA+B,QAAQ,sCAAmC;AAC9F,SAASH,OAAO,IAAII,yBAAyB,QAAQ,gCAA6B;;AAElF;AACA,SAASJ,OAAO,QAAQ,4BAAyB","ignoreList":[]}