react-native-system-ui 1.0.3 → 1.0.5

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 (263) hide show
  1. package/README.md +2 -2
  2. package/dist/cjs/components/action-sheet/ActionSheet.js +1 -1
  3. package/dist/cjs/components/action-sheet/tokens.js +1 -1
  4. package/dist/cjs/components/action-sheet/types.js +1 -0
  5. package/dist/cjs/components/area/types.js +1 -0
  6. package/dist/cjs/components/avatar/types.js +1 -0
  7. package/dist/cjs/components/badge/types.js +1 -0
  8. package/dist/cjs/components/button/types.js +1 -0
  9. package/dist/cjs/components/calendar/tokens.js +1 -1
  10. package/dist/cjs/components/calendar/types.js +1 -0
  11. package/dist/cjs/components/cascader/tokens.js +1 -1
  12. package/dist/cjs/components/cascader/types.js +1 -0
  13. package/dist/cjs/components/cell/tokens.js +1 -1
  14. package/dist/cjs/components/cell/types.js +1 -0
  15. package/dist/cjs/components/checkbox/Checkbox.js +1 -1
  16. package/dist/cjs/components/checkbox/tokens.js +1 -1
  17. package/dist/cjs/components/checkbox/types.js +1 -0
  18. package/dist/cjs/components/circle/types.js +1 -0
  19. package/dist/cjs/components/collapse/Collapse.js +1 -1
  20. package/dist/cjs/components/collapse/tokens.js +1 -1
  21. package/dist/cjs/components/collapse/types.js +1 -0
  22. package/dist/cjs/components/config-provider/locale/types.js +1 -0
  23. package/dist/cjs/components/config-provider/types.js +1 -0
  24. package/dist/cjs/components/count-down/types.js +1 -0
  25. package/dist/cjs/components/datetime-picker/types.js +1 -0
  26. package/dist/cjs/components/dialog/Dialog.js +1 -1
  27. package/dist/cjs/components/dialog/tokens.js +1 -1
  28. package/dist/cjs/components/dialog/types.js +1 -0
  29. package/dist/cjs/components/divider/types.js +1 -0
  30. package/dist/cjs/components/empty/types.js +1 -0
  31. package/dist/cjs/components/error-boundary/types.js +1 -0
  32. package/dist/cjs/components/field/types.js +1 -0
  33. package/dist/cjs/components/flex/types.js +1 -0
  34. package/dist/cjs/components/form/Form.js +1 -1
  35. package/dist/cjs/components/form/FormItem.js +1 -1
  36. package/dist/cjs/components/form/FormList.js +1 -1
  37. package/dist/cjs/components/form/types.js +1 -0
  38. package/dist/cjs/components/grid/tokens.js +1 -1
  39. package/dist/cjs/components/grid/types.js +1 -0
  40. package/dist/cjs/components/image/tokens.js +1 -1
  41. package/dist/cjs/components/image/types.js +1 -0
  42. package/dist/cjs/components/image-preview/ImagePreview.js +1 -1
  43. package/dist/cjs/components/image-preview/types.js +1 -0
  44. package/dist/cjs/components/input/types.js +1 -0
  45. package/dist/cjs/components/loading/types.js +1 -0
  46. package/dist/cjs/components/nav-bar/NavBar.js +1 -1
  47. package/dist/cjs/components/nav-bar/tokens.js +1 -1
  48. package/dist/cjs/components/nav-bar/types.js +1 -0
  49. package/dist/cjs/components/notice-bar/NoticeBar.js +1 -1
  50. package/dist/cjs/components/notice-bar/types.js +1 -0
  51. package/dist/cjs/components/notify/types.js +1 -0
  52. package/dist/cjs/components/number-keyboard/tokens.js +1 -1
  53. package/dist/cjs/components/number-keyboard/types.js +1 -0
  54. package/dist/cjs/components/overlay/types.js +1 -0
  55. package/dist/cjs/components/password-input/tokens.js +1 -1
  56. package/dist/cjs/components/password-input/types.js +1 -0
  57. package/dist/cjs/components/picker/Picker.js +1 -1
  58. package/dist/cjs/components/picker/tokens.js +1 -1
  59. package/dist/cjs/components/picker/types.js +1 -0
  60. package/dist/cjs/components/popup/Popup.js +1 -1
  61. package/dist/cjs/components/popup/tokens.js +1 -1
  62. package/dist/cjs/components/popup/types.js +1 -0
  63. package/dist/cjs/components/portal/types.js +1 -0
  64. package/dist/cjs/components/progress/types.js +1 -0
  65. package/dist/cjs/components/radio/tokens.js +1 -1
  66. package/dist/cjs/components/radio/types.js +1 -0
  67. package/dist/cjs/components/safe-area-view/types.js +1 -0
  68. package/dist/cjs/components/search/tokens.js +1 -1
  69. package/dist/cjs/components/search/types.js +1 -0
  70. package/dist/cjs/components/selector/tokens.js +1 -1
  71. package/dist/cjs/components/selector/types.js +1 -0
  72. package/dist/cjs/components/share-sheet/ShareSheet.js +1 -1
  73. package/dist/cjs/components/share-sheet/tokens.js +1 -1
  74. package/dist/cjs/components/share-sheet/types.js +1 -0
  75. package/dist/cjs/components/sidebar/tokens.js +1 -1
  76. package/dist/cjs/components/sidebar/types.js +1 -0
  77. package/dist/cjs/components/skeleton/types.js +1 -0
  78. package/dist/cjs/components/slider/Slider.js +1 -1
  79. package/dist/cjs/components/slider/types.js +1 -0
  80. package/dist/cjs/components/space/types.js +1 -0
  81. package/dist/cjs/components/stepper/tokens.js +1 -1
  82. package/dist/cjs/components/stepper/types.js +1 -0
  83. package/dist/cjs/components/swiper/Swiper.js +1 -1
  84. package/dist/cjs/components/swiper/types.js +1 -0
  85. package/dist/cjs/components/switch/types.js +1 -0
  86. package/dist/cjs/components/tabbar/tokens.js +1 -1
  87. package/dist/cjs/components/tabbar/types.js +1 -0
  88. package/dist/cjs/components/tabs/Tabs.js +1 -1
  89. package/dist/cjs/components/tabs/tokens.js +1 -1
  90. package/dist/cjs/components/tabs/types.js +1 -0
  91. package/dist/cjs/components/tag/tokens.js +1 -1
  92. package/dist/cjs/components/tag/types.js +1 -0
  93. package/dist/cjs/components/theme.js +1 -0
  94. package/dist/cjs/components/toast/Toast.js +1 -1
  95. package/dist/cjs/components/toast/types.js +1 -0
  96. package/dist/cjs/components/typography/types.js +1 -0
  97. package/dist/cjs/components/water-mark/types.js +1 -0
  98. package/dist/cjs/design-system/presets.js +1 -1
  99. package/dist/cjs/design-system/tokens.js +1 -1
  100. package/dist/es/components/action-sheet/ActionSheet.js +1 -1
  101. package/dist/es/components/action-sheet/tokens.js +1 -1
  102. package/dist/es/components/action-sheet/types.js +1 -0
  103. package/dist/es/components/area/types.js +1 -0
  104. package/dist/es/components/avatar/types.js +1 -0
  105. package/dist/es/components/badge/types.js +1 -0
  106. package/dist/es/components/button/types.js +1 -0
  107. package/dist/es/components/calendar/tokens.js +1 -1
  108. package/dist/es/components/calendar/types.js +1 -0
  109. package/dist/es/components/cascader/tokens.js +1 -1
  110. package/dist/es/components/cascader/types.js +1 -0
  111. package/dist/es/components/cell/tokens.js +1 -1
  112. package/dist/es/components/cell/types.js +1 -0
  113. package/dist/es/components/checkbox/Checkbox.js +1 -1
  114. package/dist/es/components/checkbox/tokens.js +1 -1
  115. package/dist/es/components/checkbox/types.js +1 -0
  116. package/dist/es/components/circle/types.js +1 -0
  117. package/dist/es/components/collapse/Collapse.js +1 -1
  118. package/dist/es/components/collapse/tokens.js +1 -1
  119. package/dist/es/components/collapse/types.js +1 -0
  120. package/dist/es/components/config-provider/locale/types.js +1 -0
  121. package/dist/es/components/config-provider/types.js +1 -0
  122. package/dist/es/components/count-down/types.js +1 -0
  123. package/dist/es/components/datetime-picker/types.js +1 -0
  124. package/dist/es/components/dialog/Dialog.js +1 -1
  125. package/dist/es/components/dialog/tokens.js +1 -1
  126. package/dist/es/components/dialog/types.js +1 -0
  127. package/dist/es/components/divider/types.js +1 -0
  128. package/dist/es/components/empty/types.js +1 -0
  129. package/dist/es/components/error-boundary/types.js +1 -0
  130. package/dist/es/components/field/types.js +1 -0
  131. package/dist/es/components/flex/types.js +1 -0
  132. package/dist/es/components/form/Form.js +1 -1
  133. package/dist/es/components/form/FormItem.js +1 -1
  134. package/dist/es/components/form/FormList.js +1 -1
  135. package/dist/es/components/form/types.js +1 -0
  136. package/dist/es/components/grid/tokens.js +1 -1
  137. package/dist/es/components/grid/types.js +1 -0
  138. package/dist/es/components/image/tokens.js +1 -1
  139. package/dist/es/components/image/types.js +1 -0
  140. package/dist/es/components/image-preview/ImagePreview.js +1 -1
  141. package/dist/es/components/image-preview/types.js +1 -0
  142. package/dist/es/components/input/types.js +1 -0
  143. package/dist/es/components/loading/types.js +1 -0
  144. package/dist/es/components/nav-bar/NavBar.js +1 -1
  145. package/dist/es/components/nav-bar/tokens.js +1 -1
  146. package/dist/es/components/nav-bar/types.js +1 -0
  147. package/dist/es/components/notice-bar/NoticeBar.js +1 -1
  148. package/dist/es/components/notice-bar/types.js +1 -0
  149. package/dist/es/components/notify/types.js +1 -0
  150. package/dist/es/components/number-keyboard/tokens.js +1 -1
  151. package/dist/es/components/number-keyboard/types.js +1 -0
  152. package/dist/es/components/overlay/types.js +1 -0
  153. package/dist/es/components/password-input/tokens.js +1 -1
  154. package/dist/es/components/password-input/types.js +1 -0
  155. package/dist/es/components/picker/Picker.js +1 -1
  156. package/dist/es/components/picker/tokens.js +1 -1
  157. package/dist/es/components/picker/types.js +1 -0
  158. package/dist/es/components/popup/Popup.js +1 -1
  159. package/dist/es/components/popup/tokens.js +1 -1
  160. package/dist/es/components/popup/types.js +1 -0
  161. package/dist/es/components/portal/types.js +1 -0
  162. package/dist/es/components/progress/types.js +1 -0
  163. package/dist/es/components/radio/tokens.js +1 -1
  164. package/dist/es/components/radio/types.js +1 -0
  165. package/dist/es/components/safe-area-view/types.js +1 -0
  166. package/dist/es/components/search/tokens.js +1 -1
  167. package/dist/es/components/search/types.js +1 -0
  168. package/dist/es/components/selector/tokens.js +1 -1
  169. package/dist/es/components/selector/types.js +1 -0
  170. package/dist/es/components/share-sheet/ShareSheet.js +1 -1
  171. package/dist/es/components/share-sheet/tokens.js +1 -1
  172. package/dist/es/components/share-sheet/types.js +1 -0
  173. package/dist/es/components/sidebar/tokens.js +1 -1
  174. package/dist/es/components/sidebar/types.js +1 -0
  175. package/dist/es/components/skeleton/types.js +1 -0
  176. package/dist/es/components/slider/Slider.js +1 -1
  177. package/dist/es/components/slider/types.js +1 -0
  178. package/dist/es/components/space/types.js +1 -0
  179. package/dist/es/components/stepper/tokens.js +1 -1
  180. package/dist/es/components/stepper/types.js +1 -0
  181. package/dist/es/components/swiper/Swiper.js +1 -1
  182. package/dist/es/components/swiper/types.js +1 -0
  183. package/dist/es/components/switch/types.js +1 -0
  184. package/dist/es/components/tabbar/tokens.js +1 -1
  185. package/dist/es/components/tabbar/types.js +1 -0
  186. package/dist/es/components/tabs/Tabs.js +1 -1
  187. package/dist/es/components/tabs/tokens.js +1 -1
  188. package/dist/es/components/tabs/types.js +1 -0
  189. package/dist/es/components/tag/tokens.js +1 -1
  190. package/dist/es/components/tag/types.js +1 -0
  191. package/dist/es/components/theme.js +1 -0
  192. package/dist/es/components/toast/Toast.js +1 -1
  193. package/dist/es/components/toast/types.js +1 -0
  194. package/dist/es/components/typography/types.js +1 -0
  195. package/dist/es/components/water-mark/types.js +1 -0
  196. package/dist/es/design-system/presets.js +1 -1
  197. package/dist/es/design-system/tokens.js +1 -1
  198. package/dist/types/components/action-sheet/types.d.ts +87 -0
  199. package/dist/types/components/area/types.d.ts +20 -0
  200. package/dist/types/components/avatar/types.d.ts +62 -0
  201. package/dist/types/components/badge/types.d.ts +57 -0
  202. package/dist/types/components/button/types.d.ts +109 -0
  203. package/dist/types/components/calendar/types.d.ts +111 -0
  204. package/dist/types/components/cascader/types.d.ts +142 -0
  205. package/dist/types/components/cell/types.d.ts +112 -0
  206. package/dist/types/components/checkbox/types.d.ts +99 -0
  207. package/dist/types/components/circle/types.d.ts +51 -0
  208. package/dist/types/components/collapse/types.d.ts +45 -0
  209. package/dist/types/components/config-provider/locale/types.d.ts +130 -0
  210. package/dist/types/components/config-provider/types.d.ts +10 -0
  211. package/dist/types/components/count-down/types.d.ts +29 -0
  212. package/dist/types/components/datetime-picker/types.d.ts +38 -0
  213. package/dist/types/components/dialog/types.d.ts +70 -0
  214. package/dist/types/components/divider/types.d.ts +48 -0
  215. package/dist/types/components/empty/types.d.ts +44 -0
  216. package/dist/types/components/error-boundary/types.d.ts +18 -0
  217. package/dist/types/components/field/types.d.ts +86 -0
  218. package/dist/types/components/flex/types.d.ts +37 -0
  219. package/dist/types/components/form/Form.d.ts +6 -0
  220. package/dist/types/components/form/types.d.ts +68 -0
  221. package/dist/types/components/grid/types.d.ts +77 -0
  222. package/dist/types/components/image/types.d.ts +53 -0
  223. package/dist/types/components/image-preview/types.d.ts +55 -0
  224. package/dist/types/components/input/types.d.ts +42 -0
  225. package/dist/types/components/loading/types.d.ts +32 -0
  226. package/dist/types/components/nav-bar/tokens.d.ts +1 -1
  227. package/dist/types/components/nav-bar/types.d.ts +67 -0
  228. package/dist/types/components/notice-bar/types.d.ts +26 -0
  229. package/dist/types/components/notify/types.d.ts +64 -0
  230. package/dist/types/components/number-keyboard/types.d.ts +35 -0
  231. package/dist/types/components/overlay/types.d.ts +13 -0
  232. package/dist/types/components/password-input/types.d.ts +35 -0
  233. package/dist/types/components/picker/types.d.ts +73 -0
  234. package/dist/types/components/popup/types.d.ts +41 -0
  235. package/dist/types/components/portal/types.d.ts +1 -0
  236. package/dist/types/components/progress/types.d.ts +51 -0
  237. package/dist/types/components/radio/types.d.ts +95 -0
  238. package/dist/types/components/safe-area-view/types.d.ts +1 -0
  239. package/dist/types/components/search/types.d.ts +28 -0
  240. package/dist/types/components/selector/types.d.ts +74 -0
  241. package/dist/types/components/share-sheet/types.d.ts +26 -0
  242. package/dist/types/components/sidebar/types.d.ts +64 -0
  243. package/dist/types/components/skeleton/types.d.ts +45 -0
  244. package/dist/types/components/slider/types.d.ts +38 -0
  245. package/dist/types/components/space/types.d.ts +39 -0
  246. package/dist/types/components/stepper/types.d.ts +46 -0
  247. package/dist/types/components/swiper/types.d.ts +29 -0
  248. package/dist/types/components/switch/types.d.ts +33 -0
  249. package/dist/types/components/tabbar/types.d.ts +39 -0
  250. package/dist/types/components/tabs/types.d.ts +64 -0
  251. package/dist/types/components/tag/types.d.ts +69 -0
  252. package/dist/types/components/theme.d.ts +112 -0
  253. package/dist/types/components/toast/types.d.ts +1 -0
  254. package/dist/types/components/typography/types.d.ts +66 -0
  255. package/dist/types/components/water-mark/types.d.ts +58 -0
  256. package/dist/types/design-system/tokens.d.ts +1 -0
  257. package/package.json +3 -3
  258. package/dist/cjs/components/form/FormContext.js +0 -1
  259. package/dist/cjs/components/form/utils.js +0 -1
  260. package/dist/es/components/form/FormContext.js +0 -1
  261. package/dist/es/components/form/utils.js +0 -1
  262. package/dist/types/components/form/FormContext.d.ts +0 -2
  263. package/dist/types/components/form/utils.d.ts +0 -7
