@yahoo/uds-mobile 2.16.0 → 2.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (236) hide show
  1. package/dist/bin/fixtures/dist/index.mjs +14 -0
  2. package/dist/bin/generateTheme.mjs +7 -2
  3. package/dist/bin/mobile/scripts/utils/configToRNMappings.mjs +4 -0
  4. package/dist/components/Popover/Popover.cjs +92 -0
  5. package/dist/components/Popover/Popover.d.cts +26 -0
  6. package/dist/components/Popover/Popover.d.cts.map +1 -0
  7. package/dist/components/Popover/Popover.d.ts +26 -0
  8. package/dist/components/Popover/Popover.d.ts.map +1 -0
  9. package/dist/components/Popover/Popover.js +92 -0
  10. package/dist/components/Popover/Popover.js.map +1 -0
  11. package/dist/components/Popover/PopoverContent.cjs +124 -0
  12. package/dist/components/Popover/PopoverContent.d.cts +15 -0
  13. package/dist/components/Popover/PopoverContent.d.cts.map +1 -0
  14. package/dist/components/Popover/PopoverContent.d.ts +15 -0
  15. package/dist/components/Popover/PopoverContent.d.ts.map +1 -0
  16. package/dist/components/Popover/PopoverContent.js +124 -0
  17. package/dist/components/Popover/PopoverContent.js.map +1 -0
  18. package/dist/components/Popover/PopoverContext.cjs +14 -0
  19. package/dist/components/Popover/PopoverContext.d.cts +10 -0
  20. package/dist/components/Popover/PopoverContext.d.cts.map +1 -0
  21. package/dist/components/Popover/PopoverContext.d.ts +10 -0
  22. package/dist/components/Popover/PopoverContext.d.ts.map +1 -0
  23. package/dist/components/Popover/PopoverContext.js +13 -0
  24. package/dist/components/Popover/PopoverContext.js.map +1 -0
  25. package/dist/components/Popover/PopoverDescription.cjs +23 -0
  26. package/dist/components/Popover/PopoverDescription.d.cts +15 -0
  27. package/dist/components/Popover/PopoverDescription.d.cts.map +1 -0
  28. package/dist/components/Popover/PopoverDescription.d.ts +15 -0
  29. package/dist/components/Popover/PopoverDescription.d.ts.map +1 -0
  30. package/dist/components/Popover/PopoverDescription.js +23 -0
  31. package/dist/components/Popover/PopoverDescription.js.map +1 -0
  32. package/dist/components/Popover/PopoverDismiss.cjs +22 -0
  33. package/dist/components/Popover/PopoverDismiss.d.cts +15 -0
  34. package/dist/components/Popover/PopoverDismiss.d.cts.map +1 -0
  35. package/dist/components/Popover/PopoverDismiss.d.ts +15 -0
  36. package/dist/components/Popover/PopoverDismiss.d.ts.map +1 -0
  37. package/dist/components/Popover/PopoverDismiss.js +22 -0
  38. package/dist/components/Popover/PopoverDismiss.js.map +1 -0
  39. package/dist/components/Popover/PopoverFrame.cjs +56 -0
  40. package/dist/components/Popover/PopoverFrame.d.cts +23 -0
  41. package/dist/components/Popover/PopoverFrame.d.cts.map +1 -0
  42. package/dist/components/Popover/PopoverFrame.d.ts +23 -0
  43. package/dist/components/Popover/PopoverFrame.d.ts.map +1 -0
  44. package/dist/components/Popover/PopoverFrame.js +55 -0
  45. package/dist/components/Popover/PopoverFrame.js.map +1 -0
  46. package/dist/components/Popover/PopoverPortalLayer.cjs +45 -0
  47. package/dist/components/Popover/PopoverPortalLayer.d.cts +15 -0
  48. package/dist/components/Popover/PopoverPortalLayer.d.cts.map +1 -0
  49. package/dist/components/Popover/PopoverPortalLayer.d.ts +15 -0
  50. package/dist/components/Popover/PopoverPortalLayer.d.ts.map +1 -0
  51. package/dist/components/Popover/PopoverPortalLayer.js +45 -0
  52. package/dist/components/Popover/PopoverPortalLayer.js.map +1 -0
  53. package/dist/components/Popover/PopoverSurface.cjs +228 -0
  54. package/dist/components/Popover/PopoverSurface.d.cts +26 -0
  55. package/dist/components/Popover/PopoverSurface.d.cts.map +1 -0
  56. package/dist/components/Popover/PopoverSurface.d.ts +26 -0
  57. package/dist/components/Popover/PopoverSurface.d.ts.map +1 -0
  58. package/dist/components/Popover/PopoverSurface.js +227 -0
  59. package/dist/components/Popover/PopoverSurface.js.map +1 -0
  60. package/dist/components/Popover/PopoverTitle.cjs +23 -0
  61. package/dist/components/Popover/PopoverTitle.d.cts +15 -0
  62. package/dist/components/Popover/PopoverTitle.d.cts.map +1 -0
  63. package/dist/components/Popover/PopoverTitle.d.ts +15 -0
  64. package/dist/components/Popover/PopoverTitle.d.ts.map +1 -0
  65. package/dist/components/Popover/PopoverTitle.js +23 -0
  66. package/dist/components/Popover/PopoverTitle.js.map +1 -0
  67. package/dist/components/Popover/PopoverTrigger.cjs +88 -0
  68. package/dist/components/Popover/PopoverTrigger.d.cts +15 -0
  69. package/dist/components/Popover/PopoverTrigger.d.cts.map +1 -0
  70. package/dist/components/Popover/PopoverTrigger.d.ts +15 -0
  71. package/dist/components/Popover/PopoverTrigger.d.ts.map +1 -0
  72. package/dist/components/Popover/PopoverTrigger.js +88 -0
  73. package/dist/components/Popover/PopoverTrigger.js.map +1 -0
  74. package/dist/components/Popover/index.cjs +14 -0
  75. package/dist/components/Popover/index.d.cts +9 -0
  76. package/dist/components/Popover/index.d.ts +9 -0
  77. package/dist/components/Popover/index.js +8 -0
  78. package/dist/components/Popover/popoverFrameGeometry.cjs +177 -0
  79. package/dist/components/Popover/popoverFrameGeometry.d.cts +48 -0
  80. package/dist/components/Popover/popoverFrameGeometry.d.cts.map +1 -0
  81. package/dist/components/Popover/popoverFrameGeometry.d.ts +48 -0
  82. package/dist/components/Popover/popoverFrameGeometry.d.ts.map +1 -0
  83. package/dist/components/Popover/popoverFrameGeometry.js +177 -0
  84. package/dist/components/Popover/popoverFrameGeometry.js.map +1 -0
  85. package/dist/components/Popover/popoverLayer.cjs +16 -0
  86. package/dist/components/Popover/popoverLayer.d.cts +8 -0
  87. package/dist/components/Popover/popoverLayer.d.cts.map +1 -0
  88. package/dist/components/Popover/popoverLayer.d.ts +8 -0
  89. package/dist/components/Popover/popoverLayer.d.ts.map +1 -0
  90. package/dist/components/Popover/popoverLayer.js +16 -0
  91. package/dist/components/Popover/popoverLayer.js.map +1 -0
  92. package/dist/components/Popover/types.cjs +1 -0
  93. package/dist/components/Popover/types.d.cts +170 -0
  94. package/dist/components/Popover/types.d.cts.map +1 -0
  95. package/dist/components/Popover/types.d.ts +170 -0
  96. package/dist/components/Popover/types.d.ts.map +1 -0
  97. package/dist/components/Popover/types.js +1 -0
  98. package/dist/components/Toast/Toast.cjs +141 -0
  99. package/dist/components/Toast/Toast.d.cts +38 -0
  100. package/dist/components/Toast/Toast.d.cts.map +1 -0
  101. package/dist/components/Toast/Toast.d.ts +38 -0
  102. package/dist/components/Toast/Toast.d.ts.map +1 -0
  103. package/dist/components/Toast/Toast.js +141 -0
  104. package/dist/components/Toast/Toast.js.map +1 -0
  105. package/dist/components/Toast/ToastAnimatedItem.cjs +88 -0
  106. package/dist/components/Toast/ToastAnimatedItem.d.cts +27 -0
  107. package/dist/components/Toast/ToastAnimatedItem.d.cts.map +1 -0
  108. package/dist/components/Toast/ToastAnimatedItem.d.ts +27 -0
  109. package/dist/components/Toast/ToastAnimatedItem.d.ts.map +1 -0
  110. package/dist/components/Toast/ToastAnimatedItem.js +87 -0
  111. package/dist/components/Toast/ToastAnimatedItem.js.map +1 -0
  112. package/dist/components/Toast/ToastItem.cjs +35 -0
  113. package/dist/components/Toast/ToastItem.d.cts +25 -0
  114. package/dist/components/Toast/ToastItem.d.cts.map +1 -0
  115. package/dist/components/Toast/ToastItem.d.ts +25 -0
  116. package/dist/components/Toast/ToastItem.d.ts.map +1 -0
  117. package/dist/components/Toast/ToastItem.js +35 -0
  118. package/dist/components/Toast/ToastItem.js.map +1 -0
  119. package/dist/components/Toast/ToastProvider.cjs +144 -0
  120. package/dist/components/Toast/ToastProvider.d.cts +58 -0
  121. package/dist/components/Toast/ToastProvider.d.cts.map +1 -0
  122. package/dist/components/Toast/ToastProvider.d.ts +58 -0
  123. package/dist/components/Toast/ToastProvider.d.ts.map +1 -0
  124. package/dist/components/Toast/ToastProvider.js +143 -0
  125. package/dist/components/Toast/ToastProvider.js.map +1 -0
  126. package/dist/components/Toast/ToastViewport.cjs +48 -0
  127. package/dist/components/Toast/ToastViewport.d.cts +42 -0
  128. package/dist/components/Toast/ToastViewport.d.cts.map +1 -0
  129. package/dist/components/Toast/ToastViewport.d.ts +42 -0
  130. package/dist/components/Toast/ToastViewport.d.ts.map +1 -0
  131. package/dist/components/Toast/ToastViewport.js +48 -0
  132. package/dist/components/Toast/ToastViewport.js.map +1 -0
  133. package/dist/components/Toast/createToast.cjs +21 -0
  134. package/dist/components/Toast/createToast.d.cts +10 -0
  135. package/dist/components/Toast/createToast.d.cts.map +1 -0
  136. package/dist/components/Toast/createToast.d.ts +10 -0
  137. package/dist/components/Toast/createToast.d.ts.map +1 -0
  138. package/dist/components/Toast/createToast.js +20 -0
  139. package/dist/components/Toast/createToast.js.map +1 -0
  140. package/dist/components/Toast/index.cjs +10 -0
  141. package/dist/components/Toast/index.d.cts +6 -0
  142. package/dist/components/Toast/index.d.ts +6 -0
  143. package/dist/components/Toast/index.js +5 -0
  144. package/dist/components/Toast/types.cjs +1 -0
  145. package/dist/components/Toast/types.d.cts +113 -0
  146. package/dist/components/Toast/types.d.cts.map +1 -0
  147. package/dist/components/Toast/types.d.ts +113 -0
  148. package/dist/components/Toast/types.d.ts.map +1 -0
  149. package/dist/components/Toast/types.js +1 -0
  150. package/dist/components/Toast/useToastController.cjs +286 -0
  151. package/dist/components/Toast/useToastController.d.cts +25 -0
  152. package/dist/components/Toast/useToastController.d.cts.map +1 -0
  153. package/dist/components/Toast/useToastController.d.ts +25 -0
  154. package/dist/components/Toast/useToastController.d.ts.map +1 -0
  155. package/dist/components/Toast/useToastController.js +286 -0
  156. package/dist/components/Toast/useToastController.js.map +1 -0
  157. package/dist/components/Toast/utils.cjs +69 -0
  158. package/dist/components/Toast/utils.d.cts +27 -0
  159. package/dist/components/Toast/utils.d.cts.map +1 -0
  160. package/dist/components/Toast/utils.d.ts +27 -0
  161. package/dist/components/Toast/utils.d.ts.map +1 -0
  162. package/dist/components/Toast/utils.js +55 -0
  163. package/dist/components/Toast/utils.js.map +1 -0
  164. package/dist/components/internal/Overlay/index.cjs +4 -0
  165. package/dist/components/internal/Overlay/index.d.cts +4 -2
  166. package/dist/components/internal/Overlay/index.d.ts +4 -2
  167. package/dist/components/internal/Overlay/index.js +3 -1
  168. package/dist/components/internal/Overlay/types.d.cts +47 -1
  169. package/dist/components/internal/Overlay/types.d.cts.map +1 -1
  170. package/dist/components/internal/Overlay/types.d.ts +47 -1
  171. package/dist/components/internal/Overlay/types.d.ts.map +1 -1
  172. package/dist/components/internal/Overlay/useAnchoredPosition.cjs +225 -0
  173. package/dist/components/internal/Overlay/useAnchoredPosition.d.cts +22 -0
  174. package/dist/components/internal/Overlay/useAnchoredPosition.d.cts.map +1 -0
  175. package/dist/components/internal/Overlay/useAnchoredPosition.d.ts +22 -0
  176. package/dist/components/internal/Overlay/useAnchoredPosition.d.ts.map +1 -0
  177. package/dist/components/internal/Overlay/useAnchoredPosition.js +225 -0
  178. package/dist/components/internal/Overlay/useAnchoredPosition.js.map +1 -0
  179. package/dist/components/internal/Overlay/useOverlayDismiss.cjs +22 -0
  180. package/dist/components/internal/Overlay/useOverlayDismiss.d.cts +12 -0
  181. package/dist/components/internal/Overlay/useOverlayDismiss.d.cts.map +1 -0
  182. package/dist/components/internal/Overlay/useOverlayDismiss.d.ts +12 -0
  183. package/dist/components/internal/Overlay/useOverlayDismiss.d.ts.map +1 -0
  184. package/dist/components/internal/Overlay/useOverlayDismiss.js +22 -0
  185. package/dist/components/internal/Overlay/useOverlayDismiss.js.map +1 -0
  186. package/dist/jest/mocks/gesture-handler.cjs +38 -0
  187. package/dist/jest/mocks/gesture-handler.d.cts +41 -0
  188. package/dist/jest/mocks/gesture-handler.d.cts.map +1 -0
  189. package/dist/jest/mocks/gesture-handler.d.ts +41 -0
  190. package/dist/jest/mocks/gesture-handler.d.ts.map +1 -0
  191. package/dist/jest/mocks/gesture-handler.js +37 -0
  192. package/dist/jest/mocks/gesture-handler.js.map +1 -0
  193. package/dist/jest/mocks/react-native.cjs +14 -0
  194. package/dist/jest/mocks/react-native.d.cts +29 -1
  195. package/dist/jest/mocks/react-native.d.cts.map +1 -1
  196. package/dist/jest/mocks/react-native.d.ts +29 -1
  197. package/dist/jest/mocks/react-native.d.ts.map +1 -1
  198. package/dist/jest/mocks/react-native.js +13 -1
  199. package/dist/jest/mocks/react-native.js.map +1 -1
  200. package/dist/jest/mocks/safe-area-context.cjs +35 -0
  201. package/dist/jest/mocks/safe-area-context.d.cts +43 -0
  202. package/dist/jest/mocks/safe-area-context.d.cts.map +1 -0
  203. package/dist/jest/mocks/safe-area-context.d.ts +43 -0
  204. package/dist/jest/mocks/safe-area-context.d.ts.map +1 -0
  205. package/dist/jest/mocks/safe-area-context.js +32 -0
  206. package/dist/jest/mocks/safe-area-context.js.map +1 -0
  207. package/dist/jest/mocks/screens.cjs +8 -0
  208. package/dist/jest/mocks/screens.d.cts +12 -0
  209. package/dist/jest/mocks/screens.d.cts.map +1 -0
  210. package/dist/jest/mocks/screens.d.ts +12 -0
  211. package/dist/jest/mocks/screens.d.ts.map +1 -0
  212. package/dist/jest/mocks/screens.js +9 -0
  213. package/dist/jest/mocks/screens.js.map +1 -0
  214. package/dist/jest/mocks/styles.cjs +98 -1
  215. package/dist/jest/mocks/styles.d.cts +6 -2
  216. package/dist/jest/mocks/styles.d.cts.map +1 -1
  217. package/dist/jest/mocks/styles.d.ts +6 -2
  218. package/dist/jest/mocks/styles.d.ts.map +1 -1
  219. package/dist/jest/mocks/styles.js +95 -2
  220. package/dist/jest/mocks/styles.js.map +1 -1
  221. package/dist/jest/setup.cjs +46 -3
  222. package/dist/jest/setup.d.cts.map +1 -1
  223. package/dist/jest/setup.d.ts.map +1 -1
  224. package/dist/jest/setup.js +46 -3
  225. package/dist/jest/setup.js.map +1 -1
  226. package/dist/types/dist/index.d.cts +4 -1
  227. package/dist/types/dist/index.d.cts.map +1 -1
  228. package/dist/types/dist/index.d.ts +4 -1
  229. package/dist/types/dist/index.d.ts.map +1 -1
  230. package/fonts/index.cjs +211 -211
  231. package/fonts/index.mjs +211 -211
  232. package/generated/styles.cjs +6 -0
  233. package/generated/styles.d.ts +13 -1
  234. package/generated/styles.mjs +6 -0
  235. package/generated/unistyles.d.ts +13 -0
  236. package/package.json +21 -1
