@apps-in-toss/framework 2.7.1 → 2.9.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.
package/dist/index.cjs CHANGED
@@ -35,7 +35,7 @@ __export(src_exports, {
35
35
  AppsInToss: () => AppsInToss,
36
36
  INTERNAL__onVisibilityChangedByTransparentServiceWeb: () => INTERNAL__onVisibilityChangedByTransparentServiceWeb,
37
37
  InlineAd: () => InlineAd,
38
- OverlayProvider: () => import_private10.OverlayProvider,
38
+ OverlayProvider: () => import_private5.OverlayProvider,
39
39
  StartUpdateLocationPermissionError: () => import_types.StartUpdateLocationPermissionError,
40
40
  WebView: () => WebView,
41
41
  env: () => env,
@@ -45,7 +45,7 @@ __export(src_exports, {
45
45
  showFullScreenAd: () => showFullScreenAd,
46
46
  useCreateUserAgent: () => useCreateUserAgent,
47
47
  useGeolocation: () => useGeolocation,
48
- useOverlay: () => import_private10.useOverlay,
48
+ useOverlay: () => import_private5.useOverlay,
49
49
  useTopNavigation: () => useTopNavigation,
50
50
  useWaitForReturnNavigator: () => useWaitForReturnNavigator
51
51
  });
@@ -55,9 +55,9 @@ var import_analytics2 = require("@apps-in-toss/analytics");
55
55
  // src/core/registerApp.tsx
56
56
  var import_analytics = require("@apps-in-toss/analytics");
57
57
  var import_native_modules10 = require("@apps-in-toss/native-modules");
58
- var import_react_native21 = require("@granite-js/react-native");
59
- var import_tds_react_native9 = require("@toss/tds-react-native");
60
- var import_react_native22 = require("react-native");
58
+ var import_react_native27 = require("@granite-js/react-native");
59
+ var import_tds_react_native11 = require("@toss/tds-react-native");
60
+ var import_react_native28 = require("react-native");
61
61
 
62
62
  // src/core/components/AppEvent.tsx
63
63
  var import_react_native2 = require("@granite-js/react-native");
@@ -185,8 +185,8 @@ function useNavigationBarContext() {
185
185
 
186
186
  // src/components/RNAppContainer.tsx
187
187
  var import_native_modules9 = require("@apps-in-toss/native-modules");
188
- var import_react15 = require("react");
189
- var import_react_native20 = require("react-native");
188
+ var import_react16 = require("react");
189
+ var import_react_native26 = require("react-native");
190
190
 
191
191
  // src/components/GameInitializer.tsx
192
192
  var import_native_modules4 = require("@apps-in-toss/native-modules");
@@ -641,9 +641,6 @@ var overlayStyle = {
641
641
  zIndex: Z_INDEX.PROFILE_OVERLAY
642
642
  };
643
643
 
644
- // src/components/NavigationBar/RNNavigationBar/Default.tsx
645
- var import_private5 = require("@toss/tds-react-native/private");
646
-
647
644
  // src/components/NavigationBar/RNNavigationBar/hooks/useHardwareBackPress.ts
648
645
  var import_react11 = require("react");
649
646
  var import_react_native11 = require("react-native");
@@ -778,7 +775,7 @@ function useNavigationEvent() {
778
775
  if (homeEvent.hasSubscriptions()) {
779
776
  homeEvent.emit({});
780
777
  } else {
781
- navigation.navigate("/");
778
+ navigation.navigate("/", {}, { pop: true });
782
779
  }
783
780
  },
784
781
  handleCloseButtonClick: () => {
@@ -1148,100 +1145,325 @@ function BottomSheetImpressionArea({ children }) {
1148
1145
  return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_jsx_runtime9.Fragment, { children });
1149
1146
  }
1150
1147
 
1151
- // src/core/utils/toIcon.ts
1152
- function toIcon(source) {
1153
- return source.startsWith("http") ? { source: { uri: source } } : { name: source };
1148
+ // src/components/NavigationBar/TopNavigation/TopNavigation.tsx
1149
+ var import_react_native_safe_area_context = require("@granite-js/native/react-native-safe-area-context");
1150
+ var import_react_native19 = require("@granite-js/react-native");
1151
+ var import_tds_react_native8 = require("@toss/tds-react-native");
1152
+ var import_react14 = require("react");
1153
+ var import_react_native20 = require("react-native");
1154
+ var import_jsx_runtime10 = require("react/jsx-runtime");
1155
+ function TopNavigation({ left, center, right }) {
1156
+ const insets = (0, import_react_native_safe_area_context.useSafeAreaInsets)();
1157
+ const navigation = (0, import_react_native19.useNavigation)();
1158
+ (0, import_react14.useEffect)(() => {
1159
+ const { navigationBar } = getAppsInTossGlobals();
1160
+ const parsedNavigationBar = navigationBar ? safeParseNavigationBar(navigationBar) : null;
1161
+ const transparent = parsedNavigationBar?.transparentBackground ?? false;
1162
+ const theme = parsedNavigationBar?.theme ?? "light";
1163
+ navigation.setOptions({
1164
+ headerTransparent: transparent,
1165
+ header: () => /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(
1166
+ import_react_native20.View,
1167
+ {
1168
+ style: {
1169
+ width: "100%",
1170
+ backgroundColor: transparent ? void 0 : theme === "light" ? import_tds_react_native8.colors.lightThemeBackground : import_tds_react_native8.colors.darkThemeBackground
1171
+ },
1172
+ pointerEvents: "box-none",
1173
+ children: [
1174
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_react_native20.View, { style: { width: "100%", height: insets.top } }),
1175
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(
1176
+ import_react_native20.View,
1177
+ {
1178
+ style: {
1179
+ width: "100%",
1180
+ height: 44,
1181
+ display: "flex",
1182
+ flexDirection: "row",
1183
+ alignItems: "center",
1184
+ paddingLeft: insets.left,
1185
+ paddingRight: insets.right
1186
+ },
1187
+ children: [
1188
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_react_native20.View, { children: left }),
1189
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
1190
+ import_react_native20.View,
1191
+ {
1192
+ style: {
1193
+ flex: 1,
1194
+ display: "flex",
1195
+ flexDirection: "row",
1196
+ alignItems: "center"
1197
+ },
1198
+ children: center
1199
+ }
1200
+ ),
1201
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
1202
+ import_react_native20.View,
1203
+ {
1204
+ style: {
1205
+ flexDirection: "row",
1206
+ alignItems: "center"
1207
+ },
1208
+ children: right
1209
+ }
1210
+ )
1211
+ ]
1212
+ }
1213
+ )
1214
+ ]
1215
+ }
1216
+ )
1217
+ });
1218
+ }, [navigation, insets, left, center, right]);
1219
+ return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_jsx_runtime10.Fragment, {});
1220
+ }
1221
+
1222
+ // src/components/NavigationBar/TopNavigation/BackButton.tsx
1223
+ var import_react_native_svg = require("@granite-js/native/react-native-svg");
1224
+ var import_react_native21 = require("react-native");
1225
+ var import_jsx_runtime11 = require("react/jsx-runtime");
1226
+ function BackButton({ theme = "light", onPress, ...restProps }) {
1227
+ return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
1228
+ import_react_native21.TouchableOpacity,
1229
+ {
1230
+ hitSlop: { top: 10, right: 10, bottom: 10, left: 10 },
1231
+ style: {
1232
+ width: 24,
1233
+ height: 24,
1234
+ marginRight: 14
1235
+ },
1236
+ onPress,
1237
+ accessibilityRole: "button",
1238
+ accessibilityLabel: "\uB4A4\uB85C\uAC00\uAE30",
1239
+ ...restProps,
1240
+ children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_react_native21.View, { style: { width: 24, height: 24 }, children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
1241
+ import_react_native_svg.SvgXml,
1242
+ {
1243
+ width: 24,
1244
+ height: 24,
1245
+ xml: BACK_BUTTON_XML.replace(/__COLOR__/g, theme === "light" ? "#191F28" : "#FFFFFF")
1246
+ }
1247
+ ) })
1248
+ }
1249
+ );
1250
+ }
1251
+ var BACK_BUTTON_XML = `<svg xmlns="http://www.w3.org/2000/svg" enable-background="new 0 0 24 24" viewBox="0 0 24 24"><path d="m20.8 20.7c-.3 0-.6-.1-.8-.4l-7.5-7.5c-.5-.5-.5-1.2 0-1.7l7.5-7.5c.5-.5 1.2-.5 1.7 0s.5 1.2 0 1.7l-6.8 6.7 6.7 6.7c.5.5.5 1.2 0 1.7-.2.2-.5.3-.8.3z" fill="__COLOR__"/></svg>`;
1252
+
1253
+ // src/components/NavigationBar/TopNavigation/HomeButton.tsx
1254
+ var import_tds_react_native9 = require("@toss/tds-react-native");
1255
+ var import_react_native22 = require("react-native");
1256
+ var import_jsx_runtime12 = require("react/jsx-runtime");
1257
+ function HomeButton({ theme = "light", onPress, children }) {
1258
+ return /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
1259
+ import_react_native22.TouchableOpacity,
1260
+ {
1261
+ onPress,
1262
+ style: {
1263
+ flexDirection: "row",
1264
+ alignItems: "center",
1265
+ gap: 6,
1266
+ height: 34,
1267
+ paddingLeft: 10,
1268
+ paddingRight: 10,
1269
+ backgroundColor: theme === "light" ? import_tds_react_native9.colors.greyOpacity50 : "rgba(0, 0, 1, 0.58)",
1270
+ borderRadius: 99
1271
+ },
1272
+ children: [
1273
+ children,
1274
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_tds_react_native9.Icon, { name: "icon-home-mono", size: 18 })
1275
+ ]
1276
+ }
1277
+ );
1278
+ }
1279
+
1280
+ // src/components/NavigationBar/TopNavigation/AppTitle.tsx
1281
+ var import_react_native23 = require("@granite-js/react-native");
1282
+ var import_react_native24 = require("react-native");
1283
+ var import_jsx_runtime13 = require("react/jsx-runtime");
1284
+ function AppTitle({ title, iconUrl, theme = "light" }) {
1285
+ return /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(
1286
+ import_react_native24.View,
1287
+ {
1288
+ style: {
1289
+ flexDirection: "row",
1290
+ alignItems: "center",
1291
+ gap: 6
1292
+ },
1293
+ children: [
1294
+ iconUrl != null && iconUrl !== "" && /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
1295
+ import_react_native23.Image,
1296
+ {
1297
+ source: { uri: iconUrl },
1298
+ style: {
1299
+ width: 18,
1300
+ height: 18,
1301
+ borderRadius: 6,
1302
+ overflow: "hidden"
1303
+ }
1304
+ }
1305
+ ),
1306
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
1307
+ import_react_native24.Text,
1308
+ {
1309
+ numberOfLines: 1,
1310
+ ellipsizeMode: "tail",
1311
+ style: {
1312
+ color: theme === "light" ? "#191F28" : "#FFFFFF",
1313
+ fontSize: 16,
1314
+ fontWeight: "600"
1315
+ },
1316
+ children: title
1317
+ }
1318
+ )
1319
+ ]
1320
+ }
1321
+ );
1322
+ }
1323
+
1324
+ // src/components/NavigationBar/TopNavigation/Menu.tsx
1325
+ var import_tds_react_native10 = require("@toss/tds-react-native");
1326
+ var import_react_native25 = require("react-native");
1327
+ var import_jsx_runtime14 = require("react/jsx-runtime");
1328
+ function Menu2({ theme = "light", accessoryButton, onPressDots, onLongPressDots, onPressClose }) {
1329
+ const backgroundColor = theme === "light" ? import_tds_react_native10.colors.greyOpacity50 : "rgba(0, 0, 1, 0.58)";
1330
+ const iconColor = theme === "light" ? import_tds_react_native10.colors.greyOpacity600 : "rgba(253, 253, 255, 0.75)";
1331
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(import_react_native25.View, { style: { flexDirection: "row", alignItems: "center", gap: 4 }, children: [
1332
+ accessoryButton && /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
1333
+ import_react_native25.View,
1334
+ {
1335
+ style: {
1336
+ borderRadius: 99,
1337
+ overflow: "hidden"
1338
+ },
1339
+ children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
1340
+ import_react_native25.TouchableOpacity,
1341
+ {
1342
+ style: {
1343
+ paddingVertical: 7,
1344
+ paddingHorizontal: 12,
1345
+ backgroundColor
1346
+ },
1347
+ onPress: () => {
1348
+ import_tds_react_native10.tdsEvent.emit("navigationAccessoryEvent", { id: accessoryButton.id });
1349
+ accessoryButton.onPress?.();
1350
+ },
1351
+ disabled: accessoryButton.disabled,
1352
+ children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
1353
+ import_tds_react_native10.Icon,
1354
+ {
1355
+ name: accessoryButton.icon.name ?? "",
1356
+ accessibilityLabel: accessoryButton.title,
1357
+ color: iconColor,
1358
+ size: 20
1359
+ }
1360
+ )
1361
+ }
1362
+ )
1363
+ }
1364
+ ),
1365
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_react_native25.View, { style: { borderRadius: 99, overflow: "hidden", marginRight: 12 }, children: /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(
1366
+ import_react_native25.View,
1367
+ {
1368
+ style: {
1369
+ flexDirection: "row",
1370
+ justifyContent: "center",
1371
+ alignItems: "center",
1372
+ gap: 12,
1373
+ height: 34,
1374
+ paddingHorizontal: 12,
1375
+ backgroundColor
1376
+ },
1377
+ children: [
1378
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_react_native25.TouchableOpacity, { onPress: onPressDots, onLongPress: onLongPressDots, children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_tds_react_native10.Icon, { name: "icon-dots-mono", accessibilityLabel: "\uB354\uBCF4\uAE30", color: iconColor, size: 20 }) }),
1379
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
1380
+ import_react_native25.View,
1381
+ {
1382
+ style: {
1383
+ width: 1,
1384
+ height: 16,
1385
+ backgroundColor: theme === "light" ? import_tds_react_native10.colors.greyOpacity200 : "rgba(222, 222, 255, 0.19)"
1386
+ }
1387
+ }
1388
+ ),
1389
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_react_native25.TouchableOpacity, { onPress: onPressClose, children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_tds_react_native10.Icon, { name: "icon-appsintoss-close-mono", accessibilityLabel: "\uB2EB\uAE30", color: iconColor, size: 20 }) })
1390
+ ]
1391
+ }
1392
+ ) })
1393
+ ] });
1154
1394
  }
