@yahoo/uds-mobile 2.17.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 (146) hide show
  1. package/dist/bin/generateTheme.mjs +7 -2
  2. package/dist/bin/mobile/scripts/utils/configToRNMappings.mjs +4 -0
  3. package/dist/components/Popover/Popover.cjs +92 -0
  4. package/dist/components/Popover/Popover.d.cts +26 -0
  5. package/dist/components/Popover/Popover.d.cts.map +1 -0
  6. package/dist/components/Popover/Popover.d.ts +26 -0
  7. package/dist/components/Popover/Popover.d.ts.map +1 -0
  8. package/dist/components/Popover/Popover.js +92 -0
  9. package/dist/components/Popover/Popover.js.map +1 -0
  10. package/dist/components/Popover/PopoverContent.cjs +124 -0
  11. package/dist/components/Popover/PopoverContent.d.cts +15 -0
  12. package/dist/components/Popover/PopoverContent.d.cts.map +1 -0
  13. package/dist/components/Popover/PopoverContent.d.ts +15 -0
  14. package/dist/components/Popover/PopoverContent.d.ts.map +1 -0
  15. package/dist/components/Popover/PopoverContent.js +124 -0
  16. package/dist/components/Popover/PopoverContent.js.map +1 -0
  17. package/dist/components/Popover/PopoverContext.cjs +14 -0
  18. package/dist/components/Popover/PopoverContext.d.cts +10 -0
  19. package/dist/components/Popover/PopoverContext.d.cts.map +1 -0
  20. package/dist/components/Popover/PopoverContext.d.ts +10 -0
  21. package/dist/components/Popover/PopoverContext.d.ts.map +1 -0
  22. package/dist/components/Popover/PopoverContext.js +13 -0
  23. package/dist/components/Popover/PopoverContext.js.map +1 -0
  24. package/dist/components/Popover/PopoverDescription.cjs +23 -0
  25. package/dist/components/Popover/PopoverDescription.d.cts +15 -0
  26. package/dist/components/Popover/PopoverDescription.d.cts.map +1 -0
  27. package/dist/components/Popover/PopoverDescription.d.ts +15 -0
  28. package/dist/components/Popover/PopoverDescription.d.ts.map +1 -0
  29. package/dist/components/Popover/PopoverDescription.js +23 -0
  30. package/dist/components/Popover/PopoverDescription.js.map +1 -0
  31. package/dist/components/Popover/PopoverDismiss.cjs +22 -0
  32. package/dist/components/Popover/PopoverDismiss.d.cts +15 -0
  33. package/dist/components/Popover/PopoverDismiss.d.cts.map +1 -0
  34. package/dist/components/Popover/PopoverDismiss.d.ts +15 -0
  35. package/dist/components/Popover/PopoverDismiss.d.ts.map +1 -0
  36. package/dist/components/Popover/PopoverDismiss.js +22 -0
  37. package/dist/components/Popover/PopoverDismiss.js.map +1 -0
  38. package/dist/components/Popover/PopoverFrame.cjs +56 -0
  39. package/dist/components/Popover/PopoverFrame.d.cts +23 -0
  40. package/dist/components/Popover/PopoverFrame.d.cts.map +1 -0
  41. package/dist/components/Popover/PopoverFrame.d.ts +23 -0
  42. package/dist/components/Popover/PopoverFrame.d.ts.map +1 -0
  43. package/dist/components/Popover/PopoverFrame.js +55 -0
  44. package/dist/components/Popover/PopoverFrame.js.map +1 -0
  45. package/dist/components/Popover/PopoverPortalLayer.cjs +45 -0
  46. package/dist/components/Popover/PopoverPortalLayer.d.cts +15 -0
  47. package/dist/components/Popover/PopoverPortalLayer.d.cts.map +1 -0
  48. package/dist/components/Popover/PopoverPortalLayer.d.ts +15 -0
  49. package/dist/components/Popover/PopoverPortalLayer.d.ts.map +1 -0
  50. package/dist/components/Popover/PopoverPortalLayer.js +45 -0
  51. package/dist/components/Popover/PopoverPortalLayer.js.map +1 -0
  52. package/dist/components/Popover/PopoverSurface.cjs +228 -0
  53. package/dist/components/Popover/PopoverSurface.d.cts +26 -0
  54. package/dist/components/Popover/PopoverSurface.d.cts.map +1 -0
  55. package/dist/components/Popover/PopoverSurface.d.ts +26 -0
  56. package/dist/components/Popover/PopoverSurface.d.ts.map +1 -0
  57. package/dist/components/Popover/PopoverSurface.js +227 -0
  58. package/dist/components/Popover/PopoverSurface.js.map +1 -0
  59. package/dist/components/Popover/PopoverTitle.cjs +23 -0
  60. package/dist/components/Popover/PopoverTitle.d.cts +15 -0
  61. package/dist/components/Popover/PopoverTitle.d.cts.map +1 -0
  62. package/dist/components/Popover/PopoverTitle.d.ts +15 -0
  63. package/dist/components/Popover/PopoverTitle.d.ts.map +1 -0
  64. package/dist/components/Popover/PopoverTitle.js +23 -0
  65. package/dist/components/Popover/PopoverTitle.js.map +1 -0
  66. package/dist/components/Popover/PopoverTrigger.cjs +88 -0
  67. package/dist/components/Popover/PopoverTrigger.d.cts +15 -0
  68. package/dist/components/Popover/PopoverTrigger.d.cts.map +1 -0
  69. package/dist/components/Popover/PopoverTrigger.d.ts +15 -0
  70. package/dist/components/Popover/PopoverTrigger.d.ts.map +1 -0
  71. package/dist/components/Popover/PopoverTrigger.js +88 -0
  72. package/dist/components/Popover/PopoverTrigger.js.map +1 -0
  73. package/dist/components/Popover/index.cjs +14 -0
  74. package/dist/components/Popover/index.d.cts +9 -0
  75. package/dist/components/Popover/index.d.ts +9 -0
  76. package/dist/components/Popover/index.js +8 -0
  77. package/dist/components/Popover/popoverFrameGeometry.cjs +177 -0
  78. package/dist/components/Popover/popoverFrameGeometry.d.cts +48 -0
  79. package/dist/components/Popover/popoverFrameGeometry.d.cts.map +1 -0
  80. package/dist/components/Popover/popoverFrameGeometry.d.ts +48 -0
  81. package/dist/components/Popover/popoverFrameGeometry.d.ts.map +1 -0
  82. package/dist/components/Popover/popoverFrameGeometry.js +177 -0
  83. package/dist/components/Popover/popoverFrameGeometry.js.map +1 -0
  84. package/dist/components/Popover/popoverLayer.cjs +16 -0
  85. package/dist/components/Popover/popoverLayer.d.cts +8 -0
  86. package/dist/components/Popover/popoverLayer.d.cts.map +1 -0
  87. package/dist/components/Popover/popoverLayer.d.ts +8 -0
  88. package/dist/components/Popover/popoverLayer.d.ts.map +1 -0
  89. package/dist/components/Popover/popoverLayer.js +16 -0
  90. package/dist/components/Popover/popoverLayer.js.map +1 -0
  91. package/dist/components/Popover/types.cjs +1 -0
  92. package/dist/components/Popover/types.d.cts +170 -0
  93. package/dist/components/Popover/types.d.cts.map +1 -0
  94. package/dist/components/Popover/types.d.ts +170 -0
  95. package/dist/components/Popover/types.d.ts.map +1 -0
  96. package/dist/components/Popover/types.js +1 -0
  97. package/dist/components/Toast/ToastProvider.cjs +1 -1
  98. package/dist/components/Toast/ToastProvider.js +1 -1
  99. package/dist/components/internal/Overlay/index.cjs +4 -0
  100. package/dist/components/internal/Overlay/index.d.cts +4 -2
  101. package/dist/components/internal/Overlay/index.d.ts +4 -2
  102. package/dist/components/internal/Overlay/index.js +3 -1
  103. package/dist/components/internal/Overlay/types.d.cts +47 -1
  104. package/dist/components/internal/Overlay/types.d.cts.map +1 -1
  105. package/dist/components/internal/Overlay/types.d.ts +47 -1
  106. package/dist/components/internal/Overlay/types.d.ts.map +1 -1
  107. package/dist/components/internal/Overlay/useAnchoredPosition.cjs +225 -0
  108. package/dist/components/internal/Overlay/useAnchoredPosition.d.cts +22 -0
  109. package/dist/components/internal/Overlay/useAnchoredPosition.d.cts.map +1 -0
  110. package/dist/components/internal/Overlay/useAnchoredPosition.d.ts +22 -0
  111. package/dist/components/internal/Overlay/useAnchoredPosition.d.ts.map +1 -0
  112. package/dist/components/internal/Overlay/useAnchoredPosition.js +225 -0
  113. package/dist/components/internal/Overlay/useAnchoredPosition.js.map +1 -0
  114. package/dist/components/internal/Overlay/useOverlayDismiss.cjs +22 -0
  115. package/dist/components/internal/Overlay/useOverlayDismiss.d.cts +12 -0
  116. package/dist/components/internal/Overlay/useOverlayDismiss.d.cts.map +1 -0
  117. package/dist/components/internal/Overlay/useOverlayDismiss.d.ts +12 -0
  118. package/dist/components/internal/Overlay/useOverlayDismiss.d.ts.map +1 -0
  119. package/dist/components/internal/Overlay/useOverlayDismiss.js +22 -0
  120. package/dist/components/internal/Overlay/useOverlayDismiss.js.map +1 -0
  121. package/dist/jest/mocks/react-native.cjs +14 -0
  122. package/dist/jest/mocks/react-native.d.cts +29 -1
  123. package/dist/jest/mocks/react-native.d.cts.map +1 -1
  124. package/dist/jest/mocks/react-native.d.ts +29 -1
  125. package/dist/jest/mocks/react-native.d.ts.map +1 -1
  126. package/dist/jest/mocks/react-native.js +13 -1
  127. package/dist/jest/mocks/react-native.js.map +1 -1
  128. package/dist/jest/mocks/styles.cjs +60 -0
  129. package/dist/jest/mocks/styles.d.cts +5 -2
  130. package/dist/jest/mocks/styles.d.cts.map +1 -1
  131. package/dist/jest/mocks/styles.d.ts +5 -2
  132. package/dist/jest/mocks/styles.d.ts.map +1 -1
  133. package/dist/jest/mocks/styles.js +58 -1
  134. package/dist/jest/mocks/styles.js.map +1 -1
  135. package/dist/jest/setup.cjs +46 -3
  136. package/dist/jest/setup.d.cts.map +1 -1
  137. package/dist/jest/setup.d.ts.map +1 -1
  138. package/dist/jest/setup.js +46 -3
  139. package/dist/jest/setup.js.map +1 -1
  140. package/dist/types/dist/index.d.cts.map +1 -1
  141. package/dist/types/dist/index.d.ts.map +1 -1
  142. package/generated/styles.cjs +6 -0
  143. package/generated/styles.d.ts +13 -1
  144. package/generated/styles.mjs +6 -0
  145. package/generated/unistyles.d.ts +13 -0
  146. package/package.json +11 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useAnchoredPosition.js","names":[],"sources":["../../../../src/components/internal/Overlay/useAnchoredPosition.ts"],"sourcesContent":["import { useMemo } from 'react';\nimport { I18nManager, useWindowDimensions } from 'react-native';\nimport { useSafeAreaInsets } from 'react-native-safe-area-context';\n\nimport type {\n AnchoredAlign,\n AnchoredPlacement,\n AnchoredRect,\n UseAnchoredPositionProps,\n UseAnchoredPositionResult,\n} from './types';\n\nconst DEFAULT_COLLISION_PADDING = 12;\nconst DEFAULT_OFFSET = 9;\nconst DEFAULT_ARROW_WIDTH = 22;\nconst DEFAULT_ARROW_HEIGHT = 12;\nconst DEFAULT_ARROW_BASELINE_INSET = 1;\n\ntype PhysicalSide = 'top' | 'bottom' | 'left' | 'right';\ntype PlacementParts = {\n side: PhysicalSide;\n align: AnchoredAlign;\n};\n\nfunction clamp(value: number, min: number, max: number): number {\n if (max < min) {\n return min;\n }\n return Math.min(Math.max(value, min), max);\n}\n\nfunction resolveLogicalSide(side: 'top' | 'bottom' | 'start' | 'end'): PhysicalSide {\n const physicalSideByLogicalSide = {\n top: 'top',\n bottom: 'bottom',\n start: I18nManager.isRTL ? 'right' : 'left',\n end: I18nManager.isRTL ? 'left' : 'right',\n } as const;\n\n return physicalSideByLogicalSide[side];\n}\n\nfunction getOppositeSide(side: PhysicalSide): PhysicalSide {\n switch (side) {\n case 'top':\n return 'bottom';\n case 'bottom':\n return 'top';\n case 'left':\n return 'right';\n case 'right':\n return 'left';\n }\n}\n\nfunction formatPlacement(side: PhysicalSide, align: AnchoredAlign): AnchoredPlacement {\n const logicalSideByPhysicalSide = {\n top: 'top',\n bottom: 'bottom',\n left: I18nManager.isRTL ? 'end' : 'start',\n right: I18nManager.isRTL ? 'start' : 'end',\n } as const;\n const logicalSide = logicalSideByPhysicalSide[side];\n\n if (align === 'center') {\n return logicalSide;\n }\n\n if (side === 'top' || side === 'bottom') {\n return `${logicalSide}-${align}` as AnchoredPlacement;\n }\n\n return `${logicalSide}-${align === 'start' ? 'top' : 'bottom'}` as AnchoredPlacement;\n}\n\nfunction parsePlacement(\n placement: AnchoredPlacement,\n alignOverride?: AnchoredAlign,\n): PlacementParts {\n const [rawSide, rawAlign] = placement.split('-') as [\n 'top' | 'bottom' | 'start' | 'end',\n 'start' | 'end' | 'top' | 'bottom' | undefined,\n ];\n const side = resolveLogicalSide(rawSide);\n\n if (alignOverride) {\n return { side, align: alignOverride };\n }\n\n if (!rawAlign) {\n return { side, align: 'center' };\n }\n\n if (rawAlign === 'top') {\n return { side, align: 'start' };\n }\n\n if (rawAlign === 'bottom') {\n return { side, align: 'end' };\n }\n\n return { side, align: rawAlign };\n}\n\nfunction getContentSize(\n triggerRect: AnchoredRect,\n contentSize: { width: number; height: number },\n maxWidth: number,\n sameWidth: boolean,\n width: UseAnchoredPositionProps['width'],\n) {\n const resolvedWidth =\n sameWidth || width === 'trigger'\n ? triggerRect.width\n : width === 'full'\n ? maxWidth\n : typeof width === 'number'\n ? width\n : contentSize.width || triggerRect.width;\n\n return {\n width: Math.min(resolvedWidth, maxWidth),\n height: contentSize.height,\n };\n}\n\nfunction getCoordinate({\n align,\n alignOffset,\n contentLength,\n triggerLength,\n triggerStart,\n}: {\n align: AnchoredAlign;\n alignOffset: number;\n contentLength: number;\n triggerLength: number;\n triggerStart: number;\n}) {\n if (align === 'start') {\n return triggerStart + alignOffset;\n }\n\n if (align === 'end') {\n return triggerStart + triggerLength - contentLength + alignOffset;\n }\n\n const centered = triggerStart + triggerLength / 2 - contentLength / 2;\n return centered + alignOffset;\n}\n\nfunction getRawPosition({\n align,\n alignOffset,\n contentHeight,\n contentWidth,\n offset,\n side,\n triggerRect,\n}: {\n align: AnchoredAlign;\n alignOffset: number;\n contentHeight: number;\n contentWidth: number;\n offset: number;\n side: PhysicalSide;\n triggerRect: AnchoredRect;\n}) {\n if (side === 'top' || side === 'bottom') {\n return {\n left: getCoordinate({\n align,\n alignOffset,\n contentLength: contentWidth,\n triggerLength: triggerRect.width,\n triggerStart: triggerRect.x,\n }),\n top:\n side === 'top'\n ? triggerRect.y - contentHeight - offset\n : triggerRect.y + triggerRect.height + offset,\n };\n }\n\n return {\n left:\n side === 'left'\n ? triggerRect.x - contentWidth - offset\n : triggerRect.x + triggerRect.width + offset,\n top: getCoordinate({\n align,\n alignOffset,\n contentLength: contentHeight,\n triggerLength: triggerRect.height,\n triggerStart: triggerRect.y,\n }),\n };\n}\n\nfunction shouldFlip({\n contentHeight,\n contentWidth,\n maxBottom,\n maxRight,\n minLeft,\n minTop,\n side,\n triggerRect,\n windowHeight,\n windowWidth,\n}: {\n contentHeight: number;\n contentWidth: number;\n maxBottom: number;\n maxRight: number;\n minLeft: number;\n minTop: number;\n side: PhysicalSide;\n triggerRect: AnchoredRect;\n windowHeight: number;\n windowWidth: number;\n}) {\n if (side === 'top') {\n return (\n triggerRect.y - contentHeight < minTop &&\n windowHeight - (triggerRect.y + triggerRect.height) > triggerRect.y\n );\n }\n\n if (side === 'bottom') {\n return (\n triggerRect.y + triggerRect.height + contentHeight > maxBottom &&\n triggerRect.y > windowHeight - (triggerRect.y + triggerRect.height)\n );\n }\n\n if (side === 'left') {\n return (\n triggerRect.x - contentWidth < minLeft &&\n windowWidth - (triggerRect.x + triggerRect.width) > triggerRect.x\n );\n }\n\n return (\n triggerRect.x + triggerRect.width + contentWidth > maxRight &&\n triggerRect.x > windowWidth - (triggerRect.x + triggerRect.width)\n );\n}\n\nfunction getArrowPosition({\n arrowHeight,\n arrowWidth,\n contentHeight,\n contentLeft,\n contentTop,\n contentWidth,\n side,\n triggerRect,\n}: {\n arrowHeight: number;\n arrowWidth: number;\n contentHeight: number;\n contentLeft: number;\n contentTop: number;\n contentWidth: number;\n side: PhysicalSide;\n triggerRect: AnchoredRect;\n}) {\n const arrowBase = {\n position: 'absolute' as const,\n zIndex: 2,\n };\n\n if (side === 'top' || side === 'bottom') {\n const triggerCenter = triggerRect.x + triggerRect.width / 2;\n const left = clamp(\n triggerCenter - contentLeft - arrowWidth / 2,\n arrowHeight,\n contentWidth - arrowWidth - arrowHeight,\n );\n\n return {\n ...arrowBase,\n width: arrowWidth,\n height: arrowHeight,\n left,\n ...(side === 'top'\n ? { bottom: -arrowHeight + DEFAULT_ARROW_BASELINE_INSET }\n : { top: -arrowHeight + DEFAULT_ARROW_BASELINE_INSET }),\n };\n }\n\n const triggerCenter = triggerRect.y + triggerRect.height / 2;\n const top = clamp(\n triggerCenter - contentTop - arrowWidth / 2,\n arrowHeight,\n contentHeight - arrowWidth - arrowHeight,\n );\n\n return {\n ...arrowBase,\n width: arrowHeight,\n height: arrowWidth,\n top,\n ...(side === 'left'\n ? { right: -arrowHeight + DEFAULT_ARROW_BASELINE_INSET }\n : { left: -arrowHeight + DEFAULT_ARROW_BASELINE_INSET }),\n };\n}\n\nfunction useAnchoredPosition({\n triggerRect,\n contentSize,\n placement = 'bottom',\n align,\n offset = DEFAULT_OFFSET,\n alignOffset = 0,\n avoidCollisions = true,\n collisionPadding = DEFAULT_COLLISION_PADDING,\n width = 'content',\n sameWidth = false,\n insets,\n arrowWidth,\n arrowHeight,\n}: UseAnchoredPositionProps): UseAnchoredPositionResult {\n const windowDimensions = useWindowDimensions();\n const safeAreaInsets = useSafeAreaInsets();\n const resolvedArrowWidth = arrowWidth ?? DEFAULT_ARROW_WIDTH;\n const resolvedArrowHeight = arrowHeight ?? DEFAULT_ARROW_HEIGHT;\n\n return useMemo<UseAnchoredPositionResult>(() => {\n const fallbackPlacement = placement;\n const maxWidth =\n windowDimensions.width -\n (insets?.left ?? safeAreaInsets.left) -\n (insets?.right ?? safeAreaInsets.right) -\n collisionPadding * 2;\n\n if (!triggerRect) {\n return {\n resolvedPlacement: fallbackPlacement,\n contentStyle: {\n position: 'absolute',\n left: collisionPadding,\n top: (insets?.top ?? safeAreaInsets.top) + collisionPadding,\n maxWidth,\n opacity: 0,\n },\n arrowStyle: { opacity: 0 },\n anchorReady: false,\n maxWidth,\n };\n }\n\n const minLeft = (insets?.left ?? safeAreaInsets.left) + collisionPadding;\n const minTop = (insets?.top ?? safeAreaInsets.top) + collisionPadding;\n const maxRight =\n windowDimensions.width - (insets?.right ?? safeAreaInsets.right) - collisionPadding;\n const maxBottom =\n windowDimensions.height - (insets?.bottom ?? safeAreaInsets.bottom) - collisionPadding;\n\n const { width: contentWidth, height: contentHeight } = getContentSize(\n triggerRect,\n contentSize,\n maxWidth,\n sameWidth,\n width,\n );\n\n const placementParts = parsePlacement(placement, align);\n let { side } = placementParts;\n const resolvedAlign = placementParts.align;\n\n if (\n avoidCollisions &&\n shouldFlip({\n contentHeight,\n contentWidth,\n maxBottom,\n maxRight,\n minLeft,\n minTop,\n side,\n triggerRect,\n windowHeight: windowDimensions.height,\n windowWidth: windowDimensions.width,\n })\n ) {\n side = getOppositeSide(side);\n }\n\n const rawPosition = getRawPosition({\n align: resolvedAlign,\n alignOffset,\n contentHeight,\n contentWidth,\n offset,\n side,\n triggerRect,\n });\n\n const left = clamp(rawPosition.left, minLeft, maxRight - contentWidth);\n const top = clamp(rawPosition.top, minTop, maxBottom - contentHeight);\n const resolvedPlacement = formatPlacement(side, resolvedAlign);\n\n return {\n resolvedPlacement,\n contentStyle: {\n position: 'absolute',\n left,\n top,\n width: sameWidth || width !== 'content' ? contentWidth : undefined,\n maxWidth,\n },\n arrowStyle: getArrowPosition({\n arrowHeight: resolvedArrowHeight,\n arrowWidth: resolvedArrowWidth,\n contentHeight,\n contentLeft: left,\n contentTop: top,\n contentWidth,\n side,\n triggerRect,\n }),\n anchorReady: true,\n maxWidth,\n };\n }, [\n align,\n alignOffset,\n avoidCollisions,\n collisionPadding,\n contentSize,\n insets,\n offset,\n placement,\n resolvedArrowHeight,\n resolvedArrowWidth,\n safeAreaInsets,\n sameWidth,\n triggerRect,\n width,\n windowDimensions,\n ]);\n}\n\nexport { useAnchoredPosition };\n"],"mappings":";;;;;AAYA,MAAM,4BAA4B;AAClC,MAAM,iBAAiB;AACvB,MAAM,sBAAsB;AAC5B,MAAM,uBAAuB;AAC7B,MAAM,+BAA+B;AAQrC,SAAS,MAAM,OAAe,KAAa,KAAqB;CAC9D,IAAI,MAAM,KACR,OAAO;CAET,OAAO,KAAK,IAAI,KAAK,IAAI,OAAO,IAAI,EAAE,IAAI;;AAG5C,SAAS,mBAAmB,MAAwD;CAQlF,OAAO;EANL,KAAK;EACL,QAAQ;EACR,OAAO,YAAY,QAAQ,UAAU;EACrC,KAAK,YAAY,QAAQ,SAAS;EAGJ,CAAC;;AAGnC,SAAS,gBAAgB,MAAkC;CACzD,QAAQ,MAAR;EACE,KAAK,OACH,OAAO;EACT,KAAK,UACH,OAAO;EACT,KAAK,QACH,OAAO;EACT,KAAK,SACH,OAAO;;;AAIb,SAAS,gBAAgB,MAAoB,OAAyC;CAOpF,MAAM,cAAc;EALlB,KAAK;EACL,QAAQ;EACR,MAAM,YAAY,QAAQ,QAAQ;EAClC,OAAO,YAAY,QAAQ,UAAU;EAEM,CAAC;CAE9C,IAAI,UAAU,UACZ,OAAO;CAGT,IAAI,SAAS,SAAS,SAAS,UAC7B,OAAO,GAAG,YAAY,GAAG;CAG3B,OAAO,GAAG,YAAY,GAAG,UAAU,UAAU,QAAQ;;AAGvD,SAAS,eACP,WACA,eACgB;CAChB,MAAM,CAAC,SAAS,YAAY,UAAU,MAAM,IAAI;CAIhD,MAAM,OAAO,mBAAmB,QAAQ;CAExC,IAAI,eACF,OAAO;EAAE;EAAM,OAAO;EAAe;CAGvC,IAAI,CAAC,UACH,OAAO;EAAE;EAAM,OAAO;EAAU;CAGlC,IAAI,aAAa,OACf,OAAO;EAAE;EAAM,OAAO;EAAS;CAGjC,IAAI,aAAa,UACf,OAAO;EAAE;EAAM,OAAO;EAAO;CAG/B,OAAO;EAAE;EAAM,OAAO;EAAU;;AAGlC,SAAS,eACP,aACA,aACA,UACA,WACA,OACA;CACA,MAAM,gBACJ,aAAa,UAAU,YACnB,YAAY,QACZ,UAAU,SACR,WACA,OAAO,UAAU,WACf,QACA,YAAY,SAAS,YAAY;CAE3C,OAAO;EACL,OAAO,KAAK,IAAI,eAAe,SAAS;EACxC,QAAQ,YAAY;EACrB;;AAGH,SAAS,cAAc,EACrB,OACA,aACA,eACA,eACA,gBAOC;CACD,IAAI,UAAU,SACZ,OAAO,eAAe;CAGxB,IAAI,UAAU,OACZ,OAAO,eAAe,gBAAgB,gBAAgB;CAIxD,OADiB,eAAe,gBAAgB,IAAI,gBAAgB,IAClD;;AAGpB,SAAS,eAAe,EACtB,OACA,aACA,eACA,cACA,QACA,MACA,eASC;CACD,IAAI,SAAS,SAAS,SAAS,UAC7B,OAAO;EACL,MAAM,cAAc;GAClB;GACA;GACA,eAAe;GACf,eAAe,YAAY;GAC3B,cAAc,YAAY;GAC3B,CAAC;EACF,KACE,SAAS,QACL,YAAY,IAAI,gBAAgB,SAChC,YAAY,IAAI,YAAY,SAAS;EAC5C;CAGH,OAAO;EACL,MACE,SAAS,SACL,YAAY,IAAI,eAAe,SAC/B,YAAY,IAAI,YAAY,QAAQ;EAC1C,KAAK,cAAc;GACjB;GACA;GACA,eAAe;GACf,eAAe,YAAY;GAC3B,cAAc,YAAY;GAC3B,CAAC;EACH;;AAGH,SAAS,WAAW,EAClB,eACA,cACA,WACA,UACA,SACA,QACA,MACA,aACA,cACA,eAYC;CACD,IAAI,SAAS,OACX,OACE,YAAY,IAAI,gBAAgB,UAChC,gBAAgB,YAAY,IAAI,YAAY,UAAU,YAAY;CAItE,IAAI,SAAS,UACX,OACE,YAAY,IAAI,YAAY,SAAS,gBAAgB,aACrD,YAAY,IAAI,gBAAgB,YAAY,IAAI,YAAY;CAIhE,IAAI,SAAS,QACX,OACE,YAAY,IAAI,eAAe,WAC/B,eAAe,YAAY,IAAI,YAAY,SAAS,YAAY;CAIpE,OACE,YAAY,IAAI,YAAY,QAAQ,eAAe,YACnD,YAAY,IAAI,eAAe,YAAY,IAAI,YAAY;;AAI/D,SAAS,iBAAiB,EACxB,aACA,YACA,eACA,aACA,YACA,cACA,MACA,eAUC;CACD,MAAM,YAAY;EAChB,UAAU;EACV,QAAQ;EACT;CAED,IAAI,SAAS,SAAS,SAAS,UAAU;EAEvC,MAAM,OAAO,MADS,YAAY,IAAI,YAAY,QAAQ,IAExC,cAAc,aAAa,GAC3C,aACA,eAAe,aAAa,YAC7B;EAED,OAAO;GACL,GAAG;GACH,OAAO;GACP,QAAQ;GACR;GACA,GAAI,SAAS,QACT,EAAE,QAAQ,CAAC,cAAc,8BAA8B,GACvD,EAAE,KAAK,CAAC,cAAc,8BAA8B;GACzD;;CAIH,MAAM,MAAM,MADU,YAAY,IAAI,YAAY,SAAS,IAEzC,aAAa,aAAa,GAC1C,aACA,gBAAgB,aAAa,YAC9B;CAED,OAAO;EACL,GAAG;EACH,OAAO;EACP,QAAQ;EACR;EACA,GAAI,SAAS,SACT,EAAE,OAAO,CAAC,cAAc,8BAA8B,GACtD,EAAE,MAAM,CAAC,cAAc,8BAA8B;EAC1D;;AAGH,SAAS,oBAAoB,EAC3B,aACA,aACA,YAAY,UACZ,OACA,SAAS,gBACT,cAAc,GACd,kBAAkB,MAClB,mBAAmB,2BACnB,QAAQ,WACR,YAAY,OACZ,QACA,YACA,eACsD;CACtD,MAAM,mBAAmB,qBAAqB;CAC9C,MAAM,iBAAiB,mBAAmB;CAC1C,MAAM,qBAAqB,cAAc;CACzC,MAAM,sBAAsB,eAAe;CAE3C,OAAO,cAAyC;EAC9C,MAAM,oBAAoB;EAC1B,MAAM,WACJ,iBAAiB,SAChB,QAAQ,QAAQ,eAAe,SAC/B,QAAQ,SAAS,eAAe,SACjC,mBAAmB;EAErB,IAAI,CAAC,aACH,OAAO;GACL,mBAAmB;GACnB,cAAc;IACZ,UAAU;IACV,MAAM;IACN,MAAM,QAAQ,OAAO,eAAe,OAAO;IAC3C;IACA,SAAS;IACV;GACD,YAAY,EAAE,SAAS,GAAG;GAC1B,aAAa;GACb;GACD;EAGH,MAAM,WAAW,QAAQ,QAAQ,eAAe,QAAQ;EACxD,MAAM,UAAU,QAAQ,OAAO,eAAe,OAAO;EACrD,MAAM,WACJ,iBAAiB,SAAS,QAAQ,SAAS,eAAe,SAAS;EACrE,MAAM,YACJ,iBAAiB,UAAU,QAAQ,UAAU,eAAe,UAAU;EAExE,MAAM,EAAE,OAAO,cAAc,QAAQ,kBAAkB,eACrD,aACA,aACA,UACA,WACA,MACD;EAED,MAAM,iBAAiB,eAAe,WAAW,MAAM;EACvD,IAAI,EAAE,SAAS;EACf,MAAM,gBAAgB,eAAe;EAErC,IACE,mBACA,WAAW;GACT;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA,cAAc,iBAAiB;GAC/B,aAAa,iBAAiB;GAC/B,CAAC,EAEF,OAAO,gBAAgB,KAAK;EAG9B,MAAM,cAAc,eAAe;GACjC,OAAO;GACP;GACA;GACA;GACA;GACA;GACA;GACD,CAAC;EAEF,MAAM,OAAO,MAAM,YAAY,MAAM,SAAS,WAAW,aAAa;EACtE,MAAM,MAAM,MAAM,YAAY,KAAK,QAAQ,YAAY,cAAc;EAGrE,OAAO;GACL,mBAHwB,gBAAgB,MAAM,cAG7B;GACjB,cAAc;IACZ,UAAU;IACV;IACA;IACA,OAAO,aAAa,UAAU,YAAY,eAAe,KAAA;IACzD;IACD;GACD,YAAY,iBAAiB;IAC3B,aAAa;IACb,YAAY;IACZ;IACA,aAAa;IACb,YAAY;IACZ;IACA;IACA;IACD,CAAC;GACF,aAAa;GACb;GACD;IACA;EACD;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACD,CAAC"}