@@ -1 +1 @@
1
- "use strict";function _react(){const e=_interopRequireWildcard(require("react"));return _react=function(){return e},e}function _reactNative(){const e=require("react-native");return _reactNative=function(){return e},e}Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.TabPane=void 0;var _hooks=require("../../hooks"),_animation=require("../../hooks/animation"),_hairline=require("../../utils/hairline"),_number=require("../../utils/number"),_validate=require("../../utils/validate"),_tokens=require("./tokens");function _interopRequireWildcard(e,t){if("function"==typeof WeakMap)var a=new WeakMap,r=new WeakMap;return(_interopRequireWildcard=function(e,t){if(!t&&e&&e.__esModule)return e;var n,i,l={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return l;if(n=t?r:a){if(n.has(e))return n.get(e);n.set(e,l)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((i=(n=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(i.get||i.set)?n(l,t,i):l[t]=e[t]);return l})(e,t)}function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var r in a)({}).hasOwnProperty.call(a,r)&&(e[r]=a[r])}return e},_extends.apply(null,arguments)}const TabPane=()=>null;exports.TabPane=TabPane,TabPane.displayName="Tabs.TabPane";const hasRaf="function"==typeof requestAnimationFrame&&"function"==typeof cancelAnimationFrame,requestFrame=hasRaf?requestAnimationFrame:e=>setTimeout(e,16),cancelFrame=e=>{null!=e&&(hasRaf?cancelAnimationFrame:clearTimeout)(e)},isTabPaneElement=e=>!!_react().default.isValidElement(e)&&(e.type===TabPane||"Tabs.TabPane"===e.type.displayName),useTabsAnimation=({type:e,animated:t,scrollable:a,align:r,panes:n,nameIndexMap:i,resolvedLineWidth:l,resolvedDuration:c,currentName:o,layoutMap:s,navContainerWidthRef:u})=>{const d=(0,_react().useRef)(new(_reactNative().Animated.Value)(0)).current,f=(0,_react().useRef)(new(_reactNative().Animated.Value)(0)).current,m=(0,_react().useRef)(!1),p=(0,_react().useRef)(null),_=(0,_react().useCallback)((o,m)=>{if(null==o||"line"!==e)return!1;const _=!a&&"start"!==r&&u.current>0&&n.length>0,h=i.get(o)??-1,b=_?u.current/n.length:0,g=_?{x:Math.max(h,0)*b,width:b}:s.current.get(o);if(!g||h<0)return!1;p.current?.stop();const v=(e,a)=>_reactNative().Animated.timing(e,{toValue:a,duration:m||!t?0:c,useNativeDriver:!1,isInteraction:!1}),y=l??g.width,S=l?g.x+(g.width-y)/2:g.x,x=_reactNative().Animated.parallel([v(d,S),v(f,y)]);return p.current=x,x.start(({finished:e})=>{e&&(p.current=null)}),!0},[r,t,f,d,i,n.length,c,l,a,e,s,u]);return(0,_react().useEffect)(()=>{if(null==o)return;const e=m.current;_(o,!e)&&!m.current&&(m.current=!0)},[_,o]),(0,_react().useEffect)(()=>()=>{p.current?.stop(),p.current=null},[]),{indicatorX:d,indicatorWidth:f,indicatorInitializedRef:m,animateIndicator:_}},useTabsScroll=({scrollable:e,animated:t,currentName:a,resolvedDuration:r,layoutMap:n,navContainerWidthRef:i,navContentWidthRef:l})=>{const c=(0,_react().useRef)(null),o=(0,_react().useRef)(new(_reactNative().Animated.Value)(0)).current,s=(0,_react().useRef)(null),u=(0,_react().useRef)(!1),d=(0,_react().useRef)(0),f=(0,_react().useRef)(null),m=(0,_react().useCallback)(c=>{if(!e||null==a)return;const m=n.current.get(a),p=i.current;if(!m||!p)return;const _=l.current,h=m.x-(p-m.width)/2,b=Math.max(_-p,0),g=Math.max(0,Math.min(h,b));if(!(b<=0||Math.abs(g-d.current)<1)){if(s.current?.stop(),s.current=null,cancelFrame(f.current),f.current=null,c||!t)return u.current=!0,o.setValue(g),void(f.current=requestFrame(()=>{f.current=null,u.current=!1}));o.setValue(d.current),u.current=!0,s.current=_reactNative().Animated.timing(o,{toValue:g,duration:r,useNativeDriver:!1,isInteraction:!1}),s.current.start(({finished:e})=>{s.current=null,u.current=!1,e&&(d.current=g)})}},[t,a,o,r,e,n,i,l]);(0,_react().useEffect)(()=>{if(!e)return;const t=o.addListener(({value:e})=>{const t=d.current;d.current=e,Math.abs(e-t)>=.5&&c.current?.scrollTo({x:e,y:0,animated:!1})});return()=>o.removeListener(t)},[o,e]),(0,_react().useEffect)(()=>()=>{cancelFrame(f.current),f.current=null},[]);const p=(0,_react().useCallback)(e=>{u.current=!1,s.current?.stop(),s.current=null,d.current=e.nativeEvent.contentOffset.x},[]),_=(0,_react().useCallback)(e=>{u.current||(d.current=e.nativeEvent.contentOffset.x)},[]);return{navScrollRef:c,navScrollX:o,scrollIntoView:m,handleNavScrollBeginDrag:p,handleNavScroll:_}},TabBarItemInner=({pane:e,isActive:t,align:a,scrollable:r,type:n,ellipsis:i,tokens:l,color:c,titleActiveColor:o,titleInactiveColor:s,tabStyle:u,titleStyle:d,descriptionStyle:f,onSelect:m,onLayout:p,isLast:_})=>{const h=!!e.disabled,b=(0,_hooks.useAriaPress)({onPress:t=>m(e,e.index,t),extraProps:{accessibilityRole:"tab",accessibilityState:{selected:t,disabled:h},testID:`rv-tabs-item-${e.name}`}}),g="capsule"===n,v="jumbo"===n,y="card"===n,x=(0,_validate.isFunction)(e.title)?e.title(t):e.title??e.name,w=(0,_validate.isFunction)(e.description)?e.description(t):e.description,T=o??(y?l.colors.cardActiveText:g?l.colors.capsuleActiveText:c??l.colors.textActive),E=s??(y?c??l.colors.cardBorder:g?l.colors.capsuleText:l.colors.text),k=e.disabled?l.colors.textDisabled:t?T:E,R=h?l.colors.textDisabled:v?t?l.colors.jumboDescriptionActive:l.colors.jumboDescription:t?l.colors.descriptionActive:l.colors.description,N=!r&&("start"!==a||y),C=y||v||g,V=C?0:l.tabList.paddingHorizontal,P=C?0:l.tabList.paddingVertical,I=[S.lblW,v&&S.lblWJ,y&&S.cardLbl,y&&{paddingHorizontal:l.card.paddingHorizontal,paddingVertical:l.card.paddingVertical},g&&{flex:1,alignSelf:"stretch",paddingHorizontal:l.capsule.paddingHorizontal,paddingVertical:l.capsule.paddingVertical},v&&{paddingHorizontal:l.jumbo.paddingHorizontal,paddingVertical:l.jumbo.paddingVertical,alignItems:"center"}].filter(Boolean),H=g?[{flex:1,alignSelf:"stretch",justifyContent:"center",alignItems:"center",borderRadius:l.capsule.radius,backgroundColor:t?c??l.colors.capsuleActiveBackground:l.colors.capsuleBackground}]:null,M=[S.title,{color:k,fontFamily:l.typography.fontFamily,fontSize:v?l.typography.jumboTitleSize:l.typography.titleSize,fontWeight:t?l.typography.titleActiveWeight:l.typography.titleWeight,lineHeight:v?l.typography.jumboLineHeight:void 0,textAlign:"center"},i&&!v?S.ellipsis:null,d],A=v?l.spacing.jumboDescriptionMarginTop:l.spacing.descriptionMarginTop,z=v?{backgroundColor:t?l.colors.jumboDescriptionActiveBackground:l.colors.jumboDescriptionBackground,paddingHorizontal:l.jumbo.descriptionPaddingHorizontal,paddingVertical:l.jumbo.descriptionPaddingVertical,borderRadius:l.jumbo.descriptionRadius}:null,L=(0,_react().useCallback)(t=>p(e.name,t),[p,e.name]);return _react().default.createElement(_reactNative().Pressable,_extends({},b.interactionProps,{onLayout:L,style:[S.tabI,N?S.flexI:null,{paddingHorizontal:V,paddingVertical:P},y?{backgroundColor:t?c??l.colors.cardActiveBackground:l.colors.cardBackground}:null,u]}),_react().default.createElement(_reactNative().View,{style:I},H?_react().default.createElement(_reactNative().View,{style:H},_react().default.createElement(_reactNative().Text,{style:M,numberOfLines:i&&!v?1:void 0},x)):_react().default.createElement(_reactNative().Text,{style:M,numberOfLines:i&&!v?1:void 0},x),(0,_validate.isRenderable)(w)&&((0,_validate.isText)(w)?_react().default.createElement(_reactNative().Text,{style:[S.descTxt,{color:R,fontFamily:l.typography.fontFamily,fontSize:l.typography.descriptionSize,marginTop:A,textAlign:"center"},z,f]},w):_react().default.createElement(_reactNative().View,{style:[{marginTop:A,alignItems:"center"},z]},w)),(0,_validate.isRenderable)(e.badge)&&_react().default.createElement(_reactNative().View,{style:{marginTop:l.spacing.badgeMarginTop}},(0,_validate.isText)(e.badge)?_react().default.createElement(_reactNative().Text,{style:{color:l.colors.badgeText,fontFamily:l.typography.fontFamily,fontSize:l.typography.badgeTextSize}},e.badge):e.badge)),y&&!_&&_react().default.createElement(_reactNative().View,{style:(0,_hairline.createHairlineView)({position:"right",color:c??l.colors.cardBorder,top:0,bottom:0})}))},TabBarItem=(0,_react().memo)(TabBarItemInner),TabsBaseInner=(e,t)=>{const{tokensOverride:a,children:r,type:n,align:i,ellipsis:l,swipeThreshold:c,animated:o,duration:s,lazyRender:u,lazyRenderPlaceholder:d,scrollable:f,swipeable:m,color:p,background:_,border:h,navLeft:b,navRight:g,navBottom:v,tabBarStyle:y,tabStyle:x,titleStyle:w,descriptionStyle:T,contentStyle:E,lineWidth:k,lineHeight:R,titleActiveColor:N,titleInactiveColor:C,beforeChange:V,onClickTab:P,onChange:I,style:H,...M}=e,A=(0,_tokens.useTabsTokens)(a),z=(0,_animation.useReducedMotion)(),L=n??A.defaults.type,j=i??A.defaults.align,B=l??A.defaults.ellipsis,W=c??A.defaults.swipeThreshold,D=o??A.defaults.animated,F=s??A.defaults.duration,O=u??A.defaults.lazyRender,q=_??A.tabList.background,X=(0,_number.parseNumberLike)(k??A.indicator.width),J=null!=X&&X<0?void 0:X,$=Math.max(0,(0,_number.parseNumberLike)(R)??A.indicator.height),G=z?0:Math.max(0,(0,_number.parseNumberLike)(F)??A.defaults.duration),K=Math.max(0,(0,_number.parseNumberLike)(W)??A.defaults.swipeThreshold),Q=m?(0,_validate.isObject)(m)?{autoHeight:m.autoHeight??!0,preventScroll:m.preventScroll??!0}:{autoHeight:!0,preventScroll:!0}:void 0,U=!!Q,Y=(0,_react().useMemo)(()=>{const e=[];let t=0;const a=r=>{_react().Children.forEach(r,r=>{if(!(0,_react().isValidElement)(r))return;const n=r;if(n.type===_react().default.Fragment)return void a(n.props.children);if(!isTabPaneElement(n))return;const i=n.props,l=i.name??t;e.push({...i,key:n.key??l,name:l,index:t}),t+=1})};return a(r),e},[r]),Z=Y[0]?.name,[ee,te]=(0,_hooks.useControllableValue)(e,{defaultValue:Z,valuePropName:"active",defaultValuePropName:"defaultActive",trigger:"onChange"}),ae=null==ee?Z:Y.some(e=>e.name===ee)?ee:Z,re=(0,_react().useRef)(ae);(0,_react().useEffect)(()=>{re.current=ae},[ae]);const ne=(0,_react().useMemo)(()=>{const e=new Map;return Y.forEach(t=>{e.set(t.name,t.index)}),e},[Y]),ie=null==ae?-1:ne.get(ae)??-1,le=(0,_react().useRef)(new Set),ce=(0,_react().useRef)(new Map),oe=(0,_react().useRef)(0),se=(0,_react().useRef)(0),ue=(0,_react().useRef)(null),de=(0,_react().useRef)(new Map),fe=(0,_react().useRef)(null),me=(0,_react().useRef)(!1),[pe,_e]=(0,_react().useState)(0),[he,be]=(0,_react().useState)(void 0);(0,_react().useEffect)(()=>{null!=ae&&le.current.add(ae)},[ae]),(0,_react().useEffect)(()=>{const e=new Set(Y.map(e=>e.name));Array.from(de.current.keys()).forEach(t=>{e.has(t)||de.current.delete(t)}),Array.from(ce.current.keys()).forEach(t=>{e.has(t)||ce.current.delete(t)})},[Y]);const ge=U&&Q?.autoHeight;(0,_react().useEffect)(()=>{ge||de.current.clear()},[ge]),(0,_react().useEffect)(()=>{if(!U||!Q?.autoHeight)return void be(void 0);const e=null!=ae?de.current.get(ae):void 0;be(e?e.height:void 0)},[ae,U,Q?.autoHeight]),(0,_react().useEffect)(()=>()=>{cancelFrame(ue.current),ue.current=null},[]);const ve=(0,_validate.isBoolean)(f)?f:Y.length>K||!1===B,ye=p??A.colors.indicator,Se=$?$/2:A.indicator.radius,{indicatorX:xe,indicatorWidth:we,indicatorInitializedRef:Te,animateIndicator:Ee}=useTabsAnimation({type:L,animated:D,scrollable:ve,align:j,panes:Y,nameIndexMap:ne,resolvedLineWidth:J,resolvedLineHeight:$,resolvedDuration:G,currentName:ae,layoutMap:ce,navContainerWidthRef:oe}),{navScrollRef:ke,scrollIntoView:Re,handleNavScrollBeginDrag:Ne,handleNavScroll:Ce}=useTabsScroll({scrollable:ve,animated:D,currentName:ae,resolvedDuration:G,layoutMap:ce,navContainerWidthRef:oe,navContentWidthRef:se}),Ve=(0,_react().useCallback)((e,t)=>{const{x:a,width:r}=t.nativeEvent.layout;if(ce.current.set(e,{x:a,width:r}),e===re.current){const t=Te.current;Ee(e,!t)&&!Te.current&&(Te.current=!0)}},[Ee,Te]),Pe=(0,_react().useCallback)(e=>{const{width:t}=e.nativeEvent.layout;if(oe.current=t,!ve&&"start"!==j&&"line"===L&&null!=ae){const e=Te.current;Ee(ae,!e)&&!Te.current&&(Te.current=!0)}},[j,Ee,ae,ve,L,Te]),Ie=(0,_react().useCallback)(e=>{const t=e.nativeEvent.layout.width;_e(e=>e===t?e:t)},[]),He=(0,_react().useRef)(V);He.current=V;const Me=(0,_react().useCallback)(e=>{if(!He.current)return Promise.resolve(!0);try{return Promise.resolve(He.current(e)).then(e=>!1!==e).catch(()=>!1)}catch(e){return Promise.resolve(!1)}},[]),Ae=(0,_react().useRef)(0),ze=(0,_react().useCallback)((e,t)=>{Ae.current+=1;const a=Ae.current;Me(e).then(r=>{r&&Ae.current===a&&te(e,t)})},[Me,te]),Le=(0,_react().useCallback)((e,t)=>{if(U&&Q?.autoHeight){const{height:a}=t.nativeEvent.layout;de.current.set(e,{height:a}),e===ae&&be(a)}},[ae,U,Q?.autoHeight]),je=(0,_react().useRef)(null);(0,_react().useEffect)(()=>{je.current=null},[ae]);const Be=(0,_react().useCallback)(e=>{if(!U||pe<=0)return;const t=Math.round(e/pe);if(je.current===t)return;je.current=t;const a=Y[t];a&&a.name!==re.current&&(me.current=!0,ze(a.name,a.index))},[pe,U,Y,ze]),We=(0,_react().useCallback)(e=>{Be(e.nativeEvent.contentOffset.x)},[Be]),De=(0,_react().useCallback)(e=>{Be(e.nativeEvent.contentOffset.x)},[Be]);(0,_react().useEffect)(()=>{if(!U||!fe.current||pe<=0)return;if(me.current)return void(me.current=!1);if(ie<0)return;const e=fe.current?.getNode?.()??fe.current;e?.scrollTo&&e.scrollTo({x:pe*ie,y:0,animated:!0})},[ie,pe,U]);const Fe=(0,_react().useRef)(P);Fe.current=P;const Oe=(0,_react().useCallback)((e,t,a)=>{const r={name:e.name,index:t,disabled:!!e.disabled,event:a};Fe.current?.(r),e.disabled||e.name===re.current||ze(e.name,t)},[ze]),qe=(0,_react().useCallback)((e,t)=>{const a=Y.find(t=>t.name===e&&!t.disabled);a&&te(a.name,a.index)},[Y,te]);(0,_react().useImperativeHandle)(t,()=>({scrollTo:qe}),[qe]);const Xe=(0,_react().useRef)(!0);(0,_react().useEffect)(()=>{Xe.current&&(Xe.current=!1,Re(!0))},[Re]),(0,_react().useEffect)(()=>{Xe.current||Re()},[ae,Re]);const Je=h??!1,$e="line"===L,Ge="jumbo"===L?A.jumbo.height:"card"===L?A.card.height:A.tabList.height,Ke="web"===_reactNative().Platform.OS&&"line"!==L&&"card"!==L?A.tabList.paddingBottom:0,Qe=$e?"line"===L?0:A.indicator.offset:0;if(0===Y.length)return null;const Ue=$e?_react().default.createElement(_reactNative().Animated.View,{testID:"rv-tabs-indicator",style:[S.ind,{height:$,borderRadius:Se,backgroundColor:ye,width:we,bottom:Qe,transform:[{translateX:xe}]}]}):null,Ye=(0,_react().useMemo)(()=>Y.map(e=>_react().default.createElement(TabBarItem,{key:e.key,pane:e,isActive:e.name===ae,align:j,scrollable:ve,type:L,ellipsis:B,tokens:A,color:p,titleActiveColor:N,titleInactiveColor:C,tabStyle:x,titleStyle:w,descriptionStyle:T,onSelect:Oe,onLayout:Ve,isLast:e.index===Y.length-1})),[j,p,ae,T,B,Oe,Ve,Y,ve,x,N,C,w,A,L]),Ze=(0,_react().useCallback)(e=>{const t=se.current;se.current=e,0===t||Xe.current?Re(!0):Math.abs(e-t)>1&&(cancelFrame(ue.current),ue.current=requestFrame(()=>{ue.current=null,Re()}))},[Re]),et=ve?_react().default.createElement(_reactNative().ScrollView,{horizontal:!0,ref:ke,accessibilityRole:"tablist",showsHorizontalScrollIndicator:!1,scrollEventThrottle:16,onScrollBeginDrag:Ne,onScroll:Ce,onContentSizeChange:Ze,contentContainerStyle:S.navC},Ye,Ue):_react().default.createElement(_reactNative().View,{accessibilityRole:"tablist",style:[S.navC,S.navCSta]},Ye,Ue),tt=_react().default.createElement(_reactNative().View,{style:[S.wrap,{backgroundColor:q},y]},b&&_react().default.createElement(_reactNative().View,{style:{paddingHorizontal:A.spacing.navSidePaddingHorizontal}},b),_react().default.createElement(_reactNative().View,{style:[S.nav,{minHeight:Ge+Ke,paddingBottom:Ke},"card"===L?{borderRadius:A.card.radius,marginHorizontal:A.card.marginHorizontal,overflow:"hidden"}:null],onLayout:Pe},et,"card"===L&&_react().default.createElement(_reactNative().View,{style:(0,_hairline.createHairlineView)({position:"all",color:p??A.colors.cardBorder,borderRadius:A.card.radius})})),g&&_react().default.createElement(_reactNative().View,{style:{paddingHorizontal:A.spacing.navSidePaddingHorizontal}},g),Je&&"line"===L&&_react().default.createElement(_reactNative().View,{style:(0,_hairline.createHairlineView)({position:"bottom",color:A.colors.border,left:0,right:0})})),at=(0,_react().useMemo)(()=>Y.map(e=>{const t=e.name===ae,a=!O||t||le.current.has(e.name);if(!a&&!U)return null;const r=U&&Q?.autoHeight?t=>Le(e.name,t):void 0,n=[S.pane,U?S.swipePane:null,U&&pe>0&&{width:pe},U||t?null:S.hidPane],i=a?e.children:d||null;return _react().default.createElement(_reactNative().View,{key:e.key,testID:`rv-tabs-pane-${e.name}`,onLayout:r,style:n},i)}),[pe,ae,Le,U,O,d,Y,Q?.autoHeight]),rt=[S.content,E],nt=[S.content,E,Q?.autoHeight&&void 0!==he&&{height:he}],it=U?_react().default.createElement(_reactNative().View,{style:nt},_react().default.createElement(_reactNative().Animated.ScrollView,{ref:fe,horizontal:!0,pagingEnabled:!0,scrollEventThrottle:16,showsHorizontalScrollIndicator:!1,onMomentumScrollEnd:We,onScrollEndDrag:De,nestedScrollEnabled:!1===Q?.preventScroll,directionalLockEnabled:!1!==Q?.preventScroll},at)):_react().default.createElement(_reactNative().View,{style:rt},at);return _react().default.createElement(_reactNative().View,_extends({},M,{style:[S.ctr,H],onLayout:Ie}),tt,v&&_react().default.createElement(_reactNative().View,{style:{marginTop:A.spacing.navBottomMarginTop}},v),it)},S=_reactNative().StyleSheet.create({ctr:{width:"100%"},wrap:{flexDirection:"row",alignItems:"center",position:"relative"},nav:{flex:1,position:"relative",alignSelf:"stretch"},navC:{flexDirection:"row",alignItems:"center",height:"100%",position:"relative"},navCSta:{flex:1},lblW:{justifyContent:"center",alignItems:"center",flexDirection:"column"},lblWJ:{alignItems:"center"},cardLbl:{flexDirection:"row",justifyContent:"center",alignItems:"center"},tabI:{flexShrink:0,height:"100%",alignSelf:"stretch",alignItems:"center",justifyContent:"center",flexDirection:"row"},flexI:{flexGrow:1},title:{includeFontPadding:!1},descTxt:{includeFontPadding:!1},ellipsis:{maxWidth:"100%",flexShrink:1},ind:{position:"absolute",bottom:0,left:0},content:{width:"100%"},pane:{width:"100%"},swipePane:{flexShrink:0},hidPane:{display:"none"}}),TabsBaseRef=_react().default.forwardRef(TabsBaseInner),TabsWithPane=Object.assign(_react().default.memo(TabsBaseRef),{TabPane:TabPane});var _default=exports.default=TabsWithPane;
1
+ "use strict";function _react(){const e=_interopRequireWildcard(require("react"));return _react=function(){return e},e}function _reactNative(){const e=require("react-native");return _reactNative=function(){return e},e}Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.TabPane=void 0;var _hooks=require("../../hooks"),_animation=require("../../hooks/animation"),_hairline=require("../../utils/hairline"),_number=require("../../utils/number"),_validate=require("../../utils/validate"),_tokens=require("./tokens");function _interopRequireWildcard(e,t){if("function"==typeof WeakMap)var a=new WeakMap,r=new WeakMap;return(_interopRequireWildcard=function(e,t){if(!t&&e&&e.__esModule)return e;var n,i,l={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return l;if(n=t?r:a){if(n.has(e))return n.get(e);n.set(e,l)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((i=(n=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(i.get||i.set)?n(l,t,i):l[t]=e[t]);return l})(e,t)}function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var r in a)({}).hasOwnProperty.call(a,r)&&(e[r]=a[r])}return e},_extends.apply(null,arguments)}const TabPane=()=>null;exports.TabPane=TabPane,TabPane.displayName="Tabs.TabPane";const hasRaf="function"==typeof requestAnimationFrame&&"function"==typeof cancelAnimationFrame,requestFrame=hasRaf?requestAnimationFrame:e=>setTimeout(e,16),cancelFrame=e=>{null!=e&&(hasRaf?cancelAnimationFrame:clearTimeout)(e)},isTabPaneElement=e=>!!_react().default.isValidElement(e)&&(e.type===TabPane||"Tabs.TabPane"===e.type.displayName),useTabsAnimation=({type:e,animated:t,scrollable:a,align:r,panes:n,nameIndexMap:i,resolvedLineWidth:l,resolvedDuration:c,currentName:o,layoutMap:s,navContainerWidthRef:u})=>{const d=(0,_react().useRef)(new(_reactNative().Animated.Value)(0)).current,f=(0,_react().useRef)(new(_reactNative().Animated.Value)(0)).current,m=(0,_react().useRef)(!1),p=(0,_react().useRef)(null),_=(0,_react().useCallback)((o,m)=>{if(null==o||"line"!==e)return!1;const _=!a&&"start"!==r&&u.current>0&&n.length>0,h=i.get(o)??-1,b=_?u.current/n.length:0,g=_?{x:Math.max(h,0)*b,width:b}:s.current.get(o);if(!g||h<0)return!1;p.current?.stop();const v=(e,a)=>_reactNative().Animated.timing(e,{toValue:a,duration:m||!t?0:c,useNativeDriver:!1,isInteraction:!1}),y=l??g.width,S=l?g.x+(g.width-y)/2:g.x,x=_reactNative().Animated.parallel([v(d,S),v(f,y)]);return p.current=x,x.start(({finished:e})=>{e&&(p.current=null)}),!0},[r,t,f,d,i,n.length,c,l,a,e,s,u]);return(0,_react().useEffect)(()=>{if(null==o)return;const e=m.current;_(o,!e)&&!m.current&&(m.current=!0)},[_,o]),(0,_react().useEffect)(()=>()=>{p.current?.stop(),p.current=null},[]),{indicatorX:d,indicatorWidth:f,indicatorInitializedRef:m,animateIndicator:_}},useTabsScroll=({scrollable:e,animated:t,currentName:a,resolvedDuration:r,layoutMap:n,navContainerWidthRef:i,navContentWidthRef:l})=>{const c=(0,_react().useRef)(null),o=(0,_react().useRef)(new(_reactNative().Animated.Value)(0)).current,s=(0,_react().useRef)(null),u=(0,_react().useRef)(!1),d=(0,_react().useRef)(0),f=(0,_react().useRef)(null),m=(0,_react().useCallback)(c=>{if(!e||null==a)return;const m=n.current.get(a),p=i.current;if(!m||!p)return;const _=l.current,h=m.x-(p-m.width)/2,b=Math.max(_-p,0),g=Math.max(0,Math.min(h,b));if(!(b<=0||Math.abs(g-d.current)<1)){if(s.current?.stop(),s.current=null,cancelFrame(f.current),f.current=null,c||!t)return u.current=!0,o.setValue(g),void(f.current=requestFrame(()=>{f.current=null,u.current=!1}));o.setValue(d.current),u.current=!0,s.current=_reactNative().Animated.timing(o,{toValue:g,duration:r,useNativeDriver:!1,isInteraction:!1}),s.current.start(({finished:e})=>{s.current=null,u.current=!1,e&&(d.current=g)})}},[t,a,o,r,e,n,i,l]);(0,_react().useEffect)(()=>{if(!e)return;const t=o.addListener(({value:e})=>{const t=d.current;d.current=e,Math.abs(e-t)>=.5&&c.current?.scrollTo({x:e,y:0,animated:!1})});return()=>o.removeListener(t)},[o,e]),(0,_react().useEffect)(()=>()=>{cancelFrame(f.current),f.current=null},[]);const p=(0,_react().useCallback)(e=>{u.current=!1,s.current?.stop(),s.current=null,d.current=e.nativeEvent.contentOffset.x},[]),_=(0,_react().useCallback)(e=>{u.current||(d.current=e.nativeEvent.contentOffset.x)},[]);return{navScrollRef:c,navScrollX:o,scrollIntoView:m,handleNavScrollBeginDrag:p,handleNavScroll:_}},TabBarItemInner=({pane:e,isActive:t,align:a,scrollable:r,type:n,ellipsis:i,tokens:l,color:c,titleActiveColor:o,titleInactiveColor:s,tabStyle:u,titleStyle:d,descriptionStyle:f,onSelect:m,onLayout:p,isLast:_})=>{const h=!!e.disabled,b=(0,_hooks.useAriaPress)({onPress:t=>m(e,e.index,t),extraProps:{accessibilityRole:"tab",accessibilityState:{selected:t,disabled:h},testID:`rv-tabs-item-${e.name}`}}),g="capsule"===n,v="jumbo"===n,y="card"===n,x=(0,_validate.isFunction)(e.title)?e.title(t):e.title??e.name,w=(0,_validate.isFunction)(e.description)?e.description(t):e.description,T=o??(y?l.colors.cardActiveText:g?l.colors.capsuleActiveText:c??l.colors.textActive),E=s??(y?c??l.colors.cardBorder:g?l.colors.capsuleText:l.colors.text),k=e.disabled?l.colors.textDisabled:t?T:E,R=h?l.colors.textDisabled:v?t?l.colors.jumboDescriptionActive:l.colors.jumboDescription:t?l.colors.descriptionActive:l.colors.description,N=!r&&("start"!==a||y),C=y||v||g,V=C?0:l.tabList.paddingHorizontal,P=C?0:l.tabList.paddingVertical,I=[S.lblW,v&&S.lblWJ,y&&S.cardLbl,y&&{paddingHorizontal:l.card.paddingHorizontal,paddingVertical:l.card.paddingVertical},g&&{flex:1,alignSelf:"stretch",paddingHorizontal:l.capsule.paddingHorizontal,paddingVertical:l.capsule.paddingVertical},v&&{paddingHorizontal:l.jumbo.paddingHorizontal,paddingVertical:l.jumbo.paddingVertical,alignItems:"center"}].filter(Boolean),H=g?[{flex:1,alignSelf:"stretch",justifyContent:"center",alignItems:"center",borderRadius:l.capsule.radius,backgroundColor:t?c??l.colors.capsuleActiveBackground:l.colors.capsuleBackground}]:null,M=[S.title,{color:k,fontFamily:l.typography.fontFamily,fontSize:v?l.typography.jumboTitleSize:l.typography.titleSize,fontWeight:t?l.typography.titleActiveWeight:l.typography.titleWeight,lineHeight:v?l.typography.jumboLineHeight:void 0,textAlign:"center"},i&&!v?S.ellipsis:null,d],A=v?l.spacing.jumboDescriptionMarginTop:l.spacing.descriptionMarginTop,z=v?{backgroundColor:t?l.colors.jumboDescriptionActiveBackground:l.colors.jumboDescriptionBackground,paddingHorizontal:l.jumbo.descriptionPaddingHorizontal,paddingVertical:l.jumbo.descriptionPaddingVertical,borderRadius:l.jumbo.descriptionRadius}:null,L=(0,_react().useCallback)(t=>p(e.name,t),[p,e.name]);return _react().default.createElement(_reactNative().Pressable,_extends({},b.interactionProps,{onLayout:L,style:[S.tabI,N?S.flexI:null,{paddingHorizontal:V,paddingVertical:P},y?{backgroundColor:t?c??l.colors.cardActiveBackground:l.colors.cardBackground}:null,u]}),_react().default.createElement(_reactNative().View,{style:I},H?_react().default.createElement(_reactNative().View,{style:H},_react().default.createElement(_reactNative().Text,{style:M,numberOfLines:i&&!v?1:void 0},x)):_react().default.createElement(_reactNative().Text,{style:M,numberOfLines:i&&!v?1:void 0},x),(0,_validate.isRenderable)(w)&&((0,_validate.isText)(w)?_react().default.createElement(_reactNative().Text,{style:[S.descTxt,{color:R,fontFamily:l.typography.fontFamily,fontSize:l.typography.descriptionSize,marginTop:A,textAlign:"center"},z,f]},w):_react().default.createElement(_reactNative().View,{style:[{marginTop:A,alignItems:"center"},z]},w)),(0,_validate.isRenderable)(e.badge)&&_react().default.createElement(_reactNative().View,{style:{marginTop:l.spacing.badgeMarginTop}},(0,_validate.isText)(e.badge)?_react().default.createElement(_reactNative().Text,{style:{color:l.colors.badgeText,fontFamily:l.typography.fontFamily,fontSize:l.typography.badgeTextSize}},e.badge):e.badge)),y&&!_&&_react().default.createElement(_reactNative().View,{style:(0,_hairline.createHairlineView)({position:"right",color:c??l.colors.cardBorder,top:0,bottom:0})}))},TabBarItem=(0,_react().memo)(TabBarItemInner),TabsBaseInner=(e,t)=>{const{tokensOverride:a,children:r,type:n,align:i,ellipsis:l,swipeThreshold:c,animated:o,duration:s,lazyRender:u,lazyRenderPlaceholder:d,scrollable:f,swipeable:m,color:p,background:_,border:h,navLeft:b,navRight:g,navBottom:v,tabBarStyle:y,tabStyle:x,titleStyle:w,descriptionStyle:T,contentStyle:E,lineWidth:k,lineHeight:R,titleActiveColor:N,titleInactiveColor:C,beforeChange:V,onClickTab:P,onChange:I,style:H,...M}=e,A=(0,_tokens.useTabsTokens)(a),z=(0,_animation.useReducedMotion)(),L=n??A.defaults.type,j=i??A.defaults.align,B=l??A.defaults.ellipsis,W=c??A.defaults.swipeThreshold,D=o??A.defaults.animated,F=s??A.defaults.duration,O=u??A.defaults.lazyRender,q=_??A.tabList.background,X=(0,_number.parseNumberLike)(k??A.indicator.width),J=null!=X&&X<0?void 0:X,$=Math.max(0,(0,_number.parseNumberLike)(R)??A.indicator.height),G=z?0:Math.max(0,(0,_number.parseNumberLike)(F)??A.defaults.duration),K=Math.max(0,(0,_number.parseNumberLike)(W)??A.defaults.swipeThreshold),Q=m?(0,_validate.isObject)(m)?{autoHeight:m.autoHeight??!0,preventScroll:m.preventScroll??!0}:{autoHeight:!0,preventScroll:!0}:void 0,U=!!Q,Y=(0,_react().useMemo)(()=>{const e=[];let t=0;const a=r=>{_react().Children.forEach(r,r=>{if(!(0,_react().isValidElement)(r))return;const n=r;if(n.type===_react().default.Fragment)return void a(n.props.children);if(!isTabPaneElement(n))return;const i=n.props,l=i.name??t;e.push({...i,key:n.key??l,name:l,index:t}),t+=1})};return a(r),e},[r]),Z=Y[0]?.name,[ee,te]=(0,_hooks.useControllableValue)(e,{defaultValue:Z,valuePropName:"active",defaultValuePropName:"defaultActive",trigger:"onChange"}),ae=null==ee?Z:Y.some(e=>e.name===ee)?ee:Z,re=(0,_react().useRef)(ae);(0,_react().useEffect)(()=>{re.current=ae},[ae]);const ne=(0,_react().useMemo)(()=>{const e=new Map;return Y.forEach(t=>{e.set(t.name,t.index)}),e},[Y]),ie=null==ae?-1:ne.get(ae)??-1,le=(0,_react().useRef)(new Set),ce=(0,_react().useRef)(new Map),oe=(0,_react().useRef)(0),se=(0,_react().useRef)(0),ue=(0,_react().useRef)(null),de=(0,_react().useRef)(new Map),fe=(0,_react().useRef)(null),me=(0,_react().useRef)(!1),[pe,_e]=(0,_react().useState)(0),[he,be]=(0,_react().useState)(void 0);(0,_react().useEffect)(()=>{null!=ae&&le.current.add(ae)},[ae]),(0,_react().useEffect)(()=>{const e=new Set(Y.map(e=>e.name));Array.from(de.current.keys()).forEach(t=>{e.has(t)||de.current.delete(t)}),Array.from(ce.current.keys()).forEach(t=>{e.has(t)||ce.current.delete(t)})},[Y]);const ge=U&&Q?.autoHeight;(0,_react().useEffect)(()=>{ge||de.current.clear()},[ge]),(0,_react().useEffect)(()=>{if(!U||!Q?.autoHeight)return void be(void 0);const e=null!=ae?de.current.get(ae):void 0;be(e?e.height:void 0)},[ae,U,Q?.autoHeight]),(0,_react().useEffect)(()=>()=>{cancelFrame(ue.current),ue.current=null},[]);const ve=(0,_validate.isBoolean)(f)?f:Y.length>K||!1===B,ye=p??A.colors.indicator,Se=$?$/2:A.indicator.radius,{indicatorX:xe,indicatorWidth:we,indicatorInitializedRef:Te,animateIndicator:Ee}=useTabsAnimation({type:L,animated:D,scrollable:ve,align:j,panes:Y,nameIndexMap:ne,resolvedLineWidth:J,resolvedLineHeight:$,resolvedDuration:G,currentName:ae,layoutMap:ce,navContainerWidthRef:oe}),{navScrollRef:ke,scrollIntoView:Re,handleNavScrollBeginDrag:Ne,handleNavScroll:Ce}=useTabsScroll({scrollable:ve,animated:D,currentName:ae,resolvedDuration:G,layoutMap:ce,navContainerWidthRef:oe,navContentWidthRef:se}),Ve=(0,_react().useCallback)((e,t)=>{const{x:a,width:r}=t.nativeEvent.layout;if(ce.current.set(e,{x:a,width:r}),e===re.current){const t=Te.current;Ee(e,!t)&&!Te.current&&(Te.current=!0)}},[Ee,Te]),Pe=(0,_react().useCallback)(e=>{const{width:t}=e.nativeEvent.layout;if(oe.current=t,!ve&&"start"!==j&&"line"===L&&null!=ae){const e=Te.current;Ee(ae,!e)&&!Te.current&&(Te.current=!0)}},[j,Ee,ae,ve,L,Te]),Ie=(0,_react().useCallback)(e=>{const t=e.nativeEvent.layout.width;_e(e=>e===t?e:t)},[]),He=(0,_react().useRef)(V);He.current=V;const Me=(0,_react().useCallback)(e=>{if(!He.current)return Promise.resolve(!0);try{return Promise.resolve(He.current(e)).then(e=>!1!==e).catch(()=>!1)}catch{return Promise.resolve(!1)}},[]),Ae=(0,_react().useRef)(0),ze=(0,_react().useCallback)((e,t)=>{Ae.current+=1;const a=Ae.current;Me(e).then(r=>{r&&Ae.current===a&&te(e,t)})},[Me,te]),Le=(0,_react().useCallback)((e,t)=>{if(U&&Q?.autoHeight){const{height:a}=t.nativeEvent.layout;de.current.set(e,{height:a}),e===ae&&be(a)}},[ae,U,Q?.autoHeight]),je=(0,_react().useRef)(null);(0,_react().useEffect)(()=>{je.current=null},[ae]);const Be=(0,_react().useCallback)(e=>{if(!U||pe<=0)return;const t=Math.round(e/pe);if(je.current===t)return;je.current=t;const a=Y[t];a&&a.name!==re.current&&(me.current=!0,ze(a.name,a.index))},[pe,U,Y,ze]),We=(0,_react().useCallback)(e=>{Be(e.nativeEvent.contentOffset.x)},[Be]),De=(0,_react().useCallback)(e=>{Be(e.nativeEvent.contentOffset.x)},[Be]);(0,_react().useEffect)(()=>{if(!U||!fe.current||pe<=0)return;if(me.current)return void(me.current=!1);if(ie<0)return;const e=fe.current?.getNode?.()??fe.current;e?.scrollTo&&e.scrollTo({x:pe*ie,y:0,animated:!0})},[ie,pe,U]);const Fe=(0,_react().useRef)(P);Fe.current=P;const Oe=(0,_react().useCallback)((e,t,a)=>{const r={name:e.name,index:t,disabled:!!e.disabled,event:a};Fe.current?.(r),e.disabled||e.name===re.current||ze(e.name,t)},[ze]),qe=(0,_react().useCallback)((e,t)=>{const a=Y.find(t=>t.name===e&&!t.disabled);a&&te(a.name,a.index)},[Y,te]);(0,_react().useImperativeHandle)(t,()=>({scrollTo:qe}),[qe]);const Xe=(0,_react().useRef)(!0);(0,_react().useEffect)(()=>{Xe.current&&(Xe.current=!1,Re(!0))},[Re]),(0,_react().useEffect)(()=>{Xe.current||Re()},[ae,Re]);const Je=h??!1,$e="line"===L,Ge="jumbo"===L?A.jumbo.height:"card"===L?A.card.height:A.tabList.height,Ke="web"===_reactNative().Platform.OS&&"line"!==L&&"card"!==L?A.tabList.paddingBottom:0,Qe=$e?"line"===L?0:A.indicator.offset:0;if(0===Y.length)return null;const Ue=$e?_react().default.createElement(_reactNative().Animated.View,{testID:"rv-tabs-indicator",style:[S.ind,{height:$,borderRadius:Se,backgroundColor:ye,width:we,bottom:Qe,transform:[{translateX:xe}]}]}):null,Ye=(0,_react().useMemo)(()=>Y.map(e=>_react().default.createElement(TabBarItem,{key:e.key,pane:e,isActive:e.name===ae,align:j,scrollable:ve,type:L,ellipsis:B,tokens:A,color:p,titleActiveColor:N,titleInactiveColor:C,tabStyle:x,titleStyle:w,descriptionStyle:T,onSelect:Oe,onLayout:Ve,isLast:e.index===Y.length-1})),[j,p,ae,T,B,Oe,Ve,Y,ve,x,N,C,w,A,L]),Ze=(0,_react().useCallback)(e=>{const t=se.current;se.current=e,0===t||Xe.current?Re(!0):Math.abs(e-t)>1&&(cancelFrame(ue.current),ue.current=requestFrame(()=>{ue.current=null,Re()}))},[Re]),et=ve?_react().default.createElement(_reactNative().ScrollView,{horizontal:!0,ref:ke,accessibilityRole:"tablist",showsHorizontalScrollIndicator:!1,scrollEventThrottle:16,onScrollBeginDrag:Ne,onScroll:Ce,onContentSizeChange:Ze,contentContainerStyle:S.navC},Ye,Ue):_react().default.createElement(_reactNative().View,{accessibilityRole:"tablist",style:[S.navC,S.navCSta]},Ye,Ue),tt=_react().default.createElement(_reactNative().View,{style:[S.wrap,{backgroundColor:q},y]},b&&_react().default.createElement(_reactNative().View,{style:{paddingHorizontal:A.spacing.navSidePaddingHorizontal}},b),_react().default.createElement(_reactNative().View,{style:[S.nav,{minHeight:Ge+Ke,paddingBottom:Ke},"card"===L?{borderRadius:A.card.radius,marginHorizontal:A.card.marginHorizontal,overflow:"hidden"}:null],onLayout:Pe},et,"card"===L&&_react().default.createElement(_reactNative().View,{style:(0,_hairline.createHairlineView)({position:"all",color:p??A.colors.cardBorder,borderRadius:A.card.radius})})),g&&_react().default.createElement(_reactNative().View,{style:{paddingHorizontal:A.spacing.navSidePaddingHorizontal}},g),Je&&"line"===L&&_react().default.createElement(_reactNative().View,{style:(0,_hairline.createHairlineView)({position:"bottom",color:A.colors.border,left:0,right:0})})),at=(0,_react().useMemo)(()=>Y.map(e=>{const t=e.name===ae,a=!O||t||le.current.has(e.name);if(!a&&!U)return null;const r=U&&Q?.autoHeight?t=>Le(e.name,t):void 0,n=[S.pane,U?S.swipePane:null,U&&pe>0&&{width:pe},U||t?null:S.hidPane],i=a?e.children:d||null;return _react().default.createElement(_reactNative().View,{key:e.key,testID:`rv-tabs-pane-${e.name}`,onLayout:r,style:n},i)}),[pe,ae,Le,U,O,d,Y,Q?.autoHeight]),rt=[S.content,E],nt=[S.content,E,Q?.autoHeight&&void 0!==he&&{height:he}],it=U?_react().default.createElement(_reactNative().View,{style:nt},_react().default.createElement(_reactNative().Animated.ScrollView,{ref:fe,horizontal:!0,pagingEnabled:!0,scrollEventThrottle:16,showsHorizontalScrollIndicator:!1,onMomentumScrollEnd:We,onScrollEndDrag:De,nestedScrollEnabled:!1===Q?.preventScroll,directionalLockEnabled:!1!==Q?.preventScroll},at)):_react().default.createElement(_reactNative().View,{style:rt},at);return _react().default.createElement(_reactNative().View,_extends({},M,{style:[S.ctr,H],onLayout:Ie}),tt,v&&_react().default.createElement(_reactNative().View,{style:{marginTop:A.spacing.navBottomMarginTop}},v),it)},S=_reactNative().StyleSheet.create({ctr:{width:"100%"},wrap:{flexDirection:"row",alignItems:"center",position:"relative"},nav:{flex:1,position:"relative",alignSelf:"stretch"},navC:{flexDirection:"row",alignItems:"center",height:"100%",position:"relative"},navCSta:{flex:1},lblW:{justifyContent:"center",alignItems:"center",flexDirection:"column"},lblWJ:{alignItems:"center"},cardLbl:{flexDirection:"row",justifyContent:"center",alignItems:"center"},tabI:{flexShrink:0,height:"100%",alignSelf:"stretch",alignItems:"center",justifyContent:"center",flexDirection:"row"},flexI:{flexGrow:1},title:{includeFontPadding:!1},descTxt:{includeFontPadding:!1},ellipsis:{maxWidth:"100%",flexShrink:1},ind:{position:"absolute",bottom:0,left:0},content:{width:"100%"},pane:{width:"100%"},swipePane:{flexShrink:0},hidPane:{display:"none"}}),TabsBaseRef=_react().default.forwardRef(TabsBaseInner),TabsWithPane=Object.assign(_react().default.memo(TabsBaseRef),{TabPane:TabPane});var _default=exports.default=TabsWithPane;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.useTabsTokens=void 0;var _designSystem=require("../../design-system");const createTokens=e=>{const{palette:i,spacing:t,fontSize:r,radii:a,typography:d}=e,o=i.primary.foreground??"#ffffff";return{defaults:{type:"line",align:"center",ellipsis:!0,swipeThreshold:5,animated:!0,duration:300,lazyRender:!0},colors:{text:i.default[700],textActive:i.primary[600],textDisabled:i.default[400],description:i.default[500],descriptionActive:i.default[600],descriptionBackground:i.default[100],descriptionActiveBackground:i.primary[600],border:i.default[200],indicator:i.primary[600],cardBackground:"#ffffff",cardActiveBackground:i.primary[600],cardBorder:i.primary[600],cardActiveBorder:i.primary[600],cardActiveText:o,capsuleBackground:"transparent",capsuleActiveBackground:i.primary[600],capsuleBorder:"transparent",capsuleActiveBorder:"transparent",capsuleText:i.default[700],capsuleActiveText:o,badgeText:i.default[500],jumboBackground:i.default[50],jumboActiveBackground:"#ffffff",jumboBorder:"transparent",jumboActiveBorder:i.primary[400],jumboDescription:i.default[500],jumboDescriptionActive:o,jumboDescriptionBackground:i.default[100],jumboDescriptionActiveBackground:i.primary[500]},tabList:{height:44,paddingHorizontal:t.lg,paddingVertical:0,paddingBottom:t.md,background:"#ffffff"},typography:{fontFamily:d.fontFamily,titleSize:r.sm,titleWeight:e.typography.weight.medium,titleActiveWeight:e.typography.weight.semiBold,descriptionSize:r.xs,jumboTitleSize:r.md,jumboLineHeight:Math.round(1.6*r.md),badgeTextSize:r.xxs},spacing:{navSidePaddingHorizontal:t.sm,navBottomMarginTop:t.sm,descriptionMarginTop:t.xxs,jumboDescriptionMarginTop:t.sm,badgeMarginTop:t.xs},indicator:{height:3,radius:999,width:40,offset:t.md},card:{radius:a.xs,paddingHorizontal:t.sm,paddingVertical:t.xs,height:30,marginHorizontal:t.md},capsule:{radius:999,paddingHorizontal:t.sm,paddingVertical:t.ssm},jumbo:{radius:16,paddingHorizontal:t.md,paddingVertical:t.sm,height:64,descriptionPaddingHorizontal:t.sm,descriptionPaddingVertical:t.xxs,descriptionRadius:10}}},useTabsTokens=exports.useTabsTokens=(0,_designSystem.createComponentTokensHook)("tabs",createTokens);
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.useTabsTokens=void 0;var _designSystem=require("../../design-system");const createTokens=e=>{const{palette:i,spacing:t,fontSize:r,radii:a,typography:d}=e,o=e.surface??"#ffffff",n=i.primary.foreground??"#ffffff";return{defaults:{type:"line",align:"center",ellipsis:!0,swipeThreshold:5,animated:!0,duration:300,lazyRender:!0},colors:{text:i.default[700],textActive:i.primary[600],textDisabled:i.default[400],description:i.default[500],descriptionActive:i.default[600],descriptionBackground:i.default[100],descriptionActiveBackground:i.primary[600],border:i.default[200],indicator:i.primary[600],cardBackground:o,cardActiveBackground:i.primary[600],cardBorder:i.primary[600],cardActiveBorder:i.primary[600],cardActiveText:n,capsuleBackground:"transparent",capsuleActiveBackground:i.primary[600],capsuleBorder:"transparent",capsuleActiveBorder:"transparent",capsuleText:i.default[700],capsuleActiveText:n,badgeText:i.default[500],jumboBackground:i.default[50],jumboActiveBackground:o,jumboBorder:"transparent",jumboActiveBorder:i.primary[400],jumboDescription:i.default[500],jumboDescriptionActive:n,jumboDescriptionBackground:i.default[100],jumboDescriptionActiveBackground:i.primary[500]},tabList:{height:44,paddingHorizontal:t.lg,paddingVertical:0,paddingBottom:t.md,background:o},typography:{fontFamily:d.fontFamily,titleSize:r.sm,titleWeight:e.typography.weight.medium,titleActiveWeight:e.typography.weight.semiBold,descriptionSize:r.xs,jumboTitleSize:r.md,jumboLineHeight:Math.round(1.6*r.md),badgeTextSize:r.xxs},spacing:{navSidePaddingHorizontal:t.sm,navBottomMarginTop:t.sm,descriptionMarginTop:t.xxs,jumboDescriptionMarginTop:t.sm,badgeMarginTop:t.xs},indicator:{height:3,radius:999,width:40,offset:t.md},card:{radius:a.xs,paddingHorizontal:t.sm,paddingVertical:t.xs,height:30,marginHorizontal:t.md},capsule:{radius:999,paddingHorizontal:t.sm,paddingVertical:t.ssm},jumbo:{radius:16,paddingHorizontal:t.md,paddingVertical:t.sm,height:64,descriptionPaddingHorizontal:t.sm,descriptionPaddingVertical:t.xxs,descriptionRadius:10}}},useTabsTokens=exports.useTabsTokens=(0,_designSystem.createComponentTokensHook)("tabs",createTokens);
@@ -0,0 +1 @@
1
+ "use strict";
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.useTagTokens=exports.createTagTokens=void 0;var _designSystem=require("../../design-system"),_utils=require("../../utils");const buildTone=(e,i,n)=>({background:e[i][500],text:n??e[i].foreground??"#ffffff"}),createTagTokens=e=>{const{palette:i,radii:n,typography:t,opacity:a,spacing:o}=e;return{defaults:{type:"default",size:"small",plain:!1,round:!1,mark:!1,show:!0,pressedOpacity:a.pressed},layout:{container:{flexDirection:"row",alignItems:"center",alignSelf:"flex-start"},close:{alignItems:"center",justifyContent:"center"}},colors:{plainBackground:"#ffffff",toneMap:{default:buildTone(i,"default","#ffffff"),primary:buildTone(i,"primary"),success:buildTone(i,"success"),warning:buildTone(i,"warning",i.warning.foreground??i.warning[900]),danger:buildTone(i,"danger")}},typography:{fontFamily:t.fontFamily,lineHeightMultiplier:t.lineHeightMultiplier,fontWeight:t.weight.medium},sizing:{sizes:{mini:{fontSize:10,paddingHorizontal:4,paddingVertical:0,borderRadius:2,lineHeight:16},small:{fontSize:12,paddingHorizontal:4,paddingVertical:0,borderRadius:2,lineHeight:16},medium:{fontSize:12,paddingHorizontal:6,paddingVertical:2,borderRadius:4,lineHeight:16},large:{fontSize:14,paddingHorizontal:8,paddingVertical:4,borderRadius:4,lineHeight:16}},closeIconSize:12},radii:{round:n.pill,markLeading:n.none},borders:{width:(0,_utils.getHairlineWidth)()},spacing:{closeGap:2,closeHitSlop:o.sm}}};exports.createTagTokens=createTagTokens;const useTagTokens=exports.useTagTokens=(0,_designSystem.createComponentTokensHook)("tag",createTagTokens);
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.useTagTokens=exports.createTagTokens=void 0;var _designSystem=require("../../design-system"),_utils=require("../../utils");const buildTone=(e,i,n)=>({background:e[i][500],text:n??e[i].foreground??"#ffffff"}),createTagTokens=e=>{const{palette:i,radii:n,typography:t,opacity:a,spacing:r}=e,o=e.surface??"#ffffff";return{defaults:{type:"default",size:"small",plain:!1,round:!1,mark:!1,show:!0,pressedOpacity:a.pressed},layout:{container:{flexDirection:"row",alignItems:"center",alignSelf:"flex-start"},close:{alignItems:"center",justifyContent:"center"}},colors:{plainBackground:o,toneMap:{default:buildTone(i,"default","#ffffff"),primary:buildTone(i,"primary"),success:buildTone(i,"success"),warning:buildTone(i,"warning",i.warning.foreground??i.warning[900]),danger:buildTone(i,"danger")}},typography:{fontFamily:t.fontFamily,lineHeightMultiplier:t.lineHeightMultiplier,fontWeight:t.weight.medium},sizing:{sizes:{mini:{fontSize:10,paddingHorizontal:4,paddingVertical:0,borderRadius:2,lineHeight:16},small:{fontSize:12,paddingHorizontal:4,paddingVertical:0,borderRadius:2,lineHeight:16},medium:{fontSize:12,paddingHorizontal:6,paddingVertical:2,borderRadius:4,lineHeight:16},large:{fontSize:14,paddingHorizontal:8,paddingVertical:4,borderRadius:4,lineHeight:16}},closeIconSize:12},radii:{round:n.pill,markLeading:n.none},borders:{width:(0,_utils.getHairlineWidth)()},spacing:{closeGap:2,closeHitSlop:r.sm}}};exports.createTagTokens=createTagTokens;const useTagTokens=exports.useTagTokens=(0,_designSystem.createComponentTokensHook)("tag",createTagTokens);
@@ -0,0 +1 @@
1
+ "use strict";
@@ -0,0 +1 @@
1
+ "use strict";
@@ -1 +1 @@
1
- "use strict";function _react(){const e=_interopRequireWildcard(require("react"));return _react=function(){return e},e}function _reactNative(){const e=require("react-native");return _reactNative=function(){return e},e}Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.ToastContent=exports.Toast=void 0;var _Portal=_interopRequireDefault(require("../portal/Portal")),_safeAreaView=require("../safe-area-view"),_hooks=require("../../hooks"),_loading=_interopRequireDefault(require("../loading"));function _reactNativeSystemIcon(){const e=require("react-native-system-icon");return _reactNativeSystemIcon=function(){return e},e}var _validate=require("../../utils/validate"),_utils=require("../../utils"),_platform=require("../../platform"),_animation=require("../../hooks/animation"),_useLocale=require("../config-provider/useLocale"),_tokens=require("./tokens");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _interopRequireWildcard(e,t){if("function"==typeof WeakMap)var r=new WeakMap,a=new WeakMap;return(_interopRequireWildcard=function(e,t){if(!t&&e&&e.__esModule)return e;var n,i,o={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return o;if(n=t?a:r){if(n.has(e))return n.get(e);n.set(e,o)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((i=(n=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(i.get||i.set)?n(o,t,i):o[t]=e[t]);return o})(e,t)}function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var a in r)({}).hasOwnProperty.call(r,a)&&(e[a]=r[a])}return e},_extends.apply(null,arguments)}const RT=()=>!0,ToastContentImpl=e=>{const{visible:t,message:r,icon:a,type:n="info",iconSize:i,duration:o=2e3,position:s="middle",forbidClick:c=!1,overlay:u=!1,overlayStyle:l,closeOnClickOverlay:d=!1,closeOnClick:f=!1,loadingIndicator:_,safeAreaInsetTop:m,safeAreaInsetBottom:p,tokensOverride:v,style:g,textStyle:y,onClose:x,onOpen:b,onOpened:h,onClosed:T}=e,E=(0,_useLocale.useLocale)(),N=(0,_tokens.useToastTokens)(v),R=(0,_animation.useReducedMotion)(),{colors:k}=N,{height:O}=(0,_reactNative().useWindowDimensions)(),w=(0,_validate.isFiniteNumber)(o)?Math.max(0,o):0,[C,I]=(0,_react().useState)(t),M=(0,_react().useRef)(new(_reactNative().Animated.Value)(t?1:0)).current,P=(0,_react().useRef)(null),q=(0,_react().useRef)(0),z=(0,_react().useRef)(x);z.current=x;const A=(0,_react().useRef)(b);A.current=b;const W=(0,_react().useRef)(h);W.current=h;const V=(0,_react().useRef)(T);V.current=T;const{zIndex:D}=(0,_hooks.useOverlayStack)({visible:C,type:"toast"}),H=(0,_react().useRef)(t),j=(0,_react().useRef)(!1),F=O>0?Math.round(O*N.positionOffsetRatio):N.positionOffsetMin,L=void 0!==m?m:"top"===s,B=void 0!==p?p:"bottom"===s,G=(0,_react().useMemo)(()=>"top"===s?{justifyContent:"flex-start",paddingTop:F}:"bottom"===s?{justifyContent:"flex-end",paddingBottom:F}:{justifyContent:"center"},[s,F]);(0,_react().useEffect)(()=>{q.current+=1;const e=q.current;P.current?.stop();const r=R?0:N.animationDuration;t?(I(!0),P.current=_reactNative().Animated.timing(M,{toValue:1,duration:r,easing:_reactNative().Easing.out(_reactNative().Easing.cubic),useNativeDriver:_platform.nativeDriverEnabled,isInteraction:!1}),P.current.start()):(P.current=_reactNative().Animated.timing(M,{toValue:0,duration:r,easing:_reactNative().Easing.out(_reactNative().Easing.cubic),useNativeDriver:_platform.nativeDriverEnabled,isInteraction:!1}),P.current.start(({finished:t})=>{t&&e===q.current&&I(!1)}))},[M,R,N.animationDuration,t]),(0,_react().useEffect)(()=>()=>{P.current?.stop()},[]),(0,_react().useEffect)(()=>{if(!t||w<=0)return;const e=setTimeout(()=>{z.current?.()},w);return()=>clearTimeout(e)},[w,t]),(0,_react().useEffect)(()=>{if(!t||!(0,_validate.isText)(r))return;const e=String(r);e&&_reactNative().AccessibilityInfo.announceForAccessibility?.(e)},[r,t]);const J=R?0:N.animationDuration;(0,_react().useEffect)(()=>{let e=null;if(t){if(j.current=!1,!H.current&&(A.current?.(),W.current)){const t=W.current;e=setTimeout(t,J)}}else H.current&&(j.current=!0);return H.current=t,()=>{e&&clearTimeout(e)}},[J,t]),(0,_react().useEffect)(()=>{!C&&j.current&&(j.current=!1,V.current?.())},[C]);const K=(0,_react().useRef)(()=>z.current?.()).current,Q=(0,_hooks.useAriaPress)({disabled:!f,onPress:K,extraProps:{accessibilityRole:f?"button":"alert",accessibilityHint:f?E?.vanToast?.closeHint??"Double-tap to dismiss":void 0,accessibilityLiveRegion:"assertive"}}),U=(0,_react().useMemo)(()=>{if(a)return a;const e=i??N.iconSize;switch(n){case"success":return _react().default.createElement(_reactNativeSystemIcon().Checked,{size:e,fill:k.text,color:k.text});case"fail":return _react().default.createElement(_reactNativeSystemIcon().Close,{size:e,fill:k.text,color:k.text});case"loading":return _??_react().default.createElement(_loading.default,{color:k.text,size:e});default:return null}},[k.text,a,i,_,N.iconSize,n]),X=(0,_react().useMemo)(()=>({marginBottom:N.gap}),[N.gap]),Y=(0,_react().useMemo)(()=>({color:k.text,fontSize:N.fontSize,lineHeight:N.lineHeight,fontFamily:N.fontFamily}),[k.text,N.fontSize,N.fontFamily,N.lineHeight]),Z="info"===n&&!U,$=(0,_react().useMemo)(()=>Z?{minWidth:N.textMinWidth,minHeight:0,paddingVertical:N.textPaddingVertical,paddingHorizontal:N.textPaddingHorizontal}:{minWidth:N.defaultWidth,minHeight:N.defaultMinHeight,padding:N.defaultPadding},[Z,N.defaultMinHeight,N.defaultPadding,N.defaultWidth,N.textMinWidth,N.textPaddingHorizontal,N.textPaddingVertical]),ee=(0,_react().useMemo)(()=>({borderRadius:N.radius,opacity:f&&Q.states.pressed?N.pressedOpacity:M,backgroundColor:N.colors.variants[n],maxWidth:N.maxWidth,...$}),[M,$,f,Q.states.pressed,N.colors.variants,N.maxWidth,N.pressedOpacity,N.radius,n]);if(!C)return null;const te=(0,_validate.isRenderable)(r)&&("string"!=typeof r||""!==r);return _react().default.createElement(_reactNative().View,{style:[S.b,{backgroundColor:N.colors.transparent},G,D?{zIndex:D}:void 0],pointerEvents:c||u||f?"auto":"none"},(u||c)&&_react().default.createElement(_reactNative().Pressable,{testID:"rv-toast-overlay",style:[S.o,{backgroundColor:N.colors.transparent},u&&{backgroundColor:k.backdrop},l],pointerEvents:"auto",onPress:u&&d?K:void 0,onStartShouldSetResponder:RT,onMoveShouldSetResponder:RT}),L&&_react().default.createElement(_safeAreaView.SafeAreaView,{edge:"top",pointerEvents:"none"}),_react().default.createElement(_reactNative().Pressable,_extends({disabled:!f},Q.interactionProps),_react().default.createElement(_reactNative().Animated.View,{renderToHardwareTextureAndroid:!0,shouldRasterizeIOS:!0,style:[S.t,ee,g]},U&&_react().default.createElement(_reactNative().View,{style:X},(0,_validate.isText)(U)?(0,_utils.renderTextOrNode)(U,[{color:k.text,fontSize:N.iconSize}]):U),te&&((0,_validate.isText)(r)?(0,_utils.renderTextOrNode)(r,[S.m,Y,y]):_react().default.createElement(_reactNative().View,{style:S.mw},r)))),B&&_react().default.createElement(_safeAreaView.SafeAreaView,{edge:"bottom",pointerEvents:"none"}))},ToastContent=exports.ToastContent=_react().default.memo(ToastContentImpl),ToastImpl=e=>_react().default.createElement(_Portal.default,null,_react().default.createElement(ToastContent,e)),Toast=exports.Toast=_react().default.memo(ToastImpl),S=_reactNative().StyleSheet.create({b:{flex:1,alignItems:"center"},o:{..._reactNative().StyleSheet.absoluteFillObject},t:{alignItems:"center",justifyContent:"center"},m:{textAlign:"center"},mw:{alignItems:"center"}});var _default=exports.default=Toast;
1
+ "use strict";function _react(){const e=_interopRequireWildcard(require("react"));return _react=function(){return e},e}function _reactNative(){const e=require("react-native");return _reactNative=function(){return e},e}Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.ToastContent=exports.Toast=void 0;var _Portal=_interopRequireDefault(require("../portal/Portal")),_safeAreaView=require("../safe-area-view"),_hooks=require("../../hooks"),_loading=_interopRequireDefault(require("../loading"));function _reactNativeSystemIcon(){const e=require("react-native-system-icon");return _reactNativeSystemIcon=function(){return e},e}var _validate=require("../../utils/validate"),_utils=require("../../utils"),_platform=require("../../platform"),_animation=require("../../hooks/animation"),_useLocale=require("../config-provider/useLocale"),_tokens=require("./tokens");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _interopRequireWildcard(e,t){if("function"==typeof WeakMap)var r=new WeakMap,a=new WeakMap;return(_interopRequireWildcard=function(e,t){if(!t&&e&&e.__esModule)return e;var n,i,o={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return o;if(n=t?a:r){if(n.has(e))return n.get(e);n.set(e,o)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((i=(n=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(i.get||i.set)?n(o,t,i):o[t]=e[t]);return o})(e,t)}function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var a in r)({}).hasOwnProperty.call(r,a)&&(e[a]=r[a])}return e},_extends.apply(null,arguments)}const RT=()=>!0,ToastContentImpl=e=>{const{visible:t,message:r,icon:a,type:n="info",iconSize:i,duration:o=2e3,position:s="middle",forbidClick:c=!1,overlay:u=!1,overlayStyle:l,closeOnClickOverlay:d=!1,closeOnClick:f=!1,loadingIndicator:_,safeAreaInsetTop:m,safeAreaInsetBottom:p,tokensOverride:v,style:g,textStyle:y,onClose:x,onOpen:b,onOpened:h,onClosed:T}=e,E=(0,_useLocale.useLocale)(),N=(0,_tokens.useToastTokens)(v),R=(0,_animation.useReducedMotion)(),{colors:k}=N,{height:O}=(0,_reactNative().useWindowDimensions)(),w=(0,_validate.isFiniteNumber)(o)?Math.max(0,o):0,[C,I]=(0,_react().useState)(t),M=(0,_react().useRef)(new(_reactNative().Animated.Value)(t?1:0)).current,P=(0,_react().useRef)(null),q=(0,_react().useRef)(0),z=(0,_react().useRef)(x);z.current=x;const A=(0,_react().useRef)(b);A.current=b;const W=(0,_react().useRef)(h);W.current=h;const V=(0,_react().useRef)(T);V.current=T;const{zIndex:D}=(0,_hooks.useOverlayStack)({visible:C,type:"toast"}),H=(0,_react().useRef)(t),j=(0,_react().useRef)(!1),F=O>0?Math.round(O*N.positionOffsetRatio):N.positionOffsetMin,L=void 0!==m?m:"top"===s,B=void 0!==p?p:"bottom"===s,G=(0,_react().useMemo)(()=>"top"===s?{justifyContent:"flex-start",paddingTop:F}:"bottom"===s?{justifyContent:"flex-end",paddingBottom:F}:{justifyContent:"center"},[s,F]);(0,_react().useEffect)(()=>{q.current+=1;const e=q.current;P.current?.stop();const r=R?0:N.animationDuration;t?(I(!0),P.current=_reactNative().Animated.timing(M,{toValue:1,duration:r,easing:_reactNative().Easing.out(_reactNative().Easing.cubic),useNativeDriver:_platform.nativeDriverEnabled,isInteraction:!1}),P.current.start()):(P.current=_reactNative().Animated.timing(M,{toValue:0,duration:r,easing:_reactNative().Easing.out(_reactNative().Easing.cubic),useNativeDriver:_platform.nativeDriverEnabled,isInteraction:!1}),P.current.start(({finished:t})=>{t&&e===q.current&&I(!1)}))},[M,R,N.animationDuration,t]),(0,_react().useEffect)(()=>()=>{P.current?.stop()},[]),(0,_react().useEffect)(()=>{if(!t||w<=0)return;const e=setTimeout(()=>{z.current?.()},w);return()=>clearTimeout(e)},[w,t]),(0,_react().useEffect)(()=>{if(!t||!(0,_validate.isText)(r))return;const e=String(r);e&&_reactNative().AccessibilityInfo.announceForAccessibility?.(e)},[r,t]);const J=R?0:N.animationDuration;(0,_react().useEffect)(()=>{let e=null;return t?(j.current=!1,!H.current&&(A.current?.(),W.current&&(e=setTimeout(W.current,J)))):H.current&&(j.current=!0),H.current=t,()=>{e&&clearTimeout(e)}},[J,t]),(0,_react().useEffect)(()=>{!C&&j.current&&(j.current=!1,V.current?.())},[C]);const K=(0,_react().useRef)(()=>z.current?.()).current,Q=(0,_hooks.useAriaPress)({disabled:!f,onPress:K,extraProps:{accessibilityRole:f?"button":"alert",accessibilityHint:f?E?.vanToast?.closeHint??"Double-tap to dismiss":void 0,accessibilityLiveRegion:"assertive"}}),U=(0,_react().useMemo)(()=>{if(a)return a;const e=i??N.iconSize;switch(n){case"success":return _react().default.createElement(_reactNativeSystemIcon().Checked,{size:e,fill:k.text,color:k.text});case"fail":return _react().default.createElement(_reactNativeSystemIcon().Close,{size:e,fill:k.text,color:k.text});case"loading":return _??_react().default.createElement(_loading.default,{color:k.text,size:e});default:return null}},[k.text,a,i,_,N.iconSize,n]),X=(0,_react().useMemo)(()=>({marginBottom:N.gap}),[N.gap]),Y=(0,_react().useMemo)(()=>({color:k.text,fontSize:N.fontSize,lineHeight:N.lineHeight,fontFamily:N.fontFamily}),[k.text,N.fontSize,N.fontFamily,N.lineHeight]),Z="info"===n&&!U,$=(0,_react().useMemo)(()=>Z?{minWidth:N.textMinWidth,minHeight:0,paddingVertical:N.textPaddingVertical,paddingHorizontal:N.textPaddingHorizontal}:{minWidth:N.defaultWidth,minHeight:N.defaultMinHeight,padding:N.defaultPadding},[Z,N.defaultMinHeight,N.defaultPadding,N.defaultWidth,N.textMinWidth,N.textPaddingHorizontal,N.textPaddingVertical]),ee=(0,_react().useMemo)(()=>({borderRadius:N.radius,opacity:f&&Q.states.pressed?N.pressedOpacity:M,backgroundColor:N.colors.variants[n],maxWidth:N.maxWidth,...$}),[M,$,f,Q.states.pressed,N.colors.variants,N.maxWidth,N.pressedOpacity,N.radius,n]);if(!C)return null;const te=(0,_validate.isRenderable)(r)&&("string"!=typeof r||""!==r);return _react().default.createElement(_reactNative().View,{style:[S.b,{backgroundColor:N.colors.transparent},G,D?{zIndex:D}:void 0],pointerEvents:c||u||f?"auto":"none"},(u||c)&&_react().default.createElement(_reactNative().Pressable,{testID:"rv-toast-overlay",style:[S.o,{backgroundColor:N.colors.transparent},u&&{backgroundColor:k.backdrop},l],pointerEvents:"auto",onPress:u&&d?K:void 0,onStartShouldSetResponder:RT,onMoveShouldSetResponder:RT}),L&&_react().default.createElement(_safeAreaView.SafeAreaView,{edge:"top",pointerEvents:"none"}),_react().default.createElement(_reactNative().Pressable,_extends({disabled:!f},Q.interactionProps),_react().default.createElement(_reactNative().Animated.View,{renderToHardwareTextureAndroid:!0,shouldRasterizeIOS:!0,style:[S.t,ee,g]},U&&_react().default.createElement(_reactNative().View,{style:X},(0,_validate.isText)(U)?(0,_utils.renderTextOrNode)(U,[{color:k.text,fontSize:N.iconSize}]):U),te&&((0,_validate.isText)(r)?(0,_utils.renderTextOrNode)(r,[S.m,Y,y]):_react().default.createElement(_reactNative().View,{style:S.mw},r)))),B&&_react().default.createElement(_safeAreaView.SafeAreaView,{edge:"bottom",pointerEvents:"none"}))},ToastContent=exports.ToastContent=_react().default.memo(ToastContentImpl),ToastImpl=e=>_react().default.createElement(_Portal.default,null,_react().default.createElement(ToastContent,e)),Toast=exports.Toast=_react().default.memo(ToastImpl),S=_reactNative().StyleSheet.create({b:{flex:1,alignItems:"center"},o:{..._reactNative().StyleSheet.absoluteFillObject},t:{alignItems:"center",justifyContent:"center"},m:{textAlign:"center"},mw:{alignItems:"center"}});var _default=exports.default=Toast;
@@ -0,0 +1 @@
1
+ "use strict";
@@ -0,0 +1 @@
1
+ "use strict";
@@ -0,0 +1 @@
1
+ "use strict";
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.themePresets=exports.getThemePreset=void 0;var _tokens=require("./tokens");const darkOverrides={palette:{default:{50:"#05070b",100:"#0b0f16",200:"#131a23",300:"#1c2632",400:"#263342",500:"#35455a",600:"#4b5d73",700:"#5f758c",800:"#7e91a7",900:"#b2c1cf",foreground:"#f4f6fb"},primary:{50:"#141632",100:"#161c49",200:"#152262",300:"#162d88",400:"#1d3ca6",500:"#3055d8",600:"#4c6ef5",700:"#7d93ff",800:"#a8b5ff",900:"#d8e0ff",foreground:"#f6f8ff"},info:{50:"#101a2c",100:"#0f203e",200:"#0d2a55",300:"#12376f",400:"#1d4d9a",500:"#2a66c3",600:"#3f86ec",700:"#69a6ff",800:"#99c3ff",900:"#d7e6ff",foreground:"#f4f8ff"},success:{50:"#07160f",100:"#0b2416",200:"#123221",300:"#15452c",400:"#1d5e3a",500:"#27784a",600:"#32a064",700:"#5ac68f",800:"#8adeb1",900:"#c8f3d9",foreground:"#effff5"},warning:{50:"#2e1405",100:"#3b1b08",200:"#52260c",300:"#6b3311",400:"#8a4416",500:"#ab561c",600:"#cc6a1f",700:"#e78a3a",800:"#f5a85f",900:"#ffd9a8",foreground:"#ffffff"},danger:{50:"#2d090e",100:"#3a0d13",200:"#50121c",300:"#6a1a27",400:"#882434",500:"#a92c40",600:"#cb3750",700:"#ef4b63",800:"#ff7d8f",900:"#ffc6d0",foreground:"#fff5f6"}}},auroraOverrides={palette:{default:{50:"#f4fbff",100:"#e3f5ff",200:"#d1eef9",300:"#b8e1ef",400:"#a2d1e2",500:"#89bbcf",600:"#6ba3b8",700:"#508aa0",800:"#3a6f84",900:"#254a57",foreground:"#0b1d23"},primary:{50:"#e8fbff",100:"#c1f4ff",200:"#96e7ff",300:"#6bdbff",400:"#40cfff",500:"#18b8f2",600:"#1296d3",700:"#0d74ad",800:"#095885",900:"#053658"},success:{50:"#f1fff6",100:"#cff9e3",200:"#a2f0ca",300:"#75e4b1",400:"#45d799",500:"#1dbe80",600:"#129c67",700:"#097852",800:"#05583b",900:"#033427"}},radii:{sm:8,md:12,lg:18},typography:{fontFamily:'System, "Helvetica Neue", "PingFang SC"',lineHeightMultiplier:1.25}},themePresets=exports.themePresets={light:_tokens.defaultTokens,dark:(0,_tokens.createTokens)(darkOverrides),aurora:(0,_tokens.createTokens)(auroraOverrides)},getThemePreset=e=>themePresets[e];exports.getThemePreset=getThemePreset;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.themePresets=exports.getThemePreset=void 0;var _tokens=require("./tokens");const darkOverrides={palette:{default:{50:"#05070b",100:"#0b0f16",200:"#131a23",300:"#1c2632",400:"#263342",500:"#35455a",600:"#4b5d73",700:"#5f758c",800:"#7e91a7",900:"#b2c1cf",foreground:"#f4f6fb"},primary:{50:"#141632",100:"#161c49",200:"#152262",300:"#162d88",400:"#1d3ca6",500:"#3055d8",600:"#4c6ef5",700:"#7d93ff",800:"#a8b5ff",900:"#d8e0ff",foreground:"#f6f8ff"},info:{50:"#101a2c",100:"#0f203e",200:"#0d2a55",300:"#12376f",400:"#1d4d9a",500:"#2a66c3",600:"#3f86ec",700:"#69a6ff",800:"#99c3ff",900:"#d7e6ff",foreground:"#f4f8ff"},success:{50:"#07160f",100:"#0b2416",200:"#123221",300:"#15452c",400:"#1d5e3a",500:"#27784a",600:"#32a064",700:"#5ac68f",800:"#8adeb1",900:"#c8f3d9",foreground:"#effff5"},warning:{50:"#2e1405",100:"#3b1b08",200:"#52260c",300:"#6b3311",400:"#8a4416",500:"#ab561c",600:"#cc6a1f",700:"#e78a3a",800:"#f5a85f",900:"#ffd9a8",foreground:"#ffffff"},danger:{50:"#2d090e",100:"#3a0d13",200:"#50121c",300:"#6a1a27",400:"#882434",500:"#a92c40",600:"#cb3750",700:"#ef4b63",800:"#ff7d8f",900:"#ffc6d0",foreground:"#fff5f6"}},surface:"#131a23"},auroraOverrides={palette:{default:{50:"#f4fbff",100:"#e3f5ff",200:"#d1eef9",300:"#b8e1ef",400:"#a2d1e2",500:"#89bbcf",600:"#6ba3b8",700:"#508aa0",800:"#3a6f84",900:"#254a57",foreground:"#0b1d23"},primary:{50:"#e8fbff",100:"#c1f4ff",200:"#96e7ff",300:"#6bdbff",400:"#40cfff",500:"#18b8f2",600:"#1296d3",700:"#0d74ad",800:"#095885",900:"#053658"},success:{50:"#f1fff6",100:"#cff9e3",200:"#a2f0ca",300:"#75e4b1",400:"#45d799",500:"#1dbe80",600:"#129c67",700:"#097852",800:"#05583b",900:"#033427"}},radii:{sm:8,md:12,lg:18},typography:{fontFamily:'System, "Helvetica Neue", "PingFang SC"',lineHeightMultiplier:1.25}},themePresets=exports.themePresets={light:_tokens.defaultTokens,dark:(0,_tokens.createTokens)(darkOverrides),aurora:(0,_tokens.createTokens)(auroraOverrides)},getThemePreset=e=>themePresets[e];exports.getThemePreset=getThemePreset;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.defaultTokens=exports.defaultFoundations=exports.createTokens=void 0;var _deepMerge=require("../utils/deepMerge");const defaultFoundations=exports.defaultFoundations={palette:{default:{50:"#f7f8fa",100:"#f1f2f5",200:"#ebedf0",300:"#c8ccd6",400:"#a8aebb",500:"#888f9f",600:"#6d7483",700:"#505560",800:"#353840",900:"#191a1f",foreground:"#222222"},primary:{50:"#f5f8ff",100:"#e1e9ff",200:"#c2d4ff",300:"#9bb8ff",400:"#6d94ff",500:"#4770ff",600:"#2f51e0",700:"#243eb1",800:"#1a2d82",900:"#111d55",foreground:"#ffffff"},info:{50:"#f0f8ff",100:"#d9ecff",200:"#b9dcff",300:"#8bc3ff",400:"#5aa7ff",500:"#328dff",600:"#1d6fde",700:"#1753a9",800:"#113a75",900:"#0a2143",foreground:"#ffffff"},success:{50:"#f2fbf6",100:"#dcf5e7",200:"#b8e9cf",300:"#8ddbb1",400:"#5fcf93",500:"#31c174",600:"#1da45e",700:"#128047",800:"#0a5c32",900:"#043719",foreground:"#ffffff"},warning:{50:"#fff8ec",100:"#ffecc7",200:"#ffd595",300:"#ffbc63",400:"#ffa035",500:"#ff8414",600:"#d9650b",700:"#ad4905",800:"#7f3101",900:"#4d1c00",foreground:"#ffffff"},danger:{50:"#fff1f2",100:"#ffd8dd",200:"#ffadb7",300:"#ff8090",400:"#ff556c",500:"#f2324c",600:"#ce1733",700:"#a30f27",800:"#770819",900:"#47040b",foreground:"#ffffff"}},spacing:{none:0,xxs:2,xs:4,ssm:6,sm:8,md:12,lg:16,xl:20,xxl:28},radii:{none:0,xs:4,sm:6,md:8,lg:12,pill:999,full:9999},fontSize:{xxs:10,xs:12,sm:14,md:16,lg:18,xl:20},typography:{fontFamily:"System",weight:{regular:"400",medium:"500",semiBold:"600",bold:"700"},lineHeightMultiplier:1.2},opacity:{disabled:.45,loading:.65,pressed:.85}},createTokens=f=>f?(0,_deepMerge.deepMerge)(defaultFoundations,f):defaultFoundations;exports.createTokens=createTokens;const defaultTokens=exports.defaultTokens=defaultFoundations;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.defaultTokens=exports.defaultFoundations=exports.createTokens=void 0;var _deepMerge=require("../utils/deepMerge");const defaultFoundations=exports.defaultFoundations={palette:{default:{50:"#f7f8fa",100:"#f1f2f5",200:"#ebedf0",300:"#c8ccd6",400:"#a8aebb",500:"#888f9f",600:"#6d7483",700:"#505560",800:"#353840",900:"#191a1f",foreground:"#222222"},primary:{50:"#f5f8ff",100:"#e1e9ff",200:"#c2d4ff",300:"#9bb8ff",400:"#6d94ff",500:"#4770ff",600:"#2f51e0",700:"#243eb1",800:"#1a2d82",900:"#111d55",foreground:"#ffffff"},info:{50:"#f0f8ff",100:"#d9ecff",200:"#b9dcff",300:"#8bc3ff",400:"#5aa7ff",500:"#328dff",600:"#1d6fde",700:"#1753a9",800:"#113a75",900:"#0a2143",foreground:"#ffffff"},success:{50:"#f2fbf6",100:"#dcf5e7",200:"#b8e9cf",300:"#8ddbb1",400:"#5fcf93",500:"#31c174",600:"#1da45e",700:"#128047",800:"#0a5c32",900:"#043719",foreground:"#ffffff"},warning:{50:"#fff8ec",100:"#ffecc7",200:"#ffd595",300:"#ffbc63",400:"#ffa035",500:"#ff8414",600:"#d9650b",700:"#ad4905",800:"#7f3101",900:"#4d1c00",foreground:"#ffffff"},danger:{50:"#fff1f2",100:"#ffd8dd",200:"#ffadb7",300:"#ff8090",400:"#ff556c",500:"#f2324c",600:"#ce1733",700:"#a30f27",800:"#770819",900:"#47040b",foreground:"#ffffff"}},spacing:{none:0,xxs:2,xs:4,ssm:6,sm:8,md:12,lg:16,xl:20,xxl:28},radii:{none:0,xs:4,sm:6,md:8,lg:12,pill:999,full:9999},fontSize:{xxs:10,xs:12,sm:14,md:16,lg:18,xl:20},typography:{fontFamily:"System",weight:{regular:"400",medium:"500",semiBold:"600",bold:"700"},lineHeightMultiplier:1.2},opacity:{disabled:.45,loading:.65,pressed:.85},surface:"#ffffff"},createTokens=f=>f?(0,_deepMerge.deepMerge)(defaultFoundations,f):defaultFoundations;exports.createTokens=createTokens;const defaultTokens=exports.defaultTokens=defaultFoundations;
@@ -1 +1 @@
1
- function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var o=arguments[t];for(var r in o)({}).hasOwnProperty.call(o,r)&&(e[r]=o[r])}return e},_extends.apply(null,arguments)}import React,{useCallback,useMemo,useRef}from"react";import{Pressable,View}from"react-native";import{Close}from"react-native-system-icon";import{useAriaPress}from"../../hooks";import{createHairlineView,isRenderable,isText,renderTextOrNode}from"../../utils";import Loading from"../loading";import Popup from"../popup";import{useActionSheetTokens}from"./tokens";const defaultCloseIcon=React.createElement(Close,{size:18}),ActionSheetHeader=React.memo(({title:e,closeable:t,closeIcon:o,tokens:r,onClose:n})=>{const a=useAriaPress({onPress:n}),{colors:l,typography:c}=r;return React.createElement(View,{style:r.layout.header},React.createElement(View,{style:r.layout.titleContainer},isText(e)?renderTextOrNode(e,[r.layout.title,{color:l.title,fontSize:c.title}]):React.createElement(View,{style:r.layout.titleNode},e)),t&&React.createElement(Pressable,_extends({style:r.layout.closeButton,accessibilityRole:"button",hitSlop:8},a.interactionProps),React.isValidElement(o)?React.cloneElement(o,{fill:l.description,color:l.description}):renderTextOrNode(o,[{color:l.description}])))}),ActionSheetItem=React.memo(({action:e,index:t,tokens:o,onActionPress:r})=>{const{disabled:n,loading:a,name:l,subname:c,icon:s}=e,{colors:i,spacing:u,typography:d}=o,m=useAriaPress({disabled:!!n||!!a,onPress:useCallback(()=>r(e,t),[e,t,r]),extraProps:{accessibilityRole:"menuitem",accessibilityLabel:isText(l)?String(l):void 0,accessibilityState:{disabled:!!n,busy:!!a},testID:`rv-action-sheet-item-${t}`}});return React.createElement(Pressable,_extends({style:({pressed:t})=>[o.layout.item,!!s&&o.layout.itemWithIcon,{paddingVertical:u.vertical,paddingHorizontal:u.horizontal,backgroundColor:!t||e.disabled||e.loading?i.itemBackground:i.itemPressedBackground},e.style]},m.interactionProps),!!s&&React.createElement(View,{style:o.layout.icon},isText(s)?renderTextOrNode(s,[{color:i.item}]):s),a?React.createElement(Loading,{size:20}):isRenderable(l)?React.createElement(View,{style:o.layout.itemTextWrapper},renderTextOrNode(l,[o.layout.itemText,{color:e.disabled?i.disabled:e.color??i.item,fontSize:d.item}]),isRenderable(c)&&(isText(c)?renderTextOrNode(c,[o.layout.subname,{color:i.subitem}]):React.createElement(View,{style:o.layout.subnameNode},c))):null)}),ActionSheetCancel=React.memo(({cancelText:e,tokens:t,onPress:o})=>{const{colors:r,spacing:n,typography:a}=t,l=useAriaPress({onPress:o,extraProps:{accessibilityRole:"button",testID:"rv-action-sheet-cancel"}});return React.createElement(React.Fragment,null,React.createElement(View,{style:[t.layout.cancelGap,{height:n.cancelGap,backgroundColor:r.cancelGapBackground}]}),React.createElement(Pressable,_extends({style:[t.layout.cancel,{paddingVertical:n.vertical,paddingHorizontal:n.horizontal,backgroundColor:r.cancelBackground}]},l.interactionProps),renderTextOrNode(e,[t.layout.cancelText,{color:r.cancel,fontSize:a.item}])))}),ActionSheetImpl=e=>{const{tokensOverride:t,visible:o,title:r,description:n,cancelText:a,actions:l=[],closeOnClickAction:c,closeOnSelect:s,closeable:i,closeIcon:u=defaultCloseIcon,beforeClose:d,onSelect:m,onCancel:y,onClose:p,children:b,round:R,safeAreaInsetBottom:f,overlay:k,lockScroll:h,style:g,...x}=e,C=useActionSheetTokens(t),A=i??C.defaults.closeable,S=R??C.defaults.round,P=f??C.defaults.safeAreaInsetBottom,E=k??C.defaults.overlay,T=h??C.defaults.lockScroll,w=c??s??C.defaults.closeOnClickAction,V=isRenderable(r),v=isRenderable(n),I=isRenderable(a),O=useRef("close"),N=useRef(!1),z=useRef(d);z.current=d;const B=useRef(p);B.current=p;const _=useRef(y);_.current=y;const H=useRef(m);H.current=m;const G=useCallback(async e=>{if(!z.current)return!0;try{return!1!==await z.current(e)}catch{return!0}},[]),L=useCallback(e=>{if(B.current)return"cancel"===e&&_.current?.(),void B.current();_.current?.()},[]),j=useCallback(async e=>{if(!N.current){N.current=!0;try{if(!await G(e))return;L(e)}finally{N.current=!1}}},[L,G]),D=useCallback(e=>(O.current=e,G(e)),[G]),M=useCallback(()=>{L(O.current)},[L]),W=useCallback((e,t)=>{e.disabled||e.loading||(e.onPress?.(e),e.callback?.(e),H.current?.(e,t),w&&j("action"))},[j,w]),F=useMemo(()=>[C.layout.popup,g],[C.layout.popup,g]);return React.createElement(Popup,_extends({visible:o,placement:"bottom",round:S,safeAreaInsetTop:V&&A,safeAreaInsetBottom:P,overlay:E,lockScroll:T,beforeClose:D,onClose:M,style:F},x),React.createElement(View,{accessibilityRole:"menu",style:[C.layout.panel,{backgroundColor:C.colors.background}]},V&&React.createElement(ActionSheetHeader,{title:r,closeable:A,closeIcon:u,tokens:C,onClose:()=>{j("close-icon")}}),v&&React.createElement(View,{style:C.layout.descriptionContainer},isText(n)?renderTextOrNode(n,[C.layout.description,{color:C.colors.description,fontSize:C.typography.description}]):React.createElement(View,{style:C.layout.descriptionNode},n),React.createElement(View,{style:createHairlineView({position:"bottom",color:C.colors.border,left:0,right:0})})),React.createElement(View,{style:C.layout.actions},l.map((e,t)=>React.createElement(ActionSheetItem,{key:e.key??t,action:e,index:t,tokens:C,onActionPress:W}))),b,I&&React.createElement(ActionSheetCancel,{cancelText:a,tokens:C,onPress:()=>{j("cancel")}})))},ActionSheet=React.memo(ActionSheetImpl);ActionSheet.displayName="ActionSheet";export default ActionSheet;
1
+ function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var o=arguments[t];for(var r in o)({}).hasOwnProperty.call(o,r)&&(e[r]=o[r])}return e},_extends.apply(null,arguments)}import React,{useCallback,useMemo,useRef}from"react";import{Platform,Pressable,View}from"react-native";import{Close}from"react-native-system-icon";import{useAriaPress}from"../../hooks";import{createHairlineView,isRenderable,isText,renderTextOrNode}from"../../utils";import Loading from"../loading";import Popup from"../popup";import{useActionSheetTokens}from"./tokens";const defaultCloseIcon=React.createElement(Close,{size:18}),ActionSheetHeader=React.memo(({title:e,closeable:t,closeIcon:o,tokens:r,onClose:a})=>{const n=useAriaPress({onPress:a}),{colors:l,typography:c}=r;return React.createElement(View,{style:r.layout.header},React.createElement(View,{style:r.layout.titleContainer},isText(e)?renderTextOrNode(e,[r.layout.title,{color:l.title,fontSize:c.title}]):React.createElement(View,{style:r.layout.titleNode},e)),t&&React.createElement(Pressable,_extends({style:r.layout.closeButton,accessibilityRole:"button",hitSlop:8},n.interactionProps),React.isValidElement(o)?React.cloneElement(o,{fill:l.description,color:l.description}):renderTextOrNode(o,[{color:l.description}])))}),ActionSheetItem=React.memo(({action:e,index:t,tokens:o,onActionPress:r})=>{const{disabled:a,loading:n,name:l,subname:c,icon:s}=e,{colors:i,spacing:u,typography:d}=o,m=useAriaPress({disabled:!!a||!!n,onPress:useCallback(()=>r(e,t),[e,t,r]),extraProps:{accessibilityRole:"web"===Platform.OS?"menuitem":"button",accessibilityLabel:isText(l)?String(l):void 0,accessibilityState:{disabled:!!a,busy:!!n},testID:`rv-action-sheet-item-${t}`}});return React.createElement(Pressable,_extends({style:({pressed:t})=>[o.layout.item,!!s&&o.layout.itemWithIcon,{paddingVertical:u.vertical,paddingHorizontal:u.horizontal,backgroundColor:!t||e.disabled||e.loading?i.itemBackground:i.itemPressedBackground},e.style]},m.interactionProps),!!s&&React.createElement(View,{style:o.layout.icon},isText(s)?renderTextOrNode(s,[{color:i.item}]):s),n?React.createElement(Loading,{size:20}):isRenderable(l)?React.createElement(View,{style:o.layout.itemTextWrapper},renderTextOrNode(l,[o.layout.itemText,{color:e.disabled?i.disabled:e.color??i.item,fontSize:d.item}]),isRenderable(c)&&(isText(c)?renderTextOrNode(c,[o.layout.subname,{color:i.subitem}]):React.createElement(View,{style:o.layout.subnameNode},c))):null)}),ActionSheetCancel=React.memo(({cancelText:e,tokens:t,onPress:o})=>{const{colors:r,spacing:a,typography:n}=t,l=useAriaPress({onPress:o,extraProps:{accessibilityRole:"button",testID:"rv-action-sheet-cancel"}});return React.createElement(React.Fragment,null,React.createElement(View,{style:[t.layout.cancelGap,{height:a.cancelGap,backgroundColor:r.cancelGapBackground}]}),React.createElement(Pressable,_extends({style:[t.layout.cancel,{paddingVertical:a.vertical,paddingHorizontal:a.horizontal,backgroundColor:r.cancelBackground}]},l.interactionProps),renderTextOrNode(e,[t.layout.cancelText,{color:r.cancel,fontSize:n.item}])))}),ActionSheetImpl=e=>{const{tokensOverride:t,visible:o,title:r,description:a,cancelText:n,actions:l=[],closeOnClickAction:c,closeOnSelect:s,closeable:i,closeIcon:u=defaultCloseIcon,beforeClose:d,onSelect:m,onCancel:y,onClose:p,children:b,round:f,safeAreaInsetBottom:R,overlay:k,lockScroll:h,style:g,...x}=e,C=useActionSheetTokens(t),P=i??C.defaults.closeable,S=f??C.defaults.round,A=R??C.defaults.safeAreaInsetBottom,E=k??C.defaults.overlay,T=h??C.defaults.lockScroll,w=c??s??C.defaults.closeOnClickAction,V=isRenderable(r),v=isRenderable(a),I=isRenderable(n),O=useRef("close"),N=useRef(!1),z=useRef(d);z.current=d;const B=useRef(p);B.current=p;const _=useRef(y);_.current=y;const H=useRef(m);H.current=m;const G=useCallback(async e=>{if(!z.current)return!0;try{return!1!==await z.current(e)}catch{return!0}},[]),L=useCallback(e=>{if(B.current)return"cancel"===e&&_.current?.(),void B.current();_.current?.()},[]),j=useCallback(async e=>{if(!N.current){N.current=!0;try{if(!await G(e))return;L(e)}finally{N.current=!1}}},[L,G]),D=useCallback(e=>(O.current=e,G(e)),[G]),M=useCallback(()=>{L(O.current)},[L]),W=useCallback((e,t)=>{e.disabled||e.loading||(e.onPress?.(e),e.callback?.(e),H.current?.(e,t),w&&j("action"))},[j,w]),F=useMemo(()=>[C.layout.popup,g],[C.layout.popup,g]);return React.createElement(Popup,_extends({visible:o,placement:"bottom",round:S,safeAreaInsetTop:V&&P,safeAreaInsetBottom:A,overlay:E,lockScroll:T,beforeClose:D,onClose:M,style:F},x),React.createElement(View,{accessibilityRole:"menu",style:[C.layout.panel,{backgroundColor:C.colors.background}]},V&&React.createElement(ActionSheetHeader,{title:r,closeable:P,closeIcon:u,tokens:C,onClose:()=>{j("close-icon")}}),v&&React.createElement(View,{style:C.layout.descriptionContainer},isText(a)?renderTextOrNode(a,[C.layout.description,{color:C.colors.description,fontSize:C.typography.description}]):React.createElement(View,{style:C.layout.descriptionNode},a),React.createElement(View,{style:createHairlineView({position:"bottom",color:C.colors.border,left:0,right:0})})),React.createElement(View,{style:C.layout.actions},l.map((e,t)=>React.createElement(ActionSheetItem,{key:e.key??t,action:e,index:t,tokens:C,onActionPress:W}))),b,I&&React.createElement(ActionSheetCancel,{cancelText:n,tokens:C,onPress:()=>{j("cancel")}})))},ActionSheet=React.memo(ActionSheetImpl);ActionSheet.displayName="ActionSheet";export default ActionSheet;
@@ -1 +1 @@
1
- import{createComponentTokensHook}from"../../design-system";const centered={alignItems:"center",justifyContent:"center"};export const createActionSheetTokens=e=>{const{palette:t,spacing:n,fontSize:i}=e,o="#ffffff";return{defaults:{closeOnClickAction:!1,closeable:!0,round:!0,safeAreaInsetBottom:!0,overlay:!0,lockScroll:!0},layout:{popup:{paddingLeft:0,paddingRight:0,paddingBottom:0},panel:{width:"100%",maxHeight:"80%"},header:{position:"relative",flexDirection:"row",...centered,paddingHorizontal:16},titleContainer:{flex:1,...centered},title:{fontWeight:"600",textAlign:"center"},titleNode:centered,closeButton:{position:"absolute",top:0,right:0,width:48,height:48,...centered},descriptionContainer:{paddingTop:12,paddingBottom:20,paddingHorizontal:16},description:{textAlign:"center",lineHeight:20},descriptionNode:centered,actions:{width:"100%"},item:{...centered,width:"100%"},itemWithIcon:{flexDirection:"row",justifyContent:"center"},itemTextWrapper:centered,itemText:{lineHeight:24},subname:{marginTop:4,fontSize:12,lineHeight:18},subnameNode:{marginTop:4},icon:{marginRight:12},cancelGap:{width:"100%",marginBottom:0},cancel:centered,cancelText:{lineHeight:24}},colors:{background:o,title:t.default[900],description:t.default[500],item:t.default[900],subitem:t.default[500],cancel:t.default[900],disabled:t.default[400],border:t.default[200],itemBackground:o,itemPressedBackground:t.default[100],cancelBackground:o,cancelGapBackground:t.default[100]??"#f1f2f5"},typography:{title:i.lg,item:i.md,description:i.sm},spacing:{horizontal:n.md,vertical:14,cancelGap:8}}};export const useActionSheetTokens=createComponentTokensHook("actionSheet",createActionSheetTokens);
1
+ import{createComponentTokensHook}from"../../design-system";const centered={alignItems:"center",justifyContent:"center"};export const createActionSheetTokens=e=>{const{palette:t,spacing:n,fontSize:i}=e,o=e.surface??"#ffffff";return{defaults:{closeOnClickAction:!1,closeable:!0,round:!0,safeAreaInsetBottom:!0,overlay:!0,lockScroll:!0},layout:{popup:{paddingLeft:0,paddingRight:0,paddingBottom:0},panel:{width:"100%",maxHeight:"80%"},header:{position:"relative",flexDirection:"row",...centered,paddingHorizontal:16},titleContainer:{flex:1,...centered},title:{fontWeight:"600",textAlign:"center"},titleNode:centered,closeButton:{position:"absolute",top:0,right:0,width:48,height:48,...centered},descriptionContainer:{paddingTop:12,paddingBottom:20,paddingHorizontal:16},description:{textAlign:"center",lineHeight:20},descriptionNode:centered,actions:{width:"100%"},item:{...centered,width:"100%"},itemWithIcon:{flexDirection:"row",justifyContent:"center"},itemTextWrapper:centered,itemText:{lineHeight:24},subname:{marginTop:4,fontSize:12,lineHeight:18},subnameNode:{marginTop:4},icon:{marginRight:12},cancelGap:{width:"100%",marginBottom:0},cancel:centered,cancelText:{lineHeight:24}},colors:{background:o,title:t.default[900],description:t.default[500],item:t.default[900],subitem:t.default[500],cancel:t.default[900],disabled:t.default[400],border:t.default[200],itemBackground:o,itemPressedBackground:t.default[100],cancelBackground:o,cancelGapBackground:t.default[100]??"#f1f2f5"},typography:{title:i.lg,item:i.md,description:i.sm},spacing:{horizontal:n.md,vertical:14,cancelGap:8}}};export const useActionSheetTokens=createComponentTokensHook("actionSheet",createActionSheetTokens);
@@ -0,0 +1 @@
1
+ export{};
@@ -0,0 +1 @@
1
+ export{};
@@ -0,0 +1 @@
1
+ export{};
@@ -0,0 +1 @@
1
+ export{};
@@ -0,0 +1 @@
1
+ export{};
@@ -1 +1 @@
1
- import{createComponentTokensHook}from"../../design-system";export const createCalendarTokens=e=>{const{palette:t,spacing:n,radii:a,fontSize:r,typography:i}=e,o=t.primary.foreground??"#ffffff";return{defaults:{type:"single",title:"Select Date",showSubtitle:!0,showHeader:!0,showConfirm:{single:!1,range:!0,multiple:!0},confirmText:"Confirm",weekStartsOn:0,weekdays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],allowSameDay:!1,poppable:!1,closeOnClickOverlay:!0,closeOnConfirm:!0,popupPlacement:"bottom",popupRound:!0},layout:{header:{flexDirection:"row",alignItems:"center",justifyContent:"space-between"},headerCenter:{alignItems:"center",flex:1},navText:{textAlign:"center"},headerTitle:{textAlign:"center"},headerSubtitle:{textAlign:"center"},weekRow:{flexDirection:"row",justifyContent:"space-between"},weekLabelItem:{width:100/7+"%",alignItems:"center"},weekLabel:{textAlign:"center"},days:{flexDirection:"row",flexWrap:"wrap"},dayButton:{width:100/7+"%",alignItems:"center"},dayText:{textAlign:"center"},dayPlaceholder:{width:100/7+"%"},confirmButton:{alignItems:"center"},confirmText:{textAlign:"center"}},colors:{text:t.default[800],weekend:t.danger[500],disabled:t.default[300],background:"#ffffff",selectedBackground:t.primary[500],selectedText:o,rangeBackground:t.primary[100],headerSubtitle:t.default[600],confirmText:o},typography:{headerTitleSize:r.md,headerTitleWeight:i.weight.semiBold,headerSubtitleSize:r.sm,confirmTextWeight:i.weight.semiBold},sizing:{dayMinWidth:32,navButtonSize:r.md},radii:{day:a.sm,container:a.lg,confirmButton:20},spacing:{row:n.xs,column:n.xs,containerPadding:n.lg,headerMarginBottom:n.md,weekRowMarginBottom:n.sm,navPaddingHorizontal:n.sm,dayPaddingVertical:6,confirmMarginTop:n.lg,confirmPaddingVertical:10}}};export const useCalendarTokens=createComponentTokensHook("calendar",createCalendarTokens);
1
+ import{createComponentTokensHook}from"../../design-system";export const createCalendarTokens=e=>{const{palette:t,spacing:n,radii:a,fontSize:r,typography:i}=e,o=e.surface??"#ffffff",l=t.primary.foreground??"#ffffff";return{defaults:{type:"single",title:"Select Date",showSubtitle:!0,showHeader:!0,showConfirm:{single:!1,range:!0,multiple:!0},confirmText:"Confirm",weekStartsOn:0,weekdays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],allowSameDay:!1,poppable:!1,closeOnClickOverlay:!0,closeOnConfirm:!0,popupPlacement:"bottom",popupRound:!0},layout:{header:{flexDirection:"row",alignItems:"center",justifyContent:"space-between"},headerCenter:{alignItems:"center",flex:1},navText:{textAlign:"center"},headerTitle:{textAlign:"center"},headerSubtitle:{textAlign:"center"},weekRow:{flexDirection:"row",justifyContent:"space-between"},weekLabelItem:{width:100/7+"%",alignItems:"center"},weekLabel:{textAlign:"center"},days:{flexDirection:"row",flexWrap:"wrap"},dayButton:{width:100/7+"%",alignItems:"center"},dayText:{textAlign:"center"},dayPlaceholder:{width:100/7+"%"},confirmButton:{alignItems:"center"},confirmText:{textAlign:"center"}},colors:{text:t.default[800],weekend:t.danger[500],disabled:t.default[300],background:o,selectedBackground:t.primary[500],selectedText:l,rangeBackground:t.primary[100],headerSubtitle:t.default[600],confirmText:l},typography:{headerTitleSize:r.md,headerTitleWeight:i.weight.semiBold,headerSubtitleSize:r.sm,confirmTextWeight:i.weight.semiBold},sizing:{dayMinWidth:32,navButtonSize:r.md},radii:{day:a.sm,container:a.lg,confirmButton:20},spacing:{row:n.xs,column:n.xs,containerPadding:n.lg,headerMarginBottom:n.md,weekRowMarginBottom:n.sm,navPaddingHorizontal:n.sm,dayPaddingVertical:6,confirmMarginTop:n.lg,confirmPaddingVertical:10}}};export const useCalendarTokens=createComponentTokensHook("calendar",createCalendarTokens);
@@ -0,0 +1 @@
1
+ export{};
@@ -1 +1 @@
1
- import{createComponentTokensHook}from"../../design-system";export const createCascaderTokens=e=>{const{palette:t,spacing:i,radii:o}=e,n=t.default[100],a="Select";return{defaults:{placeholder:a,title:a,showHeader:!0,closeable:!0,swipeable:!0,poppable:!1,closeOnClickOverlay:!0,closeOnFinish:!0,popupPlacement:"bottom",popupRound:!0,loadingText:"Loading..."},layout:{container:{borderRadius:0,width:"100%"},header:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",paddingVertical:0},title:{lineHeight:20,includeFontPadding:!1},closeButton:{},tabsWrapper:{width:"100%"},tabsContentStatic:{width:"100%"},tabsItem:{alignItems:"center"},tabsTitle:{includeFontPadding:!1},tabTitleNode:{includeFontPadding:!1},optionList:{flexGrow:0},option:{justifyContent:"center"},optionContent:{flexDirection:"row",justifyContent:"space-between",alignItems:"center"},optionText:{lineHeight:20,includeFontPadding:!1},optionTextActive:{},optionLabel:{flex:1},empty:{textAlign:"center"},inlineChildren:{}},colors:{background:"#ffffff",headerText:t.default[900],placeholder:t.default[500],closeIcon:t.default[300],closeIconActive:t.default[500],tabText:t.default[900],tabActive:t.primary[500],tabInactive:t.default[500],optionText:t.default[900],optionDisabled:t.default[300],optionActiveBackground:n,optionActiveText:t.primary[500],divider:t.default[200]},typography:{titleSize:16,titleWeight:"500",tabsTitleSize:14,tabTitlePlaceholderWeight:"400",tabTitleWeight:"500",optionTextSize:14,optionTextActiveWeight:"500",emptyTextSize:14},sizing:{indicatorHeight:3,optionMinHeight:40,optionListHeight:384,headerHeight:48,closeIconSize:22,selectedIconSize:18},radii:{option:o.sm},spacing:{headerPaddingHorizontal:i.lg,tabNavPaddingHorizontal:6,tabNavPaddingVertical:2,tabPaddingHorizontal:10,optionPaddingVertical:10,optionPaddingHorizontal:i.lg,optionListPaddingTop:6,optionListPaddingBottom:0,closeButtonMarginLeft:8,optionLabelMarginRight:12,emptyPaddingVertical:24,inlineChildrenPaddingVertical:12}}};export const useCascaderTokens=createComponentTokensHook("cascader",createCascaderTokens);
1
+ import{createComponentTokensHook}from"../../design-system";export const createCascaderTokens=e=>{const{palette:t,spacing:i,radii:o}=e,n=e.surface??"#ffffff",a=t.default[100],d="Select";return{defaults:{placeholder:d,title:d,showHeader:!0,closeable:!0,swipeable:!0,poppable:!1,closeOnClickOverlay:!0,closeOnFinish:!0,popupPlacement:"bottom",popupRound:!0,loadingText:"Loading..."},layout:{container:{borderRadius:0,width:"100%"},header:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",paddingVertical:0},title:{lineHeight:20,includeFontPadding:!1},closeButton:{},tabsWrapper:{width:"100%"},tabsContentStatic:{width:"100%"},tabsItem:{alignItems:"center"},tabsTitle:{includeFontPadding:!1},tabTitleNode:{includeFontPadding:!1},optionList:{flexGrow:0},option:{justifyContent:"center"},optionContent:{flexDirection:"row",justifyContent:"space-between",alignItems:"center"},optionText:{lineHeight:20,includeFontPadding:!1},optionTextActive:{},optionLabel:{flex:1},empty:{textAlign:"center"},inlineChildren:{}},colors:{background:n,headerText:t.default[900],placeholder:t.default[500],closeIcon:t.default[300],closeIconActive:t.default[500],tabText:t.default[900],tabActive:t.primary[500],tabInactive:t.default[500],optionText:t.default[900],optionDisabled:t.default[300],optionActiveBackground:a,optionActiveText:t.primary[500],divider:t.default[200]},typography:{titleSize:16,titleWeight:"500",tabsTitleSize:14,tabTitlePlaceholderWeight:"400",tabTitleWeight:"500",optionTextSize:14,optionTextActiveWeight:"500",emptyTextSize:14},sizing:{indicatorHeight:3,optionMinHeight:40,optionListHeight:384,headerHeight:48,closeIconSize:22,selectedIconSize:18},radii:{option:o.sm},spacing:{headerPaddingHorizontal:i.lg,tabNavPaddingHorizontal:6,tabNavPaddingVertical:2,tabPaddingHorizontal:10,optionPaddingVertical:10,optionPaddingHorizontal:i.lg,optionListPaddingTop:6,optionListPaddingBottom:0,closeButtonMarginLeft:8,optionLabelMarginRight:12,emptyPaddingVertical:24,inlineChildrenPaddingVertical:12}}};export const useCascaderTokens=createComponentTokensHook("cascader",createCascaderTokens);
@@ -0,0 +1 @@
1
+ export{};
@@ -1 +1 @@
1
- import{StyleSheet}from"react-native";import{createComponentTokensHook}from"../../design-system";export const createCellTokens=e=>{const{palette:t,spacing:r,fontSize:i,typography:n,radii:a}=e,o="#ffffff",l={flexDirection:"row",alignItems:"flex-start",width:"100%",backgroundColor:o,paddingHorizontal:16};return{defaults:{border:!0,size:"normal",arrowDirection:"right",activeOpacity:.6,groupBorder:!0,groupInset:!1,groupCard:!1},layout:{container:{...l,paddingVertical:10},containerLarge:{...l,paddingVertical:14},center:{alignItems:"center"},body:{minWidth:0,flexDirection:"column"},titleRow:{flexDirection:"row",alignItems:"center"},value:{textAlign:"right"},valueOnly:{textAlign:"left"},valueContainer:{flex:1,flexShrink:1,minWidth:0,flexDirection:"row",alignItems:"center",justifyContent:"flex-end"},valueOnlyContainer:{justifyContent:"flex-start",alignItems:"flex-start"},valueCenter:{alignItems:"center"},customContent:{flexShrink:1,minWidth:0},iconWrapper:{justifyContent:"center",alignItems:"center"},rightIconWrapper:{alignSelf:"center",justifyContent:"center",alignItems:"center"},hairline:{position:"absolute",bottom:0},groupCardShadow:{},arrowTransforms:{left:{transform:[{rotate:"180deg"}]},right:{},up:{transform:[{rotate:"-90deg"}]},down:{transform:[{rotate:"90deg"}]}}},colors:{background:o,ripple:t.default[100],title:t.default[800],label:t.default[500],value:t.default[600],required:t.danger[500],border:t.default[200],arrow:t.default[400],groupTitle:t.default[500],groupBodyBackground:o},typography:{titleSize:i.sm,lineHeight:24,titleWeight:n.weight.medium,largeTitleSize:i.lg,labelSize:i.xs,largeLabelSize:i.sm,valueSize:i.sm,largeValueSize:i.md,groupTitleSize:i.sm},sizing:{paddingVertical:10,paddingHorizontal:16,largePaddingVertical:14,arrowSize:16,iconSize:16,groupMarginBottom:r.md,groupTitlePaddingHorizontal:r.lg,groupTitlePaddingVertical:r.sm,groupInsetMarginHorizontal:r.lg},radii:{groupInset:a.lg},borders:{width:StyleSheet.hairlineWidth},spacing:{iconGap:r.sm,valueGap:r.none,extraGap:r.sm,labelMarginTop:r.xs}}};export const useCellTokens=createComponentTokensHook("cell",createCellTokens);
1
+ import{StyleSheet}from"react-native";import{createComponentTokensHook}from"../../design-system";export const createCellTokens=e=>{const{palette:t,spacing:r,fontSize:i,typography:n,radii:a}=e,o=e.surface??"#ffffff",l={flexDirection:"row",alignItems:"flex-start",width:"100%",backgroundColor:o,paddingHorizontal:16};return{defaults:{border:!0,size:"normal",arrowDirection:"right",activeOpacity:.6,groupBorder:!0,groupInset:!1,groupCard:!1},layout:{container:{...l,paddingVertical:10},containerLarge:{...l,paddingVertical:14},center:{alignItems:"center"},body:{minWidth:0,flexDirection:"column"},titleRow:{flexDirection:"row",alignItems:"center"},value:{textAlign:"right"},valueOnly:{textAlign:"left"},valueContainer:{flex:1,flexShrink:1,minWidth:0,flexDirection:"row",alignItems:"center",justifyContent:"flex-end"},valueOnlyContainer:{justifyContent:"flex-start",alignItems:"flex-start"},valueCenter:{alignItems:"center"},customContent:{flexShrink:1,minWidth:0},iconWrapper:{justifyContent:"center",alignItems:"center"},rightIconWrapper:{alignSelf:"center",justifyContent:"center",alignItems:"center"},hairline:{position:"absolute",bottom:0},groupCardShadow:{},arrowTransforms:{left:{transform:[{rotate:"180deg"}]},right:{},up:{transform:[{rotate:"-90deg"}]},down:{transform:[{rotate:"90deg"}]}}},colors:{background:o,ripple:t.default[100],title:t.default[800],label:t.default[500],value:t.default[600],required:t.danger[500],border:t.default[200],arrow:t.default[400],groupTitle:t.default[500],groupBodyBackground:o},typography:{titleSize:i.sm,lineHeight:24,titleWeight:n.weight.medium,largeTitleSize:i.lg,labelSize:i.xs,largeLabelSize:i.sm,valueSize:i.sm,largeValueSize:i.md,groupTitleSize:i.sm},sizing:{paddingVertical:10,paddingHorizontal:16,largePaddingVertical:14,arrowSize:16,iconSize:16,groupMarginBottom:r.md,groupTitlePaddingHorizontal:r.lg,groupTitlePaddingVertical:r.sm,groupInsetMarginHorizontal:r.lg},radii:{groupInset:a.lg},borders:{width:StyleSheet.hairlineWidth},spacing:{iconGap:r.sm,valueGap:r.none,extraGap:r.sm,labelMarginTop:r.xs}}};export const useCellTokens=createComponentTokensHook("cell",createCellTokens);
@@ -0,0 +1 @@
1
+ export{};
@@ -1 +1 @@
1
- function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var l in a)({}).hasOwnProperty.call(a,l)&&(e[l]=a[l])}return e},_extends.apply(null,arguments)}import React,{useContext,useEffect,useImperativeHandle,useRef}from"react";import{Platform,Pressable,Text,View}from"react-native";import{useCheckbox,useCheckboxGroupItem}from"@react-native-aria/checkbox";import{useToggleState}from"@react-stately/toggle";import{CheckboxGroupContext}from"./CheckboxContext";import{useCheckboxTokens}from"./tokens";import{createHairlineView}from"../../utils";import{isRenderable,isText}from"../../utils/validate";const EMPTY_CHECKBOX_GROUP_STATE={value:[],isDisabled:!1,isReadOnly:!1,isSelected:()=>!1,setValue:()=>{},addValue:()=>{},removeValue:()=>{},toggleValue:()=>{}},CheckboxImpl=(e,t)=>{const{children:a,name:l,value:o,iconRender:i,bindGroup:c,shape:s,iconSize:r,checkedColor:n,labelPosition:d,labelDisabled:u,disabled:b,style:p,labelStyle:h,tokensOverride:m,hitSlop:f=8,accessibilityLabel:g,"aria-label":k,onClick:y,onChange:x,...R}=e,C=useCheckboxTokens(m),S=useContext(CheckboxGroupContext),v=c??C.defaults.bindGroup,E=s??S?.shape??C.defaults.shape,V=r??S?.iconSize??C.defaults.iconSize,P=n??S?.checkedColor??C.colors.checkedBackground,T=i??S?.iconRender,w=d??C.defaults.labelPosition,_=u??S?.labelDisabled??C.defaults.labelDisabled,O=Boolean(b||S?.state.isDisabled),B=o??l,D=null==B?void 0:String(B),G=useRef(null);useImperativeHandle(t,()=>G.current);const H=useToggleState({isSelected:e.checked,defaultSelected:e.defaultChecked,onChange:x}),z=!!S&&void 0!==D&&v,{onBlur:F,onFocus:I,...L}=R;useEffect(()=>{if(S&&v&&void 0!==D&&void 0!==B)return S.registerValue(D,B,O),()=>S.unregisterValue(D)},[v,S,D,B,O]);const W=g??k??(isText(a)?String(a):void 0)??D??"checkbox",M=G,{inputProps:j}=useCheckboxGroupItem({...L,value:D??"",isDisabled:O,"aria-label":W},z&&S?S.state:EMPTY_CHECKBOX_GROUP_STATE,M),{inputProps:A}=useCheckbox({...L,isDisabled:O,value:D,"aria-label":W},H,M),K=z&&S?j:A,U=z&&S?S.state.isSelected(D):void 0!==e.checked?e.checked:H.isSelected,X="round"===E?V/2:C.radii.square,Y=O?C.colors.disabledBorder:U?P:C.colors.border,q=O?C.colors.disabledBackground:U?P:C.colors.background,J=O||_?C.colors.labelDisabled:C.colors.label,N="left"===w?{marginRight:C.spacing.gap}:{marginLeft:C.spacing.gap},Q=K?.onPress,Z=K?{...K,onPress:t=>{y?.(t),z&&S?.max&&!U&&S.state.value.length>=S.max||(Q?Q(t):z&&S&&void 0!==D?U?S.state.removeValue(D):S.state.addValue(D):void 0===e.checked?x&&H.setSelected(!H.isSelected):x?.(!e.checked))}}:{},$=isRenderable(a)?isText(a)?React.createElement(Text,{accessible:!1,style:[C.layout.label,{color:J,fontSize:C.typography.fontSize,lineHeight:C.typography.fontSize*C.typography.lineHeightMultiplier,fontFamily:C.typography.fontFamily,fontWeight:C.typography.fontWeight},h]},a):React.createElement(View,{accessible:!1,style:h},a):null,ee={width:V,height:V,borderRadius:X,backgroundColor:q};let te=React.createElement(View,{style:[C.layout.icon,ee]},U&&React.createElement(Text,{style:[C.layout.checkmark,{color:C.colors.checkmark,fontSize:V*C.icon.scale}]},"✓"),React.createElement(View,{style:createHairlineView({position:"all",color:Y,borderRadius:X})}));T&&(te=T({checked:Boolean(U),disabled:Boolean(O)})??null);const ae=!O&&!_,le=$&&React.createElement(View,{style:[C.layout.labelWrapper,N],pointerEvents:_?"none":void 0,accessible:!1},$),oe=[C.layout.iconWrapper,"left"===w?{marginLeft:C.spacing.gap}:{marginRight:C.spacing.gap}],ie=ae?React.createElement(View,{style:oe},te):React.createElement(Pressable,_extends({},Z,{ref:G,disabled:O,accessibilityLabel:W,accessibilityRole:"checkbox",accessibilityState:{checked:U,disabled:!!O},style:oe,hitSlop:f}),te),ce="left"===w?React.createElement(React.Fragment,null,le,ie):React.createElement(React.Fragment,null,ie,le);return ae?React.createElement(Pressable,_extends({},Z,{ref:G,disabled:O,accessibilityLabel:W,accessibilityRole:"checkbox",accessibilityState:{checked:U,disabled:!!O},style:({pressed:e})=>[C.layout.container,p,"web"===Platform.OS&&{cursor:"pointer"},e&&{opacity:.8}],hitSlop:f}),ce):React.createElement(View,{style:[C.layout.container,p]},ce)},CheckboxForwardRef=React.forwardRef(CheckboxImpl);export const Checkbox=React.memo(CheckboxForwardRef);export default Checkbox;
1
+ function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var l in a)({}).hasOwnProperty.call(a,l)&&(e[l]=a[l])}return e},_extends.apply(null,arguments)}import React,{useContext,useEffect,useImperativeHandle,useRef}from"react";import{Platform,Pressable,Text,View}from"react-native";import{useCheckbox,useCheckboxGroupItem}from"@react-native-aria/checkbox";import{useToggleState}from"@react-stately/toggle";import{CheckboxGroupContext}from"./CheckboxContext";import{useCheckboxTokens}from"./tokens";import{createHairlineView}from"../../utils";import{isRenderable,isText}from"../../utils/validate";const EMPTY_CHECKBOX_GROUP_STATE={value:[],isDisabled:!1,isReadOnly:!1,isSelected:()=>!1,setValue:()=>{},addValue:()=>{},removeValue:()=>{},toggleValue:()=>{}},CheckboxImpl=(e,t)=>{const{children:a,name:l,value:o,iconRender:i,bindGroup:c,shape:r,iconSize:s,checkedColor:n,labelPosition:d,labelDisabled:u,disabled:b,style:p,labelStyle:h,tokensOverride:m,hitSlop:f=8,accessibilityLabel:g,"aria-label":k,onClick:y,onChange:x,...R}=e,C=useCheckboxTokens(m),S=useContext(CheckboxGroupContext),v=c??C.defaults.bindGroup,E=r??S?.shape??C.defaults.shape,V=s??S?.iconSize??C.defaults.iconSize,P=n??S?.checkedColor??C.colors.checkedBackground,T=i??S?.iconRender,w=d??C.defaults.labelPosition,_=u??S?.labelDisabled??C.defaults.labelDisabled,O=Boolean(b||S?.state.isDisabled),B=o??l,D=null==B?void 0:String(B),G=useRef(null);useImperativeHandle(t,()=>G.current);const H=useToggleState({isSelected:e.checked,defaultSelected:e.defaultChecked,onChange:x}),z=!!S&&void 0!==D&&v,{onBlur:F,onFocus:I,...L}=R;useEffect(()=>{if(S&&v&&void 0!==D&&void 0!==B)return S.registerValue(D,B,O),()=>S.unregisterValue(D)},[v,S,D,B,O]);const W=g??k??(isText(a)?String(a):void 0)??D??"checkbox",M=G,{inputProps:j}=useCheckboxGroupItem({...L,value:D??"",isDisabled:O,"aria-label":W},z&&S?S.state:EMPTY_CHECKBOX_GROUP_STATE,M),{inputProps:A}=useCheckbox({...L,isDisabled:O,value:D,"aria-label":W},H,M),K=z&&S?j:A,U=z&&S?S.state.isSelected(D):void 0!==e.checked?e.checked:H.isSelected,X="round"===E?V/2:C.radii.square,Y=O?C.colors.disabledBorder:U?P:C.colors.border,q=O?C.colors.disabledBackground:U?P:C.colors.background,J=O||_?C.colors.labelDisabled:C.colors.label,N="left"===w?{marginRight:C.spacing.gap}:{marginLeft:C.spacing.gap},Q=K?.onPress,Z=K?{...K,onPress:t=>{y?.(t),z&&S?.max&&!U&&S.state.value.length>=S.max||(Q?Q(t):z&&S&&void 0!==D?U?S.state.removeValue(D):S.state.addValue(D):void 0===e.checked?x&&H.setSelected(!H.isSelected):x?.(!e.checked))}}:{},$=isRenderable(a)?isText(a)?React.createElement(Text,{accessible:!1,style:[C.layout.label,{color:J,fontSize:C.typography.fontSize,lineHeight:C.typography.fontSize*C.typography.lineHeightMultiplier,fontFamily:C.typography.fontFamily,fontWeight:C.typography.fontWeight},h]},a):React.createElement(View,{accessible:!1,style:h},a):null,ee={width:V,height:V,borderRadius:X,backgroundColor:q},te=React.createElement(View,{style:[C.layout.icon,ee]},U&&React.createElement(Text,{style:[C.layout.checkmark,{color:C.colors.checkmark,fontSize:V*C.icon.scale}]},"✓"),React.createElement(View,{style:createHairlineView({position:"all",color:Y,borderRadius:X})})),ae=T?T({checked:Boolean(U),disabled:Boolean(O)})??null:te,le=!O&&!_,oe=$&&React.createElement(View,{style:[C.layout.labelWrapper,N],pointerEvents:_?"none":void 0,accessible:!1},$),ie=[C.layout.iconWrapper,"left"===w?{marginLeft:C.spacing.gap}:{marginRight:C.spacing.gap}],ce=le?React.createElement(View,{style:ie},ae):React.createElement(Pressable,_extends({},Z,{ref:G,disabled:O,accessibilityLabel:W,accessibilityRole:"checkbox",accessibilityState:{checked:U,disabled:!!O},style:ie,hitSlop:f}),ae),re="left"===w?React.createElement(React.Fragment,null,oe,ce):React.createElement(React.Fragment,null,ce,oe);return le?React.createElement(Pressable,_extends({},Z,{ref:G,disabled:O,accessibilityLabel:W,accessibilityRole:"checkbox",accessibilityState:{checked:U,disabled:!!O},style:({pressed:e})=>[C.layout.container,p,"web"===Platform.OS&&{cursor:"pointer"},e&&{opacity:.8}],hitSlop:f}),re):React.createElement(View,{style:[C.layout.container,p]},re)},CheckboxForwardRef=React.forwardRef(CheckboxImpl);export const Checkbox=React.memo(CheckboxForwardRef);export default Checkbox;
@@ -1 +1 @@
1
- import{StyleSheet}from"react-native";import{createComponentTokensHook}from"../../design-system";const centered={justifyContent:"center",alignItems:"center"},createCheckboxTokens=e=>{const{palette:r,spacing:t,radii:o,fontSize:i,typography:n}=e;return{defaults:{shape:"round",iconSize:20,labelPosition:"right",labelDisabled:!1,bindGroup:!0,groupDisabled:!1,groupDirection:"vertical"},layout:{container:{flexDirection:"row",alignItems:"center"},iconWrapper:centered,icon:centered,checkmark:{textAlign:"center",includeFontPadding:!1},label:{includeFontPadding:!1},labelWrapper:{flexShrink:1},groupHorizontal:{flexDirection:"row",flexWrap:"wrap",alignItems:"center"},groupVertical:{flexDirection:"column"},groupItem:{flexShrink:0}},colors:{border:r.default[400],background:"#ffffff",checkedBackground:r.primary[500],disabledBorder:r.default[300],disabledBackground:r.default[100],checkmark:r.primary.foreground??"#ffffff",label:r.default.foreground??"#111827",labelDisabled:r.default[400]},typography:{fontSize:i.md,fontFamily:n.fontFamily,fontWeight:n.weight.medium,lineHeightMultiplier:n.lineHeightMultiplier},spacing:{gap:t.sm,groupGap:t.md},radii:{square:o.xs},borders:{width:StyleSheet.hairlineWidth},icon:{scale:.65}}};export const useCheckboxTokens=createComponentTokensHook("checkbox",createCheckboxTokens);
1
+ import{StyleSheet}from"react-native";import{createComponentTokensHook}from"../../design-system";const centered={justifyContent:"center",alignItems:"center"},createCheckboxTokens=e=>{const{palette:r,spacing:t,radii:o,fontSize:i,typography:n}=e,a=e.surface??"#ffffff";return{defaults:{shape:"round",iconSize:20,labelPosition:"right",labelDisabled:!1,bindGroup:!0,groupDisabled:!1,groupDirection:"vertical"},layout:{container:{flexDirection:"row",alignItems:"center"},iconWrapper:centered,icon:centered,checkmark:{textAlign:"center",includeFontPadding:!1},label:{includeFontPadding:!1},labelWrapper:{flexShrink:1},groupHorizontal:{flexDirection:"row",flexWrap:"wrap",alignItems:"center"},groupVertical:{flexDirection:"column"},groupItem:{flexShrink:0}},colors:{border:r.default[400],background:a,checkedBackground:r.primary[500],disabledBorder:r.default[300],disabledBackground:r.default[100],checkmark:r.primary.foreground??"#ffffff",label:r.default.foreground??"#111827",labelDisabled:r.default[400]},typography:{fontSize:i.md,fontFamily:n.fontFamily,fontWeight:n.weight.medium,lineHeightMultiplier:n.lineHeightMultiplier},spacing:{gap:t.sm,groupGap:t.md},radii:{square:o.xs},borders:{width:StyleSheet.hairlineWidth},icon:{scale:.65}}};export const useCheckboxTokens=createComponentTokensHook("checkbox",createCheckboxTokens);
@@ -0,0 +1 @@
1
+ export{};
@@ -0,0 +1 @@
1
+ export{};
@@ -1 +1 @@
1
- function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var o in n)({}).hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e},_extends.apply(null,arguments)}import React,{useCallback,useContext,useEffect,useImperativeHandle,useMemo,useRef,useState}from"react";import{Animated,Easing,View}from"react-native";import{Arrow}from"react-native-system-icon";import{useReducedMotion}from"../../hooks/animation";import{Cell}from"../cell";import{createHairlineView,isFunction,isNumber,isObject,isRenderable,renderTextOrNode}from"../../utils";import{useCollapseTokens}from"./tokens";const CollapseContext=React.createContext(null),normalizeValue=e=>{if(void 0!==e)return Array.isArray(e)?e.map(String):null===e?[]:[String(e)]},buildOutputValue=(e,t)=>t?e[0]??"":e,CollapseImpl=e=>{const{tokensOverride:t,children:n,accordion:o,value:a,defaultValue:i,onChange:l,border:r,iconPosition:s,expandIcon:c,disabled:d,style:u,...p}=e,m=useCollapseTokens(t),b=o??m.defaults.accordion,g=r??m.defaults.border,f=s??m.defaults.iconPosition,{colors:y}=m,R=void 0!==a,C=normalizeValue(a),v=normalizeValue(i)??[],k=useRef(l);k.current=l;const[E,h]=useState(()=>b?v.slice(0,1):v),w=R?b?(C??[]).slice(0,1):C??[]:E,V=useCallback((e,t)=>{if(d)return;const n=w.includes(e),o=t??!n,a=b?o?[e]:n?[]:w:o?n?w:[...w,e]:n?w.filter(t=>t!==e):w;R||h(a),k.current?.(buildOutputValue(a,b))},[b,w,R,d]),x=useMemo(()=>({activeKeys:w,toggle:V,accordion:b,iconPosition:f,expandIcon:c,border:g,disabled:d,tokens:m}),[b,w,g,d,c,f,m,V]),S=useMemo(()=>React.Children.toArray(n).map((e,t)=>{if(!React.isValidElement(e))return e;if(!isFunction(e.type)&&!isObject(e.type))return e;const n=e.props.name??String(t);return React.cloneElement(e,{name:n,index:t})}),[n]);return React.createElement(CollapseContext.Provider,{value:x},React.createElement(View,_extends({style:[m.layout.container,g&&{backgroundColor:y.background},u]},p),g&&React.createElement(Hairline,{tokens:m,position:"top",color:y.border}),g&&React.createElement(Hairline,{tokens:m,position:"bottom",color:y.border}),S))},Hairline=React.memo(({tokens:e,position:t,color:n,inset:o=0})=>{const a=createHairlineView({position:t,color:n,left:o,right:o});return React.createElement(View,{pointerEvents:"none",style:[e.layout.hairline,a]})}),CollapsePanel=React.forwardRef((e,t)=>{const n=useContext(CollapseContext),o=useReducedMotion();if(!n)throw new Error("Collapse.Panel must be used within Collapse");const{activeKeys:a,toggle:i,iconPosition:l,expandIcon:r,disabled:s,tokens:c}=n,{name:d="0",index:u=0,title:p,description:m,label:b,icon:g,extra:f,value:y,border:R=c.defaults.panelBorder,isLink:C=c.defaults.panelIsLink,size:v=c.defaults.panelSize,disabled:k,readOnly:E,children:h,style:w,titleStyle:V,descriptionStyle:x,...S}=e,z=String(d),I=a.includes(z),P=s||k,{colors:H,spacing:O,typography:A}=c,[M,F]=useState(0),N=useRef(new Animated.Value(I?1:0)).current,j=useRef(null),_=N.interpolate({inputRange:[0,1],outputRange:["90deg","-90deg"]});useEffect(()=>{j.current?.stop();const e=Animated.timing(N,{toValue:I?1:0,duration:o?0:c.defaults.animationDuration,easing:Easing.ease,useNativeDriver:!1,isInteraction:!1});return j.current=e,e.start(({finished:e})=>{e&&(j.current=null)}),()=>{j.current?.stop(),j.current=null}},[N,I,o,c.defaults.animationDuration]);const T=m??b,D=f??y,L=useCallback(()=>{P||E||i(z)},[P,z,E,i]);useImperativeHandle(t,()=>({toggle:e=>{P||E||i(z,e)}}),[P,z,E,i]);const B=useCallback(e=>{const t=e.nativeEvent.layout.height;isNumber(t)&&Number.isFinite(t)&&F(e=>e===t?e:t)},[]),K=useMemo(()=>({height:N.interpolate({inputRange:[0,1],outputRange:[0,M]})}),[N,M]),W=useCallback(()=>isFunction(r)?r(I):r||React.createElement(Animated.View,{style:{transform:[{rotate:_}]}},React.createElement(Arrow,{size:16,fill:P?H.disabled:H.arrow})),[H.arrow,H.disabled,r,I,P,_]),G=useMemo(()=>renderTextOrNode(h,{color:P?H.disabled:H.description,fontFamily:A.fontFamily,fontSize:A.descriptionSize,lineHeight:Math.round(1.5*A.descriptionSize)}),[h,H.description,H.disabled,P,A.descriptionSize,A.fontFamily]),q=Boolean(R),J=u>0&&q,Q=I&&q,U=C&&!E,X="left"===l?U||isRenderable(g)?React.createElement(View,{style:c.layout.headerIconRow},U&&React.createElement(View,{style:{marginRight:g?c.spacing.iconGap:0}},W()),g):void 0:g,Y="right"===l&&U?W():void 0;return React.createElement(View,_extends({style:[c.layout.panel,{backgroundColor:H.background},w]},S),J&&React.createElement(Hairline,{tokens:c,position:"top",color:H.border,inset:O.paddingHorizontal}),React.createElement(View,{style:c.layout.headerWrapper},React.createElement(Cell,{title:p,label:T,icon:X,value:D,size:v,border:!1,disabled:P,onPress:E?void 0:L,accessibilityState:{expanded:I,disabled:P},titleStyle:P?[V,{color:H.disabled}]:V,labelStyle:P?[x,{color:H.disabled}]:x,valueStyle:P?{color:H.disabled}:void 0,rightIcon:Y}),Q&&React.createElement(Hairline,{tokens:c,position:"bottom",color:H.border,inset:O.paddingHorizontal})),React.createElement(Animated.View,{style:[c.layout.bodyWrapper,K]},React.createElement(View,{onLayout:B,style:[c.layout.bodyContent,{paddingVertical:O.paddingVertical,paddingHorizontal:O.paddingHorizontal,backgroundColor:H.background}]},G)))});CollapseImpl.Panel=CollapsePanel,CollapseImpl.Item=CollapsePanel;export const Collapse=Object.assign(React.memo(CollapseImpl),{Panel:CollapsePanel,Item:CollapsePanel});export default Collapse;
1
+ function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var o=arguments[t];for(var n in o)({}).hasOwnProperty.call(o,n)&&(e[n]=o[n])}return e},_extends.apply(null,arguments)}import React,{useCallback,useContext,useEffect,useImperativeHandle,useMemo,useRef,useState}from"react";import{Animated,Easing,View}from"react-native";import{Arrow}from"react-native-system-icon";import{useReducedMotion}from"../../hooks/animation";import{Cell}from"../cell";import{createHairlineView,isFunction,isNumber,isObject,isRenderable,renderTextOrNode}from"../../utils";import{useCollapseTokens}from"./tokens";const CollapseContext=React.createContext(null),normalizeValue=e=>void 0===e?void 0:Array.isArray(e)?e.map(String):null===e?[]:[String(e)],buildOutputValue=(e,t)=>t?e[0]??"":e,CollapseImpl=e=>{const{tokensOverride:t,children:o,accordion:n,value:a,defaultValue:i,onChange:l,border:r,iconPosition:s,expandIcon:c,disabled:d,style:u,...p}=e,m=useCollapseTokens(t),b=n??m.defaults.accordion,g=r??m.defaults.border,f=s??m.defaults.iconPosition,{colors:y}=m,R=void 0!==a,C=normalizeValue(a),v=normalizeValue(i)??[],k=useRef(l);k.current=l;const[E,h]=useState(()=>b?v.slice(0,1):v),w=R?b?(C??[]).slice(0,1):C??[]:E,V=useCallback((e,t)=>{if(d)return;const o=w.includes(e),n=t??!o,a=b?n?[e]:o?[]:w:n?o?w:[...w,e]:o?w.filter(t=>t!==e):w;R||h(a),k.current?.(buildOutputValue(a,b))},[b,w,R,d]),x=useMemo(()=>({activeKeys:w,toggle:V,accordion:b,iconPosition:f,expandIcon:c,border:g,disabled:d,tokens:m}),[b,w,g,d,c,f,m,V]),S=useMemo(()=>React.Children.toArray(o).map((e,t)=>{if(!React.isValidElement(e))return e;if(!isFunction(e.type)&&!isObject(e.type))return e;const o=e.props.name??String(t);return React.cloneElement(e,{name:o,index:t})}),[o]);return React.createElement(CollapseContext.Provider,{value:x},React.createElement(View,_extends({style:[m.layout.container,g&&{backgroundColor:y.background},u]},p),g&&React.createElement(Hairline,{tokens:m,position:"top",color:y.border}),g&&React.createElement(Hairline,{tokens:m,position:"bottom",color:y.border}),S))},Hairline=React.memo(({tokens:e,position:t,color:o,inset:n=0})=>{const a=createHairlineView({position:t,color:o,left:n,right:n});return React.createElement(View,{pointerEvents:"none",style:[e.layout.hairline,a]})}),CollapsePanel=React.forwardRef((e,t)=>{const o=useContext(CollapseContext),n=useReducedMotion();if(!o)throw new Error("Collapse.Panel must be used within Collapse");const{activeKeys:a,toggle:i,iconPosition:l,expandIcon:r,disabled:s,tokens:c}=o,{name:d="0",index:u=0,title:p,description:m,label:b,icon:g,extra:f,value:y,border:R=c.defaults.panelBorder,isLink:C=c.defaults.panelIsLink,size:v=c.defaults.panelSize,disabled:k,readOnly:E,children:h,style:w,titleStyle:V,descriptionStyle:x,...S}=e,z=String(d),I=a.includes(z),P=s||k,{colors:H,spacing:O,typography:A}=c,[M,F]=useState(0),N=useRef(new Animated.Value(I?1:0)).current,j=useRef(null),_=N.interpolate({inputRange:[0,1],outputRange:["90deg","-90deg"]});useEffect(()=>{j.current?.stop();const e=Animated.timing(N,{toValue:I?1:0,duration:n?0:c.defaults.animationDuration,easing:Easing.ease,useNativeDriver:!1,isInteraction:!1});return j.current=e,e.start(({finished:e})=>{e&&(j.current=null)}),()=>{j.current?.stop(),j.current=null}},[N,I,n,c.defaults.animationDuration]);const T=m??b,D=f??y,L=useCallback(()=>{P||E||i(z)},[P,z,E,i]);useImperativeHandle(t,()=>({toggle:e=>{P||E||i(z,e)}}),[P,z,E,i]);const B=useCallback(e=>{const t=e.nativeEvent.layout.height;isNumber(t)&&Number.isFinite(t)&&F(e=>e===t?e:t)},[]),K=useMemo(()=>({height:N.interpolate({inputRange:[0,1],outputRange:[0,M]})}),[N,M]),W=useCallback(()=>isFunction(r)?r(I):r||React.createElement(Animated.View,{style:{transform:[{rotate:_}]}},React.createElement(Arrow,{size:16,fill:P?H.disabled:H.arrow})),[H.arrow,H.disabled,r,I,P,_]),G=useMemo(()=>renderTextOrNode(h,{color:P?H.disabled:H.description,fontFamily:A.fontFamily,fontSize:A.descriptionSize,lineHeight:Math.round(1.5*A.descriptionSize)}),[h,H.description,H.disabled,P,A.descriptionSize,A.fontFamily]),q=Boolean(R),J=u>0&&q,Q=I&&q,U=C&&!E,X="left"===l?U||isRenderable(g)?React.createElement(View,{style:c.layout.headerIconRow},U&&React.createElement(View,{style:{marginRight:g?c.spacing.iconGap:0}},W()),g):void 0:g,Y="right"===l&&U?W():void 0;return React.createElement(View,_extends({style:[c.layout.panel,{backgroundColor:H.background},w]},S),J&&React.createElement(Hairline,{tokens:c,position:"top",color:H.border,inset:O.paddingHorizontal}),React.createElement(View,{style:c.layout.headerWrapper},React.createElement(Cell,{title:p,label:T,icon:X,value:D,size:v,border:!1,disabled:P,onPress:E?void 0:L,accessibilityState:{expanded:I,disabled:P},titleStyle:P?[V,{color:H.disabled}]:V,labelStyle:P?[x,{color:H.disabled}]:x,valueStyle:P?{color:H.disabled}:void 0,rightIcon:Y}),Q&&React.createElement(Hairline,{tokens:c,position:"bottom",color:H.border,inset:O.paddingHorizontal})),React.createElement(Animated.View,{style:[c.layout.bodyWrapper,K]},React.createElement(View,{onLayout:B,style:[c.layout.bodyContent,{paddingVertical:O.paddingVertical,paddingHorizontal:O.paddingHorizontal,backgroundColor:H.background}]},G)))});CollapseImpl.Panel=CollapsePanel,CollapseImpl.Item=CollapsePanel;export const Collapse=Object.assign(React.memo(CollapseImpl),{Panel:CollapsePanel,Item:CollapsePanel});export default Collapse;
@@ -1 +1 @@
1
- import{createComponentTokensHook}from"../../design-system";export const createCollapseTokens=e=>{const{palette:o,spacing:t,fontSize:i,typography:a,radii:n}=e;return{defaults:{accordion:!1,border:!0,iconPosition:"right",panelBorder:!0,panelIsLink:!0,panelSize:"normal",animationDuration:200},layout:{container:{position:"relative"},panel:{position:"relative"},hairline:{position:"absolute"},headerWrapper:{position:"relative"},bodyWrapper:{position:"relative",overflow:"hidden"},headerIconRow:{flexDirection:"row",alignItems:"center"},bodyContent:{position:"absolute",top:0,left:0,right:0}},colors:{border:o.default[200],title:o.default[800],description:o.default[500],background:"#ffffff",active:o.default[50],arrow:o.default[400],disabled:o.default[400]},typography:{titleSize:i.md,descriptionSize:i.sm,fontFamily:a.fontFamily,titleWeight:a.weight.medium},panel:{borderRadius:n.sm},spacing:{paddingVertical:t.md,paddingHorizontal:t.lg,descriptionTop:t.xs,iconGap:8}}};export const useCollapseTokens=createComponentTokensHook("collapse",createCollapseTokens);
1
+ import{createComponentTokensHook}from"../../design-system";export const createCollapseTokens=e=>{const{palette:o,spacing:t,fontSize:i,typography:a,radii:n}=e,r=e.surface??"#ffffff";return{defaults:{accordion:!1,border:!0,iconPosition:"right",panelBorder:!0,panelIsLink:!0,panelSize:"normal",animationDuration:200},layout:{container:{position:"relative"},panel:{position:"relative"},hairline:{position:"absolute"},headerWrapper:{position:"relative"},bodyWrapper:{position:"relative",overflow:"hidden"},headerIconRow:{flexDirection:"row",alignItems:"center"},bodyContent:{position:"absolute",top:0,left:0,right:0}},colors:{border:o.default[200],title:o.default[800],description:o.default[500],background:r,active:o.default[50],arrow:o.default[400],disabled:o.default[400]},typography:{titleSize:i.md,descriptionSize:i.sm,fontFamily:a.fontFamily,titleWeight:a.weight.medium},panel:{borderRadius:n.sm},spacing:{paddingVertical:t.md,paddingHorizontal:t.lg,descriptionTop:t.xs,iconGap:8}}};export const useCollapseTokens=createComponentTokensHook("collapse",createCollapseTokens);
@@ -0,0 +1 @@
1
+ export{};
@@ -0,0 +1 @@
1
+ export{};
@@ -0,0 +1 @@
1
+ export{};
@@ -0,0 +1 @@
1
+ export{};
@@ -1 +1 @@
1
- function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var o=arguments[t];for(var n in o)({}).hasOwnProperty.call(o,n)&&(e[n]=o[n])}return e},_extends.apply(null,arguments)}import React,{useCallback,useEffect,useMemo,useRef}from"react";import{ActivityIndicator,Animated,Easing,Pressable,StyleSheet,View}from"react-native";import{useLocale}from"../config-provider/useLocale";import{nativeDriverEnabled}from"../../platform";import{useReducedMotion}from"../../hooks/animation";import{createHairlineView}from"../../utils/hairline";import{isPromiseLike}from"../../utils/promise";import{isNumber,isValidNode}from"../../utils/validate";import{renderTextOrNode}from"../../utils";import{Close}from"react-native-system-icon";import Button from"../button";import Popup from"../popup";import{useDialogTokens}from"./tokens";const ActionButton=e=>{const{text:t,color:o,tokens:n,dividerPosition:i="none",loading:r,disabled:a,onPress:s}=e,l=o??n.colors.confirm,c="none"===i?null:[S.btnDiv,{width:0},createHairlineView({position:i,color:n.colors.divider,top:0,bottom:0,[i]:0})];return React.createElement(Pressable,{accessibilityRole:"button",disabled:a||r,style:({pressed:e})=>[S.btn,{height:n.sizes.actionHeight,opacity:!e||a||r?1:.8}],onPress:a||r?void 0:s},c&&React.createElement(View,{style:c,pointerEvents:"none"}),r?React.createElement(ActivityIndicator,{size:"small",color:l}):renderTextOrNode(t??"",{color:l,fontFamily:n.typography.fontFamily,fontSize:n.typography.actionSize,fontWeight:n.typography.actionWeight}))},DialogImpl=e=>{const t=useLocale(),{visible:o,title:n,message:i,messageAlign:r="center",theme:a="default",width:s,closeable:l=!1,closeIcon:c,overlay:d=!0,overlayStyle:g,overlayTestID:p="dialog-overlay",closeOnBackPress:m=!1,closeOnPopstate:u=!0,closeOnOverlayPress:f=!1,closeOnClickOverlay:y=!1,onClickOverlay:b,onClickCloseIcon:h,beforeClose:C,showCancelButton:v=!1,showConfirmButton:P=!0,cancelButtonText:x,cancelButtonColor:w,cancelProps:E,confirmButtonText:R,confirmButtonColor:k,confirmProps:B,footer:z,contentStyle:I,titleStyle:O,messageStyle:H,tokensOverride:V,style:D,children:T,onCancel:L,onConfirm:A,onClose:F,onClosed:W,...N}=e,M=useDialogTokens(V),q=useReducedMotion(),j=isValidNode(n),G=isValidNode(T),_=isValidNode(i)||G,J=v||P,K="round-button"===a,Q=E?.loading,U=B?.loading,X=x??t.cancel,Y=R??t.confirm,Z=useRef({seq:0,beforeClose:C,onClose:F,onCancel:L,onConfirm:A,onClickCloseIcon:h,cancelLoad:Q,confirmLoad:U});Object.assign(Z.current,{beforeClose:C,onClose:F,onCancel:L,onConfirm:A,onClickCloseIcon:h,cancelLoad:Q,confirmLoad:U});const $=useCallback((e,t)=>{const o=Z.current;o.seq+=1;const n=o.seq,i=o.beforeClose;if(!i)return void t?.();let r;try{r=i(e)}catch{return void t?.()}!1!==r&&(isPromiseLike(r)?r.then(e=>{!1!==e&&Z.current.seq===n&&t?.()}).catch(()=>{Z.current.seq===n&&t?.()}):t?.())},[]),ee=useCallback(()=>{Z.current.onClickCloseIcon?.(),$("close",()=>Z.current.onClose?.())},[$]),te=useCallback(()=>{Z.current.cancelLoad||$("cancel",()=>Z.current.onCancel?.())},[$]),oe=useCallback(()=>{Z.current.confirmLoad||$("confirm",()=>Z.current.onConfirm?.())},[$]),ne=useRef(new Animated.Value(.7)).current,ie=useRef(null);useEffect(()=>{ie.current?.stop(),ne.setValue(o?.7:1);const e=Animated.timing(ne,{toValue:o?1:.9,duration:q?0:300,easing:o?Easing.out(Easing.cubic):Easing.in(Easing.cubic),useNativeDriver:nativeDriverEnabled,isInteraction:!1});ie.current=e,e.start()},[ne,o,q]),useEffect(()=>()=>{ie.current?.stop()},[]);const re={transform:[{scale:ne}]},ae=useMemo(()=>j?{wrap:[S.titleWrap,{paddingTop:_?M.spacing.titlePaddingTop:M.spacing.titleIsolatedPadding,paddingBottom:_?0:M.spacing.titleIsolatedPadding,paddingHorizontal:_?M.spacing.paddingHorizontal:0,marginBottom:_?M.spacing.titleGap:0}],text:[S.title,{color:M.colors.title,fontFamily:M.typography.fontFamily,fontSize:M.typography.titleSize,lineHeight:M.typography.titleLineHeight,fontWeight:M.typography.titleWeight},O]}:null,[j,_,O,M]),se=useMemo(()=>({text:[S.msg,{color:K?M.colors.title:M.colors.message,fontFamily:M.typography.fontFamily,fontSize:M.typography.messageSize,lineHeight:M.typography.messageLineHeight,textAlign:r},H],content:G?null:{alignItems:"center"===r?"center":"left"===r?"flex-start":"flex-end"},wrap:[S.msgWrap,{paddingTop:j?M.spacing.messagePaddingTop:M.spacing.messagePadding,paddingBottom:K?M.spacing.roundFooterPadding:M.spacing.messagePadding,paddingHorizontal:M.spacing.messagePaddingHorizontal}]}),[K,r,H,G,j,M]),le=useMemo(()=>({border:[S.footerBorder,createHairlineView({position:"top",color:M.colors.divider,left:0,right:0,top:0})],round:[S.roundFooter,{paddingTop:M.spacing.messagePaddingTop,paddingHorizontal:M.spacing.messagePaddingHorizontal,paddingBottom:M.spacing.roundFooterPadding}]}),[M]),ce=useMemo(()=>{const e=s?isNumber(s)?{width:s}:{width:String(s)}:{width:"90%",maxWidth:M.sizes.maxWidth};return[{backgroundColor:M.colors.background,borderRadius:M.sizes.borderRadius,padding:0},e,D]},[s,D,M]),de=useCallback(()=>{const e=Z.current.beforeClose;if(!e)return!0;try{return e("close")}catch{return!0}},[]),ge=useMemo(()=>J&&React.createElement(View,{style:le.round},v&&React.createElement(View,{style:[S.roundBtnWrap,P&&{marginRight:M.spacing.roundFooterGap}]},React.createElement(Button,{block:!0,round:!0,type:"warning",text:X,color:w,loading:Q,disabled:E?.disabled,onPress:te,style:{minHeight:M.sizes.roundButtonHeight}})),P&&React.createElement(View,{style:[S.roundBtnWrap,v&&{marginLeft:M.spacing.roundFooterGap}]},React.createElement(Button,{block:!0,round:!0,type:"danger",text:Y,color:k,loading:U,disabled:B?.disabled,onPress:oe,style:{minHeight:M.sizes.roundButtonHeight}}))),[w,Q,E?.disabled,X,k,U,B?.disabled,Y,te,oe,J,le.round,v,P,M.sizes.roundButtonHeight,M.spacing.roundFooterGap]),pe=useMemo(()=>J&&React.createElement(View,{style:S.footer},React.createElement(View,{style:le.border,pointerEvents:"none"}),v&&React.createElement(ActionButton,{tokens:M,text:X,color:w??M.colors.cancel,dividerPosition:"none",loading:Q,disabled:E?.disabled,onPress:te}),P&&React.createElement(ActionButton,{tokens:M,text:Y,color:k??M.colors.confirm,dividerPosition:v?"left":"none",loading:U,disabled:B?.disabled,onPress:oe})),[w,Q,E?.disabled,X,k,U,B?.disabled,Y,le.border,te,oe,J,v,P,M]),me=z??(K?ge:pe);return React.createElement(Popup,_extends({visible:o,placement:"center",round:!0,overlay:d,overlayStyle:g,overlayTestID:p,closeOnBackPress:m,closeOnPopstate:u,closeOnClickOverlay:f||y,onClickOverlay:b,beforeClose:de,onClose:F,onClosed:W,contentAnimationStyle:re,style:ce,accessibilityRole:"alertdialog",accessibilityLabel:"string"==typeof n?n:void 0},N),l&&React.createElement(Pressable,{style:[S.closeIcon,{top:M.spacing.paddingTop/2,right:M.spacing.paddingHorizontal/2,padding:M.spacing.closeIconPadding}],hitSlop:{top:8,bottom:8,left:8,right:8},onPress:ee},c??React.createElement(Close,{size:M.sizes.closeSize,fill:M.colors.closeIcon,color:M.colors.closeIcon})),ae&&React.createElement(View,{style:ae.wrap},renderTextOrNode(n,ae.text)),_&&React.createElement(View,{style:[S.content,se.content,I]},G?T:React.createElement(View,{style:se.wrap},renderTextOrNode(i,se.text))),me)},S=StyleSheet.create({titleWrap:{alignItems:"center"},title:{textAlign:"center"},content:{width:"100%"},msg:{textAlign:"center"},footer:{flexDirection:"row",position:"relative"},footerBorder:{position:"absolute",top:0,left:0,right:0,height:0},btn:{flex:1,alignItems:"center",justifyContent:"center"},btnDiv:{position:"absolute",pointerEvents:"none"},msgWrap:{width:"100%"},roundFooter:{width:"100%",flexDirection:"row"},roundBtnWrap:{flex:1},closeIcon:{position:"absolute",zIndex:1}});export const Dialog=React.memo(DialogImpl);Dialog.displayName="Dialog";export default Dialog;
1
+ function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var o=arguments[t];for(var n in o)({}).hasOwnProperty.call(o,n)&&(e[n]=o[n])}return e},_extends.apply(null,arguments)}import React,{useCallback,useEffect,useMemo,useRef}from"react";import{ActivityIndicator,Animated,Easing,Platform,Pressable,StyleSheet,View}from"react-native";import{useLocale}from"../config-provider/useLocale";import{nativeDriverEnabled}from"../../platform";import{useReducedMotion}from"../../hooks/animation";import{createHairlineView}from"../../utils/hairline";import{isPromiseLike}from"../../utils/promise";import{isNumber,isValidNode}from"../../utils/validate";import{renderTextOrNode}from"../../utils";import{Close}from"react-native-system-icon";import Button from"../button";import Popup from"../popup";import{useDialogTokens}from"./tokens";const ActionButton=e=>{const{text:t,color:o,tokens:n,dividerPosition:i="none",loading:r,disabled:a,onPress:s}=e,l=o??n.colors.confirm,c="none"===i?null:[S.btnDiv,{width:0},createHairlineView({position:i,color:n.colors.divider,top:0,bottom:0,[i]:0})];return React.createElement(Pressable,{accessibilityRole:"button",disabled:a||r,style:({pressed:e})=>[S.btn,{height:n.sizes.actionHeight,opacity:!e||a||r?1:.8}],onPress:a||r?void 0:s},c&&React.createElement(View,{style:c,pointerEvents:"none"}),r?React.createElement(ActivityIndicator,{size:"small",color:l}):renderTextOrNode(t??"",{color:l,fontFamily:n.typography.fontFamily,fontSize:n.typography.actionSize,fontWeight:n.typography.actionWeight}))},DialogImpl=e=>{const t=useLocale(),{visible:o,title:n,message:i,messageAlign:r="center",theme:a="default",width:s,closeable:l=!1,closeIcon:c,overlay:d=!0,overlayStyle:g,overlayTestID:p="dialog-overlay",closeOnBackPress:m=!1,closeOnPopstate:u=!0,closeOnOverlayPress:f=!1,closeOnClickOverlay:y=!1,onClickOverlay:b,onClickCloseIcon:h,beforeClose:C,showCancelButton:v=!1,showConfirmButton:P=!0,cancelButtonText:x,cancelButtonColor:w,cancelProps:E,confirmButtonText:R,confirmButtonColor:k,confirmProps:B,footer:z,contentStyle:I,titleStyle:O,messageStyle:H,tokensOverride:V,style:D,children:T,onCancel:L,onConfirm:A,onClose:F,onClosed:W,...N}=e,M=useDialogTokens(V),q=useReducedMotion(),j=isValidNode(n),G=isValidNode(T),_=isValidNode(i)||G,J=v||P,K="round-button"===a,Q=E?.loading,U=B?.loading,X=x??t.cancel,Y=R??t.confirm,Z=useRef({seq:0,beforeClose:C,onClose:F,onCancel:L,onConfirm:A,onClickCloseIcon:h,cancelLoad:Q,confirmLoad:U});Object.assign(Z.current,{beforeClose:C,onClose:F,onCancel:L,onConfirm:A,onClickCloseIcon:h,cancelLoad:Q,confirmLoad:U});const $=useCallback((e,t)=>{const o=Z.current;o.seq+=1;const n=o.seq,i=o.beforeClose;if(!i)return void t?.();let r;try{r=i(e)}catch{return void t?.()}!1!==r&&(isPromiseLike(r)?r.then(e=>{!1!==e&&Z.current.seq===n&&t?.()}).catch(()=>{Z.current.seq===n&&t?.()}):t?.())},[]),ee=useCallback(()=>{Z.current.onClickCloseIcon?.(),$("close",()=>Z.current.onClose?.())},[$]),te=useCallback(()=>{Z.current.cancelLoad||$("cancel",()=>Z.current.onCancel?.())},[$]),oe=useCallback(()=>{Z.current.confirmLoad||$("confirm",()=>Z.current.onConfirm?.())},[$]),ne=useRef(new Animated.Value(.7)).current,ie=useRef(null);useEffect(()=>{ie.current?.stop(),ne.setValue(o?.7:1);const e=Animated.timing(ne,{toValue:o?1:.9,duration:q?0:300,easing:o?Easing.out(Easing.cubic):Easing.in(Easing.cubic),useNativeDriver:nativeDriverEnabled,isInteraction:!1});ie.current=e,e.start()},[ne,o,q]),useEffect(()=>()=>{ie.current?.stop()},[]);const re={transform:[{scale:ne}]},ae=useMemo(()=>j?{wrap:[S.titleWrap,{paddingTop:_?M.spacing.titlePaddingTop:M.spacing.titleIsolatedPadding,paddingBottom:_?0:M.spacing.titleIsolatedPadding,paddingHorizontal:_?M.spacing.paddingHorizontal:0,marginBottom:_?M.spacing.titleGap:0}],text:[S.title,{color:M.colors.title,fontFamily:M.typography.fontFamily,fontSize:M.typography.titleSize,lineHeight:M.typography.titleLineHeight,fontWeight:M.typography.titleWeight},O]}:null,[j,_,O,M]),se=useMemo(()=>({text:[S.msg,{color:K?M.colors.title:M.colors.message,fontFamily:M.typography.fontFamily,fontSize:M.typography.messageSize,lineHeight:M.typography.messageLineHeight,textAlign:r},H],content:G?null:{alignItems:"center"===r?"center":"left"===r?"flex-start":"flex-end"},wrap:[S.msgWrap,{paddingTop:j?M.spacing.messagePaddingTop:M.spacing.messagePadding,paddingBottom:K?M.spacing.roundFooterPadding:M.spacing.messagePadding,paddingHorizontal:M.spacing.messagePaddingHorizontal}]}),[K,r,H,G,j,M]),le=useMemo(()=>({border:[S.footerBorder,createHairlineView({position:"top",color:M.colors.divider,left:0,right:0,top:0})],round:[S.roundFooter,{paddingTop:M.spacing.messagePaddingTop,paddingHorizontal:M.spacing.messagePaddingHorizontal,paddingBottom:M.spacing.roundFooterPadding}]}),[M]),ce=useMemo(()=>{const e=s?isNumber(s)?{width:s}:{width:String(s)}:{width:"90%",maxWidth:M.sizes.maxWidth};return[{backgroundColor:M.colors.background,borderRadius:M.sizes.borderRadius,padding:0},e,D]},[s,D,M]),de=useCallback(()=>{const e=Z.current.beforeClose;if(!e)return!0;try{return e("close")}catch{return!0}},[]),ge=useMemo(()=>J&&React.createElement(View,{style:le.round},v&&React.createElement(View,{style:[S.roundBtnWrap,P&&{marginRight:M.spacing.roundFooterGap}]},React.createElement(Button,{block:!0,round:!0,type:"warning",text:X,color:w,loading:Q,disabled:E?.disabled,onPress:te,style:{minHeight:M.sizes.roundButtonHeight}})),P&&React.createElement(View,{style:[S.roundBtnWrap,v&&{marginLeft:M.spacing.roundFooterGap}]},React.createElement(Button,{block:!0,round:!0,type:"danger",text:Y,color:k,loading:U,disabled:B?.disabled,onPress:oe,style:{minHeight:M.sizes.roundButtonHeight}}))),[w,Q,E?.disabled,X,k,U,B?.disabled,Y,te,oe,J,le.round,v,P,M.sizes.roundButtonHeight,M.spacing.roundFooterGap]),pe=useMemo(()=>J&&React.createElement(View,{style:S.footer},React.createElement(View,{style:le.border,pointerEvents:"none"}),v&&React.createElement(ActionButton,{tokens:M,text:X,color:w??M.colors.cancel,dividerPosition:"none",loading:Q,disabled:E?.disabled,onPress:te}),P&&React.createElement(ActionButton,{tokens:M,text:Y,color:k??M.colors.confirm,dividerPosition:v?"left":"none",loading:U,disabled:B?.disabled,onPress:oe})),[w,Q,E?.disabled,X,k,U,B?.disabled,Y,le.border,te,oe,J,v,P,M]),me=z??(K?ge:pe);return React.createElement(Popup,_extends({visible:o,placement:"center",round:!0,overlay:d,overlayStyle:g,overlayTestID:p,closeOnBackPress:m,closeOnPopstate:u,closeOnClickOverlay:f||y,onClickOverlay:b,beforeClose:de,onClose:F,onClosed:W,contentAnimationStyle:re,style:ce,accessibilityRole:"android"===Platform.OS?"alert":"alertdialog",accessibilityLabel:"string"==typeof n?n:void 0},N),l&&React.createElement(Pressable,{style:[S.closeIcon,{top:M.spacing.paddingTop/2,right:M.spacing.paddingHorizontal/2,padding:M.spacing.closeIconPadding}],hitSlop:{top:8,bottom:8,left:8,right:8},onPress:ee},c??React.createElement(Close,{size:M.sizes.closeSize,fill:M.colors.closeIcon,color:M.colors.closeIcon})),ae&&React.createElement(View,{style:ae.wrap},renderTextOrNode(n,ae.text)),_&&React.createElement(View,{style:[S.content,se.content,I]},G?T:React.createElement(View,{style:se.wrap},renderTextOrNode(i,se.text))),me)},S=StyleSheet.create({titleWrap:{alignItems:"center"},title:{textAlign:"center"},content:{width:"100%"},msg:{textAlign:"center"},footer:{flexDirection:"row",position:"relative"},footerBorder:{position:"absolute",top:0,left:0,right:0,height:0},btn:{flex:1,alignItems:"center",justifyContent:"center"},btnDiv:{position:"absolute",pointerEvents:"none"},msgWrap:{width:"100%"},roundFooter:{width:"100%",flexDirection:"row"},roundBtnWrap:{flex:1},closeIcon:{position:"absolute",zIndex:1}});export const Dialog=React.memo(DialogImpl);Dialog.displayName="Dialog";export default Dialog;
@@ -1 +1 @@
1
- import{createComponentTokensHook}from"../../design-system";export const createDialogTokens=e=>{const{palette:i,spacing:t,radii:o,fontSize:a,typography:n}=e;return{colors:{background:"#ffffff",title:i.default[900],message:i.default[600],divider:i.default[200],cancel:i.default[700],confirm:i.danger[500],closeIcon:i.default[500]},spacing:{paddingHorizontal:t.lg,paddingTop:t.lg,paddingBottom:t.md,titlePaddingTop:22,titleIsolatedPadding:t.lg,messagePadding:20,messagePaddingTop:t.xs,messagePaddingHorizontal:t.lg,titleGap:t.sm,footerGap:t.md,roundFooterPadding:t.md,roundFooterGap:t.sm,closeIconPadding:t.xs},sizes:{minWidth:280,maxWidth:360,borderRadius:o.lg,closeSize:20,actionHeight:48,roundButtonHeight:40},typography:{fontFamily:n.fontFamily,titleSize:a.md,titleLineHeight:a.md*n.lineHeightMultiplier,titleWeight:n.weight.semiBold,messageSize:a.sm,messageLineHeight:a.sm*n.lineHeightMultiplier,actionSize:a.md,actionWeight:n.weight.medium}}};export const useDialogTokens=createComponentTokensHook("dialog",createDialogTokens);
1
+ import{createComponentTokensHook}from"../../design-system";export const createDialogTokens=e=>{const{palette:i,spacing:t,radii:o,fontSize:a,typography:n}=e;return{colors:{background:e.surface??"#ffffff",title:i.default[900],message:i.default[600],divider:i.default[200],cancel:i.default[700],confirm:i.danger[500],closeIcon:i.default[500]},spacing:{paddingHorizontal:t.lg,paddingTop:t.lg,paddingBottom:t.md,titlePaddingTop:22,titleIsolatedPadding:t.lg,messagePadding:20,messagePaddingTop:t.xs,messagePaddingHorizontal:t.lg,titleGap:t.sm,footerGap:t.md,roundFooterPadding:t.md,roundFooterGap:t.sm,closeIconPadding:t.xs},sizes:{minWidth:280,maxWidth:360,borderRadius:o.lg,closeSize:20,actionHeight:48,roundButtonHeight:40},typography:{fontFamily:n.fontFamily,titleSize:a.md,titleLineHeight:a.md*n.lineHeightMultiplier,titleWeight:n.weight.semiBold,messageSize:a.sm,messageLineHeight:a.sm*n.lineHeightMultiplier,actionSize:a.md,actionWeight:n.weight.medium}}};export const useDialogTokens=createComponentTokensHook("dialog",createDialogTokens);
@@ -0,0 +1 @@
1
+ export{};
@@ -0,0 +1 @@
1
+ export{};
@@ -0,0 +1 @@
1
+ export{};
@@ -0,0 +1 @@
1
+ export{};
@@ -0,0 +1 @@
1
+ export{};
@@ -0,0 +1 @@
1
+ export{};
@@ -1 +1 @@
1
- function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},_extends.apply(null,arguments)}import React,{useCallback,useContext,useEffect,useImperativeHandle,useMemo,useRef,useState}from"react";import{View}from"react-native";import{shallowEqualObject,renderTextOrNode}from"../../utils";import{isPromiseLike}from"../../utils/promise";import{isNumber,isString,isText}from"../../utils/validate";import{FORM_ALL_FIELDS_KEY,getValueByName,normalizeTrigger,serializeNamePath,setValueByName}from"./utils";import{useLocale}from"../config-provider/useLocale";export const FormContext=React.createContext(null);const runRuleValidation=(e,t,r,n)=>{const a=e.message??n??"Validation failed",i=null==t||""===t||Array.isArray(t)&&0===t.length;if(e.required&&(i||e.whitespace&&isString(t)&&0===t.trim().length))return a;if(i)return null;if(e.pattern&&isString(t)&&!e.pattern.test(t))return a;if(void 0!==e.len||void 0!==e.min||void 0!==e.max){const r=isNumber(t)?t:isString(t)||Array.isArray(t)?t.length:0;if(void 0!==e.len&&r!==e.len)return a;if(void 0!==e.min&&r<e.min)return a;if(void 0!==e.max&&r>e.max)return a}if(!e.validator)return null;const u=e=>isString(e)?e:!1===e?a:null,s=e.validator(t,r);return isPromiseLike(s)?s.then(u):u(s)},InternalFormImpl=(e,t)=>{const{initialValues:r,colon:n,labelWidth:a,showValidateMessage:i=!0,onValuesChange:u,onFinish:s,style:l,footer:c,children:o,...m}=e,d=useLocale(),f=useRef({}),g=useRef({}),h=useRef(r??f.current),V=useRef({}),F=useRef(new Map),v=useRef(r??f.current),b=useRef({}),y=useRef(new Set),N=useRef(u),p=useRef(s);N.current=u,p.current=s;const R=r??f.current,[,E]=useState(0),x=useCallback((e,t)=>{y.current.forEach(r=>r(e,t))},[]);useEffect(()=>{shallowEqualObject(h.current,R)||(h.current=R,v.current=R,g.current={},E(e=>e+1),x({[FORM_ALL_FIELDS_KEY]:!0},R))},[R,x]);const L=useCallback((e,t)=>{const r=serializeNamePath(e),n=g.current[r];if(!t.length){if(!n)return;const t={...g.current};return delete t[r],g.current=t,void x({[r]:getValueByName(v.current,e)},v.current)}n?.[0]===t[0]&&n.length===t.length||(g.current={...g.current,[r]:t},x({[r]:getValueByName(v.current,e)},v.current))},[x]),B=useCallback((e,t)=>{const r=serializeNamePath(e),n=V.current[r];if(n?.dependencies?.length)for(const e of n.dependencies){const t=serializeNamePath(e),n=F.current.get(t);n&&(n.delete(r),n.size||F.current.delete(t))}if(V.current[r]={...t,name:e},t.dependencies?.length)for(const e of t.dependencies){const t=serializeNamePath(e),n=F.current.get(t);n?n.add(r):F.current.set(t,new Set([r]))}if(void 0!==t.initialValue){void 0===getValueByName(h.current,e)&&(h.current=setValueByName(h.current,e,t.initialValue));if(void 0===getValueByName(v.current,e)){const n=setValueByName(v.current,e,t.initialValue);v.current=n,x({[r]:t.initialValue},n)}}return()=>{const t=V.current[r];if(delete V.current[r],t?.dependencies?.length)for(const e of t.dependencies){const t=serializeNamePath(e),n=F.current.get(t);n&&(n.delete(r),n.size||F.current.delete(t))}L(e,[])}},[x,L]),_=useRef(d);_.current=d;const C=useCallback(async(e,t,r,n)=>{const a=serializeNamePath(e),i=(b.current[a]??0)+1;b.current[a]=i;const u=V.current[a],s=u?.rules??[];if(!s.length)return L(e,[]),!0;let l=t?s.filter(e=>{const r=e.validateTrigger??u.validateTrigger;return!r||normalizeTrigger(r).includes(t)}):s;if(!l.length){if(!g.current[a]?.length)return!0;l=s}const c=n??v.current,o=r??getValueByName(c,e),m=_.current?.vanForm?.validationFailed;for(const t of l){const r=runRuleValidation(t,o,c,m),n=isPromiseLike(r)?await r:r;if(b.current[a]!==i)return!0;if(n)return L(e,[n]),!1}return b.current[a]!==i||L(e,[]),!0},[L]),P=useCallback(async e=>{const t=e??Object.values(V.current).map(e=>e.name);if((await Promise.all(t.map(e=>C(e)))).some(e=>!e))throw g.current;return v.current},[C]),z=useCallback((e,t,r,n,a)=>{C(t,r,n,a);const i=F.current.get(e);if(i?.size)for(const e of i){const t=V.current[e];t&&C(t.name,r,getValueByName(a,t.name),a)}},[C]),S=useCallback((e,t,r)=>{const n=serializeNamePath(e),a=v.current;if(getValueByName(a,e)===t)return;const i=setValueByName(a,e,t);v.current=i,N.current?.(i,n,t),z(n,e,r,t,i),x({[n]:t},i)},[x,z]),w=useMemo(()=>({submit:async()=>{try{const e=await P();return p.current?.(e),e}catch{return}},getFieldsValue:()=>v.current,setFieldsValue:(e,t)=>{const r=t?.validate??!1,n=v.current;let a=n;const i={};Object.keys(e).forEach(t=>{const n=e[t];getValueByName(a,t)!==n&&(i[t]=n,a=setValueByName(a,t,n),N.current?.(a,t,n),r&&z(t,t,void 0,n,a))}),a!==n&&(v.current=a,x(i,a))},resetFields:()=>{let e=h.current;Object.values(V.current).forEach(t=>{void 0!==t.initialValue&&void 0===getValueByName(e,t.name)&&(e=setValueByName(e,t.name,t.initialValue))}),v.current=e,g.current={},x({[FORM_ALL_FIELDS_KEY]:!0},e)},validateFields:P,getFieldError:e=>g.current[serializeNamePath(e)]??[]}),[P,z,x]);useImperativeHandle(t,()=>w,[w]);const O=useMemo(()=>({getFieldValue:e=>getValueByName(v.current,e),setFieldValue:S,registerField:B,getFieldError:e=>g.current[serializeNamePath(e)],validateField:(e,t)=>C(e,t),getFieldsValue:()=>v.current,subscribe:e=>(y.current.add(e),()=>y.current.delete(e)),form:w,colon:n,labelWidth:a,showValidateMessage:i}),[S,B,C,w,n,a,i]);return React.createElement(FormContext.Provider,{value:O},React.createElement(View,_extends({style:l},m),o,isText(c)?renderTextOrNode(c,[]):c))},InternalFormRef=React.forwardRef(InternalFormImpl),InternalForm=React.memo(InternalFormRef);export const useWatch=(e,t)=>{const r=useContext(FormContext),n=void 0===e?void 0:Array.isArray(e)?e.length&&isText(e[0])?[e]:e:[e],a=useCallback(e=>{const a=e??r?.getFieldsValue?.()??t?.current?.getFieldsValue?.()??{};if(!n)return a;if(1===n.length)return getValueByName(a,n[0]);const i={};for(const e of n)i[serializeNamePath(e)]=getValueByName(a,e);return i},[r,t,n]),[i,u]=useState(()=>a());return useEffect(()=>{if(r?.subscribe)return r.subscribe((e,t)=>{FORM_ALL_FIELDS_KEY in e?u(a(t)):n&&!n.some(t=>serializeNamePath(t)in e)||u(a(t))})},[r,a,n]),useEffect(()=>{u(a())},[a]),i};export const FormSubscribe=({to:e,children:t})=>{const r=useContext(FormContext),[n,a]=useState({});return useEffect(()=>{if(r?.subscribe)return r.subscribe(t=>{(!e||FORM_ALL_FIELDS_KEY in t||Object.keys(t).some(t=>e.includes(t)))&&a(t)})},[r,e]),React.createElement(React.Fragment,null,t(n,r?.form||null))};export default InternalForm;
1
+ function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var r=1;r<arguments.length;r++){var t=arguments[r];for(var n in t)({}).hasOwnProperty.call(t,n)&&(e[n]=t[n])}return e},_extends.apply(null,arguments)}import React,{useCallback,useContext,useEffect,useImperativeHandle,useMemo,useRef,useState}from"react";import{View}from"react-native";import{shallowEqualObject,renderTextOrNode}from"../../utils";import{isPromiseLike}from"../../utils/promise";import{isNumber,isString,isText}from"../../utils/validate";import{useLocale}from"../config-provider/useLocale";export const normalizeTrigger=e=>e?Array.isArray(e)?e:[e]:[];export const FORM_ALL_FIELDS_KEY="__form_all__";export const toNamePath=e=>null==e?[]:Array.isArray(e)?e:isNumber(e)?[e]:isString(e)?e.split("."):[String(e)];export const serializeNamePath=e=>toNamePath(e).join(".");export const getValueByName=(e,r)=>toNamePath(r).reduce((e,r)=>{if(null==e)return e;const t=String(r);if(Array.isArray(e)){const r=Number(t);return Number.isFinite(r)?e[r]:e[t]}return"object"==typeof e?e[t]:void 0},e);export const setValueByName=(e,r,t)=>{const n=toNamePath(r);if(!n.length)return e;const a=Array.isArray(e)?[...e]:"object"==typeof e&&null!==e?{...e}:{};let i=a;return n.forEach((e,r)=>{const a=String(e),u=Number(a);if(r===n.length-1)return void(Array.isArray(i)&&Number.isFinite(u)?i[u]=t:i[a]=t);const s=Array.isArray(i)&&Number.isFinite(u)?i[u]:i[a],l=null==s?isNumber(n[r+1])?[]:{}:Array.isArray(s)?[...s]:"object"==typeof s?{...s}:{};Array.isArray(i)&&Number.isFinite(u)?i[u]=l:i[a]=l,i=l}),a};export const FormContext=React.createContext(null);const runRuleValidation=(e,r,t,n)=>{const a=e.message??n??"Validation failed",i=null==r||""===r||Array.isArray(r)&&0===r.length;if(e.required&&(i||e.whitespace&&isString(r)&&0===r.trim().length))return a;if(i)return null;if(e.pattern&&isString(r)&&!e.pattern.test(r))return a;if(void 0!==e.len||void 0!==e.min||void 0!==e.max){const t=isNumber(r)?r:isString(r)||Array.isArray(r)?r.length:0;if(void 0!==e.len&&t!==e.len)return a;if(void 0!==e.min&&t<e.min)return a;if(void 0!==e.max&&t>e.max)return a}if(!e.validator)return null;const u=e=>isString(e)?e:!1===e?a:null,s=e.validator(r,t);return isPromiseLike(s)?s.then(u):u(s)},InternalFormImpl=(e,r)=>{const{initialValues:t,colon:n,labelWidth:a,showValidateMessage:i=!0,onValuesChange:u,onFinish:s,style:l,footer:c,children:o,...m}=e,f=useLocale(),d=useRef({}),g=useRef({}),y=useRef(t??d.current),h=useRef({}),N=useRef(new Map),b=useRef(t??d.current),p=useRef({}),V=useRef(new Set),v=useRef(u),F=useRef(s);v.current=u,F.current=s;const x=t??d.current,[,R]=useState(0),_=useCallback((e,r)=>{V.current.forEach(t=>t(e,r))},[]);useEffect(()=>{shallowEqualObject(y.current,x)||(y.current=x,b.current=x,g.current={},R(e=>e+1),_({[FORM_ALL_FIELDS_KEY]:!0},x))},[x,_]);const A=useCallback((e,r)=>{const t=serializeNamePath(e),n=g.current[t];if(!r.length){if(!n)return;const r={...g.current};return delete r[t],g.current=r,void _({[t]:getValueByName(b.current,e)},b.current)}n?.[0]===r[0]&&n.length===r.length||(g.current={...g.current,[t]:r},_({[t]:getValueByName(b.current,e)},b.current))},[_]),E=useCallback((e,r)=>{const t=serializeNamePath(e),n=h.current[t];if(n?.dependencies?.length)for(const e of n.dependencies){const r=serializeNamePath(e),n=N.current.get(r);n&&(n.delete(t),n.size||N.current.delete(r))}if(h.current[t]={...r,name:e},r.dependencies?.length)for(const e of r.dependencies){const r=serializeNamePath(e),n=N.current.get(r);n?n.add(t):N.current.set(r,new Set([t]))}if(void 0!==r.initialValue){void 0===getValueByName(y.current,e)&&(y.current=setValueByName(y.current,e,r.initialValue));if(void 0===getValueByName(b.current,e)){const n=setValueByName(b.current,e,r.initialValue);b.current=n,_({[t]:r.initialValue},n)}}return()=>{const r=h.current[t];if(delete h.current[t],r?.dependencies?.length)for(const e of r.dependencies){const r=serializeNamePath(e),n=N.current.get(r);n&&(n.delete(t),n.size||N.current.delete(r))}A(e,[])}},[_,A]),P=useRef(f);P.current=f;const B=useCallback(async(e,r,t,n)=>{const a=serializeNamePath(e),i=(p.current[a]??0)+1;p.current[a]=i;const u=h.current[a],s=u?.rules??[];if(!s.length)return A(e,[]),!0;let l=r?s.filter(e=>{const t=e.validateTrigger??u.validateTrigger;return!t||normalizeTrigger(t).includes(r)}):s;if(!l.length){if(!g.current[a]?.length)return!0;l=s}const c=n??b.current,o=t??getValueByName(c,e),m=P.current?.vanForm?.validationFailed;for(const r of l){const t=runRuleValidation(r,o,c,m),n=isPromiseLike(t)?await t:t;if(p.current[a]!==i)return!0;if(n)return A(e,[n]),!1}return p.current[a]!==i||A(e,[]),!0},[A]),S=useCallback(async e=>{const r=e??Object.values(h.current).map(e=>e.name);if((await Promise.all(r.map(e=>B(e)))).some(e=>!e))throw g.current;return b.current},[B]),C=useCallback((e,r,t,n,a)=>{B(r,t,n,a);const i=N.current.get(e);if(i?.size)for(const e of i){const r=h.current[e];r&&B(r.name,t,getValueByName(a,r.name),a)}},[B]),z=useCallback((e,r,t)=>{const n=serializeNamePath(e),a=b.current;if(getValueByName(a,e)===r)return;const i=setValueByName(a,e,r);b.current=i,v.current?.(i,n,r),C(n,e,t,r,i),_({[n]:r},i)},[_,C]),w=useMemo(()=>({submit:async()=>{try{const e=await S();return F.current?.(e),e}catch{return}},getFieldsValue:()=>b.current,setFieldsValue:(e,r)=>{const t=r?.validate??!1,n=b.current;let a=n;const i={};Object.keys(e).forEach(r=>{const n=e[r];getValueByName(a,r)!==n&&(i[r]=n,a=setValueByName(a,r,n),v.current?.(a,r,n),t&&C(r,r,void 0,n,a))}),a!==n&&(b.current=a,_(i,a))},resetFields:()=>{let e=y.current;Object.values(h.current).forEach(r=>{void 0!==r.initialValue&&void 0===getValueByName(e,r.name)&&(e=setValueByName(e,r.name,r.initialValue))}),b.current=e,g.current={},_({[FORM_ALL_FIELDS_KEY]:!0},e)},validateFields:S,getFieldError:e=>g.current[serializeNamePath(e)]??[]}),[S,C,_]);useImperativeHandle(r,()=>w,[w]);const L=useMemo(()=>({getFieldValue:e=>getValueByName(b.current,e),setFieldValue:z,registerField:E,getFieldError:e=>g.current[serializeNamePath(e)],validateField:(e,r)=>B(e,r),getFieldsValue:()=>b.current,subscribe:e=>(V.current.add(e),()=>V.current.delete(e)),form:w,colon:n,labelWidth:a,showValidateMessage:i}),[z,E,B,w,n,a,i]);return React.createElement(FormContext.Provider,{value:L},React.createElement(View,_extends({style:l},m),o,isText(c)?renderTextOrNode(c,[]):c))},InternalFormRef=React.forwardRef(InternalFormImpl),InternalForm=React.memo(InternalFormRef);export const useWatch=(e,r)=>{const t=useContext(FormContext),n=void 0===e?void 0:Array.isArray(e)?e.length&&isText(e[0])?[e]:e:[e],a=useCallback(e=>{const a=e??t?.getFieldsValue?.()??r?.current?.getFieldsValue?.()??{};if(!n)return a;if(1===n.length)return getValueByName(a,n[0]);const i={};for(const e of n)i[serializeNamePath(e)]=getValueByName(a,e);return i},[t,r,n]),[i,u]=useState(()=>a());return useEffect(()=>{if(t?.subscribe)return t.subscribe((e,r)=>{"__form_all__"in e?u(a(r)):n&&!n.some(r=>serializeNamePath(r)in e)||u(a(r))})},[t,a,n]),useEffect(()=>{u(a())},[a]),i};export const FormSubscribe=({to:e,children:r})=>{const t=useContext(FormContext),[n,a]=useState({});return useEffect(()=>{if(t?.subscribe)return t.subscribe(r=>{(!e||"__form_all__"in r||Object.keys(r).some(r=>e.includes(r)))&&a(r)})},[t,e]),React.createElement(React.Fragment,null,r(n,t?.form||null))};export default InternalForm;
@@ -1 +1 @@
1
- import React,{useContext,useEffect,useRef,useState}from"react";import{isFunction,isString}from"../../utils";import{FormContext}from"./FormContext";import{FORM_ALL_FIELDS_KEY,normalizeTrigger,serializeNamePath}from"./utils";const EMPTY_RULES=[],EMPTY_VALUES={},FormItemImpl=({name:e,label:t,description:r,intro:i,tooltip:l,rules:o,dependencies:n,valuePropName:a="value",trigger:s="onChangeText",validateTrigger:u,showValidateMessage:d,required:c,shouldUpdate:m,initialValue:F,children:g})=>{const p="function"==typeof g,f=useContext(FormContext),E=o??EMPTY_RULES,v=e?serializeNamePath(e):void 0,R=p&&!v&&!m,V=useRef(EMPTY_VALUES),[,h]=useState(0);useEffect(()=>{if(f?.subscribe)return f.subscribe((e,t)=>{FORM_ALL_FIELDS_KEY in e||R?h(e=>e+1):m?m(V.current,t)&&h(e=>e+1):v&&v in e&&h(e=>e+1)})},[f,v,m,R]);const b=f?.getFieldsValue()??EMPTY_VALUES;if(useEffect(()=>{V.current=b},[b]),useEffect(()=>{if(e&&f)return f.registerField(e,{rules:E,dependencies:n,initialValue:F,validateTrigger:u??s})},[f,e,E,n,F,u,s]),!f)return p?React.createElement(React.Fragment,null,g({getFieldValue:()=>{},getFieldsValue:()=>EMPTY_VALUES,form:null})):React.createElement(React.Fragment,null,g);const I=!m||m(V.current,b),L=e?f.getFieldValue(e):void 0,M=d??f.showValidateMessage??!0,S=e?f.getFieldError(e):void 0,_=M?S?.[0]:void 0,T=c??E.some(e=>e.required),P=normalizeTrigger(u??s);if(p)return I?React.createElement(React.Fragment,null,g({getFieldValue:f.getFieldValue,getFieldsValue:f.getFieldsValue,form:f.form||null})):null;if(!e)return React.createElement(React.Fragment,null,g);if(!I)return null;const x=React.Children.toArray(g);if(1!==x.length)return React.createElement(React.Fragment,null,g);const Y=x[0],A=Y.type.displayName,C=isString(A)&&(A.includes("Field")||A.includes("Input")),U={[a]:(()=>{const e=Y.props[a];return void 0!==e?e:void 0!==L?L:C&&"value"===a?"":L})(),[s]:t=>{f.setFieldValue(e,t,s);const r=Y.props[s];isFunction(r)&&r(t)}};P.forEach(t=>{if(!t||t===s)return;const r=Y.props[t];U[t]=(...i)=>{isFunction(r)&&r(...i),f.validateField(e,t)}});const y=Y.props;return void 0!==t&&void 0===y.label&&(U.label=t),void 0!==f.colon&&void 0!==U.label&&void 0===y.colon&&(U.colon=f.colon),void 0!==f.labelWidth&&void 0===y.labelWidth&&(U.labelWidth=f.labelWidth),r&&void 0===y.description&&(U.description=r),i&&void 0===y.intro&&(U.intro=i),l&&void 0===y.tooltip&&(U.tooltip=l),T&&void 0===y.required&&(U.required=!0),_&&void 0===y.errorMessage&&(U.error=!0,U.errorMessage=_),React.cloneElement(Y,U)};FormItemImpl.displayName="FormItem";export const FormItem=React.memo(FormItemImpl);export default FormItem;
1
+ import React,{useContext,useEffect,useRef,useState}from"react";import{isFunction,isString}from"../../utils";import{FormContext,FORM_ALL_FIELDS_KEY,normalizeTrigger,serializeNamePath}from"./Form";const EMPTY_RULES=[],EMPTY_VALUES={},FormItemImpl=({name:e,label:t,description:r,intro:i,tooltip:l,rules:o,dependencies:n,valuePropName:a="value",trigger:s="onChangeText",validateTrigger:u,showValidateMessage:d,required:c,shouldUpdate:m,initialValue:F,children:g})=>{const p="function"==typeof g,f=useContext(FormContext),E=o??EMPTY_RULES,v=e?serializeNamePath(e):void 0,R=p&&!v&&!m,V=useRef(EMPTY_VALUES),[,h]=useState(0);useEffect(()=>{if(f?.subscribe)return f.subscribe((e,t)=>{FORM_ALL_FIELDS_KEY in e||R?h(e=>e+1):m?m(V.current,t)&&h(e=>e+1):v&&v in e&&h(e=>e+1)})},[f,v,m,R]);const b=f?.getFieldsValue()??EMPTY_VALUES;if(useEffect(()=>{V.current=b},[b]),useEffect(()=>{if(e&&f)return f.registerField(e,{rules:E,dependencies:n,initialValue:F,validateTrigger:u??s})},[f,e,E,n,F,u,s]),!f)return p?React.createElement(React.Fragment,null,g({getFieldValue:()=>{},getFieldsValue:()=>EMPTY_VALUES,form:null})):React.createElement(React.Fragment,null,g);const I=!m||m(V.current,b),L=e?f.getFieldValue(e):void 0,M=d??f.showValidateMessage??!0,S=e?f.getFieldError(e):void 0,_=M?S?.[0]:void 0,T=c??E.some(e=>e.required),P=normalizeTrigger(u??s);if(p)return I?React.createElement(React.Fragment,null,g({getFieldValue:f.getFieldValue,getFieldsValue:f.getFieldsValue,form:f.form||null})):null;if(!e)return React.createElement(React.Fragment,null,g);if(!I)return null;const Y=React.Children.toArray(g);if(1!==Y.length)return React.createElement(React.Fragment,null,g);const x=Y[0],A=x.type.displayName,U=isString(A)&&(A.includes("Field")||A.includes("Input")),C={[a]:(()=>{const e=x.props[a];return void 0!==e?e:void 0!==L?L:U&&"value"===a?"":L})(),[s]:t=>{f.setFieldValue(e,t,s);const r=x.props[s];isFunction(r)&&r(t)}};P.forEach(t=>{if(!t||t===s)return;const r=x.props[t];C[t]=(...i)=>{isFunction(r)&&r(...i),f.validateField(e,t)}});const y=x.props;return void 0!==t&&void 0===y.label&&(C.label=t),void 0!==f.colon&&void 0!==C.label&&void 0===y.colon&&(C.colon=f.colon),void 0!==f.labelWidth&&void 0===y.labelWidth&&(C.labelWidth=f.labelWidth),r&&void 0===y.description&&(C.description=r),i&&void 0===y.intro&&(C.intro=i),l&&void 0===y.tooltip&&(C.tooltip=l),T&&void 0===y.required&&(C.required=!0),_&&void 0===y.errorMessage&&(C.error=!0,C.errorMessage=_),React.cloneElement(x,C)};FormItemImpl.displayName="FormItem";export const FormItem=React.memo(FormItemImpl);export default FormItem;