1155
1395
 
1156
1396
  // src/components/NavigationBar/common/NavigationBarImpressionArea.tsx
1157
- var import_react14 = require("react");
1158
- var import_jsx_runtime10 = require("react/jsx-runtime");
1397
+ var import_react15 = require("react");
1398
+ var import_jsx_runtime15 = require("react/jsx-runtime");
1159
1399
  function NavigationBarImpressionArea({
1160
1400
  children,
1161
1401
  withHomeButton
1162
1402
  }) {
1163
- const hasLogged = (0, import_react14.useRef)(false);
1403
+ const hasLogged = (0, import_react15.useRef)(false);
1164
1404
  const logging = useNavigationBarLogging();
1165
- (0, import_react14.useEffect)(() => {
1405
+ (0, import_react15.useEffect)(() => {
1166
1406
  if (hasLogged.current === false) {
1167
1407
  logging.navBarImpression({ home_icon_yn: withHomeButton ? "Y" : "N" });
1168
1408
  hasLogged.current = true;
1169
1409
  }
1170
1410
  }, [logging, withHomeButton]);
1171
- return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_jsx_runtime10.Fragment, { children });
1411
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_jsx_runtime15.Fragment, { children });
1172
1412
  }
1173
1413
 
1174
1414
  // src/components/NavigationBar/RNNavigationBar/Default.tsx
1175
- var import_jsx_runtime11 = require("react/jsx-runtime");
1415
+ var import_jsx_runtime16 = require("react/jsx-runtime");
1176
1416
  function DefaultNavigationBar() {
1177
1417
  const globals = getAppsInTossGlobals();
1178
1418
  const { open: openMoreButtonBottomSheet } = useMoreButtonBottomSheet();
1179
1419
  const parsedNavigationBar = globals.navigationBar != null ? safeParseNavigationBar(globals.navigationBar) : null;
1180
1420
  const withHomeButton = parsedNavigationBar?.withHomeButton ?? false;
1181
1421
  const withBackButton = parsedNavigationBar?.withBackButton ?? true;
1422
+ const theme = parsedNavigationBar?.theme ?? "light";
1182
1423
  const { navigationRightButton } = useNavigationBarContext();
1183
1424
  const navigationEvent = useNavigationEvent();
1184
1425
  useHardwareBackPress(navigationEvent.handleBack);
1185
- return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(NavigationBarImpressionArea, { withHomeButton, children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
1186
- import_private5.TopNavigation,
1426
+ return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(NavigationBarImpressionArea, { withHomeButton, children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
1427
+ TopNavigation,
1187
1428
  {
1188
- title: globals.brandDisplayName,
1189
- icon: toIcon(globals.brandIcon),
1190
- onPressDots: openMoreButtonBottomSheet,
1191
- contentVisible: true,
1192
- onPressTitle: withHomeButton ? navigationEvent.handleHomeButtonClick : void 0,
1193
- onPressClose: navigationEvent.handleCloseButtonClick,
1194
- withHome: withHomeButton,
1195
- fixedRightButton: navigationRightButton,
1196
- leftVisible: withBackButton,
1197
- children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_private5.NavigationLeft, { visible: withBackButton, children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_private5.NavigationBackButton, { onPress: navigationEvent.handleBack, canGoBack: false }) })
1429
+ left: withBackButton ? /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(BackButton, { theme, onPress: navigationEvent.handleBack }) : null,
1430
+ center: withHomeButton ? /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(HomeButton, { theme, onPress: navigationEvent.handleHomeButtonClick, children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(AppTitle, { theme, title: globals.brandDisplayName, iconUrl: globals.brandIcon }) }) : /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(AppTitle, { theme, title: globals.brandDisplayName, iconUrl: globals.brandIcon }),
1431
+ right: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
1432
+ Menu2,
1433
+ {
1434
+ theme,
1435
+ accessoryButton: navigationRightButton,
1436
+ onPressDots: openMoreButtonBottomSheet,
1437
+ onPressClose: navigationEvent.handleCloseButtonClick
1438
+ }
1439
+ )
1198
1440
  }
1199
1441
  ) });
1200
1442
  }
1201
1443
 
1202
1444
  // src/components/NavigationBar/RNNavigationBar/Game.tsx
1203
- var import_react_native_safe_area_context = require("@granite-js/native/react-native-safe-area-context");
1204
- var import_tds_react_native8 = require("@toss/tds-react-native");
1205
- var import_private6 = require("@toss/tds-react-native/private");
1206
- var import_react_native19 = require("react-native");
1207
- var import_jsx_runtime12 = require("react/jsx-runtime");
1445
+ var import_jsx_runtime17 = require("react/jsx-runtime");
1208
1446
  function GameNavigationBar() {
1209
- const safeAreaTop = (0, import_private6.useSafeAreaTop)();
1210
1447
  const { open: openMoreButtonBottomSheet } = useMoreButtonBottomSheet();
1211
1448
  const navigationEvent = useNavigationEvent();
1212
1449
  const { navigationRightButton } = useNavigationBarContext();
1213
- const { right: safeAreaRight } = (0, import_react_native_safe_area_context.useSafeAreaInsets)();
1450
+ const { navigationBar } = getAppsInTossGlobals();
1451
+ const parsedNavigationBar = navigationBar ? safeParseNavigationBar(navigationBar) : null;
1214
1452
  useHardwareBackPress(navigationEvent.handleBack);
1215
- return /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(import_jsx_runtime12.Fragment, { children: [
1216
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_tds_react_native8.PageNavbar, { preference: { type: "none" } }),
1217
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
1218
- import_react_native19.View,
1219
- {
1220
- style: {
1221
- width: "100%",
1222
- // TODO: UI관련 스타일 설정은 TDS로 이관
1223
- height: import_react_native19.Platform.OS === "ios" ? 44 : 54,
1224
- flexDirection: "row",
1225
- alignItems: "center",
1226
- justifyContent: "flex-end",
1227
- position: "absolute",
1228
- zIndex: Z_INDEX.CLOSE_BUTTON,
1229
- marginTop: safeAreaTop,
1230
- paddingRight: safeAreaRight + 10
1231
- },
1232
- pointerEvents: "box-none",
1233
- children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
1234
- import_private6.NavigationRightContent,
1235
- {
1236
- fixedRightButton: navigationRightButton,
1237
- onPressDots: openMoreButtonBottomSheet,
1238
- onPressClose: navigationEvent.handleCloseButtonClick,
1239
- theme: "dark"
1240
- }
1241
- )
1242
- }
1243
- )
1244
- ] });
1453
+ return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
1454
+ TopNavigation,
1455
+ {
1456
+ right: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
1457
+ Menu2,
1458
+ {
1459
+ theme: parsedNavigationBar?.theme ?? "dark",
1460
+ accessoryButton: navigationRightButton,
1461
+ onPressDots: openMoreButtonBottomSheet,
1462
+ onPressClose: navigationEvent.handleCloseButtonClick
1463
+ }
1464
+ )
1465
+ }
1466
+ );
1245
1467
  }
1246
1468
 
1247
1469
  // src/components/NavigationBar/RNNavigationBar/index.tsx