@@ -0,0 +1,22 @@
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
+ let react = require("react");
5
+ let react_native = require("react-native");
6
+ //#region src/components/internal/Overlay/useOverlayDismiss.ts
7
+ function useOverlayDismiss({ open, dismissible = true, onDismiss }) {
8
+ const dismiss = (0, react.useCallback)(() => {
9
+ if (dismissible) onDismiss();
10
+ }, [dismissible, onDismiss]);
11
+ (0, react.useEffect)(() => {
12
+ if (!open) return;
13
+ const subscription = react_native.BackHandler.addEventListener("hardwareBackPress", () => {
14
+ dismiss();
15
+ return true;
16
+ });
17
+ return () => subscription.remove();
18
+ }, [dismiss, open]);
19
+ return dismiss;
20
+ }
21
+ //#endregion
22
+ exports.useOverlayDismiss = useOverlayDismiss;
@@ -0,0 +1,12 @@
1
+
2
+ import { UseOverlayDismissProps } from "./types.cjs";
3
+
4
+ //#region src/components/internal/Overlay/useOverlayDismiss.d.ts
5
+ declare function useOverlayDismiss({
6
+ open,
7
+ dismissible,
8
+ onDismiss
9
+ }: UseOverlayDismissProps): () => void;
10
+ //#endregion
11
+ export { useOverlayDismiss };
12
+ //# sourceMappingURL=useOverlayDismiss.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useOverlayDismiss.d.cts","names":[],"sources":["../../../../src/components/internal/Overlay/useOverlayDismiss.ts"],"mappings":";;;;iBAKS,iBAAA,CAAA;EACP,IAAA;EACA,WAAA;EACA;AAAA,GACC,sBAAA"}
@@ -0,0 +1,12 @@
1
+
2
+ import { UseOverlayDismissProps } from "./types.js";
3
+
4
+ //#region src/components/internal/Overlay/useOverlayDismiss.d.ts
5
+ declare function useOverlayDismiss({
6
+ open,
7
+ dismissible,
8
+ onDismiss
9
+ }: UseOverlayDismissProps): () => void;
10
+ //#endregion
11
+ export { useOverlayDismiss };
12
+ //# sourceMappingURL=useOverlayDismiss.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useOverlayDismiss.d.ts","names":[],"sources":["../../../../src/components/internal/Overlay/useOverlayDismiss.ts"],"mappings":";;;;iBAKS,iBAAA,CAAA;EACP,IAAA;EACA,WAAA;EACA;AAAA,GACC,sBAAA"}
@@ -0,0 +1,22 @@
1
+ /*! © 2026 Yahoo, Inc. UDS Mobile v0.0.0-development */
2
+ import { useCallback, useEffect } from "react";
3
+ import { BackHandler } from "react-native";
4
+ //#region src/components/internal/Overlay/useOverlayDismiss.ts
5
+ function useOverlayDismiss({ open, dismissible = true, onDismiss }) {
6
+ const dismiss = useCallback(() => {
7
+ if (dismissible) onDismiss();
8
+ }, [dismissible, onDismiss]);
9
+ useEffect(() => {
10
+ if (!open) return;
11
+ const subscription = BackHandler.addEventListener("hardwareBackPress", () => {
12
+ dismiss();
13
+ return true;
14
+ });
15
+ return () => subscription.remove();
16
+ }, [dismiss, open]);
17
+ return dismiss;
18
+ }
19
+ //#endregion
20
+ export { useOverlayDismiss };
21
+
22
+ //# sourceMappingURL=useOverlayDismiss.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useOverlayDismiss.js","names":[],"sources":["../../../../src/components/internal/Overlay/useOverlayDismiss.ts"],"sourcesContent":["import { useCallback, useEffect } from 'react';\nimport { BackHandler } from 'react-native';\n\nimport type { UseOverlayDismissProps } from './types';\n\nfunction useOverlayDismiss({\n open,\n dismissible = true,\n onDismiss,\n}: UseOverlayDismissProps): () => void {\n const dismiss = useCallback(() => {\n if (dismissible) {\n onDismiss();\n }\n }, [dismissible, onDismiss]);\n\n useEffect(() => {\n if (!open) {\n return;\n }\n\n const subscription = BackHandler.addEventListener('hardwareBackPress', () => {\n dismiss();\n return true;\n });\n\n return () => subscription.remove();\n }, [dismiss, open]);\n\n return dismiss;\n}\n\nexport { useOverlayDismiss };\n"],"mappings":";;;;AAKA,SAAS,kBAAkB,EACzB,MACA,cAAc,MACd,aACqC;CACrC,MAAM,UAAU,kBAAkB;EAChC,IAAI,aACF,WAAW;IAEZ,CAAC,aAAa,UAAU,CAAC;CAE5B,gBAAgB;EACd,IAAI,CAAC,MACH;EAGF,MAAM,eAAe,YAAY,iBAAiB,2BAA2B;GAC3E,SAAS;GACT,OAAO;IACP;EAEF,aAAa,aAAa,QAAQ;IACjC,CAAC,SAAS,KAAK,CAAC;CAEnB,OAAO"}
@@ -114,6 +114,16 @@ const Keyboard = {
114
114
  removeListener: jest.fn(),
115
115
  isVisible: jest.fn(() => false)
116
116
  };