@@ -0,0 +1,228 @@
1
+ /*! © 2026 Yahoo, Inc. UDS Mobile v0.0.0-development */
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const require_runtime = require("../../_virtual/_rolldown/runtime.cjs");
4
+ const require_components_Box = require("../Box.cjs");
5
+ const require_components_Icon = require("../Icon.cjs");
6
+ const require_components_Pressable = require("../Pressable.cjs");
7
+ const require_components_Popover_PopoverContext = require("./PopoverContext.cjs");
8
+ const require_components_Popover_PopoverFrame = require("./PopoverFrame.cjs");
9
+ let react = require("react");
10
+ let react_native = require("react-native");
11
+ let react_jsx_runtime = require("react/jsx-runtime");
12
+ let generated_styles = require("../../../generated/styles");
13
+ let react_native_reanimated = require("react-native-reanimated");
14
+ react_native_reanimated = require_runtime.__toESM(react_native_reanimated);
15
+ //#region src/components/Popover/PopoverSurface.tsx
16
+ const DEFAULT_CLOSE_ICON_SIZE = 16;
17
+ const DEFAULT_TRANSLUCENT_SURFACE_OPACITY = .5;
18
+ const AnimatedBox = react_native_reanimated.default.createAnimatedComponent(require_components_Box.Box);
19
+ function getColorWithOpacity(color, opacity) {
20
+ if (!color || opacity === void 0) return color;
21
+ const normalized = color.trim();
22
+ const rgbMatch = normalized.match(/^rgb\(([^)]+)\)$/i);
23
+ if (rgbMatch) {
24
+ const channels = rgbMatch[1].split(",").map((part) => part.trim());
25
+ if (channels.length === 3) return `rgba(${channels.join(", ")}, ${opacity})`;
26
+ }
27
+ const rgbaMatch = normalized.match(/^rgba\(([^)]+)\)$/i);
28
+ if (rgbaMatch) {
29
+ const channels = rgbaMatch[1].split(",").map((part) => part.trim());
30
+ if (channels.length === 4) return `rgba(${channels.slice(0, 3).join(", ")}, ${opacity})`;
31
+ }
32
+ const hexMatch = normalized.match(/^#([\da-f]{3}|[\da-f]{6})$/i);
33
+ if (hexMatch) {
34
+ const value = hexMatch[1];
35
+ const [r, g, b] = value.length === 3 ? value.split("").map((char) => parseInt(`${char}${char}`, 16)) : [
36
+ parseInt(value.slice(0, 2), 16),
37
+ parseInt(value.slice(2, 4), 16),
38
+ parseInt(value.slice(4, 6), 16)
39
+ ];
40
+ return `rgba(${r}, ${g}, ${b}, ${opacity})`;
41
+ }
42
+ return color;
43
+ }
44
+ function hasColorOpacity(color) {
45
+ if (!color) return false;
46
+ const normalized = color.trim().toLowerCase();
47
+ if (normalized === "transparent") return true;
48
+ const rgbaMatch = normalized.match(/^rgba\(([^)]+)\)$/);
49
+ if (rgbaMatch) {
50
+ const channels = rgbaMatch[1].split(",").map((part) => part.trim());
51
+ const alpha = Number(channels[3]);
52
+ return channels.length === 4 && Number.isFinite(alpha) && alpha < 1;
53
+ }
54
+ return /^#[\da-f]{4}$|^#[\da-f]{8}$/.test(normalized);
55
+ }
56
+ function getPositiveNumber(...values) {
57
+ return values.find((value) => typeof value === "number" && value > 0) ?? 0;
58
+ }
59
+ const PopoverSurface = (0, react.memo)(function PopoverSurface({ animatedStyle, arrowHeight, arrowStyle, arrowWidth, children, contentSize, contentStyle, maxHeight, maxWidth, onDismiss, positionedMaxWidth, resolvedPlacement, style, ...props }) {
60
+ const { blurTarget, closeAccessibilityLabel, hideArrow, hideDismissButton, open } = require_components_Popover_PopoverContext.usePopoverContext();
61
+ generated_styles.popoverStyles.useVariants({});
62
+ const svgBaseTokens = react_native.StyleSheet.flatten(generated_styles.popoverStyles.svgBase);
63
+ const svgBorderTokens = react_native.StyleSheet.flatten(generated_styles.popoverStyles.svgBorder);
64
+ const configuredBlurRadius = Math.max(svgBaseTokens.backgroundBlurRadius ?? 0, generated_styles.popoverStyles.blur.backgroundBlurRadius ?? 0);
65
+ const blurIntensity = configuredBlurRadius > 0 ? configuredBlurRadius : 0;
66
+ const showBlurBox = blurIntensity > 0 && (react_native.Platform.OS === "ios" || blurTarget != null);
67
+ const opaqueBackground = svgBaseTokens.backgroundColor ?? "#fff";
68
+ const fallbackOpacity = blurIntensity > 0 && !svgBaseTokens.backgroundBlurColor && !hasColorOpacity(opaqueBackground) ? DEFAULT_TRANSLUCENT_SURFACE_OPACITY : void 0;
69
+ const surfaceFillColor = getColorWithOpacity(opaqueBackground, svgBaseTokens.backgroundOpacity ?? fallbackOpacity) ?? opaqueBackground;
70
+ const surfaceBlurColor = svgBaseTokens.backgroundBlurColor ?? surfaceFillColor;
71
+ const surfaceFallbackColor = svgBaseTokens.backgroundBlurFallbackColor ?? surfaceBlurColor;
72
+ const surfaceBackgroundColor = showBlurBox ? "transparent" : blurIntensity > 0 ? surfaceFallbackColor : surfaceFillColor;
73
+ const surfaceBorderColor = svgBorderTokens?.borderColor ?? svgBaseTokens.borderColor;
74
+ const surfaceBorderWidth = svgBorderTokens?.borderWidth ?? svgBaseTokens.borderWidth ?? 0;
75
+ const surfaceBorderRadius = svgBaseTokens.borderRadius ?? 0;
76
+ const shouldDrawFrame = !hideArrow && contentSize.width > 0 && contentSize.height > 0;
77
+ const frameBorderInset = shouldDrawFrame ? surfaceBorderWidth : 0;
78
+ const contentWrapperTokens = react_native.StyleSheet.flatten(generated_styles.popoverStyles.contentWrapper);
79
+ const closeIconContainerTokens = react_native.StyleSheet.flatten(generated_styles.popoverStyles.closeIconContainer);
80
+ const closeIconTokens = react_native.StyleSheet.flatten(generated_styles.popoverStyles.closeIcon);
81
+ const contentWrapperPaddingHorizontal = contentWrapperTokens.paddingHorizontal ?? 0;
82
+ const contentWrapperPaddingVertical = contentWrapperTokens.paddingVertical ?? 0;
83
+ const closeButtonPaddingHorizontal = getPositiveNumber(closeIconContainerTokens.paddingHorizontal, closeIconContainerTokens.padding);
84
+ const closeButtonPaddingVertical = getPositiveNumber(closeIconContainerTokens.paddingVertical, closeIconContainerTokens.padding);
85
+ const closeIconSize = getPositiveNumber(generated_styles.popoverStyles.closeIcon.fontSize, closeIconTokens.fontSize, closeIconTokens.lineHeight, DEFAULT_CLOSE_ICON_SIZE);
86
+ const closeButtonSize = closeIconSize + closeButtonPaddingHorizontal * 2;
87
+ const closeButtonHeight = closeIconSize + closeButtonPaddingVertical * 2;
88
+ const surfaceStyle = (0, react.useMemo)(() => [{
89
+ borderRadius: surfaceBorderRadius,
90
+ maxWidth: maxWidth ?? positionedMaxWidth,
91
+ maxHeight,
92
+ overflow: "visible"
93
+ }, style], [
94
+ maxHeight,
95
+ maxWidth,
96
+ positionedMaxWidth,
97
+ style,
98
+ surfaceBorderRadius
99
+ ]);
100
+ const shadowStyle = (0, react.useMemo)(() => [
101
+ generated_styles.popoverStyles.root,
102
+ internalStyles.shadow,
103
+ { borderRadius: surfaceBorderRadius }
104
+ ], [generated_styles.popoverStyles.root, surfaceBorderRadius]);
105
+ const visualSurfaceStyle = (0, react.useMemo)(() => [
106
+ generated_styles.popoverStyles.svgBase,
107
+ internalStyles.surface,
108
+ {
109
+ backgroundColor: surfaceBackgroundColor,
110
+ borderColor: surfaceBorderColor,
111
+ borderRadius: surfaceBorderRadius,
112
+ borderWidth: shouldDrawFrame ? 0 : surfaceBorderWidth,
113
+ maxWidth: maxWidth ?? positionedMaxWidth,
114
+ maxHeight,
115
+ padding: frameBorderInset
116
+ }
117
+ ], [
118
+ frameBorderInset,
119
+ maxHeight,
120
+ maxWidth,
121
+ generated_styles.popoverStyles.svgBase,
122
+ positionedMaxWidth,
123
+ surfaceBackgroundColor,
124
+ surfaceBorderColor,
125
+ surfaceBorderRadius,
126
+ surfaceBorderWidth,
127
+ shouldDrawFrame
128
+ ]);
129
+ const closeButtonStyle = (0, react.useMemo)(() => [
130
+ internalStyles.closeButton,
131
+ {
132
+ top: frameBorderInset + contentWrapperPaddingVertical,
133
+ right: frameBorderInset + contentWrapperPaddingHorizontal,
134
+ width: closeButtonSize,
135
+ height: closeButtonHeight
136
+ },
137
+ generated_styles.popoverStyles.closeIconContainer
138
+ ], [
139
+ closeButtonHeight,
140
+ closeButtonSize,
141
+ contentWrapperPaddingHorizontal,
142
+ contentWrapperPaddingVertical,
143
+ frameBorderInset,
144
+ generated_styles.popoverStyles.closeIconContainer
145
+ ]);
146
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(AnimatedBox, {
147
+ role: "dialog",
148
+ accessibilityViewIsModal: true,
149
+ pointerEvents: open ? "auto" : "none",
150
+ style: [
151
+ contentStyle,
152
+ ...surfaceStyle,
153
+ animatedStyle
154
+ ],
155
+ ...props,
156
+ children: [
157
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(react_native.View, {
158
+ pointerEvents: "none",
159
+ style: shadowStyle,
160
+ testID: "uds-popover-shadow"
161
+ }),
162
+ shouldDrawFrame && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_components_Popover_PopoverFrame.PopoverFrame, {
163
+ arrowHeight,
164
+ arrowStyle,
165
+ arrowWidth,
166
+ borderRadius: surfaceBorderRadius,
167
+ fill: surfaceFillColor,
168
+ placement: resolvedPlacement,
169
+ stroke: surfaceBorderColor,
170
+ strokeWidth: surfaceBorderWidth,
171
+ surfaceHeight: contentSize.height,
172
+ surfaceWidth: contentSize.width
173
+ }),
174
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_native.View, {
175
+ style: visualSurfaceStyle,
176
+ testID: "uds-popover-surface",
177
+ children: [
178
+ showBlurBox && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_components_Box.Box, {
179
+ style: react_native.StyleSheet.absoluteFill,
180
+ blur: blurIntensity,
181
+ blurTarget
182
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(react_native.View, {
183
+ pointerEvents: "none",
184
+ style: [react_native.StyleSheet.absoluteFill, { backgroundColor: surfaceFillColor }]
185
+ })] }),
186
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(react_native.View, {
187
+ style: generated_styles.popoverStyles.contentWrapper,
188
+ testID: "uds-popover-content-wrapper",
189
+ children
190
+ }),
191
+ !hideDismissButton && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_components_Pressable.Pressable, {
192
+ testID: "uds-popover-close",
193
+ accessibilityRole: "button",
194
+ accessibilityLabel: closeAccessibilityLabel,
195
+ onPress: onDismiss,
196
+ style: closeButtonStyle,
197
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_components_Icon.Icon, {
198
+ name: "Cross",
199
+ variant: "outline",
200
+ style: generated_styles.popoverStyles.closeIcon,
201
+ dangerouslySetColor: generated_styles.popoverStyles.closeIcon.color,
202
+ dangerouslySetSize: generated_styles.popoverStyles.closeIcon.fontSize
203
+ })
204
+ })
205
+ ]
206
+ })
207
+ ]
208
+ });
209
+ });
210
+ const internalStyles = react_native.StyleSheet.create({
211
+ shadow: {
212
+ ...react_native.StyleSheet.absoluteFillObject,
213
+ zIndex: 0
214
+ },
215
+ surface: {
216
+ overflow: "hidden",
217
+ position: "relative",
218
+ zIndex: 1
219
+ },
220
+ closeButton: {
221
+ position: "absolute",
222
+ alignItems: "center",
223
+ justifyContent: "center"
224
+ }
225
+ });
226
+ PopoverSurface.displayName = "PopoverSurface";
227
+ //#endregion
228
+ exports.PopoverSurface = PopoverSurface;
@@ -0,0 +1,26 @@
1
+
2
+ import { AnchoredPlacement } from "../internal/Overlay/types.cjs";
3
+ import { PopoverContentProps } from "./types.cjs";
4
+ import * as _$react from "react";
5
+ import { StyleProp, ViewStyle } from "react-native";
6
+
7
+ //#region src/components/Popover/PopoverSurface.d.ts
8
+ interface PopoverSurfaceProps extends Omit<PopoverContentProps, 'children'> {
9
+ animatedStyle: StyleProp<ViewStyle>;
10
+ arrowHeight: number;
11
+ arrowStyle: StyleProp<ViewStyle>;
12
+ arrowWidth: number;
13
+ children?: PopoverContentProps['children'];
14
+ contentSize: {
15
+ width: number;
16
+ height: number;
17
+ };
18
+ contentStyle: StyleProp<ViewStyle>;
19
+ onDismiss: () => void;
20
+ positionedMaxWidth: number;
21
+ resolvedPlacement: AnchoredPlacement;
22
+ }
23
+ declare const PopoverSurface: _$react.NamedExoticComponent<PopoverSurfaceProps>;
24
+ //#endregion
25
+ export { PopoverSurface };
26
+ //# sourceMappingURL=PopoverSurface.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PopoverSurface.d.cts","names":[],"sources":["../../../src/components/Popover/PopoverSurface.tsx"],"mappings":";;;;;;;UAkDU,mBAAA,SAA4B,IAAA,CAAK,mBAAA;EACzC,aAAA,EAAe,SAAA,CAAU,SAAA;EACzB,WAAA;EACA,UAAA,EAAY,SAAA,CAAU,SAAA;EACtB,UAAA;EACA,QAAA,GAAW,mBAAA;EACX,WAAA;IAAe,KAAA;IAAe,MAAA;EAAA;EAC9B,YAAA,EAAc,SAAA,CAAU,SAAA;EACxB,SAAA;EACA,kBAAA;EACA,iBAAA,EAAmB,iBAAA;AAAA;AAAA,cAoEf,cAAA,EAAc,OAAA,CAAA,oBAAA,CAAA,mBAAA"}
@@ -0,0 +1,26 @@
1
+
2
+ import { AnchoredPlacement } from "../internal/Overlay/types.js";
3
+ import { PopoverContentProps } from "./types.js";
4
+ import * as _$react from "react";
5
+ import { StyleProp, ViewStyle } from "react-native";
6
+
7
+ //#region src/components/Popover/PopoverSurface.d.ts
8
+ interface PopoverSurfaceProps extends Omit<PopoverContentProps, 'children'> {
9
+ animatedStyle: StyleProp<ViewStyle>;
10
+ arrowHeight: number;
11
+ arrowStyle: StyleProp<ViewStyle>;
12
+ arrowWidth: number;
13
+ children?: PopoverContentProps['children'];
14
+ contentSize: {
15
+ width: number;
16
+ height: number;
17
+ };
18
+ contentStyle: StyleProp<ViewStyle>;
19
+ onDismiss: () => void;
20
+ positionedMaxWidth: number;
21
+ resolvedPlacement: AnchoredPlacement;
22
+ }
23
+ declare const PopoverSurface: _$react.NamedExoticComponent<PopoverSurfaceProps>;
24
+ //#endregion
25
+ export { PopoverSurface };
26
+ //# sourceMappingURL=PopoverSurface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PopoverSurface.d.ts","names":[],"sources":["../../../src/components/Popover/PopoverSurface.tsx"],"mappings":";;;;;;;UAkDU,mBAAA,SAA4B,IAAA,CAAK,mBAAA;EACzC,aAAA,EAAe,SAAA,CAAU,SAAA;EACzB,WAAA;EACA,UAAA,EAAY,SAAA,CAAU,SAAA;EACtB,UAAA;EACA,QAAA,GAAW,mBAAA;EACX,WAAA;IAAe,KAAA;IAAe,MAAA;EAAA;EAC9B,YAAA,EAAc,SAAA,CAAU,SAAA;EACxB,SAAA;EACA,kBAAA;EACA,iBAAA,EAAmB,iBAAA;AAAA;AAAA,cAoEf,cAAA,EAAc,OAAA,CAAA,oBAAA,CAAA,mBAAA"}
@@ -0,0 +1,227 @@
1
+ /*! © 2026 Yahoo, Inc. UDS Mobile v0.0.0-development */
2
+ import { Box } from "../Box.js";
3
+ import { Icon } from "../Icon.js";
4
+ import { Pressable as Pressable$1 } from "../Pressable.js";
5
+ import { usePopoverContext } from "./PopoverContext.js";
6
+ import { PopoverFrame } from "./PopoverFrame.js";
7
+ import { memo, useMemo } from "react";
8
+ import { Platform, StyleSheet, View } from "react-native";
9
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
10
+ import { popoverStyles } from "../../../generated/styles";
11
+ import Animated from "react-native-reanimated";
12
+ //#region src/components/Popover/PopoverSurface.tsx
13
+ const DEFAULT_CLOSE_ICON_SIZE = 16;
14
+ const DEFAULT_TRANSLUCENT_SURFACE_OPACITY = .5;
15
+ const AnimatedBox = Animated.createAnimatedComponent(Box);
16
+ function getColorWithOpacity(color, opacity) {
17
+ if (!color || opacity === void 0) return color;
18
+ const normalized = color.trim();
19
+ const rgbMatch = normalized.match(/^rgb\(([^)]+)\)$/i);
20
+ if (rgbMatch) {
21
+ const channels = rgbMatch[1].split(",").map((part) => part.trim());
22
+ if (channels.length === 3) return `rgba(${channels.join(", ")}, ${opacity})`;
23
+ }
24
+ const rgbaMatch = normalized.match(/^rgba\(([^)]+)\)$/i);
25
+ if (rgbaMatch) {
26
+ const channels = rgbaMatch[1].split(",").map((part) => part.trim());
27
+ if (channels.length === 4) return `rgba(${channels.slice(0, 3).join(", ")}, ${opacity})`;
28
+ }
29
+ const hexMatch = normalized.match(/^#([\da-f]{3}|[\da-f]{6})$/i);
30
+ if (hexMatch) {
31
+ const value = hexMatch[1];
32
+ const [r, g, b] = value.length === 3 ? value.split("").map((char) => parseInt(`${char}${char}`, 16)) : [
33
+ parseInt(value.slice(0, 2), 16),
34
+ parseInt(value.slice(2, 4), 16),
35
+ parseInt(value.slice(4, 6), 16)
36
+ ];
37
+ return `rgba(${r}, ${g}, ${b}, ${opacity})`;
38
+ }
39
+ return color;
40
+ }
41
+ function hasColorOpacity(color) {
42
+ if (!color) return false;
43
+ const normalized = color.trim().toLowerCase();
44
+ if (normalized === "transparent") return true;
45
+ const rgbaMatch = normalized.match(/^rgba\(([^)]+)\)$/);
46
+ if (rgbaMatch) {
47
+ const channels = rgbaMatch[1].split(",").map((part) => part.trim());
48
+ const alpha = Number(channels[3]);
49
+ return channels.length === 4 && Number.isFinite(alpha) && alpha < 1;
50
+ }
51
+ return /^#[\da-f]{4}$|^#[\da-f]{8}$/.test(normalized);
52
+ }
53
+ function getPositiveNumber(...values) {
54
+ return values.find((value) => typeof value === "number" && value > 0) ?? 0;
55
+ }
56
+ const PopoverSurface = memo(function PopoverSurface({ animatedStyle, arrowHeight, arrowStyle, arrowWidth, children, contentSize, contentStyle, maxHeight, maxWidth, onDismiss, positionedMaxWidth, resolvedPlacement, style, ...props }) {
57
+ const { blurTarget, closeAccessibilityLabel, hideArrow, hideDismissButton, open } = usePopoverContext();
58
+ popoverStyles.useVariants({});
59
+ const svgBaseTokens = StyleSheet.flatten(popoverStyles.svgBase);
60
+ const svgBorderTokens = StyleSheet.flatten(popoverStyles.svgBorder);
61
+ const configuredBlurRadius = Math.max(svgBaseTokens.backgroundBlurRadius ?? 0, popoverStyles.blur.backgroundBlurRadius ?? 0);
62
+ const blurIntensity = configuredBlurRadius > 0 ? configuredBlurRadius : 0;
63
+ const showBlurBox = blurIntensity > 0 && (Platform.OS === "ios" || blurTarget != null);
64
+ const opaqueBackground = svgBaseTokens.backgroundColor ?? "#fff";
65
+ const fallbackOpacity = blurIntensity > 0 && !svgBaseTokens.backgroundBlurColor && !hasColorOpacity(opaqueBackground) ? DEFAULT_TRANSLUCENT_SURFACE_OPACITY : void 0;
66
+ const surfaceFillColor = getColorWithOpacity(opaqueBackground, svgBaseTokens.backgroundOpacity ?? fallbackOpacity) ?? opaqueBackground;
67
+ const surfaceBlurColor = svgBaseTokens.backgroundBlurColor ?? surfaceFillColor;
68
+ const surfaceFallbackColor = svgBaseTokens.backgroundBlurFallbackColor ?? surfaceBlurColor;
69
+ const surfaceBackgroundColor = showBlurBox ? "transparent" : blurIntensity > 0 ? surfaceFallbackColor : surfaceFillColor;
70
+ const surfaceBorderColor = svgBorderTokens?.borderColor ?? svgBaseTokens.borderColor;
71
+ const surfaceBorderWidth = svgBorderTokens?.borderWidth ?? svgBaseTokens.borderWidth ?? 0;
72
+ const surfaceBorderRadius = svgBaseTokens.borderRadius ?? 0;
73
+ const shouldDrawFrame = !hideArrow && contentSize.width > 0 && contentSize.height > 0;
74
+ const frameBorderInset = shouldDrawFrame ? surfaceBorderWidth : 0;
75
+ const contentWrapperTokens = StyleSheet.flatten(popoverStyles.contentWrapper);
76
+ const closeIconContainerTokens = StyleSheet.flatten(popoverStyles.closeIconContainer);
77
+ const closeIconTokens = StyleSheet.flatten(popoverStyles.closeIcon);
78
+ const contentWrapperPaddingHorizontal = contentWrapperTokens.paddingHorizontal ?? 0;
79
+ const contentWrapperPaddingVertical = contentWrapperTokens.paddingVertical ?? 0;
80
+ const closeButtonPaddingHorizontal = getPositiveNumber(closeIconContainerTokens.paddingHorizontal, closeIconContainerTokens.padding);
81
+ const closeButtonPaddingVertical = getPositiveNumber(closeIconContainerTokens.paddingVertical, closeIconContainerTokens.padding);
82
+ const closeIconSize = getPositiveNumber(popoverStyles.closeIcon.fontSize, closeIconTokens.fontSize, closeIconTokens.lineHeight, DEFAULT_CLOSE_ICON_SIZE);
83
+ const closeButtonSize = closeIconSize + closeButtonPaddingHorizontal * 2;
84
+ const closeButtonHeight = closeIconSize + closeButtonPaddingVertical * 2;
85
+ const surfaceStyle = useMemo(() => [{
86
+ borderRadius: surfaceBorderRadius,
87
+ maxWidth: maxWidth ?? positionedMaxWidth,
88
+ maxHeight,
89
+ overflow: "visible"
90
+ }, style], [
91
+ maxHeight,
92
+ maxWidth,
93
+ positionedMaxWidth,
94
+ style,
95
+ surfaceBorderRadius
96
+ ]);
97
+ const shadowStyle = useMemo(() => [
98
+ popoverStyles.root,
99
+ internalStyles.shadow,
100
+ { borderRadius: surfaceBorderRadius }
101
+ ], [popoverStyles.root, surfaceBorderRadius]);
102
+ const visualSurfaceStyle = useMemo(() => [
103
+ popoverStyles.svgBase,
104
+ internalStyles.surface,
105
+ {
106
+ backgroundColor: surfaceBackgroundColor,
107
+ borderColor: surfaceBorderColor,
108
+ borderRadius: surfaceBorderRadius,
109
+ borderWidth: shouldDrawFrame ? 0 : surfaceBorderWidth,
110
+ maxWidth: maxWidth ?? positionedMaxWidth,
111
+ maxHeight,
112
+ padding: frameBorderInset
113
+ }
114
+ ], [
115
+ frameBorderInset,
116
+ maxHeight,
117
+ maxWidth,
118
+ popoverStyles.svgBase,
119
+ positionedMaxWidth,
120
+ surfaceBackgroundColor,
121
+ surfaceBorderColor,
122
+ surfaceBorderRadius,
123
+ surfaceBorderWidth,
124
+ shouldDrawFrame
125
+ ]);
126
+ const closeButtonStyle = useMemo(() => [
127
+ internalStyles.closeButton,
128
+ {
129
+ top: frameBorderInset + contentWrapperPaddingVertical,
130
+ right: frameBorderInset + contentWrapperPaddingHorizontal,
131
+ width: closeButtonSize,
132
+ height: closeButtonHeight
133
+ },
134
+ popoverStyles.closeIconContainer
135
+ ], [
136
+ closeButtonHeight,
137
+ closeButtonSize,
138
+ contentWrapperPaddingHorizontal,
139
+ contentWrapperPaddingVertical,
140
+ frameBorderInset,
141
+ popoverStyles.closeIconContainer
142
+ ]);
143
+ return /* @__PURE__ */ jsxs(AnimatedBox, {
144
+ role: "dialog",
145
+ accessibilityViewIsModal: true,
146
+ pointerEvents: open ? "auto" : "none",
147
+ style: [
148
+ contentStyle,
149
+ ...surfaceStyle,
150
+ animatedStyle
151
+ ],
152
+ ...props,
153
+ children: [
154
+ /* @__PURE__ */ jsx(View, {
155
+ pointerEvents: "none",
156
+ style: shadowStyle,
157
+ testID: "uds-popover-shadow"
158
+ }),
159
+ shouldDrawFrame && /* @__PURE__ */ jsx(PopoverFrame, {
160
+ arrowHeight,
161
+ arrowStyle,
162
+ arrowWidth,
163
+ borderRadius: surfaceBorderRadius,
164
+ fill: surfaceFillColor,
165
+ placement: resolvedPlacement,
166
+ stroke: surfaceBorderColor,
167
+ strokeWidth: surfaceBorderWidth,
168
+ surfaceHeight: contentSize.height,
169
+ surfaceWidth: contentSize.width
170
+ }),
171
+ /* @__PURE__ */ jsxs(View, {
172
+ style: visualSurfaceStyle,
173
+ testID: "uds-popover-surface",
174
+ children: [
175
+ showBlurBox && /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(Box, {
176
+ style: StyleSheet.absoluteFill,
177
+ blur: blurIntensity,
178
+ blurTarget
179
+ }), /* @__PURE__ */ jsx(View, {
180
+ pointerEvents: "none",
181
+ style: [StyleSheet.absoluteFill, { backgroundColor: surfaceFillColor }]
182
+ })] }),
183
+ /* @__PURE__ */ jsx(View, {
184
+ style: popoverStyles.contentWrapper,
185
+ testID: "uds-popover-content-wrapper",
186
+ children
187
+ }),
188
+ !hideDismissButton && /* @__PURE__ */ jsx(Pressable$1, {
189
+ testID: "uds-popover-close",
190
+ accessibilityRole: "button",
191
+ accessibilityLabel: closeAccessibilityLabel,
192
+ onPress: onDismiss,
193
+ style: closeButtonStyle,
194
+ children: /* @__PURE__ */ jsx(Icon, {
195
+ name: "Cross",
196
+ variant: "outline",
197
+ style: popoverStyles.closeIcon,
198
+ dangerouslySetColor: popoverStyles.closeIcon.color,
199
+ dangerouslySetSize: popoverStyles.closeIcon.fontSize
200
+ })
201
+ })
202
+ ]
203
+ })
204
+ ]
205
+ });
206
+ });
207
+ const internalStyles = StyleSheet.create({
208
+ shadow: {
209
+ ...StyleSheet.absoluteFillObject,
210
+ zIndex: 0
211
+ },
212
+ surface: {
213
+ overflow: "hidden",
214
+ position: "relative",
215
+ zIndex: 1
216
+ },
217
+ closeButton: {
218
+ position: "absolute",
219
+ alignItems: "center",
220
+ justifyContent: "center"
221
+ }
222
+ });
223
+ PopoverSurface.displayName = "PopoverSurface";
224
+ //#endregion
225
+ export { PopoverSurface };
226
+
227
+ //# sourceMappingURL=PopoverSurface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PopoverSurface.js","names":["UDSPressable"],"sources":["../../../src/components/Popover/PopoverSurface.tsx"],"sourcesContent":["import { memo, useMemo } from 'react';\nimport type { StyleProp, ViewStyle } from 'react-native';\nimport { Platform, StyleSheet, View } from 'react-native';\nimport Animated from 'react-native-reanimated';\n\nimport { popoverStyles } from '../../../generated/styles';\nimport { Box } from '../Box';\nimport { Icon } from '../Icon';\nimport type { AnchoredPlacement } from '../internal/Overlay';\nimport { Pressable as UDSPressable } from '../Pressable';\nimport { usePopoverContext } from './PopoverContext';\nimport { PopoverFrame } from './PopoverFrame';\nimport type { PopoverContentProps } from './types';\n\nconst DEFAULT_CLOSE_ICON_SIZE = 16;\nconst DEFAULT_TRANSLUCENT_SURFACE_OPACITY = 0.5;\n\nconst AnimatedBox = Animated.createAnimatedComponent(Box);\n\ninterface PopoverSurfaceTokens {\n backgroundBlurColor?: string;\n backgroundBlurFallbackColor?: string;\n backgroundBlurRadius?: number;\n backgroundColor?: string;\n backgroundOpacity?: number;\n borderColor?: string;\n borderRadius?: number;\n borderWidth?: number;\n}\n\ninterface PopoverStylesWithSvgBorder {\n svgBorder?: unknown;\n}\n\ninterface PopoverContentWrapperTokens {\n paddingHorizontal?: number;\n paddingVertical?: number;\n}\n\ninterface PopoverCloseIconContainerTokens {\n padding?: number;\n paddingHorizontal?: number;\n paddingVertical?: number;\n}\n\ninterface PopoverCloseIconTokens {\n fontSize?: number;\n lineHeight?: number;\n}\n\ninterface PopoverSurfaceProps extends Omit<PopoverContentProps, 'children'> {\n animatedStyle: StyleProp<ViewStyle>;\n arrowHeight: number;\n arrowStyle: StyleProp<ViewStyle>;\n arrowWidth: number;\n children?: PopoverContentProps['children'];\n contentSize: { width: number; height: number };\n contentStyle: StyleProp<ViewStyle>;\n onDismiss: () => void;\n positionedMaxWidth: number;\n resolvedPlacement: AnchoredPlacement;\n}\n\nfunction getColorWithOpacity(color: string | undefined, opacity: number | undefined) {\n if (!color || opacity === undefined) {\n return color;\n }\n\n const normalized = color.trim();\n const rgbMatch = normalized.match(/^rgb\\(([^)]+)\\)$/i);\n if (rgbMatch) {\n const channels = rgbMatch[1].split(',').map((part) => part.trim());\n if (channels.length === 3) {\n return `rgba(${channels.join(', ')}, ${opacity})`;\n }\n }\n\n const rgbaMatch = normalized.match(/^rgba\\(([^)]+)\\)$/i);\n if (rgbaMatch) {\n const channels = rgbaMatch[1].split(',').map((part) => part.trim());\n if (channels.length === 4) {\n return `rgba(${channels.slice(0, 3).join(', ')}, ${opacity})`;\n }\n }\n\n const hexMatch = normalized.match(/^#([\\da-f]{3}|[\\da-f]{6})$/i);\n if (hexMatch) {\n const value = hexMatch[1];\n const [r, g, b] =\n value.length === 3\n ? value.split('').map((char) => parseInt(`${char}${char}`, 16))\n : [\n parseInt(value.slice(0, 2), 16),\n parseInt(value.slice(2, 4), 16),\n parseInt(value.slice(4, 6), 16),\n ];\n\n return `rgba(${r}, ${g}, ${b}, ${opacity})`;\n }\n\n return color;\n}\n\nfunction hasColorOpacity(color: string | undefined) {\n if (!color) {\n return false;\n }\n\n const normalized = color.trim().toLowerCase();\n if (normalized === 'transparent') {\n return true;\n }\n\n const rgbaMatch = normalized.match(/^rgba\\(([^)]+)\\)$/);\n if (rgbaMatch) {\n const channels = rgbaMatch[1].split(',').map((part) => part.trim());\n const alpha = Number(channels[3]);\n\n return channels.length === 4 && Number.isFinite(alpha) && alpha < 1;\n }\n\n return /^#[\\da-f]{4}$|^#[\\da-f]{8}$/.test(normalized);\n}\n\nfunction getPositiveNumber(...values: (number | undefined)[]) {\n return values.find((value) => typeof value === 'number' && value > 0) ?? 0;\n}\n\nconst PopoverSurface = memo(function PopoverSurface({\n animatedStyle,\n arrowHeight,\n arrowStyle,\n arrowWidth,\n children,\n contentSize,\n contentStyle,\n maxHeight,\n maxWidth,\n onDismiss,\n positionedMaxWidth,\n resolvedPlacement,\n style,\n ...props\n}: PopoverSurfaceProps) {\n const { blurTarget, closeAccessibilityLabel, hideArrow, hideDismissButton, open } =\n usePopoverContext();\n\n popoverStyles.useVariants({});\n\n const svgBaseTokens = StyleSheet.flatten(popoverStyles.svgBase) as PopoverSurfaceTokens;\n const svgBorderTokens = StyleSheet.flatten(\n (popoverStyles as typeof popoverStyles & PopoverStylesWithSvgBorder).svgBorder,\n ) as PopoverSurfaceTokens | undefined;\n const configuredBlurRadius = Math.max(\n svgBaseTokens.backgroundBlurRadius ?? 0,\n popoverStyles.blur.backgroundBlurRadius ?? 0,\n );\n const blurIntensity = configuredBlurRadius > 0 ? configuredBlurRadius : 0;\n const showBlurBox = blurIntensity > 0 && (Platform.OS === 'ios' || blurTarget != null);\n const opaqueBackground = svgBaseTokens.backgroundColor ?? '#fff';\n const fallbackOpacity =\n blurIntensity > 0 && !svgBaseTokens.backgroundBlurColor && !hasColorOpacity(opaqueBackground)\n ? DEFAULT_TRANSLUCENT_SURFACE_OPACITY\n : undefined;\n const surfaceFillColor =\n getColorWithOpacity(opaqueBackground, svgBaseTokens.backgroundOpacity ?? fallbackOpacity) ??\n opaqueBackground;\n const surfaceBlurColor = svgBaseTokens.backgroundBlurColor ?? surfaceFillColor;\n const surfaceFallbackColor = svgBaseTokens.backgroundBlurFallbackColor ?? surfaceBlurColor;\n const surfaceBackgroundColor = showBlurBox\n ? 'transparent'\n : blurIntensity > 0\n ? surfaceFallbackColor\n : surfaceFillColor;\n const surfaceBorderColor = svgBorderTokens?.borderColor ?? svgBaseTokens.borderColor;\n const surfaceBorderWidth = svgBorderTokens?.borderWidth ?? svgBaseTokens.borderWidth ?? 0;\n const surfaceBorderRadius = svgBaseTokens.borderRadius ?? 0;\n const shouldDrawFrame = !hideArrow && contentSize.width > 0 && contentSize.height > 0;\n // When the SVG frame draws the border, inset the visual surface by the same stroke width so\n // content and blur do not paint over the continuous surface-plus-arrow border.\n const frameBorderInset = shouldDrawFrame ? surfaceBorderWidth : 0;\n const contentWrapperTokens = StyleSheet.flatten(\n popoverStyles.contentWrapper,\n ) as PopoverContentWrapperTokens;\n const closeIconContainerTokens = StyleSheet.flatten(\n popoverStyles.closeIconContainer,\n ) as PopoverCloseIconContainerTokens;\n const closeIconTokens = StyleSheet.flatten(popoverStyles.closeIcon) as PopoverCloseIconTokens;\n const contentWrapperPaddingHorizontal = contentWrapperTokens.paddingHorizontal ?? 0;\n const contentWrapperPaddingVertical = contentWrapperTokens.paddingVertical ?? 0;\n const closeButtonPaddingHorizontal = getPositiveNumber(\n closeIconContainerTokens.paddingHorizontal,\n closeIconContainerTokens.padding,\n );\n const closeButtonPaddingVertical = getPositiveNumber(\n closeIconContainerTokens.paddingVertical,\n closeIconContainerTokens.padding,\n );\n const closeIconSize = getPositiveNumber(\n popoverStyles.closeIcon.fontSize,\n closeIconTokens.fontSize,\n closeIconTokens.lineHeight,\n DEFAULT_CLOSE_ICON_SIZE,\n );\n const closeButtonSize = closeIconSize + closeButtonPaddingHorizontal * 2;\n const closeButtonHeight = closeIconSize + closeButtonPaddingVertical * 2;\n\n const surfaceStyle = useMemo(\n () => [\n {\n borderRadius: surfaceBorderRadius,\n maxWidth: maxWidth ?? positionedMaxWidth,\n maxHeight,\n overflow: 'visible' as const,\n },\n style,\n ],\n [maxHeight, maxWidth, positionedMaxWidth, style, surfaceBorderRadius],\n );\n\n const shadowStyle = useMemo(\n () => [\n popoverStyles.root,\n internalStyles.shadow,\n {\n borderRadius: surfaceBorderRadius,\n },\n ],\n [popoverStyles.root, surfaceBorderRadius],\n );\n\n const visualSurfaceStyle = useMemo(\n () => [\n popoverStyles.svgBase,\n internalStyles.surface,\n {\n backgroundColor: surfaceBackgroundColor,\n borderColor: surfaceBorderColor,\n borderRadius: surfaceBorderRadius,\n borderWidth: shouldDrawFrame ? 0 : surfaceBorderWidth,\n maxWidth: maxWidth ?? positionedMaxWidth,\n maxHeight,\n padding: frameBorderInset,\n },\n ],\n [\n frameBorderInset,\n maxHeight,\n maxWidth,\n popoverStyles.svgBase,\n positionedMaxWidth,\n surfaceBackgroundColor,\n surfaceBorderColor,\n surfaceBorderRadius,\n surfaceBorderWidth,\n shouldDrawFrame,\n ],\n );\n\n const closeButtonStyle = useMemo(\n () => [\n internalStyles.closeButton,\n {\n top: frameBorderInset + contentWrapperPaddingVertical,\n right: frameBorderInset + contentWrapperPaddingHorizontal,\n width: closeButtonSize,\n height: closeButtonHeight,\n },\n popoverStyles.closeIconContainer,\n ],\n [\n closeButtonHeight,\n closeButtonSize,\n contentWrapperPaddingHorizontal,\n contentWrapperPaddingVertical,\n frameBorderInset,\n popoverStyles.closeIconContainer,\n ],\n );\n\n return (\n <AnimatedBox\n role=\"dialog\"\n accessibilityViewIsModal\n pointerEvents={open ? 'auto' : 'none'}\n style={[contentStyle, ...surfaceStyle, animatedStyle]}\n {...props}\n >\n <View pointerEvents=\"none\" style={shadowStyle} testID=\"uds-popover-shadow\" />\n {shouldDrawFrame && (\n <PopoverFrame\n arrowHeight={arrowHeight}\n arrowStyle={arrowStyle}\n arrowWidth={arrowWidth}\n borderRadius={surfaceBorderRadius}\n fill={surfaceFillColor}\n placement={resolvedPlacement}\n stroke={surfaceBorderColor}\n strokeWidth={surfaceBorderWidth}\n surfaceHeight={contentSize.height}\n surfaceWidth={contentSize.width}\n />\n )}\n <View style={visualSurfaceStyle} testID=\"uds-popover-surface\">\n {showBlurBox && (\n <>\n <Box style={StyleSheet.absoluteFill} blur={blurIntensity} blurTarget={blurTarget} />\n <View\n pointerEvents=\"none\"\n style={[StyleSheet.absoluteFill, { backgroundColor: surfaceFillColor }]}\n />\n </>\n )}\n <View style={popoverStyles.contentWrapper} testID=\"uds-popover-content-wrapper\">\n {children}\n </View>\n {!hideDismissButton && (\n <UDSPressable\n testID=\"uds-popover-close\"\n accessibilityRole=\"button\"\n accessibilityLabel={closeAccessibilityLabel}\n onPress={onDismiss}\n style={closeButtonStyle}\n >\n <Icon\n name=\"Cross\"\n variant=\"outline\"\n style={popoverStyles.closeIcon}\n dangerouslySetColor={popoverStyles.closeIcon.color}\n dangerouslySetSize={popoverStyles.closeIcon.fontSize}\n />\n </UDSPressable>\n )}\n </View>\n </AnimatedBox>\n );\n});\n\nconst internalStyles = StyleSheet.create({\n shadow: {\n ...StyleSheet.absoluteFillObject,\n zIndex: 0,\n },\n surface: {\n overflow: 'hidden',\n position: 'relative',\n zIndex: 1,\n },\n closeButton: {\n position: 'absolute',\n alignItems: 'center',\n justifyContent: 'center',\n },\n});\n\nPopoverSurface.displayName = 'PopoverSurface';\n\nexport { PopoverSurface };\n"],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ /*! © 2026 Yahoo, Inc. UDS Mobile v0.0.0-development */
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ require("../../_virtual/_rolldown/runtime.cjs");
4
+ const require_components_Text = require("../Text.cjs");
5
+ let react = require("react");
6
+ let react_jsx_runtime = require("react/jsx-runtime");
7
+ //#region src/components/Popover/PopoverTitle.tsx
8
+ /**
9
+ * Title text for {@link PopoverContent}.
10
+ *
11
+ * Provides the default popover title typography while accepting the standard
12
+ * mobile {@link Text} props.
13
+ */
14
+ const PopoverTitle = (0, react.memo)(function PopoverTitle({ variant = "label1/emphasized", color = "primary", ...props }) {
15
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_components_Text.Text, {
16
+ variant,
17
+ color,
18
+ ...props
19
+ });
20
+ });
21
+ PopoverTitle.displayName = "PopoverTitle";
22
+ //#endregion
23
+ exports.PopoverTitle = PopoverTitle;
@@ -0,0 +1,15 @@
1
+
2
+ import { TextProps } from "../Text.cjs";
3
+ import * as _$react from "react";
4
+
5
+ //#region src/components/Popover/PopoverTitle.d.ts
6
+ /**
7
+ * Title text for {@link PopoverContent}.
8
+ *
9
+ * Provides the default popover title typography while accepting the standard
10
+ * mobile {@link Text} props.
11
+ */
12
+ declare const PopoverTitle: _$react.NamedExoticComponent<TextProps>;
13
+ //#endregion
14
+ export { PopoverTitle };
15
+ //# sourceMappingURL=PopoverTitle.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PopoverTitle.d.cts","names":[],"sources":["../../../src/components/Popover/PopoverTitle.tsx"],"mappings":";;;;;;;;;AAWkB;;cAAZ,YAAA,EAAY,OAAA,CAAA,oBAAA,CAMhB,SAAA"}
@@ -0,0 +1,15 @@
1
+
2
+ import { TextProps } from "../Text.js";
3
+ import * as _$react from "react";
4
+
5
+ //#region src/components/Popover/PopoverTitle.d.ts
6
+ /**
7
+ * Title text for {@link PopoverContent}.
8
+ *
9
+ * Provides the default popover title typography while accepting the standard
10
+ * mobile {@link Text} props.
11
+ */
12
+ declare const PopoverTitle: _$react.NamedExoticComponent<TextProps>;
13
+ //#endregion
14
+ export { PopoverTitle };
15
+ //# sourceMappingURL=PopoverTitle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PopoverTitle.d.ts","names":[],"sources":["../../../src/components/Popover/PopoverTitle.tsx"],"mappings":";;;;;;;;;AAWkB;;cAAZ,YAAA,EAAY,OAAA,CAAA,oBAAA,CAMhB,SAAA"}
@@ -0,0 +1,23 @@
1
+ /*! © 2026 Yahoo, Inc. UDS Mobile v0.0.0-development */
2
+ import { Text } from "../Text.js";
3
+ import { memo } from "react";
4
+ import { jsx } from "react/jsx-runtime";
5
+ //#region src/components/Popover/PopoverTitle.tsx
6
+ /**
7
+ * Title text for {@link PopoverContent}.
8
+ *
9
+ * Provides the default popover title typography while accepting the standard
10
+ * mobile {@link Text} props.
11
+ */
12
+ const PopoverTitle = memo(function PopoverTitle({ variant = "label1/emphasized", color = "primary", ...props }) {
13
+ return /* @__PURE__ */ jsx(Text, {
14
+ variant,
15
+ color,
16
+ ...props
17
+ });
18
+ });
19
+ PopoverTitle.displayName = "PopoverTitle";
20
+ //#endregion
21
+ export { PopoverTitle };
22
+
23
+ //# sourceMappingURL=PopoverTitle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PopoverTitle.js","names":[],"sources":["../../../src/components/Popover/PopoverTitle.tsx"],"sourcesContent":["import { memo } from 'react';\n\nimport { Text } from '../Text';\nimport type { PopoverTitleProps } from './types';\n\n/**\n * Title text for {@link PopoverContent}.\n *\n * Provides the default popover title typography while accepting the standard\n * mobile {@link Text} props.\n */\nconst PopoverTitle = memo(function PopoverTitle({\n variant = 'label1/emphasized',\n color = 'primary',\n ...props\n}: PopoverTitleProps) {\n return <Text variant={variant} color={color} {...props} />;\n});\n\nPopoverTitle.displayName = 'PopoverTitle';\n\nexport { PopoverTitle };\n"],"mappings":";;;;;;;;;;;AAWA,MAAM,eAAe,KAAK,SAAS,aAAa,EAC9C,UAAU,qBACV,QAAQ,WACR,GAAG,SACiB;CACpB,OAAO,oBAAC,MAAD;EAAe;EAAgB;EAAO,GAAI;EAAS,CAAA;EAC1D;AAEF,aAAa,cAAc"}