@@ -1257,20 +1479,20 @@ __reExport(bridge_entry_exports, require("@apps-in-toss/native-modules/constant-
1257
1479
  __reExport(bridge_entry_exports, require("@apps-in-toss/native-modules/event-bridges"));
1258
1480
 
1259
1481
  // src/components/RNAppContainer.tsx
1260
- var import_jsx_runtime13 = require("react/jsx-runtime");
1482
+ var import_jsx_runtime18 = require("react/jsx-runtime");
1261
1483
  function RNAppContainer({ children }) {
1262
1484
  const global2 = getAppsInTossGlobals();
1263
1485
  switch (global2.appType) {
1264
1486
  case "game":
1265
- return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(GameAppContainer, { children });
1487
+ return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(GameAppContainer, { children });
1266
1488
  case "general":
1267
1489
  default:
1268
- return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(GeneralAppContainer, { children });
1490
+ return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(GeneralAppContainer, { children });
1269
1491
  }
1270
1492
  }
1271
1493
  function GameAppContainer({ children }) {
1272
- (0, import_react15.useEffect)(() => {
1273
- if (import_react_native20.Platform.OS === "ios") {
1494
+ (0, import_react16.useEffect)(() => {
1495
+ if (import_react_native26.Platform.OS === "ios") {
1274
1496
  (0, import_native_modules9.setIosSwipeGestureEnabled)({ isEnabled: false });
1275
1497
  return () => {
1276
1498
  (0, import_native_modules9.setIosSwipeGestureEnabled)({ isEnabled: true });
@@ -1278,44 +1500,44 @@ function GameAppContainer({ children }) {
1278
1500
  }
1279
1501
  return;
1280
1502
  }, []);
1281
- return /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(import_jsx_runtime13.Fragment, { children: [
1282
- /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(RNNavigationBar.Game, {}),
1283
- (0, bridge_entry_exports.getOperationalEnvironment)() === "toss" ? /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(GameInitializer, { children }) : children
1503
+ return /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(import_jsx_runtime18.Fragment, { children: [
1504
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(RNNavigationBar.Game, {}),
1505
+ (0, bridge_entry_exports.getOperationalEnvironment)() === "toss" ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(GameInitializer, { children }) : children
1284
1506
  ] });
1285
1507
  }
1286
1508
  function GeneralAppContainer({ children }) {
1287
- return /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(import_jsx_runtime13.Fragment, { children: [
1288
- /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(RNNavigationBar.Default, {}),
1509
+ return /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(import_jsx_runtime18.Fragment, { children: [
1510
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(RNNavigationBar.Default, {}),
1289
1511
  children
1290
1512
  ] });
1291
1513
  }
1292
1514
 
1293
1515
  // src/core/registerApp.tsx
1294
- var import_jsx_runtime14 = require("react/jsx-runtime");
1516
+ var import_jsx_runtime19 = require("react/jsx-runtime");
1295
1517
  function AppsInTossContainer(Container, { children, ...initialProps }) {
1296
1518
  if (!(0, import_native_modules10.isMinVersionSupported)({
1297
1519
  android: "5.220.0",
1298
1520
  ios: "5.221.0"
1299
1521
  })) {
1300
- return /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(import_jsx_runtime14.Fragment, { children: [
1301
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(AppEvent.System, { ...initialProps }),
1302
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(AppUpdate, {})
1522
+ return /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(import_jsx_runtime19.Fragment, { children: [
1523
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(AppEvent.System, { ...initialProps }),
1524
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(AppUpdate, {})
1303
1525
  ] });
1304
1526
  }
1305
- return /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(import_jsx_runtime14.Fragment, { children: [
1306
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(AppEvent.System, { ...initialProps }),
1307
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(Container, { ...initialProps, children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_tds_react_native9.TDSProvider, { colorPreference: "light", token: { color: { primary: getAppsInTossGlobals().brandPrimaryColor } }, children }) })
1527
+ return /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(import_jsx_runtime19.Fragment, { children: [
1528
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(AppEvent.System, { ...initialProps }),
1529
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Container, { ...initialProps, children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_tds_react_native11.TDSProvider, { colorPreference: "light", token: { color: { primary: getAppsInTossGlobals().brandPrimaryColor } }, children }) })
1308
1530
  ] });
1309
1531
  }
1310
1532
  function registerApp(container, { context, analytics }) {
1311
1533
  const appName = getAppName();
1312
- const isRegistered = import_react_native22.AppRegistry.getAppKeys().includes(appName);
1534
+ const isRegistered = import_react_native28.AppRegistry.getAppKeys().includes(appName);
1313
1535
  if (!isRegistered) {
1314
1536
  import_analytics.Analytics.init({
1315
1537
  logger: (params) => void (0, import_native_modules10.eventLog)(params),
1316
1538
  debug: analytics?.debug ?? __DEV__
1317
1539
  });
1318
- const App = import_react_native21.Granite.registerApp(AppsInTossContainer.bind(null, container), {
1540
+ const App = import_react_native27.Granite.registerApp(AppsInTossContainer.bind(null, container), {
1319
1541
  appName,
1320
1542
  context,
1321
1543
  initialScheme: (0, import_native_modules10.getSchemeUri)(),
@@ -1323,7 +1545,8 @@ function registerApp(container, { context, analytics }) {
1323
1545
  router: {
1324
1546
  screenContainer: AppsInTossScreenContainer,
1325
1547
  defaultScreenOption: {
1326
- statusBarStyle: "dark"
1548
+ statusBarStyle: "dark",
1549
+ header: () => null
1327
1550
  }
1328
1551
  }
1329
1552
  });
@@ -1333,7 +1556,7 @@ function registerApp(container, { context, analytics }) {
1333
1556
  }
1334
1557
  function AppsInTossScreenContainer({ children }) {
1335
1558
  const isRNApp = getAppsInTossGlobals().webViewType == null;
1336
- return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(NavigationBarContextProvider, { children: isRNApp ? /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
1559
+ return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(NavigationBarContextProvider, { children: isRNApp ? /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
1337
1560
  import_analytics.Analytics.Screen,
1338
1561
  {
1339
1562
  onLog: (params) => sendLog(
@@ -1343,13 +1566,13 @@ function AppsInTossScreenContainer({ children }) {
1343
1566
  params: {
1344
1567
  ...params.params,
1345
1568
  schema_id: 5175906,
1346
- app_name: import_react_native21.Granite.appName,
1569
+ app_name: import_react_native27.Granite.appName,
1347
1570
  log_name: params.log_name
1348
1571
  }
1349
1572
  },
1350
1573
  { pipelines: ["core"] }
1351
1574
  ),
1352
- children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(RNAppContainer, { children })
1575
+ children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(RNAppContainer, { children })
1353
1576
  }
1354
1577
  ) : children });
1355
1578
  }
@@ -1373,77 +1596,55 @@ var appsInTossAsyncBridges = __toESM(require("@apps-in-toss/native-modules/async
1373
1596
  var appsInTossConstantBridges = __toESM(require("@apps-in-toss/native-modules/constant-bridges"), 1);
1374
1597
  var appsInTossEventBridges = __toESM(require("@apps-in-toss/native-modules/event-bridges"), 1);
1375
1598
  var import_user_scripts = require("@apps-in-toss/user-scripts");
1376
- var import_react_native_safe_area_context4 = require("@granite-js/native/react-native-safe-area-context");
1377
- var import_react_native36 = require("@granite-js/react-native");
1378
- var import_tds_react_native12 = require("@toss/tds-react-native");
1379
- var import_private9 = require("@toss/tds-react-native/private");
1380
- var import_react26 = require("react");
1381
- var import_react_native37 = require("react-native");
1599
+ var import_react_native_safe_area_context3 = require("@granite-js/native/react-native-safe-area-context");
1600
+ var import_react_native41 = require("@granite-js/react-native");
1601
+ var import_tds_react_native14 = require("@toss/tds-react-native");
1602
+ var import_react27 = require("react");
1603
+ var import_react_native42 = require("react-native");
1382
1604
 
1383
1605
  // src/components/GameWebView.tsx
1384
1606
  var import_native_modules11 = require("@apps-in-toss/native-modules");
1385
1607
  var import_react_native_webview = require("@granite-js/native/react-native-webview");
1386
- var import_react17 = require("react");
1387
- var import_react_native25 = require("react-native");
1608
+ var import_react18 = require("react");
1609
+ var import_react_native30 = require("react-native");
1388
1610
 
1389
1611
  // src/components/NavigationBar/GameWebviewNavigationBar.tsx
1390
- var import_react_native_safe_area_context2 = require("@granite-js/native/react-native-safe-area-context");
1391
- var import_react_native23 = require("@granite-js/react-native");
1392
- var import_tds_react_native10 = require("@toss/tds-react-native");
1393
- var import_private7 = require("@toss/tds-react-native/private");
1394
- var import_react16 = require("react");
1395
- var import_react_native24 = require("react-native");
1396
- var import_jsx_runtime15 = require("react/jsx-runtime");
1612
+ var import_react_native29 = require("@granite-js/react-native");
1613
+ var import_tds_react_native12 = require("@toss/tds-react-native");
1614
+ var import_react17 = require("react");
1615
+ var import_jsx_runtime20 = require("react/jsx-runtime");
1397
1616
  function GameWebviewNavigationBar() {
1398
- const safeAreaTop = (0, import_private7.useSafeAreaTop)();
1399
- const { openConfirm } = (0, import_tds_react_native10.useDialog)();
1617
+ const { openConfirm } = (0, import_tds_react_native12.useDialog)();
1400
1618
  const logging = useNavigationBarLogging();
1401
1619
  const { open: openMoreButtonBottomSheet } = useMoreButtonBottomSheet();
1402
1620
  const { navigationRightButton } = useNavigationBarContext();
1403
- const { right: safeAreaRight } = (0, import_react_native_safe_area_context2.useSafeAreaInsets)();
1404
- const handleGameWebviewClose = (0, import_react16.useCallback)(async () => {
1621
+ const { navigationBar } = getAppsInTossGlobals();
1622
+ const parsedNavigationBar = navigationBar ? safeParseNavigationBar(navigationBar) : null;
1623
+ const handleGameWebviewClose = (0, import_react17.useCallback)(async () => {
1405
1624
  logging.closeButtonClick();
1406
- (0, import_react_native23.closeView)();
1625
+ (0, import_react_native29.closeView)();
1407
1626
  }, [logging, openConfirm]);
1408
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(import_jsx_runtime15.Fragment, { children: [
1409
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_tds_react_native10.PageNavbar, { preference: { type: "none" } }),
1410
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
1411
- import_react_native24.View,
1412
- {
1413
- style: {
1414
- width: "100%",
1415
- // TODO: UI관련 스타일 설정은 TDS로 이관
1416
- height: import_react_native24.Platform.OS === "ios" ? 44 : 54,
1417
- flexDirection: "row",
1418
- alignItems: "center",
1419
- justifyContent: "flex-end",
1420
- position: "absolute",
1421
- zIndex: Z_INDEX.CLOSE_BUTTON,
1422
- marginTop: safeAreaTop,
1423
- paddingRight: safeAreaRight + 10
1424
- },
1425
- pointerEvents: "box-none",
1426
- children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
1427
- import_private7.NavigationRightContent,
1428
- {
1429
- fixedRightButton: navigationRightButton,
1430
- onPressDots: openMoreButtonBottomSheet,
1431
- onPressClose: () => {
1432
- handleGameWebviewClose();
1433
- },
1434
- theme: "dark"
1435
- }
1436
- )
1437
- }
1438
- )
1439
- ] });
1627
+ return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
1628
+ TopNavigation,
1629
+ {
1630
+ right: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
1631
+ Menu2,
1632
+ {
1633
+ theme: parsedNavigationBar?.theme ?? "dark",
1634
+ accessoryButton: navigationRightButton,
1635
+ onPressDots: openMoreButtonBottomSheet,
1636
+ onPressClose: handleGameWebviewClose
1637
+ }
1638
+ )
1639
+ }
1640
+ );
1440
1641
  }
1441
1642
 
1442
1643
  // src/components/GameWebView.tsx
1443
- var import_jsx_runtime16 = require("react/jsx-runtime");
1444
- var GameWebView = (0, import_react17.forwardRef)(function GameWebView2(props, ref) {
1445
- (0, import_react17.useEffect)(() => {
1446
- if (import_react_native25.Platform.OS === "ios") {
1644
+ var import_jsx_runtime21 = require("react/jsx-runtime");
1645
+ var GameWebView = (0, import_react18.forwardRef)(function GameWebView2(props, ref) {
1646
+ (0, import_react18.useEffect)(() => {
1647
+ if (import_react_native30.Platform.OS === "ios") {
1447
1648
  (0, import_native_modules11.setIosSwipeGestureEnabled)({ isEnabled: false });
1448
1649
  return () => {
1449
1650
  (0, import_native_modules11.setIosSwipeGestureEnabled)({ isEnabled: true });
@@ -1451,21 +1652,20 @@ var GameWebView = (0, import_react17.forwardRef)(function GameWebView2(props, re
1451
1652
  }
1452
1653
  return;
1453
1654
  }, []);
1454
- return /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(import_jsx_runtime16.Fragment, { children: [
1455
- /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(GameWebviewNavigationBar, {}),
1456
- (0, import_native_modules11.getOperationalEnvironment)() === "toss" ? /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(GameInitializer, { children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_react_native_webview.WebView, { ref, ...props }) }) : /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_react_native_webview.WebView, { ref, ...props })
1655
+ return /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(import_jsx_runtime21.Fragment, { children: [
1656
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(GameWebviewNavigationBar, {}),
1657
+ (0, import_native_modules11.getOperationalEnvironment)() === "toss" ? /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(GameInitializer, { children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_react_native_webview.WebView, { ref, ...props }) }) : /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_react_native_webview.WebView, { ref, ...props })
1457
1658
  ] });
1458
1659
  });
1459
1660
 
1460
1661
  // src/components/PartnerWebView.tsx
1461
1662
  var import_react_native_webview2 = require("@granite-js/native/react-native-webview");
1462
- var import_react19 = require("react");
1663
+ var import_react20 = require("react");
1463
1664
 
1464
1665
  // src/components/NavigationBar/PartnerWebviewNavigationBar.tsx
1465
- var import_react_native26 = require("@granite-js/react-native");
1466
- var import_private8 = require("@toss/tds-react-native/private");
1467
- var import_react18 = require("react");
1468
- var import_jsx_runtime17 = require("react/jsx-runtime");
1666
+ var import_react_native31 = require("@granite-js/react-native");
1667
+ var import_react19 = require("react");
1668
+ var import_jsx_runtime22 = require("react/jsx-runtime");
1469
1669
  function PartnerWebviewNavigationBar({ onBackButtonClick, onHomeButtonClick }) {
1470
1670
  const globals = getAppsInTossGlobals();
1471
1671
  const logging = useNavigationBarLogging();
@@ -1473,34 +1673,36 @@ function PartnerWebviewNavigationBar({ onBackButtonClick, onHomeButtonClick }) {
1473
1673
  const parsedNavigationBar = globals.navigationBar != null ? safeParseNavigationBar(globals.navigationBar) : null;
1474
1674
  const withHomeButton = parsedNavigationBar?.withHomeButton ?? false;
1475
1675
  const withBackButton = parsedNavigationBar?.withBackButton ?? true;
1676
+ const theme = parsedNavigationBar?.theme ?? "light";
1476
1677
  const { navigationRightButton } = useNavigationBarContext();
1477
- const handleClose = (0, import_react18.useCallback)(async () => {
1678
+ const handleClose = (0, import_react19.useCallback)(async () => {
1478
1679
  logging.closeButtonClick();
1479
- (0, import_react_native26.closeView)();
1680
+ (0, import_react_native31.closeView)();
1480
1681
  }, [logging]);
1481
- return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(NavigationBarImpressionArea, { withHomeButton, children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
1482
- import_private8.TopNavigation,
1682
+ return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(NavigationBarImpressionArea, { withHomeButton, children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
1683
+ TopNavigation,
1483
1684
  {
1484
- title: globals.brandDisplayName,
1485
- icon: toIcon(globals.brandIcon),
1486
- onPressDots: openMoreButtonBottomSheet,
1487
- contentVisible: true,
1488
- onPressTitle: withHomeButton ? onHomeButtonClick : void 0,
1489
- onPressClose: handleClose,
1490
- withHome: withHomeButton,
1491
- fixedRightButton: navigationRightButton,
1492
- leftVisible: withBackButton,
1493
- children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_private8.NavigationLeft, { visible: withBackButton, children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_private8.NavigationBackButton, { onPress: onBackButtonClick, canGoBack: false }) })
1685
+ left: withBackButton ? /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(BackButton, { theme, onPress: onBackButtonClick }) : null,
1686
+ center: withHomeButton ? /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(HomeButton, { theme, onPress: onHomeButtonClick, children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(AppTitle, { theme, title: globals.brandDisplayName, iconUrl: globals.brandIcon }) }) : /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(AppTitle, { theme, title: globals.brandDisplayName, iconUrl: globals.brandIcon }),
1687
+ right: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
1688
+ Menu2,
1689
+ {
1690
+ theme,
1691
+ accessoryButton: navigationRightButton,
1692
+ onPressDots: openMoreButtonBottomSheet,
1693
+ onPressClose: handleClose
1694
+ }
1695
+ )
1494
1696
  }
1495
1697
  ) });
1496
1698
  }
1497
1699
 
1498
1700
  // src/components/PartnerWebView.tsx
1499
- var import_jsx_runtime18 = require("react/jsx-runtime");
1500
- var PartnerWebView = (0, import_react19.forwardRef)(function PartnerWebViewScreen({ onBackButtonClick, onHomeButtonClick, ...webViewProps }, ref) {
1501
- return /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(import_jsx_runtime18.Fragment, { children: [
1502
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(PartnerWebviewNavigationBar, { onBackButtonClick, onHomeButtonClick }),
1503
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_react_native_webview2.WebView, { ref, ...webViewProps, style: { flex: 1 } })
1701
+ var import_jsx_runtime23 = require("react/jsx-runtime");
1702
+ var PartnerWebView = (0, import_react20.forwardRef)(function PartnerWebViewScreen({ onBackButtonClick, onHomeButtonClick, ...webViewProps }, ref) {
1703
+ return /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_jsx_runtime23.Fragment, { children: [
1704
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(PartnerWebviewNavigationBar, { onBackButtonClick, onHomeButtonClick }),
1705
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_react_native_webview2.WebView, { ref, ...webViewProps, style: { flex: 1 } })
1504
1706
  ] });
1505
1707
  });
1506
1708
 
@@ -1603,10 +1805,10 @@ function generateRequestId() {
1603
1805
  }
1604
1806
 
1605
1807
  // src/ads/getReferrer.ts
1606
- var import_react_native27 = require("@granite-js/react-native");
1808
+ var import_react_native32 = require("@granite-js/react-native");
1607
1809
  function getReferrer() {
1608
1810
  try {
1609
- return new URL((0, import_react_native27.getSchemeUri)()).searchParams.get("referrer");
1811
+ return new URL((0, import_react_native32.getSchemeUri)()).searchParams.get("referrer");
1610
1812
  } catch {
1611
1813
  return null;
1612
1814
  }
@@ -1616,10 +1818,10 @@ function getReferrer() {
1616
1818
  var import_native_modules13 = require("@apps-in-toss/native-modules");
1617
1819
 
1618
1820
  // src/ads/getIsDev.ts
1619
- var import_react_native28 = require("@granite-js/react-native");
1821
+ var import_react_native33 = require("@granite-js/react-native");
1620
1822
  function getIsDev() {
1621
1823
  try {
1622
- return new URL((0, import_react_native28.getSchemeUri)()).searchParams.get("isDev") === "true";
1824
+ return new URL((0, import_react_native33.getSchemeUri)()).searchParams.get("isDev") === "true";
1623
1825
  } catch {
1624
1826
  return false;
1625
1827
  }
@@ -1906,10 +2108,10 @@ function showFullScreenAd(params) {
1906
2108
  showFullScreenAd.isSupported = import_native_modules14.GoogleAdMob.showAppsInTossAdMob.isSupported;
1907
2109
 
1908
2110
  // src/ads/tossAdEventLog.ts
1909
- var import_react_native29 = require("@granite-js/react-native");
2111
+ var import_react_native34 = require("@granite-js/react-native");
1910
2112
  async function tossAdEventLog(params) {
1911
2113
  const referrer = getReferrer();
1912
- const appName = import_react_native29.Granite.appName;
2114
+ const appName = import_react_native34.Granite.appName;
1913
2115
  const eventLogParams = {
1914
2116
  ...params,
1915
2117
  params: {
@@ -1922,7 +2124,7 @@ async function tossAdEventLog(params) {
1922
2124
  }
1923
2125
 
1924
2126
  // src/bridge-handler/useBridgeHandler.tsx
1925
- var import_react20 = require("react");
2127
+ var import_react21 = require("react");
1926
2128
  function serializeError(error) {
1927
2129
  return JSON.stringify(error, (_, value) => {
1928
2130
  if (value instanceof Error) {
@@ -1974,8 +2176,8 @@ function useBridgeHandler({
1974
2176
  asyncHandlerMap,
1975
2177
  eventListenerMap
1976
2178
  }) {
1977
- const ref = (0, import_react20.useRef)(null);
1978
- const injectedJavaScript = (0, import_react20.useMemo)(
2179
+ const ref = (0, import_react21.useRef)(null);
2180
+ const injectedJavaScript = (0, import_react21.useMemo)(
1979
2181
  () => `window.__CONSTANT_HANDLER_MAP = ${JSON.stringify(
1980
2182
  Object.entries(constantHandlerMap).reduce(
1981
2183
  (acc, [key, value]) => {
@@ -1987,7 +2189,7 @@ function useBridgeHandler({
1987
2189
  )};`,
1988
2190
  [constantHandlerMap]
1989
2191
  );
1990
- (0, import_react20.useEffect)(() => {
2192
+ (0, import_react21.useEffect)(() => {
1991
2193
  ref.current?.injectJavaScript(injectedJavaScript);
1992
2194
  }, [injectedJavaScript]);
1993
2195
  const createHandleOnEvent = (functionName, eventId) => (response) => {
@@ -2001,7 +2203,7 @@ function useBridgeHandler({
2001
2203
  window.__GRANITE_NATIVE_EMITTER.emit('${functionName}/onError/${eventId}', ${serializedError});
2002
2204
  `);
2003
2205
  };
2004
- const $onMessage = (0, import_react20.useCallback)(
2206
+ const $onMessage = (0, import_react21.useCallback)(
2005
2207
  async (e) => {
2006
2208
  onMessage?.(e);
2007
2209
  const data = parseNativeEventData(e.nativeEvent.data);
@@ -2060,25 +2262,25 @@ function parseNativeEventData(data) {
2060
2262
  }
2061
2263
 
2062
2264
  // src/core/hooks/useSafeAreaInsetsEvent.tsx
2063
- var import_react_native_safe_area_context3 = require("@granite-js/native/react-native-safe-area-context");
2064
- var import_react21 = require("react");
2265
+ var import_react_native_safe_area_context2 = require("@granite-js/native/react-native-safe-area-context");
2266
+ var import_react22 = require("react");
2065
2267
  function useSafeAreaInsetsEvent() {
2066
- const insets = (0, import_react_native_safe_area_context3.useSafeAreaInsets)();
2067
- (0, import_react21.useEffect)(() => {
2268
+ const insets = (0, import_react_native_safe_area_context2.useSafeAreaInsets)();
2269
+ (0, import_react22.useEffect)(() => {
2068
2270
  safeAreaInsetsChange.emit(insets);
2069
2271
  }, [insets]);
2070
- (0, import_react21.useEffect)(() => {
2272
+ (0, import_react22.useEffect)(() => {
2071
2273
  return () => safeAreaInsetsChange.clearSubscriptions();
2072
2274
  }, []);
2073
2275
  return safeAreaInsetsChange;
2074
2276
  }
2075
2277
 
2076
2278
  // src/core/hooks/useWebBackHandler.tsx
2077
- var import_react_native30 = require("@granite-js/react-native");
2078
- var import_react23 = require("react");
2279
+ var import_react_native35 = require("@granite-js/react-native");
2280
+ var import_react24 = require("react");
2079
2281
 
2080
2282
  // src/hooks/useWebviewHistoryStack.tsx
2081
- var import_react22 = require("react");
2283
+ var import_react23 = require("react");
2082
2284
  var INITIAL_STATE = { stack: [], index: -1 };
2083
2285
  function reducer(state, action) {
2084
2286
  switch (action.type) {
@@ -2109,11 +2311,11 @@ function reducer(state, action) {
2109
2311
  }
2110
2312
  }
2111
2313
  function useWebViewHistory() {
2112
- const [state, dispatch] = (0, import_react22.useReducer)(reducer, INITIAL_STATE);
2113
- const onNavigationStateChange = (0, import_react22.useCallback)(({ url, canGoForward: canGoForward2 }) => {
2314
+ const [state, dispatch] = (0, import_react23.useReducer)(reducer, INITIAL_STATE);
2315
+ const onNavigationStateChange = (0, import_react23.useCallback)(({ url, canGoForward: canGoForward2 }) => {
2114
2316
  dispatch({ type: "NAVIGATION_CHANGE", url, canGoForward: canGoForward2 });
2115
2317
  }, []);
2116
- const { canGoBack, canGoForward } = (0, import_react22.useMemo)(() => {
2318
+ const { canGoBack, canGoForward } = (0, import_react23.useMemo)(() => {
2117
2319
  const canBack = state.index > 0;
2118
2320
  const canFwd = state.index >= 0 && state.index < state.stack.length - 1;
2119
2321
  return { canGoBack: canBack, canGoForward: canFwd };
@@ -2129,21 +2331,21 @@ function useWebBackHandler(webViewInitialURL, webViewRef) {
2129
2331
  hasBackEvent: hasWebBackEvent,
2130
2332
  addEventListener: addWebBackEventListener,
2131
2333
  removeEventListener: removeWebBackEventListener
2132
- } = (0, import_react_native30.useBackEventState)();
2334
+ } = (0, import_react_native35.useBackEventState)();
2133
2335
  const logging = useNavigationBarLogging();
2134
- const addEventListener = (0, import_react23.useCallback)(
2336
+ const addEventListener = (0, import_react24.useCallback)(
2135
2337
  (handler) => {
2136
2338
  addWebBackEventListener(handler);
2137
2339
  },
2138
2340
  [addWebBackEventListener]
2139
2341
  );
2140
- const removeEventListener = (0, import_react23.useCallback)(
2342
+ const removeEventListener = (0, import_react24.useCallback)(
2141
2343
  (handler) => {
2142
2344
  removeWebBackEventListener(handler);
2143
2345
  },
2144
2346
  [removeWebBackEventListener]
2145
2347
  );
2146
- const handleWebBack = (0, import_react23.useCallback)(async () => {
2348
+ const handleWebBack = (0, import_react24.useCallback)(async () => {
2147
2349
  if (hasWebBackEvent) {
2148
2350
  for (const handler of webBackHandlersRef) {
2149
2351
  handler();
@@ -2153,10 +2355,10 @@ function useWebBackHandler(webViewInitialURL, webViewRef) {
2153
2355
  if (hasHistory) {
2154
2356
  webViewRef.current?.injectJavaScript("window.history.back();");
2155
2357
  } else {
2156
- (0, import_react_native30.closeView)();
2358
+ (0, import_react_native35.closeView)();
2157
2359
  }
2158
2360
  }, [hasHistory, hasWebBackEvent, webBackHandlersRef, logging, webViewRef]);
2159
- const handleWebHome = (0, import_react23.useCallback)(() => {
2361
+ const handleWebHome = (0, import_react24.useCallback)(() => {
2160
2362
  logging.homeButtonClick();
2161
2363
  if (homeEvent.hasSubscriptions()) {
2162
2364
  homeEvent.emit({});
@@ -2169,7 +2371,7 @@ function useWebBackHandler(webViewInitialURL, webViewRef) {
2169
2371
  })();
2170
2372
  `);
2171
2373
  }, [hasWebBackEvent, webBackHandlersRef, logging, webViewInitialURL, webViewRef]);
2172
- return (0, import_react23.useMemo)(
2374
+ return (0, import_react24.useMemo)(
2173
2375
  () => ({ addEventListener, removeEventListener, handleWebBack, handleWebHome, onNavigationStateChange }),
2174
2376
  [addEventListener, removeEventListener, handleWebBack, handleWebHome, onNavigationStateChange]
2175
2377
  );
@@ -2190,7 +2392,7 @@ function mergeRefs(...refs) {
2190
2392
 
2191
2393
  // src/hooks/useCreateUserAgent.ts
2192
2394
  var import_native_modules15 = require("@apps-in-toss/native-modules");
2193
- var import_react_native31 = require("react-native");
2395
+ var import_react_native36 = require("react-native");
2194
2396
  var FontA11yCategory = {
2195
2397
  Large: "Large",
2196
2398
  xLarge: "xLarge",
@@ -2325,7 +2527,7 @@ function useCreateUserAgent({
2325
2527
  }) {
2326
2528
  const platform = (0, import_native_modules15.getPlatformOS)();
2327
2529
  const appVersion = (0, import_native_modules15.getTossAppVersion)();
2328
- const { fontScale } = (0, import_react_native31.useWindowDimensions)();
2530
+ const { fontScale } = (0, import_react_native36.useWindowDimensions)();
2329
2531
  const platformString = platform === "ios" ? "iPhone" : "Android phone";
2330
2532
  const fontA11y = mapFontScaleToCategory(fontScale, platform);
2331
2533
  const normalizedFontScale = convertToAndroidStyleScale(fontScale, platform);
@@ -2347,12 +2549,12 @@ function useCreateUserAgent({
2347
2549
 
2348
2550
  // src/hooks/useGeolocation.ts
2349
2551
  var import_native_modules16 = require("@apps-in-toss/native-modules");
2350
- var import_react_native32 = require("@granite-js/react-native");
2351
- var import_react24 = require("react");
2552
+ var import_react_native37 = require("@granite-js/react-native");
2553
+ var import_react25 = require("react");
2352
2554
  function useGeolocation({ accuracy, distanceInterval, timeInterval }) {
2353
- const isVisible = (0, import_react_native32.useVisibility)();
2354
- const [location, setLocation] = (0, import_react24.useState)(null);
2355
- (0, import_react24.useEffect)(() => {
2555
+ const isVisible = (0, import_react_native37.useVisibility)();
2556
+ const [location, setLocation] = (0, import_react25.useState)(null);
2557
+ (0, import_react25.useEffect)(() => {
2356
2558
  if (!isVisible) {
2357
2559
  return;
2358
2560
  }
@@ -2370,12 +2572,12 @@ function useGeolocation({ accuracy, distanceInterval, timeInterval }) {
2370
2572
  }
2371
2573
 
2372
2574
  // src/hooks/useWaitForReturnNavigator.tsx
2373
- var import_react_native33 = require("@granite-js/react-native");
2374
- var import_react25 = require("react");
2575
+ var import_react_native38 = require("@granite-js/react-native");
2576
+ var import_react26 = require("react");
2375
2577
  function useWaitForReturnNavigator() {
2376
- const callbacks = (0, import_react25.useRef)([]).current;
2377
- const navigation = (0, import_react_native33.useNavigation)();
2378
- const startNavigating = (0, import_react25.useCallback)(
2578
+ const callbacks = (0, import_react26.useRef)([]).current;
2579
+ const navigation = (0, import_react_native38.useNavigation)();
2580
+ const startNavigating = (0, import_react26.useCallback)(
2379
2581
  (route, params) => {
2380
2582
  return new Promise((resolve) => {
2381
2583
  callbacks.push(resolve);
@@ -2384,7 +2586,7 @@ function useWaitForReturnNavigator() {
2384
2586
  },
2385
2587
  [callbacks, navigation]
2386
2588
  );
2387
- const handleVisibilityChange = (0, import_react25.useCallback)(
2589
+ const handleVisibilityChange = (0, import_react26.useCallback)(
2388
2590
  (state) => {
2389
2591
  if (state === "visible" && callbacks.length > 0) {
2390
2592
  for (const callback of callbacks) {
@@ -2395,7 +2597,7 @@ function useWaitForReturnNavigator() {
2395
2597
  },
2396
2598
  [callbacks]
2397
2599
  );
2398
- (0, import_react_native33.useVisibilityChange)(handleVisibilityChange);
2600
+ (0, import_react_native38.useVisibilityChange)(handleVisibilityChange);
2399
2601
  return startNavigating;
2400
2602
  }
2401
2603
 
@@ -2410,10 +2612,10 @@ function useTopNavigation() {
2410
2612
 
2411
2613
  // src/hooks/useWebViewMemoryDebug.tsx
2412
2614
  var import_native_modules17 = require("@apps-in-toss/native-modules");
2413
- var import_react_native34 = require("@granite-js/react-native");
2414
- var import_tds_react_native11 = require("@toss/tds-react-native");
2615
+ var import_react_native39 = require("@granite-js/react-native");
2616
+ var import_tds_react_native13 = require("@toss/tds-react-native");
2415
2617
  function useHandleWebViewProcessDidTerminate(webViewRef) {
2416
- const toast = (0, import_tds_react_native11.useToast)();
2618
+ const toast = (0, import_tds_react_native13.useToast)();
2417
2619
  return () => {
2418
2620
  webViewDebugLog("AppsInTossWebViewProcessDidTerminate", {});
2419
2621
  toast.open("\uBB38\uC81C\uAC00 \uC0DD\uACA8\uC11C \uBBF8\uB2C8\uC571\uC744 \uB2E4\uC2DC \uC2DC\uC791\uD588\uC5B4\uC694.", {
@@ -2433,7 +2635,7 @@ function webViewDebugLog(logName, params) {
2433
2635
  log_type: "debug",
2434
2636
  params: {
2435
2637
  ...params,
2436
- app_name: import_react_native34.Granite.appName,
2638
+ app_name: import_react_native39.Granite.appName,
2437
2639
  deployment_id: global2.deploymentId
2438
2640
  }
2439
2641
  };
@@ -2445,7 +2647,7 @@ function webViewDebugLog(logName, params) {
2445
2647
  }
2446
2648
 
2447
2649
  // src/utils/log.ts
2448
- var import_react_native35 = require("@granite-js/react-native");
2650
+ var import_react_native40 = require("@granite-js/react-native");
2449
2651
 
2450
2652
  // src/utils/extractDateFromUUIDv7.ts
2451
2653
  var extractDateFromUUIDv7 = (uuid) => {
@@ -2471,7 +2673,7 @@ var getGroupId = (url) => {
2471
2673
  };
2472
2674
  var getReferrer2 = () => {
2473
2675
  try {
2474
- const referrer = new URL((0, import_react_native35.getSchemeUri)());
2676
+ const referrer = new URL((0, import_react_native40.getSchemeUri)());
2475
2677
  return referrer.searchParams.get("referrer");
2476
2678
  } catch {
2477
2679
  return "";
@@ -2485,7 +2687,7 @@ var trackScreen = (url, title) => {
2485
2687
  search,
2486
2688
  referrer: getReferrer2(),
2487
2689
  document_title: title,
2488
- app_name: import_react_native35.Granite.appName,
2690
+ app_name: import_react_native40.Granite.appName,
2489
2691
  deployment_id: env.getDeploymentId(),
2490
2692
  deployment_timestamp: extractDateFromUUIDv7(env.getDeploymentId()).getTime()
2491
2693
  };
@@ -2512,17 +2714,17 @@ var trackScreen = (url, title) => {
2512
2714
  };
2513
2715
 
2514
2716
  // src/components/WebView.tsx
2515
- var import_jsx_runtime19 = require("react/jsx-runtime");
2717
+ var import_jsx_runtime24 = require("react/jsx-runtime");
2516
2718
  var operationalEnvironment = appsInTossConstantBridges.getOperationalEnvironment();
2517
2719
  var TYPES = ["partner", "external", "game"];
2518
2720
  var WEBVIEW_TYPES = {
2519
2721
  partner: PartnerWebView,
2520
- external: import_tds_react_native12.ExternalWebViewScreen,
2722
+ external: import_tds_react_native14.ExternalWebViewScreen,
2521
2723
  game: GameWebView
2522
2724
  };
2523
2725
  function mergeSchemeQueryParamsInto(url) {
2524
2726
  const baseUrl = new URL(url);
2525
- const schemeUrl = new URL((0, import_react_native36.getSchemeUri)());
2727
+ const schemeUrl = new URL((0, import_react_native41.getSchemeUri)());
2526
2728
  const resultUrl = new URL(schemeUrl.pathname, baseUrl.origin);
2527
2729
  for (const [key, value] of baseUrl.searchParams.entries()) {
2528
2730
  resultUrl.searchParams.set(key, value);
@@ -2549,23 +2751,21 @@ function WebView({ type, local, onMessage, ...props }) {
2549
2751
  if (!TYPES.includes(type)) {
2550
2752
  throw new Error(`Invalid WebView type: '${type}'`);
2551
2753
  }
2552
- const webViewRef = (0, import_react26.useRef)(null);
2553
- const url = (0, import_react26.useMemo)(() => getWebViewURL(local), [local]);
2754
+ const webViewRef = (0, import_react27.useRef)(null);
2755
+ const url = (0, import_react27.useMemo)(() => getWebViewURL(local), [local]);
2554
2756
  const webBackHandler = useWebBackHandler(url, webViewRef);
2555
- const top = (0, import_private9.useSafeAreaTop)();
2556
- const bottom = (0, import_private9.useSafeAreaBottom)();
2557
- const insets = (0, import_react_native_safe_area_context4.useSafeAreaInsets)();
2558
2757
  const global2 = getAppsInTossGlobals();
2758
+ const insets = (0, import_react_native_safe_area_context3.useSafeAreaInsets)();
2559
2759
  const navigationBarContext = useNavigationBarContext();
2560
2760
  const safeAreaInsetsEvent = useSafeAreaInsetsEvent();
2561
- const [allowsBackForwardNavigationGestures, setAllowsBackForwardNavigationGestures] = (0, import_react26.useState)(
2761
+ const [allowsBackForwardNavigationGestures, setAllowsBackForwardNavigationGestures] = (0, import_react27.useState)(
2562
2762
  props.allowsBackForwardNavigationGestures
2563
2763
  );
2564
2764
  const handler = useBridgeHandler({
2565
2765
  onMessage,
2566
2766
  eventListenerMap: {
2567
2767
  ...appsInTossEventBridges,
2568
- navigationAccessoryEvent: ({ onEvent, onError }) => import_tds_react_native12.tdsEvent.addEventListener("navigationAccessoryEvent", { onEvent, onError }),
2768
+ navigationAccessoryEvent: ({ onEvent, onError }) => import_tds_react_native14.tdsEvent.addEventListener("navigationAccessoryEvent", { onEvent, onError }),
2569
2769
  backEvent: ({ onEvent }) => {
2570
2770
  webBackHandler.addEventListener(onEvent);
2571
2771
  return () => {
@@ -2593,12 +2793,7 @@ function WebView({ type, local, onMessage, ...props }) {
2593
2793
  },
2594
2794
  constantHandlerMap: {
2595
2795
  ...appsInTossConstantBridges,
2596
- getSafeAreaInsets: () => ({
2597
- top,
2598
- bottom,
2599
- left: insets.left,
2600
- right: insets.right
2601
- }),
2796
+ getSafeAreaInsets: () => insets,
2602
2797
  ...Object.fromEntries(Object.entries(global2).map(([key, value]) => [key, () => value])),
2603
2798
  getServerTime_isSupported: import_native_modules18.getServerTime.isSupported,
2604
2799
  requestReview_isSupported: import_native_modules18.requestReview.isSupported,
@@ -2659,7 +2854,7 @@ function WebView({ type, local, onMessage, ...props }) {
2659
2854
  }
2660
2855
  }
2661
2856
  });
2662
- const headerPropForExternalWebView = (0, import_react26.useMemo)(() => {
2857
+ const headerPropForExternalWebView = (0, import_react27.useMemo)(() => {
2663
2858
  const parsedNavigationBar = global2.navigationBar != null ? safeParseNavigationBar(global2.navigationBar) : null;
2664
2859
  const initialAccessoryButton = parsedNavigationBar?.initialAccessoryButton;
2665
2860
  const withBackButton = parsedNavigationBar?.withBackButton ?? true;
@@ -2680,16 +2875,16 @@ function WebView({ type, local, onMessage, ...props }) {
2680
2875
  colorPreference: "light"
2681
2876
  });
2682
2877
  const refs = mergeRefs(handler.ref, webViewRef);
2683
- (0, import_react26.useEffect)(() => {
2878
+ (0, import_react27.useEffect)(() => {
2684
2879
  const callback = () => {
2685
2880
  webBackHandler.handleWebBack();
2686
2881
  return true;
2687
2882
  };
2688
- const subscription = import_react_native37.BackHandler.addEventListener("hardwareBackPress", callback);
2883
+ const subscription = import_react_native42.BackHandler.addEventListener("hardwareBackPress", callback);
2689
2884
  return () => subscription.remove();
2690
2885
  }, [webBackHandler]);
2691
2886
  const handleWebViewProcessDidTerminate = useHandleWebViewProcessDidTerminate(webViewRef);
2692
- return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
2887
+ return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
2693
2888
  BaseWebView,
2694
2889
  {
2695
2890
  ref: refs,
@@ -2712,14 +2907,14 @@ function WebView({ type, local, onMessage, ...props }) {
2712
2907
  webBackHandler.onNavigationStateChange(event);
2713
2908
  },
2714
2909
  textZoom: 100,
2715
- userAgent: import_react_native37.Platform.OS === "ios" ? userAgent : void 0,
2910
+ userAgent: import_react_native42.Platform.OS === "ios" ? userAgent : void 0,
2716
2911
  sharedCookiesEnabled: true,
2717
2912
  webviewDebuggingEnabled: webViewDebuggingEnabled,
2718
2913
  thirdPartyCookiesEnabled: true,
2719
2914
  onMessage: handler.onMessage,
2720
2915
  injectedJavaScript: import_user_scripts.afterDocumentLoad,
2721
2916
  injectedJavaScriptBeforeContentLoaded: [handler.injectedJavaScript, import_user_scripts.beforeDocumentLoad].join("\n"),
2722
- decelerationRate: import_react_native37.Platform.OS === "ios" ? 1 : void 0,
2917
+ decelerationRate: import_react_native42.Platform.OS === "ios" ? 1 : void 0,
2723
2918
  allowsBackForwardNavigationGestures,
2724
2919
  onShouldStartLoadWithRequest: (event) => {
2725
2920
  try {
@@ -2727,7 +2922,7 @@ function WebView({ type, local, onMessage, ...props }) {
2727
2922
  if (["https:", "http:"].includes(url2.protocol) || url2.href === "about:blank") {
2728
2923
  return true;
2729
2924
  } else {
2730
- import_react_native37.Linking.openURL(convertIntentURL(url2) ?? url2.href);
2925
+ import_react_native42.Linking.openURL(convertIntentURL(url2) ?? url2.href);
2731
2926
  return false;
2732
2927
  }
2733
2928
  } catch (error) {
@@ -2752,15 +2947,15 @@ function WebView({ type, local, onMessage, ...props }) {
2752
2947
 
2753
2948
  // src/index.ts
2754
2949
  __reExport(src_exports, require("@apps-in-toss/analytics"), module.exports);
2755
- var import_private10 = require("@toss/tds-react-native/private");
2950
+ var import_private5 = require("@toss/tds-react-native/private");
2756
2951
  __reExport(src_exports, require("@apps-in-toss/native-modules"), module.exports);
2757
2952
  __reExport(src_exports, require("@apps-in-toss/types"), module.exports);
2758
2953
  var import_types = require("@apps-in-toss/types");
2759
2954
 
2760
2955
  // src/ads/inlineAd/InlineAd.tsx
2761
- var import_react_native41 = require("@granite-js/react-native");
2762
- var import_react29 = require("react");
2763
- var import_react_native42 = require("react-native");
2956
+ var import_react_native46 = require("@granite-js/react-native");
2957
+ var import_react30 = require("react");
2958
+ var import_react_native47 = require("react-native");
2764
2959
 
2765
2960
  // src/ads/inlineAd/constants.ts
2766
2961
  var SDK_ID = "106";
@@ -3022,7 +3217,7 @@ async function loadAd(adGroupId) {
3022
3217
  }
3023
3218
 
3024
3219
  // src/ads/inlineAd/opener.ts
3025
- var import_react_native38 = require("@granite-js/react-native");
3220
+ var import_react_native43 = require("@granite-js/react-native");
3026
3221
  function isSafeUrl(url) {
3027
3222
  try {
3028
3223
  const parsed = new URL(url);
@@ -3054,7 +3249,7 @@ function openLandingUrl(url) {
3054
3249
  return;
3055
3250
  }
3056
3251
  try {
3057
- (0, import_react_native38.openURL)(getWebSchemeOrUri(url));
3252
+ (0, import_react_native43.openURL)(getWebSchemeOrUri(url));
3058
3253
  } catch (error) {
3059
3254
  console.error("[InlineAd] Failed to open landing URL:", error);
3060
3255
  }
@@ -3140,10 +3335,10 @@ var EventTracker = class {
3140
3335
  };
3141
3336
 
3142
3337
  // src/ads/inlineAd/ui/FeedBannerAdView.tsx
3143
- var import_react_native_svg = require("@granite-js/native/react-native-svg");
3144
- var import_react27 = require("react");
3145
- var import_react_native39 = require("react-native");
3146
- var import_jsx_runtime20 = require("react/jsx-runtime");
3338
+ var import_react_native_svg2 = require("@granite-js/native/react-native-svg");
3339
+ var import_react28 = require("react");
3340
+ var import_react_native44 = require("react-native");
3341
+ var import_jsx_runtime25 = require("react/jsx-runtime");
3147
3342
  var ARROW_PATH = "m7.5 20.4c-.5-.5-.5-1.2 0-1.7l6.7-6.7-6.8-6.7c-.5-.5-.5-1.2 0-1.7s1.2-.5 1.7 0l7.5 7.5c.5.5.5 1.2 0 1.7l-7.5 7.5c-.2.3-.5.4-.8.4s-.6-.1-.8-.3z";
3148
3343
  function FeedBannerAdView({
3149
3344
  brandName,
@@ -3155,17 +3350,17 @@ function FeedBannerAdView({
3155
3350
  ctaTextColor,
3156
3351
  ctaBackgroundColor,
3157
3352
  adClearanceText,
3158
- colors,
3353
+ colors: colors4,
3159
3354
  isAdBadgeEnabled,
3160
3355
  paddingStyle,
3161
3356
  onPress
3162
3357
  }) {
3163
- const scale = (0, import_react27.useRef)(new import_react_native39.Animated.Value(1)).current;
3358
+ const scale = (0, import_react28.useRef)(new import_react_native44.Animated.Value(1)).current;
3164
3359
  const animateScale = (toValue) => {
3165
- import_react_native39.Animated.timing(scale, {
3360
+ import_react_native44.Animated.timing(scale, {
3166
3361
  toValue,
3167
3362
  duration: 100,
3168
- easing: import_react_native39.Easing.inOut(import_react_native39.Easing.ease),
3363
+ easing: import_react_native44.Easing.inOut(import_react_native44.Easing.ease),
3169
3364
  useNativeDriver: true
3170
3365
  }).start();
3171
3366
  };
@@ -3177,90 +3372,90 @@ function FeedBannerAdView({
3177
3372
  };
3178
3373
  const resolvedCtaBackground = ctaBackgroundColor ?? "#3081F9";
3179
3374
  const resolvedCtaTextColor = ctaTextColor ?? "#ffffff";
3180
- return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
3181
- import_react_native39.Pressable,
3375
+ return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
3376
+ import_react_native44.Pressable,
3182
3377
  {
3183
3378
  accessibilityRole: "button",
3184
3379
  onPress: () => onPress(null),
3185
3380
  onPressIn: handlePressIn,
3186
3381
  onPressOut: handlePressOut,
3187
3382
  style: styles.pressable,
3188
- children: /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_react_native39.Animated.View, { style: [styles.container, paddingStyle, { transform: [{ scale }] }], children: [
3189
- /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_react_native39.View, { style: styles.profileContainer, children: [
3190
- /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_react_native39.View, { style: styles.brandArea, children: [
3191
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
3192
- import_react_native39.Pressable,
3383
+ children: /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(import_react_native44.Animated.View, { style: [styles.container, paddingStyle, { transform: [{ scale }] }], children: [
3384
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(import_react_native44.View, { style: styles.profileContainer, children: [
3385
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(import_react_native44.View, { style: styles.brandArea, children: [
3386
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
3387
+ import_react_native44.Pressable,
3193
3388
  {
3194
3389
  accessibilityRole: "button",
3195
3390
  onPress: () => onPress("202"),
3196
3391
  onPressIn: handlePressIn,
3197
3392
  onPressOut: handlePressOut,
3198
3393
  style: styles.logoContainer,
3199
- children: /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_react_native39.View, { style: [styles.logoWrapper, { backgroundColor: colors.brandLogoBg }], children: [
3200
- brandLogoUri ? /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_react_native39.Image, { source: { uri: brandLogoUri }, style: styles.logoImage, resizeMode: "cover" }) : null,
3201
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_react_native39.View, { style: [styles.logoOverlay, { borderColor: colors.brandLogoBorder }] })
3394
+ children: /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(import_react_native44.View, { style: [styles.logoWrapper, { backgroundColor: colors4.brandLogoBg }], children: [
3395
+ brandLogoUri ? /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_react_native44.Image, { source: { uri: brandLogoUri }, style: styles.logoImage, resizeMode: "cover" }) : null,
3396
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_react_native44.View, { style: [styles.logoOverlay, { borderColor: colors4.brandLogoBorder }] })
3202
3397
  ] })
3203
3398
  }
3204
3399
  ),
3205
- /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_react_native39.View, { style: styles.brandTextContainer, children: [
3206
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
3207
- import_react_native39.Pressable,
3400
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(import_react_native44.View, { style: styles.brandTextContainer, children: [
3401
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
3402
+ import_react_native44.Pressable,
3208
3403
  {
3209
3404
  accessibilityRole: "button",
3210
3405
  onPress: () => onPress("103"),
3211
3406
  onPressIn: handlePressIn,
3212
3407
  onPressOut: handlePressOut,
3213
- children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
3214
- import_react_native39.Text,
3408
+ children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
3409
+ import_react_native44.Text,
3215
3410
  {
3216
3411
  allowFontScaling: false,
3217
3412
  numberOfLines: 1,
3218
- style: [styles.brandName, { color: colors.brandName }],
3413
+ style: [styles.brandName, { color: colors4.brandName }],
3219
3414
  children: brandName
3220
3415
  }
3221
3416
  )
3222
3417
  }
3223
3418
  ),
3224
- isAdBadgeEnabled ? /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_react_native39.Text, { allowFontScaling: false, numberOfLines: 1, style: [styles.adBadge, { color: colors.adBadge }], children: "\uAD11\uACE0" }) : null
3419
+ isAdBadgeEnabled ? /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_react_native44.Text, { allowFontScaling: false, numberOfLines: 1, style: [styles.adBadge, { color: colors4.adBadge }], children: "\uAD11\uACE0" }) : null
3225
3420
  ] })
3226
3421
  ] }),
3227
- /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_react_native39.View, { style: styles.textArea, children: [
3228
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
3229
- import_react_native39.Pressable,
3422
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(import_react_native44.View, { style: styles.textArea, children: [
3423
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
3424
+ import_react_native44.Pressable,
3230
3425
  {
3231
3426
  accessibilityRole: "button",
3232
3427
  onPress: () => onPress("101"),
3233
3428
  onPressIn: handlePressIn,
3234
3429
  onPressOut: handlePressOut,
3235
- children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_react_native39.Text, { allowFontScaling: false, style: [styles.title, { color: colors.title }], children: title })
3430
+ children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_react_native44.Text, { allowFontScaling: false, style: [styles.title, { color: colors4.title }], children: title })
3236
3431
  }
3237
3432
  ),
3238
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
3239
- import_react_native39.Pressable,
3433
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
3434
+ import_react_native44.Pressable,
3240
3435
  {
3241
3436
  accessibilityRole: "button",
3242
3437
  onPress: () => onPress("102"),
3243
3438
  onPressIn: handlePressIn,
3244
3439
  onPressOut: handlePressOut,
3245
- children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_react_native39.Text, { allowFontScaling: false, style: [styles.subtitle, { color: colors.subtitle }], children: subtitle })
3440
+ children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_react_native44.Text, { allowFontScaling: false, style: [styles.subtitle, { color: colors4.subtitle }], children: subtitle })
3246
3441
  }
3247
3442
  )
3248
3443
  ] })
3249
3444
  ] }),
3250
- /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_react_native39.View, { style: styles.card, children: [
3251
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
3252
- import_react_native39.Pressable,
3445
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(import_react_native44.View, { style: styles.card, children: [
3446
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
3447
+ import_react_native44.Pressable,
3253
3448
  {
3254
3449
  accessibilityRole: "button",
3255
3450
  onPress: () => onPress("201"),
3256
3451
  onPressIn: handlePressIn,
3257
3452
  onPressOut: handlePressOut,
3258
3453
  style: styles.imageButton,
3259
- children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_react_native39.View, { style: styles.imageContainer, children: mainImageUri ? /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_react_native39.Image, { source: { uri: mainImageUri }, style: styles.mainImage, resizeMode: "cover" }) : null })
3454
+ children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_react_native44.View, { style: styles.imageContainer, children: mainImageUri ? /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_react_native44.Image, { source: { uri: mainImageUri }, style: styles.mainImage, resizeMode: "cover" }) : null })
3260
3455
  }
3261
3456
  ),
3262
- /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
3263
- import_react_native39.Pressable,
3457
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(
3458
+ import_react_native44.Pressable,
3264
3459
  {
3265
3460
  accessibilityRole: "button",
3266
3461
  onPress: () => onPress("0"),
@@ -3268,19 +3463,19 @@ function FeedBannerAdView({
3268
3463
  onPressOut: handlePressOut,
3269
3464
  style: [styles.cta, { backgroundColor: resolvedCtaBackground }],
3270
3465
  children: [
3271
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_react_native39.Text, { allowFontScaling: false, style: [styles.ctaText, { color: resolvedCtaTextColor }], children: ctaText }),
3272
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_react_native_svg.Svg, { width: 20, height: 20, viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_react_native_svg.Path, { d: ARROW_PATH, fill: resolvedCtaTextColor }) })
3466
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_react_native44.Text, { allowFontScaling: false, style: [styles.ctaText, { color: resolvedCtaTextColor }], children: ctaText }),
3467
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_react_native_svg2.Svg, { width: 20, height: 20, viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_react_native_svg2.Path, { d: ARROW_PATH, fill: resolvedCtaTextColor }) })
3273
3468
  ]
3274
3469
  }
3275
3470
  ),
3276
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_react_native39.View, { style: [styles.cardOverlay, { borderColor: colors.imageOverlayBorder }] })
3471
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_react_native44.View, { style: [styles.cardOverlay, { borderColor: colors4.imageOverlayBorder }] })
3277
3472
  ] }),
3278
- adClearanceText ? /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_react_native39.Text, { allowFontScaling: false, style: [styles.adClearance, { color: colors.adClearance }], children: adClearanceText }) : null
3473
+ adClearanceText ? /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_react_native44.Text, { allowFontScaling: false, style: [styles.adClearance, { color: colors4.adClearance }], children: adClearanceText }) : null
3279
3474
  ] })
3280
3475
  }
3281
3476
  );
3282
3477
  }
3283
- var styles = import_react_native39.StyleSheet.create({
3478
+ var styles = import_react_native44.StyleSheet.create({
3284
3479
  pressable: {
3285
3480
  width: "100%"
3286
3481
  },
@@ -3319,7 +3514,7 @@ var styles = import_react_native39.StyleSheet.create({
3319
3514
  borderRadius: 18
3320
3515
  },
3321
3516
  logoOverlay: {
3322
- ...import_react_native39.StyleSheet.absoluteFillObject,
3517
+ ...import_react_native44.StyleSheet.absoluteFillObject,
3323
3518
  borderWidth: 1,
3324
3519
  borderRadius: 18
3325
3520
  },
@@ -3382,7 +3577,7 @@ var styles = import_react_native39.StyleSheet.create({
3382
3577
  lineHeight: 22.5
3383
3578
  },
3384
3579
  cardOverlay: {
3385
- ...import_react_native39.StyleSheet.absoluteFillObject,
3580
+ ...import_react_native44.StyleSheet.absoluteFillObject,
3386
3581
  borderWidth: 2,
3387
3582
  borderRadius: 12,
3388
3583
  pointerEvents: "none"
@@ -3395,10 +3590,10 @@ var styles = import_react_native39.StyleSheet.create({
3395
3590
  });
3396
3591
 
3397
3592
  // src/ads/inlineAd/ui/ListBannerAdView.tsx
3398
- var import_react_native_svg2 = require("@granite-js/native/react-native-svg");
3399
- var import_react28 = require("react");
3400
- var import_react_native40 = require("react-native");
3401
- var import_jsx_runtime21 = require("react/jsx-runtime");
3593
+ var import_react_native_svg3 = require("@granite-js/native/react-native-svg");
3594
+ var import_react29 = require("react");
3595
+ var import_react_native45 = require("react-native");
3596
+ var import_jsx_runtime26 = require("react/jsx-runtime");
3402
3597
  var SQUIRCLE_PATH = "M0 17.352C0 3.564 3.564 0 17.352 0H18.648C32.436 0 36 3.564 36 17.352V18.648C36 32.436 32.436 36 18.648 36H17.352C3.564 36 0 32.436 0 18.648V17.352Z";
3403
3598
  function ListBannerAdView({
3404
3599
  title,
@@ -3407,16 +3602,16 @@ function ListBannerAdView({
3407
3602
  adClearanceFontSize,
3408
3603
  imageUri,
3409
3604
  paddingStyle,
3410
- colors,
3605
+ colors: colors4,
3411
3606
  onPress
3412
3607
  }) {
3413
- const scale = (0, import_react28.useRef)(new import_react_native40.Animated.Value(1)).current;
3414
- const clipIdRef = (0, import_react28.useRef)(`clip-${Math.random().toString(36).slice(2)}`);
3608
+ const scale = (0, import_react29.useRef)(new import_react_native45.Animated.Value(1)).current;
3609
+ const clipIdRef = (0, import_react29.useRef)(`clip-${Math.random().toString(36).slice(2)}`);
3415
3610
  const animateScale = (toValue) => {
3416
- import_react_native40.Animated.timing(scale, {
3611
+ import_react_native45.Animated.timing(scale, {
3417
3612
  toValue,
3418
3613
  duration: 100,
3419
- easing: import_react_native40.Easing.inOut(import_react_native40.Easing.ease),
3614
+ easing: import_react_native45.Easing.inOut(import_react_native45.Easing.ease),
3420
3615
  useNativeDriver: true
3421
3616
  }).start();
3422
3617
  };
@@ -3426,29 +3621,29 @@ function ListBannerAdView({
3426
3621
  const handlePressOut = () => {
3427
3622
  animateScale(1);
3428
3623
  };
3429
- return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
3430
- import_react_native40.Pressable,
3624
+ return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
3625
+ import_react_native45.Pressable,
3431
3626
  {
3432
3627
  accessibilityRole: "button",
3433
3628
  onPress: () => onPress(null),
3434
3629
  onPressIn: handlePressIn,
3435
3630
  onPressOut: handlePressOut,
3436
3631
  style: styles2.pressable,
3437
- children: /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(import_react_native40.Animated.View, { style: [styles2.container, paddingStyle, { transform: [{ scale }] }], children: [
3438
- /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(import_react_native40.View, { style: styles2.titleRow, children: [
3439
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
3440
- import_react_native40.Pressable,
3632
+ children: /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(import_react_native45.Animated.View, { style: [styles2.container, paddingStyle, { transform: [{ scale }] }], children: [
3633
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(import_react_native45.View, { style: styles2.titleRow, children: [
3634
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
3635
+ import_react_native45.Pressable,
3441
3636
  {
3442
3637
  accessibilityRole: "button",
3443
3638
  onPress: () => onPress("202"),
3444
3639
  onPressIn: handlePressIn,
3445
3640
  onPressOut: handlePressOut,
3446
3641
  style: styles2.iconWrapper,
3447
- children: /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(import_react_native_svg2.Svg, { width: 36, height: 36, viewBox: "0 0 36 36", children: [
3448
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_react_native_svg2.Defs, { children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_react_native_svg2.ClipPath, { id: clipIdRef.current, children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_react_native_svg2.Path, { d: SQUIRCLE_PATH }) }) }),
3449
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_react_native_svg2.Path, { d: SQUIRCLE_PATH, fill: colors.iconBg }),
3450
- imageUri ? /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
3451
- import_react_native_svg2.Image,
3642
+ children: /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(import_react_native_svg3.Svg, { width: 36, height: 36, viewBox: "0 0 36 36", children: [
3643
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_react_native_svg3.Defs, { children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_react_native_svg3.ClipPath, { id: clipIdRef.current, children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_react_native_svg3.Path, { d: SQUIRCLE_PATH }) }) }),
3644
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_react_native_svg3.Path, { d: SQUIRCLE_PATH, fill: colors4.iconBg }),
3645
+ imageUri ? /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
3646
+ import_react_native_svg3.Image,
3452
3647
  {
3453
3648
  href: { uri: imageUri },
3454
3649
  width: 36,
@@ -3457,12 +3652,12 @@ function ListBannerAdView({
3457
3652
  clipPath: `url(#${clipIdRef.current})`
3458
3653
  }
3459
3654
  ) : null,
3460
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
3461
- import_react_native_svg2.Path,
3655
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
3656
+ import_react_native_svg3.Path,
3462
3657
  {
3463
3658
  d: SQUIRCLE_PATH,
3464
3659
  fill: "none",
3465
- stroke: colors.iconBorder,
3660
+ stroke: colors4.iconBorder,
3466
3661
  strokeWidth: 2,
3467
3662
  clipPath: `url(#${clipIdRef.current})`
3468
3663
  }
@@ -3470,37 +3665,37 @@ function ListBannerAdView({
3470
3665
  ] })
3471
3666
  }
3472
3667
  ),
3473
- /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(import_react_native40.View, { style: styles2.textWrapper, children: [
3474
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
3475
- import_react_native40.Pressable,
3668
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(import_react_native45.View, { style: styles2.textWrapper, children: [
3669
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
3670
+ import_react_native45.Pressable,
3476
3671
  {
3477
3672
  accessibilityRole: "button",
3478
3673
  onPress: () => onPress("101"),
3479
3674
  onPressIn: handlePressIn,
3480
3675
  onPressOut: handlePressOut,
3481
- children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_react_native40.Text, { allowFontScaling: false, style: [styles2.title, { color: colors.title }], children: title })
3676
+ children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_react_native45.Text, { allowFontScaling: false, style: [styles2.title, { color: colors4.title }], children: title })
3482
3677
  }
3483
3678
  ),
3484
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
3485
- import_react_native40.Pressable,
3679
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
3680
+ import_react_native45.Pressable,
3486
3681
  {
3487
3682
  accessibilityRole: "button",
3488
3683
  onPress: () => onPress("102"),
3489
3684
  onPressIn: handlePressIn,
3490
3685
  onPressOut: handlePressOut,
3491
- children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_react_native40.Text, { allowFontScaling: false, style: [styles2.subtitle, { color: colors.subtitle }], children: subtitle })
3686
+ children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_react_native45.Text, { allowFontScaling: false, style: [styles2.subtitle, { color: colors4.subtitle }], children: subtitle })
3492
3687
  }
3493
3688
  )
3494
3689
  ] })
3495
3690
  ] }),
3496
- adClearanceText ? /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
3497
- import_react_native40.Text,
3691
+ adClearanceText ? /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
3692
+ import_react_native45.Text,
3498
3693
  {
3499
3694
  allowFontScaling: false,
3500
3695
  style: [
3501
3696
  styles2.adClearance,
3502
3697
  {
3503
- color: colors.adClearance,
3698
+ color: colors4.adClearance,
3504
3699
  fontSize: adClearanceFontSize,
3505
3700
  lineHeight: adClearanceFontSize * 1.2
3506
3701
  }
@@ -3512,7 +3707,7 @@ function ListBannerAdView({
3512
3707
  }
3513
3708
  );
3514
3709
  }
3515
- var styles2 = import_react_native40.StyleSheet.create({
3710
+ var styles2 = import_react_native45.StyleSheet.create({
3516
3711
  pressable: {
3517
3712
  width: "100%"
3518
3713
  },
@@ -3631,7 +3826,7 @@ function buildNoFillPayload(slotId, adGroupId) {
3631
3826
  }
3632
3827
 
3633
3828
  // src/ads/inlineAd/InlineAd.tsx
3634
- var import_jsx_runtime22 = require("react/jsx-runtime");
3829
+ var import_jsx_runtime27 = require("react/jsx-runtime");
3635
3830
  var themePalette = {
3636
3831
  light: {
3637
3832
  title: "#4e5968",
@@ -3719,21 +3914,21 @@ function InlineAd(props) {
3719
3914
  onAdFailedToRender,
3720
3915
  onNoFill
3721
3916
  } = props;
3722
- const slotIdRef = (0, import_react29.useRef)(createSlotId());
3723
- const [ad, setAd] = (0, import_react29.useState)(null);
3724
- const [isAdBadgeEnabled, setIsAdBadgeEnabled] = (0, import_react29.useState)(true);
3725
- const eventTrackerRef = (0, import_react29.useRef)(null);
3726
- const eventPayloadRef = (0, import_react29.useRef)(null);
3727
- const hasRenderedRef = (0, import_react29.useRef)(false);
3728
- const hasLoggedImp1pxRef = (0, import_react29.useRef)(false);
3729
- const hasLoggedImp100pRef = (0, import_react29.useRef)(false);
3730
- const hasNotifiedViewableRef = (0, import_react29.useRef)(false);
3731
- const viewableTimerRef = (0, import_react29.useRef)(null);
3732
- const refetchIntervalMsRef = (0, import_react29.useRef)(null);
3733
- const lastImp1pxAtRef = (0, import_react29.useRef)(null);
3734
- const loadingRef = (0, import_react29.useRef)(false);
3735
- const loadRef = (0, import_react29.useRef)(null);
3736
- const callbacksRef = (0, import_react29.useRef)({
3917
+ const slotIdRef = (0, import_react30.useRef)(createSlotId());
3918
+ const [ad, setAd] = (0, import_react30.useState)(null);
3919
+ const [isAdBadgeEnabled, setIsAdBadgeEnabled] = (0, import_react30.useState)(true);
3920
+ const eventTrackerRef = (0, import_react30.useRef)(null);
3921
+ const eventPayloadRef = (0, import_react30.useRef)(null);
3922
+ const hasRenderedRef = (0, import_react30.useRef)(false);
3923
+ const hasLoggedImp1pxRef = (0, import_react30.useRef)(false);
3924
+ const hasLoggedImp100pRef = (0, import_react30.useRef)(false);
3925
+ const hasNotifiedViewableRef = (0, import_react30.useRef)(false);
3926
+ const viewableTimerRef = (0, import_react30.useRef)(null);
3927
+ const refetchIntervalMsRef = (0, import_react30.useRef)(null);
3928
+ const lastImp1pxAtRef = (0, import_react30.useRef)(null);
3929
+ const loadingRef = (0, import_react30.useRef)(false);
3930
+ const loadRef = (0, import_react30.useRef)(null);
3931
+ const callbacksRef = (0, import_react30.useRef)({
3737
3932
  onAdRendered,
3738
3933
  onAdViewable,
3739
3934
  onAdClicked,
@@ -3741,13 +3936,13 @@ function InlineAd(props) {
3741
3936
  onAdFailedToRender,
3742
3937
  onNoFill
3743
3938
  });
3744
- const isMountedRef = (0, import_react29.useRef)(false);
3745
- const colorScheme = (0, import_react_native42.useColorScheme)();
3939
+ const isMountedRef = (0, import_react30.useRef)(false);
3940
+ const colorScheme = (0, import_react_native47.useColorScheme)();
3746
3941
  const selectedTheme = theme ?? DEFAULT_INLINE_AD_THEME;
3747
3942
  const resolvedTheme = selectedTheme === "auto" ? colorScheme === "dark" ? "dark" : "light" : selectedTheme;
3748
3943
  const resolvedTone = tone ?? DEFAULT_INLINE_AD_TONE;
3749
3944
  const resolvedVariant = variant ?? DEFAULT_INLINE_AD_VARIANT;
3750
- const colors = themePalette[resolvedTheme];
3945
+ const colors4 = themePalette[resolvedTheme];
3751
3946
  const feedColors = feedThemePalette[resolvedTheme];
3752
3947
  const backgroundColor = resolvedTone === "grey" ? resolvedTheme === "dark" ? "#101013" : "#f2f4f7" : resolvedTheme === "dark" ? "#17171c" : "#ffffff";
3753
3948
  callbacksRef.current = {
@@ -3758,7 +3953,7 @@ function InlineAd(props) {
3758
3953
  onAdFailedToRender,
3759
3954
  onNoFill
3760
3955
  };
3761
- (0, import_react29.useEffect)(() => {
3956
+ (0, import_react30.useEffect)(() => {
3762
3957
  isMountedRef.current = true;
3763
3958
  return () => {
3764
3959
  isMountedRef.current = false;
@@ -3768,7 +3963,7 @@ function InlineAd(props) {
3768
3963
  }
3769
3964
  };
3770
3965
  }, []);
3771
- (0, import_react29.useEffect)(() => {
3966
+ (0, import_react30.useEffect)(() => {
3772
3967
  const normalizedAdGroupId = normalizeAdGroupId(adGroupId);
3773
3968
  const loadAdRequest = () => {
3774
3969
  if (loadingRef.current) {
@@ -3840,7 +4035,7 @@ function InlineAd(props) {
3840
4035
  loadRef.current = null;
3841
4036
  };
3842
4037
  }, [adGroupId]);
3843
- (0, import_react_native41.useVisibilityChange)((documentVisibility) => {
4038
+ (0, import_react_native46.useVisibilityChange)((documentVisibility) => {
3844
4039
  if (documentVisibility !== "visible") {
3845
4040
  return;
3846
4041
  }
@@ -3853,7 +4048,7 @@ function InlineAd(props) {
3853
4048
  loadRef.current?.();
3854
4049
  }
3855
4050
  });
3856
- (0, import_react29.useEffect)(() => {
4051
+ (0, import_react30.useEffect)(() => {
3857
4052
  if (!ad || hasRenderedRef.current) {
3858
4053
  return;
3859
4054
  }
@@ -3938,28 +4133,28 @@ function InlineAd(props) {
3938
4133
  callbacksRef.current.onAdClicked?.(basePayload);
3939
4134
  }
3940
4135
  };
3941
- return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
3942
- import_react_native41.ImpressionArea,
4136
+ return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
4137
+ import_react_native46.ImpressionArea,
3943
4138
  {
3944
4139
  style: styles3.impressionArea,
3945
4140
  onImpressionStart: handleImpression1px,
3946
4141
  areaThreshold: 0,
3947
4142
  UNSAFE__impressFallbackOnMount: Boolean(impressFallbackOnMount),
3948
- children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
3949
- import_react_native41.ImpressionArea,
4143
+ children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
4144
+ import_react_native46.ImpressionArea,
3950
4145
  {
3951
4146
  onImpressionStart: handleImpression100p,
3952
4147
  areaThreshold: 1,
3953
4148
  UNSAFE__impressFallbackOnMount: Boolean(impressFallbackOnMount),
3954
- children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
3955
- import_react_native41.ImpressionArea,
4149
+ children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
4150
+ import_react_native46.ImpressionArea,
3956
4151
  {
3957
4152
  onImpressionStart: handleViewableStart,
3958
4153
  onImpressionEnd: handleViewableEnd,
3959
4154
  areaThreshold: 0.5,
3960
4155
  UNSAFE__impressFallbackOnMount: Boolean(impressFallbackOnMount),
3961
- children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_react_native42.View, { style: [styles3.wrapper, resolvedVariant === "card" && styles3.cardWrapper], children: /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(import_react_native42.View, { style: [styles3.surface, { backgroundColor }, resolvedVariant === "card" && styles3.cardSurface], children: [
3962
- isListBanner && listCreative ? /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
4156
+ children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_react_native47.View, { style: [styles3.wrapper, resolvedVariant === "card" && styles3.cardWrapper], children: /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(import_react_native47.View, { style: [styles3.surface, { backgroundColor }, resolvedVariant === "card" && styles3.cardSurface], children: [
4157
+ isListBanner && listCreative ? /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
3963
4158
  ListBannerAdView,
3964
4159
  {
3965
4160
  title: listCreative.title,
@@ -3968,11 +4163,11 @@ function InlineAd(props) {
3968
4163
  adClearanceFontSize,
3969
4164
  imageUri,
3970
4165
  paddingStyle,
3971
- colors,
4166
+ colors: colors4,
3972
4167
  onPress: handleClick
3973
4168
  }
3974
4169
  ) : null,
3975
- isFeedBanner && feedCreative ? /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
4170
+ isFeedBanner && feedCreative ? /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
3976
4171
  FeedBannerAdView,
3977
4172
  {
3978
4173
  brandName: feedCreative.brandName,
@@ -3999,7 +4194,7 @@ function InlineAd(props) {
3999
4194
  impressionKey
4000
4195
  );
4001
4196
  }
4002
- var styles3 = import_react_native42.StyleSheet.create({
4197
+ var styles3 = import_react_native47.StyleSheet.create({
4003
4198
  impressionArea: {
4004
4199
  width: "100%"
4005
4200
  },