117
+ const BackHandler = {
118
+ addEventListener: jest.fn(() => ({ remove: jest.fn() })),
119
+ exitApp: jest.fn()
120
+ };
121
+ const I18nManager = {
122
+ isRTL: false,
123
+ allowRTL: jest.fn(),
124
+ forceRTL: jest.fn(),
125
+ getConstants: () => ({ isRTL: false })
126
+ };
117
127
  const Linking = {
118
128
  openURL: jest.fn().mockResolvedValue(true),
119
129
  canOpenURL: jest.fn().mockResolvedValue(true),
@@ -170,7 +180,9 @@ const ReactNative = {
170
180
  Dimensions,
171
181
  PixelRatio,
172
182
  Animated,
183
+ BackHandler,
173
184
  Keyboard,
185
+ I18nManager,
174
186
  Linking,
175
187
  AppState,
176
188
  AccessibilityInfo,
@@ -185,8 +197,10 @@ exports.ActivityIndicator = ActivityIndicator;
185
197
  exports.Animated = Animated;
186
198
  exports.AppState = AppState;
187
199
  exports.Appearance = Appearance;
200
+ exports.BackHandler = BackHandler;
188
201
  exports.Dimensions = Dimensions;
189
202
  exports.FlatList = FlatList;
203
+ exports.I18nManager = I18nManager;
190
204
  exports.Image = Image;
191
205
  exports.Keyboard = Keyboard;
192
206
  exports.KeyboardAvoidingView = KeyboardAvoidingView;
@@ -108,6 +108,20 @@ declare const Keyboard: {
108
108
  removeListener: jest.Mock<any, any, any>;
109
109
  isVisible: jest.Mock<boolean, [], any>;
110
110
  };
111
+ declare const BackHandler: {
112
+ addEventListener: jest.Mock<{
113
+ remove: jest.Mock<any, any, any>;
114
+ }, [], any>;
115
+ exitApp: jest.Mock<any, any, any>;
116
+ };
117
+ declare const I18nManager: {
118
+ isRTL: boolean;
119
+ allowRTL: jest.Mock<any, any, any>;
120
+ forceRTL: jest.Mock<any, any, any>;
121
+ getConstants: () => {
122
+ isRTL: boolean;
123
+ };
124
+ };
111
125
  declare const Linking: {
112
126
  openURL: jest.Mock<any, any, any>;
113
127
  canOpenURL: jest.Mock<any, any, any>;
@@ -242,6 +256,12 @@ declare const ReactNative: {
242
256
  }, [], any>;
243
257
  createAnimatedComponent: (Component: React.ComponentType) => React.ComponentType<{}>;
244
258
  };
259
+ BackHandler: {
260
+ addEventListener: jest.Mock<{
261
+ remove: jest.Mock<any, any, any>;
262
+ }, [], any>;
263
+ exitApp: jest.Mock<any, any, any>;
264
+ };
245
265
  Keyboard: {
246
266
  dismiss: jest.Mock<any, any, any>;
247
267
  addListener: jest.Mock<{
@@ -250,6 +270,14 @@ declare const ReactNative: {
250
270
  removeListener: jest.Mock<any, any, any>;
251
271
  isVisible: jest.Mock<boolean, [], any>;
252
272
  };
273
+ I18nManager: {
274
+ isRTL: boolean;
275
+ allowRTL: jest.Mock<any, any, any>;
276
+ forceRTL: jest.Mock<any, any, any>;
277
+ getConstants: () => {
278
+ isRTL: boolean;
279
+ };
280
+ };
253
281
  Linking: {
254
282
  openURL: jest.Mock<any, any, any>;
255
283
  canOpenURL: jest.Mock<any, any, any>;
@@ -289,5 +317,5 @@ declare const ReactNative: {
289
317
  };
290
318
  };
291
319
  //#endregion
292
- export { AccessibilityInfo, ActivityIndicator, Animated, AppState, Appearance, Dimensions, FlatList, Image, Keyboard, KeyboardAvoidingView, Linking, Modal, NativeEventEmitter, PixelRatio, Platform, Pressable, RefreshControl, SafeAreaView, ScrollView, SectionList, StyleSheet, Switch, Text, TextInput, TouchableHighlight, TouchableOpacity, TouchableWithoutFeedback, View, ReactNative as default, useColorScheme, useWindowDimensions };
320
+ export { AccessibilityInfo, ActivityIndicator, Animated, AppState, Appearance, BackHandler, Dimensions, FlatList, I18nManager, Image, Keyboard, KeyboardAvoidingView, Linking, Modal, NativeEventEmitter, PixelRatio, Platform, Pressable, RefreshControl, SafeAreaView, ScrollView, SectionList, StyleSheet, Switch, Text, TextInput, TouchableHighlight, TouchableOpacity, TouchableWithoutFeedback, View, ReactNative as default, useColorScheme, useWindowDimensions };
293
321
  //# sourceMappingURL=react-native.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"react-native.d.cts","names":[],"sources":["../../../src/jest/mocks/react-native.tsx"],"mappings":"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"}
1
+ {"version":3,"file":"react-native.d.cts","names":[],"sources":["../../../src/jest/mocks/react-native.tsx"],"mappings":"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"}
@@ -108,6 +108,20 @@ declare const Keyboard: {
108
108
  removeListener: jest.Mock<any, any, any>;
109
109
  isVisible: jest.Mock<boolean, [], any>;
110
110
  };
111
+ declare const BackHandler: {
112
+ addEventListener: jest.Mock<{
113
+ remove: jest.Mock<any, any, any>;
114
+ }, [], any>;
115
+ exitApp: jest.Mock<any, any, any>;
116
+ };
117
+ declare const I18nManager: {
118
+ isRTL: boolean;
119
+ allowRTL: jest.Mock<any, any, any>;
120
+ forceRTL: jest.Mock<any, any, any>;
121
+ getConstants: () => {
122
+ isRTL: boolean;
123
+ };
124
+ };
111
125
  declare const Linking: {
112
126
  openURL: jest.Mock<any, any, any>;
113
127
  canOpenURL: jest.Mock<any, any, any>;
@@ -242,6 +256,12 @@ declare const ReactNative: {
242
256
  }, [], any>;
243
257
  createAnimatedComponent: (Component: React.ComponentType) => React.ComponentType<{}>;
244
258
  };
259
+ BackHandler: {
260
+ addEventListener: jest.Mock<{
261
+ remove: jest.Mock<any, any, any>;
262
+ }, [], any>;
263
+ exitApp: jest.Mock<any, any, any>;
264
+ };
245
265
  Keyboard: {
246
266
  dismiss: jest.Mock<any, any, any>;
247
267
  addListener: jest.Mock<{
@@ -250,6 +270,14 @@ declare const ReactNative: {
250
270
  removeListener: jest.Mock<any, any, any>;
251
271
  isVisible: jest.Mock<boolean, [], any>;
252
272
  };
273
+ I18nManager: {
274
+ isRTL: boolean;
275
+ allowRTL: jest.Mock<any, any, any>;
276
+ forceRTL: jest.Mock<any, any, any>;
277
+ getConstants: () => {
278
+ isRTL: boolean;
279
+ };
280
+ };
253
281
  Linking: {
254
282
  openURL: jest.Mock<any, any, any>;
255
283
  canOpenURL: jest.Mock<any, any, any>;
@@ -289,5 +317,5 @@ declare const ReactNative: {
289
317
  };
290
318
  };
291
319
  //#endregion
292
- export { AccessibilityInfo, ActivityIndicator, Animated, AppState, Appearance, Dimensions, FlatList, Image, Keyboard, KeyboardAvoidingView, Linking, Modal, NativeEventEmitter, PixelRatio, Platform, Pressable, RefreshControl, SafeAreaView, ScrollView, SectionList, StyleSheet, Switch, Text, TextInput, TouchableHighlight, TouchableOpacity, TouchableWithoutFeedback, View, ReactNative as default, useColorScheme, useWindowDimensions };
320
+ export { AccessibilityInfo, ActivityIndicator, Animated, AppState, Appearance, BackHandler, Dimensions, FlatList, I18nManager, Image, Keyboard, KeyboardAvoidingView, Linking, Modal, NativeEventEmitter, PixelRatio, Platform, Pressable, RefreshControl, SafeAreaView, ScrollView, SectionList, StyleSheet, Switch, Text, TextInput, TouchableHighlight, TouchableOpacity, TouchableWithoutFeedback, View, ReactNative as default, useColorScheme, useWindowDimensions };
293
321
  //# sourceMappingURL=react-native.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"react-native.d.ts","names":[],"sources":["../../../src/jest/mocks/react-native.tsx"],"mappings":"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"}
1
+ {"version":3,"file":"react-native.d.ts","names":[],"sources":["../../../src/jest/mocks/react-native.tsx"],"mappings":"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"}
@@ -108,6 +108,16 @@ const Keyboard = {
108
108
  removeListener: jest.fn(),
109
109
  isVisible: jest.fn(() => false)
110
110
  };
111
+ const BackHandler = {
112
+ addEventListener: jest.fn(() => ({ remove: jest.fn() })),
113
+ exitApp: jest.fn()
114
+ };
115
+ const I18nManager = {
116
+ isRTL: false,
117
+ allowRTL: jest.fn(),
118
+ forceRTL: jest.fn(),
119
+ getConstants: () => ({ isRTL: false })
120
+ };
111
121
  const Linking = {
112
122
  openURL: jest.fn().mockResolvedValue(true),
113
123
  canOpenURL: jest.fn().mockResolvedValue(true),
@@ -164,7 +174,9 @@ const ReactNative = {
164
174
  Dimensions,
165
175
  PixelRatio,
166
176
  Animated,
177
+ BackHandler,
167
178
  Keyboard,
179
+ I18nManager,
168
180
  Linking,
169
181
  AppState,
170
182
  AccessibilityInfo,
@@ -174,6 +186,6 @@ const ReactNative = {
174
186
  useWindowDimensions
175
187
  };
176
188
  //#endregion
177
- export { AccessibilityInfo, ActivityIndicator, Animated, AppState, Appearance, Dimensions, FlatList, Image, Keyboard, KeyboardAvoidingView, Linking, Modal, NativeEventEmitter, PixelRatio, Platform, Pressable, RefreshControl, SafeAreaView, ScrollView, SectionList, StyleSheet, Switch, Text, TextInput, TouchableHighlight, TouchableOpacity, TouchableWithoutFeedback, View, ReactNative as default, useColorScheme, useWindowDimensions };
189
+ export { AccessibilityInfo, ActivityIndicator, Animated, AppState, Appearance, BackHandler, Dimensions, FlatList, I18nManager, Image, Keyboard, KeyboardAvoidingView, Linking, Modal, NativeEventEmitter, PixelRatio, Platform, Pressable, RefreshControl, SafeAreaView, ScrollView, SectionList, StyleSheet, Switch, Text, TextInput, TouchableHighlight, TouchableOpacity, TouchableWithoutFeedback, View, ReactNative as default, useColorScheme, useWindowDimensions };
178
190
 
179
191
  //# sourceMappingURL=react-native.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"react-native.js","names":[],"sources":["../../../src/jest/mocks/react-native.tsx"],"sourcesContent":["/**\n * Jest mock for react-native core components.\n *\n * Provides simple mock implementations for React Native components\n * that work in a Jest environment without native modules.\n */\n\n/// <reference types=\"jest\" />\n\nimport type { ReactNode } from 'react';\nimport React, { forwardRef } from 'react';\n\n// Set up React Native globals\ndeclare const global: { __DEV__?: boolean };\nglobal.__DEV__ = true;\n\ninterface MockComponentProps {\n children?: ReactNode;\n style?: object;\n testID?: string;\n accessibilityRole?: string;\n accessibilityLabel?: string;\n [key: string]: unknown;\n}\n\n// Create a simple mock component factory\nfunction createMockComponent(name: string) {\n const MockComponent = forwardRef<unknown, MockComponentProps>(({ children, ...props }, ref) => {\n return React.createElement(name, { ...props, ref }, children as ReactNode);\n });\n MockComponent.displayName = name;\n return MockComponent;\n}\n\n// Component mocks\nconst View = createMockComponent('View');\nconst Text = createMockComponent('Text');\nconst Image = createMockComponent('Image');\nconst ScrollView = createMockComponent('ScrollView');\nconst TextInput = createMockComponent('TextInput');\nconst TouchableOpacity = createMockComponent('TouchableOpacity');\nconst TouchableHighlight = createMockComponent('TouchableHighlight');\nconst TouchableWithoutFeedback = createMockComponent('TouchableWithoutFeedback');\nconst Pressable = createMockComponent('Pressable');\nconst FlatList = createMockComponent('FlatList');\nconst SectionList = createMockComponent('SectionList');\nconst ActivityIndicator = createMockComponent('ActivityIndicator');\nconst SafeAreaView = createMockComponent('SafeAreaView');\nconst Modal = createMockComponent('Modal');\nconst Switch = createMockComponent('Switch');\nconst RefreshControl = createMockComponent('RefreshControl');\nconst KeyboardAvoidingView = createMockComponent('KeyboardAvoidingView');\n\n// StyleSheet mock\nconst StyleSheet = {\n create: <T extends Record<string, object>>(styles: T): T => styles,\n flatten: (style: object | object[]): object => {\n if (Array.isArray(style)) {\n return Object.assign({}, ...style);\n }\n return style || {};\n },\n compose: (style1: object, style2: object): object[] => [style1, style2],\n hairlineWidth: 1,\n absoluteFill: { position: 'absolute', left: 0, right: 0, top: 0, bottom: 0 },\n absoluteFillObject: { position: 'absolute', left: 0, right: 0, top: 0, bottom: 0 },\n};\n\n// Platform mock\nconst Platform = {\n OS: 'ios' as const,\n Version: 17,\n select: <T extends Record<string, unknown>>(config: T): T[keyof T] | undefined => {\n return (config.ios ?? config.default) as T[keyof T] | undefined;\n },\n isTV: false,\n isPad: false,\n isVision: false,\n isTesting: true,\n constants: {\n reactNativeVersion: { major: 0, minor: 83, patch: 0 },\n },\n};\n\n// Dimensions mock\nconst SCREEN_WIDTH = 375;\nconst SCREEN_HEIGHT = 812;\n\nconst Dimensions = {\n get: (_dim: 'window' | 'screen') => ({\n width: SCREEN_WIDTH,\n height: SCREEN_HEIGHT,\n scale: 2,\n fontScale: 1,\n }),\n set: jest.fn(),\n addEventListener: jest.fn(() => ({ remove: jest.fn() })),\n removeEventListener: jest.fn(),\n};\n\n// PixelRatio mock\nconst PixelRatio = {\n get: () => 2,\n getFontScale: () => 1,\n getPixelSizeForLayoutSize: (size: number) => size * 2,\n roundToNearestPixel: (size: number) => Math.round(size * 2) / 2,\n};\n\n// Animated mock (basic - reanimated provides more complete implementation)\nconst Animated = {\n View: createMockComponent('Animated.View'),\n Text: createMockComponent('Animated.Text'),\n Image: createMockComponent('Animated.Image'),\n ScrollView: createMockComponent('Animated.ScrollView'),\n Value: class {\n _value: number;\n constructor(value: number) {\n this._value = value;\n }\n },\n timing: jest.fn(() => ({ start: jest.fn() })),\n spring: jest.fn(() => ({ start: jest.fn() })),\n createAnimatedComponent: (Component: React.ComponentType) => Component,\n};\n\n// Keyboard mock\nconst Keyboard = {\n dismiss: jest.fn(),\n addListener: jest.fn(() => ({ remove: jest.fn() })),\n removeListener: jest.fn(),\n isVisible: jest.fn(() => false),\n};\n\n// Linking mock\nconst Linking = {\n openURL: jest.fn().mockResolvedValue(true),\n canOpenURL: jest.fn().mockResolvedValue(true),\n getInitialURL: jest.fn().mockResolvedValue(null),\n addEventListener: jest.fn(() => ({ remove: jest.fn() })),\n};\n\n// AppState mock\nconst AppState = {\n currentState: 'active',\n addEventListener: jest.fn(() => ({ remove: jest.fn() })),\n removeEventListener: jest.fn(),\n};\n\n// AccessibilityInfo mock\nconst AccessibilityInfo = {\n isReduceMotionEnabled: jest.fn().mockResolvedValue(false),\n isScreenReaderEnabled: jest.fn().mockResolvedValue(false),\n addEventListener: jest.fn(() => ({ remove: jest.fn() })),\n};\n\n// NativeEventEmitter mock\nclass NativeEventEmitter {\n addListener = jest.fn(() => ({ remove: jest.fn() }));\n removeListener = jest.fn();\n removeAllListeners = jest.fn();\n}\n\n// Appearance mock\nconst Appearance = {\n getColorScheme: () => 'light' as const,\n addChangeListener: jest.fn(() => ({ remove: jest.fn() })),\n removeChangeListener: jest.fn(),\n};\n\n// useColorScheme hook mock\nconst useColorScheme = () => 'light' as const;\n\n// useWindowDimensions hook mock\nconst useWindowDimensions = () => ({\n width: SCREEN_WIDTH,\n height: SCREEN_HEIGHT,\n scale: 2,\n fontScale: 1,\n});\n\n// Default export for compatibility\nconst ReactNative = {\n View,\n Text,\n Image,\n ScrollView,\n TextInput,\n TouchableOpacity,\n TouchableHighlight,\n TouchableWithoutFeedback,\n Pressable,\n FlatList,\n SectionList,\n ActivityIndicator,\n SafeAreaView,\n Modal,\n Switch,\n RefreshControl,\n KeyboardAvoidingView,\n StyleSheet,\n Platform,\n Dimensions,\n PixelRatio,\n Animated,\n Keyboard,\n Linking,\n AppState,\n AccessibilityInfo,\n NativeEventEmitter,\n Appearance,\n useColorScheme,\n useWindowDimensions,\n};\n\n// Named exports\nexport {\n AccessibilityInfo,\n ActivityIndicator,\n Animated,\n Appearance,\n AppState,\n Dimensions,\n FlatList,\n Image,\n Keyboard,\n KeyboardAvoidingView,\n Linking,\n Modal,\n NativeEventEmitter,\n PixelRatio,\n Platform,\n Pressable,\n RefreshControl,\n SafeAreaView,\n ScrollView,\n SectionList,\n StyleSheet,\n Switch,\n Text,\n TextInput,\n TouchableHighlight,\n TouchableOpacity,\n TouchableWithoutFeedback,\n useColorScheme,\n useWindowDimensions,\n View,\n};\n\nexport default ReactNative;\n"],"mappings":";;;AAcA,OAAO,UAAU;AAYjB,SAAS,oBAAoB,MAAc;CACzC,MAAM,gBAAgB,YAAyC,EAAE,UAAU,GAAG,SAAS,QAAQ;EAC7F,OAAO,MAAM,cAAc,MAAM;GAAE,GAAG;GAAO;GAAK,EAAE,SAAsB;GAC1E;CACF,cAAc,cAAc;CAC5B,OAAO;;AAIT,MAAM,OAAO,oBAAoB,OAAO;AACxC,MAAM,OAAO,oBAAoB,OAAO;AACxC,MAAM,QAAQ,oBAAoB,QAAQ;AAC1C,MAAM,aAAa,oBAAoB,aAAa;AACpD,MAAM,YAAY,oBAAoB,YAAY;AAClD,MAAM,mBAAmB,oBAAoB,mBAAmB;AAChE,MAAM,qBAAqB,oBAAoB,qBAAqB;AACpE,MAAM,2BAA2B,oBAAoB,2BAA2B;AAChF,MAAM,YAAY,oBAAoB,YAAY;AAClD,MAAM,WAAW,oBAAoB,WAAW;AAChD,MAAM,cAAc,oBAAoB,cAAc;AACtD,MAAM,oBAAoB,oBAAoB,oBAAoB;AAClE,MAAM,eAAe,oBAAoB,eAAe;AACxD,MAAM,QAAQ,oBAAoB,QAAQ;AAC1C,MAAM,SAAS,oBAAoB,SAAS;AAC5C,MAAM,iBAAiB,oBAAoB,iBAAiB;AAC5D,MAAM,uBAAuB,oBAAoB,uBAAuB;AAGxE,MAAM,aAAa;CACjB,SAA2C,WAAiB;CAC5D,UAAU,UAAqC;EAC7C,IAAI,MAAM,QAAQ,MAAM,EACtB,OAAO,OAAO,OAAO,EAAE,EAAE,GAAG,MAAM;EAEpC,OAAO,SAAS,EAAE;;CAEpB,UAAU,QAAgB,WAA6B,CAAC,QAAQ,OAAO;CACvE,eAAe;CACf,cAAc;EAAE,UAAU;EAAY,MAAM;EAAG,OAAO;EAAG,KAAK;EAAG,QAAQ;EAAG;CAC5E,oBAAoB;EAAE,UAAU;EAAY,MAAM;EAAG,OAAO;EAAG,KAAK;EAAG,QAAQ;EAAG;CACnF;AAGD,MAAM,WAAW;CACf,IAAI;CACJ,SAAS;CACT,SAA4C,WAAsC;EAChF,OAAQ,OAAO,OAAO,OAAO;;CAE/B,MAAM;CACN,OAAO;CACP,UAAU;CACV,WAAW;CACX,WAAW,EACT,oBAAoB;EAAE,OAAO;EAAG,OAAO;EAAI,OAAO;EAAG,EACtD;CACF;AAGD,MAAM,eAAe;AACrB,MAAM,gBAAgB;AAEtB,MAAM,aAAa;CACjB,MAAM,UAA+B;EACnC,OAAO;EACP,QAAQ;EACR,OAAO;EACP,WAAW;EACZ;CACD,KAAK,KAAK,IAAI;CACd,kBAAkB,KAAK,UAAU,EAAE,QAAQ,KAAK,IAAI,EAAE,EAAE;CACxD,qBAAqB,KAAK,IAAI;CAC/B;AAGD,MAAM,aAAa;CACjB,WAAW;CACX,oBAAoB;CACpB,4BAA4B,SAAiB,OAAO;CACpD,sBAAsB,SAAiB,KAAK,MAAM,OAAO,EAAE,GAAG;CAC/D;AAGD,MAAM,WAAW;CACf,MAAM,oBAAoB,gBAAgB;CAC1C,MAAM,oBAAoB,gBAAgB;CAC1C,OAAO,oBAAoB,iBAAiB;CAC5C,YAAY,oBAAoB,sBAAsB;CACtD,OAAO,MAAM;EACX;EACA,YAAY,OAAe;GACzB,KAAK,SAAS;;;CAGlB,QAAQ,KAAK,UAAU,EAAE,OAAO,KAAK,IAAI,EAAE,EAAE;CAC7C,QAAQ,KAAK,UAAU,EAAE,OAAO,KAAK,IAAI,EAAE,EAAE;CAC7C,0BAA0B,cAAmC;CAC9D;AAGD,MAAM,WAAW;CACf,SAAS,KAAK,IAAI;CAClB,aAAa,KAAK,UAAU,EAAE,QAAQ,KAAK,IAAI,EAAE,EAAE;CACnD,gBAAgB,KAAK,IAAI;CACzB,WAAW,KAAK,SAAS,MAAM;CAChC;AAGD,MAAM,UAAU;CACd,SAAS,KAAK,IAAI,CAAC,kBAAkB,KAAK;CAC1C,YAAY,KAAK,IAAI,CAAC,kBAAkB,KAAK;CAC7C,eAAe,KAAK,IAAI,CAAC,kBAAkB,KAAK;CAChD,kBAAkB,KAAK,UAAU,EAAE,QAAQ,KAAK,IAAI,EAAE,EAAE;CACzD;AAGD,MAAM,WAAW;CACf,cAAc;CACd,kBAAkB,KAAK,UAAU,EAAE,QAAQ,KAAK,IAAI,EAAE,EAAE;CACxD,qBAAqB,KAAK,IAAI;CAC/B;AAGD,MAAM,oBAAoB;CACxB,uBAAuB,KAAK,IAAI,CAAC,kBAAkB,MAAM;CACzD,uBAAuB,KAAK,IAAI,CAAC,kBAAkB,MAAM;CACzD,kBAAkB,KAAK,UAAU,EAAE,QAAQ,KAAK,IAAI,EAAE,EAAE;CACzD;AAGD,IAAM,qBAAN,MAAyB;CACvB,cAAc,KAAK,UAAU,EAAE,QAAQ,KAAK,IAAI,EAAE,EAAE;CACpD,iBAAiB,KAAK,IAAI;CAC1B,qBAAqB,KAAK,IAAI;;AAIhC,MAAM,aAAa;CACjB,sBAAsB;CACtB,mBAAmB,KAAK,UAAU,EAAE,QAAQ,KAAK,IAAI,EAAE,EAAE;CACzD,sBAAsB,KAAK,IAAI;CAChC;AAGD,MAAM,uBAAuB;AAG7B,MAAM,6BAA6B;CACjC,OAAO;CACP,QAAQ;CACR,OAAO;CACP,WAAW;CACZ;AAGD,MAAM,cAAc;CAClB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACD"}
1
+ {"version":3,"file":"react-native.js","names":[],"sources":["../../../src/jest/mocks/react-native.tsx"],"sourcesContent":["/**\n * Jest mock for react-native core components.\n *\n * Provides simple mock implementations for React Native components\n * that work in a Jest environment without native modules.\n */\n\n/// <reference types=\"jest\" />\n\nimport type { ReactNode } from 'react';\nimport React, { forwardRef } from 'react';\n\n// Set up React Native globals\ndeclare const global: { __DEV__?: boolean };\nglobal.__DEV__ = true;\n\ninterface MockComponentProps {\n children?: ReactNode;\n style?: object;\n testID?: string;\n accessibilityRole?: string;\n accessibilityLabel?: string;\n [key: string]: unknown;\n}\n\n// Create a simple mock component factory\nfunction createMockComponent(name: string) {\n const MockComponent = forwardRef<unknown, MockComponentProps>(({ children, ...props }, ref) => {\n return React.createElement(name, { ...props, ref }, children as ReactNode);\n });\n MockComponent.displayName = name;\n return MockComponent;\n}\n\n// Component mocks\nconst View = createMockComponent('View');\nconst Text = createMockComponent('Text');\nconst Image = createMockComponent('Image');\nconst ScrollView = createMockComponent('ScrollView');\nconst TextInput = createMockComponent('TextInput');\nconst TouchableOpacity = createMockComponent('TouchableOpacity');\nconst TouchableHighlight = createMockComponent('TouchableHighlight');\nconst TouchableWithoutFeedback = createMockComponent('TouchableWithoutFeedback');\nconst Pressable = createMockComponent('Pressable');\nconst FlatList = createMockComponent('FlatList');\nconst SectionList = createMockComponent('SectionList');\nconst ActivityIndicator = createMockComponent('ActivityIndicator');\nconst SafeAreaView = createMockComponent('SafeAreaView');\nconst Modal = createMockComponent('Modal');\nconst Switch = createMockComponent('Switch');\nconst RefreshControl = createMockComponent('RefreshControl');\nconst KeyboardAvoidingView = createMockComponent('KeyboardAvoidingView');\n\n// StyleSheet mock\nconst StyleSheet = {\n create: <T extends Record<string, object>>(styles: T): T => styles,\n flatten: (style: object | object[]): object => {\n if (Array.isArray(style)) {\n return Object.assign({}, ...style);\n }\n return style || {};\n },\n compose: (style1: object, style2: object): object[] => [style1, style2],\n hairlineWidth: 1,\n absoluteFill: { position: 'absolute', left: 0, right: 0, top: 0, bottom: 0 },\n absoluteFillObject: { position: 'absolute', left: 0, right: 0, top: 0, bottom: 0 },\n};\n\n// Platform mock\nconst Platform = {\n OS: 'ios' as const,\n Version: 17,\n select: <T extends Record<string, unknown>>(config: T): T[keyof T] | undefined => {\n return (config.ios ?? config.default) as T[keyof T] | undefined;\n },\n isTV: false,\n isPad: false,\n isVision: false,\n isTesting: true,\n constants: {\n reactNativeVersion: { major: 0, minor: 83, patch: 0 },\n },\n};\n\n// Dimensions mock\nconst SCREEN_WIDTH = 375;\nconst SCREEN_HEIGHT = 812;\n\nconst Dimensions = {\n get: (_dim: 'window' | 'screen') => ({\n width: SCREEN_WIDTH,\n height: SCREEN_HEIGHT,\n scale: 2,\n fontScale: 1,\n }),\n set: jest.fn(),\n addEventListener: jest.fn(() => ({ remove: jest.fn() })),\n removeEventListener: jest.fn(),\n};\n\n// PixelRatio mock\nconst PixelRatio = {\n get: () => 2,\n getFontScale: () => 1,\n getPixelSizeForLayoutSize: (size: number) => size * 2,\n roundToNearestPixel: (size: number) => Math.round(size * 2) / 2,\n};\n\n// Animated mock (basic - reanimated provides more complete implementation)\nconst Animated = {\n View: createMockComponent('Animated.View'),\n Text: createMockComponent('Animated.Text'),\n Image: createMockComponent('Animated.Image'),\n ScrollView: createMockComponent('Animated.ScrollView'),\n Value: class {\n _value: number;\n constructor(value: number) {\n this._value = value;\n }\n },\n timing: jest.fn(() => ({ start: jest.fn() })),\n spring: jest.fn(() => ({ start: jest.fn() })),\n createAnimatedComponent: (Component: React.ComponentType) => Component,\n};\n\n// Keyboard mock\nconst Keyboard = {\n dismiss: jest.fn(),\n addListener: jest.fn(() => ({ remove: jest.fn() })),\n removeListener: jest.fn(),\n isVisible: jest.fn(() => false),\n};\n\nconst BackHandler = {\n addEventListener: jest.fn(() => ({ remove: jest.fn() })),\n exitApp: jest.fn(),\n};\n\nconst I18nManager = {\n isRTL: false,\n allowRTL: jest.fn(),\n forceRTL: jest.fn(),\n getConstants: () => ({ isRTL: false }),\n};\n\n// Linking mock\nconst Linking = {\n openURL: jest.fn().mockResolvedValue(true),\n canOpenURL: jest.fn().mockResolvedValue(true),\n getInitialURL: jest.fn().mockResolvedValue(null),\n addEventListener: jest.fn(() => ({ remove: jest.fn() })),\n};\n\n// AppState mock\nconst AppState = {\n currentState: 'active',\n addEventListener: jest.fn(() => ({ remove: jest.fn() })),\n removeEventListener: jest.fn(),\n};\n\n// AccessibilityInfo mock\nconst AccessibilityInfo = {\n isReduceMotionEnabled: jest.fn().mockResolvedValue(false),\n isScreenReaderEnabled: jest.fn().mockResolvedValue(false),\n addEventListener: jest.fn(() => ({ remove: jest.fn() })),\n};\n\n// NativeEventEmitter mock\nclass NativeEventEmitter {\n addListener = jest.fn(() => ({ remove: jest.fn() }));\n removeListener = jest.fn();\n removeAllListeners = jest.fn();\n}\n\n// Appearance mock\nconst Appearance = {\n getColorScheme: () => 'light' as const,\n addChangeListener: jest.fn(() => ({ remove: jest.fn() })),\n removeChangeListener: jest.fn(),\n};\n\n// useColorScheme hook mock\nconst useColorScheme = () => 'light' as const;\n\n// useWindowDimensions hook mock\nconst useWindowDimensions = () => ({\n width: SCREEN_WIDTH,\n height: SCREEN_HEIGHT,\n scale: 2,\n fontScale: 1,\n});\n\n// Default export for compatibility\nconst ReactNative = {\n View,\n Text,\n Image,\n ScrollView,\n TextInput,\n TouchableOpacity,\n TouchableHighlight,\n TouchableWithoutFeedback,\n Pressable,\n FlatList,\n SectionList,\n ActivityIndicator,\n SafeAreaView,\n Modal,\n Switch,\n RefreshControl,\n KeyboardAvoidingView,\n StyleSheet,\n Platform,\n Dimensions,\n PixelRatio,\n Animated,\n BackHandler,\n Keyboard,\n I18nManager,\n Linking,\n AppState,\n AccessibilityInfo,\n NativeEventEmitter,\n Appearance,\n useColorScheme,\n useWindowDimensions,\n};\n\n// Named exports\nexport {\n AccessibilityInfo,\n ActivityIndicator,\n Animated,\n Appearance,\n AppState,\n BackHandler,\n Dimensions,\n FlatList,\n I18nManager,\n Image,\n Keyboard,\n KeyboardAvoidingView,\n Linking,\n Modal,\n NativeEventEmitter,\n PixelRatio,\n Platform,\n Pressable,\n RefreshControl,\n SafeAreaView,\n ScrollView,\n SectionList,\n StyleSheet,\n Switch,\n Text,\n TextInput,\n TouchableHighlight,\n TouchableOpacity,\n TouchableWithoutFeedback,\n useColorScheme,\n useWindowDimensions,\n View,\n};\n\nexport default ReactNative;\n"],"mappings":"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"}
@@ -4,6 +4,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
4
4
  var styles_exports = /* @__PURE__ */ require("../../_virtual/_rolldown/runtime.cjs").__exportAll({
5
5
  avatarStyles: () => avatarStyles,
6
6
  badgeStyles: () => badgeStyles,
7
+ bottomSheetStyles: () => bottomSheetStyles,
7
8
  buttonStyles: () => buttonStyles,
8
9
  checkboxStyles: () => checkboxStyles,
9
10
  chipStyles: () => chipStyles,
@@ -11,7 +12,9 @@ var styles_exports = /* @__PURE__ */ require("../../_virtual/_rolldown/runtime.c
11
12
  iconButtonStyles: () => iconButtonStyles,
12
13
  inputStyles: () => inputStyles,
13
14
  linkStyles: () => linkStyles,
15
+ popoverStyles: () => popoverStyles,
14
16
  radioStyles: () => radioStyles,
17
+ scrimStyles: () => scrimStyles,
15
18
  styles: () => styles,
16
19
  switchStyles: () => switchStyles,
17
20
  tabsStyles: () => tabsStyles,
@@ -319,6 +322,60 @@ const iconButtonStyles = createComponentStyles({
319
322
  color: "#000000"
320
323
  }
321
324
  });
325
+ const bottomSheetStyles = createComponentStyles({
326
+ root: {
327
+ backgroundColor: "#ffffff",
328
+ backgroundBlurColor: "#ffffff",
329
+ backgroundBlurRadius: 0,
330
+ borderColor: "#e0e0e0",
331
+ borderWidth: 1,
332
+ borderRadius: 16,
333
+ paddingHorizontal: 16,
334
+ paddingVertical: 8,
335
+ marginHorizontal: 8,
336
+ marginBottom: 8
337
+ },
338
+ header: {
339
+ fontFamily: "YahooProductSans-Medium",
340
+ fontSize: 16,
341
+ letterSpacing: 0,
342
+ lineHeight: 20,
343
+ color: "#000000"
344
+ },
345
+ handleIndicator: { backgroundColor: "#999999" }
346
+ });
347
+ const scrimStyles = createComponentStyles({ root: {
348
+ backgroundColor: "#000000",
349
+ opacity: .2,
350
+ backgroundBlurRadius: 0
351
+ } });
352
+ const popoverStyles = createComponentStyles({
353
+ root: { boxShadow: "0px 8px 16px rgba(0, 0, 0, 0.12)" },
354
+ blur: { backgroundBlurRadius: 0 },
355
+ closeIcon: {
356
+ fontSize: 16,
357
+ iconSizeToken: "sm",
358
+ lineHeight: 16,
359
+ color: "#000000"
360
+ },
361
+ closeIconContainer: { padding: 8 },
362
+ contentWrapper: {
363
+ gap: 8,
364
+ paddingHorizontal: 16,
365
+ paddingVertical: 16
366
+ },
367
+ svgBase: {
368
+ borderRadius: 16,
369
+ backgroundBlurColor: "#ffffff",
370
+ backgroundBlurRadius: 0,
371
+ backgroundColor: "#ffffff",
372
+ backgroundOpacity: 1
373
+ },
374
+ svgBorder: {
375
+ borderColor: "#e0e0e0",
376
+ borderWidth: 1
377
+ }
378
+ });
322
379
  const tabsStyles = createComponentStyles({ root: {
323
380
  flexDirection: "row",
324
381
  alignItems: "center",
@@ -362,6 +419,7 @@ const toastStyles = createComponentStyles({
362
419
  //#endregion
363
420
  exports.avatarStyles = avatarStyles;
364
421
  exports.badgeStyles = badgeStyles;
422
+ exports.bottomSheetStyles = bottomSheetStyles;
365
423
  exports.buttonStyles = buttonStyles;
366
424
  exports.checkboxStyles = checkboxStyles;
367
425
  exports.chipStyles = chipStyles;
@@ -369,7 +427,9 @@ exports.dividerStyles = dividerStyles;
369
427
  exports.iconButtonStyles = iconButtonStyles;
370
428
  exports.inputStyles = inputStyles;
371
429
  exports.linkStyles = linkStyles;
430
+ exports.popoverStyles = popoverStyles;
372
431
  exports.radioStyles = radioStyles;
432
+ exports.scrimStyles = scrimStyles;
373
433
  exports.styles = styles;
374
434
  Object.defineProperty(exports, "styles_exports", {
375
435
  enumerable: true,
@@ -1,6 +1,6 @@
1
1
 
2
2
  declare namespace styles_d_exports {
3
- export { StyleProps, avatarStyles, badgeStyles, buttonStyles, checkboxStyles, chipStyles, dividerStyles, iconButtonStyles, inputStyles, linkStyles, radioStyles, styles, switchStyles, tabsStyles, textStyles, toastStyles };
3
+ export { StyleProps, avatarStyles, badgeStyles, bottomSheetStyles, buttonStyles, checkboxStyles, chipStyles, dividerStyles, iconButtonStyles, inputStyles, linkStyles, popoverStyles, radioStyles, scrimStyles, styles, switchStyles, tabsStyles, textStyles, toastStyles };
4
4
  }
5
5
  /**
6
6
  * Jest mock for generated/styles.
@@ -21,6 +21,9 @@ declare const dividerStyles: Record<string, unknown>;
21
21
  declare const linkStyles: Record<string, unknown>;
22
22
  declare const radioStyles: Record<string, unknown>;
23
23
  declare const iconButtonStyles: Record<string, unknown>;
24
+ declare const bottomSheetStyles: Record<string, unknown>;
25
+ declare const scrimStyles: Record<string, unknown>;
26
+ declare const popoverStyles: Record<string, unknown>;
24
27
  declare const tabsStyles: Record<string, unknown>;
25
28
  declare const toastStyles: Record<string, unknown>;
26
29
  interface StyleProps {
@@ -32,5 +35,5 @@ interface StyleProps {
32
35
  [key: string]: unknown;
33
36
  }
34
37
  //#endregion
35
- export { StyleProps, avatarStyles, badgeStyles, buttonStyles, checkboxStyles, chipStyles, dividerStyles, iconButtonStyles, inputStyles, linkStyles, radioStyles, styles, styles_d_exports, switchStyles, tabsStyles, textStyles, toastStyles };
38
+ export { StyleProps, avatarStyles, badgeStyles, bottomSheetStyles, buttonStyles, checkboxStyles, chipStyles, dividerStyles, iconButtonStyles, inputStyles, linkStyles, popoverStyles, radioStyles, scrimStyles, styles, styles_d_exports, switchStyles, tabsStyles, textStyles, toastStyles };
36
39
  //# sourceMappingURL=styles.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"styles.d.cts","names":[],"sources":["../../../src/jest/mocks/styles.ts"],"mappings":";;;;;;;;;;cAyGa,MAAA,EAAM,MAAA;AAAA,cAKN,YAAA,EAAY,MAAA;AAAA,cAgCZ,UAAA,EAAU,MAAA;AAAA,cAUV,WAAA,EAAW,MAAA;AAAA,cAuCX,cAAA,EAAc,MAAA;AAAA,cAwBd,YAAA,EAAY,MAAA;AAAA,cA4BZ,YAAA,EAAY,MAAA;AAAA,cAqBZ,WAAA,EAAW,MAAA;AAAA,cAmBX,UAAA,EAAU,MAAA;AAAA,cAsBV,aAAA,EAAa,MAAA;AAAA,cAiBb,UAAA,EAAU,MAAA;AAAA,cAgBV,WAAA,EAAW,MAAA;AAAA,cA8BX,gBAAA,EAAgB,MAAA;AAAA,cAehB,UAAA,EAAU,MAAA;AAAA,cASV,WAAA,EAAW,MAAA;AAAA,UAuCP,UAAA;EACf,KAAA;EACA,eAAA;EACA,WAAA;EACA,WAAA;EACA,YAAA;EAAA,CACC,GAAA;AAAA"}
1
+ {"version":3,"file":"styles.d.cts","names":[],"sources":["../../../src/jest/mocks/styles.ts"],"mappings":";;;;;;;;;;cAyGa,MAAA,EAAM,MAAA;AAAA,cAKN,YAAA,EAAY,MAAA;AAAA,cAgCZ,UAAA,EAAU,MAAA;AAAA,cAUV,WAAA,EAAW,MAAA;AAAA,cAuCX,cAAA,EAAc,MAAA;AAAA,cAwBd,YAAA,EAAY,MAAA;AAAA,cA4BZ,YAAA,EAAY,MAAA;AAAA,cAqBZ,WAAA,EAAW,MAAA;AAAA,cAmBX,UAAA,EAAU,MAAA;AAAA,cAsBV,aAAA,EAAa,MAAA;AAAA,cAiBb,UAAA,EAAU,MAAA;AAAA,cAgBV,WAAA,EAAW,MAAA;AAAA,cA8BX,gBAAA,EAAgB,MAAA;AAAA,cAehB,iBAAA,EAAiB,MAAA;AAAA,cA0BjB,WAAA,EAAW,MAAA;AAAA,cASX,aAAA,EAAa,MAAA;AAAA,cAmCb,UAAA,EAAU,MAAA;AAAA,cASV,WAAA,EAAW,MAAA;AAAA,UAuCP,UAAA;EACf,KAAA;EACA,eAAA;EACA,WAAA;EACA,WAAA;EACA,YAAA;EAAA,CACC,GAAA;AAAA"}
@@ -1,6 +1,6 @@
1
1
 
2
2
  declare namespace styles_d_exports {
3
- export { StyleProps, avatarStyles, badgeStyles, buttonStyles, checkboxStyles, chipStyles, dividerStyles, iconButtonStyles, inputStyles, linkStyles, radioStyles, styles, switchStyles, tabsStyles, textStyles, toastStyles };
3
+ export { StyleProps, avatarStyles, badgeStyles, bottomSheetStyles, buttonStyles, checkboxStyles, chipStyles, dividerStyles, iconButtonStyles, inputStyles, linkStyles, popoverStyles, radioStyles, scrimStyles, styles, switchStyles, tabsStyles, textStyles, toastStyles };
4
4
  }
5
5
  /**
6
6
  * Jest mock for generated/styles.
@@ -21,6 +21,9 @@ declare const dividerStyles: Record<string, unknown>;
21
21
  declare const linkStyles: Record<string, unknown>;
22
22
  declare const radioStyles: Record<string, unknown>;
23
23
  declare const iconButtonStyles: Record<string, unknown>;
24
+ declare const bottomSheetStyles: Record<string, unknown>;
25
+ declare const scrimStyles: Record<string, unknown>;
26
+ declare const popoverStyles: Record<string, unknown>;
24
27
  declare const tabsStyles: Record<string, unknown>;
25
28
  declare const toastStyles: Record<string, unknown>;
26
29
  interface StyleProps {
@@ -32,5 +35,5 @@ interface StyleProps {
32
35
  [key: string]: unknown;
33
36
  }
34
37
  //#endregion
35
- export { StyleProps, avatarStyles, badgeStyles, buttonStyles, checkboxStyles, chipStyles, dividerStyles, iconButtonStyles, inputStyles, linkStyles, radioStyles, styles, styles_d_exports, switchStyles, tabsStyles, textStyles, toastStyles };
38
+ export { StyleProps, avatarStyles, badgeStyles, bottomSheetStyles, buttonStyles, checkboxStyles, chipStyles, dividerStyles, iconButtonStyles, inputStyles, linkStyles, popoverStyles, radioStyles, scrimStyles, styles, styles_d_exports, switchStyles, tabsStyles, textStyles, toastStyles };
36
39
  //# sourceMappingURL=styles.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"styles.d.ts","names":[],"sources":["../../../src/jest/mocks/styles.ts"],"mappings":";;;;;;;;;;cAyGa,MAAA,EAAM,MAAA;AAAA,cAKN,YAAA,EAAY,MAAA;AAAA,cAgCZ,UAAA,EAAU,MAAA;AAAA,cAUV,WAAA,EAAW,MAAA;AAAA,cAuCX,cAAA,EAAc,MAAA;AAAA,cAwBd,YAAA,EAAY,MAAA;AAAA,cA4BZ,YAAA,EAAY,MAAA;AAAA,cAqBZ,WAAA,EAAW,MAAA;AAAA,cAmBX,UAAA,EAAU,MAAA;AAAA,cAsBV,aAAA,EAAa,MAAA;AAAA,cAiBb,UAAA,EAAU,MAAA;AAAA,cAgBV,WAAA,EAAW,MAAA;AAAA,cA8BX,gBAAA,EAAgB,MAAA;AAAA,cAehB,UAAA,EAAU,MAAA;AAAA,cASV,WAAA,EAAW,MAAA;AAAA,UAuCP,UAAA;EACf,KAAA;EACA,eAAA;EACA,WAAA;EACA,WAAA;EACA,YAAA;EAAA,CACC,GAAA;AAAA"}
1
+ {"version":3,"file":"styles.d.ts","names":[],"sources":["../../../src/jest/mocks/styles.ts"],"mappings":";;;;;;;;;;cAyGa,MAAA,EAAM,MAAA;AAAA,cAKN,YAAA,EAAY,MAAA;AAAA,cAgCZ,UAAA,EAAU,MAAA;AAAA,cAUV,WAAA,EAAW,MAAA;AAAA,cAuCX,cAAA,EAAc,MAAA;AAAA,cAwBd,YAAA,EAAY,MAAA;AAAA,cA4BZ,YAAA,EAAY,MAAA;AAAA,cAqBZ,WAAA,EAAW,MAAA;AAAA,cAmBX,UAAA,EAAU,MAAA;AAAA,cAsBV,aAAA,EAAa,MAAA;AAAA,cAiBb,UAAA,EAAU,MAAA;AAAA,cAgBV,WAAA,EAAW,MAAA;AAAA,cA8BX,gBAAA,EAAgB,MAAA;AAAA,cAehB,iBAAA,EAAiB,MAAA;AAAA,cA0BjB,WAAA,EAAW,MAAA;AAAA,cASX,aAAA,EAAa,MAAA;AAAA,cAmCb,UAAA,EAAU,MAAA;AAAA,cASV,WAAA,EAAW,MAAA;AAAA,UAuCP,UAAA;EACf,KAAA;EACA,eAAA;EACA,WAAA;EACA,WAAA;EACA,YAAA;EAAA,CACC,GAAA;AAAA"}
@@ -4,6 +4,7 @@ import { __exportAll } from "../../_virtual/_rolldown/runtime.js";
4
4
  var styles_exports = /* @__PURE__ */ __exportAll({
5
5
  avatarStyles: () => avatarStyles,
6
6
  badgeStyles: () => badgeStyles,
7
+ bottomSheetStyles: () => bottomSheetStyles,
7
8
  buttonStyles: () => buttonStyles,
8
9
  checkboxStyles: () => checkboxStyles,
9
10
  chipStyles: () => chipStyles,
@@ -11,7 +12,9 @@ var styles_exports = /* @__PURE__ */ __exportAll({
11
12
  iconButtonStyles: () => iconButtonStyles,
12
13
  inputStyles: () => inputStyles,
13
14
  linkStyles: () => linkStyles,
15
+ popoverStyles: () => popoverStyles,
14
16
  radioStyles: () => radioStyles,
17
+ scrimStyles: () => scrimStyles,
15
18
  styles: () => styles,
16
19
  switchStyles: () => switchStyles,
17
20
  tabsStyles: () => tabsStyles,
@@ -319,6 +322,60 @@ const iconButtonStyles = createComponentStyles({
319
322
  color: "#000000"
320
323
  }
321
324
  });
325
+ const bottomSheetStyles = createComponentStyles({
326
+ root: {
327
+ backgroundColor: "#ffffff",
328
+ backgroundBlurColor: "#ffffff",
329
+ backgroundBlurRadius: 0,
330
+ borderColor: "#e0e0e0",
331
+ borderWidth: 1,
332
+ borderRadius: 16,
333
+ paddingHorizontal: 16,
334
+ paddingVertical: 8,
335
+ marginHorizontal: 8,
336
+ marginBottom: 8
337
+ },
338
+ header: {
339
+ fontFamily: "YahooProductSans-Medium",
340
+ fontSize: 16,
341
+ letterSpacing: 0,
342
+ lineHeight: 20,
343
+ color: "#000000"
344
+ },
345
+ handleIndicator: { backgroundColor: "#999999" }
346
+ });
347
+ const scrimStyles = createComponentStyles({ root: {
348
+ backgroundColor: "#000000",
349
+ opacity: .2,
350
+ backgroundBlurRadius: 0
351
+ } });
352
+ const popoverStyles = createComponentStyles({
353
+ root: { boxShadow: "0px 8px 16px rgba(0, 0, 0, 0.12)" },
354
+ blur: { backgroundBlurRadius: 0 },
355
+ closeIcon: {
356
+ fontSize: 16,
357
+ iconSizeToken: "sm",
358
+ lineHeight: 16,
359
+ color: "#000000"
360
+ },
361
+ closeIconContainer: { padding: 8 },
362
+ contentWrapper: {
363
+ gap: 8,
364
+ paddingHorizontal: 16,
365
+ paddingVertical: 16
366
+ },
367
+ svgBase: {
368
+ borderRadius: 16,
369
+ backgroundBlurColor: "#ffffff",
370
+ backgroundBlurRadius: 0,
371
+ backgroundColor: "#ffffff",
372
+ backgroundOpacity: 1
373
+ },
374
+ svgBorder: {
375
+ borderColor: "#e0e0e0",
376
+ borderWidth: 1
377
+ }
378
+ });
322
379
  const tabsStyles = createComponentStyles({ root: {
323
380
  flexDirection: "row",
324
381
  alignItems: "center",
@@ -360,6 +417,6 @@ const toastStyles = createComponentStyles({
360
417
  }
361
418
  });
362
419
  //#endregion
363
- export { avatarStyles, badgeStyles, buttonStyles, checkboxStyles, chipStyles, dividerStyles, iconButtonStyles, inputStyles, linkStyles, radioStyles, styles, styles_exports, switchStyles, tabsStyles, textStyles, toastStyles };
420
+ export { avatarStyles, badgeStyles, bottomSheetStyles, buttonStyles, checkboxStyles, chipStyles, dividerStyles, iconButtonStyles, inputStyles, linkStyles, popoverStyles, radioStyles, scrimStyles, styles, styles_exports, switchStyles, tabsStyles, textStyles, toastStyles };
364
421
 
365
422
  //# sourceMappingURL=styles.js.map