@yahoo/uds-mobile 2.21.2 → 2.23.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 (112) hide show
  1. package/README.md +2 -0
  2. package/dist/bin/automated-config/dist/generated/generatedConfigs.mjs +3127 -452
  3. package/dist/bin/uds-mobile.mjs +7 -7
  4. package/dist/components/IconButton.cjs +24 -21
  5. package/dist/components/IconButton.js +25 -22
  6. package/dist/components/IconButton.js.map +1 -1
  7. package/dist/components/Select/Select.cjs +194 -0
  8. package/dist/components/Select/Select.d.cts +47 -0
  9. package/dist/components/Select/Select.d.cts.map +1 -0
  10. package/dist/components/Select/Select.d.ts +47 -0
  11. package/dist/components/Select/Select.d.ts.map +1 -0
  12. package/dist/components/Select/Select.js +194 -0
  13. package/dist/components/Select/Select.js.map +1 -0
  14. package/dist/components/Select/SelectContent.cjs +148 -0
  15. package/dist/components/Select/SelectContent.d.cts +31 -0
  16. package/dist/components/Select/SelectContent.d.cts.map +1 -0
  17. package/dist/components/Select/SelectContent.d.ts +31 -0
  18. package/dist/components/Select/SelectContent.d.ts.map +1 -0
  19. package/dist/components/Select/SelectContent.js +147 -0
  20. package/dist/components/Select/SelectContent.js.map +1 -0
  21. package/dist/components/Select/SelectItem.cjs +138 -0
  22. package/dist/components/Select/SelectItem.d.cts +24 -0
  23. package/dist/components/Select/SelectItem.d.cts.map +1 -0
  24. package/dist/components/Select/SelectItem.d.ts +24 -0
  25. package/dist/components/Select/SelectItem.d.ts.map +1 -0
  26. package/dist/components/Select/SelectItem.js +137 -0
  27. package/dist/components/Select/SelectItem.js.map +1 -0
  28. package/dist/components/Select/SelectTrigger.cjs +140 -0
  29. package/dist/components/Select/SelectTrigger.d.cts +13 -0
  30. package/dist/components/Select/SelectTrigger.d.cts.map +1 -0
  31. package/dist/components/Select/SelectTrigger.d.ts +13 -0
  32. package/dist/components/Select/SelectTrigger.d.ts.map +1 -0
  33. package/dist/components/Select/SelectTrigger.js +139 -0
  34. package/dist/components/Select/SelectTrigger.js.map +1 -0
  35. package/dist/components/Select/index.cjs +8 -0
  36. package/dist/components/Select/index.d.cts +5 -0
  37. package/dist/components/Select/index.d.ts +5 -0
  38. package/dist/components/Select/index.js +5 -0
  39. package/dist/components/Select/selectContext.cjs +22 -0
  40. package/dist/components/Select/selectContext.d.cts +12 -0
  41. package/dist/components/Select/selectContext.d.cts.map +1 -0
  42. package/dist/components/Select/selectContext.d.ts +12 -0
  43. package/dist/components/Select/selectContext.d.ts.map +1 -0
  44. package/dist/components/Select/selectContext.js +19 -0
  45. package/dist/components/Select/selectContext.js.map +1 -0
  46. package/dist/components/Select/selectItemTheme.cjs +39 -0
  47. package/dist/components/Select/selectItemTheme.d.cts +19 -0
  48. package/dist/components/Select/selectItemTheme.d.cts.map +1 -0
  49. package/dist/components/Select/selectItemTheme.d.ts +19 -0
  50. package/dist/components/Select/selectItemTheme.d.ts.map +1 -0
  51. package/dist/components/Select/selectItemTheme.js +39 -0
  52. package/dist/components/Select/selectItemTheme.js.map +1 -0
  53. package/dist/components/Select/types.cjs +1 -0
  54. package/dist/components/Select/types.d.cts +43 -0
  55. package/dist/components/Select/types.d.cts.map +1 -0
  56. package/dist/components/Select/types.d.ts +43 -0
  57. package/dist/components/Select/types.d.ts.map +1 -0
  58. package/dist/components/Select/types.js +1 -0
  59. package/dist/components/Switch.cjs +34 -12
  60. package/dist/components/Switch.d.cts.map +1 -1
  61. package/dist/components/Switch.d.ts.map +1 -1
  62. package/dist/components/Switch.js +36 -14
  63. package/dist/components/Switch.js.map +1 -1
  64. package/dist/components/UDSGestureProvider.cjs +4 -0
  65. package/dist/components/UDSGestureProvider.d.cts +3 -0
  66. package/dist/components/UDSGestureProvider.d.ts +3 -0
  67. package/dist/components/UDSGestureProvider.js +3 -0
  68. package/dist/components/UDSProvider.cjs +10 -5
  69. package/dist/components/UDSProvider.d.cts +15 -7
  70. package/dist/components/UDSProvider.d.cts.map +1 -1
  71. package/dist/components/UDSProvider.d.ts +15 -7
  72. package/dist/components/UDSProvider.d.ts.map +1 -1
  73. package/dist/components/UDSProvider.js +10 -6
  74. package/dist/components/UDSProvider.js.map +1 -1
  75. package/dist/components/internal/Overlay/OverlayPortal.js.map +1 -1
  76. package/dist/components/internal/Overlay/index.cjs +2 -0
  77. package/dist/components/internal/Overlay/index.d.cts +2 -1
  78. package/dist/components/internal/Overlay/index.d.ts +2 -1
  79. package/dist/components/internal/Overlay/index.js +2 -1
  80. package/dist/components/internal/Overlay/measureTrigger.cjs +35 -0
  81. package/dist/components/internal/Overlay/measureTrigger.d.cts +9 -0
  82. package/dist/components/internal/Overlay/measureTrigger.d.cts.map +1 -0
  83. package/dist/components/internal/Overlay/measureTrigger.d.ts +9 -0
  84. package/dist/components/internal/Overlay/measureTrigger.d.ts.map +1 -0
  85. package/dist/components/internal/Overlay/measureTrigger.js +36 -0
  86. package/dist/components/internal/Overlay/measureTrigger.js.map +1 -0
  87. package/dist/jest/mocks/styles.cjs +68 -10
  88. package/dist/jest/mocks/styles.d.cts +5 -2
  89. package/dist/jest/mocks/styles.d.cts.map +1 -1
  90. package/dist/jest/mocks/styles.d.ts +5 -2
  91. package/dist/jest/mocks/styles.d.ts.map +1 -1
  92. package/dist/jest/mocks/styles.js +66 -11
  93. package/dist/jest/mocks/styles.js.map +1 -1
  94. package/dist/jest/mocks/unistyles.cjs +16 -1
  95. package/dist/jest/mocks/unistyles.d.cts +56 -2
  96. package/dist/jest/mocks/unistyles.d.cts.map +1 -1
  97. package/dist/jest/mocks/unistyles.d.ts +56 -2
  98. package/dist/jest/mocks/unistyles.d.ts.map +1 -1
  99. package/dist/jest/mocks/unistyles.js +16 -1
  100. package/dist/jest/mocks/unistyles.js.map +1 -1
  101. package/dist/portal.cjs +1 -1
  102. package/dist/portal.js +1 -1
  103. package/dist/portal.js.map +1 -1
  104. package/dist/types/dist/index.d.cts +28 -1
  105. package/dist/types/dist/index.d.cts.map +1 -1
  106. package/dist/types/dist/index.d.ts +28 -1
  107. package/dist/types/dist/index.d.ts.map +1 -1
  108. package/generated/styles.cjs +125 -0
  109. package/generated/styles.d.ts +39 -0
  110. package/generated/styles.mjs +125 -0
  111. package/generated/unistyles.d.ts +108 -8
  112. package/package.json +21 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Switch.js","names":["StyleSheet"],"sources":["../../src/components/Switch.tsx"],"sourcesContent":["import type { SwitchSize, UniversalSwitchProps } from '@yahoo/uds-types';\nimport type { Ref } from 'react';\nimport { memo, useCallback, useEffect, useMemo, useState } from 'react';\nimport type { AccessibilityProps, StyleProp, View, ViewProps, ViewStyle } from 'react-native';\nimport { AccessibilityInfo, Pressable } from 'react-native';\nimport Animated, { useAnimatedStyle, useDerivedValue, withTiming } from 'react-native-reanimated';\nimport { StyleSheet } from 'react-native-unistyles';\nimport { useAnimatedVariantColor } from 'react-native-unistyles/reanimated';\n\nimport { switchStyles } from '../../generated/styles';\nimport { FormLabel } from './FormLabel';\nimport type { IconSlotType } from './IconSlot';\nimport { IconSlot } from './IconSlot';\n\ninterface SwitchProps extends Omit<ViewProps, 'style'>, UniversalSwitchProps<IconSlotType> {\n /** Ref to the underlying View */\n ref?: Ref<View>;\n /** Callback when the switch value changes */\n onChange?: (value: boolean) => void;\n /** Whether the switch is disabled */\n disabled?: boolean;\n /** Whether the switch is required (shows asterisk with label) */\n required?: boolean;\n /** Accessibility hint describing what happens when activated */\n accessibilityHint?: AccessibilityProps['accessibilityHint'];\n}\n\nconst HANDLE_TRAVEL: Record<SwitchSize, number> = {\n md: 20,\n sm: 12,\n};\n\nconst ANIMATION_DURATION = 120;\n\n/**\n * **Switch component for toggling options**\n *\n * @description\n * A switch (also called a toggle) is a binary on/off input control.\n * It allows users to pick between two clearly opposite choices.\n *\n * @category Form\n * @platform mobile\n *\n * @example\n * ```tsx\n * import { Switch } from '@yahoo/uds-mobile/Switch';\n *\n * <Switch label=\"Notifications\" />\n * <Switch isOn={enabled} onChange={setEnabled} label=\"Dark mode\" />\n * <Switch onIcon=\"Check\" offIcon=\"Cross\" label=\"Sync\" />\n * ```\n *\n * @usage\n * - Settings: For toggling preferences on/off\n * - Feature flags: For enabling/disabling features\n * - Immediate effect toggles (no submit button needed)\n *\n * @accessibility\n * - Sets `accessibilityRole=\"switch\"` automatically\n * - Announces on/off state to screen readers\n * - Respects system reduce motion preference\n * - Supports `reduceMotion` prop to disable animations\n *\n * @see {@link Checkbox} for forms with submit actions\n * @see {@link Radio} for single-select options\n */\nconst Switch = memo(function Switch({\n isOn: isOnProp,\n defaultIsOn = false,\n onChange,\n label,\n labelPosition = 'start',\n size = 'md',\n onIcon,\n offIcon,\n disabled = false,\n required,\n accessibilityHint,\n reduceMotion = false,\n ref,\n ...viewProps\n}: SwitchProps) {\n const isControlled = isOnProp !== undefined;\n const [internalIsOn, setInternalIsOn] = useState(defaultIsOn);\n const [prefersReducedMotion, setPrefersReducedMotion] = useState(false);\n const isOn = isControlled ? isOnProp : internalIsOn;\n\n // Check system reduced motion preference\n useEffect(() => {\n const checkReducedMotion = async () => {\n const isReduceMotionEnabled = await AccessibilityInfo.isReduceMotionEnabled();\n setPrefersReducedMotion(isReduceMotionEnabled);\n };\n checkReducedMotion();\n\n const subscription = AccessibilityInfo.addEventListener(\n 'reduceMotionChanged',\n setPrefersReducedMotion,\n );\n return () => subscription.remove();\n }, []);\n\n const shouldReduceMotion = reduceMotion || prefersReducedMotion;\n const animationDuration = shouldReduceMotion ? 0 : ANIMATION_DURATION;\n\n const progress = useDerivedValue(\n () => withTiming(isOn ? 1 : 0, { duration: animationDuration }),\n [isOn, animationDuration],\n );\n\n const travelDistance = HANDLE_TRAVEL[size];\n\n const handlePress = useCallback(() => {\n if (disabled) {\n return;\n }\n\n const newValue = !isOn;\n\n if (!isControlled) {\n setInternalIsOn(newValue);\n }\n\n onChange?.(newValue);\n }, [disabled, isOn, isControlled, onChange]);\n\n switchStyles.useVariants({\n size,\n variant: isOn ? 'on' : 'off',\n });\n\n // Get animated track color from design tokens (changes when variant changes)\n const trackBackgroundColor = useAnimatedVariantColor(switchStyles.switch, 'backgroundColor');\n\n const animatedTrackStyle = useAnimatedStyle(() => {\n 'worklet';\n return {\n backgroundColor: withTiming(trackBackgroundColor.value, { duration: animationDuration }),\n };\n });\n\n const animatedHandleStyle = useAnimatedStyle(() => {\n 'worklet';\n return {\n transform: [{ translateX: progress.value * travelDistance }],\n };\n });\n\n const rootStyle: StyleProp<ViewStyle> = useMemo(\n () => [switchStyles.root, switchStaticStyles.root({ disabled })],\n [switchStyles.root, disabled],\n );\n\n const trackStyle: StyleProp<ViewStyle> = useMemo(\n () => [switchStyles.switch, switchStaticStyles.track, animatedTrackStyle],\n [switchStyles.switch, animatedTrackStyle],\n );\n\n const handleStyle: StyleProp<ViewStyle> = useMemo(\n () => [switchStyles.handle, switchStaticStyles.handle, animatedHandleStyle],\n [switchStyles.handle, animatedHandleStyle],\n );\n\n const accessibilityLabel = typeof label === 'string' ? label : undefined;\n const resolvedAccessibilityHint = accessibilityHint ?? 'Double tap to toggle';\n\n const labelContent = label && (\n <FormLabel\n color=\"inherit\"\n variant=\"inherit\"\n label={label}\n required={required}\n showRequiredAsterisk={required}\n style={switchStyles.text}\n />\n );\n\n const a11yValue = useMemo(() => ({ text: isOn ? 'On' : 'Off' }), [isOn]);\n\n return (\n <Pressable\n ref={ref}\n onPress={handlePress}\n disabled={disabled}\n accessible\n accessibilityRole=\"switch\"\n accessibilityState={{ checked: isOn, disabled }}\n accessibilityLabel={accessibilityLabel}\n accessibilityHint={resolvedAccessibilityHint}\n accessibilityValue={a11yValue}\n {...viewProps}\n style={rootStyle}\n >\n {labelPosition === 'start' && labelContent}\n\n <Animated.View style={trackStyle} importantForAccessibility=\"no-hide-descendants\">\n <Animated.View style={handleStyle}>\n {onIcon && isOn && (\n <Animated.View style={switchStaticStyles.iconContainer}>\n <IconSlot icon={onIcon} variant=\"fill\" style={switchStyles.handleIcon} />\n </Animated.View>\n )}\n {offIcon && !isOn && (\n <Animated.View style={switchStaticStyles.iconContainer}>\n <IconSlot icon={offIcon} variant=\"fill\" style={switchStyles.handleIcon} />\n </Animated.View>\n )}\n </Animated.View>\n </Animated.View>\n\n {labelPosition === 'end' && labelContent}\n </Pressable>\n );\n});\n\nSwitch.displayName = 'Switch';\n\nconst switchStaticStyles = StyleSheet.create((theme) => ({\n handle: {\n borderRadius: theme.borderRadius.full,\n alignItems: 'center',\n justifyContent: 'center',\n },\n iconContainer: {\n position: 'absolute',\n alignItems: 'center',\n justifyContent: 'center',\n },\n track: {\n justifyContent: 'center',\n borderRadius: theme.borderRadius.full,\n },\n root: ({ disabled }: { disabled: boolean }) => ({\n flexDirection: 'row',\n alignItems: 'center',\n alignSelf: 'flex-start',\n opacity: disabled ? 0.5 : 1,\n }),\n}));\n\nexport { Switch, type SwitchProps };\n"],"mappings":";;;;;;;;;;;AA2BA,MAAM,gBAA4C;CAChD,IAAI;CACJ,IAAI;CACL;AAED,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmC3B,MAAM,SAAS,KAAK,SAAS,OAAO,EAClC,MAAM,UACN,cAAc,OACd,UACA,OACA,gBAAgB,SAChB,OAAO,MACP,QACA,SACA,WAAW,OACX,UACA,mBACA,eAAe,OACf,KACA,GAAG,aACW;CACd,MAAM,eAAe,aAAa,KAAA;CAClC,MAAM,CAAC,cAAc,mBAAmB,SAAS,YAAY;CAC7D,MAAM,CAAC,sBAAsB,2BAA2B,SAAS,MAAM;CACvE,MAAM,OAAO,eAAe,WAAW;CAGvC,gBAAgB;EACd,MAAM,qBAAqB,YAAY;GAErC,wBAAwB,MADY,kBAAkB,uBAAuB,CAC/B;;EAEhD,oBAAoB;EAEpB,MAAM,eAAe,kBAAkB,iBACrC,uBACA,wBACD;EACD,aAAa,aAAa,QAAQ;IACjC,EAAE,CAAC;CAGN,MAAM,oBADqB,gBAAgB,uBACI,IAAI;CAEnD,MAAM,WAAW,sBACT,WAAW,OAAO,IAAI,GAAG,EAAE,UAAU,mBAAmB,CAAC,EAC/D,CAAC,MAAM,kBAAkB,CAC1B;CAED,MAAM,iBAAiB,cAAc;CAErC,MAAM,cAAc,kBAAkB;EACpC,IAAI,UACF;EAGF,MAAM,WAAW,CAAC;EAElB,IAAI,CAAC,cACH,gBAAgB,SAAS;EAG3B,WAAW,SAAS;IACnB;EAAC;EAAU;EAAM;EAAc;EAAS,CAAC;CAE5C,aAAa,YAAY;EACvB;EACA,SAAS,OAAO,OAAO;EACxB,CAAC;CAGF,MAAM,uBAAuB,wBAAwB,aAAa,QAAQ,kBAAkB;CAE5F,MAAM,qBAAqB,uBAAuB;AAChD;EACA,OAAO,EACL,iBAAiB,WAAW,qBAAqB,OAAO,EAAE,UAAU,mBAAmB,CAAC,EACzF;GACD;CAEF,MAAM,sBAAsB,uBAAuB;AACjD;EACA,OAAO,EACL,WAAW,CAAC,EAAE,YAAY,SAAS,QAAQ,gBAAgB,CAAC,EAC7D;GACD;CAEF,MAAM,YAAkC,cAChC,CAAC,aAAa,MAAM,mBAAmB,KAAK,EAAE,UAAU,CAAC,CAAC,EAChE,CAAC,aAAa,MAAM,SAAS,CAC9B;CAED,MAAM,aAAmC,cACjC;EAAC,aAAa;EAAQ,mBAAmB;EAAO;EAAmB,EACzE,CAAC,aAAa,QAAQ,mBAAmB,CAC1C;CAED,MAAM,cAAoC,cAClC;EAAC,aAAa;EAAQ,mBAAmB;EAAQ;EAAoB,EAC3E,CAAC,aAAa,QAAQ,oBAAoB,CAC3C;CAED,MAAM,qBAAqB,OAAO,UAAU,WAAW,QAAQ,KAAA;CAC/D,MAAM,4BAA4B,qBAAqB;CAEvD,MAAM,eAAe,SACnB,oBAAC,WAAD;EACE,OAAM;EACN,SAAQ;EACD;EACG;EACV,sBAAsB;EACtB,OAAO,aAAa;EACpB,CAAA;CAGJ,MAAM,YAAY,eAAe,EAAE,MAAM,OAAO,OAAO,OAAO,GAAG,CAAC,KAAK,CAAC;CAExE,OACE,qBAAC,WAAD;EACO;EACL,SAAS;EACC;EACV,YAAA;EACA,mBAAkB;EAClB,oBAAoB;GAAE,SAAS;GAAM;GAAU;EAC3B;EACpB,mBAAmB;EACnB,oBAAoB;EACpB,GAAI;EACJ,OAAO;YAXT;GAaG,kBAAkB,WAAW;GAE9B,oBAAC,SAAS,MAAV;IAAe,OAAO;IAAY,2BAA0B;cAC1D,qBAAC,SAAS,MAAV;KAAe,OAAO;eAAtB,CACG,UAAU,QACT,oBAAC,SAAS,MAAV;MAAe,OAAO,mBAAmB;gBACvC,oBAAC,UAAD;OAAU,MAAM;OAAQ,SAAQ;OAAO,OAAO,aAAa;OAAc,CAAA;MAC3D,CAAA,EAEjB,WAAW,CAAC,QACX,oBAAC,SAAS,MAAV;MAAe,OAAO,mBAAmB;gBACvC,oBAAC,UAAD;OAAU,MAAM;OAAS,SAAQ;OAAO,OAAO,aAAa;OAAc,CAAA;MAC5D,CAAA,CAEJ;;IACF,CAAA;GAEf,kBAAkB,SAAS;GAClB;;EAEd;AAEF,OAAO,cAAc;AAErB,MAAM,qBAAqBA,aAAW,QAAQ,WAAW;CACvD,QAAQ;EACN,cAAc,MAAM,aAAa;EACjC,YAAY;EACZ,gBAAgB;EACjB;CACD,eAAe;EACb,UAAU;EACV,YAAY;EACZ,gBAAgB;EACjB;CACD,OAAO;EACL,gBAAgB;EAChB,cAAc,MAAM,aAAa;EAClC;CACD,OAAO,EAAE,gBAAuC;EAC9C,eAAe;EACf,YAAY;EACZ,WAAW;EACX,SAAS,WAAW,KAAM;EAC3B;CACF,EAAE"}
1
+ {"version":3,"file":"Switch.js","names":["StyleSheet"],"sources":["../../src/components/Switch.tsx"],"sourcesContent":["import type { SwitchSize, UniversalSwitchProps } from '@yahoo/uds-types';\nimport type { Ref } from 'react';\nimport { memo, useCallback, useEffect, useMemo, useState } from 'react';\nimport type {\n AccessibilityProps,\n StyleProp,\n TextStyle,\n View,\n ViewProps,\n ViewStyle,\n} from 'react-native';\nimport { AccessibilityInfo, Platform, Pressable } from 'react-native';\nimport Animated, { useAnimatedStyle, useDerivedValue, withTiming } from 'react-native-reanimated';\n// eslint-disable-next-line uds/no-use-unistyles -- switch variant layers need concrete web styles\nimport { StyleSheet, useUnistyles } from 'react-native-unistyles';\nimport { useAnimatedVariantColor } from 'react-native-unistyles/reanimated';\n\nimport { switchStyles } from '../../generated/styles';\nimport { FormLabel } from './FormLabel';\nimport type { IconSlotType } from './IconSlot';\nimport { IconSlot } from './IconSlot';\n\ninterface SwitchProps extends Omit<ViewProps, 'style'>, UniversalSwitchProps<IconSlotType> {\n /** Ref to the underlying View */\n ref?: Ref<View>;\n /** Callback when the switch value changes */\n onChange?: (value: boolean) => void;\n /** Whether the switch is disabled */\n disabled?: boolean;\n /** Whether the switch is required (shows asterisk with label) */\n required?: boolean;\n /** Accessibility hint describing what happens when activated */\n accessibilityHint?: AccessibilityProps['accessibilityHint'];\n}\n\nconst HANDLE_TRAVEL: Record<SwitchSize, number> = {\n md: 20,\n sm: 12,\n};\n\nconst ANIMATION_DURATION = 120;\n\n/**\n * **Switch component for toggling options**\n *\n * @description\n * A switch (also called a toggle) is a binary on/off input control.\n * It allows users to pick between two clearly opposite choices.\n *\n * @category Form\n * @platform mobile\n *\n * @example\n * ```tsx\n * import { Switch } from '@yahoo/uds-mobile/Switch';\n *\n * <Switch label=\"Notifications\" />\n * <Switch isOn={enabled} onChange={setEnabled} label=\"Dark mode\" />\n * <Switch onIcon=\"Check\" offIcon=\"Cross\" label=\"Sync\" />\n * ```\n *\n * @usage\n * - Settings: For toggling preferences on/off\n * - Feature flags: For enabling/disabling features\n * - Immediate effect toggles (no submit button needed)\n *\n * @accessibility\n * - Sets `accessibilityRole=\"switch\"` automatically\n * - Announces on/off state to screen readers\n * - Respects system reduce motion preference\n * - Supports `reduceMotion` prop to disable animations\n *\n * @see {@link Checkbox} for forms with submit actions\n * @see {@link Radio} for single-select options\n */\nconst Switch = memo(function Switch({\n isOn: isOnProp,\n defaultIsOn = false,\n onChange,\n label,\n labelPosition = 'start',\n size = 'md',\n onIcon,\n offIcon,\n disabled = false,\n required,\n accessibilityHint,\n reduceMotion = false,\n ref,\n ...viewProps\n}: SwitchProps) {\n const isControlled = isOnProp !== undefined;\n const [internalIsOn, setInternalIsOn] = useState(defaultIsOn);\n const [prefersReducedMotion, setPrefersReducedMotion] = useState(false);\n const isOn = isControlled ? isOnProp : internalIsOn;\n const activeVariant = isOn ? 'on' : 'off';\n const { theme } = useUnistyles();\n\n // Check system reduced motion preference\n useEffect(() => {\n const checkReducedMotion = async () => {\n const isReduceMotionEnabled = await AccessibilityInfo.isReduceMotionEnabled();\n setPrefersReducedMotion(isReduceMotionEnabled);\n };\n checkReducedMotion();\n\n const subscription = AccessibilityInfo.addEventListener(\n 'reduceMotionChanged',\n setPrefersReducedMotion,\n );\n return () => subscription.remove();\n }, []);\n\n const shouldReduceMotion = reduceMotion || prefersReducedMotion;\n const animationDuration = shouldReduceMotion ? 0 : ANIMATION_DURATION;\n\n const progress = useDerivedValue(\n () => withTiming(isOn ? 1 : 0, { duration: animationDuration }),\n [isOn, animationDuration],\n );\n\n const travelDistance = HANDLE_TRAVEL[size];\n\n const handlePress = useCallback(() => {\n if (disabled) {\n return;\n }\n\n const newValue = !isOn;\n\n if (!isControlled) {\n setInternalIsOn(newValue);\n }\n\n onChange?.(newValue);\n }, [disabled, isOn, isControlled, onChange]);\n\n // On web, useVariants returns the resolved style object instead of mutating\n // switchStyles in place.\n const variantSwitchStyles = switchStyles.useVariants({\n size,\n variant: activeVariant,\n }) as unknown as typeof switchStyles | undefined;\n const resolvedSwitchStyles = variantSwitchStyles ?? switchStyles;\n\n const variantLayerStyles = useMemo(() => {\n const components = theme.components as unknown as Record<string, Record<string, unknown>>;\n const getLayerStyle = <TStyle,>(layer: string) =>\n components[`switch/variant/default/active/${activeVariant}/${layer}/rest`] as\n | TStyle\n | undefined;\n\n return {\n handle: getLayerStyle<ViewStyle>('handle'),\n handleIcon: getLayerStyle<TextStyle>('handleIcon'),\n switch: getLayerStyle<ViewStyle>('switch'),\n text: getLayerStyle<TextStyle>('rootText'),\n };\n }, [activeVariant, theme]);\n\n // Get animated track color from design tokens (changes when variant changes)\n const trackBackgroundColor = useAnimatedVariantColor(\n resolvedSwitchStyles.switch,\n 'backgroundColor',\n );\n\n const animatedTrackStyle = useAnimatedStyle(() => {\n 'worklet';\n return {\n backgroundColor: withTiming(trackBackgroundColor.value, { duration: animationDuration }),\n };\n });\n\n const animatedHandleStyle = useAnimatedStyle(() => {\n 'worklet';\n return {\n transform: [{ translateX: progress.value * travelDistance }],\n };\n });\n\n const rootStyle: StyleProp<ViewStyle> = useMemo(\n () => [resolvedSwitchStyles.root, switchStaticStyles.root({ disabled })],\n [resolvedSwitchStyles.root, disabled],\n );\n\n const trackStyle: StyleProp<ViewStyle> = useMemo(\n () => [\n resolvedSwitchStyles.switch,\n switchStaticStyles.track,\n variantLayerStyles.switch,\n // On web, the animated variant color hook currently resolves to Unistyles'\n // black fallback, so the concrete variant layer provides the track color.\n Platform.OS !== 'web' && animatedTrackStyle,\n ],\n [resolvedSwitchStyles.switch, variantLayerStyles.switch, animatedTrackStyle],\n );\n\n const handleStyle: StyleProp<ViewStyle> = useMemo(\n () => [\n resolvedSwitchStyles.handle,\n switchStaticStyles.handle,\n variantLayerStyles.handle,\n animatedHandleStyle,\n ],\n [resolvedSwitchStyles.handle, variantLayerStyles.handle, animatedHandleStyle],\n );\n\n const accessibilityLabel = typeof label === 'string' ? label : undefined;\n const resolvedAccessibilityHint = accessibilityHint ?? 'Double tap to toggle';\n\n const labelContent = label && (\n <FormLabel\n color=\"inherit\"\n variant=\"inherit\"\n label={label}\n required={required}\n showRequiredAsterisk={required}\n style={[resolvedSwitchStyles.text, variantLayerStyles.text]}\n />\n );\n\n const a11yValue = useMemo(() => ({ text: isOn ? 'On' : 'Off' }), [isOn]);\n\n return (\n <Pressable\n ref={ref}\n onPress={handlePress}\n disabled={disabled}\n accessible\n accessibilityRole=\"switch\"\n accessibilityState={{ checked: isOn, disabled }}\n accessibilityLabel={accessibilityLabel}\n accessibilityHint={resolvedAccessibilityHint}\n accessibilityValue={a11yValue}\n {...viewProps}\n style={rootStyle}\n >\n {labelPosition === 'start' && labelContent}\n\n <Animated.View style={trackStyle} importantForAccessibility=\"no-hide-descendants\">\n <Animated.View style={handleStyle}>\n {onIcon && isOn && (\n <Animated.View style={switchStaticStyles.iconContainer}>\n <IconSlot\n icon={onIcon}\n variant=\"fill\"\n style={[resolvedSwitchStyles.handleIcon, variantLayerStyles.handleIcon]}\n />\n </Animated.View>\n )}\n {offIcon && !isOn && (\n <Animated.View style={switchStaticStyles.iconContainer}>\n <IconSlot\n icon={offIcon}\n variant=\"fill\"\n style={[resolvedSwitchStyles.handleIcon, variantLayerStyles.handleIcon]}\n />\n </Animated.View>\n )}\n </Animated.View>\n </Animated.View>\n\n {labelPosition === 'end' && labelContent}\n </Pressable>\n );\n});\n\nSwitch.displayName = 'Switch';\n\nconst switchStaticStyles = StyleSheet.create((theme) => ({\n handle: {\n borderRadius: theme.borderRadius.full,\n alignItems: 'center',\n justifyContent: 'center',\n },\n iconContainer: {\n position: 'absolute',\n alignItems: 'center',\n justifyContent: 'center',\n },\n track: {\n justifyContent: 'center',\n borderRadius: theme.borderRadius.full,\n },\n root: ({ disabled }: { disabled: boolean }) => ({\n flexDirection: 'row',\n alignItems: 'center',\n alignSelf: 'flex-start',\n opacity: disabled ? 0.5 : 1,\n }),\n}));\n\nexport { Switch, type SwitchProps };\n"],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ /*! © 2026 Yahoo, Inc. UDS Mobile v0.0.0-development */
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const require_components_UDSProvider = require("./UDSProvider.cjs");
4
+ exports.UDSGestureProvider = require_components_UDSProvider.UDSGestureProvider;
@@ -0,0 +1,3 @@
1
+
2
+ import { UDSGestureProvider, UDSGestureProviderProps } from "./UDSProvider.cjs";
3
+ export { UDSGestureProvider, type UDSGestureProviderProps };
@@ -0,0 +1,3 @@
1
+
2
+ import { UDSGestureProvider, UDSGestureProviderProps } from "./UDSProvider.js";
3
+ export { UDSGestureProvider, type UDSGestureProviderProps };
@@ -0,0 +1,3 @@
1
+ /*! © 2026 Yahoo, Inc. UDS Mobile v0.0.0-development */
2
+ import { UDSGestureProvider } from "./UDSProvider.js";
3
+ export { UDSGestureProvider };
@@ -8,29 +8,34 @@ let react_jsx_runtime = require("react/jsx-runtime");
8
8
  let react_native_gesture_handler = require("react-native-gesture-handler");
9
9
  //#region src/components/UDSProvider.tsx
10
10
  /**
11
- * Root provider for UDS Mobile.
11
+ * Root gesture and portal provider for UDS Mobile overlays.
12
12
  *
13
13
  * Place this at the top of your app layout:
14
14
  *
15
15
  * @example
16
16
  * ```tsx
17
- * import { UDSProvider } from '@yahoo/uds-mobile/UDSProvider';
17
+ * import { UDSGestureProvider } from '@yahoo/uds-mobile/UDSGestureProvider';
18
18
  *
19
19
  * export default function RootLayout() {
20
20
  * return (
21
- * <UDSProvider>
21
+ * <UDSGestureProvider>
22
22
  * <Stack />
23
- * </UDSProvider>
23
+ * </UDSGestureProvider>
24
24
  * );
25
25
  * }
26
26
  * ```
27
27
  */
28
- const UDSProvider = (0, react.memo)(function UDSProvider({ children }) {
28
+ const UDSGestureProvider = (0, react.memo)(function UDSGestureProvider({ children }) {
29
29
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(react_native_gesture_handler.GestureHandlerRootView, {
30
30
  style: styles.root,
31
31
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_portal.PortalProvider, { children })
32
32
  });
33
33
  });
34
+ /**
35
+ * @deprecated Use {@link UDSGestureProvider} from `@yahoo/uds-mobile/UDSGestureProvider`.
36
+ */
37
+ const UDSProvider = UDSGestureProvider;
34
38
  const styles = react_native.StyleSheet.create({ root: { flex: 1 } });
35
39
  //#endregion
40
+ exports.UDSGestureProvider = UDSGestureProvider;
36
41
  exports.UDSProvider = UDSProvider;
@@ -3,28 +3,36 @@ import * as _$react from "react";
3
3
  import { ReactNode } from "react";
4
4
 
5
5
  //#region src/components/UDSProvider.d.ts
6
- interface UDSProviderProps {
6
+ interface UDSGestureProviderProps {
7
7
  children: ReactNode;
8
8
  }
9
9
  /**
10
- * Root provider for UDS Mobile.
10
+ * Root gesture and portal provider for UDS Mobile overlays.
11
11
  *
12
12
  * Place this at the top of your app layout:
13
13
  *
14
14
  * @example
15
15
  * ```tsx
16
- * import { UDSProvider } from '@yahoo/uds-mobile/UDSProvider';
16
+ * import { UDSGestureProvider } from '@yahoo/uds-mobile/UDSGestureProvider';
17
17
  *
18
18
  * export default function RootLayout() {
19
19
  * return (
20
- * <UDSProvider>
20
+ * <UDSGestureProvider>
21
21
  * <Stack />
22
- * </UDSProvider>
22
+ * </UDSGestureProvider>
23
23
  * );
24
24
  * }
25
25
  * ```
26
26
  */
27
- declare const UDSProvider: _$react.NamedExoticComponent<UDSProviderProps>;
27
+ declare const UDSGestureProvider: _$react.NamedExoticComponent<UDSGestureProviderProps>;
28
+ /**
29
+ * @deprecated Use {@link UDSGestureProvider} from `@yahoo/uds-mobile/UDSGestureProvider`.
30
+ */
31
+ declare const UDSProvider: _$react.NamedExoticComponent<UDSGestureProviderProps>;
32
+ /**
33
+ * @deprecated Use {@link UDSGestureProviderProps}.
34
+ */
35
+ type UDSProviderProps = UDSGestureProviderProps;
28
36
  //#endregion
29
- export { UDSProvider, type UDSProviderProps };
37
+ export { UDSGestureProvider, type UDSGestureProviderProps, UDSProvider, UDSProviderProps };
30
38
  //# sourceMappingURL=UDSProvider.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"UDSProvider.d.cts","names":[],"sources":["../../src/components/UDSProvider.tsx"],"mappings":";;;;;UAOU,gBAAA;EACR,QAAA,EAAU,SAAA;AAAA;AAR2B;;;;;AAQlB;;;;;;;;;;;;;AARkB,cA6BjC,WAAA,EAAW,OAAA,CAAA,oBAAA,CAAA,gBAAA"}
1
+ {"version":3,"file":"UDSProvider.d.cts","names":[],"sources":["../../src/components/UDSProvider.tsx"],"mappings":";;;;;UAOU,uBAAA;EACR,QAAA,EAAU,SAAA;AAAA;AAR2B;;;;;AAQlB;;;;;AAqBG;;;;;AAwBxB;;;AArDuC,cA6BjC,kBAAA,EAAkB,OAAA,CAAA,oBAAA,CAAA,uBAAA;;;;cAWlB,WAAA,EAAW,OAAA,CAAA,oBAAA,CAAA,uBAAA;;;;KAaL,gBAAA,GAAmB,uBAAA"}
@@ -3,28 +3,36 @@ import * as _$react from "react";
3
3
  import { ReactNode } from "react";
4
4
 
5
5
  //#region src/components/UDSProvider.d.ts
6
- interface UDSProviderProps {
6
+ interface UDSGestureProviderProps {
7
7
  children: ReactNode;
8
8
  }
9
9
  /**
10
- * Root provider for UDS Mobile.
10
+ * Root gesture and portal provider for UDS Mobile overlays.
11
11
  *
12
12
  * Place this at the top of your app layout:
13
13
  *
14
14
  * @example
15
15
  * ```tsx
16
- * import { UDSProvider } from '@yahoo/uds-mobile/UDSProvider';
16
+ * import { UDSGestureProvider } from '@yahoo/uds-mobile/UDSGestureProvider';
17
17
  *
18
18
  * export default function RootLayout() {
19
19
  * return (
20
- * <UDSProvider>
20
+ * <UDSGestureProvider>
21
21
  * <Stack />
22
- * </UDSProvider>
22
+ * </UDSGestureProvider>
23
23
  * );
24
24
  * }
25
25
  * ```
26
26
  */
27
- declare const UDSProvider: _$react.NamedExoticComponent<UDSProviderProps>;
27
+ declare const UDSGestureProvider: _$react.NamedExoticComponent<UDSGestureProviderProps>;
28
+ /**
29
+ * @deprecated Use {@link UDSGestureProvider} from `@yahoo/uds-mobile/UDSGestureProvider`.
30
+ */
31
+ declare const UDSProvider: _$react.NamedExoticComponent<UDSGestureProviderProps>;
32
+ /**
33
+ * @deprecated Use {@link UDSGestureProviderProps}.
34
+ */
35
+ type UDSProviderProps = UDSGestureProviderProps;
28
36
  //#endregion
29
- export { UDSProvider, type UDSProviderProps };
37
+ export { UDSGestureProvider, type UDSGestureProviderProps, UDSProvider, UDSProviderProps };
30
38
  //# sourceMappingURL=UDSProvider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"UDSProvider.d.ts","names":[],"sources":["../../src/components/UDSProvider.tsx"],"mappings":";;;;;UAOU,gBAAA;EACR,QAAA,EAAU,SAAA;AAAA;AAR2B;;;;;AAQlB;;;;;;;;;;;;;AARkB,cA6BjC,WAAA,EAAW,OAAA,CAAA,oBAAA,CAAA,gBAAA"}
1
+ {"version":3,"file":"UDSProvider.d.ts","names":[],"sources":["../../src/components/UDSProvider.tsx"],"mappings":";;;;;UAOU,uBAAA;EACR,QAAA,EAAU,SAAA;AAAA;AAR2B;;;;;AAQlB;;;;;AAqBG;;;;;AAwBxB;;;AArDuC,cA6BjC,kBAAA,EAAkB,OAAA,CAAA,oBAAA,CAAA,uBAAA;;;;cAWlB,WAAA,EAAW,OAAA,CAAA,oBAAA,CAAA,uBAAA;;;;KAaL,gBAAA,GAAmB,uBAAA"}
@@ -6,31 +6,35 @@ import { jsx } from "react/jsx-runtime";
6
6
  import { GestureHandlerRootView } from "react-native-gesture-handler";
7
7
  //#region src/components/UDSProvider.tsx
8
8
  /**
9
- * Root provider for UDS Mobile.
9
+ * Root gesture and portal provider for UDS Mobile overlays.
10
10
  *
11
11
  * Place this at the top of your app layout:
12
12
  *
13
13
  * @example
14
14
  * ```tsx
15
- * import { UDSProvider } from '@yahoo/uds-mobile/UDSProvider';
15
+ * import { UDSGestureProvider } from '@yahoo/uds-mobile/UDSGestureProvider';
16
16
  *
17
17
  * export default function RootLayout() {
18
18
  * return (
19
- * <UDSProvider>
19
+ * <UDSGestureProvider>
20
20
  * <Stack />
21
- * </UDSProvider>
21
+ * </UDSGestureProvider>
22
22
  * );
23
23
  * }
24
24
  * ```
25
25
  */
26
- const UDSProvider = memo(function UDSProvider({ children }) {
26
+ const UDSGestureProvider = memo(function UDSGestureProvider({ children }) {
27
27
  return /* @__PURE__ */ jsx(GestureHandlerRootView, {
28
28
  style: styles.root,
29
29
  children: /* @__PURE__ */ jsx(PortalProvider, { children })
30
30
  });
31
31
  });
32
+ /**
33
+ * @deprecated Use {@link UDSGestureProvider} from `@yahoo/uds-mobile/UDSGestureProvider`.
34
+ */
35
+ const UDSProvider = UDSGestureProvider;
32
36
  const styles = StyleSheet.create({ root: { flex: 1 } });
33
37
  //#endregion
34
- export { UDSProvider };
38
+ export { UDSGestureProvider, UDSProvider };
35
39
 
36
40
  //# sourceMappingURL=UDSProvider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"UDSProvider.js","names":[],"sources":["../../src/components/UDSProvider.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport { memo } from 'react';\nimport { StyleSheet } from 'react-native';\nimport { GestureHandlerRootView } from 'react-native-gesture-handler';\n\nimport { PortalProvider } from '../portal';\n\ninterface UDSProviderProps {\n children: ReactNode;\n}\n\n/**\n * Root provider for UDS Mobile.\n *\n * Place this at the top of your app layout:\n *\n * @example\n * ```tsx\n * import { UDSProvider } from '@yahoo/uds-mobile/UDSProvider';\n *\n * export default function RootLayout() {\n * return (\n * <UDSProvider>\n * <Stack />\n * </UDSProvider>\n * );\n * }\n * ```\n */\nconst UDSProvider = memo(function UDSProvider({ children }: UDSProviderProps) {\n return (\n <GestureHandlerRootView style={styles.root}>\n <PortalProvider>{children}</PortalProvider>\n </GestureHandlerRootView>\n );\n});\n\nconst styles = StyleSheet.create({\n root: {\n flex: 1,\n },\n});\n\nexport { UDSProvider };\nexport type { UDSProviderProps };\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AA6BA,MAAM,cAAc,KAAK,SAAS,YAAY,EAAE,YAA8B;CAC5E,OACE,oBAAC,wBAAD;EAAwB,OAAO,OAAO;YACpC,oBAAC,gBAAD,EAAiB,UAA0B,CAAA;EACpB,CAAA;EAE3B;AAEF,MAAM,SAAS,WAAW,OAAO,EAC/B,MAAM,EACJ,MAAM,GACP,EACF,CAAC"}
1
+ {"version":3,"file":"UDSProvider.js","names":[],"sources":["../../src/components/UDSProvider.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport { memo } from 'react';\nimport { StyleSheet } from 'react-native';\nimport { GestureHandlerRootView } from 'react-native-gesture-handler';\n\nimport { PortalProvider } from '../portal';\n\ninterface UDSGestureProviderProps {\n children: ReactNode;\n}\n\n/**\n * Root gesture and portal provider for UDS Mobile overlays.\n *\n * Place this at the top of your app layout:\n *\n * @example\n * ```tsx\n * import { UDSGestureProvider } from '@yahoo/uds-mobile/UDSGestureProvider';\n *\n * export default function RootLayout() {\n * return (\n * <UDSGestureProvider>\n * <Stack />\n * </UDSGestureProvider>\n * );\n * }\n * ```\n */\nconst UDSGestureProvider = memo(function UDSGestureProvider({ children }: UDSGestureProviderProps) {\n return (\n <GestureHandlerRootView style={styles.root}>\n <PortalProvider>{children}</PortalProvider>\n </GestureHandlerRootView>\n );\n});\n\n/**\n * @deprecated Use {@link UDSGestureProvider} from `@yahoo/uds-mobile/UDSGestureProvider`.\n */\nconst UDSProvider = UDSGestureProvider;\n\nconst styles = StyleSheet.create({\n root: {\n flex: 1,\n },\n});\n\nexport { UDSGestureProvider, UDSProvider };\nexport type { UDSGestureProviderProps };\n/**\n * @deprecated Use {@link UDSGestureProviderProps}.\n */\nexport type UDSProviderProps = UDSGestureProviderProps;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AA6BA,MAAM,qBAAqB,KAAK,SAAS,mBAAmB,EAAE,YAAqC;CACjG,OACE,oBAAC,wBAAD;EAAwB,OAAO,OAAO;YACpC,oBAAC,gBAAD,EAAiB,UAA0B,CAAA;EACpB,CAAA;EAE3B;;;;AAKF,MAAM,cAAc;AAEpB,MAAM,SAAS,WAAW,OAAO,EAC/B,MAAM,EACJ,MAAM,GACP,EACF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"OverlayPortal.js","names":[],"sources":["../../../../src/components/internal/Overlay/OverlayPortal.tsx"],"sourcesContent":["import { Platform } from 'react-native';\nimport { FullWindowOverlay } from 'react-native-screens';\n\nimport { Portal, usePortalContext } from '../../../portal';\nimport type { OverlayPortalProps } from './types';\n\n/**\n * Internal portal wrapper for mobile overlays.\n *\n * Uses `FullWindowOverlay` on iOS when requested, otherwise renders through the UDS portal host.\n */\nfunction OverlayPortal({ children, useFullWindowOverlay = true }: OverlayPortalProps) {\n // Always assert UDSProvider presence, even when iOS renders through FullWindowOverlay.\n usePortalContext();\n\n if (Platform.OS === 'ios' && useFullWindowOverlay) {\n return <FullWindowOverlay>{children}</FullWindowOverlay>;\n }\n\n return <Portal>{children}</Portal>;\n}\n\nexport { OverlayPortal };\n"],"mappings":";;;;;;;;;;;AAWA,SAAS,cAAc,EAAE,UAAU,uBAAuB,QAA4B;CAEpF,kBAAkB;CAElB,IAAI,SAAS,OAAO,SAAS,sBAC3B,OAAO,oBAAC,mBAAD,EAAoB,UAA6B,CAAA;CAG1D,OAAO,oBAAC,QAAD,EAAS,UAAkB,CAAA"}
1
+ {"version":3,"file":"OverlayPortal.js","names":[],"sources":["../../../../src/components/internal/Overlay/OverlayPortal.tsx"],"sourcesContent":["import { Platform } from 'react-native';\nimport { FullWindowOverlay } from 'react-native-screens';\n\nimport { Portal, usePortalContext } from '../../../portal';\nimport type { OverlayPortalProps } from './types';\n\n/**\n * Internal portal wrapper for mobile overlays.\n *\n * Uses `FullWindowOverlay` on iOS when requested, otherwise renders through the UDS portal host.\n */\nfunction OverlayPortal({ children, useFullWindowOverlay = true }: OverlayPortalProps) {\n // Always assert UDSGestureProvider presence, even when iOS renders through FullWindowOverlay.\n usePortalContext();\n\n if (Platform.OS === 'ios' && useFullWindowOverlay) {\n return <FullWindowOverlay>{children}</FullWindowOverlay>;\n }\n\n return <Portal>{children}</Portal>;\n}\n\nexport { OverlayPortal };\n"],"mappings":";;;;;;;;;;;AAWA,SAAS,cAAc,EAAE,UAAU,uBAAuB,QAA4B;CAEpF,kBAAkB;CAElB,IAAI,SAAS,OAAO,SAAS,sBAC3B,OAAO,oBAAC,mBAAD,EAAoB,UAA6B,CAAA;CAG1D,OAAO,oBAAC,QAAD,EAAS,UAAkB,CAAA"}
@@ -1,10 +1,12 @@
1
1
  /*! © 2026 Yahoo, Inc. UDS Mobile v0.0.0-development */
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const require_components_internal_Overlay_OverlayPortal = require("./OverlayPortal.cjs");
4
+ const require_components_internal_Overlay_measureTrigger = require("./measureTrigger.cjs");
4
5
  const require_components_internal_Overlay_useAnchoredPosition = require("./useAnchoredPosition.cjs");
5
6
  const require_components_internal_Overlay_useControllableState = require("./useControllableState.cjs");
6
7
  const require_components_internal_Overlay_useOverlayDismiss = require("./useOverlayDismiss.cjs");
7
8
  exports.OverlayPortal = require_components_internal_Overlay_OverlayPortal.OverlayPortal;
9
+ exports.measureTrigger = require_components_internal_Overlay_measureTrigger.measureTrigger;
8
10
  exports.useAnchoredPosition = require_components_internal_Overlay_useAnchoredPosition.useAnchoredPosition;
9
11
  exports.useControllableState = require_components_internal_Overlay_useControllableState.useControllableState;
10
12
  exports.useOverlayDismiss = require_components_internal_Overlay_useOverlayDismiss.useOverlayDismiss;
@@ -1,7 +1,8 @@
1
1
 
2
2
  import { AnchoredAlign, AnchoredPlacement, AnchoredRect, AnchoredWidth, OverlayInsets, OverlayPortalProps, UseAnchoredPositionProps, UseAnchoredPositionResult, UseControllableStateProps, UseControllableStateResult, UseOverlayDismissProps } from "./types.cjs";
3
+ import { measureTrigger } from "./measureTrigger.cjs";
3
4
  import { OverlayPortal } from "./OverlayPortal.cjs";
4
5
  import { useAnchoredPosition } from "./useAnchoredPosition.cjs";
5
6
  import { useControllableState } from "./useControllableState.cjs";
6
7
  import { useOverlayDismiss } from "./useOverlayDismiss.cjs";
7
- export { type AnchoredAlign, type AnchoredPlacement, type AnchoredRect, type AnchoredWidth, type OverlayInsets, OverlayPortal, type OverlayPortalProps, type UseAnchoredPositionProps, type UseAnchoredPositionResult, type UseControllableStateProps, type UseControllableStateResult, type UseOverlayDismissProps, useAnchoredPosition, useControllableState, useOverlayDismiss };
8
+ export { type AnchoredAlign, type AnchoredPlacement, type AnchoredRect, type AnchoredWidth, type OverlayInsets, OverlayPortal, type OverlayPortalProps, type UseAnchoredPositionProps, type UseAnchoredPositionResult, type UseControllableStateProps, type UseControllableStateResult, type UseOverlayDismissProps, measureTrigger, useAnchoredPosition, useControllableState, useOverlayDismiss };
@@ -1,7 +1,8 @@
1
1
 
2
2
  import { AnchoredAlign, AnchoredPlacement, AnchoredRect, AnchoredWidth, OverlayInsets, OverlayPortalProps, UseAnchoredPositionProps, UseAnchoredPositionResult, UseControllableStateProps, UseControllableStateResult, UseOverlayDismissProps } from "./types.js";
3
+ import { measureTrigger } from "./measureTrigger.js";
3
4
  import { OverlayPortal } from "./OverlayPortal.js";
4
5
  import { useAnchoredPosition } from "./useAnchoredPosition.js";
5
6
  import { useControllableState } from "./useControllableState.js";
6
7
  import { useOverlayDismiss } from "./useOverlayDismiss.js";
7
- export { type AnchoredAlign, type AnchoredPlacement, type AnchoredRect, type AnchoredWidth, type OverlayInsets, OverlayPortal, type OverlayPortalProps, type UseAnchoredPositionProps, type UseAnchoredPositionResult, type UseControllableStateProps, type UseControllableStateResult, type UseOverlayDismissProps, useAnchoredPosition, useControllableState, useOverlayDismiss };
8
+ export { type AnchoredAlign, type AnchoredPlacement, type AnchoredRect, type AnchoredWidth, type OverlayInsets, OverlayPortal, type OverlayPortalProps, type UseAnchoredPositionProps, type UseAnchoredPositionResult, type UseControllableStateProps, type UseControllableStateResult, type UseOverlayDismissProps, measureTrigger, useAnchoredPosition, useControllableState, useOverlayDismiss };
@@ -1,6 +1,7 @@
1
1
  /*! © 2026 Yahoo, Inc. UDS Mobile v0.0.0-development */
2
2
  import { OverlayPortal } from "./OverlayPortal.js";
3
+ import { measureTrigger } from "./measureTrigger.js";
3
4
  import { useAnchoredPosition } from "./useAnchoredPosition.js";
4
5
  import { useControllableState } from "./useControllableState.js";
5
6
  import { useOverlayDismiss } from "./useOverlayDismiss.js";
6
- export { OverlayPortal, useAnchoredPosition, useControllableState, useOverlayDismiss };
7
+ export { OverlayPortal, measureTrigger, useAnchoredPosition, useControllableState, useOverlayDismiss };
@@ -0,0 +1,35 @@
1
+ /*! © 2026 Yahoo, Inc. UDS Mobile v0.0.0-development */
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ //#region src/components/internal/Overlay/measureTrigger.ts
4
+ function measureInRoot(measurable, onMeasure) {
5
+ if (!measurable?.measure) return false;
6
+ measurable.measure((x, y, width, height, pageX, pageY) => {
7
+ onMeasure({
8
+ x: typeof pageX === "number" ? pageX : x,
9
+ y: typeof pageY === "number" ? pageY : y,
10
+ width,
11
+ height
12
+ });
13
+ });
14
+ return true;
15
+ }
16
+ function measureInWindow(measurable, onMeasure) {
17
+ if (!measurable?.measureInWindow) return false;
18
+ measurable.measureInWindow((x, y, width, height) => {
19
+ onMeasure({
20
+ x,
21
+ y,
22
+ width,
23
+ height
24
+ });
25
+ });
26
+ return true;
27
+ }
28
+ function measureTrigger(node, fallbackRect, onMeasure) {
29
+ const measurable = node;
30
+ if (measureInRoot(measurable, onMeasure)) return;
31
+ if (measureInWindow(measurable, onMeasure)) return;
32
+ if (fallbackRect) onMeasure(fallbackRect);
33
+ }
34
+ //#endregion
35
+ exports.measureTrigger = measureTrigger;
@@ -0,0 +1,9 @@
1
+
2
+ import { AnchoredRect } from "./types.cjs";
3
+ import { View } from "react-native";
4
+
5
+ //#region src/components/internal/Overlay/measureTrigger.d.ts
6
+ declare function measureTrigger(node: View | null, fallbackRect: AnchoredRect | null, onMeasure: (rect: AnchoredRect) => void): void;
7
+ //#endregion
8
+ export { measureTrigger };
9
+ //# sourceMappingURL=measureTrigger.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"measureTrigger.d.cts","names":[],"sources":["../../../../src/components/internal/Overlay/measureTrigger.ts"],"mappings":";;;;;iBAqDS,cAAA,CACP,IAAA,EAAM,IAAA,SACN,YAAA,EAAc,YAAA,SACd,SAAA,GAAY,IAAA,EAAM,YAAA"}
@@ -0,0 +1,9 @@
1
+
2
+ import { AnchoredRect } from "./types.js";
3
+ import { View } from "react-native";
4
+
5
+ //#region src/components/internal/Overlay/measureTrigger.d.ts
6
+ declare function measureTrigger(node: View | null, fallbackRect: AnchoredRect | null, onMeasure: (rect: AnchoredRect) => void): void;
7
+ //#endregion
8
+ export { measureTrigger };
9
+ //# sourceMappingURL=measureTrigger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"measureTrigger.d.ts","names":[],"sources":["../../../../src/components/internal/Overlay/measureTrigger.ts"],"mappings":";;;;;iBAqDS,cAAA,CACP,IAAA,EAAM,IAAA,SACN,YAAA,EAAc,YAAA,SACd,SAAA,GAAY,IAAA,EAAM,YAAA"}
@@ -0,0 +1,36 @@
1
+ /*! © 2026 Yahoo, Inc. UDS Mobile v0.0.0-development */
2
+ //#region src/components/internal/Overlay/measureTrigger.ts
3
+ function measureInRoot(measurable, onMeasure) {
4
+ if (!measurable?.measure) return false;
5
+ measurable.measure((x, y, width, height, pageX, pageY) => {
6
+ onMeasure({
7
+ x: typeof pageX === "number" ? pageX : x,
8
+ y: typeof pageY === "number" ? pageY : y,
9
+ width,
10
+ height
11
+ });
12
+ });
13
+ return true;
14
+ }
15
+ function measureInWindow(measurable, onMeasure) {
16
+ if (!measurable?.measureInWindow) return false;
17
+ measurable.measureInWindow((x, y, width, height) => {
18
+ onMeasure({
19
+ x,
20
+ y,
21
+ width,
22
+ height
23
+ });
24
+ });
25
+ return true;
26
+ }
27
+ function measureTrigger(node, fallbackRect, onMeasure) {
28
+ const measurable = node;
29
+ if (measureInRoot(measurable, onMeasure)) return;
30
+ if (measureInWindow(measurable, onMeasure)) return;
31
+ if (fallbackRect) onMeasure(fallbackRect);
32
+ }
33
+ //#endregion
34
+ export { measureTrigger };
35
+
36
+ //# sourceMappingURL=measureTrigger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"measureTrigger.js","names":[],"sources":["../../../../src/components/internal/Overlay/measureTrigger.ts"],"sourcesContent":["import type { View } from 'react-native';\n\nimport type { AnchoredRect } from './types';\n\ntype MeasurableView = View & {\n measureInWindow?: (\n callback: (x: number, y: number, width: number, height: number) => void,\n ) => void;\n measure?: (\n callback: (\n x: number,\n y: number,\n width: number,\n height: number,\n pageX: number,\n pageY: number,\n ) => void,\n ) => void;\n};\n\nfunction measureInRoot(\n measurable: MeasurableView | null,\n onMeasure: (rect: AnchoredRect) => void,\n): boolean {\n if (!measurable?.measure) {\n return false;\n }\n\n measurable.measure((x, y, width, height, pageX, pageY) => {\n onMeasure({\n x: typeof pageX === 'number' ? pageX : x,\n y: typeof pageY === 'number' ? pageY : y,\n width,\n height,\n });\n });\n return true;\n}\n\nfunction measureInWindow(\n measurable: MeasurableView | null,\n onMeasure: (rect: AnchoredRect) => void,\n): boolean {\n if (!measurable?.measureInWindow) {\n return false;\n }\n\n measurable.measureInWindow((x, y, width, height) => {\n onMeasure({ x, y, width, height });\n });\n return true;\n}\n\nfunction measureTrigger(\n node: View | null,\n fallbackRect: AnchoredRect | null,\n onMeasure: (rect: AnchoredRect) => void,\n): void {\n const measurable = node as MeasurableView | null;\n\n if (measureInRoot(measurable, onMeasure)) {\n return;\n }\n\n if (measureInWindow(measurable, onMeasure)) {\n return;\n }\n\n if (fallbackRect) {\n onMeasure(fallbackRect);\n }\n}\n\nexport { measureTrigger };\n"],"mappings":";;AAoBA,SAAS,cACP,YACA,WACS;CACT,IAAI,CAAC,YAAY,SACf,OAAO;CAGT,WAAW,SAAS,GAAG,GAAG,OAAO,QAAQ,OAAO,UAAU;EACxD,UAAU;GACR,GAAG,OAAO,UAAU,WAAW,QAAQ;GACvC,GAAG,OAAO,UAAU,WAAW,QAAQ;GACvC;GACA;GACD,CAAC;GACF;CACF,OAAO;;AAGT,SAAS,gBACP,YACA,WACS;CACT,IAAI,CAAC,YAAY,iBACf,OAAO;CAGT,WAAW,iBAAiB,GAAG,GAAG,OAAO,WAAW;EAClD,UAAU;GAAE;GAAG;GAAG;GAAO;GAAQ,CAAC;GAClC;CACF,OAAO;;AAGT,SAAS,eACP,MACA,cACA,WACM;CACN,MAAM,aAAa;CAEnB,IAAI,cAAc,YAAY,UAAU,EACtC;CAGF,IAAI,gBAAgB,YAAY,UAAU,EACxC;CAGF,IAAI,cACF,UAAU,aAAa"}
@@ -17,6 +17,9 @@ var styles_exports = /* @__PURE__ */ require("../../_virtual/_rolldown/runtime.c
17
17
  popoverStyles: () => popoverStyles,
18
18
  radioStyles: () => radioStyles,
19
19
  scrimStyles: () => scrimStyles,
20
+ selectContentStyles: () => selectContentStyles,
21
+ selectItemStyles: () => selectItemStyles,
22
+ selectStyles: () => selectStyles,
20
23
  styles: () => styles,
21
24
  switchStyles: () => switchStyles,
22
25
  tabsStyles: () => tabsStyles,
@@ -52,12 +55,13 @@ const defaultFoundation = {
52
55
  boxShadow: ""
53
56
  };
54
57
  function createStyleObject(baseStyles = {}) {
55
- return new Proxy({
58
+ const useVariants = jest.fn();
59
+ const proxy = new Proxy({
56
60
  ...defaultFoundation,
57
61
  ...baseStyles,
58
- useVariants: jest.fn()
62
+ useVariants
59
63
  }, { get(target, prop) {
60
- if (prop === "useVariants") return jest.fn();
64
+ if (prop === "useVariants") return useVariants;
61
65
  if (prop in target) return target[prop];
62
66
  if (typeof prop === "string") {
63
67
  if (prop.includes("color") || prop.includes("Color")) return "#000000";
@@ -68,15 +72,20 @@ function createStyleObject(baseStyles = {}) {
68
72
  if (prop.includes("gap") || prop.includes("Gap")) return 0;
69
73
  }
70
74
  } });
75
+ useVariants.mockReturnValue(proxy);
76
+ return proxy;
71
77
  }
72
78
  function createComponentStyles(styleKeys) {
73
- const result = { useVariants: jest.fn() };
79
+ const useVariants = jest.fn();
80
+ const result = { useVariants };
74
81
  for (const [key, baseStyles] of Object.entries(styleKeys)) result[key] = createStyleObject(baseStyles);
75
- return new Proxy(result, { get(target, prop) {
76
- if (prop === "useVariants") return jest.fn();
82
+ const proxy = new Proxy(result, { get(target, prop) {
83
+ if (prop === "useVariants") return useVariants;
77
84
  if (prop in target) return target[prop];
78
85
  if (typeof prop === "string") return createStyleObject();
79
86
  } });
87
+ useVariants.mockReturnValue(proxy);
88
+ return proxy;
80
89
  }
81
90
  const styles = createComponentStyles({ foundation: defaultFoundation });
82
91
  const buttonStyles = createComponentStyles({
@@ -150,7 +159,24 @@ const inputStyles = createComponentStyles({
150
159
  fontSize: 12,
151
160
  lineHeight: 16,
152
161
  color: "#666666"
153
- }
162
+ },
163
+ labelRequired: { color: "#6001D2" },
164
+ inputWrapper: {
165
+ backgroundColor: "#FFFFFF",
166
+ borderColor: "#E0E0E0"
167
+ },
168
+ inputWrapperStatic: {
169
+ paddingHorizontal: 12,
170
+ gap: 8
171
+ },
172
+ inputWrapperDynamic: {
173
+ borderWidth: 1,
174
+ borderRadius: 8
175
+ },
176
+ inputPlaceholder: { color: "#666666" },
177
+ startIcon: { color: "#666666" },
178
+ endIcon: { color: "#666666" },
179
+ helperIcon: { color: "#666666" }
154
180
  });
155
181
  const checkboxStyles = createComponentStyles({
156
182
  root: {
@@ -182,19 +208,25 @@ const switchStyles = createComponentStyles({
182
208
  alignItems: "center",
183
209
  gap: 8
184
210
  },
185
- track: {
211
+ switch: {
186
212
  width: 48,
187
213
  height: 28,
188
214
  borderRadius: 14,
189
215
  backgroundColor: "#E0E0E0"
190
216
  },
191
- thumb: {
217
+ handle: {
192
218
  width: 24,
193
219
  height: 24,
194
220
  borderRadius: 12,
195
221
  backgroundColor: "#FFFFFF"
196
222
  },
197
- label: {
223
+ handleIcon: {
224
+ fontSize: 16,
225
+ iconSizeToken: "sm",
226
+ lineHeight: 16,
227
+ color: "#000000"
228
+ },
229
+ text: {
198
230
  fontFamily: "YahooProductSans-Regular",
199
231
  fontSize: 14,
200
232
  lineHeight: 20,
@@ -477,6 +509,29 @@ const modalStyles = createComponentStyles({
477
509
  },
478
510
  titleDescriptionWrapper: { gap: 8 }
479
511
  });
512
+ const selectStyles = createComponentStyles({
513
+ startIcon: { color: "#666666" },
514
+ endIcon: { color: "#666666" }
515
+ });
516
+ const selectContentStyles = createComponentStyles({ root: {
517
+ backgroundColor: "#FFFFFF",
518
+ borderColor: "#E0E0E0",
519
+ borderWidth: 1,
520
+ borderRadius: 8,
521
+ boxShadow: "",
522
+ gap: 0,
523
+ paddingHorizontal: 0,
524
+ paddingVertical: 0
525
+ } });
526
+ const selectItemStyles = createComponentStyles({
527
+ root: {
528
+ backgroundColor: "#FFFFFF",
529
+ paddingHorizontal: 16,
530
+ paddingVertical: 8
531
+ },
532
+ text: { color: "#000000" },
533
+ endIcon: { color: "#6001D2" }
534
+ });
480
535
  //#endregion
481
536
  exports.avatarStyles = avatarStyles;
482
537
  exports.badgeStyles = badgeStyles;
@@ -493,6 +548,9 @@ exports.paginationStyles = paginationStyles;
493
548
  exports.popoverStyles = popoverStyles;
494
549
  exports.radioStyles = radioStyles;
495
550
  exports.scrimStyles = scrimStyles;
551
+ exports.selectContentStyles = selectContentStyles;
552
+ exports.selectItemStyles = selectItemStyles;
553
+ exports.selectStyles = selectStyles;
496
554
  exports.styles = styles;
497
555
  Object.defineProperty(exports, "styles_exports", {
498
556
  enumerable: true,
@@ -1,6 +1,6 @@
1
1
 
2
2
  declare namespace styles_d_exports {
3
- export { StyleProps, avatarStyles, badgeStyles, bottomSheetStyles, buttonStyles, checkboxStyles, chipStyles, dividerStyles, iconButtonStyles, inputStyles, linkStyles, modalStyles, paginationStyles, popoverStyles, radioStyles, scrimStyles, styles, switchStyles, tabsStyles, textStyles, toastStyles };
3
+ export { StyleProps, avatarStyles, badgeStyles, bottomSheetStyles, buttonStyles, checkboxStyles, chipStyles, dividerStyles, iconButtonStyles, inputStyles, linkStyles, modalStyles, paginationStyles, popoverStyles, radioStyles, scrimStyles, selectContentStyles, selectItemStyles, selectStyles, styles, switchStyles, tabsStyles, textStyles, toastStyles };
4
4
  }
5
5
  /**
6
6
  * Jest mock for generated/styles.
@@ -28,6 +28,9 @@ declare const tabsStyles: Record<string, unknown>;
28
28
  declare const paginationStyles: Record<string, unknown>;
29
29
  declare const toastStyles: Record<string, unknown>;
30
30
  declare const modalStyles: Record<string, unknown>;
31
+ declare const selectStyles: Record<string, unknown>;
32
+ declare const selectContentStyles: Record<string, unknown>;
33
+ declare const selectItemStyles: Record<string, unknown>;
31
34
  interface StyleProps {
32
35
  color?: string;
33
36
  backgroundColor?: string;
@@ -37,5 +40,5 @@ interface StyleProps {
37
40
  [key: string]: unknown;
38
41
  }
39
42
  //#endregion
40
- export { StyleProps, avatarStyles, badgeStyles, bottomSheetStyles, buttonStyles, checkboxStyles, chipStyles, dividerStyles, iconButtonStyles, inputStyles, linkStyles, modalStyles, paginationStyles, popoverStyles, radioStyles, scrimStyles, styles, styles_d_exports, switchStyles, tabsStyles, textStyles, toastStyles };
43
+ export { StyleProps, avatarStyles, badgeStyles, bottomSheetStyles, buttonStyles, checkboxStyles, chipStyles, dividerStyles, iconButtonStyles, inputStyles, linkStyles, modalStyles, paginationStyles, popoverStyles, radioStyles, scrimStyles, selectContentStyles, selectItemStyles, selectStyles, styles, styles_d_exports, switchStyles, tabsStyles, textStyles, toastStyles };
41
44
  //# 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,cA2Bd,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,gBAAA,EAAgB,MAAA;AAAA,cAuBhB,WAAA,EAAW,MAAA;AAAA,cAuCX,WAAA,EAAW,MAAA;AAAA,UAiDP,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":";;;;;;;;;;cA8Ga,MAAA,EAAM,MAAA;AAAA,cAKN,YAAA,EAAY,MAAA;AAAA,cAgCZ,UAAA,EAAU,MAAA;AAAA,cAUV,WAAA,EAAW,MAAA;AAAA,cAkEX,cAAA,EAAc,MAAA;AAAA,cA2Bd,YAAA,EAAY,MAAA;AAAA,cAkCZ,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,gBAAA,EAAgB,MAAA;AAAA,cAuBhB,WAAA,EAAW,MAAA;AAAA,cAuCX,WAAA,EAAW,MAAA;AAAA,cAiDX,YAAA,EAAY,MAAA;AAAA,cASZ,mBAAA,EAAmB,MAAA;AAAA,cAanB,gBAAA,EAAgB,MAAA;AAAA,UAeZ,UAAA;EACf,KAAA;EACA,eAAA;EACA,WAAA;EACA,WAAA;EACA,YAAA;EAAA,CACC,GAAA;AAAA"}