@webority/mobile-ui 0.18.1 → 0.19.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 (215) hide show
  1. package/lib/commonjs/canvasKit/index.js +1 -1
  2. package/lib/commonjs/components/Accordion/Accordion.js +1 -1
  3. package/lib/commonjs/components/AppBar/AppBar.js +1 -1
  4. package/lib/commonjs/components/Avatar/Avatar.js +1 -1
  5. package/lib/commonjs/components/Badge/Badge.js +1 -1
  6. package/lib/commonjs/components/Banner/Banner.js +1 -1
  7. package/lib/commonjs/components/BarChart/BarChart.js +1 -1
  8. package/lib/commonjs/components/BottomNavigation/BottomNavigation.js +1 -1
  9. package/lib/commonjs/components/BottomSheet/BottomSheet.js +1 -1
  10. package/lib/commonjs/components/Box/Box.js +1 -1
  11. package/lib/commonjs/components/Button/Button.js +1 -1
  12. package/lib/commonjs/components/Calendar/calendarStyles.js +1 -1
  13. package/lib/commonjs/components/Card/Card.js +1 -1
  14. package/lib/commonjs/components/Carousel/Carousel.js +1 -1
  15. package/lib/commonjs/components/Checkbox/Checkbox.js +1 -1
  16. package/lib/commonjs/components/Chip/Chip.js +1 -1
  17. package/lib/commonjs/components/ChoiceGroup/ChoiceGroup.js +1 -1
  18. package/lib/commonjs/components/Composer/Composer.js +1 -1
  19. package/lib/commonjs/components/DatePicker/DatePicker.js +1 -1
  20. package/lib/commonjs/components/DateRangePicker/DateRangePicker.js +1 -1
  21. package/lib/commonjs/components/Descriptions/Descriptions.js +1 -1
  22. package/lib/commonjs/components/Dialog/Dialog.js +1 -1
  23. package/lib/commonjs/components/EmptyState/EmptyState.js +1 -1
  24. package/lib/commonjs/components/FieldBase/ChoiceText.js +1 -1
  25. package/lib/commonjs/components/FieldBase/FieldBase.js +1 -1
  26. package/lib/commonjs/components/FieldBase/index.js +1 -1
  27. package/lib/commonjs/components/FieldBase/useFloatingLabel.js +1 -1
  28. package/lib/commonjs/components/FilePicker/FilePicker.js +1 -1
  29. package/lib/commonjs/components/FloatingActionButton/FloatingActionButton.js +1 -1
  30. package/lib/commonjs/components/ImageGallery/ImageGallery.js +1 -1
  31. package/lib/commonjs/components/InlineSelect/InlineSelect.js +1 -1
  32. package/lib/commonjs/components/Input/Input.js +1 -1
  33. package/lib/commonjs/components/ListItem/ListItem.js +1 -1
  34. package/lib/commonjs/components/Markdown/Markdown.js +1 -1
  35. package/lib/commonjs/components/MessageBubble/MessageBubble.js +1 -1
  36. package/lib/commonjs/components/MessageList/MessageList.js +1 -1
  37. package/lib/commonjs/components/Modal/Modal.js +1 -1
  38. package/lib/commonjs/components/NumberInput/NumberInput.js +1 -1
  39. package/lib/commonjs/components/OTPInput/OTPInput.js +1 -1
  40. package/lib/commonjs/components/OptionSheet/OptionSheet.js +1 -1
  41. package/lib/commonjs/components/PaymentResult/PaymentResult.js +1 -1
  42. package/lib/commonjs/components/PhoneNumberInput/PhoneNumberInput.js +1 -1
  43. package/lib/commonjs/components/PickerTrigger/PickerTrigger.js +1 -1
  44. package/lib/commonjs/components/ProfileCompletion/ProfileCompletion.js +1 -1
  45. package/lib/commonjs/components/ProfilePicker/ProfilePicker.js +1 -1
  46. package/lib/commonjs/components/ProgressBar/ProgressBar.js +1 -1
  47. package/lib/commonjs/components/Radio/Radio.js +1 -1
  48. package/lib/commonjs/components/Radio/RadioDot.js +1 -1
  49. package/lib/commonjs/components/Rating/Rating.js +1 -1
  50. package/lib/commonjs/components/ScannerOverlay/ScannerOverlay.js +1 -1
  51. package/lib/commonjs/components/SearchBar/SearchBar.js +1 -1
  52. package/lib/commonjs/components/SegmentedControl/SegmentedControl.js +1 -1
  53. package/lib/commonjs/components/Select/Select.js +1 -1
  54. package/lib/commonjs/components/Skeleton/Skeleton.js +1 -1
  55. package/lib/commonjs/components/Skeleton/SkeletonContent.js +1 -1
  56. package/lib/commonjs/components/SlideToConfirm/SlideToConfirm.js +1 -1
  57. package/lib/commonjs/components/Slider/Slider.js +1 -1
  58. package/lib/commonjs/components/SliderField/SliderField.js +1 -1
  59. package/lib/commonjs/components/Spinner/Spinner.js +1 -1
  60. package/lib/commonjs/components/StatusBadge/StatusBadge.js +1 -1
  61. package/lib/commonjs/components/Stepper/Stepper.js +1 -1
  62. package/lib/commonjs/components/Swipeable/Swipeable.js +1 -1
  63. package/lib/commonjs/components/Switch/Switch.js +1 -1
  64. package/lib/commonjs/components/Tabs/Tabs.js +1 -1
  65. package/lib/commonjs/components/TagInput/TagInput.js +1 -1
  66. package/lib/commonjs/components/TimePicker/TimePicker.js +1 -1
  67. package/lib/commonjs/components/Timeline/Timeline.js +1 -1
  68. package/lib/commonjs/components/Toast/Toast.js +1 -1
  69. package/lib/commonjs/components/Tooltip/Tooltip.js +1 -1
  70. package/lib/commonjs/components/Tour/Tour.js +1 -1
  71. package/lib/commonjs/components/TypingIndicator/TypingIndicator.js +1 -1
  72. package/lib/commonjs/components/WheelPicker/Wheel.js +1 -1
  73. package/lib/commonjs/index.js +1 -1
  74. package/lib/commonjs/network/NetworkStatusBanner.js +1 -1
  75. package/lib/commonjs/theme/componentSizes.js +1 -0
  76. package/lib/commonjs/theme/componentTokens.js +1 -0
  77. package/lib/commonjs/theme/index.js +1 -1
  78. package/lib/commonjs/theme/merge.js +1 -1
  79. package/lib/commonjs/theme/retiredThemeKeys.js +1 -0
  80. package/lib/commonjs/theme/scale.js +1 -0
  81. package/lib/commonjs/theme/tokens.js +1 -1
  82. package/lib/commonjs/utils/index.js +1 -1
  83. package/lib/module/canvasKit/index.js +1 -1
  84. package/lib/module/components/Accordion/Accordion.js +1 -1
  85. package/lib/module/components/AppBar/AppBar.js +1 -1
  86. package/lib/module/components/Avatar/Avatar.js +1 -1
  87. package/lib/module/components/Badge/Badge.js +1 -1
  88. package/lib/module/components/Banner/Banner.js +1 -1
  89. package/lib/module/components/BarChart/BarChart.js +1 -1
  90. package/lib/module/components/BottomNavigation/BottomNavigation.js +1 -1
  91. package/lib/module/components/BottomSheet/BottomSheet.js +1 -1
  92. package/lib/module/components/Box/Box.js +1 -1
  93. package/lib/module/components/Button/Button.js +1 -1
  94. package/lib/module/components/Calendar/calendarStyles.js +1 -1
  95. package/lib/module/components/Card/Card.js +1 -1
  96. package/lib/module/components/Carousel/Carousel.js +1 -1
  97. package/lib/module/components/Checkbox/Checkbox.js +1 -1
  98. package/lib/module/components/Chip/Chip.js +1 -1
  99. package/lib/module/components/ChoiceGroup/ChoiceGroup.js +1 -1
  100. package/lib/module/components/Composer/Composer.js +1 -1
  101. package/lib/module/components/DatePicker/DatePicker.js +1 -1
  102. package/lib/module/components/DateRangePicker/DateRangePicker.js +1 -1
  103. package/lib/module/components/Descriptions/Descriptions.js +1 -1
  104. package/lib/module/components/Dialog/Dialog.js +1 -1
  105. package/lib/module/components/EmptyState/EmptyState.js +1 -1
  106. package/lib/module/components/FieldBase/ChoiceText.js +1 -1
  107. package/lib/module/components/FieldBase/FieldBase.js +1 -1
  108. package/lib/module/components/FieldBase/index.js +1 -1
  109. package/lib/module/components/FieldBase/useFloatingLabel.js +1 -1
  110. package/lib/module/components/FilePicker/FilePicker.js +1 -1
  111. package/lib/module/components/FloatingActionButton/FloatingActionButton.js +1 -1
  112. package/lib/module/components/ImageGallery/ImageGallery.js +1 -1
  113. package/lib/module/components/InlineSelect/InlineSelect.js +1 -1
  114. package/lib/module/components/Input/Input.js +1 -1
  115. package/lib/module/components/ListItem/ListItem.js +1 -1
  116. package/lib/module/components/Markdown/Markdown.js +1 -1
  117. package/lib/module/components/MessageBubble/MessageBubble.js +1 -1
  118. package/lib/module/components/MessageList/MessageList.js +1 -1
  119. package/lib/module/components/Modal/Modal.js +1 -1
  120. package/lib/module/components/NumberInput/NumberInput.js +1 -1
  121. package/lib/module/components/OTPInput/OTPInput.js +1 -1
  122. package/lib/module/components/OptionSheet/OptionSheet.js +1 -1
  123. package/lib/module/components/PaymentResult/PaymentResult.js +1 -1
  124. package/lib/module/components/PhoneNumberInput/PhoneNumberInput.js +1 -1
  125. package/lib/module/components/PickerTrigger/PickerTrigger.js +1 -1
  126. package/lib/module/components/ProfileCompletion/ProfileCompletion.js +1 -1
  127. package/lib/module/components/ProfilePicker/ProfilePicker.js +1 -1
  128. package/lib/module/components/ProgressBar/ProgressBar.js +1 -1
  129. package/lib/module/components/Radio/Radio.js +1 -1
  130. package/lib/module/components/Radio/RadioDot.js +1 -1
  131. package/lib/module/components/Rating/Rating.js +1 -1
  132. package/lib/module/components/ScannerOverlay/ScannerOverlay.js +1 -1
  133. package/lib/module/components/SearchBar/SearchBar.js +1 -1
  134. package/lib/module/components/SegmentedControl/SegmentedControl.js +1 -1
  135. package/lib/module/components/Select/Select.js +1 -1
  136. package/lib/module/components/Skeleton/Skeleton.js +1 -1
  137. package/lib/module/components/Skeleton/SkeletonContent.js +1 -1
  138. package/lib/module/components/SlideToConfirm/SlideToConfirm.js +1 -1
  139. package/lib/module/components/Slider/Slider.js +1 -1
  140. package/lib/module/components/SliderField/SliderField.js +1 -1
  141. package/lib/module/components/Spinner/Spinner.js +1 -1
  142. package/lib/module/components/StatusBadge/StatusBadge.js +1 -1
  143. package/lib/module/components/Stepper/Stepper.js +1 -1
  144. package/lib/module/components/Swipeable/Swipeable.js +1 -1
  145. package/lib/module/components/Switch/Switch.js +1 -1
  146. package/lib/module/components/Tabs/Tabs.js +1 -1
  147. package/lib/module/components/TagInput/TagInput.js +1 -1
  148. package/lib/module/components/TimePicker/TimePicker.js +1 -1
  149. package/lib/module/components/Timeline/Timeline.js +1 -1
  150. package/lib/module/components/Toast/Toast.js +1 -1
  151. package/lib/module/components/Tooltip/Tooltip.js +1 -1
  152. package/lib/module/components/Tour/Tour.js +1 -1
  153. package/lib/module/components/TypingIndicator/TypingIndicator.js +1 -1
  154. package/lib/module/components/WheelPicker/Wheel.js +1 -1
  155. package/lib/module/index.js +1 -1
  156. package/lib/module/network/NetworkStatusBanner.js +1 -1
  157. package/lib/module/theme/componentSizes.js +1 -0
  158. package/lib/module/theme/componentTokens.js +1 -0
  159. package/lib/module/theme/index.js +1 -1
  160. package/lib/module/theme/merge.js +1 -1
  161. package/lib/module/theme/retiredThemeKeys.js +1 -0
  162. package/lib/module/theme/scale.js +1 -0
  163. package/lib/module/theme/tokens.js +1 -1
  164. package/lib/module/utils/index.js +1 -1
  165. package/lib/typescript/commonjs/components/BottomNavigation/BottomNavigation.d.ts +6 -6
  166. package/lib/typescript/commonjs/components/Box/Box.d.ts +18 -20
  167. package/lib/typescript/commonjs/components/Calendar/calendarStyles.d.ts +1 -1
  168. package/lib/typescript/commonjs/components/Card/Card.d.ts +1 -1
  169. package/lib/typescript/commonjs/components/FieldBase/FieldBase.d.ts +2 -8
  170. package/lib/typescript/commonjs/components/FieldBase/index.d.ts +1 -1
  171. package/lib/typescript/commonjs/components/FieldBase/useFloatingLabel.d.ts +3 -2
  172. package/lib/typescript/commonjs/components/InlineSelect/InlineSelect.d.ts +1 -1
  173. package/lib/typescript/commonjs/components/Input/Input.d.ts +1 -1
  174. package/lib/typescript/commonjs/components/PhoneNumberInput/PhoneNumberInput.d.ts +1 -1
  175. package/lib/typescript/commonjs/components/SearchBar/SearchBar.d.ts +1 -1
  176. package/lib/typescript/commonjs/components/SegmentedControl/SegmentedControl.d.ts +1 -15
  177. package/lib/typescript/commonjs/components/Select/Select.d.ts +2 -2
  178. package/lib/typescript/commonjs/components/Skeleton/Skeleton.d.ts +1 -1
  179. package/lib/typescript/commonjs/components/Tabs/Tabs.d.ts +1 -1
  180. package/lib/typescript/commonjs/index.d.ts +4 -4
  181. package/lib/typescript/commonjs/theme/componentSizes.d.ts +27 -0
  182. package/lib/typescript/commonjs/theme/componentTokens.d.ts +762 -0
  183. package/lib/typescript/commonjs/theme/index.d.ts +4 -1
  184. package/lib/typescript/commonjs/theme/retiredThemeKeys.d.ts +22 -0
  185. package/lib/typescript/commonjs/theme/scale.d.ts +5 -0
  186. package/lib/typescript/commonjs/theme/types.d.ts +6 -790
  187. package/lib/typescript/commonjs/utils/index.d.ts +0 -2
  188. package/lib/typescript/module/components/BottomNavigation/BottomNavigation.d.ts +6 -6
  189. package/lib/typescript/module/components/Box/Box.d.ts +18 -20
  190. package/lib/typescript/module/components/Calendar/calendarStyles.d.ts +1 -1
  191. package/lib/typescript/module/components/Card/Card.d.ts +1 -1
  192. package/lib/typescript/module/components/FieldBase/FieldBase.d.ts +2 -8
  193. package/lib/typescript/module/components/FieldBase/index.d.ts +1 -1
  194. package/lib/typescript/module/components/FieldBase/useFloatingLabel.d.ts +3 -2
  195. package/lib/typescript/module/components/InlineSelect/InlineSelect.d.ts +1 -1
  196. package/lib/typescript/module/components/Input/Input.d.ts +1 -1
  197. package/lib/typescript/module/components/PhoneNumberInput/PhoneNumberInput.d.ts +1 -1
  198. package/lib/typescript/module/components/SearchBar/SearchBar.d.ts +1 -1
  199. package/lib/typescript/module/components/SegmentedControl/SegmentedControl.d.ts +1 -15
  200. package/lib/typescript/module/components/Select/Select.d.ts +2 -2
  201. package/lib/typescript/module/components/Skeleton/Skeleton.d.ts +1 -1
  202. package/lib/typescript/module/components/Tabs/Tabs.d.ts +1 -1
  203. package/lib/typescript/module/index.d.ts +4 -4
  204. package/lib/typescript/module/theme/componentSizes.d.ts +27 -0
  205. package/lib/typescript/module/theme/componentTokens.d.ts +762 -0
  206. package/lib/typescript/module/theme/index.d.ts +4 -1
  207. package/lib/typescript/module/theme/retiredThemeKeys.d.ts +22 -0
  208. package/lib/typescript/module/theme/scale.d.ts +5 -0
  209. package/lib/typescript/module/theme/types.d.ts +6 -790
  210. package/lib/typescript/module/utils/index.d.ts +0 -2
  211. package/package.json +12 -2
  212. package/lib/commonjs/utils/spacing.js +0 -1
  213. package/lib/module/utils/spacing.js +0 -1
  214. package/lib/typescript/commonjs/utils/spacing.d.ts +0 -61
  215. package/lib/typescript/module/utils/spacing.d.ts +0 -61
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Toast=void 0;var _react=require("react"),_reactNative=require("react-native"),_usePresenceMotion=require("../../hooks/usePresenceMotion.js"),_index=require("../../theme/index.js"),_corners=require("../../utils/corners.js"),_jsxRuntime=require("react/jsx-runtime");const DEFAULT_SWIPE_DISMISS_THRESHOLD=80,DEFAULT_SWIPE_VELOCITY_THRESHOLD=.5,DEFAULT_STACK_OFFSET=8,DEFAULT_STACK_SCALE_STEP=.04,DEFAULT_AUTO_DISMISS_MS=3e3,WEB_ACTION_MIN_DURATION_MS=8e3,COUNTDOWN_BAR_HEIGHT=3,ACTION_HIT_SLOP={top:8,bottom:8,left:8,right:8},DISMISS_ACTIONS=[{name:"dismiss",label:"Dismiss"}],Toast=({toast:e,index:t,onDismiss:i,shownAt:a,runtime:r})=>{const n=(0,_index.useTheme)(),s=(0,_usePresenceMotion.usePresenceMotion)(),o=s.duration("fast"),c=e.variant??"default",l=e.position??"bottom",u=(0,_react.useMemo)(()=>buildStyles(n),[n]),d=(0,_react.useMemo)(()=>tintFor(n,c),[n,c]),m=(0,_react.useMemo)(()=>inkFor(n,c),[n,c]),_=n.components.toast,p=_?.iconCircleSize??28,v=_?.iconCircleBorderRadius??14,g=_?.iconGlyphFontSize??16,h=_?.tintBarWidth??0,f=_?.swipeDismissThreshold??80,x=_?.swipeVelocityThreshold??.5,N=_?.stackOffset??8,b=_?.stackScaleStep??.04,S=_?.stackMinScale??.9,A=_?.defaultDurationMs??3e3,y=_?.enableSwipeDismiss??!0,w=_?.enterSpringDamping??18,T=_?.enterSpringStiffness??180,R=_?.enterSpringMass??1,M="top"===l?-120:120,D=(0,_react.useRef)((0,_index.createAnimatedValue)(s.reduced?0:M)).current,V=(0,_react.useRef)((0,_index.createAnimatedValue)(0)).current,C=(0,_react.useRef)((0,_index.createAnimatedValue)(0)).current,j=(0,_react.useRef)(!1),E="top"===l?t*N:-t*N,I=Math.max(1-t*b,S),k=(0,_react.useRef)((0,_index.createAnimatedValue)(E)).current;(0,_react.useEffect)(()=>{(0,_index.setNativeValue)(k,E)},[E,k]);const O=(0,_react.useMemo)(()=>_reactNative.Animated.add(D,k),[D,k]),P=void 0!==e.action,L=e.duration??A,F=L>0&&P&&"web"===_reactNative.Platform.OS?Math.max(L,8e3):L,B=F<=0||P&&!0===r?.screenReaderOn,H=!0===e.countdown&&!B,z=(0,_react.useRef)((0,_index.createAnimatedValue)(1)).current,U=(0,_react.useRef)({initialised:!1,timer:null,remaining:0,startedAt:0}),G=(0,_react.useRef)({touch:!1,pan:!1,hover:!1}),q=(0,_react.useRef)(()=>{}),W=(0,_react.useRef)({id:e.id,totalMs:F,shownAt:a,runtime:r,persistent:B,animateBar:!1});W.current={id:e.id,totalMs:F,shownAt:a,runtime:r,persistent:B,animateBar:H&&!s.reduced};const $=(0,_react.useCallback)(()=>{const e=U.current,t=W.current,i=G.current;if(!e.initialised){e.initialised=!0;const i=t.runtime?.readRemaining(t.id),a=void 0===t.shownAt?0:Date.now()-t.shownAt;e.remaining=i??(t.totalMs>0?Math.max(t.totalMs-a,0):0),t.totalMs>0&&e.remaining<t.totalMs&&(0,_index.setNativeValue)(z,e.remaining/t.totalMs)}const a=!(t.persistent||j.current||i.touch||i.pan||i.hover);a&&null===e.timer?(e.startedAt=Date.now(),e.timer=setTimeout(()=>{e.timer=null,e.remaining=0,q.current()},e.remaining),t.animateBar&&_reactNative.Animated.timing(z,{toValue:0,duration:e.remaining,easing:_reactNative.Easing.linear,useNativeDriver:!0}).start()):a||null===e.timer||(clearTimeout(e.timer),e.timer=null,e.remaining=Math.max(e.remaining-(Date.now()-e.startedAt),0),z.stopAnimation())},[z]),dismiss=()=>{if(j.current)return;j.current=!0,$();const t=[_reactNative.Animated.timing(C,{toValue:0,duration:o,easing:_reactNative.Easing.bezier(...n.motion.easing.accelerate),useNativeDriver:!0})];s.reduced||t.push(_reactNative.Animated.timing(D,{toValue:M,duration:n.motion.duration.fast,easing:_reactNative.Easing.bezier(...n.motion.easing.accelerate),useNativeDriver:!0})),_reactNative.Animated.parallel(t).start(()=>i(e.id))};q.current=dismiss,(0,_react.useEffect)(()=>{const e=s.reduced?_reactNative.Animated.timing(C,{toValue:1,duration:o,useNativeDriver:!0}):_reactNative.Animated.parallel([_reactNative.Animated.spring(D,{toValue:0,damping:w,stiffness:T,mass:R,useNativeDriver:!0}),_reactNative.Animated.timing(C,{toValue:1,duration:o,useNativeDriver:!0})]);return e.start(),()=>e.stop()},[]),(0,_react.useEffect)(()=>{$()},[B,$]),(0,_react.useEffect)(()=>()=>{const e=U.current,t=W.current;null!==e.timer&&(clearTimeout(e.timer),e.timer=null,e.remaining=Math.max(e.remaining-(Date.now()-e.startedAt),0)),z.stopAnimation(),e.initialised&&t.totalMs>0&&!j.current&&t.runtime?.writeRemaining(t.id,e.remaining)},[z]);const K=(0,_react.useCallback)((e,t)=>{G.current[e]=t,$()},[$]),X=(0,_react.useCallback)(()=>K("touch",!0),[K]),Y=(0,_react.useCallback)(e=>K("touch",(e.nativeEvent.touches?.length??0)>0),[K]),J=(0,_react.useCallback)(()=>K("hover",!0),[K]),Q=(0,_react.useCallback)(()=>K("hover",!1),[K]),Z=(0,_react.useMemo)(()=>_reactNative.PanResponder.create({onMoveShouldSetPanResponder:(e,t)=>Math.abs(t.dx)>Math.abs(t.dy)&&Math.abs(t.dx)>6,onPanResponderGrant:()=>K("pan",!0),onPanResponderMove:(e,t)=>{(0,_index.setNativeValue)(V,t.dx);const i=1-.7*Math.min(Math.abs(t.dx)/200,1);(0,_index.setNativeValue)(C,i)},onPanResponderTerminate:()=>{if(K("pan",!1),s.reduced)return(0,_index.setNativeValue)(V,0),void _reactNative.Animated.timing(C,{toValue:1,duration:o,useNativeDriver:!0}).start();_reactNative.Animated.parallel([_reactNative.Animated.spring(V,{toValue:0,damping:n.motion.spring.snappy.damping,stiffness:n.motion.spring.snappy.stiffness,mass:n.motion.spring.snappy.mass,useNativeDriver:!0}),_reactNative.Animated.timing(C,{toValue:1,duration:o,useNativeDriver:!0})]).start()},onPanResponderRelease:(t,a)=>{if(Math.abs(a.dx)>f||Math.abs(a.vx)>x){const t=a.dx>=0?1:-1;j.current=!0,K("pan",!1);const r=[_reactNative.Animated.timing(C,{toValue:0,duration:o,useNativeDriver:!0})];s.reduced||r.push(_reactNative.Animated.timing(V,{toValue:500*t,duration:n.motion.duration.fast,useNativeDriver:!0})),_reactNative.Animated.parallel(r).start(()=>i(e.id))}else K("pan",!1),s.reduced?((0,_index.setNativeValue)(V,0),_reactNative.Animated.timing(C,{toValue:1,duration:o,useNativeDriver:!0}).start()):_reactNative.Animated.parallel([_reactNative.Animated.spring(V,{toValue:0,useNativeDriver:!0}),_reactNative.Animated.spring(C,{toValue:1,useNativeDriver:!0})]).start()}}),[V,C,K,f,x,o,s.reduced,n.motion.duration.fast,n.motion.spring.snappy.damping,n.motion.spring.snappy.stiffness,n.motion.spring.snappy.mass,i,e.id]),ee={accessibilityActions:DISMISS_ACTIONS,onAccessibilityAction:e=>{"dismiss"===e.nativeEvent.actionName&&dismiss()}},[te,ie]=(0,_react.useState)(0),ae=(0,_react.useMemo)(()=>z.interpolate({inputRange:[0,1],outputRange:[-te,0]}),[z,te]),re=e.description?`${e.message}. ${e.description}`:e.message,ne=e.action&&H?`${e.action.label}, ${Math.ceil(F/1e3)} seconds`:e.action?.label;return(0,_jsxRuntime.jsxs)(_reactNative.Animated.View,{...y?Z.panHandlers:{},...P?{}:{accessible:!0,...ee},..."web"===_reactNative.Platform.OS?{onPointerEnter:J,onPointerLeave:Q}:{},onTouchStart:X,onTouchEnd:Y,onTouchCancel:Y,accessibilityLabel:re,testID:e.testID,style:[u.container,{backgroundColor:n.colors.background.elevated,borderRadius:n.radius.lg,..._corners.smoothCorners,padding:n.spacing.md,...n.shadows.md,shadowColor:n.shadows.md.shadowColor,opacity:C,transform:[{translateY:O},{translateX:V},{scale:I}]},e.style,e.containerStyle],children:[h>0?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[u.tintBar,{width:h,backgroundColor:d}]}):null,(0,_jsxRuntime.jsxs)(_reactNative.View,{style:u.row,children:[(()=>{if(e.icon)return e.icon;const t=defaultGlyph(c);return t?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[u.iconCircle,{width:p,height:p,borderRadius:v,..._corners.smoothCorners,backgroundColor:d+"22"},e.iconCircleStyle],children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[u.iconGlyph,{color:m,fontSize:g}],accessible:!1,children:t})}):null})(),(0,_jsxRuntime.jsxs)(_reactNative.View,{style:u.textBlock,children:[(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[u.message,{color:n.colors.text.primary,fontSize:n.typography.fontSize.base,...(0,_index.fontFor)(n,"semibold")},e.textStyle,e.messageStyle],numberOfLines:2,children:e.message}),e.description?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[u.description,{color:n.colors.text.secondary,fontSize:n.typography.fontSize.sm}],numberOfLines:3,children:e.description}):null]}),e.action?(0,_jsxRuntime.jsx)(_reactNative.Pressable,{accessibilityRole:"button",accessibilityLabel:ne,hitSlop:ACTION_HIT_SLOP,...ee,onPress:()=>{e.action?.onPress(),dismiss()},style:({pressed:t})=>[u.actionBtn,{backgroundColor:t?n.colors.surface.pressed:"transparent"},e.actionButtonStyle],children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:{color:d,fontSize:n.typography.fontSize.sm,...(0,_index.fontFor)(n,"semibold")},numberOfLines:1,children:e.action.label})}):null]}),H?(0,_jsxRuntime.jsxs)(_reactNative.View,{pointerEvents:"none",accessibilityElementsHidden:!0,importantForAccessibility:"no-hide-descendants",onLayout:e=>ie(e.nativeEvent.layout.width),testID:"toast-countdown",style:[u.countdownTrack,{backgroundColor:d+"22"}],children:[s.reduced?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[u.countdownFill,{backgroundColor:d}]}):null,!s.reduced&&te>0?(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:[u.countdownFill,{backgroundColor:d,transform:[{translateX:ae}]}]}):null]}):null]})};exports.Toast=Toast;const tintFor=(e,t)=>{switch(t){case"success":return e.colors.success;case"error":return e.colors.error;case"warning":return e.colors.warning;case"info":return e.colors.info;default:return e.colors.text.primary}},inkFor=(e,t)=>{switch(t){case"success":return e.colors.toneText.success;case"error":return e.colors.toneText.error;case"warning":return e.colors.toneText.warning;case"info":return e.colors.toneText.info;default:return e.colors.text.primary}},defaultGlyph=e=>{switch(e){case"success":return"✓";case"error":return"×";case"warning":return"!";case"info":return"i";default:return""}},buildStyles=e=>_reactNative.StyleSheet.create({container:{overflow:"hidden",marginVertical:4},tintBar:{position:"absolute",left:0,top:0,bottom:0},row:{flexDirection:"row",alignItems:"center",paddingLeft:8},iconCircle:{alignItems:"center",justifyContent:"center",marginRight:12},iconGlyph:{fontWeight:"700",lineHeight:18},textBlock:{flex:1,paddingRight:8},message:{lineHeight:20},description:{marginTop:2,lineHeight:18},countdownTrack:{position:"absolute",left:0,right:0,bottom:0,height:3,overflow:"hidden"},countdownFill:{position:"absolute",left:0,right:0,top:0,bottom:0},actionBtn:{paddingHorizontal:10,paddingVertical:6,borderRadius:8,..._corners.smoothCorners,marginLeft:8}});var _default=exports.default=Toast;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Toast=void 0;var _react=require("react"),_reactNative=require("react-native"),_usePresenceMotion=require("../../hooks/usePresenceMotion.js"),_index=require("../../theme/index.js"),_corners=require("../../utils/corners.js"),_jsxRuntime=require("react/jsx-runtime");const DEFAULT_SWIPE_DISMISS_THRESHOLD=80,DEFAULT_SWIPE_VELOCITY_THRESHOLD=.5,DEFAULT_STACK_OFFSET=8,DEFAULT_STACK_SCALE_STEP=.04,DEFAULT_AUTO_DISMISS_MS=3e3,WEB_ACTION_MIN_DURATION_MS=8e3,COUNTDOWN_BAR_HEIGHT=3,ACTION_HIT_SLOP={top:10,bottom:10,left:10,right:10},DISMISS_ACTIONS=[{name:"dismiss",label:"Dismiss"}],Toast=({toast:e,index:t,onDismiss:i,shownAt:a,runtime:n})=>{const r=(0,_index.useTheme)(),s=(0,_usePresenceMotion.usePresenceMotion)(),o=s.duration("fast"),c=e.variant??"default",l=e.position??"bottom",u=(0,_react.useMemo)(()=>buildStyles(r),[r]),d=(0,_react.useMemo)(()=>tintFor(r,c),[r,c]),m=(0,_react.useMemo)(()=>inkFor(r,c),[r,c]),_=r.components.toast,p=_?.iconCircleSize??28,g=(0,_index.fontSizeOf)(r,_.iconGlyphText,"components.toast.iconGlyphText"),v=_?.tintBarWidth??0,h=_?.swipeDismissThreshold??80,f=_?.swipeVelocityThreshold??.5,x=_?.stackOffset??8,N=_?.stackScaleStep??.04,b=_?.stackMinScale??.9,S=_?.defaultDurationMs??3e3,y=_?.enableSwipeDismiss??!0,A=_?.enterSpringDamping??18,T=_?.enterSpringStiffness??180,w=_?.enterSpringMass??1,R="top"===l?-120:120,M=(0,_react.useRef)((0,_index.createAnimatedValue)(s.reduced?0:R)).current,D=(0,_react.useRef)((0,_index.createAnimatedValue)(0)).current,V=(0,_react.useRef)((0,_index.createAnimatedValue)(0)).current,C=(0,_react.useRef)(!1),j="top"===l?t*x:-t*x,E=Math.max(1-t*N,b),I=(0,_react.useRef)((0,_index.createAnimatedValue)(j)).current;(0,_react.useEffect)(()=>{(0,_index.setNativeValue)(I,j)},[j,I]);const k=(0,_react.useMemo)(()=>_reactNative.Animated.add(M,I),[M,I]),O=void 0!==e.action,P=e.duration??S,L=P>0&&O&&"web"===_reactNative.Platform.OS?Math.max(P,8e3):P,F=L<=0||O&&!0===n?.screenReaderOn,H=!0===e.countdown&&!F,B=(0,_react.useRef)((0,_index.createAnimatedValue)(1)).current,z=(0,_react.useRef)({initialised:!1,timer:null,remaining:0,startedAt:0}),G=(0,_react.useRef)({touch:!1,pan:!1,hover:!1}),U=(0,_react.useRef)(()=>{}),q=(0,_react.useRef)({id:e.id,totalMs:L,shownAt:a,runtime:n,persistent:F,animateBar:!1});q.current={id:e.id,totalMs:L,shownAt:a,runtime:n,persistent:F,animateBar:H&&!s.reduced};const W=(0,_react.useCallback)(()=>{const e=z.current,t=q.current,i=G.current;if(!e.initialised){e.initialised=!0;const i=t.runtime?.readRemaining(t.id),a=void 0===t.shownAt?0:Date.now()-t.shownAt;e.remaining=i??(t.totalMs>0?Math.max(t.totalMs-a,0):0),t.totalMs>0&&e.remaining<t.totalMs&&(0,_index.setNativeValue)(B,e.remaining/t.totalMs)}const a=!(t.persistent||C.current||i.touch||i.pan||i.hover);a&&null===e.timer?(e.startedAt=Date.now(),e.timer=setTimeout(()=>{e.timer=null,e.remaining=0,U.current()},e.remaining),t.animateBar&&_reactNative.Animated.timing(B,{toValue:0,duration:e.remaining,easing:_reactNative.Easing.linear,useNativeDriver:!0}).start()):a||null===e.timer||(clearTimeout(e.timer),e.timer=null,e.remaining=Math.max(e.remaining-(Date.now()-e.startedAt),0),B.stopAnimation())},[B]),dismiss=()=>{if(C.current)return;C.current=!0,W();const t=[_reactNative.Animated.timing(V,{toValue:0,duration:o,easing:_reactNative.Easing.bezier(...r.motion.easing.accelerate),useNativeDriver:!0})];s.reduced||t.push(_reactNative.Animated.timing(M,{toValue:R,duration:r.motion.duration.fast,easing:_reactNative.Easing.bezier(...r.motion.easing.accelerate),useNativeDriver:!0})),_reactNative.Animated.parallel(t).start(()=>i(e.id))};U.current=dismiss,(0,_react.useEffect)(()=>{const e=s.reduced?_reactNative.Animated.timing(V,{toValue:1,duration:o,useNativeDriver:!0}):_reactNative.Animated.parallel([_reactNative.Animated.spring(M,{toValue:0,damping:A,stiffness:T,mass:w,useNativeDriver:!0}),_reactNative.Animated.timing(V,{toValue:1,duration:o,useNativeDriver:!0})]);return e.start(),()=>e.stop()},[]),(0,_react.useEffect)(()=>{W()},[F,W]),(0,_react.useEffect)(()=>()=>{const e=z.current,t=q.current;null!==e.timer&&(clearTimeout(e.timer),e.timer=null,e.remaining=Math.max(e.remaining-(Date.now()-e.startedAt),0)),B.stopAnimation(),e.initialised&&t.totalMs>0&&!C.current&&t.runtime?.writeRemaining(t.id,e.remaining)},[B]);const $=(0,_react.useCallback)((e,t)=>{G.current[e]=t,W()},[W]),K=(0,_react.useCallback)(()=>$("touch",!0),[$]),X=(0,_react.useCallback)(e=>$("touch",(e.nativeEvent.touches?.length??0)>0),[$]),Y=(0,_react.useCallback)(()=>$("hover",!0),[$]),J=(0,_react.useCallback)(()=>$("hover",!1),[$]),Q=(0,_react.useMemo)(()=>_reactNative.PanResponder.create({onMoveShouldSetPanResponder:(e,t)=>Math.abs(t.dx)>Math.abs(t.dy)&&Math.abs(t.dx)>6,onPanResponderGrant:()=>$("pan",!0),onPanResponderMove:(e,t)=>{(0,_index.setNativeValue)(D,t.dx);const i=1-.7*Math.min(Math.abs(t.dx)/200,1);(0,_index.setNativeValue)(V,i)},onPanResponderTerminate:()=>{if($("pan",!1),s.reduced)return(0,_index.setNativeValue)(D,0),void _reactNative.Animated.timing(V,{toValue:1,duration:o,useNativeDriver:!0}).start();_reactNative.Animated.parallel([_reactNative.Animated.spring(D,{toValue:0,damping:r.motion.spring.snappy.damping,stiffness:r.motion.spring.snappy.stiffness,mass:r.motion.spring.snappy.mass,useNativeDriver:!0}),_reactNative.Animated.timing(V,{toValue:1,duration:o,useNativeDriver:!0})]).start()},onPanResponderRelease:(t,a)=>{if(Math.abs(a.dx)>h||Math.abs(a.vx)>f){const t=a.dx>=0?1:-1;C.current=!0,$("pan",!1);const n=[_reactNative.Animated.timing(V,{toValue:0,duration:o,useNativeDriver:!0})];s.reduced||n.push(_reactNative.Animated.timing(D,{toValue:500*t,duration:r.motion.duration.fast,useNativeDriver:!0})),_reactNative.Animated.parallel(n).start(()=>i(e.id))}else $("pan",!1),s.reduced?((0,_index.setNativeValue)(D,0),_reactNative.Animated.timing(V,{toValue:1,duration:o,useNativeDriver:!0}).start()):_reactNative.Animated.parallel([_reactNative.Animated.spring(D,{toValue:0,useNativeDriver:!0}),_reactNative.Animated.spring(V,{toValue:1,useNativeDriver:!0})]).start()}}),[D,V,$,h,f,o,s.reduced,r.motion.duration.fast,r.motion.spring.snappy.damping,r.motion.spring.snappy.stiffness,r.motion.spring.snappy.mass,i,e.id]),Z={accessibilityActions:DISMISS_ACTIONS,onAccessibilityAction:e=>{"dismiss"===e.nativeEvent.actionName&&dismiss()}},[ee,te]=(0,_react.useState)(0),ie=(0,_react.useMemo)(()=>B.interpolate({inputRange:[0,1],outputRange:[-ee,0]}),[B,ee]),ae=e.description?`${e.message}. ${e.description}`:e.message,ne=e.action&&H?`${e.action.label}, ${Math.ceil(L/1e3)} seconds`:e.action?.label;return(0,_jsxRuntime.jsxs)(_reactNative.Animated.View,{...y?Q.panHandlers:{},...O?{}:{accessible:!0,...Z},..."web"===_reactNative.Platform.OS?{onPointerEnter:Y,onPointerLeave:J}:{},onTouchStart:K,onTouchEnd:X,onTouchCancel:X,accessibilityLabel:ae,testID:e.testID,style:[u.container,{backgroundColor:r.colors.background.elevated,borderRadius:r.radius.lg,..._corners.smoothCorners,padding:r.spacing.md,...r.shadows.md,shadowColor:r.shadows.md.shadowColor,opacity:V,transform:[{translateY:k},{translateX:D},{scale:E}]},e.style,e.containerStyle],children:[v>0?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[u.tintBar,{width:v,backgroundColor:d}]}):null,(0,_jsxRuntime.jsxs)(_reactNative.View,{style:u.row,children:[(()=>{if(e.icon)return e.icon;const t=defaultGlyph(c);return t?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[u.iconCircle,{width:p,height:p,borderRadius:r.radius.pill,..._corners.smoothCorners,backgroundColor:d+"22"},e.iconCircleStyle],children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[u.iconGlyph,{color:m,fontSize:g}],accessible:!1,children:t})}):null})(),(0,_jsxRuntime.jsxs)(_reactNative.View,{style:u.textBlock,children:[(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[u.message,{color:r.colors.text.primary,fontSize:r.typography.fontSize.base,...(0,_index.fontFor)(r,"semibold")},e.textStyle,e.messageStyle],numberOfLines:2,children:e.message}),e.description?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[u.description,{color:r.colors.text.secondary,fontSize:r.typography.fontSize.sm}],numberOfLines:3,children:e.description}):null]}),e.action?(0,_jsxRuntime.jsx)(_reactNative.Pressable,{accessibilityRole:"button",accessibilityLabel:ne,hitSlop:ACTION_HIT_SLOP,...Z,onPress:()=>{e.action?.onPress(),dismiss()},style:({pressed:t})=>[u.actionBtn,{backgroundColor:t?r.colors.surface.pressed:"transparent"},e.actionButtonStyle],children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:{color:d,fontSize:r.typography.fontSize.sm,...(0,_index.fontFor)(r,"semibold")},numberOfLines:1,children:e.action.label})}):null]}),H?(0,_jsxRuntime.jsxs)(_reactNative.View,{pointerEvents:"none",accessibilityElementsHidden:!0,importantForAccessibility:"no-hide-descendants",onLayout:e=>te(e.nativeEvent.layout.width),testID:"toast-countdown",style:[u.countdownTrack,{backgroundColor:d+"22"}],children:[s.reduced?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[u.countdownFill,{backgroundColor:d}]}):null,!s.reduced&&ee>0?(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:[u.countdownFill,{backgroundColor:d,transform:[{translateX:ie}]}]}):null]}):null]})};exports.Toast=Toast;const tintFor=(e,t)=>{switch(t){case"success":return e.colors.success;case"error":return e.colors.error;case"warning":return e.colors.warning;case"info":return e.colors.info;default:return e.colors.text.primary}},inkFor=(e,t)=>{switch(t){case"success":return e.colors.toneText.success;case"error":return e.colors.toneText.error;case"warning":return e.colors.toneText.warning;case"info":return e.colors.toneText.info;default:return e.colors.text.primary}},defaultGlyph=e=>{switch(e){case"success":return"✓";case"error":return"×";case"warning":return"!";case"info":return"i";default:return""}},buildStyles=e=>_reactNative.StyleSheet.create({container:{overflow:"hidden",marginVertical:e.spacing.xs},tintBar:{position:"absolute",left:0,top:0,bottom:0},row:{flexDirection:"row",alignItems:"center",paddingLeft:e.spacing.sm},iconCircle:{alignItems:"center",justifyContent:"center",marginRight:e.spacing.md},iconGlyph:{fontWeight:"700",lineHeight:19},textBlock:{flex:1,paddingRight:e.spacing.sm},message:{lineHeight:20},description:{marginTop:e.spacing.xxs,lineHeight:18},countdownTrack:{position:"absolute",left:0,right:0,bottom:0,height:3,overflow:"hidden"},countdownFill:{position:"absolute",left:0,right:0,top:0,bottom:0},actionBtn:{paddingHorizontal:e.spacing.sm,paddingVertical:e.spacing.xs,minHeight:e.components.toast.actionMinHeight,borderRadius:e.radius.md,..._corners.smoothCorners,marginLeft:e.spacing.sm}});var _default=exports.default=Toast;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Tooltip=void 0;var _react=_interopRequireWildcard(require("react")),_reactNative=require("react-native"),_reactNativeSafeAreaContext=require("react-native-safe-area-context"),_usePresenceMotion=require("../../hooks/usePresenceMotion.js"),_index=require("../../theme/index.js"),_announce=require("../../utils/announce.js"),_corners=require("../../utils/corners.js"),_mergeRefs=require("../../utils/mergeRefs.js"),_placement=require("../../utils/placement.js"),_focusHost=require("../Menu/focusHost.js"),_ModalSafeArea=require("../ModalSafeArea/ModalSafeArea.js"),_ToastProvider=require("../Toast/ToastProvider.js"),_RichTooltipBody=require("./RichTooltipBody.js"),_tooltipPosition=require("./tooltipPosition.js"),_jsxRuntime=require("react/jsx-runtime");function _interopRequireWildcard(e,t){if("function"==typeof WeakMap)var r=new WeakMap,o=new WeakMap;return(_interopRequireWildcard=function(e,t){if(!t&&e&&e.__esModule)return e;var a,i,s={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return s;if(a=t?o:r){if(a.has(e))return a.get(e);a.set(e,s)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((i=(a=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(i.get||i.set)?a(s,t,i):s[t]=e[t]);return s})(e,t)}const DEFAULT_TOOLTIP_GAP=8,DEFAULT_SCREEN_PADDING=8,DEFAULT_PRESS_AUTO_HIDE_MS=4e3,DEFAULT_ARROW_HALF_WIDTH=4,DEFAULT_ARROW_HEIGHT=6,DEFAULT_ARROW_CORNER_PADDING=12,DEFAULT_MAX_WIDTH=240,RICH_MAX_WIDTH=280,DEFAULT_LINE_HEIGHT=18,Tooltip=e=>{const{content:t,children:r,variant:o="plain",title:a,action:i,placement:s="auto",visible:n,onVisibleChange:c,hideOnContentPress:l=!0,maxWidth:u,showArrow:_=!0,accessibilityLabel:d,style:f,containerStyle:p,arrowStyle:m,messageStyle:h,closeLabel:g="Close tooltip",testID:v}=e,b="rich"===o,R=e.trigger??(b?"press":"longPress"),x=(0,_index.useTheme)(),y=(0,_usePresenceMotion.usePresenceMotion)(),j=(0,_reactNativeSafeAreaContext.useSafeAreaInsets)(),[T,A]=(0,_ModalSafeArea.useModalInsets)(),S=(0,_react.useMemo)(()=>({...j,top:T.top,bottom:T.bottom}),[j,T]),w=(0,_reactNative.useWindowDimensions)(),N=(0,_react.useMemo)(()=>buildStyles(x),[x]),P=x.components.tooltip,M=P?.gap??8,E=P?.screenPadding??8,C=P?.pressAutoHideMs??4e3,D=P?.arrowHalfWidth??4,H=P?.arrowHeight??6,L=P?.arrowCornerPadding??12,W=P?.lineHeight??18,O=u??(b?280:P?.maxWidth??240),q="press"===R&&!b,I=(P?.enableScaleAnimation??!1)&&!y.reduced,k=P?.exitDurationMs??150,F="manual"===R||"boolean"==typeof n,[V,U]=(0,_react.useState)(!1),B=F?Boolean(n):V,[z,G]=(0,_react.useState)(null),[X,Y]=(0,_react.useState)({width:0,height:0}),J=(0,_react.useRef)(null),K=(0,_react.useRef)(null),Q=(0,_react.useRef)(null),Z=(0,_react.useRef)(null),$=(0,_react.useRef)(null),ee=(0,_react.useRef)(!1),te=(0,_react.useRef)(!1),re=(0,_react.useRef)((0,_index.createAnimatedValue)(B||!I?1:.85)).current,oe=(0,_react.useRef)((0,_index.createAnimatedValue)(B?1:0)).current,ae=(0,_react.useRef)(null),ie=(0,_react.useRef)(!1),[se,ne]=(0,_react.useState)(B),ce=(0,_react.useCallback)(e=>{F||U(e),c?.(e)},[F,c]),le=(0,_react.useCallback)(()=>{J.current&&J.current.measureInWindow((e,t,r,o)=>{G({x:e,y:t,width:r,height:o})})},[]),ue=(0,_react.useCallback)(e=>{le(),ce(!0)},[le,ce]),de=(0,_react.useCallback)(()=>{ce(!1)},[ce]),fe=(0,_react.useRef)(de);fe.current=de;const pe=(0,_react.useCallback)(()=>{if(!ee.current)return;ee.current=!1;const e=$.current;$.current=null,e?e():b&&(0,_focusHost.focusHost)(K.current??J.current)},[b]);(0,_react.useEffect)(()=>{if(B)return te.current=!0,ee.current=!1,(0,_placement.claimAnchoredSurface)(()=>fe.current());te.current&&(te.current=!1,ee.current=!0)},[B]),(0,_react.useEffect)(()=>{B&&ne(!0)},[B]);const me=(0,_react.useRef)(se);(0,_react.useEffect)(()=>{me.current&&!se&&"ios"!==_reactNative.Platform.OS&&pe(),me.current=se},[se,pe]);const he=(0,_react.useCallback)(()=>{$.current=i?.onPress??null,de()},[i,de]);(0,_react.useEffect)(()=>{if(!ie.current)return ie.current=!0,B&&(le(),q&&(ae.current&&clearTimeout(ae.current),ae.current=setTimeout(()=>{de()},C))),()=>{ae.current&&(clearTimeout(ae.current),ae.current=null)};let e;if(B){le();const t=[_reactNative.Animated.timing(oe,{toValue:1,duration:y.duration("fast"),useNativeDriver:!0})];I?t.push(_reactNative.Animated.spring(re,{toValue:1,damping:x.motion.spring.snappy.damping,stiffness:x.motion.spring.snappy.stiffness,mass:x.motion.spring.snappy.mass,useNativeDriver:!0})):(0,_index.setNativeValue)(re,1),e=_reactNative.Animated.parallel(t),e.start(),q&&(ae.current&&clearTimeout(ae.current),ae.current=setTimeout(()=>{de()},C))}else{const t=[_reactNative.Animated.timing(oe,{toValue:0,duration:y.reduced?y.duration("fast"):k,easing:_reactNative.Easing.bezier(...x.motion.easing.accelerate),useNativeDriver:!0})];I&&t.push(_reactNative.Animated.timing(re,{toValue:.85,duration:k,easing:_reactNative.Easing.bezier(...x.motion.easing.accelerate),useNativeDriver:!0})),e=_reactNative.Animated.parallel(t),e.start(({finished:e})=>{e&&ne(!1)}),ae.current&&(clearTimeout(ae.current),ae.current=null)}return()=>{e?.stop(),ae.current&&(clearTimeout(ae.current),ae.current=null)}},[B]);const handleContentLayout=e=>{const{width:t,height:r}=e.nativeEvent.layout;t===X.width&&r===X.height||Y({width:t,height:r})},ge=(0,_react.useMemo)(()=>(0,_tooltipPosition.resolveTooltipPosition)({anchor:z,size:X,placement:s,rich:b,viewport:{width:w.width,height:w.height,insets:S},maxWidth:O,gap:M,padding:E,arrowCornerPadding:L}),[z,X,s,b,w.width,w.height,S,O,M,E,L]),ve=null!==z&&X.width>0,be=B&&ve;(0,_react.useEffect)(()=>{if(!b||!be)return;const e="web"===_reactNative.Platform.OS?Z:Q,t=setTimeout(()=>(0,_focusHost.focusHost)(e.current),_focusHost.FOCUS_DELAY_MS);return()=>clearTimeout(t)},[b,be]),(0,_react.useEffect)(()=>{!b&&be&&"ios"===_reactNative.Platform.OS&&"string"==typeof t&&(0,_announce.announce)(t)},[b,be,t]);const Re=r.props,xe=(0,_react.useMemo)(()=>(0,_mergeRefs.mergeRefs)(Re.ref,K),[Re.ref]),ye={};"longPress"!==R||Re.contextMenu?"press"===R&&(ye.onPress=e=>{Re.onPress?.(e),ue(e)}):(ye.onLongPress=ue,ye.accessibilityHint="Long press for more info"),b&&(ye.ref=xe);const je=_react.default.cloneElement(r,ye),Te=d??("string"==typeof t?t:"Tooltip"),Ae=(0,_react.useMemo)(()=>{if(!_)return null;const e=b?x.colors.background.elevated:x.colors.background.inverse,t={position:"absolute",width:0,height:0,backgroundColor:"transparent",borderStyle:"solid",borderLeftWidth:D,borderRightWidth:D,borderBottomWidth:H,borderTopWidth:0,borderLeftColor:"transparent",borderRightColor:"transparent",borderTopColor:"transparent",borderBottomColor:e};return"top"===ge.placement?{...t,bottom:-H,left:ge.arrowOffset-D,transform:[{rotate:"180deg"}]}:"bottom"===ge.placement?{...t,top:-H,left:ge.arrowOffset-D}:"left"===ge.placement?{...t,right:-H,top:ge.arrowOffset-D,transform:[{rotate:"90deg"}]}:{...t,left:-H,top:ge.arrowOffset-D,transform:[{rotate:"-90deg"}]}},[_,ge,x,b,D,H]),Se={position:"absolute",top:ge.top,left:ge.left,maxWidth:O,opacity:B&&!ve?0:oe,transform:[{scale:re}]},we=Ae?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[Ae,m],pointerEvents:"none"}):null;return(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[(0,_jsxRuntime.jsx)(_reactNative.View,{ref:J,collapsable:!1,onLayout:le,testID:v,children:je}),(0,_jsxRuntime.jsx)(_reactNative.Modal,{visible:se,transparent:!0,statusBarTranslucent:!0,presentationStyle:"overFullScreen",animationType:"none",onRequestClose:de,onDismiss:pe,children:(0,_jsxRuntime.jsxs)(_ModalSafeArea.ModalSafeArea,{onInsets:A,children:[b?(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[(0,_jsxRuntime.jsx)(_reactNative.Pressable,{style:_reactNative.StyleSheet.absoluteFill,onPress:l?de:void 0,accessibilityLabel:g,accessibilityRole:"button"}),se?(0,_jsxRuntime.jsxs)(_reactNative.Animated.View,{onLayout:handleContentLayout,style:[Se,f,p],children:[(0,_jsxRuntime.jsx)(_RichTooltipBody.RichTooltipBody,{title:a,content:t,action:i,onAction:he,focusRef:Q,actionRef:Z,messageStyle:h}),we]}):null]}):(0,_jsxRuntime.jsx)(_reactNative.Pressable,{style:_reactNative.StyleSheet.absoluteFill,onPress:l?de:void 0,accessibilityLabel:g,accessibilityRole:"button",children:se?(0,_jsxRuntime.jsxs)(_reactNative.Animated.View,{accessibilityRole:"web"===_reactNative.Platform.OS?"tooltip":void 0,accessibilityLiveRegion:"polite",accessibilityLabel:Te,onLayout:handleContentLayout,style:[Se,f,p],children:[(0,_jsxRuntime.jsx)(_reactNative.View,{style:[N.tooltip,{backgroundColor:x.colors.background.inverse,borderRadius:x.radius.md,..._corners.smoothCorners,paddingHorizontal:x.spacing.md,paddingVertical:x.spacing.sm,...x.shadows.lg,shadowColor:x.shadows.lg.shadowColor}],children:"string"==typeof t?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[{color:x.colors.text.inverse,fontSize:x.typography.fontSize.sm,lineHeight:W},h],children:t}):t}),we]}):null}),(0,_jsxRuntime.jsx)(_ToastProvider.ToastHost,{})]})})]})};exports.Tooltip=Tooltip;const buildStyles=e=>_reactNative.StyleSheet.create({tooltip:{overflow:"hidden"}});var _default=exports.default=Tooltip;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Tooltip=void 0;var _react=_interopRequireWildcard(require("react")),_reactNative=require("react-native"),_reactNativeSafeAreaContext=require("react-native-safe-area-context"),_usePresenceMotion=require("../../hooks/usePresenceMotion.js"),_index=require("../../theme/index.js"),_announce=require("../../utils/announce.js"),_corners=require("../../utils/corners.js"),_mergeRefs=require("../../utils/mergeRefs.js"),_placement=require("../../utils/placement.js"),_focusHost=require("../Menu/focusHost.js"),_ModalSafeArea=require("../ModalSafeArea/ModalSafeArea.js"),_ToastProvider=require("../Toast/ToastProvider.js"),_RichTooltipBody=require("./RichTooltipBody.js"),_tooltipPosition=require("./tooltipPosition.js"),_jsxRuntime=require("react/jsx-runtime");function _interopRequireWildcard(e,t){if("function"==typeof WeakMap)var r=new WeakMap,o=new WeakMap;return(_interopRequireWildcard=function(e,t){if(!t&&e&&e.__esModule)return e;var a,i,s={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return s;if(a=t?o:r){if(a.has(e))return a.get(e);a.set(e,s)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((i=(a=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(i.get||i.set)?a(s,t,i):s[t]=e[t]);return s})(e,t)}const DEFAULT_PRESS_AUTO_HIDE_MS=4e3,DEFAULT_ARROW_HALF_WIDTH=4,DEFAULT_ARROW_HEIGHT=6,DEFAULT_ARROW_CORNER_PADDING=12,DEFAULT_MAX_WIDTH=240,RICH_MAX_WIDTH=280,DEFAULT_LINE_HEIGHT=18,Tooltip=e=>{const{content:t,children:r,variant:o="plain",title:a,action:i,placement:s="auto",visible:n,onVisibleChange:c,hideOnContentPress:l=!0,maxWidth:u,showArrow:d=!0,accessibilityLabel:_,style:f,containerStyle:p,arrowStyle:m,messageStyle:h,closeLabel:g="Close tooltip",testID:v}=e,b="rich"===o,R=e.trigger??(b?"press":"longPress"),x=(0,_index.useTheme)(),y=(0,_usePresenceMotion.usePresenceMotion)(),j=(0,_reactNativeSafeAreaContext.useSafeAreaInsets)(),[T,S]=(0,_ModalSafeArea.useModalInsets)(),w=(0,_react.useMemo)(()=>({...j,top:T.top,bottom:T.bottom}),[j,T]),A=(0,_reactNative.useWindowDimensions)(),N=(0,_react.useMemo)(()=>buildStyles(x),[x]),P=x.components.tooltip,M=(0,_index.spaceOf)(x,P?.gap??"sm","components.tooltip.gap"),C=(0,_index.spaceOf)(x,P?.screenPadding??"sm","components.tooltip.screenPadding"),H=P?.pressAutoHideMs??4e3,E=P?.arrowHalfWidth??4,D=P?.arrowHeight??6,W=P?.arrowCornerPadding??12,L=P?.lineHeight??18,O=u??(b?280:P?.maxWidth??240),q="press"===R&&!b,k=(P?.enableScaleAnimation??!1)&&!y.reduced,I=P?.exitDurationMs??150,V="manual"===R||"boolean"==typeof n,[F,B]=(0,_react.useState)(!1),U=V?Boolean(n):F,[z,G]=(0,_react.useState)(null),[X,Y]=(0,_react.useState)({width:0,height:0}),J=(0,_react.useRef)(null),K=(0,_react.useRef)(null),Q=(0,_react.useRef)(null),Z=(0,_react.useRef)(null),$=(0,_react.useRef)(null),ee=(0,_react.useRef)(!1),te=(0,_react.useRef)(!1),re=(0,_react.useRef)((0,_index.createAnimatedValue)(U||!k?1:.85)).current,oe=(0,_react.useRef)((0,_index.createAnimatedValue)(U?1:0)).current,ae=(0,_react.useRef)(null),ie=(0,_react.useRef)(!1),[se,ne]=(0,_react.useState)(U),ce=(0,_react.useCallback)(e=>{V||B(e),c?.(e)},[V,c]),le=(0,_react.useCallback)(()=>{J.current&&J.current.measureInWindow((e,t,r,o)=>{G({x:e,y:t,width:r,height:o})})},[]),ue=(0,_react.useCallback)(e=>{le(),ce(!0)},[le,ce]),de=(0,_react.useCallback)(()=>{ce(!1)},[ce]),fe=(0,_react.useRef)(de);fe.current=de;const pe=(0,_react.useCallback)(()=>{if(!ee.current)return;ee.current=!1;const e=$.current;$.current=null,e?e():b&&(0,_focusHost.focusHost)(K.current??J.current)},[b]);(0,_react.useEffect)(()=>{if(U)return te.current=!0,ee.current=!1,(0,_placement.claimAnchoredSurface)(()=>fe.current());te.current&&(te.current=!1,ee.current=!0)},[U]),(0,_react.useEffect)(()=>{U&&ne(!0)},[U]);const me=(0,_react.useRef)(se);(0,_react.useEffect)(()=>{me.current&&!se&&"ios"!==_reactNative.Platform.OS&&pe(),me.current=se},[se,pe]);const he=(0,_react.useCallback)(()=>{$.current=i?.onPress??null,de()},[i,de]);(0,_react.useEffect)(()=>{if(!ie.current)return ie.current=!0,U&&(le(),q&&(ae.current&&clearTimeout(ae.current),ae.current=setTimeout(()=>{de()},H))),()=>{ae.current&&(clearTimeout(ae.current),ae.current=null)};let e;if(U){le();const t=[_reactNative.Animated.timing(oe,{toValue:1,duration:y.duration("fast"),useNativeDriver:!0})];k?t.push(_reactNative.Animated.spring(re,{toValue:1,damping:x.motion.spring.snappy.damping,stiffness:x.motion.spring.snappy.stiffness,mass:x.motion.spring.snappy.mass,useNativeDriver:!0})):(0,_index.setNativeValue)(re,1),e=_reactNative.Animated.parallel(t),e.start(),q&&(ae.current&&clearTimeout(ae.current),ae.current=setTimeout(()=>{de()},H))}else{const t=[_reactNative.Animated.timing(oe,{toValue:0,duration:y.reduced?y.duration("fast"):I,easing:_reactNative.Easing.bezier(...x.motion.easing.accelerate),useNativeDriver:!0})];k&&t.push(_reactNative.Animated.timing(re,{toValue:.85,duration:I,easing:_reactNative.Easing.bezier(...x.motion.easing.accelerate),useNativeDriver:!0})),e=_reactNative.Animated.parallel(t),e.start(({finished:e})=>{e&&ne(!1)}),ae.current&&(clearTimeout(ae.current),ae.current=null)}return()=>{e?.stop(),ae.current&&(clearTimeout(ae.current),ae.current=null)}},[U]);const handleContentLayout=e=>{const{width:t,height:r}=e.nativeEvent.layout;t===X.width&&r===X.height||Y({width:t,height:r})},ge=(0,_react.useMemo)(()=>(0,_tooltipPosition.resolveTooltipPosition)({anchor:z,size:X,placement:s,rich:b,viewport:{width:A.width,height:A.height,insets:w},maxWidth:O,gap:M,padding:C,arrowCornerPadding:W}),[z,X,s,b,A.width,A.height,w,O,M,C,W]),ve=null!==z&&X.width>0,be=U&&ve;(0,_react.useEffect)(()=>{if(!b||!be)return;const e="web"===_reactNative.Platform.OS?Z:Q,t=setTimeout(()=>(0,_focusHost.focusHost)(e.current),_focusHost.FOCUS_DELAY_MS);return()=>clearTimeout(t)},[b,be]),(0,_react.useEffect)(()=>{!b&&be&&"ios"===_reactNative.Platform.OS&&"string"==typeof t&&(0,_announce.announce)(t)},[b,be,t]);const Re=r.props,xe=(0,_react.useMemo)(()=>(0,_mergeRefs.mergeRefs)(Re.ref,K),[Re.ref]),ye={};"longPress"!==R||Re.contextMenu?"press"===R&&(ye.onPress=e=>{Re.onPress?.(e),ue(e)}):(ye.onLongPress=ue,ye.accessibilityHint="Long press for more info"),b&&(ye.ref=xe);const je=_react.default.cloneElement(r,ye),Te=_??("string"==typeof t?t:"Tooltip"),Se=(0,_react.useMemo)(()=>{if(!d)return null;const e=b?x.colors.background.elevated:x.colors.background.inverse,t={position:"absolute",width:0,height:0,backgroundColor:"transparent",borderStyle:"solid",borderLeftWidth:E,borderRightWidth:E,borderBottomWidth:D,borderTopWidth:0,borderLeftColor:"transparent",borderRightColor:"transparent",borderTopColor:"transparent",borderBottomColor:e};return"top"===ge.placement?{...t,bottom:-D,left:ge.arrowOffset-E,transform:[{rotate:"180deg"}]}:"bottom"===ge.placement?{...t,top:-D,left:ge.arrowOffset-E}:"left"===ge.placement?{...t,right:-D,top:ge.arrowOffset-E,transform:[{rotate:"90deg"}]}:{...t,left:-D,top:ge.arrowOffset-E,transform:[{rotate:"-90deg"}]}},[d,ge,x,b,E,D]),we={position:"absolute",top:ge.top,left:ge.left,maxWidth:O,opacity:U&&!ve?0:oe,transform:[{scale:re}]},Ae=Se?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[Se,m],pointerEvents:"none"}):null;return(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[(0,_jsxRuntime.jsx)(_reactNative.View,{ref:J,collapsable:!1,onLayout:le,testID:v,children:je}),(0,_jsxRuntime.jsx)(_reactNative.Modal,{visible:se,transparent:!0,statusBarTranslucent:!0,presentationStyle:"overFullScreen",animationType:"none",onRequestClose:de,onDismiss:pe,children:(0,_jsxRuntime.jsxs)(_ModalSafeArea.ModalSafeArea,{onInsets:S,children:[b?(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[(0,_jsxRuntime.jsx)(_reactNative.Pressable,{style:_reactNative.StyleSheet.absoluteFill,onPress:l?de:void 0,accessibilityLabel:g,accessibilityRole:"button"}),se?(0,_jsxRuntime.jsxs)(_reactNative.Animated.View,{onLayout:handleContentLayout,style:[we,f,p],children:[(0,_jsxRuntime.jsx)(_RichTooltipBody.RichTooltipBody,{title:a,content:t,action:i,onAction:he,focusRef:Q,actionRef:Z,messageStyle:h}),Ae]}):null]}):(0,_jsxRuntime.jsx)(_reactNative.Pressable,{style:_reactNative.StyleSheet.absoluteFill,onPress:l?de:void 0,accessibilityLabel:g,accessibilityRole:"button",children:se?(0,_jsxRuntime.jsxs)(_reactNative.Animated.View,{accessibilityRole:"web"===_reactNative.Platform.OS?"tooltip":void 0,accessibilityLiveRegion:"polite",accessibilityLabel:Te,onLayout:handleContentLayout,style:[we,f,p],children:[(0,_jsxRuntime.jsx)(_reactNative.View,{style:[N.tooltip,{backgroundColor:x.colors.background.inverse,borderRadius:x.radius.md,..._corners.smoothCorners,paddingHorizontal:x.spacing.md,paddingVertical:x.spacing.sm,...x.shadows.lg,shadowColor:x.shadows.lg.shadowColor}],children:"string"==typeof t?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[{color:x.colors.text.inverse,fontSize:x.typography.fontSize.sm,lineHeight:L},h],children:t}):t}),Ae]}):null}),(0,_jsxRuntime.jsx)(_ToastProvider.ToastHost,{})]})})]})};exports.Tooltip=Tooltip;const buildStyles=e=>_reactNative.StyleSheet.create({tooltip:{overflow:"hidden"}});var _default=exports.default=Tooltip;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Tour=void 0;var _react=require("react"),_reactNative=require("react-native"),_usePresenceMotion=require("../../hooks/usePresenceMotion.js"),_index=require("../../theme/index.js"),_corners=require("../../utils/corners.js"),_index2=require("../Button/index.js"),_index3=require("../Modal/index.js"),_jsxRuntime=require("react/jsx-runtime");const DEFAULT_GAP=8,DEFAULT_SCREEN_PADDING=8,MAX_CARD_WIDTH=360,HIGHLIGHT_BORDER_WIDTH=2,measureInWindow=e=>new Promise(t=>{const i=e.current;i?i.measureInWindow((e,i,r,n)=>t({x:e,y:i,width:r,height:n})):t(null)}),isOnScreen=(e,t)=>e.width>0&&e.height>0&&e.x<t.width&&e.y<t.height&&e.x+e.width>0&&e.y+e.height>0,Tour=({tourId:e,steps:t,visible:i,onClose:r,seenStore:n,labels:s,haptic:a,testID:o})=>{const c=(0,_index.useTheme)(),l=(0,_usePresenceMotion.usePresenceMotion)().duration("fast"),u=(0,_react.useMemo)(()=>buildStyles(c),[c]),d=(0,_reactNative.useWindowDimensions)(),h=(0,_react.useRef)(d);h.current=d;const x=c.components.tooltip?.gap??8,p=c.components.tooltip?.screenPadding??8,[_,g]=(0,_react.useState)(null),[m,y]=(0,_react.useState)(0),f=(0,_react.useRef)((0,_index.createAnimatedValue)(0)).current,b=(0,_react.useRef)(t);b.current=t;const v=(0,_react.useRef)(r);v.current=r;const w=(0,_react.useRef)(n);w.current=n;const j=(0,_react.useCallback)(async(e,t)=>{for(let i=e;i>=0&&i<b.current.length;i+=t){const e=await measureInWindow(b.current[i].target);if(e&&isOnScreen(e,h.current))return{index:i,rect:e}}return null},[]);(0,_react.useEffect)(()=>{if(!i)return void g(null);let t=!1;return(async()=>{const i=w.current;if(i&&await i.isSeen(e))return void(t||v.current("alreadySeen"));const r=await j(0,1);t||(r?(y(r.index),g(r)):v.current("noTargets"))})(),()=>{t=!0}},[i,e,j]),(0,_react.useEffect)(()=>{if(!_)return;const e=b.current[_.index],t=`Step ${_.index+1} of ${b.current.length}`;_reactNative.AccessibilityInfo.announceForAccessibility([t,e.title,e.description].filter(Boolean).join(". ")),f.setValue(0);const i=_reactNative.Animated.timing(f,{toValue:1,duration:l,useNativeDriver:!0});return i.start(),()=>i.stop()},[_,f,l]);const R=(0,_react.useCallback)(async t=>{g(null),await(w.current?.markSeen(e)),v.current(t)},[e]),S=(0,_react.useCallback)(async()=>{if(!_)return;const e=await j(_.index+1,1);e?g(e):await R("finished")},[_,j,R]),k=(0,_react.useCallback)(async()=>{if(!_)return;const e=await j(_.index-1,-1);e&&g(e)},[_,j]),N=(0,_react.useCallback)(()=>{R("skipped")},[R]),D=_?t[_.index]:void 0,T=!!_&&_.index===t.length-1,C=c.spacing.xs,I=_?{x:_.rect.x-C,y:_.rect.y-C,width:_.rect.width+2*C,height:_.rect.height+2*C}:null,M=Math.min(d.width-2*p,360),P=I?(()=>{const e=I.x+I.width/2,t=Math.max(p,Math.min(e-M/2,d.width-M-p)),i=I.y,r=d.height-(I.y+I.height);return r>=i?{left:t,top:I.y+I.height+x,maxHeight:Math.max(r-x-p,0)}:{left:t,bottom:d.height-I.y+x,maxHeight:Math.max(i-x-p,0)}})():null,A=c.colors.background.overlay,W=I?Math.min(D?.radius?c.radius[D.radius]+C:c.radius.md,Math.min(I.width,I.height)/2):0,q=Math.max(d.width,d.height);return(0,_jsxRuntime.jsx)(_index3.Modal,{visible:null!==_,onRequestClose:N,presentation:"fullScreen",backdropPressClose:!1,backdropStyle:u.transparent,contentStyle:u.transparent,accessibilityLabel:D?.title??D?.description,haptic:a,testID:o,children:I&&P&&D?(0,_jsxRuntime.jsxs)(_reactNative.View,{style:_reactNative.StyleSheet.absoluteFill,children:[(0,_jsxRuntime.jsx)(_reactNative.View,{style:[u.dim,{borderColor:A,borderWidth:q,top:I.y-q,left:I.x-q,width:I.width+2*q,height:I.height+2*q,borderRadius:W+q}]}),(0,_jsxRuntime.jsx)(_reactNative.View,{pointerEvents:"none",style:[u.highlight,{top:I.y,left:I.x,width:I.width,height:I.height,borderRadius:W}]}),(0,_jsxRuntime.jsxs)(_reactNative.Animated.View,{accessibilityLiveRegion:"polite",style:[u.card,P,{width:M,opacity:f}],testID:o?`${o}-card`:void 0,children:[(0,_jsxRuntime.jsx)(_reactNative.Text,{style:u.position,children:`Step ${(_?.index??0)+1} of ${t.length}`}),D.title?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:u.title,accessibilityRole:"header",children:D.title}):null,(0,_jsxRuntime.jsx)(_reactNative.Text,{style:u.description,children:D.description}),(0,_jsxRuntime.jsxs)(_reactNative.View,{style:u.actions,children:[(0,_jsxRuntime.jsx)(_index2.Button,{title:s?.skip??"Skip",variant:"ghost",size:"sm",haptic:a,onPress:N,testID:o?`${o}-skip`:void 0}),(0,_jsxRuntime.jsxs)(_reactNative.View,{style:u.navigation,children:[_&&_.index>m?(0,_jsxRuntime.jsx)(_index2.Button,{title:s?.back??"Back",variant:"outline",size:"sm",haptic:a,onPress:()=>{k()},testID:o?`${o}-back`:void 0}):null,(0,_jsxRuntime.jsx)(_index2.Button,{title:T?s?.done??"Done":s?.next??"Next",size:"sm",haptic:a,onPress:()=>{S()},testID:o?`${o}-next`:void 0})]})]})]})]}):null})};exports.Tour=Tour,Tour.displayName="Tour";const buildStyles=e=>_reactNative.StyleSheet.create({transparent:{backgroundColor:"transparent"},dim:{position:"absolute"},highlight:{position:"absolute",borderWidth:2,borderColor:e.colors.primary,borderRadius:e.radius.md,..._corners.smoothCorners},card:{position:"absolute",backgroundColor:e.colors.background.elevated,borderRadius:e.radius.lg,..._corners.smoothCorners,padding:e.spacing.lg,gap:e.spacing.sm,...e.shadows.lg},position:{color:e.colors.text.tertiary,fontSize:e.typography.fontSize.xs},title:{color:e.colors.text.primary,fontSize:e.typography.fontSize.lg,fontWeight:e.typography.fontWeight.semibold},description:{color:e.colors.text.secondary,fontSize:e.typography.fontSize.sm},actions:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",marginTop:e.spacing.xs},navigation:{flexDirection:"row",gap:e.spacing.sm}});var _default=exports.default=Tour;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Tour=void 0;var _react=require("react"),_reactNative=require("react-native"),_usePresenceMotion=require("../../hooks/usePresenceMotion.js"),_index=require("../../theme/index.js"),_corners=require("../../utils/corners.js"),_index2=require("../Button/index.js"),_index3=require("../Modal/index.js"),_jsxRuntime=require("react/jsx-runtime");const MAX_CARD_WIDTH=360,HIGHLIGHT_BORDER_WIDTH=2,measureInWindow=e=>new Promise(t=>{const i=e.current;i?i.measureInWindow((e,i,r,n)=>t({x:e,y:i,width:r,height:n})):t(null)}),isOnScreen=(e,t)=>e.width>0&&e.height>0&&e.x<t.width&&e.y<t.height&&e.x+e.width>0&&e.y+e.height>0,Tour=({tourId:e,steps:t,visible:i,onClose:r,seenStore:n,labels:s,haptic:o,testID:a})=>{const c=(0,_index.useTheme)(),l=(0,_usePresenceMotion.usePresenceMotion)().duration("fast"),u=(0,_react.useMemo)(()=>buildStyles(c),[c]),d=(0,_reactNative.useWindowDimensions)(),h=(0,_react.useRef)(d);h.current=d;const x=(0,_index.spaceOf)(c,c.components.tooltip?.gap??"sm","components.tooltip.gap"),p=(0,_index.spaceOf)(c,c.components.tooltip?.screenPadding??"sm","components.tooltip.screenPadding"),[_,m]=(0,_react.useState)(null),[g,y]=(0,_react.useState)(0),f=(0,_react.useRef)((0,_index.createAnimatedValue)(0)).current,b=(0,_react.useRef)(t);b.current=t;const v=(0,_react.useRef)(r);v.current=r;const w=(0,_react.useRef)(n);w.current=n;const j=(0,_react.useCallback)(async(e,t)=>{for(let i=e;i>=0&&i<b.current.length;i+=t){const e=await measureInWindow(b.current[i].target);if(e&&isOnScreen(e,h.current))return{index:i,rect:e}}return null},[]);(0,_react.useEffect)(()=>{if(!i)return void m(null);let t=!1;return(async()=>{const i=w.current;if(i&&await i.isSeen(e))return void(t||v.current("alreadySeen"));const r=await j(0,1);t||(r?(y(r.index),m(r)):v.current("noTargets"))})(),()=>{t=!0}},[i,e,j]),(0,_react.useEffect)(()=>{if(!_)return;const e=b.current[_.index],t=`Step ${_.index+1} of ${b.current.length}`;_reactNative.AccessibilityInfo.announceForAccessibility([t,e.title,e.description].filter(Boolean).join(". ")),f.setValue(0);const i=_reactNative.Animated.timing(f,{toValue:1,duration:l,useNativeDriver:!0});return i.start(),()=>i.stop()},[_,f,l]);const R=(0,_react.useCallback)(async t=>{m(null),await(w.current?.markSeen(e)),v.current(t)},[e]),S=(0,_react.useCallback)(async()=>{if(!_)return;const e=await j(_.index+1,1);e?m(e):await R("finished")},[_,j,R]),k=(0,_react.useCallback)(async()=>{if(!_)return;const e=await j(_.index-1,-1);e&&m(e)},[_,j]),N=(0,_react.useCallback)(()=>{R("skipped")},[R]),M=_?t[_.index]:void 0,C=!!_&&_.index===t.length-1,I=c.spacing.xs,T=_?{x:_.rect.x-I,y:_.rect.y-I,width:_.rect.width+2*I,height:_.rect.height+2*I}:null,D=Math.min(d.width-2*p,360),P=T?(()=>{const e=T.x+T.width/2,t=Math.max(p,Math.min(e-D/2,d.width-D-p)),i=T.y,r=d.height-(T.y+T.height);return r>=i?{left:t,top:T.y+T.height+x,maxHeight:Math.max(r-x-p,0)}:{left:t,bottom:d.height-T.y+x,maxHeight:Math.max(i-x-p,0)}})():null,W=c.colors.background.overlay,q=T?Math.min(M?.radius?c.radius[M.radius]+I:c.radius.md,Math.min(T.width,T.height)/2):0,z=Math.max(d.width,d.height);return(0,_jsxRuntime.jsx)(_index3.Modal,{visible:null!==_,onRequestClose:N,presentation:"fullScreen",backdropPressClose:!1,backdropStyle:u.transparent,contentStyle:u.transparent,accessibilityLabel:M?.title??M?.description,haptic:o,testID:a,children:T&&P&&M?(0,_jsxRuntime.jsxs)(_reactNative.View,{style:_reactNative.StyleSheet.absoluteFill,children:[(0,_jsxRuntime.jsx)(_reactNative.View,{style:[u.dim,{borderColor:W,borderWidth:z,top:T.y-z,left:T.x-z,width:T.width+2*z,height:T.height+2*z,borderRadius:q+z}]}),(0,_jsxRuntime.jsx)(_reactNative.View,{pointerEvents:"none",style:[u.highlight,{top:T.y,left:T.x,width:T.width,height:T.height,borderRadius:q}]}),(0,_jsxRuntime.jsxs)(_reactNative.Animated.View,{accessibilityLiveRegion:"polite",style:[u.card,P,{width:D,opacity:f}],testID:a?`${a}-card`:void 0,children:[(0,_jsxRuntime.jsx)(_reactNative.Text,{style:u.position,children:`Step ${(_?.index??0)+1} of ${t.length}`}),M.title?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:u.title,accessibilityRole:"header",children:M.title}):null,(0,_jsxRuntime.jsx)(_reactNative.Text,{style:u.description,children:M.description}),(0,_jsxRuntime.jsxs)(_reactNative.View,{style:u.actions,children:[(0,_jsxRuntime.jsx)(_index2.Button,{title:s?.skip??"Skip",variant:"ghost",size:"sm",haptic:o,onPress:N,testID:a?`${a}-skip`:void 0}),(0,_jsxRuntime.jsxs)(_reactNative.View,{style:u.navigation,children:[_&&_.index>g?(0,_jsxRuntime.jsx)(_index2.Button,{title:s?.back??"Back",variant:"outline",size:"sm",haptic:o,onPress:()=>{k()},testID:a?`${a}-back`:void 0}):null,(0,_jsxRuntime.jsx)(_index2.Button,{title:C?s?.done??"Done":s?.next??"Next",size:"sm",haptic:o,onPress:()=>{S()},testID:a?`${a}-next`:void 0})]})]})]})]}):null})};exports.Tour=Tour,Tour.displayName="Tour";const buildStyles=e=>_reactNative.StyleSheet.create({transparent:{backgroundColor:"transparent"},dim:{position:"absolute"},highlight:{position:"absolute",borderWidth:2,borderColor:e.colors.primary,borderRadius:e.radius.md,..._corners.smoothCorners},card:{position:"absolute",backgroundColor:e.colors.background.elevated,borderRadius:e.radius.lg,..._corners.smoothCorners,padding:e.spacing.lg,gap:e.spacing.sm,...e.shadows.lg},position:{color:e.colors.text.tertiary,fontSize:e.typography.fontSize.xs},title:{color:e.colors.text.primary,fontSize:e.typography.fontSize.lg,fontWeight:e.typography.fontWeight.semibold},description:{color:e.colors.text.secondary,fontSize:e.typography.fontSize.sm},actions:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",marginTop:e.spacing.xs},navigation:{flexDirection:"row",gap:e.spacing.sm}});var _default=exports.default=Tour;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.TypingIndicator=void 0;var _react=require("react"),_reactNative=require("react-native"),_reactNativeReanimated=_interopRequireWildcard(require("react-native-reanimated")),_useReducedMotion=require("../../hooks/useReducedMotion.js"),_index=require("../../theme/index.js"),_corners=require("../../utils/corners.js"),_index2=require("../Text/index.js"),_jsxRuntime=require("react/jsx-runtime");function _interopRequireWildcard(e,t){if("function"==typeof WeakMap)var i=new WeakMap,r=new WeakMap;return(_interopRequireWildcard=function(e,t){if(!t&&e&&e.__esModule)return e;var a,n,s={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return s;if(a=t?r:i){if(a.has(e))return a.get(e);a.set(e,s)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((n=(a=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(n.get||n.set)?a(s,t,n):s[t]=e[t]);return s})(e,t)}const DOT=6,DIM=.3,PULSE_MS=400,STAGGER_MS=160,STILL_OPACITY=[1,.65,.3],Dot=({index:e,still:t,colour:i})=>{const r=(0,_reactNativeReanimated.useSharedValue)(.3);(0,_react.useEffect)(()=>{if(!t)return r.value=(0,_reactNativeReanimated.withDelay)(160*e,(0,_reactNativeReanimated.withRepeat)((0,_reactNativeReanimated.withSequence)((0,_reactNativeReanimated.withTiming)(1,{duration:400}),(0,_reactNativeReanimated.withTiming)(.3,{duration:400})),-1)),()=>(0,_reactNativeReanimated.cancelAnimation)(r)},[t,e,r]);const a=(0,_reactNativeReanimated.useAnimatedStyle)(()=>({opacity:r.value}));return(0,_jsxRuntime.jsx)(_reactNativeReanimated.default.View,{style:[styles.dot,{backgroundColor:i},t?{opacity:STILL_OPACITY[e]}:a]})},TypingIndicator=({label:e,accessibilityLabel:t,bubble:i=!0,style:r,testID:a})=>{const n=(0,_index.useTheme)(),s=(0,_react.useMemo)(()=>buildStyles(n),[n]),o=(0,_useReducedMotion.useReducedMotion)(),c=n.colors.text.tertiary;return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[s.root,i?s.bubble:null,r],accessible:!0,accessibilityRole:"progressbar",accessibilityLabel:e??t??"Typing",accessibilityState:{busy:!0},"aria-busy":!0,testID:a,children:[(0,_jsxRuntime.jsx)(_reactNative.View,{style:s.dots,children:[0,1,2].map(e=>(0,_jsxRuntime.jsx)(Dot,{index:e,still:o,colour:c},e))}),e?(0,_jsxRuntime.jsx)(_index2.Text,{variant:"bodySmall",color:"secondary",children:e}):null]})};exports.TypingIndicator=TypingIndicator;const styles=_reactNative.StyleSheet.create({dot:{width:6,height:6,borderRadius:3,..._corners.smoothCorners}}),buildStyles=e=>_reactNative.StyleSheet.create({root:{flexDirection:"row",alignItems:"center",alignSelf:"flex-start",gap:e.spacing.sm,marginTop:e.spacing.sm},bubble:{backgroundColor:e.colors.background.secondary,borderRadius:e.radius.xl,..._corners.smoothCorners,paddingHorizontal:e.spacing.md,paddingVertical:e.spacing.sm+e.spacing.xs},dots:{flexDirection:"row",alignItems:"center",gap:e.spacing.xs}});var _default=exports.default=TypingIndicator;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.TypingIndicator=void 0;var _react=require("react"),_reactNative=require("react-native"),_reactNativeReanimated=_interopRequireWildcard(require("react-native-reanimated")),_useReducedMotion=require("../../hooks/useReducedMotion.js"),_index=require("../../theme/index.js"),_corners=require("../../utils/corners.js"),_index2=require("../Text/index.js"),_jsxRuntime=require("react/jsx-runtime");function _interopRequireWildcard(e,t){if("function"==typeof WeakMap)var i=new WeakMap,r=new WeakMap;return(_interopRequireWildcard=function(e,t){if(!t&&e&&e.__esModule)return e;var a,n,o={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return o;if(a=t?r:i){if(a.has(e))return a.get(e);a.set(e,o)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((n=(a=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(n.get||n.set)?a(o,t,n):o[t]=e[t]);return o})(e,t)}const DOT=6,DIM=.3,PULSE_MS=400,STAGGER_MS=160,STILL_OPACITY=[1,.65,.3],Dot=({index:e,still:t,colour:i,dotStyle:r})=>{const a=(0,_reactNativeReanimated.useSharedValue)(.3);(0,_react.useEffect)(()=>{if(!t)return a.value=(0,_reactNativeReanimated.withDelay)(160*e,(0,_reactNativeReanimated.withRepeat)((0,_reactNativeReanimated.withSequence)((0,_reactNativeReanimated.withTiming)(1,{duration:400}),(0,_reactNativeReanimated.withTiming)(.3,{duration:400})),-1)),()=>(0,_reactNativeReanimated.cancelAnimation)(a)},[t,e,a]);const n=(0,_reactNativeReanimated.useAnimatedStyle)(()=>({opacity:a.value}));return(0,_jsxRuntime.jsx)(_reactNativeReanimated.default.View,{style:[r,{backgroundColor:i},t?{opacity:STILL_OPACITY[e]}:n]})},TypingIndicator=({label:e,accessibilityLabel:t,bubble:i=!0,style:r,testID:a})=>{const n=(0,_index.useTheme)(),o=(0,_react.useMemo)(()=>buildStyles(n),[n]),s=(0,_useReducedMotion.useReducedMotion)(),c=n.colors.text.tertiary;return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[o.root,i?o.bubble:null,r],accessible:!0,accessibilityRole:"progressbar",accessibilityLabel:e??t??"Typing",accessibilityState:{busy:!0},"aria-busy":!0,testID:a,children:[(0,_jsxRuntime.jsx)(_reactNative.View,{style:o.dots,children:[0,1,2].map(e=>(0,_jsxRuntime.jsx)(Dot,{index:e,still:s,colour:c,dotStyle:o.dot},e))}),e?(0,_jsxRuntime.jsx)(_index2.Text,{variant:"bodySmall",color:"secondary",children:e}):null]})};exports.TypingIndicator=TypingIndicator;const buildStyles=e=>_reactNative.StyleSheet.create({dot:{width:6,height:6,borderRadius:e.radius.pill,..._corners.smoothCorners},root:{flexDirection:"row",alignItems:"center",alignSelf:"flex-start",gap:e.spacing.sm,marginTop:e.spacing.sm},bubble:{backgroundColor:e.colors.background.secondary,borderRadius:e.radius.xl,..._corners.smoothCorners,paddingHorizontal:e.spacing.md,paddingVertical:e.spacing.sm+e.spacing.xs},dots:{flexDirection:"row",alignItems:"center",gap:e.spacing.xs}});var _default=exports.default=TypingIndicator;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Wheel=exports.WHEEL_VISIBLE_ITEMS=exports.WHEEL_CENTER_OFFSET=void 0;var _react=require("react"),_reactNative=require("react-native"),_index=require("../../theme/index.js"),_announce=require("../../utils/announce.js"),_hapticUtils=require("../../utils/hapticUtils.js"),_jsxRuntime=require("react/jsx-runtime");const WHEEL_VISIBLE_ITEMS=exports.WHEEL_VISIBLE_ITEMS=5,WHEEL_CENTER_OFFSET=exports.WHEEL_CENTER_OFFSET=Math.floor(WHEEL_VISIBLE_ITEMS/2),HAPTIC_DEBOUNCE_MS=35,WEB_SETTLE_MS=120,SCALE_STOPS=[-2,-1,0,1,2],WheelRow=(0,_react.memo)(({label:e,index:t,scrollY:a,itemHeight:r,selected:n,theme:i,reducedMotion:c,onPress:s,editor:l})=>{const{opacity:o,scale:u}=(0,_react.useMemo)(()=>{const e=_reactNative.Animated.subtract(_reactNative.Animated.divide(a,r),t);return{opacity:e.interpolate({inputRange:SCALE_STOPS,outputRange:[.3,.6,1,.6,.3],extrapolate:"clamp"}),scale:e.interpolate({inputRange:SCALE_STOPS,outputRange:[.85,.95,1.05,.95,.85],extrapolate:"clamp"})}},[a,r,t]),d=(0,_jsxRuntime.jsx)(_reactNative.Text,{numberOfLines:1,maxFontSizeMultiplier:1.5,style:{fontSize:i.typography.fontSize.xl,color:n?i.colors.text.primary:i.colors.text.secondary,fontWeight:n?i.typography.fontWeight.semibold:i.typography.fontWeight.medium,letterSpacing:i.typography.letterSpacing.normal},children:e});return(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:[styles.row,{height:r},c?{opacity:o}:{opacity:o,transform:[{scale:u}]}],accessible:!1,importantForAccessibility:"no",children:l??(s?(0,_jsxRuntime.jsx)(_reactNative.Pressable,{focusable:!1,accessible:!1,onPress:()=>s(t),style:styles.rowPress,children:d}):d)})}),Wheel=({label:e,items:t,selectedIndex:a,onIndexChange:r,itemHeight:n,width:i,theme:c,haptic:s,disabled:l,reducedMotion:o,typeable:u,testID:d})=>{const m="web"===_reactNative.Platform.OS,[_,y]=(0,_react.useState)(null),h=(0,_react.useRef)(!1),p=(0,_react.useRef)(null),f=(0,_react.useRef)((0,_index.createAnimatedValue)(a*n)).current,b=(0,_react.useRef)(a*n),E=(0,_react.useRef)(a*n),x=(0,_react.useRef)(a),S=(0,_react.useRef)(0),v=(0,_react.useRef)(null),g=(0,_react.useRef)(()=>{}),T=c.components.timePicker?.hapticDebounceMs??35,I=t.length-1;(0,_react.useEffect)(()=>{x.current=a;const e=a*n;if(E.current===e)return;if(E.current=e,Math.abs(b.current-e)<1)return;b.current=e,m||(0,_index.setNativeValue)(f,e);const t=requestAnimationFrame(()=>{p.current?.scrollToOffset({offset:e,animated:!1})});return()=>cancelAnimationFrame(t)},[a,n,f,m]),(0,_react.useEffect)(()=>()=>{v.current&&clearTimeout(v.current)},[]);const M=(0,_react.useCallback)((e,n)=>{if(!(e===a||e<0||e>I)){if("accessibility"===n){const e=(0,_hapticUtils.resolveHaptic)(s,"denseTick");e&&(0,_hapticUtils.triggerHaptic)(e)}if("keyboard"!==n){const a=t[e];a&&(0,_announce.announce)(a.accessibilityLabel??a.label)}r(e)}},[a,I,t,s,r]),R=(0,_react.useCallback)(()=>{!l&&u&&(h.current=!0,y(String(t[a]?.value??"")))},[l,u,t,a]),L=(0,_react.useCallback)(e=>{if(!h.current)return;h.current=!1,y(null);const a=e.trim();if(!/^\d+$/.test(a))return;const r=Number(a),n=t.findIndex(e=>e.value===r);n>=0&&M(n,"keyboard")},[t,M]);g.current=()=>{v.current=null;const e=Math.max(0,Math.min(I,Math.round(b.current/n))),t=e*n;Math.abs(b.current-t)>=1&&p.current?.scrollToOffset({offset:t,animated:!o}),M(e,"scroll")};const j=(0,_react.useMemo)(()=>_reactNative.Animated.event([{nativeEvent:{contentOffset:{y:f}}}],{useNativeDriver:!m,listener:e=>{const t=e.nativeEvent.contentOffset.y;b.current=t;const a=Math.round(t/n);if(a!==x.current&&a>=0&&a<=I){const e=Date.now();if(e-S.current>=T){const t=(0,_hapticUtils.resolveHaptic)(s,"denseTick");t&&(0,_hapticUtils.triggerHaptic)(t),S.current=e}x.current=a}m&&(v.current&&clearTimeout(v.current),v.current=setTimeout(()=>g.current(),120))}}),[f,n,I,s,T,m]),w=(0,_react.useCallback)(e=>{const t=e.nativeEvent.contentOffset.y;M(Math.max(0,Math.min(I,Math.round(t/n))),"scroll")},[M,I,n]),C=(0,_react.useCallback)(e=>{if(l)return;const t=e.nativeEvent.actionName;"increment"===t?M(Math.min(I,a+1),"accessibility"):"decrement"===t&&M(Math.max(0,a-1),"accessibility")},[l,M,I,a]),N=(0,_react.useCallback)(e=>{l||p.current?.scrollToOffset({offset:e*n,animated:!o})},[l,n,o]),W=(0,_react.useCallback)(({item:t,index:r})=>{const i=r===a,s=i&&null!==_;return(0,_jsxRuntime.jsx)(WheelRow,{label:t.label,index:r,scrollY:f,itemHeight:n,selected:i,theme:c,reducedMotion:o,onPress:i&&u?R:m?N:void 0,editor:s?(0,_jsxRuntime.jsx)(_reactNative.TextInput,{autoFocus:!0,selectTextOnFocus:!0,keyboardType:"number-pad",returnKeyType:"done",accessibilityLabel:e,value:_,onChangeText:y,onSubmitEditing:()=>L(_),onBlur:()=>L(_),style:{width:"100%",padding:0,textAlign:"center",fontSize:c.typography.fontSize.xl,color:c.colors.text.primary,fontWeight:c.typography.fontWeight.semibold,letterSpacing:c.typography.letterSpacing.normal}}):void 0})},[f,n,a,c,o,m,N,u,R,_,L,e]),A=(0,_react.useCallback)((e,t)=>`${String(e.value)}-${t}`,[]),F=(0,_react.useCallback)((e,t)=>({length:n,offset:n*t,index:t}),[n]),H=t[a]?t[a].accessibilityLabel??t[a].label:"",k=m?{focusable:!0,role:"spinbutton","aria-label":e,"aria-valuetext":H,"aria-valuenow":a,"aria-valuemin":0,"aria-valuemax":I,"aria-disabled":l,onKeyDown:e=>{if(l)return;const t={ArrowDown:Math.min(I,a+1),PageDown:Math.min(I,a+1),ArrowUp:Math.max(0,a-1),PageUp:Math.max(0,a-1),Home:0,End:I}[e.key];void 0!==t&&(e.preventDefault?.(),M(t,"keyboard"))}}:void 0;return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[void 0===i?styles.columnFlex:{width:i},{height:n*WHEEL_VISIBLE_ITEMS},styles.column,l?styles.disabled:null],testID:d,...k,children:[m?null:(0,_jsxRuntime.jsx)(_reactNative.View,{pointerEvents:"none",style:styles.a11yLayer,accessible:!0,accessibilityRole:"adjustable",accessibilityLabel:e,accessibilityValue:{text:H},accessibilityState:{disabled:Boolean(l)},"aria-disabled":Boolean(l),accessibilityActions:[{name:"increment"},{name:"decrement"}],onAccessibilityAction:C}),(0,_jsxRuntime.jsx)(_reactNative.Animated.FlatList,{ref:p,data:t,keyExtractor:A,renderItem:W,getItemLayout:F,showsVerticalScrollIndicator:!1,snapToInterval:n,snapToAlignment:"start",decelerationRate:"fast",bounces:!1,scrollEnabled:!l,nestedScrollEnabled:!0,scrollEventThrottle:16,onScroll:j,onMomentumScrollEnd:w,contentContainerStyle:{paddingVertical:n*WHEEL_CENTER_OFFSET},initialScrollIndex:a,style:[styles.list,{height:n*WHEEL_VISIBLE_ITEMS}],importantForAccessibility:"no-hide-descendants","aria-hidden":!0})]})};exports.Wheel=Wheel;const styles=_reactNative.StyleSheet.create({column:{overflow:"hidden"},columnFlex:{flex:1},disabled:{opacity:.5},list:{flexGrow:0},row:{alignItems:"center",justifyContent:"center"},rowPress:{alignItems:"center",justifyContent:"center",alignSelf:"stretch",flex:1},a11yLayer:{..._reactNative.StyleSheet.absoluteFill,zIndex:2}});
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Wheel=exports.WHEEL_VISIBLE_ITEMS=exports.WHEEL_CENTER_OFFSET=void 0;var _react=require("react"),_reactNative=require("react-native"),_index=require("../../theme/index.js"),_announce=require("../../utils/announce.js"),_hapticUtils=require("../../utils/hapticUtils.js"),_jsxRuntime=require("react/jsx-runtime");const WHEEL_VISIBLE_ITEMS=exports.WHEEL_VISIBLE_ITEMS=5,WHEEL_CENTER_OFFSET=exports.WHEEL_CENTER_OFFSET=Math.floor(WHEEL_VISIBLE_ITEMS/2),HAPTIC_DEBOUNCE_MS=35,WEB_SETTLE_MS=120,SCALE_STOPS=[-2,-1,0,1,2],WheelRow=(0,_react.memo)(({label:e,index:t,scrollY:a,itemHeight:r,selected:n,theme:i,reducedMotion:c,onPress:s,editor:l})=>{const{opacity:o,scale:u}=(0,_react.useMemo)(()=>{const e=_reactNative.Animated.subtract(_reactNative.Animated.divide(a,r),t);return{opacity:e.interpolate({inputRange:SCALE_STOPS,outputRange:[.3,.6,1,.6,.3],extrapolate:"clamp"}),scale:e.interpolate({inputRange:SCALE_STOPS,outputRange:[.85,.95,1.05,.95,.85],extrapolate:"clamp"})}},[a,r,t]),d=(0,_jsxRuntime.jsx)(_reactNative.Text,{numberOfLines:1,maxFontSizeMultiplier:1.5,style:{fontSize:i.typography.fontSize.xl,color:n?i.colors.text.primary:i.colors.text.secondary,fontWeight:n?i.typography.fontWeight.semibold:i.typography.fontWeight.medium,letterSpacing:i.typography.letterSpacing.normal},children:e});return(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:[styles.row,{height:r},c?{opacity:o}:{opacity:o,transform:[{scale:u}]}],accessible:!1,importantForAccessibility:"no",children:l??(s?(0,_jsxRuntime.jsx)(_reactNative.Pressable,{focusable:!1,accessible:!1,onPress:()=>s(t),style:styles.rowPress,children:d}):d)})}),Wheel=({label:e,items:t,selectedIndex:a,onIndexChange:r,itemHeight:n,width:i,theme:c,haptic:s,disabled:l,reducedMotion:o,typeable:u,testID:d})=>{const m="web"===_reactNative.Platform.OS,[_,y]=(0,_react.useState)(null),h=(0,_react.useRef)(!1),p=(0,_react.useRef)(null),f=(0,_react.useRef)((0,_index.createAnimatedValue)(a*n)).current,b=(0,_react.useRef)(a*n),E=(0,_react.useRef)(a*n),x=(0,_react.useRef)(a),S=(0,_react.useRef)(0),v=(0,_react.useRef)(null),g=(0,_react.useRef)(()=>{}),T=c.components.timePicker?.hapticDebounceMs??35,I=t.length-1;(0,_react.useEffect)(()=>{x.current=a;const e=a*n;if(E.current===e)return;if(E.current=e,Math.abs(b.current-e)<1)return;b.current=e,m||(0,_index.setNativeValue)(f,e);const t=requestAnimationFrame(()=>{p.current?.scrollToOffset({offset:e,animated:!1})});return()=>cancelAnimationFrame(t)},[a,n,f,m]),(0,_react.useEffect)(()=>()=>{v.current&&clearTimeout(v.current)},[]);const M=(0,_react.useCallback)((e,n)=>{if(!(e===a||e<0||e>I)){if("accessibility"===n){const e=(0,_hapticUtils.resolveHaptic)(s,"denseTick");e&&(0,_hapticUtils.triggerHaptic)(e)}if("keyboard"!==n){const a=t[e];a&&(0,_announce.announce)(a.accessibilityLabel??a.label)}r(e)}},[a,I,t,s,r]),R=(0,_react.useCallback)(()=>{!l&&u&&(h.current=!0,y(String(t[a]?.value??"")))},[l,u,t,a]),L=(0,_react.useCallback)(e=>{if(!h.current)return;h.current=!1,y(null);const a=e.trim();if(!/^\d+$/.test(a))return;const r=Number(a),n=t.findIndex(e=>e.value===r);n>=0&&M(n,"keyboard")},[t,M]);g.current=()=>{v.current=null;const e=Math.max(0,Math.min(I,Math.round(b.current/n))),t=e*n;Math.abs(b.current-t)>=1&&p.current?.scrollToOffset({offset:t,animated:!o}),M(e,"scroll")};const j=(0,_react.useMemo)(()=>_reactNative.Animated.event([{nativeEvent:{contentOffset:{y:f}}}],{useNativeDriver:!m,listener:e=>{const t=e.nativeEvent.contentOffset.y;b.current=t;const a=Math.round(t/n);if(a!==x.current&&a>=0&&a<=I){const e=Date.now();if(e-S.current>=T){const t=(0,_hapticUtils.resolveHaptic)(s,"denseTick");t&&(0,_hapticUtils.triggerHaptic)(t),S.current=e}x.current=a}m&&(v.current&&clearTimeout(v.current),v.current=setTimeout(()=>g.current(),120))}}),[f,n,I,s,T,m]),w=(0,_react.useCallback)(e=>{const t=e.nativeEvent.contentOffset.y;M(Math.max(0,Math.min(I,Math.round(t/n))),"scroll")},[M,I,n]),C=(0,_react.useCallback)(e=>{if(l)return;const t=e.nativeEvent.actionName;"increment"===t?M(Math.min(I,a+1),"accessibility"):"decrement"===t&&M(Math.max(0,a-1),"accessibility")},[l,M,I,a]),N=(0,_react.useCallback)(e=>{l||p.current?.scrollToOffset({offset:e*n,animated:!o})},[l,n,o]),W=(0,_react.useCallback)(({item:t,index:r})=>{const i=r===a,s=i&&null!==_;return(0,_jsxRuntime.jsx)(WheelRow,{label:t.label,index:r,scrollY:f,itemHeight:n,selected:i,theme:c,reducedMotion:o,onPress:i&&u?R:m?N:void 0,editor:s?(0,_jsxRuntime.jsx)(_reactNative.TextInput,{autoFocus:!0,selectTextOnFocus:!0,keyboardType:"number-pad",returnKeyType:"done",accessibilityLabel:e,value:_,onChangeText:y,onSubmitEditing:()=>L(_),onBlur:()=>L(_),style:{width:"100%",padding:c.spacing.none,textAlign:"center",fontSize:c.typography.fontSize.xl,color:c.colors.text.primary,fontWeight:c.typography.fontWeight.semibold,letterSpacing:c.typography.letterSpacing.normal}}):void 0})},[f,n,a,c,o,m,N,u,R,_,L,e]),A=(0,_react.useCallback)((e,t)=>`${String(e.value)}-${t}`,[]),F=(0,_react.useCallback)((e,t)=>({length:n,offset:n*t,index:t}),[n]),H=t[a]?t[a].accessibilityLabel??t[a].label:"",k=m?{focusable:!0,role:"spinbutton","aria-label":e,"aria-valuetext":H,"aria-valuenow":a,"aria-valuemin":0,"aria-valuemax":I,"aria-disabled":l,onKeyDown:e=>{if(l)return;const t={ArrowDown:Math.min(I,a+1),PageDown:Math.min(I,a+1),ArrowUp:Math.max(0,a-1),PageUp:Math.max(0,a-1),Home:0,End:I}[e.key];void 0!==t&&(e.preventDefault?.(),M(t,"keyboard"))}}:void 0;return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[void 0===i?styles.columnFlex:{width:i},{height:n*WHEEL_VISIBLE_ITEMS},styles.column,l?styles.disabled:null],testID:d,...k,children:[m?null:(0,_jsxRuntime.jsx)(_reactNative.View,{pointerEvents:"none",style:styles.a11yLayer,accessible:!0,accessibilityRole:"adjustable",accessibilityLabel:e,accessibilityValue:{text:H},accessibilityState:{disabled:Boolean(l)},"aria-disabled":Boolean(l),accessibilityActions:[{name:"increment"},{name:"decrement"}],onAccessibilityAction:C}),(0,_jsxRuntime.jsx)(_reactNative.Animated.FlatList,{ref:p,data:t,keyExtractor:A,renderItem:W,getItemLayout:F,showsVerticalScrollIndicator:!1,snapToInterval:n,snapToAlignment:"start",decelerationRate:"fast",bounces:!1,scrollEnabled:!l,nestedScrollEnabled:!0,scrollEventThrottle:16,onScroll:j,onMomentumScrollEnd:w,contentContainerStyle:{paddingVertical:n*WHEEL_CENTER_OFFSET},initialScrollIndex:a,style:[styles.list,{height:n*WHEEL_VISIBLE_ITEMS}],importantForAccessibility:"no-hide-descendants","aria-hidden":!0})]})};exports.Wheel=Wheel;const styles=_reactNative.StyleSheet.create({column:{overflow:"hidden"},columnFlex:{flex:1},disabled:{opacity:.5},list:{flexGrow:0},row:{alignItems:"center",justifyContent:"center"},rowPress:{alignItems:"center",justifyContent:"center",alignSelf:"stretch",flex:1},a11yLayer:{..._reactNative.StyleSheet.absoluteFill,zIndex:2}});
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _exportNames={APP_ICON_SIZES:!0,AppIcon:!0,CURATED_ICON_NAMES:!0,defaultIcons:!0,ICON_NAMES:!0,ICONSAX_SUFFIX:!0,renderSlotIcon:!0,deletePath:!0,Form:!0,getPath:!0,HookFormField:!0,isFieldFilled:!0,rules:!0,setPath:!0,useField:!0,useFieldArray:!0,useForm:!0,useFormCompletion:!0,useFormContext:!0,useHookFormField:!0,useOptionalFormContext:!0,FLICK_TOLERANCE:!0,PRESENCE_REDUCE_MOTION:!0,PRESS_ANIMATION_PRESETS:!0,useControllableState:!0,useDebounce:!0,useFieldChain:!0,useFlickGuard:!0,usePresenceMotion:!0,usePressAnimation:!0,useReducedMotion:!0,useRefreshControl:!0,useScrollDirection:!0,useToggle:!0,initUI:!0,NetworkStatusBanner:!0,darkTheme:!0,getColorMode:!0,getTheme:!0,lightTheme:!0,mergeTheme:!0,resetTheme:!0,setColorMode:!0,setTheme:!0,subscribeTheme:!0,ThemeProvider:!0,useTheme:!0,useThemeMode:!0,announce:!0,Breakpoints:!0,configureFeedback:!0,feedback:!0,hapticForIntent:!0,isFeedbackEnabled:!0,isScreenSize:!0,isTablet:!0,Margin:!0,Padding:!0,Responsive:!0,ScreenDimensions:!0,Spacing:!0,SQUIRCLE_MIN_RADIUS:!0,SQUIRCLE_SMOOTHING:!0,setHapticImplementation:!0,shadowStyle:!0,smoothCorners:!0,squircleApplies:!0,squircleHostRadius:!0,squirclePath:!0,triggerHaptic:!0,useScreenDimensions:!0,warnUnknownProps:!0};Object.defineProperty(exports,"APP_ICON_SIZES",{enumerable:!0,get:function(){return _index2.APP_ICON_SIZES}}),Object.defineProperty(exports,"AppIcon",{enumerable:!0,get:function(){return _index2.AppIcon}}),Object.defineProperty(exports,"Breakpoints",{enumerable:!0,get:function(){return _index7.Breakpoints}}),Object.defineProperty(exports,"CURATED_ICON_NAMES",{enumerable:!0,get:function(){return _index2.CURATED_ICON_NAMES}}),Object.defineProperty(exports,"FLICK_TOLERANCE",{enumerable:!0,get:function(){return _index4.FLICK_TOLERANCE}}),Object.defineProperty(exports,"Form",{enumerable:!0,get:function(){return _index3.Form}}),Object.defineProperty(exports,"HookFormField",{enumerable:!0,get:function(){return _index3.HookFormField}}),Object.defineProperty(exports,"ICONSAX_SUFFIX",{enumerable:!0,get:function(){return _index2.ICONSAX_SUFFIX}}),Object.defineProperty(exports,"ICON_NAMES",{enumerable:!0,get:function(){return _index2.ICON_NAMES}}),Object.defineProperty(exports,"Margin",{enumerable:!0,get:function(){return _index7.Margin}}),Object.defineProperty(exports,"NetworkStatusBanner",{enumerable:!0,get:function(){return _index5.NetworkStatusBanner}}),Object.defineProperty(exports,"PRESENCE_REDUCE_MOTION",{enumerable:!0,get:function(){return _index4.PRESENCE_REDUCE_MOTION}}),Object.defineProperty(exports,"PRESS_ANIMATION_PRESETS",{enumerable:!0,get:function(){return _index4.PRESS_ANIMATION_PRESETS}}),Object.defineProperty(exports,"Padding",{enumerable:!0,get:function(){return _index7.Padding}}),Object.defineProperty(exports,"Responsive",{enumerable:!0,get:function(){return _index7.Responsive}}),Object.defineProperty(exports,"SQUIRCLE_MIN_RADIUS",{enumerable:!0,get:function(){return _index7.SQUIRCLE_MIN_RADIUS}}),Object.defineProperty(exports,"SQUIRCLE_SMOOTHING",{enumerable:!0,get:function(){return _index7.SQUIRCLE_SMOOTHING}}),Object.defineProperty(exports,"ScreenDimensions",{enumerable:!0,get:function(){return _index7.ScreenDimensions}}),Object.defineProperty(exports,"Spacing",{enumerable:!0,get:function(){return _index7.Spacing}}),Object.defineProperty(exports,"ThemeProvider",{enumerable:!0,get:function(){return _index6.ThemeProvider}}),Object.defineProperty(exports,"announce",{enumerable:!0,get:function(){return _index7.announce}}),Object.defineProperty(exports,"configureFeedback",{enumerable:!0,get:function(){return _index7.configureFeedback}}),Object.defineProperty(exports,"darkTheme",{enumerable:!0,get:function(){return _index6.darkTheme}}),Object.defineProperty(exports,"defaultIcons",{enumerable:!0,get:function(){return _index2.defaultIcons}}),Object.defineProperty(exports,"deletePath",{enumerable:!0,get:function(){return _index3.deletePath}}),Object.defineProperty(exports,"feedback",{enumerable:!0,get:function(){return _index7.feedback}}),Object.defineProperty(exports,"getColorMode",{enumerable:!0,get:function(){return _index6.getColorMode}}),Object.defineProperty(exports,"getPath",{enumerable:!0,get:function(){return _index3.getPath}}),Object.defineProperty(exports,"getTheme",{enumerable:!0,get:function(){return _index6.getTheme}}),Object.defineProperty(exports,"hapticForIntent",{enumerable:!0,get:function(){return _index7.hapticForIntent}}),Object.defineProperty(exports,"initUI",{enumerable:!0,get:function(){return _initUI.initUI}}),Object.defineProperty(exports,"isFeedbackEnabled",{enumerable:!0,get:function(){return _index7.isFeedbackEnabled}}),Object.defineProperty(exports,"isFieldFilled",{enumerable:!0,get:function(){return _index3.isFieldFilled}}),Object.defineProperty(exports,"isScreenSize",{enumerable:!0,get:function(){return _index7.isScreenSize}}),Object.defineProperty(exports,"isTablet",{enumerable:!0,get:function(){return _index7.isTablet}}),Object.defineProperty(exports,"lightTheme",{enumerable:!0,get:function(){return _index6.lightTheme}}),Object.defineProperty(exports,"mergeTheme",{enumerable:!0,get:function(){return _index6.mergeTheme}}),Object.defineProperty(exports,"renderSlotIcon",{enumerable:!0,get:function(){return _index2.renderSlotIcon}}),Object.defineProperty(exports,"resetTheme",{enumerable:!0,get:function(){return _index6.resetTheme}}),Object.defineProperty(exports,"rules",{enumerable:!0,get:function(){return _index3.rules}}),Object.defineProperty(exports,"setColorMode",{enumerable:!0,get:function(){return _index6.setColorMode}}),Object.defineProperty(exports,"setHapticImplementation",{enumerable:!0,get:function(){return _index7.setHapticImplementation}}),Object.defineProperty(exports,"setPath",{enumerable:!0,get:function(){return _index3.setPath}}),Object.defineProperty(exports,"setTheme",{enumerable:!0,get:function(){return _index6.setTheme}}),Object.defineProperty(exports,"shadowStyle",{enumerable:!0,get:function(){return _index7.shadowStyle}}),Object.defineProperty(exports,"smoothCorners",{enumerable:!0,get:function(){return _index7.smoothCorners}}),Object.defineProperty(exports,"squircleApplies",{enumerable:!0,get:function(){return _index7.squircleApplies}}),Object.defineProperty(exports,"squircleHostRadius",{enumerable:!0,get:function(){return _index7.squircleHostRadius}}),Object.defineProperty(exports,"squirclePath",{enumerable:!0,get:function(){return _index7.squirclePath}}),Object.defineProperty(exports,"subscribeTheme",{enumerable:!0,get:function(){return _index6.subscribeTheme}}),Object.defineProperty(exports,"triggerHaptic",{enumerable:!0,get:function(){return _index7.triggerHaptic}}),Object.defineProperty(exports,"useControllableState",{enumerable:!0,get:function(){return _index4.useControllableState}}),Object.defineProperty(exports,"useDebounce",{enumerable:!0,get:function(){return _index4.useDebounce}}),Object.defineProperty(exports,"useField",{enumerable:!0,get:function(){return _index3.useField}}),Object.defineProperty(exports,"useFieldArray",{enumerable:!0,get:function(){return _index3.useFieldArray}}),Object.defineProperty(exports,"useFieldChain",{enumerable:!0,get:function(){return _index4.useFieldChain}}),Object.defineProperty(exports,"useFlickGuard",{enumerable:!0,get:function(){return _index4.useFlickGuard}}),Object.defineProperty(exports,"useForm",{enumerable:!0,get:function(){return _index3.useForm}}),Object.defineProperty(exports,"useFormCompletion",{enumerable:!0,get:function(){return _index3.useFormCompletion}}),Object.defineProperty(exports,"useFormContext",{enumerable:!0,get:function(){return _index3.useFormContext}}),Object.defineProperty(exports,"useHookFormField",{enumerable:!0,get:function(){return _index3.useHookFormField}}),Object.defineProperty(exports,"useOptionalFormContext",{enumerable:!0,get:function(){return _index3.useOptionalFormContext}}),Object.defineProperty(exports,"usePresenceMotion",{enumerable:!0,get:function(){return _index4.usePresenceMotion}}),Object.defineProperty(exports,"usePressAnimation",{enumerable:!0,get:function(){return _index4.usePressAnimation}}),Object.defineProperty(exports,"useReducedMotion",{enumerable:!0,get:function(){return _index4.useReducedMotion}}),Object.defineProperty(exports,"useRefreshControl",{enumerable:!0,get:function(){return _index4.useRefreshControl}}),Object.defineProperty(exports,"useScreenDimensions",{enumerable:!0,get:function(){return _index7.useScreenDimensions}}),Object.defineProperty(exports,"useScrollDirection",{enumerable:!0,get:function(){return _index4.useScrollDirection}}),Object.defineProperty(exports,"useTheme",{enumerable:!0,get:function(){return _index6.useTheme}}),Object.defineProperty(exports,"useThemeMode",{enumerable:!0,get:function(){return _index6.useThemeMode}}),Object.defineProperty(exports,"useToggle",{enumerable:!0,get:function(){return _index4.useToggle}}),Object.defineProperty(exports,"warnUnknownProps",{enumerable:!0,get:function(){return _index7.warnUnknownProps}});var _index=require("./components/index.js");Object.keys(_index).forEach(function(e){"default"!==e&&"__esModule"!==e&&(Object.prototype.hasOwnProperty.call(_exportNames,e)||e in exports&&exports[e]===_index[e]||Object.defineProperty(exports,e,{enumerable:!0,get:function(){return _index[e]}}))});var _index2=require("./components/AppIcon/index.js"),_index3=require("./form/index.js"),_index4=require("./hooks/index.js"),_initUI=require("./initUI.js"),_index5=require("./network/index.js"),_index6=require("./theme/index.js"),_index7=require("./utils/index.js");
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _exportNames={APP_ICON_SIZES:!0,AppIcon:!0,CURATED_ICON_NAMES:!0,defaultIcons:!0,ICON_NAMES:!0,ICONSAX_SUFFIX:!0,renderSlotIcon:!0,deletePath:!0,Form:!0,getPath:!0,HookFormField:!0,isFieldFilled:!0,rules:!0,setPath:!0,useField:!0,useFieldArray:!0,useForm:!0,useFormCompletion:!0,useFormContext:!0,useHookFormField:!0,useOptionalFormContext:!0,FLICK_TOLERANCE:!0,PRESENCE_REDUCE_MOTION:!0,PRESS_ANIMATION_PRESETS:!0,useControllableState:!0,useDebounce:!0,useFieldChain:!0,useFlickGuard:!0,usePresenceMotion:!0,usePressAnimation:!0,useReducedMotion:!0,useRefreshControl:!0,useScrollDirection:!0,useToggle:!0,initUI:!0,NetworkStatusBanner:!0,darkTheme:!0,fontSizeOf:!0,getColorMode:!0,getTheme:!0,lightTheme:!0,mergeTheme:!0,radiusOf:!0,resetTheme:!0,resolveBadgeSize:!0,resolveButtonSize:!0,resolveCheckboxSize:!0,resolveChipSize:!0,resolveEmptyStateSize:!0,resolveFieldSize:!0,resolveFloatingActionButtonSize:!0,resolveListItemSize:!0,resolveOtpInputSize:!0,resolveRadioSize:!0,resolveSegmentedControlSize:!0,resolveSliderSize:!0,resolveSwitchSize:!0,resolveTabsSize:!0,setColorMode:!0,setTheme:!0,spaceOf:!0,subscribeTheme:!0,ThemeProvider:!0,useTheme:!0,useThemeMode:!0,announce:!0,Breakpoints:!0,configureFeedback:!0,feedback:!0,hapticForIntent:!0,isFeedbackEnabled:!0,isScreenSize:!0,isTablet:!0,Responsive:!0,ScreenDimensions:!0,SQUIRCLE_MIN_RADIUS:!0,SQUIRCLE_SMOOTHING:!0,setHapticImplementation:!0,shadowStyle:!0,smoothCorners:!0,squircleApplies:!0,squircleHostRadius:!0,squirclePath:!0,triggerHaptic:!0,useScreenDimensions:!0,warnUnknownProps:!0};Object.defineProperty(exports,"APP_ICON_SIZES",{enumerable:!0,get:function(){return _index2.APP_ICON_SIZES}}),Object.defineProperty(exports,"AppIcon",{enumerable:!0,get:function(){return _index2.AppIcon}}),Object.defineProperty(exports,"Breakpoints",{enumerable:!0,get:function(){return _index7.Breakpoints}}),Object.defineProperty(exports,"CURATED_ICON_NAMES",{enumerable:!0,get:function(){return _index2.CURATED_ICON_NAMES}}),Object.defineProperty(exports,"FLICK_TOLERANCE",{enumerable:!0,get:function(){return _index4.FLICK_TOLERANCE}}),Object.defineProperty(exports,"Form",{enumerable:!0,get:function(){return _index3.Form}}),Object.defineProperty(exports,"HookFormField",{enumerable:!0,get:function(){return _index3.HookFormField}}),Object.defineProperty(exports,"ICONSAX_SUFFIX",{enumerable:!0,get:function(){return _index2.ICONSAX_SUFFIX}}),Object.defineProperty(exports,"ICON_NAMES",{enumerable:!0,get:function(){return _index2.ICON_NAMES}}),Object.defineProperty(exports,"NetworkStatusBanner",{enumerable:!0,get:function(){return _index5.NetworkStatusBanner}}),Object.defineProperty(exports,"PRESENCE_REDUCE_MOTION",{enumerable:!0,get:function(){return _index4.PRESENCE_REDUCE_MOTION}}),Object.defineProperty(exports,"PRESS_ANIMATION_PRESETS",{enumerable:!0,get:function(){return _index4.PRESS_ANIMATION_PRESETS}}),Object.defineProperty(exports,"Responsive",{enumerable:!0,get:function(){return _index7.Responsive}}),Object.defineProperty(exports,"SQUIRCLE_MIN_RADIUS",{enumerable:!0,get:function(){return _index7.SQUIRCLE_MIN_RADIUS}}),Object.defineProperty(exports,"SQUIRCLE_SMOOTHING",{enumerable:!0,get:function(){return _index7.SQUIRCLE_SMOOTHING}}),Object.defineProperty(exports,"ScreenDimensions",{enumerable:!0,get:function(){return _index7.ScreenDimensions}}),Object.defineProperty(exports,"ThemeProvider",{enumerable:!0,get:function(){return _index6.ThemeProvider}}),Object.defineProperty(exports,"announce",{enumerable:!0,get:function(){return _index7.announce}}),Object.defineProperty(exports,"configureFeedback",{enumerable:!0,get:function(){return _index7.configureFeedback}}),Object.defineProperty(exports,"darkTheme",{enumerable:!0,get:function(){return _index6.darkTheme}}),Object.defineProperty(exports,"defaultIcons",{enumerable:!0,get:function(){return _index2.defaultIcons}}),Object.defineProperty(exports,"deletePath",{enumerable:!0,get:function(){return _index3.deletePath}}),Object.defineProperty(exports,"feedback",{enumerable:!0,get:function(){return _index7.feedback}}),Object.defineProperty(exports,"fontSizeOf",{enumerable:!0,get:function(){return _index6.fontSizeOf}}),Object.defineProperty(exports,"getColorMode",{enumerable:!0,get:function(){return _index6.getColorMode}}),Object.defineProperty(exports,"getPath",{enumerable:!0,get:function(){return _index3.getPath}}),Object.defineProperty(exports,"getTheme",{enumerable:!0,get:function(){return _index6.getTheme}}),Object.defineProperty(exports,"hapticForIntent",{enumerable:!0,get:function(){return _index7.hapticForIntent}}),Object.defineProperty(exports,"initUI",{enumerable:!0,get:function(){return _initUI.initUI}}),Object.defineProperty(exports,"isFeedbackEnabled",{enumerable:!0,get:function(){return _index7.isFeedbackEnabled}}),Object.defineProperty(exports,"isFieldFilled",{enumerable:!0,get:function(){return _index3.isFieldFilled}}),Object.defineProperty(exports,"isScreenSize",{enumerable:!0,get:function(){return _index7.isScreenSize}}),Object.defineProperty(exports,"isTablet",{enumerable:!0,get:function(){return _index7.isTablet}}),Object.defineProperty(exports,"lightTheme",{enumerable:!0,get:function(){return _index6.lightTheme}}),Object.defineProperty(exports,"mergeTheme",{enumerable:!0,get:function(){return _index6.mergeTheme}}),Object.defineProperty(exports,"radiusOf",{enumerable:!0,get:function(){return _index6.radiusOf}}),Object.defineProperty(exports,"renderSlotIcon",{enumerable:!0,get:function(){return _index2.renderSlotIcon}}),Object.defineProperty(exports,"resetTheme",{enumerable:!0,get:function(){return _index6.resetTheme}}),Object.defineProperty(exports,"resolveBadgeSize",{enumerable:!0,get:function(){return _index6.resolveBadgeSize}}),Object.defineProperty(exports,"resolveButtonSize",{enumerable:!0,get:function(){return _index6.resolveButtonSize}}),Object.defineProperty(exports,"resolveCheckboxSize",{enumerable:!0,get:function(){return _index6.resolveCheckboxSize}}),Object.defineProperty(exports,"resolveChipSize",{enumerable:!0,get:function(){return _index6.resolveChipSize}}),Object.defineProperty(exports,"resolveEmptyStateSize",{enumerable:!0,get:function(){return _index6.resolveEmptyStateSize}}),Object.defineProperty(exports,"resolveFieldSize",{enumerable:!0,get:function(){return _index6.resolveFieldSize}}),Object.defineProperty(exports,"resolveFloatingActionButtonSize",{enumerable:!0,get:function(){return _index6.resolveFloatingActionButtonSize}}),Object.defineProperty(exports,"resolveListItemSize",{enumerable:!0,get:function(){return _index6.resolveListItemSize}}),Object.defineProperty(exports,"resolveOtpInputSize",{enumerable:!0,get:function(){return _index6.resolveOtpInputSize}}),Object.defineProperty(exports,"resolveRadioSize",{enumerable:!0,get:function(){return _index6.resolveRadioSize}}),Object.defineProperty(exports,"resolveSegmentedControlSize",{enumerable:!0,get:function(){return _index6.resolveSegmentedControlSize}}),Object.defineProperty(exports,"resolveSliderSize",{enumerable:!0,get:function(){return _index6.resolveSliderSize}}),Object.defineProperty(exports,"resolveSwitchSize",{enumerable:!0,get:function(){return _index6.resolveSwitchSize}}),Object.defineProperty(exports,"resolveTabsSize",{enumerable:!0,get:function(){return _index6.resolveTabsSize}}),Object.defineProperty(exports,"rules",{enumerable:!0,get:function(){return _index3.rules}}),Object.defineProperty(exports,"setColorMode",{enumerable:!0,get:function(){return _index6.setColorMode}}),Object.defineProperty(exports,"setHapticImplementation",{enumerable:!0,get:function(){return _index7.setHapticImplementation}}),Object.defineProperty(exports,"setPath",{enumerable:!0,get:function(){return _index3.setPath}}),Object.defineProperty(exports,"setTheme",{enumerable:!0,get:function(){return _index6.setTheme}}),Object.defineProperty(exports,"shadowStyle",{enumerable:!0,get:function(){return _index7.shadowStyle}}),Object.defineProperty(exports,"smoothCorners",{enumerable:!0,get:function(){return _index7.smoothCorners}}),Object.defineProperty(exports,"spaceOf",{enumerable:!0,get:function(){return _index6.spaceOf}}),Object.defineProperty(exports,"squircleApplies",{enumerable:!0,get:function(){return _index7.squircleApplies}}),Object.defineProperty(exports,"squircleHostRadius",{enumerable:!0,get:function(){return _index7.squircleHostRadius}}),Object.defineProperty(exports,"squirclePath",{enumerable:!0,get:function(){return _index7.squirclePath}}),Object.defineProperty(exports,"subscribeTheme",{enumerable:!0,get:function(){return _index6.subscribeTheme}}),Object.defineProperty(exports,"triggerHaptic",{enumerable:!0,get:function(){return _index7.triggerHaptic}}),Object.defineProperty(exports,"useControllableState",{enumerable:!0,get:function(){return _index4.useControllableState}}),Object.defineProperty(exports,"useDebounce",{enumerable:!0,get:function(){return _index4.useDebounce}}),Object.defineProperty(exports,"useField",{enumerable:!0,get:function(){return _index3.useField}}),Object.defineProperty(exports,"useFieldArray",{enumerable:!0,get:function(){return _index3.useFieldArray}}),Object.defineProperty(exports,"useFieldChain",{enumerable:!0,get:function(){return _index4.useFieldChain}}),Object.defineProperty(exports,"useFlickGuard",{enumerable:!0,get:function(){return _index4.useFlickGuard}}),Object.defineProperty(exports,"useForm",{enumerable:!0,get:function(){return _index3.useForm}}),Object.defineProperty(exports,"useFormCompletion",{enumerable:!0,get:function(){return _index3.useFormCompletion}}),Object.defineProperty(exports,"useFormContext",{enumerable:!0,get:function(){return _index3.useFormContext}}),Object.defineProperty(exports,"useHookFormField",{enumerable:!0,get:function(){return _index3.useHookFormField}}),Object.defineProperty(exports,"useOptionalFormContext",{enumerable:!0,get:function(){return _index3.useOptionalFormContext}}),Object.defineProperty(exports,"usePresenceMotion",{enumerable:!0,get:function(){return _index4.usePresenceMotion}}),Object.defineProperty(exports,"usePressAnimation",{enumerable:!0,get:function(){return _index4.usePressAnimation}}),Object.defineProperty(exports,"useReducedMotion",{enumerable:!0,get:function(){return _index4.useReducedMotion}}),Object.defineProperty(exports,"useRefreshControl",{enumerable:!0,get:function(){return _index4.useRefreshControl}}),Object.defineProperty(exports,"useScreenDimensions",{enumerable:!0,get:function(){return _index7.useScreenDimensions}}),Object.defineProperty(exports,"useScrollDirection",{enumerable:!0,get:function(){return _index4.useScrollDirection}}),Object.defineProperty(exports,"useTheme",{enumerable:!0,get:function(){return _index6.useTheme}}),Object.defineProperty(exports,"useThemeMode",{enumerable:!0,get:function(){return _index6.useThemeMode}}),Object.defineProperty(exports,"useToggle",{enumerable:!0,get:function(){return _index4.useToggle}}),Object.defineProperty(exports,"warnUnknownProps",{enumerable:!0,get:function(){return _index7.warnUnknownProps}});var _index=require("./components/index.js");Object.keys(_index).forEach(function(e){"default"!==e&&"__esModule"!==e&&(Object.prototype.hasOwnProperty.call(_exportNames,e)||e in exports&&exports[e]===_index[e]||Object.defineProperty(exports,e,{enumerable:!0,get:function(){return _index[e]}}))});var _index2=require("./components/AppIcon/index.js"),_index3=require("./form/index.js"),_index4=require("./hooks/index.js"),_initUI=require("./initUI.js"),_index5=require("./network/index.js"),_index6=require("./theme/index.js"),_index7=require("./utils/index.js");
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.NetworkStatusBanner=void 0;var _mobileCore=require("@webority/mobile-core"),_react=require("react"),_reactNative=require("react-native"),_reactNativeSafeAreaContext=require("react-native-safe-area-context"),_usePresenceMotion=require("../hooks/usePresenceMotion.js"),_index=require("../theme/index.js"),_jsxRuntime=require("react/jsx-runtime");const NetworkStatusBanner=({message:e="You are offline. Some features may be unavailable.",position:t="top",style:a,disabled:r=!1,safeArea:o=!0})=>{const n=(0,_index.useTheme)(),i=(0,_usePresenceMotion.usePresenceMotion)(),s=(0,_reactNativeSafeAreaContext.useSafeAreaInsets)(),u=o?"top"===t?s.top:s.bottom:0,[c,l]=(0,_react.useState)(0),d=c>0?c:56+u,{isConnected:m,isInternetReachable:p}=(0,_mobileCore.useNetworkStatus)(),_=!(r||m&&!1!==p),v=(0,_react.useRef)(new _reactNative.Animated.Value(0)).current,f=(0,_react.useRef)(new _reactNative.Animated.Value(0)).current,b=i.duration("normal");(0,_react.useEffect)(()=>{_reactNative.Animated.parallel([_reactNative.Animated.timing(v,{toValue:_?1:0,duration:n.motion.duration.normal,useNativeDriver:!0}),_reactNative.Animated.timing(f,{toValue:_?1:0,duration:b,useNativeDriver:!0})]).start()},[_,v,f,n.motion.duration.normal,b]);const x=(0,_react.useMemo)(()=>buildStyles(),[]),N=v.interpolate({inputRange:[0,1],outputRange:i.range("top"===t?-d:d,0)});return(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{pointerEvents:_?"auto":"none",accessibilityRole:"alert",accessibilityLiveRegion:_?"polite":"none",onLayout:e=>l(e.nativeEvent.layout.height),style:[x.container,"top"===t?x.top:x.bottom,"top"===t?{paddingTop:10+u}:{paddingBottom:10+u},{backgroundColor:n.colors.error,opacity:f,transform:[{translateY:N}]},a],children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:{color:n.colors.onError,fontSize:n.typography.fontSize.sm,...(0,_index.fontFor)(n,"semibold"),textAlign:"center"},numberOfLines:2,children:e})})};exports.NetworkStatusBanner=NetworkStatusBanner;const buildStyles=()=>_reactNative.StyleSheet.create({container:{position:"absolute",left:0,right:0,paddingVertical:10,paddingHorizontal:16,zIndex:1e3,elevation:8},top:{top:0},bottom:{bottom:0}});var _default=exports.default=NetworkStatusBanner;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.NetworkStatusBanner=void 0;var _mobileCore=require("@webority/mobile-core"),_react=require("react"),_reactNative=require("react-native"),_reactNativeSafeAreaContext=require("react-native-safe-area-context"),_usePresenceMotion=require("../hooks/usePresenceMotion.js"),_index=require("../theme/index.js"),_jsxRuntime=require("react/jsx-runtime");const NetworkStatusBanner=({message:e="You are offline. Some features may be unavailable.",position:t="top",style:a,disabled:r=!1,safeArea:o=!0})=>{const n=(0,_index.useTheme)(),i=(0,_usePresenceMotion.usePresenceMotion)(),s=(0,_reactNativeSafeAreaContext.useSafeAreaInsets)(),u=o?"top"===t?s.top:s.bottom:0,[c,l]=(0,_react.useState)(0),d=c>0?c:56+u,{isConnected:m,isInternetReachable:p}=(0,_mobileCore.useNetworkStatus)(),_=!(r||m&&!1!==p),v=(0,_react.useRef)(new _reactNative.Animated.Value(0)).current,f=(0,_react.useRef)(new _reactNative.Animated.Value(0)).current,b=i.duration("normal");(0,_react.useEffect)(()=>{_reactNative.Animated.parallel([_reactNative.Animated.timing(v,{toValue:_?1:0,duration:n.motion.duration.normal,useNativeDriver:!0}),_reactNative.Animated.timing(f,{toValue:_?1:0,duration:b,useNativeDriver:!0})]).start()},[_,v,f,n.motion.duration.normal,b]);const g=(0,_react.useMemo)(()=>buildStyles(n),[n]),x=v.interpolate({inputRange:[0,1],outputRange:i.range("top"===t?-d:d,0)});return(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{pointerEvents:_?"auto":"none",accessibilityRole:"alert",accessibilityLiveRegion:_?"polite":"none",onLayout:e=>l(e.nativeEvent.layout.height),style:[g.container,"top"===t?g.top:g.bottom,"top"===t?{paddingTop:n.spacing.sm+u}:{paddingBottom:n.spacing.sm+u},{backgroundColor:n.colors.error,opacity:f,transform:[{translateY:x}]},a],children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:{color:n.colors.onError,fontSize:n.typography.fontSize.sm,...(0,_index.fontFor)(n,"semibold"),textAlign:"center"},numberOfLines:2,children:e})})};exports.NetworkStatusBanner=NetworkStatusBanner;const buildStyles=e=>_reactNative.StyleSheet.create({container:{position:"absolute",left:0,right:0,paddingVertical:e.spacing.sm,paddingHorizontal:e.spacing.lg,zIndex:1e3,elevation:8},top:{top:0},bottom:{bottom:0}});var _default=exports.default=NetworkStatusBanner;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.validateComponentTokens=exports.resolveTabsSize=exports.resolveSwitchSize=exports.resolveSliderSize=exports.resolveSegmentedControlSize=exports.resolveRadioSize=exports.resolveOtpInputSize=exports.resolveListItemSize=exports.resolveFloatingActionButtonSize=exports.resolveFieldSize=exports.resolveEmptyStateSize=exports.resolveChipSize=exports.resolveCheckboxSize=exports.resolveButtonSize=exports.resolveBadgeSize=void 0;var _scale=require("./scale.js");const resolveSize=(e,t,o,s)=>{const i={};for(const n of Object.keys(o)){const a=t[n],p=`${s}.${n}`;switch(o[n]){case"space":i[n]=(0,_scale.spaceOf)(e,a,p);break;case"text":i[n]=(0,_scale.fontSizeOf)(e,a,p);break;case"radius":i[n]=(0,_scale.radiusOf)(e,a,p);break;case"px":if("number"!=typeof a)throw new Error(`${p} is ${JSON.stringify(a)}; it takes a number of pixels.`);i[n]=a}}return i},BUTTON={paddingX:"space",paddingY:"space",minHeight:"px",text:"text",radius:"radius",icon:"px",badgeIcon:"px"},FIELD={paddingX:"space",paddingY:"space",minHeight:"px",text:"text",radius:"radius",icon:"px",labelText:"text",labelGap:"space",messageText:"text",messageGap:"space"},EMPTY_STATE={icon:"px",titleText:"text",descriptionText:"text",paddingY:"space",titleGap:"space",descriptionGap:"space"},LIST_ITEM={paddingY:"space",titleText:"text",subtitleText:"text",minHeight:"px"},BADGE={text:"text",minWidth:"px",height:"px",paddingX:"space",dotSize:"px"},CHIP={paddingX:"space",paddingY:"space",text:"text",minHeight:"px",closeSize:"px",closeText:"text",gap:"space",icon:"px"},CHECKBOX={boxSize:"px"},RADIO={outer:"px",inner:"px"},SWITCH={trackWidth:"px",trackHeight:"px",thumbSize:"px",padding:"px"},OTP_INPUT={cell:"px",text:"text",radius:"radius",gap:"space"},SEGMENTED_CONTROL={height:"px",text:"text",paddingX:"space",icon:"px"},TABS={text:"text",paddingY:"space",paddingX:"space",scrollablePaddingX:"space",icon:"px"},SLIDER={trackHeight:"px",thumbDiameter:"px"},FAB={diameter:"px",icon:"px",text:"text",labelPaddingX:"space"},resolveButtonSize=(e,t)=>resolveSize(e,e.components.button[t],BUTTON,`components.button.${t}`);exports.resolveButtonSize=resolveButtonSize;const resolveFieldSize=(e,t)=>resolveSize(e,e.components.field[t],FIELD,`components.field.${t}`);exports.resolveFieldSize=resolveFieldSize;const resolveEmptyStateSize=(e,t)=>resolveSize(e,e.components.emptyState[t],EMPTY_STATE,`components.emptyState.${t}`);exports.resolveEmptyStateSize=resolveEmptyStateSize;const resolveListItemSize=(e,t)=>resolveSize(e,e.components.listItem[t],LIST_ITEM,`components.listItem.${t}`);exports.resolveListItemSize=resolveListItemSize;const resolveBadgeSize=(e,t)=>resolveSize(e,e.components.badge[t],BADGE,`components.badge.${t}`);exports.resolveBadgeSize=resolveBadgeSize;const resolveChipSize=(e,t)=>resolveSize(e,e.components.chip[t],CHIP,`components.chip.${t}`);exports.resolveChipSize=resolveChipSize;const resolveCheckboxSize=(e,t)=>resolveSize(e,e.components.checkbox[t],CHECKBOX,`components.checkbox.${t}`);exports.resolveCheckboxSize=resolveCheckboxSize;const resolveRadioSize=(e,t)=>resolveSize(e,e.components.radio[t],RADIO,`components.radio.${t}`);exports.resolveRadioSize=resolveRadioSize;const resolveSwitchSize=(e,t)=>resolveSize(e,e.components.switch[t],SWITCH,`components.switch.${t}`);exports.resolveSwitchSize=resolveSwitchSize;const resolveOtpInputSize=(e,t)=>resolveSize(e,e.components.otpInput[t],OTP_INPUT,`components.otpInput.${t}`);exports.resolveOtpInputSize=resolveOtpInputSize;const resolveSegmentedControlSize=(e,t)=>resolveSize(e,e.components.segmentedControl[t],SEGMENTED_CONTROL,`components.segmentedControl.${t}`);exports.resolveSegmentedControlSize=resolveSegmentedControlSize;const resolveTabsSize=(e,t)=>resolveSize(e,e.components.tabs[t],TABS,`components.tabs.${t}`);exports.resolveTabsSize=resolveTabsSize;const resolveSliderSize=(e,t)=>resolveSize(e,e.components.slider[t],SLIDER,`components.slider.${t}`);exports.resolveSliderSize=resolveSliderSize;const resolveFloatingActionButtonSize=(e,t)=>resolveSize(e,e.components.floatingActionButton[t],FAB,`components.floatingActionButton.${t}`);exports.resolveFloatingActionButtonSize=resolveFloatingActionButtonSize;const THREE=["sm","md","lg"],TWO=["sm","md"],FIVE=["xs","sm","md","lg","xl"],validateComponentTokens=e=>{const t=e.components;for(const t of FIVE)resolveButtonSize(e,t);for(const o of THREE)resolveFieldSize(e,o),resolveEmptyStateSize(e,o),resolveListItemSize(e,o),resolveCheckboxSize(e,o),resolveRadioSize(e,o),resolveSwitchSize(e,o),resolveOtpInputSize(e,o),resolveSegmentedControlSize(e,o),resolveTabsSize(e,o),resolveSliderSize(e,o),resolveFloatingActionButtonSize(e,o),(0,_scale.radiusOf)(e,t.searchBar[o].radius,`components.searchBar.${o}.radius`);for(const t of TWO)resolveBadgeSize(e,t),resolveChipSize(e,t);(0,_scale.spaceOf)(e,t.checkbox.labelGap,"components.checkbox.labelGap"),(0,_scale.spaceOf)(e,t.radio.labelGap,"components.radio.labelGap"),(0,_scale.spaceOf)(e,t.segmentedControl.trackPadding,"components.segmentedControl.trackPadding"),(0,_scale.spaceOf)(e,t.segmentedControl.pillInset,"components.segmentedControl.pillInset"),(0,_scale.spaceOf)(e,t.tabs.iconGap,"components.tabs.iconGap"),(0,_scale.spaceOf)(e,t.tabs.trackPadding,"components.tabs.trackPadding"),(0,_scale.spaceOf)(e,t.tabs.pillInset,"components.tabs.pillInset"),(0,_scale.spaceOf)(e,t.tabs.badgeGap,"components.tabs.badgeGap"),(0,_scale.spaceOf)(e,t.floatingActionButton.edgeOffset,"components.floatingActionButton.edgeOffset"),(0,_scale.spaceOf)(e,t.floatingActionButton.bottomOffset,"components.floatingActionButton.bottomOffset"),(0,_scale.spaceOf)(e,t.floatingActionButton.secondaryGap,"components.floatingActionButton.secondaryGap"),(0,_scale.fontSizeOf)(e,t.toast.iconGlyphText,"components.toast.iconGlyphText"),void 0!==t.segmentedControl.radius&&(0,_scale.radiusOf)(e,t.segmentedControl.radius,"components.segmentedControl.radius"),void 0!==t.tabs.radius&&(0,_scale.radiusOf)(e,t.tabs.radius,"components.tabs.radius")};exports.validateComponentTokens=validateComponentTokens;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"Gradient",{enumerable:!0,get:function(){return _Gradient.Gradient}}),Object.defineProperty(exports,"ThemeProvider",{enumerable:!0,get:function(){return _ThemeContext.ThemeProvider}}),Object.defineProperty(exports,"createAnimatedValue",{enumerable:!0,get:function(){return _animatedValue.createAnimatedValue}}),Object.defineProperty(exports,"darkTheme",{enumerable:!0,get:function(){return _tokens.darkTheme}}),Object.defineProperty(exports,"fontFor",{enumerable:!0,get:function(){return _textStyle.fontFor}}),exports.getTheme=exports.getColorMode=void 0,Object.defineProperty(exports,"gradientAngle",{enumerable:!0,get:function(){return _Gradient.gradientAngle}}),Object.defineProperty(exports,"lightTheme",{enumerable:!0,get:function(){return _tokens.lightTheme}}),Object.defineProperty(exports,"mergeTheme",{enumerable:!0,get:function(){return _merge.mergeTheme}}),exports.setColorMode=exports.resetTheme=void 0,Object.defineProperty(exports,"setNativeValue",{enumerable:!0,get:function(){return _animatedValue.setNativeValue}}),exports.subscribeTheme=exports.setTheme=void 0,Object.defineProperty(exports,"toBackgroundImage",{enumerable:!0,get:function(){return _Gradient.toBackgroundImage}}),Object.defineProperty(exports,"useTheme",{enumerable:!0,get:function(){return _ThemeContext.useTheme}}),Object.defineProperty(exports,"useThemeMode",{enumerable:!0,get:function(){return _ThemeContext.useThemeMode}});var _merge=require("./merge.js"),_tokens=require("./tokens.js"),_animatedValue=require("./animatedValue.js"),_Gradient=require("./Gradient.js"),_ThemeContext=require("./ThemeContext.js"),_textStyle=require("./textStyle.js");let lightOverridesGlobal,darkOverridesGlobal,currentMode="light",currentTheme=_tokens.lightTheme;const subscribers=new Set,recompute=()=>{const e="dark"===currentMode?_tokens.darkTheme:_tokens.lightTheme,r="dark"===currentMode?darkOverridesGlobal:lightOverridesGlobal;currentTheme=r?(0,_merge.mergeTheme)(e,r):e,subscribers.forEach(e=>e())},setTheme=(e,r)=>{r&&(currentMode=r),"dark"===currentMode?darkOverridesGlobal=e:lightOverridesGlobal=e,recompute()};exports.setTheme=setTheme;const setColorMode=e=>{currentMode=e,recompute()};exports.setColorMode=setColorMode;const getColorMode=()=>currentMode;exports.getColorMode=getColorMode;const getTheme=()=>currentTheme;exports.getTheme=getTheme;const resetTheme=()=>{currentMode="light",lightOverridesGlobal=void 0,darkOverridesGlobal=void 0,recompute()};exports.resetTheme=resetTheme;const subscribeTheme=e=>(subscribers.add(e),()=>{subscribers.delete(e)});exports.subscribeTheme=subscribeTheme;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"Gradient",{enumerable:!0,get:function(){return _Gradient.Gradient}}),Object.defineProperty(exports,"ThemeProvider",{enumerable:!0,get:function(){return _ThemeContext.ThemeProvider}}),Object.defineProperty(exports,"createAnimatedValue",{enumerable:!0,get:function(){return _animatedValue.createAnimatedValue}}),Object.defineProperty(exports,"darkTheme",{enumerable:!0,get:function(){return _tokens.darkTheme}}),Object.defineProperty(exports,"fontFor",{enumerable:!0,get:function(){return _textStyle.fontFor}}),Object.defineProperty(exports,"fontSizeOf",{enumerable:!0,get:function(){return _scale.fontSizeOf}}),exports.getTheme=exports.getColorMode=void 0,Object.defineProperty(exports,"gradientAngle",{enumerable:!0,get:function(){return _Gradient.gradientAngle}}),Object.defineProperty(exports,"lightTheme",{enumerable:!0,get:function(){return _tokens.lightTheme}}),Object.defineProperty(exports,"mergeTheme",{enumerable:!0,get:function(){return _merge.mergeTheme}}),Object.defineProperty(exports,"radiusOf",{enumerable:!0,get:function(){return _scale.radiusOf}}),exports.resetTheme=void 0,Object.defineProperty(exports,"resolveBadgeSize",{enumerable:!0,get:function(){return _componentSizes.resolveBadgeSize}}),Object.defineProperty(exports,"resolveButtonSize",{enumerable:!0,get:function(){return _componentSizes.resolveButtonSize}}),Object.defineProperty(exports,"resolveCheckboxSize",{enumerable:!0,get:function(){return _componentSizes.resolveCheckboxSize}}),Object.defineProperty(exports,"resolveChipSize",{enumerable:!0,get:function(){return _componentSizes.resolveChipSize}}),Object.defineProperty(exports,"resolveEmptyStateSize",{enumerable:!0,get:function(){return _componentSizes.resolveEmptyStateSize}}),Object.defineProperty(exports,"resolveFieldSize",{enumerable:!0,get:function(){return _componentSizes.resolveFieldSize}}),Object.defineProperty(exports,"resolveFloatingActionButtonSize",{enumerable:!0,get:function(){return _componentSizes.resolveFloatingActionButtonSize}}),Object.defineProperty(exports,"resolveListItemSize",{enumerable:!0,get:function(){return _componentSizes.resolveListItemSize}}),Object.defineProperty(exports,"resolveOtpInputSize",{enumerable:!0,get:function(){return _componentSizes.resolveOtpInputSize}}),Object.defineProperty(exports,"resolveRadioSize",{enumerable:!0,get:function(){return _componentSizes.resolveRadioSize}}),Object.defineProperty(exports,"resolveSegmentedControlSize",{enumerable:!0,get:function(){return _componentSizes.resolveSegmentedControlSize}}),Object.defineProperty(exports,"resolveSliderSize",{enumerable:!0,get:function(){return _componentSizes.resolveSliderSize}}),Object.defineProperty(exports,"resolveSwitchSize",{enumerable:!0,get:function(){return _componentSizes.resolveSwitchSize}}),Object.defineProperty(exports,"resolveTabsSize",{enumerable:!0,get:function(){return _componentSizes.resolveTabsSize}}),exports.setColorMode=void 0,Object.defineProperty(exports,"setNativeValue",{enumerable:!0,get:function(){return _animatedValue.setNativeValue}}),exports.setTheme=void 0,Object.defineProperty(exports,"spaceOf",{enumerable:!0,get:function(){return _scale.spaceOf}}),exports.subscribeTheme=void 0,Object.defineProperty(exports,"toBackgroundImage",{enumerable:!0,get:function(){return _Gradient.toBackgroundImage}}),Object.defineProperty(exports,"useTheme",{enumerable:!0,get:function(){return _ThemeContext.useTheme}}),Object.defineProperty(exports,"useThemeMode",{enumerable:!0,get:function(){return _ThemeContext.useThemeMode}}),Object.defineProperty(exports,"validateComponentTokens",{enumerable:!0,get:function(){return _componentSizes.validateComponentTokens}});var _merge=require("./merge.js"),_tokens=require("./tokens.js"),_animatedValue=require("./animatedValue.js"),_componentSizes=require("./componentSizes.js"),_Gradient=require("./Gradient.js"),_scale=require("./scale.js"),_ThemeContext=require("./ThemeContext.js"),_textStyle=require("./textStyle.js");let lightOverridesGlobal,darkOverridesGlobal,currentMode="light",currentTheme=_tokens.lightTheme;const subscribers=new Set,recompute=()=>{const e="dark"===currentMode?_tokens.darkTheme:_tokens.lightTheme,t="dark"===currentMode?darkOverridesGlobal:lightOverridesGlobal;currentTheme=t?(0,_merge.mergeTheme)(e,t):e,subscribers.forEach(e=>e())},setTheme=(e,t)=>{t&&(currentMode=t),"dark"===currentMode?darkOverridesGlobal=e:lightOverridesGlobal=e,recompute()};exports.setTheme=setTheme;const setColorMode=e=>{currentMode=e,recompute()};exports.setColorMode=setColorMode;const getColorMode=()=>currentMode;exports.getColorMode=getColorMode;const getTheme=()=>currentTheme;exports.getTheme=getTheme;const resetTheme=()=>{currentMode="light",lightOverridesGlobal=void 0,darkOverridesGlobal=void 0,recompute()};exports.resetTheme=resetTheme;const subscribeTheme=e=>(subscribers.add(e),()=>{subscribers.delete(e)});exports.subscribeTheme=subscribeTheme;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.mergeTheme=void 0;var _toneInk=require("./toneInk.js");const isPlainObject=e=>"object"==typeof e&&null!==e&&!Array.isArray(e),deepMerge=(e,r)=>{if(!isPlainObject(e)||!isPlainObject(r))return void 0!==r?r:e;const o={...e};for(const t of Object.keys(r)){const s=r[t],n=e[t];isPlainObject(s)&&isPlainObject(n)?o[t]=deepMerge(n,s):void 0!==s&&(o[t]=s)}return o},TONES=["primary","success","warning","error","info"],ON_INK={primary:"onPrimary",success:"onSuccess",warning:"onWarning",error:"onError",info:"onInfo"},withDerivedTones=(e,r,o)=>{const t=o?.colors;if(!t||!e?.colors?.toneText)return e;const{background:s}=e.colors,n=[s.primary,s.secondary,s.tertiary],i={},c={};let l={};for(const o of TONES){const s="string"==typeof t[o];let a=e.colors[o];if(s||"string"==typeof t[ON_INK[o]]){const r=(0,_toneInk.deriveSolidFill)(a,e.colors[ON_INK[o]]);r!==a&&(i[o]=r,a=r)}if(s&&"string"!=typeof t.toneText?.[o]&&(c[o]=(0,_toneInk.deriveToneInk)(a,n,r.mode)),"primary"===o&&(s||void 0!==i.primary)){const o=(0,_toneInk.deriveStateFills)(a,e.colors.onPrimary,{fill:r.colors.primary,hover:r.colors.primaryHover,pressed:r.colors.primaryPressed});l={..."string"==typeof t.primaryHover?{}:{primaryHover:o.hover},..."string"==typeof t.primaryPressed?{}:{primaryPressed:o.pressed}}}}return 0===Object.keys(i).length&&0===Object.keys(c).length&&0===Object.keys(l).length?e:{...e,colors:{...e.colors,...i,...l,toneText:{...e.colors.toneText,...c}}}},mergeTheme=(e,r)=>{const o=deepMerge(e,r);return withDerivedTones(o,e,r)};exports.mergeTheme=mergeTheme;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.mergeTheme=void 0;var _componentSizes=require("./componentSizes.js"),_retiredThemeKeys=require("./retiredThemeKeys.js"),_toneInk=require("./toneInk.js");const isPlainObject=e=>"object"==typeof e&&null!==e&&!Array.isArray(e),SIZES=["xs","sm","md","lg","xl"],walkRetired=(e,r,o)=>{if(!isPlainObject(e)||0===r.length)return[];const[s,...t]=r,n="<size>"===s?Object.keys(e).filter(e=>SIZES.includes(e)):[s],i=[];for(const r of n){if(!Object.hasOwn(e,r))continue;const s=[...o,r],n=e[r];0===t.length?void 0!==n&&i.push(s):i.push(...walkRetired(n,t,s))}return i},refuseRetiredKeys=e=>{const r=[];for(const o of _retiredThemeKeys.RETIRED_THEME_KEYS)for(const s of walkRetired(e,o.path.split("."),[])){const e=s.join("."),t=s.slice(0,-1).join(".");if(null===o.to)r.push(`- ${e}: removed; ${o.hint}`);else if(o.scale){const s="fontSize"===o.scale?"base":"md";r.push(`- ${e}: now ${t}.${o.to}, a ${o.scale} scale name such as '${s}'`)}else r.push(`- ${e}: now ${t}.${o.to}`)}if(0!==r.length)throw new Error([`Theme overrides use keys mobile-ui ${_retiredThemeKeys.RETIRED_THEME_KEYS_RELEASE} retired. Run \`mobile-tools codemod theme-keys\` in the app folder, then fix what it lists:`,...r].join("\n"))},deepMerge=(e,r)=>{if(!isPlainObject(e)||!isPlainObject(r))return void 0!==r?r:e;const o={...e};for(const s of Object.keys(r)){const t=r[s],n=e[s];isPlainObject(t)&&isPlainObject(n)?o[s]=deepMerge(n,t):void 0!==t&&(o[s]=t)}return o},TONES=["primary","success","warning","error","info"],ON_INK={primary:"onPrimary",success:"onSuccess",warning:"onWarning",error:"onError",info:"onInfo"},withDerivedTones=(e,r,o)=>{const s=o?.colors;if(!s||!e?.colors?.toneText)return e;const{background:t}=e.colors,n=[t.primary,t.secondary,t.tertiary],i={},c={};let l={};for(const o of TONES){const t="string"==typeof s[o];let a=e.colors[o];if(t||"string"==typeof s[ON_INK[o]]){const r=(0,_toneInk.deriveSolidFill)(a,e.colors[ON_INK[o]]);r!==a&&(i[o]=r,a=r)}if(t&&"string"!=typeof s.toneText?.[o]&&(c[o]=(0,_toneInk.deriveToneInk)(a,n,r.mode)),"primary"===o&&(t||void 0!==i.primary)){const o=(0,_toneInk.deriveStateFills)(a,e.colors.onPrimary,{fill:r.colors.primary,hover:r.colors.primaryHover,pressed:r.colors.primaryPressed});l={..."string"==typeof s.primaryHover?{}:{primaryHover:o.hover},..."string"==typeof s.primaryPressed?{}:{primaryPressed:o.pressed}}}}return 0===Object.keys(i).length&&0===Object.keys(c).length&&0===Object.keys(l).length?e:{...e,colors:{...e.colors,...i,...l,toneText:{...e.colors.toneText,...c}}}},mergeTheme=(e,r)=>{refuseRetiredKeys(r);const o=withDerivedTones(deepMerge(e,r),e,r);return(0,_componentSizes.validateComponentTokens)(o),o};exports.mergeTheme=mergeTheme;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.RETIRED_THEME_KEYS_RELEASE=exports.RETIRED_THEME_KEYS=void 0;const RETIRED_THEME_KEYS_RELEASE=exports.RETIRED_THEME_KEYS_RELEASE="0.19.0",sized=(e,n)=>Object.entries(n).map(([n,[i,o]])=>({path:`components.${e}.<size>.${n}`,to:i,...o?{scale:o}:{}})),gone=(e,n)=>({path:e,to:null,hint:n}),renamed=(e,n,i)=>({path:e,to:n,...i?{scale:i}:{}}),RETIRED_THEME_KEYS=exports.RETIRED_THEME_KEYS=[...sized("button",{paddingHorizontal:["paddingX","spacing"],paddingVertical:["paddingY","spacing"],fontSize:["text","fontSize"],borderRadius:["radius","radius"],iconSize:["icon",void 0]}),...sized("field",{paddingHorizontal:["paddingX","spacing"],paddingVertical:["paddingY","spacing"],fontSize:["text","fontSize"],borderRadius:["radius","radius"],iconSize:["icon",void 0],labelFontSize:["labelText","fontSize"],messageFontSize:["messageText","fontSize"]}),...sized("badge",{fontSize:["text","fontSize"],paddingHorizontal:["paddingX","spacing"]}),...sized("chip",{paddingHorizontal:["paddingX","spacing"],paddingVertical:["paddingY","spacing"],fontSize:["text","fontSize"],closeFontSize:["closeText","fontSize"],iconSize:["icon",void 0]}),...sized("emptyState",{iconSize:["icon",void 0],titleFontSize:["titleText","fontSize"],descriptionFontSize:["descriptionText","fontSize"],paddingVertical:["paddingY","spacing"]}),...sized("listItem",{paddingVertical:["paddingY","spacing"],titleFontSize:["titleText","fontSize"],subtitleFontSize:["subtitleText","fontSize"]}),...sized("otpInput",{fontSize:["text","fontSize"],borderRadius:["radius","radius"]}),...sized("segmentedControl",{fontSize:["text","fontSize"],paddingHorizontal:["paddingX","spacing"],iconSize:["icon",void 0]}),...sized("tabs",{fontSize:["text","fontSize"],paddingVertical:["paddingY","spacing"],paddingHorizontal:["paddingX","spacing"],scrollablePaddingHorizontal:["scrollablePaddingX","spacing"],iconSize:["icon",void 0]}),renamed("components.searchBar.<size>.borderRadius","radius","radius"),gone("components.searchBar.<size>.minHeight","set components.field.<size>.minHeight"),gone("components.searchBar.<size>.paddingHorizontal","set components.field.<size>.paddingX"),gone("components.searchBar.<size>.fontSize","set components.field.<size>.text"),gone("components.searchBar.<size>.iconSize","set components.field.<size>.icon"),gone("components.input.<size>","set components.field.<size>"),gone("components.input.borderRadius","set components.field.<size>.radius"),gone("components.select.borderRadius","set components.field.<size>.radius"),gone("components.phoneNumberInput","set components.field.<size>"),renamed("components.accordion.cardPaddingVertical","cardPaddingY","spacing"),renamed("components.appBar.badgePaddingHorizontal","badgePaddingX","spacing"),renamed("components.appBar.badgeFontSize","badgeText","fontSize"),renamed("components.avatar.fontSize","text","fontSize"),renamed("components.banner.iconGlyphFontSize","iconGlyphText","fontSize"),renamed("components.banner.closeGlyphFontSize","closeGlyphText","fontSize"),renamed("components.banner.actionButtonPaddingHorizontal","actionButtonPaddingX","spacing"),renamed("components.banner.actionButtonPaddingVertical","actionButtonPaddingY","spacing"),gone("components.banner.iconCircleRadius","the icon circle is always round"),gone("components.banner.closeButtonRadius","the close button is always round"),renamed("components.bottomNavigation.borderRadius","radius","radius"),renamed("components.choiceGroup.borderRadius","radius","radius"),renamed("components.datePicker.navTextFontSize","navText","fontSize"),renamed("components.datePicker.dayInnerBorderRadius","dayInnerRadius","radius"),renamed("components.datePicker.yearInnerBorderRadius","yearInnerRadius","radius"),renamed("components.dateRangePicker.navTextFontSize","navText","fontSize"),gone("components.dialog.iconWrapperBorderRadius","the icon disc is always round"),renamed("components.filePicker.borderRadius","radius","radius"),renamed("components.tabs.tabIconSpacing","iconGap","spacing"),gone("components.tabs.tabPaddingHorizontal","set components.tabs.<size>.paddingX"),gone("components.tabs.tabPaddingVertical","set components.tabs.<size>.paddingY"),gone("components.tabs.tabIconSize","set components.tabs.<size>.icon"),renamed("components.toast.iconGlyphFontSize","iconGlyphText","fontSize"),gone("components.toast.iconCircleBorderRadius","the icon circle is always round"),renamed("radius.full","pill"),gone("radius.xs","use sm, or none"),gone("radius.2xl","use xl")];
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.spaceOf=exports.radiusOf=exports.fontSizeOf=void 0;const resolve=(e,s,o,r)=>{const t=e[o];if("number"!=typeof t)throw new Error(`${r} is ${JSON.stringify(o)}, which is not a ${s} name. Use one of: ${Object.keys(e).join(", ")}.`);return t},spaceOf=(e,s,o)=>resolve(e.spacing,"spacing",s,o);exports.spaceOf=spaceOf;const fontSizeOf=(e,s,o)=>resolve(e.typography.fontSize,"text size",s,o);exports.fontSizeOf=fontSizeOf;const radiusOf=(e,s,o)=>resolve(e.radius,"corner",s,o);exports.radiusOf=radiusOf;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.lightTheme=exports.darkTheme=void 0;var _squircle=require("../utils/squircle.js");const typography={fontSize:{xs:11,sm:13,base:15,lg:17,xl:20,"2xl":24,"3xl":30,"4xl":36},fontWeight:{normal:"400",medium:"500",semibold:"600",bold:"700"},lineHeight:{tight:1.2,normal:1.4,relaxed:1.6},letterSpacing:{tight:-.2,normal:0,wide:.4}},spacing={none:0,xxs:2,xs:4,sm:8,md:12,lg:16,xl:24,"2xl":32,"3xl":48,"4xl":64},radius={none:0,xs:4,sm:6,md:10,lg:14,xl:20,"2xl":28,full:9999},FIELD_RADIUS=10,fieldSizes={sm:{paddingHorizontal:12,paddingVertical:10,minHeight:38,fontSize:13,borderRadius:10,iconSize:14,labelFontSize:11,labelGap:4,messageFontSize:11,messageGap:2},md:{paddingHorizontal:14,paddingVertical:13,minHeight:44,fontSize:14,borderRadius:10,iconSize:16,labelFontSize:12,labelGap:4,messageFontSize:12,messageGap:2},lg:{paddingHorizontal:16,paddingVertical:15,minHeight:52,fontSize:16,borderRadius:10,iconSize:18,labelFontSize:13,labelGap:4,messageFontSize:13,messageGap:2}},components={button:{xs:{paddingHorizontal:10,paddingVertical:4,minHeight:28,fontSize:12,borderRadius:8},sm:{paddingHorizontal:12,paddingVertical:6,minHeight:34,fontSize:14,borderRadius:10},md:{paddingHorizontal:16,paddingVertical:9,minHeight:44,fontSize:16,borderRadius:12},lg:{paddingHorizontal:20,paddingVertical:12,minHeight:50,fontSize:18,borderRadius:14},xl:{paddingHorizontal:24,paddingVertical:14,minHeight:58,fontSize:20,borderRadius:16}},input:{sm:{...fieldSizes.sm,multilineMinHeight:72},md:{...fieldSizes.md,multilineMinHeight:92},lg:{...fieldSizes.lg,multilineMinHeight:110}},searchBar:{sm:{borderRadius:radius.full},md:{borderRadius:radius.full},lg:{borderRadius:radius.full}},emptyState:{sm:{iconSize:48,titleFontSize:"lg",descriptionFontSize:"sm",paddingVertical:"lg",titleGap:"md",descriptionGap:"xs"},md:{iconSize:64,titleFontSize:"xl",descriptionFontSize:"base",paddingVertical:"xl",titleGap:"md",descriptionGap:"xs"},lg:{iconSize:80,titleFontSize:"2xl",descriptionFontSize:"base",paddingVertical:"2xl",titleGap:"md",descriptionGap:"xs"}},field:{defaultVariant:"outlined",sm:fieldSizes.sm,md:fieldSizes.md,lg:fieldSizes.lg},listItem:{sm:{paddingVertical:"sm",titleFontSize:"sm",subtitleFontSize:"xs",minHeight:44},md:{paddingVertical:"md",titleFontSize:"base",subtitleFontSize:"sm",minHeight:56},lg:{paddingVertical:"lg",titleFontSize:"lg",subtitleFontSize:"sm",minHeight:72}},badge:{sm:{fontSize:10,minWidth:16,height:16,paddingHorizontal:5,dotSize:8},md:{fontSize:11,minWidth:20,height:20,paddingHorizontal:6,dotSize:10},borderWidth:1.5,anchorOffset:4},chip:{sm:{paddingHorizontal:10,paddingVertical:4,fontSize:12,minHeight:26,closeSize:16,closeFontSize:12,gap:6},md:{paddingHorizontal:12,paddingVertical:6,fontSize:13,minHeight:32,closeSize:18,closeFontSize:13,gap:8}},checkbox:{sm:{boxSize:16},md:{boxSize:20},lg:{boxSize:24},labelGap:10},radio:{sm:{outer:16,inner:8},md:{outer:20,inner:10},lg:{outer:24,inner:12},labelGap:10},switch:{sm:{trackWidth:42,trackHeight:26,thumbSize:22,padding:2},md:{trackWidth:51,trackHeight:31,thumbSize:27,padding:2},lg:{trackWidth:60,trackHeight:36,thumbSize:32,padding:2},thumbColor:"#FFFFFF"},otpInput:{sm:{cell:36,fontSize:16,borderRadius:8,gap:8},md:{cell:48,fontSize:20,borderRadius:10,gap:10},lg:{cell:56,fontSize:24,borderRadius:12,gap:12}},dialog:{iconWrapperSize:48,iconWrapperBorderRadius:24,actionButtonMinHeight:44},toast:{iconCircleSize:28,iconCircleBorderRadius:14,iconGlyphFontSize:16,tintBarWidth:0},banner:{tintBarWidth:0},formField:{inlineLabelWidth:"35%"}},motion={duration:{instant:80,fast:160,normal:240,slow:360,slower:500},fadeDuration:160,easing:{standard:[.4,0,.2,1],accelerate:[.4,0,1,1],decelerate:[0,0,.2,1],sharp:[.4,0,.6,1]},spring:{gentle:{damping:26,stiffness:240,mass:.9},bouncy:{damping:16,stiffness:200,mass:.7},snappy:{damping:20,stiffness:300,mass:.7}}},lightShadows={none:{},xs:{shadowColor:"#000",shadowOffset:{width:0,height:1},shadowOpacity:.04,shadowRadius:2,elevation:1},sm:{shadowColor:"#000",shadowOffset:{width:0,height:2},shadowOpacity:.06,shadowRadius:4,elevation:2},md:{shadowColor:"#000",shadowOffset:{width:0,height:4},shadowOpacity:.08,shadowRadius:8,elevation:4},lg:{shadowColor:"#000",shadowOffset:{width:0,height:8},shadowOpacity:.1,shadowRadius:16,elevation:8},xl:{shadowColor:"#000",shadowOffset:{width:0,height:12},shadowOpacity:.14,shadowRadius:24,elevation:12},"2xl":{shadowColor:"#000",shadowOffset:{width:0,height:20},shadowOpacity:.18,shadowRadius:32,elevation:20}},darkShadows={none:{},xs:{shadowColor:"#000",shadowOffset:{width:0,height:1},shadowOpacity:.3,shadowRadius:2,elevation:1},sm:{shadowColor:"#000",shadowOffset:{width:0,height:2},shadowOpacity:.4,shadowRadius:4,elevation:2},md:{shadowColor:"#000",shadowOffset:{width:0,height:4},shadowOpacity:.5,shadowRadius:8,elevation:4},lg:{shadowColor:"#000",shadowOffset:{width:0,height:8},shadowOpacity:.55,shadowRadius:16,elevation:8},xl:{shadowColor:"#000",shadowOffset:{width:0,height:12},shadowOpacity:.6,shadowRadius:24,elevation:12},"2xl":{shadowColor:"#000",shadowOffset:{width:0,height:20},shadowOpacity:.7,shadowRadius:32,elevation:20}},lightTheme=exports.lightTheme={mode:"light",colors:{primary:"#5B5BD6",primaryHover:"#4F4FBF",primaryPressed:"#4040A8",primaryMuted:"#EEEEFC",secondary:"#F4F4F8",secondaryHover:"#E9E9F0",success:"#18864F",warning:"#F59E0B",error:"#E12C32",info:"#1B6EF5",onPrimary:"#FFFFFF",onNeutral:"#FFFFFF",onSecondary:"#0F0F1A",onSuccess:"#FFFFFF",onWarning:"#0F0F1A",onError:"#FFFFFF",onInfo:"#FFFFFF",onOverlay:"#FFFFFF",toneText:{primary:"#4F4FD3",success:"#147042",warning:"#8F5C06",error:"#BC1B20",info:"#0958D9"},text:{primary:"#0F0F1A",secondary:"#52525B",tertiary:"#62626B",inverse:"#FFFFFF",strong:"#252F4A",disabled:"#B4B4BB",link:"#5B5BD6"},background:{primary:"#FFFFFF",secondary:"#F8F8FB",tertiary:"#F1F1F5",elevated:"#FFFFFF",overlay:"rgba(15, 15, 26, 0.5)",inverse:"#0F0F1A"},border:{primary:"#E5E5EC",secondary:"#EFEFF3",focus:"#5B5BD6",error:"#E5484D",width:1},field:{background:"#F9FBFC",backgroundFocused:"#FFFFFF",backgroundDisabled:"#F5F6FA",border:"#EBEDF3",borderFocused:"#BED2F9",borderError:"#FDBFCE",label:"#242F4A",text:"#252F4A",textDisabled:"#C4CADA",placeholder:"#626D8B",placeholderDisabled:"#C4CADA",icon:"#7A849F",iconFocused:"#4B5675",iconDisabled:"#C4CADA",caret:"#5B8DEE",message:"#D81736"},surface:{pressed:"rgba(15, 15, 26, 0.06)",hovered:"rgba(15, 15, 26, 0.04)",selected:"rgba(91, 91, 214, 0.1)",disabled:"#F1F1F5"},glass:{fill:"rgba(255, 255, 255, 0.28)",border:"rgba(255, 255, 255, 0.45)",on:"#0F0F1A",badge:"#FFFFFF"},skeleton:{background:"#EBEDF3",highlight:"#F5F6FA"},avatarPalette:["#5B5BD6","#0A7979","#A45A05","#CD226E","#2462EB","#7C3AED","#047C57","#D42222"]},typography:typography,spacing:spacing,radius:radius,cornerSmoothing:_squircle.SQUIRCLE_SMOOTHING,shadows:lightShadows,motion:motion,components:components,gradients:{}},darkTheme=exports.darkTheme={mode:"dark",colors:{primary:"#7C7CE8",primaryHover:"#9292EE",primaryPressed:"#A8A8F2",primaryMuted:"#1F1F3D",secondary:"#1F1F26",secondaryHover:"#2A2A33",success:"#30C780",warning:"#FBBF24",error:"#F87171",info:"#60A5FA",onPrimary:"#0F0F1A",onNeutral:"#0F0F1A",onSecondary:"#FAFAFA",onSuccess:"#0F0F1A",onWarning:"#0F0F1A",onError:"#0F0F1A",onInfo:"#0F0F1A",onOverlay:"#FFFFFF",toneText:{primary:"#8989EA",success:"#30C780",warning:"#FBBF24",error:"#F87171",info:"#60A5FA"},text:{primary:"#FAFAFA",secondary:"#B4B4BB",tertiary:"#919199",inverse:"#0F0F1A",strong:"#E2E2E2",disabled:"#52525B",link:"#9292EE"},background:{primary:"#0B0B12",secondary:"#13131C",tertiary:"#1C1C26",elevated:"#1C1C26",overlay:"rgba(0, 0, 0, 0.65)",inverse:"#FAFAFA"},border:{primary:"#27272F",secondary:"#1C1C26",focus:"#7C7CE8",error:"#F87171",width:1},field:{background:"#13131C",backgroundFocused:"#0B0B12",backgroundDisabled:"#1C1C26",border:"#27272F",borderFocused:"#3D5FB0",borderError:"#8A2F42",label:"#E4E6EE",text:"#FAFAFA",textDisabled:"#52525B",placeholder:"#84848D",placeholderDisabled:"#52525B",icon:"#8B8B95",iconFocused:"#D4D4DB",iconDisabled:"#52525B",caret:"#7C9EF0",message:"#F87171"},surface:{pressed:"rgba(255, 255, 255, 0.08)",hovered:"rgba(255, 255, 255, 0.05)",selected:"rgba(124, 124, 232, 0.18)",disabled:"#1C1C26"},glass:{fill:"rgba(255, 255, 255, 0.28)",border:"rgba(255, 255, 255, 0.45)",on:"#0F0F1A",badge:"#FFFFFF"},skeleton:{background:"#1C1C26",highlight:"#27272F"},avatarPalette:["#8B8BEE","#2DD4BF","#FCD34D","#F472B6","#60A5FA","#A78BFA","#34D399","#F87171"]},typography:typography,spacing:spacing,radius:radius,cornerSmoothing:_squircle.SQUIRCLE_SMOOTHING,shadows:darkShadows,motion:motion,components:components,gradients:{}};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.lightTheme=exports.darkTheme=void 0;var _squircle=require("../utils/squircle.js");const typography={fontSize:{xs:11,sm:13,base:15,lg:17,xl:20,"2xl":24,"3xl":30,"4xl":36},fontWeight:{normal:"400",medium:"500",semibold:"600",bold:"700"},lineHeight:{tight:1.2,normal:1.4,relaxed:1.6},letterSpacing:{tight:-.2,normal:0,wide:.4}},spacing={none:0,xxs:2,xs:4,sm:8,md:12,lg:16,xl:24,"2xl":32,"3xl":48,"4xl":64},radius={none:0,sm:6,md:10,lg:14,xl:20,pill:9999},components={button:{xs:{paddingX:"sm",paddingY:"xs",minHeight:28,text:"xs",radius:"md",icon:14,badgeIcon:11},sm:{paddingX:"md",paddingY:"xs",minHeight:34,text:"sm",radius:"md",icon:16,badgeIcon:16},md:{paddingX:"lg",paddingY:"sm",minHeight:44,text:"base",radius:"md",icon:18,badgeIcon:18},lg:{paddingX:"xl",paddingY:"md",minHeight:50,text:"lg",radius:"lg",icon:20,badgeIcon:20},xl:{paddingX:"2xl",paddingY:"md",minHeight:58,text:"xl",radius:"lg",icon:22,badgeIcon:22}},field:{defaultVariant:"outlined",sm:{paddingX:"sm",paddingY:"sm",minHeight:38,text:"sm",radius:"md",icon:14,labelText:"xs",labelGap:"xs",messageText:"xs",messageGap:"xxs"},md:{paddingX:"md",paddingY:"md",minHeight:44,text:"base",radius:"md",icon:16,labelText:"sm",labelGap:"xs",messageText:"sm",messageGap:"xxs"},lg:{paddingX:"lg",paddingY:"lg",minHeight:52,text:"lg",radius:"md",icon:18,labelText:"base",labelGap:"xs",messageText:"base",messageGap:"xxs"}},input:{sm:{multilineMinHeight:72},md:{multilineMinHeight:92},lg:{multilineMinHeight:110}},searchBar:{sm:{radius:"pill"},md:{radius:"pill"},lg:{radius:"pill"}},emptyState:{sm:{icon:48,titleText:"lg",descriptionText:"sm",paddingY:"lg",titleGap:"md",descriptionGap:"xs"},md:{icon:64,titleText:"xl",descriptionText:"base",paddingY:"xl",titleGap:"md",descriptionGap:"xs"},lg:{icon:80,titleText:"2xl",descriptionText:"lg",paddingY:"2xl",titleGap:"md",descriptionGap:"xs"}},listItem:{sm:{paddingY:"sm",titleText:"sm",subtitleText:"xs",minHeight:44},md:{paddingY:"md",titleText:"base",subtitleText:"sm",minHeight:56},lg:{paddingY:"lg",titleText:"lg",subtitleText:"base",minHeight:72}},badge:{sm:{text:"xs",minWidth:16,height:16,paddingX:"xs",dotSize:8},md:{text:"sm",minWidth:20,height:20,paddingX:"sm",dotSize:10},borderWidth:1.5,anchorOffset:4},chip:{sm:{paddingX:"sm",paddingY:"xs",text:"xs",minHeight:26,closeSize:16,closeText:"xs",gap:"xs",icon:14},md:{paddingX:"md",paddingY:"xs",text:"sm",minHeight:32,closeSize:18,closeText:"sm",gap:"sm",icon:16}},checkbox:{sm:{boxSize:16},md:{boxSize:20},lg:{boxSize:24},labelGap:"sm"},radio:{sm:{outer:16,inner:8},md:{outer:20,inner:10},lg:{outer:24,inner:12},labelGap:"sm"},switch:{sm:{trackWidth:42,trackHeight:26,thumbSize:22,padding:2},md:{trackWidth:51,trackHeight:31,thumbSize:27,padding:2},lg:{trackWidth:60,trackHeight:36,thumbSize:32,padding:2},thumbColor:"#FFFFFF"},otpInput:{sm:{cell:36,text:"base",radius:"sm",gap:"sm"},md:{cell:48,text:"xl",radius:"md",gap:"sm"},lg:{cell:56,text:"2xl",radius:"lg",gap:"md"}},segmentedControl:{sm:{height:32,text:"sm",paddingX:"sm",icon:14},md:{height:40,text:"base",paddingX:"md",icon:16},lg:{height:48,text:"lg",paddingX:"lg",icon:18},trackPadding:"xs",underlineHeight:2,pillInset:"xs"},tabs:{sm:{text:"sm",paddingY:"sm",paddingX:"xs",scrollablePaddingX:"md",icon:16},md:{text:"base",paddingY:"md",paddingX:"sm",scrollablePaddingX:"lg",icon:18},lg:{text:"lg",paddingY:"lg",paddingX:"md",scrollablePaddingX:"xl",icon:20},iconGap:"xs",trackPadding:"xs",underlineHeight:2,pillInset:"xs",disabledOpacity:.45,badgeGap:"xs"},slider:{sm:{trackHeight:4,thumbDiameter:24},md:{trackHeight:6,thumbDiameter:28},lg:{trackHeight:8,thumbDiameter:32}},floatingActionButton:{sm:{diameter:40,icon:18,text:"sm",labelPaddingX:"md"},md:{diameter:56,icon:22,text:"base",labelPaddingX:"lg"},lg:{diameter:72,icon:28,text:"lg",labelPaddingX:"xl"},edgeOffset:"xl",bottomOffset:"xl",secondaryGap:"lg",staggerMs:50},dialog:{iconWrapperSize:48,actionButtonMinHeight:44},toast:{iconCircleSize:28,iconGlyphText:"lg",tintBarWidth:0,actionMinHeight:30},banner:{tintBarWidth:0},formField:{inlineLabelWidth:"35%"}},motion={duration:{instant:80,fast:160,normal:240,slow:360,slower:500},fadeDuration:160,easing:{standard:[.4,0,.2,1],accelerate:[.4,0,1,1],decelerate:[0,0,.2,1],sharp:[.4,0,.6,1]},spring:{gentle:{damping:26,stiffness:240,mass:.9},bouncy:{damping:16,stiffness:200,mass:.7},snappy:{damping:20,stiffness:300,mass:.7}}},lightShadows={none:{},xs:{shadowColor:"#000",shadowOffset:{width:0,height:1},shadowOpacity:.04,shadowRadius:2,elevation:1},sm:{shadowColor:"#000",shadowOffset:{width:0,height:2},shadowOpacity:.06,shadowRadius:4,elevation:2},md:{shadowColor:"#000",shadowOffset:{width:0,height:4},shadowOpacity:.08,shadowRadius:8,elevation:4},lg:{shadowColor:"#000",shadowOffset:{width:0,height:8},shadowOpacity:.1,shadowRadius:16,elevation:8},xl:{shadowColor:"#000",shadowOffset:{width:0,height:12},shadowOpacity:.14,shadowRadius:24,elevation:12},"2xl":{shadowColor:"#000",shadowOffset:{width:0,height:20},shadowOpacity:.18,shadowRadius:32,elevation:20}},darkShadows={none:{},xs:{shadowColor:"#000",shadowOffset:{width:0,height:1},shadowOpacity:.3,shadowRadius:2,elevation:1},sm:{shadowColor:"#000",shadowOffset:{width:0,height:2},shadowOpacity:.4,shadowRadius:4,elevation:2},md:{shadowColor:"#000",shadowOffset:{width:0,height:4},shadowOpacity:.5,shadowRadius:8,elevation:4},lg:{shadowColor:"#000",shadowOffset:{width:0,height:8},shadowOpacity:.55,shadowRadius:16,elevation:8},xl:{shadowColor:"#000",shadowOffset:{width:0,height:12},shadowOpacity:.6,shadowRadius:24,elevation:12},"2xl":{shadowColor:"#000",shadowOffset:{width:0,height:20},shadowOpacity:.7,shadowRadius:32,elevation:20}},lightTheme=exports.lightTheme={mode:"light",colors:{primary:"#5B5BD6",primaryHover:"#4F4FBF",primaryPressed:"#4040A8",primaryMuted:"#EEEEFC",secondary:"#F4F4F8",secondaryHover:"#E9E9F0",success:"#18864F",warning:"#F59E0B",error:"#E12C32",info:"#1B6EF5",onPrimary:"#FFFFFF",onNeutral:"#FFFFFF",onSecondary:"#0F0F1A",onSuccess:"#FFFFFF",onWarning:"#0F0F1A",onError:"#FFFFFF",onInfo:"#FFFFFF",onOverlay:"#FFFFFF",toneText:{primary:"#4F4FD3",success:"#147042",warning:"#8F5C06",error:"#BC1B20",info:"#0958D9"},text:{primary:"#0F0F1A",secondary:"#52525B",tertiary:"#62626B",inverse:"#FFFFFF",strong:"#252F4A",disabled:"#B4B4BB",link:"#5B5BD6"},background:{primary:"#FFFFFF",secondary:"#F8F8FB",tertiary:"#F1F1F5",elevated:"#FFFFFF",overlay:"rgba(15, 15, 26, 0.5)",inverse:"#0F0F1A"},border:{primary:"#E5E5EC",secondary:"#EFEFF3",focus:"#5B5BD6",error:"#E5484D",width:1},field:{background:"#F9FBFC",backgroundFocused:"#FFFFFF",backgroundDisabled:"#F5F6FA",border:"#EBEDF3",borderFocused:"#BED2F9",borderError:"#FDBFCE",label:"#242F4A",text:"#252F4A",textDisabled:"#C4CADA",placeholder:"#626D8B",placeholderDisabled:"#C4CADA",icon:"#7A849F",iconFocused:"#4B5675",iconDisabled:"#C4CADA",caret:"#5B8DEE",message:"#D81736"},surface:{pressed:"rgba(15, 15, 26, 0.06)",hovered:"rgba(15, 15, 26, 0.04)",selected:"rgba(91, 91, 214, 0.1)",disabled:"#F1F1F5"},glass:{fill:"rgba(255, 255, 255, 0.28)",border:"rgba(255, 255, 255, 0.45)",on:"#0F0F1A",badge:"#FFFFFF"},skeleton:{background:"#EBEDF3",highlight:"#F5F6FA"},avatarPalette:["#5B5BD6","#0A7979","#A45A05","#CD226E","#2462EB","#7C3AED","#047C57","#D42222"]},typography:typography,spacing:spacing,radius:radius,cornerSmoothing:_squircle.SQUIRCLE_SMOOTHING,shadows:lightShadows,motion:motion,components:components,gradients:{}},darkTheme=exports.darkTheme={mode:"dark",colors:{primary:"#7C7CE8",primaryHover:"#9292EE",primaryPressed:"#A8A8F2",primaryMuted:"#1F1F3D",secondary:"#1F1F26",secondaryHover:"#2A2A33",success:"#30C780",warning:"#FBBF24",error:"#F87171",info:"#60A5FA",onPrimary:"#0F0F1A",onNeutral:"#0F0F1A",onSecondary:"#FAFAFA",onSuccess:"#0F0F1A",onWarning:"#0F0F1A",onError:"#0F0F1A",onInfo:"#0F0F1A",onOverlay:"#FFFFFF",toneText:{primary:"#8989EA",success:"#30C780",warning:"#FBBF24",error:"#F87171",info:"#60A5FA"},text:{primary:"#FAFAFA",secondary:"#B4B4BB",tertiary:"#919199",inverse:"#0F0F1A",strong:"#E2E2E2",disabled:"#52525B",link:"#9292EE"},background:{primary:"#0B0B12",secondary:"#13131C",tertiary:"#1C1C26",elevated:"#1C1C26",overlay:"rgba(0, 0, 0, 0.65)",inverse:"#FAFAFA"},border:{primary:"#27272F",secondary:"#1C1C26",focus:"#7C7CE8",error:"#F87171",width:1},field:{background:"#13131C",backgroundFocused:"#0B0B12",backgroundDisabled:"#1C1C26",border:"#27272F",borderFocused:"#3D5FB0",borderError:"#8A2F42",label:"#E4E6EE",text:"#FAFAFA",textDisabled:"#52525B",placeholder:"#84848D",placeholderDisabled:"#52525B",icon:"#8B8B95",iconFocused:"#D4D4DB",iconDisabled:"#52525B",caret:"#7C9EF0",message:"#F87171"},surface:{pressed:"rgba(255, 255, 255, 0.08)",hovered:"rgba(255, 255, 255, 0.05)",selected:"rgba(124, 124, 232, 0.18)",disabled:"#1C1C26"},glass:{fill:"rgba(255, 255, 255, 0.28)",border:"rgba(255, 255, 255, 0.45)",on:"#0F0F1A",badge:"#FFFFFF"},skeleton:{background:"#1C1C26",highlight:"#27272F"},avatarPalette:["#8B8BEE","#2DD4BF","#FCD34D","#F472B6","#60A5FA","#A78BFA","#34D399","#F87171"]},typography:typography,spacing:spacing,radius:radius,cornerSmoothing:_squircle.SQUIRCLE_SMOOTHING,shadows:darkShadows,motion:motion,components:components,gradients:{}};
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"Breakpoints",{enumerable:!0,get:function(){return _responsive.Breakpoints}}),Object.defineProperty(exports,"Margin",{enumerable:!0,get:function(){return _spacing.Margin}}),Object.defineProperty(exports,"Padding",{enumerable:!0,get:function(){return _spacing.Padding}}),Object.defineProperty(exports,"Responsive",{enumerable:!0,get:function(){return _responsive.Responsive}}),Object.defineProperty(exports,"SQUIRCLE_MIN_RADIUS",{enumerable:!0,get:function(){return _squircle.SQUIRCLE_MIN_RADIUS}}),Object.defineProperty(exports,"SQUIRCLE_SMOOTHING",{enumerable:!0,get:function(){return _squircle.SQUIRCLE_SMOOTHING}}),Object.defineProperty(exports,"ScreenDimensions",{enumerable:!0,get:function(){return _responsive.ScreenDimensions}}),Object.defineProperty(exports,"Spacing",{enumerable:!0,get:function(){return _spacing.Spacing}}),Object.defineProperty(exports,"announce",{enumerable:!0,get:function(){return _announce.announce}}),Object.defineProperty(exports,"blendOf",{enumerable:!0,get:function(){return _color.blendOf}}),Object.defineProperty(exports,"configureFeedback",{enumerable:!0,get:function(){return _feedback.configureFeedback}}),Object.defineProperty(exports,"feedback",{enumerable:!0,get:function(){return _feedback.feedback}}),Object.defineProperty(exports,"hapticForIntent",{enumerable:!0,get:function(){return _feedback.hapticForIntent}}),Object.defineProperty(exports,"isFeedbackEnabled",{enumerable:!0,get:function(){return _feedback.isFeedbackEnabled}}),Object.defineProperty(exports,"isScreenSize",{enumerable:!0,get:function(){return _responsive.isScreenSize}}),Object.defineProperty(exports,"isTablet",{enumerable:!0,get:function(){return _responsive.isTablet}}),Object.defineProperty(exports,"mergeRefs",{enumerable:!0,get:function(){return _mergeRefs.mergeRefs}}),Object.defineProperty(exports,"resolveHaptic",{enumerable:!0,get:function(){return _hapticUtils.resolveHaptic}}),Object.defineProperty(exports,"setHapticImplementation",{enumerable:!0,get:function(){return _hapticUtils.setHapticImplementation}}),Object.defineProperty(exports,"shadowStyle",{enumerable:!0,get:function(){return _shadows.shadowStyle}}),Object.defineProperty(exports,"smoothCorners",{enumerable:!0,get:function(){return _corners.smoothCorners}}),Object.defineProperty(exports,"squircleApplies",{enumerable:!0,get:function(){return _squircle.squircleApplies}}),Object.defineProperty(exports,"squircleHostRadius",{enumerable:!0,get:function(){return _squircle.squircleHostRadius}}),Object.defineProperty(exports,"squirclePath",{enumerable:!0,get:function(){return _squircle.squirclePath}}),Object.defineProperty(exports,"tintOf",{enumerable:!0,get:function(){return _color.tintOf}}),Object.defineProperty(exports,"triggerHaptic",{enumerable:!0,get:function(){return _hapticUtils.triggerHaptic}}),Object.defineProperty(exports,"useScreenDimensions",{enumerable:!0,get:function(){return _responsive.useScreenDimensions}}),Object.defineProperty(exports,"warnUnknownProps",{enumerable:!0,get:function(){return _warnUnknownProps.warnUnknownProps}});var _announce=require("./announce.js"),_color=require("./color.js"),_corners=require("./corners.js"),_feedback=require("./feedback.js"),_hapticUtils=require("./hapticUtils.js"),_mergeRefs=require("./mergeRefs.js"),_responsive=require("./responsive.js"),_shadows=require("./shadows.js"),_spacing=require("./spacing.js"),_squircle=require("./squircle.js"),_warnUnknownProps=require("./warnUnknownProps.js");
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"Breakpoints",{enumerable:!0,get:function(){return _responsive.Breakpoints}}),Object.defineProperty(exports,"Responsive",{enumerable:!0,get:function(){return _responsive.Responsive}}),Object.defineProperty(exports,"SQUIRCLE_MIN_RADIUS",{enumerable:!0,get:function(){return _squircle.SQUIRCLE_MIN_RADIUS}}),Object.defineProperty(exports,"SQUIRCLE_SMOOTHING",{enumerable:!0,get:function(){return _squircle.SQUIRCLE_SMOOTHING}}),Object.defineProperty(exports,"ScreenDimensions",{enumerable:!0,get:function(){return _responsive.ScreenDimensions}}),Object.defineProperty(exports,"announce",{enumerable:!0,get:function(){return _announce.announce}}),Object.defineProperty(exports,"blendOf",{enumerable:!0,get:function(){return _color.blendOf}}),Object.defineProperty(exports,"configureFeedback",{enumerable:!0,get:function(){return _feedback.configureFeedback}}),Object.defineProperty(exports,"feedback",{enumerable:!0,get:function(){return _feedback.feedback}}),Object.defineProperty(exports,"hapticForIntent",{enumerable:!0,get:function(){return _feedback.hapticForIntent}}),Object.defineProperty(exports,"isFeedbackEnabled",{enumerable:!0,get:function(){return _feedback.isFeedbackEnabled}}),Object.defineProperty(exports,"isScreenSize",{enumerable:!0,get:function(){return _responsive.isScreenSize}}),Object.defineProperty(exports,"isTablet",{enumerable:!0,get:function(){return _responsive.isTablet}}),Object.defineProperty(exports,"mergeRefs",{enumerable:!0,get:function(){return _mergeRefs.mergeRefs}}),Object.defineProperty(exports,"resolveHaptic",{enumerable:!0,get:function(){return _hapticUtils.resolveHaptic}}),Object.defineProperty(exports,"setHapticImplementation",{enumerable:!0,get:function(){return _hapticUtils.setHapticImplementation}}),Object.defineProperty(exports,"shadowStyle",{enumerable:!0,get:function(){return _shadows.shadowStyle}}),Object.defineProperty(exports,"smoothCorners",{enumerable:!0,get:function(){return _corners.smoothCorners}}),Object.defineProperty(exports,"squircleApplies",{enumerable:!0,get:function(){return _squircle.squircleApplies}}),Object.defineProperty(exports,"squircleHostRadius",{enumerable:!0,get:function(){return _squircle.squircleHostRadius}}),Object.defineProperty(exports,"squirclePath",{enumerable:!0,get:function(){return _squircle.squirclePath}}),Object.defineProperty(exports,"tintOf",{enumerable:!0,get:function(){return _color.tintOf}}),Object.defineProperty(exports,"triggerHaptic",{enumerable:!0,get:function(){return _hapticUtils.triggerHaptic}}),Object.defineProperty(exports,"useScreenDimensions",{enumerable:!0,get:function(){return _responsive.useScreenDimensions}}),Object.defineProperty(exports,"warnUnknownProps",{enumerable:!0,get:function(){return _warnUnknownProps.warnUnknownProps}});var _announce=require("./announce.js"),_color=require("./color.js"),_corners=require("./corners.js"),_feedback=require("./feedback.js"),_hapticUtils=require("./hapticUtils.js"),_mergeRefs=require("./mergeRefs.js"),_responsive=require("./responsive.js"),_shadows=require("./shadows.js"),_squircle=require("./squircle.js"),_warnUnknownProps=require("./warnUnknownProps.js");
@@ -1 +1 @@
1
- "use strict";import{createElement}from"react";import{StyleSheet,View}from"react-native";import{useKeyboardState}from"react-native-keyboard-controller";import{darkTheme,lightTheme}from"../theme/index.js";const STATUS_BAR_HEIGHT={Ios:54,Android:24},HOME_AREA_HEIGHT={Ios:34,Android:0},HOME_BAR_WIDTH=134,HOME_BAR_HEIGHT=5,NAV_BAR_HEIGHT=24,NAV_PILL_WIDTH=108,NAV_PILL_HEIGHT=4,KEYBOARD_HEIGHT_IOS=336,KEYBOARD_HEIGHT_ANDROID=300,MARKER={statusBar:"AppStatusBar",homeIndicator:"AppHomeIndicator",navigationBar:"AppNavigationBar",safeArea:"AppSafeArea",keyboardFrame:"AppKeyboardFrame"},wuiMarker=e=>({dataSet:{wui:e}}),paletteFor=e=>"dark"===e?darkTheme:lightTheme,styles=StyleSheet.create({overlayTop:{position:"absolute",top:0,left:0,right:0},overlayBottom:{position:"absolute",bottom:0,left:0,right:0,alignItems:"center",justifyContent:"flex-end"},fill:{flex:1},homeBar:{width:134,height:5},navPill:{width:108,height:4},keyboardPreview:{position:"absolute",bottom:0,left:0,right:0}});export const StatusBar=({os:e,colorMode:o="light"})=>{const t=paletteFor(o);return createElement(View,{...wuiMarker(MARKER.statusBar),accessibilityElementsHidden:!0,importantForAccessibility:"no-hide-descendants",pointerEvents:"none",style:[styles.overlayTop,{height:STATUS_BAR_HEIGHT[e],backgroundColor:t.colors.background.primary}]})};export const HomeIndicator=({os:e,colorMode:o="light"})=>{const t=paletteFor(o);return createElement(View,{...wuiMarker(MARKER.homeIndicator),accessibilityElementsHidden:!0,importantForAccessibility:"no-hide-descendants",pointerEvents:"none",style:[styles.overlayBottom,{height:HOME_AREA_HEIGHT[e]}]},"Ios"===e?createElement(View,{style:[styles.homeBar,{backgroundColor:t.colors.text.primary,borderRadius:t.radius.full,marginBottom:t.spacing.sm}]}):null)};export const NavigationBar=({os:e,colorMode:o="light"})=>{if("Android"!==e)return null;const t=paletteFor(o);return createElement(View,{...wuiMarker(MARKER.navigationBar),accessibilityElementsHidden:!0,importantForAccessibility:"no-hide-descendants",pointerEvents:"none",style:[styles.overlayBottom,{height:24,justifyContent:"center"}]},createElement(View,{style:[styles.navPill,{backgroundColor:t.colors.text.primary,borderRadius:t.radius.full}]}))};export const SafeArea=({os:e,children:o})=>createElement(View,{...wuiMarker(MARKER.safeArea),style:[styles.fill,{paddingTop:STATUS_BAR_HEIGHT[e],paddingBottom:HOME_AREA_HEIGHT[e]}]},o);const KEYBOARD_PREVIEW_HEIGHT={ios:336,android:300};export const KeyboardFrame=({colorMode:e="light",previewOs:o,children:t})=>{const r=paletteFor(e),a=useKeyboardState(e=>Math.max(0,Math.round(e.height)));return createElement(View,{...wuiMarker(MARKER.keyboardFrame),style:[styles.fill,{paddingBottom:a,backgroundColor:r.colors.background.primary}]},t,o?createElement(View,{pointerEvents:"none",style:[styles.keyboardPreview,{height:KEYBOARD_PREVIEW_HEIGHT[o],backgroundColor:r.colors.background.primary}]}):null)};const SOURCE="@webority/mobile-ui",osProp={name:"os",type:"enum",enum:["Ios","Android"],required:!0},colorModeProp={name:"colorMode",type:"enum",enum:["light","dark"],required:!1};export const phoneChromeEntries=[{name:"StatusBar",marker:MARKER.statusBar,acceptsChildren:!1,props:[osProp,colorModeProp],itemsTakeAction:[],takesAction:[],source:SOURCE},{name:"HomeIndicator",marker:MARKER.homeIndicator,acceptsChildren:!1,props:[osProp,colorModeProp],itemsTakeAction:[],takesAction:[],source:SOURCE},{name:"NavigationBar",marker:MARKER.navigationBar,acceptsChildren:!1,props:[osProp,colorModeProp],itemsTakeAction:[],takesAction:[],source:SOURCE},{name:"SafeArea",marker:MARKER.safeArea,acceptsChildren:!0,props:[osProp],itemsTakeAction:[],takesAction:[],source:SOURCE},{name:"KeyboardFrame",marker:MARKER.keyboardFrame,acceptsChildren:!0,props:[colorModeProp],itemsTakeAction:[],takesAction:[],source:SOURCE}];
1
+ "use strict";import{createElement}from"react";import{StyleSheet,View}from"react-native";import{useKeyboardState}from"react-native-keyboard-controller";import{darkTheme,lightTheme}from"../theme/index.js";const STATUS_BAR_HEIGHT={Ios:54,Android:24},HOME_AREA_HEIGHT={Ios:34,Android:0},HOME_BAR_WIDTH=134,HOME_BAR_HEIGHT=5,NAV_BAR_HEIGHT=24,NAV_PILL_WIDTH=108,NAV_PILL_HEIGHT=4,KEYBOARD_HEIGHT_IOS=336,KEYBOARD_HEIGHT_ANDROID=300,MARKER={statusBar:"AppStatusBar",homeIndicator:"AppHomeIndicator",navigationBar:"AppNavigationBar",safeArea:"AppSafeArea",keyboardFrame:"AppKeyboardFrame"},wuiMarker=e=>({dataSet:{wui:e}}),paletteFor=e=>"dark"===e?darkTheme:lightTheme,styles=StyleSheet.create({overlayTop:{position:"absolute",top:0,left:0,right:0},overlayBottom:{position:"absolute",bottom:0,left:0,right:0,alignItems:"center",justifyContent:"flex-end"},fill:{flex:1},homeBar:{width:134,height:5},navPill:{width:108,height:4},keyboardPreview:{position:"absolute",bottom:0,left:0,right:0}});export const StatusBar=({os:e,colorMode:o="light"})=>{const t=paletteFor(o);return createElement(View,{...wuiMarker(MARKER.statusBar),accessibilityElementsHidden:!0,importantForAccessibility:"no-hide-descendants",pointerEvents:"none",style:[styles.overlayTop,{height:STATUS_BAR_HEIGHT[e],backgroundColor:t.colors.background.primary}]})};export const HomeIndicator=({os:e,colorMode:o="light"})=>{const t=paletteFor(o);return createElement(View,{...wuiMarker(MARKER.homeIndicator),accessibilityElementsHidden:!0,importantForAccessibility:"no-hide-descendants",pointerEvents:"none",style:[styles.overlayBottom,{height:HOME_AREA_HEIGHT[e]}]},"Ios"===e?createElement(View,{style:[styles.homeBar,{backgroundColor:t.colors.text.primary,borderRadius:t.radius.pill,marginBottom:t.spacing.sm}]}):null)};export const NavigationBar=({os:e,colorMode:o="light"})=>{if("Android"!==e)return null;const t=paletteFor(o);return createElement(View,{...wuiMarker(MARKER.navigationBar),accessibilityElementsHidden:!0,importantForAccessibility:"no-hide-descendants",pointerEvents:"none",style:[styles.overlayBottom,{height:24,justifyContent:"center"}]},createElement(View,{style:[styles.navPill,{backgroundColor:t.colors.text.primary,borderRadius:t.radius.pill}]}))};export const SafeArea=({os:e,children:o})=>createElement(View,{...wuiMarker(MARKER.safeArea),style:[styles.fill,{paddingTop:STATUS_BAR_HEIGHT[e],paddingBottom:HOME_AREA_HEIGHT[e]}]},o);const KEYBOARD_PREVIEW_HEIGHT={ios:336,android:300};export const KeyboardFrame=({colorMode:e="light",previewOs:o,children:t})=>{const r=paletteFor(e),a=useKeyboardState(e=>Math.max(0,Math.round(e.height)));return createElement(View,{...wuiMarker(MARKER.keyboardFrame),style:[styles.fill,{paddingBottom:a,backgroundColor:r.colors.background.primary}]},t,o?createElement(View,{pointerEvents:"none",style:[styles.keyboardPreview,{height:KEYBOARD_PREVIEW_HEIGHT[o],backgroundColor:r.colors.background.primary}]}):null)};const SOURCE="@webority/mobile-ui",osProp={name:"os",type:"enum",enum:["Ios","Android"],required:!0},colorModeProp={name:"colorMode",type:"enum",enum:["light","dark"],required:!1};export const phoneChromeEntries=[{name:"StatusBar",marker:MARKER.statusBar,acceptsChildren:!1,props:[osProp,colorModeProp],itemsTakeAction:[],takesAction:[],source:SOURCE},{name:"HomeIndicator",marker:MARKER.homeIndicator,acceptsChildren:!1,props:[osProp,colorModeProp],itemsTakeAction:[],takesAction:[],source:SOURCE},{name:"NavigationBar",marker:MARKER.navigationBar,acceptsChildren:!1,props:[osProp,colorModeProp],itemsTakeAction:[],takesAction:[],source:SOURCE},{name:"SafeArea",marker:MARKER.safeArea,acceptsChildren:!0,props:[osProp],itemsTakeAction:[],takesAction:[],source:SOURCE},{name:"KeyboardFrame",marker:MARKER.keyboardFrame,acceptsChildren:!0,props:[colorModeProp],itemsTakeAction:[],takesAction:[],source:SOURCE}];
@@ -1 +1 @@
1
- "use strict";import{createContext,useCallback,useContext,useEffect,useMemo,useRef,useState}from"react";import{Animated,Easing,LayoutAnimation,Pressable,StyleSheet,Text,View}from"react-native";import{usePresenceMotion}from"../../hooks/usePresenceMotion.js";import{createAnimatedValue,useTheme}from"../../theme/index.js";import{smoothCorners}from"../../utils/corners.js";import{resolveHaptic,triggerHaptic}from"../../utils/hapticUtils.js";import{defaultIcons}from"../AppIcon/defaultIcons.js";import{Skeleton}from"../Skeleton/index.js";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";const AccordionGroupContext=createContext(null),useAccordionGroup=()=>useContext(AccordionGroupContext),AccordionGroup=({children:e,allowMultiple:t=!1,defaultExpandedKeys:o,expandedKeys:n,onChange:i,style:r,testID:s})=>{const a=void 0!==n,[l,c]=useState(o??[]),d=a?n:l,u=useCallback(e=>{a||c(e),i?.(e)},[a,i]),p=useCallback(e=>{let o;o=d.includes(e)?d.filter(t=>t!==e):t?[...d,e]:[e],u(o)},[d,t,u]),m=useCallback(e=>d.includes(e),[d]),g=useMemo(()=>({isExpanded:m,toggle:p,allowMultiple:t}),[m,p,t]);return _jsx(AccordionGroupContext.Provider,{value:g,children:_jsx(View,{style:r,testID:s,children:e})})};AccordionGroup.displayName="AccordionGroup";const Chevron=({rotate:e,color:t})=>{const o=useTheme();return _jsx(Animated.View,{style:[chevronStyles.icon,{transform:[{rotate:e}]}],accessible:!1,children:(o.icons?.chevronDown??defaultIcons.chevronDown)({size:16,color:t})})},chevronStyles=StyleSheet.create({icon:{width:16,height:16,alignItems:"center",justifyContent:"center"}}),Accordion=e=>{const{title:t,children:o,id:n,expanded:i,defaultExpanded:r=!1,onChange:s,icon:a,disabled:l=!1,variant:c="plain",accessibilityLabel:d,style:u,headerStyle:p,contentStyle:m,contentWrapperStyle:g,containerStyle:h,testID:y,loading:x=!1,haptic:f}=e,b=useTheme(),A=usePresenceMotion(),S=A.duration("normal"),j=useMemo(()=>buildStyles(b),[b]),v=useAccordionGroup(),V=void 0!==i,[C,w]=useState(r),k=v&&n?v.isExpanded(n):null,_=null!==k?k:V?!!i:C,[R,I]=useState(null),D=useRef(createAnimatedValue(_?1:0)).current,E=useRef(createAnimatedValue(_?1:0)).current,G=useRef(createAnimatedValue(_?1:0)).current,L=useRef(_);useEffect(()=>{if(L.current===_)return;L.current=_;const e=_?1:0,t=Easing.bezier(...b.motion.easing.standard),o=Animated.timing(D,{toValue:e,duration:b.motion.duration.normal,easing:t,useNativeDriver:!1}),n=Animated.timing(E,{toValue:e,duration:S,easing:t,useNativeDriver:!1}),i=Animated.timing(G,{toValue:e,duration:b.motion.duration.normal,easing:t,useNativeDriver:!1}),r=A.reduced&&!_?Animated.sequence([n,Animated.parallel([o,i])]):Animated.parallel([o,n,i]);return r.start(),()=>r.stop()},[_,D,E,G,S,A.reduced,b.motion]);const M=useCallback(e=>{const t=e.nativeEvent.layout.height;t>0&&t!==R&&I(t)},[R]),P=useCallback(()=>{if(l)return;const e=resolveHaptic(f,"selection");if(e&&triggerHaptic(e),v&&n)return v.toggle(n),void s?.(!_);V||w(!_),s?.(!_)},[l,v,n,_,V,s,f]),z=G.interpolate({inputRange:[0,1],outputRange:["0deg","180deg"]}),H=null===R?void 0:D.interpolate({inputRange:[0,1],outputRange:[0,R]}),N="card"===c?[j.card,b.shadows.sm,{backgroundColor:b.colors.background.elevated,borderRadius:b.radius.md,...smoothCorners}]:null;return x?_jsx(AccordionSkeleton,{...e}):_jsxs(View,{style:[N,u,h],testID:y,children:[_jsxs(Pressable,{onPress:P,disabled:l,accessibilityRole:"button",accessibilityLabel:d??t,accessibilityState:{expanded:_,disabled:l},"aria-expanded":_,"aria-disabled":l,style:({pressed:e})=>[j.header,p,{opacity:l?.55:e?.85:1}],children:[a?_jsx(View,{style:j.iconLeft,children:a}):null,_jsx(Text,{style:[j.title,{color:l?b.colors.text.disabled:b.colors.text.primary,fontSize:b.typography.fontSize.base,fontWeight:b.typography.fontWeight.semibold}],numberOfLines:2,children:t}),_jsx(Chevron,{rotate:z,color:l?b.colors.text.disabled:b.colors.text.secondary})]}),null===R?_jsx(View,{style:j.measurer,pointerEvents:"none",onLayout:M,children:_jsx(View,{style:[j.content,m],children:o})}):null,_jsx(Animated.View,{style:[j.contentWrapper,null===R?{height:0,opacity:0}:{height:H,opacity:E},g],children:_jsx(View,{onLayout:M,style:[j.content,m],children:o})})]})};Accordion.displayName="Accordion";const AccordionSkeleton=({variant:e="plain",style:t})=>{const o=useTheme();return _jsx(View,{style:["card"===e?{paddingHorizontal:o.spacing.md,paddingVertical:o.spacing.sm,backgroundColor:o.colors.background.elevated,borderRadius:o.radius.md,...smoothCorners}:{paddingVertical:o.spacing.sm},t],accessibilityRole:"progressbar",accessibilityState:{busy:!0},"aria-busy":!0,children:_jsxs(View,{style:{flexDirection:"row",alignItems:"center"},children:[_jsx(Skeleton,{shape:"text",width:"60%",height:18,style:{flex:1}}),_jsx(Skeleton,{width:16,height:16,radius:"sm",style:{marginLeft:o.spacing.sm}})]})})};AccordionSkeleton.displayName="AccordionSkeleton",Accordion.Skeleton=AccordionSkeleton;const buildStyles=e=>StyleSheet.create({card:{paddingHorizontal:e.spacing.md,paddingVertical:e.components.accordion?.cardPaddingVertical??4,marginVertical:e.spacing.xs},header:{flexDirection:"row",alignItems:"center",paddingVertical:e.spacing.sm},iconLeft:{marginRight:e.spacing.sm},title:{flex:1},contentWrapper:{overflow:"hidden"},content:{paddingBottom:e.spacing.sm},measurer:{position:"absolute",opacity:0,left:0,right:0,top:0,zIndex:-1}});export{Accordion,AccordionGroup};export default Accordion;
1
+ "use strict";import{createContext,useCallback,useContext,useEffect,useMemo,useRef,useState}from"react";import{Animated,Easing,LayoutAnimation,Pressable,StyleSheet,Text,View}from"react-native";import{usePresenceMotion}from"../../hooks/usePresenceMotion.js";import{createAnimatedValue,spaceOf,useTheme}from"../../theme/index.js";import{smoothCorners}from"../../utils/corners.js";import{resolveHaptic,triggerHaptic}from"../../utils/hapticUtils.js";import{defaultIcons}from"../AppIcon/defaultIcons.js";import{Skeleton}from"../Skeleton/index.js";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";const AccordionGroupContext=createContext(null),useAccordionGroup=()=>useContext(AccordionGroupContext),AccordionGroup=({children:e,allowMultiple:t=!1,defaultExpandedKeys:o,expandedKeys:n,onChange:i,style:r,testID:s})=>{const a=void 0!==n,[c,l]=useState(o??[]),d=a?n:c,u=useCallback(e=>{a||l(e),i?.(e)},[a,i]),p=useCallback(e=>{let o;o=d.includes(e)?d.filter(t=>t!==e):t?[...d,e]:[e],u(o)},[d,t,u]),m=useCallback(e=>d.includes(e),[d]),g=useMemo(()=>({isExpanded:m,toggle:p,allowMultiple:t}),[m,p,t]);return _jsx(AccordionGroupContext.Provider,{value:g,children:_jsx(View,{style:r,testID:s,children:e})})};AccordionGroup.displayName="AccordionGroup";const Chevron=({rotate:e,color:t})=>{const o=useTheme();return _jsx(Animated.View,{style:[chevronStyles.icon,{transform:[{rotate:e}]}],accessible:!1,children:(o.icons?.chevronDown??defaultIcons.chevronDown)({size:16,color:t})})},chevronStyles=StyleSheet.create({icon:{width:16,height:16,alignItems:"center",justifyContent:"center"}}),Accordion=e=>{const{title:t,children:o,id:n,expanded:i,defaultExpanded:r=!1,onChange:s,icon:a,disabled:c=!1,variant:l="plain",accessibilityLabel:d,style:u,headerStyle:p,contentStyle:m,contentWrapperStyle:g,containerStyle:h,testID:y,loading:x=!1,haptic:f}=e,b=useTheme(),A=usePresenceMotion(),S=A.duration("normal"),j=useMemo(()=>buildStyles(b),[b]),v=useAccordionGroup(),C=void 0!==i,[V,w]=useState(r),k=v&&n?v.isExpanded(n):null,_=null!==k?k:C?!!i:V,[R,I]=useState(null),D=useRef(createAnimatedValue(_?1:0)).current,E=useRef(createAnimatedValue(_?1:0)).current,G=useRef(createAnimatedValue(_?1:0)).current,L=useRef(_);useEffect(()=>{if(L.current===_)return;L.current=_;const e=_?1:0,t=Easing.bezier(...b.motion.easing.standard),o=Animated.timing(D,{toValue:e,duration:b.motion.duration.normal,easing:t,useNativeDriver:!1}),n=Animated.timing(E,{toValue:e,duration:S,easing:t,useNativeDriver:!1}),i=Animated.timing(G,{toValue:e,duration:b.motion.duration.normal,easing:t,useNativeDriver:!1}),r=A.reduced&&!_?Animated.sequence([n,Animated.parallel([o,i])]):Animated.parallel([o,n,i]);return r.start(),()=>r.stop()},[_,D,E,G,S,A.reduced,b.motion]);const P=useCallback(e=>{const t=e.nativeEvent.layout.height;t>0&&t!==R&&I(t)},[R]),M=useCallback(()=>{if(c)return;const e=resolveHaptic(f,"selection");if(e&&triggerHaptic(e),v&&n)return v.toggle(n),void s?.(!_);C||w(!_),s?.(!_)},[c,v,n,_,C,s,f]),z=G.interpolate({inputRange:[0,1],outputRange:["0deg","180deg"]}),H=null===R?void 0:D.interpolate({inputRange:[0,1],outputRange:[0,R]}),N="card"===l?[j.card,b.shadows.sm,{backgroundColor:b.colors.background.elevated,borderRadius:b.radius.md,...smoothCorners}]:null;return x?_jsx(AccordionSkeleton,{...e}):_jsxs(View,{style:[N,u,h],testID:y,children:[_jsxs(Pressable,{onPress:M,disabled:c,accessibilityRole:"button",accessibilityLabel:d??t,accessibilityState:{expanded:_,disabled:c},"aria-expanded":_,"aria-disabled":c,style:({pressed:e})=>[j.header,p,{opacity:c?.55:e?.85:1}],children:[a?_jsx(View,{style:j.iconLeft,children:a}):null,_jsx(Text,{style:[j.title,{color:c?b.colors.text.disabled:b.colors.text.primary,fontSize:b.typography.fontSize.base,fontWeight:b.typography.fontWeight.semibold}],numberOfLines:2,children:t}),_jsx(Chevron,{rotate:z,color:c?b.colors.text.disabled:b.colors.text.secondary})]}),null===R?_jsx(View,{style:j.measurer,pointerEvents:"none",onLayout:P,children:_jsx(View,{style:[j.content,m],children:o})}):null,_jsx(Animated.View,{style:[j.contentWrapper,null===R?{height:0,opacity:0}:{height:H,opacity:E},g],children:_jsx(View,{onLayout:P,style:[j.content,m],children:o})})]})};Accordion.displayName="Accordion";const AccordionSkeleton=({variant:e="plain",style:t})=>{const o=useTheme();return _jsx(View,{style:["card"===e?{paddingHorizontal:o.spacing.md,paddingVertical:o.spacing.sm,backgroundColor:o.colors.background.elevated,borderRadius:o.radius.md,...smoothCorners}:{paddingVertical:o.spacing.sm},t],accessibilityRole:"progressbar",accessibilityState:{busy:!0},"aria-busy":!0,children:_jsxs(View,{style:{flexDirection:"row",alignItems:"center"},children:[_jsx(Skeleton,{shape:"text",width:"60%",height:18,style:{flex:1}}),_jsx(Skeleton,{width:16,height:16,radius:"sm",style:{marginLeft:o.spacing.sm}})]})})};AccordionSkeleton.displayName="AccordionSkeleton",Accordion.Skeleton=AccordionSkeleton;const buildStyles=e=>StyleSheet.create({card:{paddingHorizontal:e.spacing.md,paddingVertical:spaceOf(e,e.components.accordion?.cardPaddingY??"xs","components.accordion.cardPaddingY"),marginVertical:e.spacing.xs},header:{flexDirection:"row",alignItems:"center",paddingVertical:e.spacing.sm},iconLeft:{marginRight:e.spacing.sm},title:{flex:1},contentWrapper:{overflow:"hidden"},content:{paddingBottom:e.spacing.sm},measurer:{position:"absolute",opacity:0,left:0,right:0,top:0,zIndex:-1}});export{Accordion,AccordionGroup};export default Accordion;
@@ -1 +1 @@
1
- "use strict";import{forwardRef,useMemo}from"react";import{Animated,Pressable,StyleSheet,Text,View}from"react-native";import{useSafeAreaInsets}from"react-native-safe-area-context";import{usePressAnimation}from"../../hooks/usePressAnimation.js";import{fontFor,useTheme}from"../../theme/index.js";import{smoothCorners}from"../../utils/corners.js";import{resolveHaptic,triggerHaptic}from"../../utils/hapticUtils.js";import{AppIcon}from"../AppIcon/AppIcon.js";import{Text as ThemedText}from"../Text/Text.js";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";const variantSize=(t,e)=>{switch(e){case"compact":return{height:44,titleSize:t.typography.fontSize.lg,titleWeight:"semibold",alignBottom:!1};case"large":return{height:96,titleSize:t.typography.fontSize["2xl"],titleWeight:"bold",alignBottom:!0};default:return{height:56,titleSize:t.typography.fontSize.lg,titleWeight:"semibold",alignBottom:!1}}},ActionButton=({action:t,side:e,badgeStyle:i,haptic:o,flush:n})=>{const r=useTheme(),{style:l,pressIn:a,pressOut:s}=usePressAnimation({enabled:!0}),c=useMemo(()=>buildActionStyles(r),[r]),p=t.badge,d=void 0!==p&&0!==p,m=void 0!==t.text;return _jsx(Animated.View,{style:l,children:_jsxs(Pressable,{onPress:()=>{const e=resolveHaptic(o,"selection");e&&triggerHaptic(e),t.onPress()},onPressIn:a,onPressOut:s,accessibilityRole:"button",accessibilityLabel:t.accessibilityLabel??t.text,testID:t.testID,android_ripple:{color:r.colors.surface.pressed,borderless:!m},style:({pressed:t})=>[m?c.textButton:c.actionButton,n?null:"left"===e?c.actionLeft:c.actionRight,t&&!m?c.actionPressed:null,t&&m?c.textPressed:null],children:[m?_jsx(Text,{style:c.actionText,numberOfLines:1,children:t.text}):_jsx(View,{style:c.iconWrap,children:t.icon}),d?_jsx(View,{style:[c.badge,i],pointerEvents:"none",children:_jsx(Text,{style:c.badgeText,numberOfLines:1,children:String(p)})}):null,t.dot?_jsx(View,{testID:t.testID?`${t.testID}-dot`:"appbar-action-dot",style:c.dot,pointerEvents:"none"}):null]})})},COLLAPSE_RANGE=60,LARGE_TITLE_SCALE_END=.71,AppBar=forwardRef((t,e)=>{const{title:i,subtitle:o,titleAlignment:n="left",leftAction:r,rightActions:l,leading:a,trailing:s,onBack:c,gutter:p,titleVariant:d,titleOffset:m,height:g,divider:u,variant:h="default",transparent:f=!1,scrollY:x,style:y,containerStyle:b,titleStyle:S,subtitleStyle:B,badgeStyle:A,haptic:j,testID:w}=t,_=useTheme(),T=useSafeAreaInsets(),z=useMemo(()=>variantSize(_,h),[_,h]),C=useMemo(()=>buildStyles(_),[_]),I="large"===h&&void 0!==x,R=_.components.appBar?.iconSize??24,v=_.components.appBar?.actionButtonSize??44,W=r??(c?{icon:_jsx(AppIcon,{name:"arrow-left",size:R,color:_.colors.text.primary}),onPress:c,accessibilityLabel:"Back"}:void 0),L=s?void 0:l?.[l.length-1],opticalInset=t=>void 0===t?0:void 0!==t.text?_.spacing.sm:Math.max((v-R)/2,0),V=void 0===p?null:{paddingLeft:Math.max(p-opticalInset(W),0),paddingRight:Math.max(p-opticalInset(L),0)},O=void 0!==m,P=Boolean(W)||Boolean(a),H=u??!f,D=_.components.appBar?.dividerWidth??StyleSheet.hairlineWidth,E=_.components.appBar?.collapseTranslateDistance??-20,M=useMemo(()=>{if(!x)return null;const t={inputRange:[0,60],extrapolate:"clamp"};return{titleScale:x.interpolate({...t,outputRange:[1,.71]}),titleTranslateY:x.interpolate({...t,outputRange:[0,E]}),titleTranslateX:x.interpolate({...t,outputRange:"center"===n?[0,0]:[0,8]}),subtitleOpacity:x.interpolate({inputRange:[0,30],outputRange:[1,0],extrapolate:"clamp"}),barHeight:x.interpolate({...t,outputRange:[96,56]}),borderOpacity:x.interpolate({...t,outputRange:[0,1]})}},[x,n,E]),k=I&&M?{transform:[{translateX:M.titleTranslateX},{translateY:M.titleTranslateY},{scale:M.titleScale}]}:null,N=i?d?_jsx(Animated.View,{style:k,children:_jsx(ThemedText,{variant:d,align:"center"===n?"center":"left",accessibilityRole:"header",numberOfLines:1,style:[C.titleVariant,S],children:i})}):_jsx(Animated.Text,{accessibilityRole:"header",style:[C.title,{fontSize:z.titleSize,fontWeight:_.typography.fontWeight[z.titleWeight],textAlign:"center"===n?"center":"left"},k,S],numberOfLines:1,children:i}):null,F=o?_jsx(Animated.Text,{style:[C.subtitle,{textAlign:"center"===n?"center":"left"},I&&M?{opacity:M.subtitleOpacity}:null,B],numberOfLines:1,children:o}):null,Y=_jsxs(View,{style:[C.titleColumn,"center"===n?C.titleColumnCenter:null,z.alignBottom?C.titleColumnBottom:null],children:[N,F]}),X=I?Animated.View:View,G=I&&M?{height:Animated.add(M.barHeight,new Animated.Value(T.top))}:{height:(g??z.height)+T.top};return _jsxs(X,{ref:e,testID:w,style:[C.root,{paddingTop:T.top,backgroundColor:f?"transparent":_.colors.background.elevated},G,!I&&H?{borderBottomWidth:D,borderBottomColor:_.colors.border.primary}:null,y,b],children:[I&&M&&H?_jsx(Animated.View,{pointerEvents:"none",style:[C.animatedBorder,{backgroundColor:_.colors.border.primary,opacity:M.borderOpacity}]}):null,_jsxs(View,{style:[C.row,z.alignBottom?C.rowAlignBottom:null,V,{flex:1}],children:[_jsxs(View,{style:[C.sideSlot,O?C.sideSlotCompact:null],children:[W?_jsx(ActionButton,{action:W,side:"left",haptic:j,flush:O}):null,null!=a&&!1!==a?_jsx(View,{style:C.slotNode,children:a}):null]}),_jsx(View,{pointerEvents:"none",style:[C.center,"center"===n?C.centerAligned:C.centerLeft,O?{paddingLeft:P?m:0,paddingRight:0}:null],children:Y}),_jsxs(View,{style:[C.sideSlot,C.sideSlotRight,O?C.sideSlotCompact:null],children:[l?.map((t,e)=>_jsx(ActionButton,{action:t,side:"right",badgeStyle:A,haptic:j,flush:O},`appbar-right-${e}`)),null!=s&&!1!==s?_jsx(View,{style:C.slotNode,children:s}):null]})]})]})});AppBar.displayName="AppBar";const buildStyles=t=>StyleSheet.create({root:{width:"100%"},row:{flexDirection:"row",alignItems:"center",paddingHorizontal:t.spacing.xs},rowAlignBottom:{alignItems:"flex-end",paddingBottom:t.spacing.sm},sideSlot:{flexDirection:"row",alignItems:"center",minWidth:t.components.appBar?.sideSlotMinWidth??48},sideSlotRight:{justifyContent:"flex-end"},sideSlotCompact:{minWidth:0},slotNode:{flexDirection:"row",alignItems:"center"},center:{flex:1,paddingHorizontal:t.spacing.xs},centerAligned:{alignItems:"center"},centerLeft:{alignItems:"flex-start"},titleColumn:{flexDirection:"column"},titleColumnCenter:{alignItems:"center"},titleColumnBottom:{justifyContent:"flex-end"},title:{color:t.colors.text.primary},titleVariant:{includeFontPadding:!1,textAlignVertical:"center"},subtitle:{marginTop:t.components.appBar?.subtitleMarginTop??2,color:t.colors.text.tertiary,fontSize:t.typography.fontSize.sm,fontWeight:t.typography.fontWeight.normal},animatedBorder:{position:"absolute",left:0,right:0,bottom:0,height:StyleSheet.hairlineWidth}}),buildActionStyles=t=>StyleSheet.create({actionButton:{width:t.components.appBar?.actionButtonSize??44,height:t.components.appBar?.actionButtonSize??44,borderRadius:t.radius.full,...smoothCorners,alignItems:"center",justifyContent:"center"},actionLeft:{marginRight:t.spacing.xs},actionRight:{marginLeft:t.spacing.xs},actionPressed:{backgroundColor:t.colors.surface.pressed},textButton:{minWidth:44,minHeight:44,paddingHorizontal:t.spacing.sm,alignItems:"center",justifyContent:"center"},textPressed:{opacity:.6},actionText:{color:t.colors.text.link,fontSize:t.typography.fontSize.base,...fontFor(t,"semibold")},dot:{position:"absolute",top:t.components.appBar?.dotOffset??10,right:t.components.appBar?.dotOffset??10,width:t.components.appBar?.dotSize??8,height:t.components.appBar?.dotSize??8,borderRadius:t.radius.full,backgroundColor:t.colors.error},iconWrap:{alignItems:"center",justifyContent:"center"},badge:{position:"absolute",top:t.components.appBar?.badgeOffset??4,right:t.components.appBar?.badgeOffset??4,minWidth:t.components.appBar?.badgeMinWidth??16,height:t.components.appBar?.badgeHeight??16,paddingHorizontal:t.components.appBar?.badgePaddingHorizontal??4,borderRadius:t.radius.full,...smoothCorners,backgroundColor:t.colors.error,alignItems:"center",justifyContent:"center"},badgeText:{color:t.colors.onError,fontSize:t.components.appBar?.badgeFontSize??10,fontWeight:t.typography.fontWeight.semibold,lineHeight:t.components.appBar?.badgeLineHeight??12}});export{AppBar};export default AppBar;
1
+ "use strict";import{forwardRef,useMemo}from"react";import{Animated,Pressable,StyleSheet,Text,View}from"react-native";import{useSafeAreaInsets}from"react-native-safe-area-context";import{usePressAnimation}from"../../hooks/usePressAnimation.js";import{fontFor,fontSizeOf,spaceOf,useTheme}from"../../theme/index.js";import{smoothCorners}from"../../utils/corners.js";import{resolveHaptic,triggerHaptic}from"../../utils/hapticUtils.js";import{AppIcon}from"../AppIcon/AppIcon.js";import{Text as ThemedText}from"../Text/Text.js";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";const variantSize=(t,e)=>{switch(e){case"compact":return{height:44,titleSize:t.typography.fontSize.lg,titleWeight:"semibold",alignBottom:!1};case"large":return{height:96,titleSize:t.typography.fontSize["2xl"],titleWeight:"bold",alignBottom:!0};default:return{height:56,titleSize:t.typography.fontSize.lg,titleWeight:"semibold",alignBottom:!1}}},ActionButton=({action:t,side:e,badgeStyle:i,haptic:n,flush:o})=>{const r=useTheme(),{style:a,pressIn:s,pressOut:l}=usePressAnimation({enabled:!0}),p=useMemo(()=>buildActionStyles(r),[r]),c=t.badge,d=void 0!==c&&0!==c,g=void 0!==t.text;return _jsx(Animated.View,{style:a,children:_jsxs(Pressable,{onPress:()=>{const e=resolveHaptic(n,"selection");e&&triggerHaptic(e),t.onPress()},onPressIn:s,onPressOut:l,accessibilityRole:"button",accessibilityLabel:t.accessibilityLabel??t.text,testID:t.testID,android_ripple:{color:r.colors.surface.pressed,borderless:!g},style:({pressed:t})=>[g?p.textButton:p.actionButton,o?null:"left"===e?p.actionLeft:p.actionRight,t&&!g?p.actionPressed:null,t&&g?p.textPressed:null],children:[g?_jsx(Text,{style:p.actionText,numberOfLines:1,children:t.text}):_jsx(View,{style:p.iconWrap,children:t.icon}),d?_jsx(View,{style:[p.badge,i],pointerEvents:"none",children:_jsx(Text,{style:p.badgeText,numberOfLines:1,children:String(c)})}):null,t.dot?_jsx(View,{testID:t.testID?`${t.testID}-dot`:"appbar-action-dot",style:p.dot,pointerEvents:"none"}):null]})})},COLLAPSE_RANGE=60,LARGE_TITLE_SCALE_END=.71,AppBar=forwardRef((t,e)=>{const{title:i,subtitle:n,titleAlignment:o="left",leftAction:r,rightActions:a,leading:s,trailing:l,onBack:p,gutter:c,titleVariant:d,titleOffset:g,height:m,divider:u,variant:h="default",transparent:f=!1,scrollY:x,style:y,containerStyle:b,titleStyle:S,subtitleStyle:B,badgeStyle:A,haptic:j,testID:T}=t,w=useTheme(),_=useSafeAreaInsets(),z=useMemo(()=>variantSize(w,h),[w,h]),C=useMemo(()=>buildStyles(w),[w]),I="large"===h&&void 0!==x,R=w.components.appBar?.iconSize??24,v=w.components.appBar?.actionButtonSize??44,O=r??(p?{icon:_jsx(AppIcon,{name:"arrow-left",size:R,color:w.colors.text.primary}),onPress:p,accessibilityLabel:"Back"}:void 0),W=l?void 0:a?.[a.length-1],opticalInset=t=>void 0===t?0:void 0!==t.text?w.spacing.sm:Math.max((v-R)/2,0),L=void 0===c?null:{paddingLeft:Math.max(c-opticalInset(O),0),paddingRight:Math.max(c-opticalInset(W),0)},V=void 0!==g,P=Boolean(O)||Boolean(s),H=u??!f,D=w.components.appBar?.dividerWidth??StyleSheet.hairlineWidth,M=w.components.appBar?.collapseTranslateDistance??-20,E=useMemo(()=>{if(!x)return null;const t={inputRange:[0,60],extrapolate:"clamp"};return{titleScale:x.interpolate({...t,outputRange:[1,.71]}),titleTranslateY:x.interpolate({...t,outputRange:[0,M]}),titleTranslateX:x.interpolate({...t,outputRange:"center"===o?[0,0]:[0,8]}),subtitleOpacity:x.interpolate({inputRange:[0,30],outputRange:[1,0],extrapolate:"clamp"}),barHeight:x.interpolate({...t,outputRange:[96,56]}),borderOpacity:x.interpolate({...t,outputRange:[0,1]})}},[x,o,M]),k=I&&E?{transform:[{translateX:E.titleTranslateX},{translateY:E.titleTranslateY},{scale:E.titleScale}]}:null,N=i?d?_jsx(Animated.View,{style:k,children:_jsx(ThemedText,{variant:d,align:"center"===o?"center":"left",accessibilityRole:"header",numberOfLines:1,style:[C.titleVariant,S],children:i})}):_jsx(Animated.Text,{accessibilityRole:"header",style:[C.title,{fontSize:z.titleSize,fontWeight:w.typography.fontWeight[z.titleWeight],textAlign:"center"===o?"center":"left"},k,S],numberOfLines:1,children:i}):null,X=n?_jsx(Animated.Text,{style:[C.subtitle,{textAlign:"center"===o?"center":"left"},I&&E?{opacity:E.subtitleOpacity}:null,B],numberOfLines:1,children:n}):null,Y=_jsxs(View,{style:[C.titleColumn,"center"===o?C.titleColumnCenter:null,z.alignBottom?C.titleColumnBottom:null],children:[N,X]}),F=I?Animated.View:View,G=I&&E?{height:Animated.add(E.barHeight,new Animated.Value(_.top))}:{height:(m??z.height)+_.top};return _jsxs(F,{ref:e,testID:T,style:[C.root,{paddingTop:_.top,backgroundColor:f?"transparent":w.colors.background.elevated},G,!I&&H?{borderBottomWidth:D,borderBottomColor:w.colors.border.primary}:null,y,b],children:[I&&E&&H?_jsx(Animated.View,{pointerEvents:"none",style:[C.animatedBorder,{backgroundColor:w.colors.border.primary,opacity:E.borderOpacity}]}):null,_jsxs(View,{style:[C.row,z.alignBottom?C.rowAlignBottom:null,L,{flex:1}],children:[_jsxs(View,{style:[C.sideSlot,V?C.sideSlotCompact:null],children:[O?_jsx(ActionButton,{action:O,side:"left",haptic:j,flush:V}):null,null!=s&&!1!==s?_jsx(View,{style:C.slotNode,children:s}):null]}),_jsx(View,{pointerEvents:"none",style:[C.center,"center"===o?C.centerAligned:C.centerLeft,V?{paddingLeft:P?g:w.spacing.none,paddingRight:w.spacing.none}:null],children:Y}),_jsxs(View,{style:[C.sideSlot,C.sideSlotRight,V?C.sideSlotCompact:null],children:[a?.map((t,e)=>_jsx(ActionButton,{action:t,side:"right",badgeStyle:A,haptic:j,flush:V},`appbar-right-${e}`)),null!=l&&!1!==l?_jsx(View,{style:C.slotNode,children:l}):null]})]})]})});AppBar.displayName="AppBar";const buildStyles=t=>StyleSheet.create({root:{width:"100%"},row:{flexDirection:"row",alignItems:"center",paddingHorizontal:t.spacing.xs},rowAlignBottom:{alignItems:"flex-end",paddingBottom:t.spacing.sm},sideSlot:{flexDirection:"row",alignItems:"center",minWidth:t.components.appBar?.sideSlotMinWidth??48},sideSlotRight:{justifyContent:"flex-end"},sideSlotCompact:{minWidth:0},slotNode:{flexDirection:"row",alignItems:"center"},center:{flex:1,paddingHorizontal:t.spacing.xs},centerAligned:{alignItems:"center"},centerLeft:{alignItems:"flex-start"},titleColumn:{flexDirection:"column"},titleColumnCenter:{alignItems:"center"},titleColumnBottom:{justifyContent:"flex-end"},title:{color:t.colors.text.primary},titleVariant:{includeFontPadding:!1,textAlignVertical:"center"},subtitle:{marginTop:spaceOf(t,t.components.appBar?.subtitleMarginTop??"xxs","components.appBar.subtitleMarginTop"),color:t.colors.text.tertiary,fontSize:t.typography.fontSize.sm,fontWeight:t.typography.fontWeight.normal},animatedBorder:{position:"absolute",left:0,right:0,bottom:0,height:StyleSheet.hairlineWidth}}),buildActionStyles=t=>StyleSheet.create({actionButton:{width:t.components.appBar?.actionButtonSize??44,height:t.components.appBar?.actionButtonSize??44,borderRadius:t.radius.pill,...smoothCorners,alignItems:"center",justifyContent:"center"},actionLeft:{marginRight:t.spacing.xs},actionRight:{marginLeft:t.spacing.xs},actionPressed:{backgroundColor:t.colors.surface.pressed},textButton:{minWidth:44,minHeight:44,paddingHorizontal:t.spacing.sm,alignItems:"center",justifyContent:"center"},textPressed:{opacity:.6},actionText:{color:t.colors.text.link,fontSize:t.typography.fontSize.base,...fontFor(t,"semibold")},dot:{position:"absolute",top:t.components.appBar?.dotOffset??10,right:t.components.appBar?.dotOffset??10,width:t.components.appBar?.dotSize??8,height:t.components.appBar?.dotSize??8,borderRadius:t.radius.pill,backgroundColor:t.colors.error},iconWrap:{alignItems:"center",justifyContent:"center"},badge:{position:"absolute",top:t.components.appBar?.badgeOffset??4,right:t.components.appBar?.badgeOffset??4,minWidth:t.components.appBar?.badgeMinWidth??16,height:t.components.appBar?.badgeHeight??16,paddingHorizontal:spaceOf(t,t.components.appBar?.badgePaddingX??"xs","components.appBar.badgePaddingX"),borderRadius:t.radius.pill,...smoothCorners,backgroundColor:t.colors.error,alignItems:"center",justifyContent:"center"},badgeText:{color:t.colors.onError,fontSize:fontSizeOf(t,t.components.appBar?.badgeText??"xs","components.appBar.badgeText"),fontWeight:t.typography.fontWeight.semibold,lineHeight:t.components.appBar?.badgeLineHeight??13}});export{AppBar};export default AppBar;