react-native-system-ui 1.0.8 → 1.0.9

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 (30) hide show
  1. package/README.md +1 -1
  2. package/dist/cjs/components/action-sheet/ActionSheet.js +1 -1
  3. package/dist/cjs/components/cascader/Cascader.js +1 -1
  4. package/dist/cjs/components/cell/Cell.js +1 -1
  5. package/dist/cjs/components/collapse/Collapse.js +1 -1
  6. package/dist/cjs/components/dialog/Dialog.js +1 -1
  7. package/dist/cjs/components/empty/Empty.js +1 -1
  8. package/dist/cjs/components/field/Field.js +1 -1
  9. package/dist/cjs/components/nav-bar/NavBar.js +1 -1
  10. package/dist/cjs/components/notice-bar/NoticeBar.js +1 -1
  11. package/dist/cjs/components/popup/Popup.js +1 -1
  12. package/dist/cjs/components/search/Search.js +1 -1
  13. package/dist/cjs/components/tag/Tag.js +1 -1
  14. package/dist/cjs/components/toast/Toast.js +1 -1
  15. package/dist/cjs/hooks/field/renderers.js +1 -1
  16. package/dist/es/components/action-sheet/ActionSheet.js +1 -1
  17. package/dist/es/components/cascader/Cascader.js +1 -1
  18. package/dist/es/components/cell/Cell.js +1 -1
  19. package/dist/es/components/collapse/Collapse.js +1 -1
  20. package/dist/es/components/dialog/Dialog.js +1 -1
  21. package/dist/es/components/empty/Empty.js +1 -1
  22. package/dist/es/components/field/Field.js +1 -1
  23. package/dist/es/components/nav-bar/NavBar.js +1 -1
  24. package/dist/es/components/notice-bar/NoticeBar.js +1 -1
  25. package/dist/es/components/popup/Popup.js +1 -1
  26. package/dist/es/components/search/Search.js +1 -1
  27. package/dist/es/components/tag/Tag.js +1 -1
  28. package/dist/es/components/toast/Toast.js +1 -1
  29. package/dist/es/hooks/field/renderers.js +1 -1
  30. package/package.json +17 -18
package/README.md CHANGED
@@ -176,4 +176,4 @@ enableNativeWind(cssInterop)
176
176
 
177
177
  ## 版本与反馈
178
178
 
179
- 当前为 v1.0.8,欢迎 issue / PR。
179
+ 当前为 v1.0.9,欢迎 issue / PR。
@@ -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}function _reactNativeSystemIcon(){const e=require("react-native-system-icon");return _reactNativeSystemIcon=function(){return e},e}Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _hooks=require("../../hooks"),_utils=require("../../utils"),_loading=_interopRequireDefault(require("../loading")),_popup=_interopRequireDefault(require("../popup")),_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 o,l,c={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return c;if(o=t?a:r){if(o.has(e))return o.get(e);o.set(e,c)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((l=(o=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(l.get||l.set)?o(c,t,l):c[t]=e[t]);return c})(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 defaultCloseIcon=_react().default.createElement(_reactNativeSystemIcon().Close,{size:18}),ActionSheetHeader=_react().default.memo(({title:e,closeable:t,closeIcon:r,tokens:a,onClose:o})=>{const l=(0,_hooks.useAriaPress)({onPress:o}),{colors:c,typography:n}=a;return _react().default.createElement(_reactNative().View,{style:a.layout.header},_react().default.createElement(_reactNative().View,{style:a.layout.titleContainer},(0,_utils.isText)(e)?(0,_utils.renderTextOrNode)(e,[a.layout.title,{color:c.title,fontSize:n.title}]):_react().default.createElement(_reactNative().View,{style:a.layout.titleNode},e)),t&&_react().default.createElement(_reactNative().Pressable,_extends({style:a.layout.closeButton,accessibilityRole:"button",hitSlop:8},l.interactionProps),_react().default.isValidElement(r)?_react().default.cloneElement(r,{fill:c.description,color:c.description}):(0,_utils.renderTextOrNode)(r,[{color:c.description}])))}),ActionSheetItem=_react().default.memo(({action:e,index:t,tokens:r,onActionPress:a})=>{const{disabled:o,loading:l,name:c,subname:n,icon:i}=e,{colors:s,spacing:u,typography:d}=r,_=(0,_hooks.useAriaPress)({disabled:!!o||!!l,onPress:(0,_react().useCallback)(()=>a(e,t),[e,t,a]),extraProps:{accessibilityRole:"web"===_reactNative().Platform.OS?"menuitem":"button",accessibilityLabel:(0,_utils.isText)(c)?String(c):void 0,accessibilityState:{disabled:!!o,busy:!!l},testID:`rv-action-sheet-item-${t}`}});return _react().default.createElement(_reactNative().Pressable,_extends({style:({pressed:t})=>[r.layout.item,!!i&&r.layout.itemWithIcon,{paddingVertical:u.vertical,paddingHorizontal:u.horizontal,backgroundColor:!t||e.disabled||e.loading?s.itemBackground:s.itemPressedBackground},e.style]},_.interactionProps),!!i&&_react().default.createElement(_reactNative().View,{style:r.layout.icon},(0,_utils.isText)(i)?(0,_utils.renderTextOrNode)(i,[{color:s.item}]):i),l?_react().default.createElement(_loading.default,{size:20}):(0,_utils.isRenderable)(c)?_react().default.createElement(_reactNative().View,{style:r.layout.itemTextWrapper},(0,_utils.renderTextOrNode)(c,[r.layout.itemText,{color:e.disabled?s.disabled:e.color??s.item,fontSize:d.item}]),(0,_utils.isRenderable)(n)&&((0,_utils.isText)(n)?(0,_utils.renderTextOrNode)(n,[r.layout.subname,{color:s.subitem}]):_react().default.createElement(_reactNative().View,{style:r.layout.subnameNode},n))):null)}),ActionSheetCancel=_react().default.memo(({cancelText:e,tokens:t,onPress:r})=>{const{colors:a,spacing:o,typography:l}=t,c=(0,_hooks.useAriaPress)({onPress:r,extraProps:{accessibilityRole:"button",testID:"rv-action-sheet-cancel"}});return _react().default.createElement(_react().default.Fragment,null,_react().default.createElement(_reactNative().View,{style:[t.layout.cancelGap,{height:o.cancelGap,backgroundColor:a.cancelGapBackground}]}),_react().default.createElement(_reactNative().Pressable,_extends({style:[t.layout.cancel,{paddingVertical:o.vertical,paddingHorizontal:o.horizontal,backgroundColor:a.cancelBackground}]},c.interactionProps),(0,_utils.renderTextOrNode)(e,[t.layout.cancelText,{color:a.cancel,fontSize:l.item}])))}),ActionSheetImpl=e=>{const{tokensOverride:t,visible:r,title:a,description:o,cancelText:l,actions:c=[],closeOnClickAction:n,closeOnSelect:i,closeable:s,closeIcon:u=defaultCloseIcon,beforeClose:d,onSelect:_,onCancel:f,onClose:p,children:y,round:m,safeAreaInsetBottom:b,overlay:v,lockScroll:k,style:h,...g}=e,x=(0,_tokens.useActionSheetTokens)(t),N=s??x.defaults.closeable,S=m??x.defaults.round,C=b??x.defaults.safeAreaInsetBottom,P=v??x.defaults.overlay,A=k??x.defaults.lockScroll,E=n??i??x.defaults.closeOnClickAction,w=(0,_utils.isRenderable)(a),R=(0,_utils.isRenderable)(o),O=(0,_utils.isRenderable)(l),T=(0,_react().useRef)("close"),I=(0,_react().useRef)(!1),V=(0,_react().useRef)(d);V.current=d;const q=(0,_react().useRef)(p);q.current=p;const z=(0,_react().useRef)(f);z.current=f;const B=(0,_react().useRef)(_);B.current=_;const W=(0,_react().useCallback)(async e=>{if(!V.current)return!0;try{return!1!==await V.current(e)}catch{return!0}},[]),M=(0,_react().useCallback)(e=>{if(q.current)return"cancel"===e&&z.current?.(),void q.current();z.current?.()},[]),j=(0,_react().useCallback)(async e=>{if(!I.current){I.current=!0;try{if(!await W(e))return;M(e)}finally{I.current=!1}}},[M,W]),D=(0,_react().useCallback)(e=>(T.current=e,W(e)),[W]),H=(0,_react().useCallback)(()=>{M(T.current)},[M]),G=(0,_react().useCallback)((e,t)=>{e.disabled||e.loading||(e.onPress?.(e),e.callback?.(e),B.current?.(e,t),E&&j("action"))},[j,E]),F=(0,_react().useMemo)(()=>[x.layout.popup,h],[x.layout.popup,h]);return _react().default.createElement(_popup.default,_extends({visible:r,placement:"bottom",round:S,safeAreaInsetTop:w&&N,safeAreaInsetBottom:C,overlay:P,lockScroll:A,beforeClose:D,onClose:H,style:F},g),_react().default.createElement(_reactNative().View,{accessibilityRole:"menu",style:[x.layout.panel,{backgroundColor:x.colors.background}]},w&&_react().default.createElement(ActionSheetHeader,{title:a,closeable:N,closeIcon:u,tokens:x,onClose:()=>{j("close-icon")}}),R&&_react().default.createElement(_reactNative().View,{style:x.layout.descriptionContainer},(0,_utils.isText)(o)?(0,_utils.renderTextOrNode)(o,[x.layout.description,{color:x.colors.description,fontSize:x.typography.description}]):_react().default.createElement(_reactNative().View,{style:x.layout.descriptionNode},o),_react().default.createElement(_reactNative().View,{style:(0,_utils.createHairlineView)({position:"bottom",color:x.colors.border,left:0,right:0})})),_react().default.createElement(_reactNative().View,{style:x.layout.actions},c.map((e,t)=>_react().default.createElement(ActionSheetItem,{key:e.key??t,action:e,index:t,tokens:x,onActionPress:G}))),y,O&&_react().default.createElement(ActionSheetCancel,{cancelText:l,tokens:x,onPress:()=>{j("cancel")}})))},ActionSheet=_react().default.memo(ActionSheetImpl);ActionSheet.displayName="ActionSheet";var _default=exports.default=ActionSheet;
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}function _Close(){const e=_interopRequireDefault(require("react-native-system-icon/Close"));return _Close=function(){return e},e}Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _hooks=require("../../hooks"),_utils=require("../../utils"),_loading=_interopRequireDefault(require("../loading")),_popup=_interopRequireDefault(require("../popup")),_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 o,l,n={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return n;if(o=t?a:r){if(o.has(e))return o.get(e);o.set(e,n)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((l=(o=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(l.get||l.set)?o(n,t,l):n[t]=e[t]);return n})(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 defaultCloseIcon=_react().default.createElement(_Close().default,{size:18}),ActionSheetHeader=_react().default.memo(({title:e,closeable:t,closeIcon:r,tokens:a,onClose:o})=>{const l=(0,_hooks.useAriaPress)({onPress:o}),{colors:n,typography:c}=a;return _react().default.createElement(_reactNative().View,{style:a.layout.header},_react().default.createElement(_reactNative().View,{style:a.layout.titleContainer},(0,_utils.isText)(e)?(0,_utils.renderTextOrNode)(e,[a.layout.title,{color:n.title,fontSize:c.title}]):_react().default.createElement(_reactNative().View,{style:a.layout.titleNode},e)),t&&_react().default.createElement(_reactNative().Pressable,_extends({style:a.layout.closeButton,accessibilityRole:"button",hitSlop:8},l.interactionProps),_react().default.isValidElement(r)?_react().default.cloneElement(r,{fill:n.description,color:n.description}):(0,_utils.renderTextOrNode)(r,[{color:n.description}])))}),ActionSheetItem=_react().default.memo(({action:e,index:t,tokens:r,onActionPress:a})=>{const{disabled:o,loading:l,name:n,subname:c,icon:i}=e,{colors:s,spacing:u,typography:d}=r,_=(0,_hooks.useAriaPress)({disabled:!!o||!!l,onPress:(0,_react().useCallback)(()=>a(e,t),[e,t,a]),extraProps:{accessibilityRole:"web"===_reactNative().Platform.OS?"menuitem":"button",accessibilityLabel:(0,_utils.isText)(n)?String(n):void 0,accessibilityState:{disabled:!!o,busy:!!l},testID:`rv-action-sheet-item-${t}`}});return _react().default.createElement(_reactNative().Pressable,_extends({style:({pressed:t})=>[r.layout.item,!!i&&r.layout.itemWithIcon,{paddingVertical:u.vertical,paddingHorizontal:u.horizontal,backgroundColor:!t||e.disabled||e.loading?s.itemBackground:s.itemPressedBackground},e.style]},_.interactionProps),!!i&&_react().default.createElement(_reactNative().View,{style:r.layout.icon},(0,_utils.isText)(i)?(0,_utils.renderTextOrNode)(i,[{color:s.item}]):i),l?_react().default.createElement(_loading.default,{size:20}):(0,_utils.isRenderable)(n)?_react().default.createElement(_reactNative().View,{style:r.layout.itemTextWrapper},(0,_utils.renderTextOrNode)(n,[r.layout.itemText,{color:e.disabled?s.disabled:e.color??s.item,fontSize:d.item}]),(0,_utils.isRenderable)(c)&&((0,_utils.isText)(c)?(0,_utils.renderTextOrNode)(c,[r.layout.subname,{color:s.subitem}]):_react().default.createElement(_reactNative().View,{style:r.layout.subnameNode},c))):null)}),ActionSheetCancel=_react().default.memo(({cancelText:e,tokens:t,onPress:r})=>{const{colors:a,spacing:o,typography:l}=t,n=(0,_hooks.useAriaPress)({onPress:r,extraProps:{accessibilityRole:"button",testID:"rv-action-sheet-cancel"}});return _react().default.createElement(_react().default.Fragment,null,_react().default.createElement(_reactNative().View,{style:[t.layout.cancelGap,{height:o.cancelGap,backgroundColor:a.cancelGapBackground}]}),_react().default.createElement(_reactNative().Pressable,_extends({style:[t.layout.cancel,{paddingVertical:o.vertical,paddingHorizontal:o.horizontal,backgroundColor:a.cancelBackground}]},n.interactionProps),(0,_utils.renderTextOrNode)(e,[t.layout.cancelText,{color:a.cancel,fontSize:l.item}])))}),ActionSheetImpl=e=>{const{tokensOverride:t,visible:r,title:a,description:o,cancelText:l,actions:n=[],closeOnClickAction:c,closeOnSelect:i,closeable:s,closeIcon:u=defaultCloseIcon,beforeClose:d,onSelect:_,onCancel:f,onClose:p,children:y,round:m,safeAreaInsetBottom:b,overlay:k,lockScroll:v,style:h,...g}=e,x=(0,_tokens.useActionSheetTokens)(t),C=s??x.defaults.closeable,N=m??x.defaults.round,P=b??x.defaults.safeAreaInsetBottom,S=k??x.defaults.overlay,A=v??x.defaults.lockScroll,E=c??i??x.defaults.closeOnClickAction,R=(0,_utils.isRenderable)(a),w=(0,_utils.isRenderable)(o),O=(0,_utils.isRenderable)(l),T=(0,_react().useRef)("close"),I=(0,_react().useRef)(!1),V=(0,_react().useRef)(d);V.current=d;const q=(0,_react().useRef)(p);q.current=p;const z=(0,_react().useRef)(f);z.current=f;const B=(0,_react().useRef)(_);B.current=_;const W=(0,_react().useCallback)(async e=>{if(!V.current)return!0;try{return!1!==await V.current(e)}catch{return!0}},[]),D=(0,_react().useCallback)(e=>{if(q.current)return"cancel"===e&&z.current?.(),void q.current();z.current?.()},[]),M=(0,_react().useCallback)(async e=>{if(!I.current){I.current=!0;try{if(!await W(e))return;D(e)}finally{I.current=!1}}},[D,W]),j=(0,_react().useCallback)(e=>(T.current=e,W(e)),[W]),H=(0,_react().useCallback)(()=>{D(T.current)},[D]),G=(0,_react().useCallback)((e,t)=>{e.disabled||e.loading||(e.onPress?.(e),e.callback?.(e),B.current?.(e,t),E&&M("action"))},[M,E]),F=(0,_react().useMemo)(()=>[x.layout.popup,h],[x.layout.popup,h]);return _react().default.createElement(_popup.default,_extends({visible:r,placement:"bottom",round:N,safeAreaInsetTop:R&&C,safeAreaInsetBottom:P,overlay:S,lockScroll:A,beforeClose:j,onClose:H,style:F},g),_react().default.createElement(_reactNative().View,{accessibilityRole:"menu",style:[x.layout.panel,{backgroundColor:x.colors.background}]},R&&_react().default.createElement(ActionSheetHeader,{title:a,closeable:C,closeIcon:u,tokens:x,onClose:()=>{M("close-icon")}}),w&&_react().default.createElement(_reactNative().View,{style:x.layout.descriptionContainer},(0,_utils.isText)(o)?(0,_utils.renderTextOrNode)(o,[x.layout.description,{color:x.colors.description,fontSize:x.typography.description}]):_react().default.createElement(_reactNative().View,{style:x.layout.descriptionNode},o),_react().default.createElement(_reactNative().View,{style:(0,_utils.createHairlineView)({position:"bottom",color:x.colors.border,left:0,right:0})})),_react().default.createElement(_reactNative().View,{style:x.layout.actions},n.map((e,t)=>_react().default.createElement(ActionSheetItem,{key:e.key??t,action:e,index:t,tokens:x,onActionPress:G}))),y,O&&_react().default.createElement(ActionSheetCancel,{cancelText:l,tokens:x,onPress:()=>{M("cancel")}})))},ActionSheet=_react().default.memo(ActionSheetImpl);ActionSheet.displayName="ActionSheet";var _default=exports.default=ActionSheet;
@@ -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}function _reactNativeSystemIcon(){const e=require("react-native-system-icon");return _reactNativeSystemIcon=function(){return e},e}Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _hooks=require("../../hooks"),_utils=require("../../utils"),_validate=require("../../utils/validate"),_popup=_interopRequireDefault(require("../popup")),_tabs=_interopRequireDefault(require("../tabs")),_useLocale=require("../config-provider/useLocale"),_tokens=require("./tokens"),_useCascaderExtend=require("./useCascaderExtend"),_utils2=require("../../hooks/cascader/utils");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _interopRequireWildcard(e,t){if("function"==typeof WeakMap)var a=new WeakMap,o=new WeakMap;return(_interopRequireWildcard=function(e,t){if(!t&&e&&e.__esModule)return e;var r,n,l={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return l;if(r=t?o:a){if(r.has(e))return r.get(e);r.set(e,l)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((n=(r=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(n.get||n.set)?r(l,t,n):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 o in a)({}).hasOwnProperty.call(a,o)&&(e[o]=a[o])}return e},_extends.apply(null,arguments)}const CascaderImpl=e=>{const{tokensOverride:t,options:a=[],title:o,placeholder:r,activeColor:n,fieldNames:l,optionRender:i,showHeader:s,closeable:c,closeIcon:u,onChange:d,onClose:p,onFinish:_,onClickTab:g,onTabChange:f,swipeable:y,style:h,testID:b,children:v,poppable:m,visible:C,defaultVisible:k,onVisibleChange:x,closeOnClickOverlay:N,closeOnFinish:T,popupPlacement:S,popupRound:I,popupProps:O,loadingText:E,...P}=e,w=(0,_useLocale.useLocale)(),z=(0,_tokens.useCascaderTokens)(t),V=o??w?.vanCascader?.placeholder??z.defaults.title,R=r??w?.vanCascader?.placeholder??z.defaults.placeholder,L=n??z.colors.tabActive,q=s??z.defaults.showHeader,H=y??z.defaults.swipeable,A=m??z.defaults.poppable,K=N??z.defaults.closeOnClickOverlay,W=T??z.defaults.closeOnFinish,M=S??z.defaults.popupPlacement,B=I??z.defaults.popupRound,D=E??z.defaults.loadingText,[j,F]=(0,_hooks.useControllableValue)(e,{defaultValue:[],trigger:"onChange"}),$=(0,_utils2.getFieldKeys)(l),G=Array.isArray(j)?j:[],[J,Q]=(0,_react().useState)(G),U=c??z.defaults.closeable,[X,Y]=(0,_hooks.useControllableValue)(e,{defaultValue:!1,valuePropName:"visible",defaultValuePropName:"defaultVisible",trigger:"onVisibleChange"}),Z=A?J:G,{tabs:ee,items:te,depth:ae}=(0,_useCascaderExtend.useCascaderExtend)(a,$,Z),{width:oe}=(0,_reactNative().useWindowDimensions)(),[re,ne]=(0,_react().useState)(0),le=(0,_react().useCallback)(e=>{const t=e.nativeEvent.layout.width;t&&ne(e=>e===t?e:t)},[]),ie=(0,_utils2.resolveRows)(a,$,G),[se,ce]=(0,_react().useState)(0);(0,_react().useEffect)(()=>{const e=ee.length;let t=Math.max(e-1,0);t>=ae&&(t=Math.max(ae-1,0)),ce(e=>e===t?e:t)},[ee.length,ae]),(0,_react().useEffect)(()=>{A&&X||Q(e=>(0,_utils.shallowEqualArray)(e,G)?e:G)},[G,A,X]);const ue=(0,_react().useCallback)(()=>{A&&!X&&(Q(e=>(0,_utils.shallowEqualArray)(e,G)?e:G),Y(!0))},[G,A,X,Y]),de=(0,_react().useRef)(p),pe=(0,_react().useRef)(d),_e=(0,_react().useRef)(_),ge=(0,_react().useRef)(g),fe=(0,_react().useRef)(f);de.current=p,pe.current=d,_e.current=_,ge.current=g,fe.current=f;const ye=(0,_react().useCallback)(e=>{A&&X&&(Y(!1),e&&de.current?.())},[A,X,Y]),he=(0,_react().useCallback)(()=>{A&&(X?ye(!0):ue())},[ye,ue,A,X]),be=(0,_validate.isFunction)(v),ve=be?v:null,me=(0,_react().useCallback)(e=>{const t=(0,_validate.isNumber)(e.index)?e.index:Number(e.name);if(Number.isNaN(t))return;const a=te[t]?.[$.textKey];ge.current?.(t,(0,_validate.isText)(a)?String(a):R)},[te,$.textKey,R]),Ce=(0,_react().useCallback)((e,t)=>{const a=(0,_validate.isNumber)(t)?t:Number(e);Number.isNaN(a)||(ce(a),fe.current?.(a))},[]),ke=(0,_react().useCallback)((e,t)=>{if(e.disabled)return;const o=e[$.valueKey];if(null==o)return;const r=[...(A?J:G).slice(0,t),o],n=(0,_utils2.resolveRows)(a,$,r),l=e[$.childrenKey]??[],i=Object.prototype.hasOwnProperty.call(e,$.childrenKey)&&!l.length,s=r.length>=ae,c=!l.length&&!i;A?(Q(r),pe.current?.(r,n)):F(r,n),(c||s)&&(A&&(F(r,n),W&&ye(!0)),_e.current?.(r,n))},[G,W,ye,ae,$,a,J,A,F]),xe=(0,_react().useCallback)(e=>{if(e<=0)return R;const t=te[e-1];if(!t)return R;if(!Object.prototype.hasOwnProperty.call(t,$.childrenKey))return R;return 0===(t[$.childrenKey]??[]).length&&Z.length===e?D:R},[Z.length,te,$.childrenKey,D,R]),Ne=A||be?null:v,Te=_react().default.createElement(_reactNative().View,_extends({testID:b,style:[z.layout.container,{backgroundColor:z.colors.background},h]},P),q?_react().default.createElement(_reactNative().View,{style:[z.layout.header,{height:z.sizing.headerHeight,paddingHorizontal:z.spacing.headerPaddingHorizontal}]},(0,_utils.renderTextOrNode)(V,[z.layout.title,{color:z.colors.headerText,fontSize:z.typography.titleSize,fontWeight:z.typography.titleWeight}]),U?_react().default.createElement(_reactNative().Pressable,{hitSlop:8,onPress:()=>{A?ye(!0):de.current?.()},style:[z.layout.closeButton,{marginLeft:z.spacing.closeButtonMarginLeft}],accessibilityRole:"button",accessibilityLabel:w?.vanCascader?.close??"Close"},u??(e=>_react().default.createElement(_reactNativeSystemIcon().Cross,{size:z.sizing.closeIconSize,fill:e.pressed?z.colors.closeIconActive:z.colors.closeIcon,color:e.pressed?z.colors.closeIconActive:z.colors.closeIcon}))):null):null,(()=>{if(!ee.length)return _react().default.createElement(CascaderOptionList,{optionList:[],tabIndex:0,selectedValue:Z[0],activeColor:L,keys:$,optionRender:i,onSelect:ke,tokens:z,emptyText:xe(0)});const e=!!H,t=re||oe||void 0,a={height:z.sizing.headerHeight,paddingHorizontal:z.spacing.tabNavPaddingHorizontal,paddingVertical:z.spacing.tabNavPaddingVertical,backgroundColor:z.colors.background};return _react().default.createElement(_reactNative().View,{style:z.layout.tabsWrapper,onLayout:le},_react().default.createElement(_tabs.default,{style:t?{width:t}:void 0,active:se,onChange:Ce,onClickTab:me,align:"center",swipeable:e,swipeThreshold:0,scrollable:!0,animated:!0,duration:300,color:L,lineHeight:z.sizing.indicatorHeight,titleActiveColor:z.colors.tabText,titleInactiveColor:z.colors.tabInactive,tabBarStyle:a,tabStyle:[z.layout.tabsItem,{paddingHorizontal:z.spacing.tabPaddingHorizontal}],titleStyle:[z.layout.tabsTitle,{fontSize:z.typography.tabsTitleSize}],contentStyle:e?void 0:z.layout.tabsContentStatic},ee.map((e,t)=>{const a=te[t],o=(0,_validate.isText)(a?.[$.textKey])?String(a?.[$.textKey]):"",r=!o;return _react().default.createElement(_tabs.default.TabPane,{key:t,name:t,title:e=>_react().default.createElement(_reactNative().Text,{style:[z.layout.tabTitleNode,{color:r?z.colors.tabInactive:z.colors.tabText,fontWeight:r?z.typography.tabTitlePlaceholderWeight:z.typography.tabTitleWeight}]},r?R:o)},_react().default.createElement(CascaderOptionList,{optionList:e,tabIndex:t,selectedValue:Z[t],activeColor:L,keys:$,optionRender:i,onSelect:ke,tokens:z,emptyText:xe(t)}))})))})(),Ne?_react().default.createElement(_reactNative().View,{style:[z.layout.inlineChildren,{paddingVertical:z.spacing.inlineChildrenPaddingVertical,paddingHorizontal:z.spacing.headerPaddingHorizontal}]},Ne):null);if(!A)return Te;const{closeOnOverlayPress:Se,overlay:Ie,onOpen:Oe,onOpened:Ee,onClose:Pe,onClosed:we,...ze}=O??{},Ve=(0,_react().useRef)(Pe);Ve.current=Pe;const Re=(0,_react().useCallback)(()=>{Ve.current?.(),ye(!0)},[ye]),Le={open:ue,close:()=>ye(!0),toggle:he},qe=(0,_react().useCallback)(e=>{if(!_react().default.isValidElement(e))return e;const t=e.props,a=()=>{t.onPress?.(),t.onClick?.(),ue()};return _react().default.cloneElement(e,{onPress:a,onClick:a})},[ue])(ve?ve(G,ie,Le):be?null:v||null);return _react().default.createElement(_react().default.Fragment,null,qe,_react().default.createElement(_popup.default,_extends({visible:X,placement:M,round:B,closeOnOverlayPress:Se??K,overlay:Ie??!0,safeAreaInsetTop:null!=ze?.safeAreaInsetTop?ze.safeAreaInsetTop:q&&U,safeAreaInsetBottom:null!=ze?.safeAreaInsetBottom?ze.safeAreaInsetBottom:"bottom"===M,onOpen:Oe,onOpened:Ee,onClose:Re,onClosed:we},ze,{style:{paddingLeft:0,paddingRight:0}}),Te))},CascaderOptionItem=_react().default.memo(({option:e,tabIndex:t,selected:a,activeColor:o,keys:r,optionRender:n,onSelect:l,tokens:i})=>{const s=e[r.valueKey],c=e[r.textKey],u=!!e.disabled,d=e.color??i.colors.optionText,p=u?i.colors.optionDisabled:a?e.color??o:d,_=[i.layout.optionText,{color:p,fontSize:i.typography.optionTextSize},a?{fontWeight:i.typography.optionTextActiveWeight}:null],g=n?n({option:e,selected:a}):(0,_utils.renderTextOrNode)(c,_),f=(0,_validate.isText)(g)?(0,_utils.renderTextOrNode)(g,_):g;return _react().default.createElement(_reactNative().Pressable,{testID:`cascader-option-${t}-${String(s)}`,style:({pressed:e})=>[i.layout.option,{minHeight:i.sizing.optionMinHeight,paddingVertical:i.spacing.optionPaddingVertical,paddingHorizontal:i.spacing.optionPaddingHorizontal},e&&!u&&{backgroundColor:i.colors.optionActiveBackground}],onPress:()=>l(e,t),disabled:u},_react().default.createElement(_reactNative().View,{style:i.layout.optionContent},_react().default.createElement(_reactNative().View,{style:[i.layout.optionLabel,{marginRight:i.spacing.optionLabelMarginRight}]},f),a?_react().default.createElement(_reactNativeSystemIcon().Checked,{size:i.sizing.selectedIconSize,fill:o,color:o}):null))}),CascaderOptionList=_react().default.memo(({optionList:e,tabIndex:t,selectedValue:a,activeColor:o,keys:r,optionRender:n,onSelect:l,tokens:i,emptyText:s})=>{const c=(0,_react().useCallback)(({item:e})=>_react().default.createElement(CascaderOptionItem,{option:e,tabIndex:t,selected:a===e[r.valueKey],activeColor:o,keys:r,optionRender:n,onSelect:l,tokens:i}),[o,r,l,n,a,t,i]),u=(0,_react().useCallback)(e=>String(e[r.valueKey]),[r.valueKey]);return e.length?_react().default.createElement(_reactNative().FlatList,{data:e,style:[i.layout.optionList,{height:i.sizing.optionListHeight}],contentContainerStyle:{paddingTop:i.spacing.optionListPaddingTop,paddingBottom:i.spacing.optionListPaddingBottom},showsVerticalScrollIndicator:!1,renderItem:c,keyExtractor:u,removeClippedSubviews:!0,initialNumToRender:20,windowSize:5}):_react().default.createElement(_reactNative().View,{style:[i.layout.optionList,{height:i.sizing.optionListHeight}]},_react().default.createElement(_reactNative().Text,{style:[i.layout.empty,{color:i.colors.placeholder,paddingVertical:i.spacing.emptyPaddingVertical,fontSize:i.typography.emptyTextSize}]},s))}),Cascader=_react().default.memo(CascaderImpl);var _default=exports.default=Cascader;
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}function _Checked(){const e=_interopRequireDefault(require("react-native-system-icon/Checked"));return _Checked=function(){return e},e}function _Cross(){const e=_interopRequireDefault(require("react-native-system-icon/Cross"));return _Cross=function(){return e},e}Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _hooks=require("../../hooks"),_utils=require("../../utils"),_validate=require("../../utils/validate"),_popup=_interopRequireDefault(require("../popup")),_tabs=_interopRequireDefault(require("../tabs")),_useLocale=require("../config-provider/useLocale"),_tokens=require("./tokens"),_useCascaderExtend=require("./useCascaderExtend"),_utils2=require("../../hooks/cascader/utils");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}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 o,n,l={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return l;if(o=t?r:a){if(o.has(e))return o.get(e);o.set(e,l)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((n=(o=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(n.get||n.set)?o(l,t,n):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 CascaderImpl=e=>{const{tokensOverride:t,options:a=[],title:r,placeholder:o,activeColor:n,fieldNames:l,optionRender:i,showHeader:s,closeable:c,closeIcon:u,onChange:d,onClose:p,onFinish:_,onClickTab:f,onTabChange:g,swipeable:y,style:h,testID:b,children:v,poppable:m,visible:C,defaultVisible:k,onVisibleChange:x,closeOnClickOverlay:T,closeOnFinish:N,popupPlacement:O,popupRound:E,popupProps:P,loadingText:w,...S}=e,z=(0,_useLocale.useLocale)(),I=(0,_tokens.useCascaderTokens)(t),R=r??z?.vanCascader?.placeholder??I.defaults.title,V=o??z?.vanCascader?.placeholder??I.defaults.placeholder,L=n??I.colors.tabActive,q=s??I.defaults.showHeader,H=y??I.defaults.swipeable,A=m??I.defaults.poppable,K=T??I.defaults.closeOnClickOverlay,W=N??I.defaults.closeOnFinish,D=O??I.defaults.popupPlacement,M=E??I.defaults.popupRound,B=w??I.defaults.loadingText,[j,F]=(0,_hooks.useControllableValue)(e,{defaultValue:[],trigger:"onChange"}),$=(0,_utils2.getFieldKeys)(l),G=Array.isArray(j)?j:[],[J,Q]=(0,_react().useState)(G),U=c??I.defaults.closeable,[X,Y]=(0,_hooks.useControllableValue)(e,{defaultValue:!1,valuePropName:"visible",defaultValuePropName:"defaultVisible",trigger:"onVisibleChange"}),Z=A?J:G,{tabs:ee,items:te,depth:ae}=(0,_useCascaderExtend.useCascaderExtend)(a,$,Z),{width:re}=(0,_reactNative().useWindowDimensions)(),[oe,ne]=(0,_react().useState)(0),le=(0,_react().useCallback)(e=>{const t=e.nativeEvent.layout.width;t&&ne(e=>e===t?e:t)},[]),ie=(0,_utils2.resolveRows)(a,$,G),[se,ce]=(0,_react().useState)(0);(0,_react().useEffect)(()=>{const e=ee.length;let t=Math.max(e-1,0);t>=ae&&(t=Math.max(ae-1,0)),ce(e=>e===t?e:t)},[ee.length,ae]),(0,_react().useEffect)(()=>{A&&X||Q(e=>(0,_utils.shallowEqualArray)(e,G)?e:G)},[G,A,X]);const ue=(0,_react().useCallback)(()=>{A&&!X&&(Q(e=>(0,_utils.shallowEqualArray)(e,G)?e:G),Y(!0))},[G,A,X,Y]),de=(0,_react().useRef)(p),pe=(0,_react().useRef)(d),_e=(0,_react().useRef)(_),fe=(0,_react().useRef)(f),ge=(0,_react().useRef)(g);de.current=p,pe.current=d,_e.current=_,fe.current=f,ge.current=g;const ye=(0,_react().useCallback)(e=>{A&&X&&(Y(!1),e&&de.current?.())},[A,X,Y]),he=(0,_react().useCallback)(()=>{A&&(X?ye(!0):ue())},[ye,ue,A,X]),be=(0,_validate.isFunction)(v),ve=be?v:null,me=(0,_react().useCallback)(e=>{const t=(0,_validate.isNumber)(e.index)?e.index:Number(e.name);if(Number.isNaN(t))return;const a=te[t]?.[$.textKey];fe.current?.(t,(0,_validate.isText)(a)?String(a):V)},[te,$.textKey,V]),Ce=(0,_react().useCallback)((e,t)=>{const a=(0,_validate.isNumber)(t)?t:Number(e);Number.isNaN(a)||(ce(a),ge.current?.(a))},[]),ke=(0,_react().useCallback)((e,t)=>{if(e.disabled)return;const r=e[$.valueKey];if(null==r)return;const o=[...(A?J:G).slice(0,t),r],n=(0,_utils2.resolveRows)(a,$,o),l=e[$.childrenKey]??[],i=Object.prototype.hasOwnProperty.call(e,$.childrenKey)&&!l.length,s=o.length>=ae,c=!l.length&&!i;A?(Q(o),pe.current?.(o,n)):F(o,n),(c||s)&&(A&&(F(o,n),W&&ye(!0)),_e.current?.(o,n))},[G,W,ye,ae,$,a,J,A,F]),xe=(0,_react().useCallback)(e=>{if(e<=0)return V;const t=te[e-1];if(!t)return V;if(!Object.prototype.hasOwnProperty.call(t,$.childrenKey))return V;return 0===(t[$.childrenKey]??[]).length&&Z.length===e?B:V},[Z.length,te,$.childrenKey,B,V]),Te=A||be?null:v,Ne=_react().default.createElement(_reactNative().View,_extends({testID:b,style:[I.layout.container,{backgroundColor:I.colors.background},h]},S),q?_react().default.createElement(_reactNative().View,{style:[I.layout.header,{height:I.sizing.headerHeight,paddingHorizontal:I.spacing.headerPaddingHorizontal}]},(0,_utils.renderTextOrNode)(R,[I.layout.title,{color:I.colors.headerText,fontSize:I.typography.titleSize,fontWeight:I.typography.titleWeight}]),U?_react().default.createElement(_reactNative().Pressable,{hitSlop:8,onPress:()=>{A?ye(!0):de.current?.()},style:[I.layout.closeButton,{marginLeft:I.spacing.closeButtonMarginLeft}],accessibilityRole:"button",accessibilityLabel:z?.vanCascader?.close??"Close"},u??(e=>_react().default.createElement(_Cross().default,{size:I.sizing.closeIconSize,fill:e.pressed?I.colors.closeIconActive:I.colors.closeIcon,color:e.pressed?I.colors.closeIconActive:I.colors.closeIcon}))):null):null,(()=>{if(!ee.length)return _react().default.createElement(CascaderOptionList,{optionList:[],tabIndex:0,selectedValue:Z[0],activeColor:L,keys:$,optionRender:i,onSelect:ke,tokens:I,emptyText:xe(0)});const e=!!H,t=oe||re||void 0,a={height:I.sizing.headerHeight,paddingHorizontal:I.spacing.tabNavPaddingHorizontal,paddingVertical:I.spacing.tabNavPaddingVertical,backgroundColor:I.colors.background};return _react().default.createElement(_reactNative().View,{style:I.layout.tabsWrapper,onLayout:le},_react().default.createElement(_tabs.default,{style:t?{width:t}:void 0,active:se,onChange:Ce,onClickTab:me,align:"center",swipeable:e,swipeThreshold:0,scrollable:!0,animated:!0,duration:300,color:L,lineHeight:I.sizing.indicatorHeight,titleActiveColor:I.colors.tabText,titleInactiveColor:I.colors.tabInactive,tabBarStyle:a,tabStyle:[I.layout.tabsItem,{paddingHorizontal:I.spacing.tabPaddingHorizontal}],titleStyle:[I.layout.tabsTitle,{fontSize:I.typography.tabsTitleSize}],contentStyle:e?void 0:I.layout.tabsContentStatic},ee.map((e,t)=>{const a=te[t],r=(0,_validate.isText)(a?.[$.textKey])?String(a?.[$.textKey]):"",o=!r;return _react().default.createElement(_tabs.default.TabPane,{key:t,name:t,title:e=>_react().default.createElement(_reactNative().Text,{style:[I.layout.tabTitleNode,{color:o?I.colors.tabInactive:I.colors.tabText,fontWeight:o?I.typography.tabTitlePlaceholderWeight:I.typography.tabTitleWeight}]},o?V:r)},_react().default.createElement(CascaderOptionList,{optionList:e,tabIndex:t,selectedValue:Z[t],activeColor:L,keys:$,optionRender:i,onSelect:ke,tokens:I,emptyText:xe(t)}))})))})(),Te?_react().default.createElement(_reactNative().View,{style:[I.layout.inlineChildren,{paddingVertical:I.spacing.inlineChildrenPaddingVertical,paddingHorizontal:I.spacing.headerPaddingHorizontal}]},Te):null);if(!A)return Ne;const{closeOnOverlayPress:Oe,overlay:Ee,onOpen:Pe,onOpened:we,onClose:Se,onClosed:ze,...Ie}=P??{},Re=(0,_react().useRef)(Se);Re.current=Se;const Ve=(0,_react().useCallback)(()=>{Re.current?.(),ye(!0)},[ye]),Le={open:ue,close:()=>ye(!0),toggle:he},qe=(0,_react().useCallback)(e=>{if(!_react().default.isValidElement(e))return e;const t=e.props,a=()=>{t.onPress?.(),t.onClick?.(),ue()};return _react().default.cloneElement(e,{onPress:a,onClick:a})},[ue])(ve?ve(G,ie,Le):be?null:v||null);return _react().default.createElement(_react().default.Fragment,null,qe,_react().default.createElement(_popup.default,_extends({visible:X,placement:D,round:M,closeOnOverlayPress:Oe??K,overlay:Ee??!0,safeAreaInsetTop:null!=Ie?.safeAreaInsetTop?Ie.safeAreaInsetTop:q&&U,safeAreaInsetBottom:null!=Ie?.safeAreaInsetBottom?Ie.safeAreaInsetBottom:"bottom"===D,onOpen:Pe,onOpened:we,onClose:Ve,onClosed:ze},Ie,{style:{paddingLeft:0,paddingRight:0}}),Ne))},CascaderOptionItem=_react().default.memo(({option:e,tabIndex:t,selected:a,activeColor:r,keys:o,optionRender:n,onSelect:l,tokens:i})=>{const s=e[o.valueKey],c=e[o.textKey],u=!!e.disabled,d=e.color??i.colors.optionText,p=u?i.colors.optionDisabled:a?e.color??r:d,_=[i.layout.optionText,{color:p,fontSize:i.typography.optionTextSize},a?{fontWeight:i.typography.optionTextActiveWeight}:null],f=n?n({option:e,selected:a}):(0,_utils.renderTextOrNode)(c,_),g=(0,_validate.isText)(f)?(0,_utils.renderTextOrNode)(f,_):f;return _react().default.createElement(_reactNative().Pressable,{testID:`cascader-option-${t}-${String(s)}`,style:({pressed:e})=>[i.layout.option,{minHeight:i.sizing.optionMinHeight,paddingVertical:i.spacing.optionPaddingVertical,paddingHorizontal:i.spacing.optionPaddingHorizontal},e&&!u&&{backgroundColor:i.colors.optionActiveBackground}],onPress:()=>l(e,t),disabled:u},_react().default.createElement(_reactNative().View,{style:i.layout.optionContent},_react().default.createElement(_reactNative().View,{style:[i.layout.optionLabel,{marginRight:i.spacing.optionLabelMarginRight}]},g),a?_react().default.createElement(_Checked().default,{size:i.sizing.selectedIconSize,fill:r,color:r}):null))}),CascaderOptionList=_react().default.memo(({optionList:e,tabIndex:t,selectedValue:a,activeColor:r,keys:o,optionRender:n,onSelect:l,tokens:i,emptyText:s})=>{const c=(0,_react().useCallback)(({item:e})=>_react().default.createElement(CascaderOptionItem,{option:e,tabIndex:t,selected:a===e[o.valueKey],activeColor:r,keys:o,optionRender:n,onSelect:l,tokens:i}),[r,o,l,n,a,t,i]),u=(0,_react().useCallback)(e=>String(e[o.valueKey]),[o.valueKey]);return e.length?_react().default.createElement(_reactNative().FlatList,{data:e,style:[i.layout.optionList,{height:i.sizing.optionListHeight}],contentContainerStyle:{paddingTop:i.spacing.optionListPaddingTop,paddingBottom:i.spacing.optionListPaddingBottom},showsVerticalScrollIndicator:!1,renderItem:c,keyExtractor:u,removeClippedSubviews:!0,initialNumToRender:20,windowSize:5}):_react().default.createElement(_reactNative().View,{style:[i.layout.optionList,{height:i.sizing.optionListHeight}]},_react().default.createElement(_reactNative().Text,{style:[i.layout.empty,{color:i.colors.placeholder,paddingVertical:i.spacing.emptyPaddingVertical,fontSize:i.typography.emptyTextSize}]},s))}),Cascader=_react().default.memo(CascaderImpl);var _default=exports.default=Cascader;
@@ -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}function _reactNativeSystemIcon(){const e=require("react-native-system-icon");return _reactNativeSystemIcon=function(){return e},e}Object.defineProperty(exports,"__esModule",{value:!0}),exports.Cell=void 0;var _hooks=require("../../hooks"),_utils=require("../../utils"),_useDirection=require("../config-provider/useDirection"),_CellContext=require("./CellContext"),_tokens=require("./tokens");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 i,l,o={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return o;if(i=t?a:r){if(i.has(e))return i.get(e);i.set(e,o)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((l=(i=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(l.get||l.set)?i(o,t,l):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 CellImpl=(e,t)=>{const{title:r,value:a,label:i,extra:l,icon:o,rightIcon:n,border:s,clickable:c,isLink:u,required:d,center:y,size:p,arrowDirection:_,tokensOverride:f,children:g,style:v,titleStyle:m,valueStyle:h,labelStyle:b,contentStyle:w,onPress:z,disabled:S,android_ripple:C,...N}=e,x=(0,_tokens.useCellTokens)(f),O=(0,_useDirection.useDirection)(),R=(0,_react().useContext)(_CellContext.CellGroupContext),k=s??x.defaults.border,P=p??x.defaults.size,V=_??x.defaults.arrowDirection,q="rtl"===O?"left"===V?"right":"right"===V?"left":V:V,E=x.typography.lineHeight,T=(0,_utils.isRenderable)(r),L=(0,_utils.isRenderable)(a),W=(0,_utils.isRenderable)(i),I=(0,_utils.isRenderable)(l),M=(0,_utils.isRenderable)(g),j=(0,_utils.isRenderable)(o),D=(0,_utils.isRenderable)(n),H=!T&&!M,G=k&&R.border&&!R.isLast,F=!!u||!!c,A=!S&&(c||!!z||!!N.onLongPress||!!N.onPressIn||!!N.onPressOut),B="large"===P,J=(0,_react().useMemo)(()=>[B?x.layout.containerLarge:x.layout.container,y&&x.layout.center,v],[P,y,x.layout,v]),K=(0,_hooks.useHairline)({show:G,containerStyle:J,color:x.colors.border,width:x.borders.width,defaultPaddingHorizontal:x.sizing.paddingHorizontal}),Q=(0,_react().useMemo)(()=>[x.layout.customContent,{justifyContent:y?"center":"flex-start"},w],[y,x.layout.customContent,w]),{interactionProps:U,states:X}=(0,_hooks.useAriaPress)({disabled:!A,onPress:z??void 0}),Y=A?_reactNative().Pressable:_reactNative().View,Z=A?{android_ripple:C??{color:x.colors.ripple},accessibilityRole:"button",...U}:{};return _react().default.createElement(Y,_extends({ref:t,style:[J,A&&X.pressed&&{opacity:x.defaults.activeOpacity}]},Z,N),j&&_react().default.createElement(_reactNative().View,{style:[x.layout.iconWrapper,{marginRight:x.spacing.iconGap,minHeight:x.sizing.iconSize,minWidth:x.sizing.iconSize}]},o),_react().default.createElement(_reactNative().View,{style:x.layout.body},(T||d)&&_react().default.createElement(_reactNative().View,{style:[x.layout.titleRow,{minHeight:E}]},d&&_react().default.createElement(_reactNative().Text,{style:{color:x.colors.required,marginRight:x.spacing.iconGap/2}},"*"),T&&_react().default.createElement(_reactNative().View,{style:m},(0,_utils.renderTextOrNode)(r,[{color:x.colors.title,fontSize:B?x.typography.largeTitleSize:x.typography.titleSize,fontWeight:x.typography.titleWeight},m],{numberOfLines:1}))),W&&_react().default.createElement(_reactNative().View,{style:[{marginTop:x.spacing.labelMarginTop},b]},(0,_utils.renderTextOrNode)(i,[{color:x.colors.label,fontSize:B?x.typography.largeLabelSize:x.typography.labelSize},b],{numberOfLines:2}))),_react().default.createElement(_reactNative().View,{style:[x.layout.valueContainer,{minHeight:E,marginLeft:x.spacing.valueGap},!y&&H&&x.layout.valueOnlyContainer,y&&x.layout.valueCenter]},L?_react().default.createElement(_reactNative().View,{style:Q},(0,_utils.renderTextOrNode)(a,[x.layout.value,H&&x.layout.valueOnly,{color:x.colors.value,fontSize:B?x.typography.largeValueSize:x.typography.valueSize},h],{numberOfLines:1})):M&&_react().default.createElement(_reactNative().View,{style:Q},(0,_utils.isText)(g)?(0,_utils.renderTextOrNode)(g,[x.layout.value,{color:x.colors.value,fontSize:B?x.typography.largeValueSize:x.typography.valueSize},h]):g)),I&&_react().default.createElement(_reactNative().View,{style:{marginLeft:x.spacing.extraGap}},(0,_utils.renderTextOrNode)(l,{marginLeft:x.spacing.extraGap,color:x.colors.value,fontSize:B?x.typography.largeValueSize:x.typography.valueSize})),D?n:F&&_react().default.createElement(_reactNative().View,{style:[x.layout.rightIconWrapper,x.layout.arrowTransforms[q]]},_react().default.createElement(_reactNativeSystemIcon().Arrow,{size:x.sizing.arrowSize,fill:x.colors.arrow})),K)},CellForwardRef=_react().default.forwardRef(CellImpl);CellForwardRef.displayName="Cell";const Cell=exports.Cell=_react().default.memo(CellForwardRef);
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}function _Arrow(){const e=_interopRequireDefault(require("react-native-system-icon/Arrow"));return _Arrow=function(){return e},e}Object.defineProperty(exports,"__esModule",{value:!0}),exports.Cell=void 0;var _hooks=require("../../hooks"),_utils=require("../../utils"),_useDirection=require("../config-provider/useDirection"),_CellContext=require("./CellContext"),_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 i,l,o={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return o;if(i=t?a:r){if(i.has(e))return i.get(e);i.set(e,o)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((l=(i=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(l.get||l.set)?i(o,t,l):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 CellImpl=(e,t)=>{const{title:r,value:a,label:i,extra:l,icon:o,rightIcon:n,border:s,clickable:u,isLink:c,required:d,center:_,size:p,arrowDirection:f,tokensOverride:y,children:g,style:v,titleStyle:h,valueStyle:m,labelStyle:b,contentStyle:w,onPress:z,disabled:C,android_ripple:x,...S}=e,N=(0,_tokens.useCellTokens)(y),O=(0,_useDirection.useDirection)(),R=(0,_react().useContext)(_CellContext.CellGroupContext),q=s??N.defaults.border,k=p??N.defaults.size,P=f??N.defaults.arrowDirection,V="rtl"===O?"left"===P?"right":"right"===P?"left":P:P,E=N.typography.lineHeight,T=(0,_utils.isRenderable)(r),L=(0,_utils.isRenderable)(a),W=(0,_utils.isRenderable)(i),D=(0,_utils.isRenderable)(l),M=(0,_utils.isRenderable)(g),j=(0,_utils.isRenderable)(o),H=(0,_utils.isRenderable)(n),G=!T&&!M,A=q&&R.border&&!R.isLast,I=!!c||!!u,F=!C&&(u||!!z||!!S.onLongPress||!!S.onPressIn||!!S.onPressOut),B="large"===k,J=(0,_react().useMemo)(()=>[B?N.layout.containerLarge:N.layout.container,_&&N.layout.center,v],[k,_,N.layout,v]),K=(0,_hooks.useHairline)({show:A,containerStyle:J,color:N.colors.border,width:N.borders.width,defaultPaddingHorizontal:N.sizing.paddingHorizontal}),Q=(0,_react().useMemo)(()=>[N.layout.customContent,{justifyContent:_?"center":"flex-start"},w],[_,N.layout.customContent,w]),{interactionProps:U,states:X}=(0,_hooks.useAriaPress)({disabled:!F,onPress:z??void 0}),Y=F?_reactNative().Pressable:_reactNative().View,Z=F?{android_ripple:x??{color:N.colors.ripple},accessibilityRole:"button",...U}:{};return _react().default.createElement(Y,_extends({ref:t,style:[J,F&&X.pressed&&{opacity:N.defaults.activeOpacity}]},Z,S),j&&_react().default.createElement(_reactNative().View,{style:[N.layout.iconWrapper,{marginRight:N.spacing.iconGap,minHeight:N.sizing.iconSize,minWidth:N.sizing.iconSize}]},o),_react().default.createElement(_reactNative().View,{style:N.layout.body},(T||d)&&_react().default.createElement(_reactNative().View,{style:[N.layout.titleRow,{minHeight:E}]},d&&_react().default.createElement(_reactNative().Text,{style:{color:N.colors.required,marginRight:N.spacing.iconGap/2}},"*"),T&&_react().default.createElement(_reactNative().View,{style:h},(0,_utils.renderTextOrNode)(r,[{color:N.colors.title,fontSize:B?N.typography.largeTitleSize:N.typography.titleSize,fontWeight:N.typography.titleWeight},h],{numberOfLines:1}))),W&&_react().default.createElement(_reactNative().View,{style:[{marginTop:N.spacing.labelMarginTop},b]},(0,_utils.renderTextOrNode)(i,[{color:N.colors.label,fontSize:B?N.typography.largeLabelSize:N.typography.labelSize},b],{numberOfLines:2}))),_react().default.createElement(_reactNative().View,{style:[N.layout.valueContainer,{minHeight:E,marginLeft:N.spacing.valueGap},!_&&G&&N.layout.valueOnlyContainer,_&&N.layout.valueCenter]},L?_react().default.createElement(_reactNative().View,{style:Q},(0,_utils.renderTextOrNode)(a,[N.layout.value,G&&N.layout.valueOnly,{color:N.colors.value,fontSize:B?N.typography.largeValueSize:N.typography.valueSize},m],{numberOfLines:1})):M&&_react().default.createElement(_reactNative().View,{style:Q},(0,_utils.isText)(g)?(0,_utils.renderTextOrNode)(g,[N.layout.value,{color:N.colors.value,fontSize:B?N.typography.largeValueSize:N.typography.valueSize},m]):g)),D&&_react().default.createElement(_reactNative().View,{style:{marginLeft:N.spacing.extraGap}},(0,_utils.renderTextOrNode)(l,{marginLeft:N.spacing.extraGap,color:N.colors.value,fontSize:B?N.typography.largeValueSize:N.typography.valueSize})),H?n:I&&_react().default.createElement(_reactNative().View,{style:[N.layout.rightIconWrapper,N.layout.arrowTransforms[V]]},_react().default.createElement(_Arrow().default,{size:N.sizing.arrowSize,fill:N.colors.arrow})),K)},CellForwardRef=_react().default.forwardRef(CellImpl);CellForwardRef.displayName="Cell";const Cell=exports.Cell=_react().default.memo(CellForwardRef);
@@ -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}function _reactNativeSystemIcon(){const e=require("react-native-system-icon");return _reactNativeSystemIcon=function(){return e},e}Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Collapse=void 0;var _animation=require("../../hooks/animation"),_cell=require("../cell"),_utils=require("../../utils"),_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 CollapseContext=_react().default.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:a,accordion:r,value:n,defaultValue:i,onChange:l,border:o,iconPosition:c,expandIcon:s,disabled:u,style:d,...p}=e,_=(0,_tokens.useCollapseTokens)(t),f=r??_.defaults.accordion,m=o??_.defaults.border,b=c??_.defaults.iconPosition,{colors:y}=_,g=void 0!==n,v=normalizeValue(n),C=normalizeValue(i)??[],k=(0,_react().useRef)(l);k.current=l;const[h,w]=(0,_react().useState)(()=>f?C.slice(0,1):C),x=g?f?(v??[]).slice(0,1):v??[]:h,E=(0,_react().useCallback)((e,t)=>{if(u)return;const a=x.includes(e),r=t??!a,n=f?r?[e]:a?[]:x:r?a?x:[...x,e]:a?x.filter(t=>t!==e):x;g||w(n),k.current?.(buildOutputValue(n,f))},[f,x,g,u]),N=(0,_react().useMemo)(()=>({activeKeys:x,toggle:E,accordion:f,iconPosition:b,expandIcon:s,border:m,disabled:u,tokens:_}),[f,x,m,u,s,b,_,E]),V=(0,_react().useMemo)(()=>_react().default.Children.toArray(a).map((e,t)=>{if(!_react().default.isValidElement(e))return e;if(!(0,_utils.isFunction)(e.type)&&!(0,_utils.isObject)(e.type))return e;const a=e.props.name??String(t);return _react().default.cloneElement(e,{name:a,index:t})}),[a]);return _react().default.createElement(CollapseContext.Provider,{value:N},_react().default.createElement(_reactNative().View,_extends({style:[_.layout.container,m&&{backgroundColor:y.background},d]},p),m&&_react().default.createElement(Hairline,{tokens:_,position:"top",color:y.border}),m&&_react().default.createElement(Hairline,{tokens:_,position:"bottom",color:y.border}),V))},Hairline=_react().default.memo(({tokens:e,position:t,color:a,inset:r=0})=>{const n=(0,_utils.createHairlineView)({position:t,color:a,left:r,right:r});return _react().default.createElement(_reactNative().View,{pointerEvents:"none",style:[e.layout.hairline,n]})}),CollapsePanel=_react().default.forwardRef((e,t)=>{const a=(0,_react().useContext)(CollapseContext),r=(0,_animation.useReducedMotion)();if(!a)throw new Error("Collapse.Panel must be used within Collapse");const{activeKeys:n,toggle:i,iconPosition:l,expandIcon:o,disabled:c,tokens:s}=a,{name:u="0",index:d=0,title:p,description:_,label:f,icon:m,extra:b,value:y,border:g=s.defaults.panelBorder,isLink:v=s.defaults.panelIsLink,size:C=s.defaults.panelSize,disabled:k,readOnly:h,children:w,style:x,titleStyle:E,descriptionStyle:N,...V}=e,S=String(u),P=n.includes(S),I=c||k,{colors:z,spacing:O,typography:R}=s,[H,M]=(0,_react().useState)(0),q=(0,_react().useRef)(new(_reactNative().Animated.Value)(P?1:0)).current,j=(0,_react().useRef)(null),A=q.interpolate({inputRange:[0,1],outputRange:["90deg","-90deg"]});(0,_react().useEffect)(()=>{j.current?.stop();const e=_reactNative().Animated.timing(q,{toValue:P?1:0,duration:r?0:s.defaults.animationDuration,easing:_reactNative().Easing.ease,useNativeDriver:!1,isInteraction:!1});return j.current=e,e.start(({finished:e})=>{e&&(j.current=null)}),()=>{j.current?.stop(),j.current=null}},[q,P,r,s.defaults.animationDuration]);const W=_??f,F=b??y,D=(0,_react().useCallback)(()=>{I||h||i(S)},[I,S,h,i]);(0,_react().useImperativeHandle)(t,()=>({toggle:e=>{I||h||i(S,e)}}),[I,S,h,i]);const L=(0,_react().useCallback)(e=>{const t=e.nativeEvent.layout.height;(0,_utils.isNumber)(t)&&Number.isFinite(t)&&M(e=>e===t?e:t)},[]),B=(0,_react().useMemo)(()=>({height:q.interpolate({inputRange:[0,1],outputRange:[0,H]})}),[q,H]),K=(0,_react().useCallback)(()=>(0,_utils.isFunction)(o)?o(P):o||_react().default.createElement(_reactNative().Animated.View,{style:{transform:[{rotate:A}]}},_react().default.createElement(_reactNativeSystemIcon().Arrow,{size:16,fill:I?z.disabled:z.arrow})),[z.arrow,z.disabled,o,P,I,A]),T=(0,_react().useMemo)(()=>(0,_utils.renderTextOrNode)(w,{color:I?z.disabled:z.description,fontFamily:R.fontFamily,fontSize:R.descriptionSize,lineHeight:Math.round(1.5*R.descriptionSize)}),[w,z.description,z.disabled,I,R.descriptionSize,R.fontFamily]),G=Boolean(g),J=d>0&&G,Q=P&&G,U=v&&!h,X="left"===l?U||(0,_utils.isRenderable)(m)?_react().default.createElement(_reactNative().View,{style:s.layout.headerIconRow},U&&_react().default.createElement(_reactNative().View,{style:{marginRight:m?s.spacing.iconGap:0}},K()),m):void 0:m,Y="right"===l&&U?K():void 0;return _react().default.createElement(_reactNative().View,_extends({style:[s.layout.panel,{backgroundColor:z.background},x]},V),J&&_react().default.createElement(Hairline,{tokens:s,position:"top",color:z.border,inset:O.paddingHorizontal}),_react().default.createElement(_reactNative().View,{style:s.layout.headerWrapper},_react().default.createElement(_cell.Cell,{title:p,label:W,icon:X,value:F,size:C,border:!1,disabled:I,onPress:h?void 0:D,accessibilityState:{expanded:P,disabled:I},titleStyle:I?[E,{color:z.disabled}]:E,labelStyle:I?[N,{color:z.disabled}]:N,valueStyle:I?{color:z.disabled}:void 0,rightIcon:Y}),Q&&_react().default.createElement(Hairline,{tokens:s,position:"bottom",color:z.border,inset:O.paddingHorizontal})),_react().default.createElement(_reactNative().Animated.View,{style:[s.layout.bodyWrapper,B]},_react().default.createElement(_reactNative().View,{onLayout:L,style:[s.layout.bodyContent,{paddingVertical:O.paddingVertical,paddingHorizontal:O.paddingHorizontal,backgroundColor:z.background}]},T)))});CollapseImpl.Panel=CollapsePanel,CollapseImpl.Item=CollapsePanel;const Collapse=exports.Collapse=Object.assign(_react().default.memo(CollapseImpl),{Panel:CollapsePanel,Item:CollapsePanel});var _default=exports.default=Collapse;
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}function _Arrow(){const e=_interopRequireDefault(require("react-native-system-icon/Arrow"));return _Arrow=function(){return e},e}Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Collapse=void 0;var _animation=require("../../hooks/animation"),_cell=require("../cell"),_utils=require("../../utils"),_tokens=require("./tokens");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}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 CollapseContext=_react().default.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:a,accordion:r,value:n,defaultValue:i,onChange:l,border:o,iconPosition:c,expandIcon:s,disabled:u,style:d,...p}=e,_=(0,_tokens.useCollapseTokens)(t),f=r??_.defaults.accordion,m=o??_.defaults.border,b=c??_.defaults.iconPosition,{colors:y}=_,g=void 0!==n,v=normalizeValue(n),C=normalizeValue(i)??[],k=(0,_react().useRef)(l);k.current=l;const[w,h]=(0,_react().useState)(()=>f?C.slice(0,1):C),x=g?f?(v??[]).slice(0,1):v??[]:w,E=(0,_react().useCallback)((e,t)=>{if(u)return;const a=x.includes(e),r=t??!a,n=f?r?[e]:a?[]:x:r?a?x:[...x,e]:a?x.filter(t=>t!==e):x;g||h(n),k.current?.(buildOutputValue(n,f))},[f,x,g,u]),V=(0,_react().useMemo)(()=>({activeKeys:x,toggle:E,accordion:f,iconPosition:b,expandIcon:s,border:m,disabled:u,tokens:_}),[f,x,m,u,s,b,_,E]),P=(0,_react().useMemo)(()=>_react().default.Children.toArray(a).map((e,t)=>{if(!_react().default.isValidElement(e))return e;if(!(0,_utils.isFunction)(e.type)&&!(0,_utils.isObject)(e.type))return e;const a=e.props.name??String(t);return _react().default.cloneElement(e,{name:a,index:t})}),[a]);return _react().default.createElement(CollapseContext.Provider,{value:V},_react().default.createElement(_reactNative().View,_extends({style:[_.layout.container,m&&{backgroundColor:y.background},d]},p),m&&_react().default.createElement(Hairline,{tokens:_,position:"top",color:y.border}),m&&_react().default.createElement(Hairline,{tokens:_,position:"bottom",color:y.border}),P))},Hairline=_react().default.memo(({tokens:e,position:t,color:a,inset:r=0})=>{const n=(0,_utils.createHairlineView)({position:t,color:a,left:r,right:r});return _react().default.createElement(_reactNative().View,{pointerEvents:"none",style:[e.layout.hairline,n]})}),CollapsePanel=_react().default.forwardRef((e,t)=>{const a=(0,_react().useContext)(CollapseContext),r=(0,_animation.useReducedMotion)();if(!a)throw new Error("Collapse.Panel must be used within Collapse");const{activeKeys:n,toggle:i,iconPosition:l,expandIcon:o,disabled:c,tokens:s}=a,{name:u="0",index:d=0,title:p,description:_,label:f,icon:m,extra:b,value:y,border:g=s.defaults.panelBorder,isLink:v=s.defaults.panelIsLink,size:C=s.defaults.panelSize,disabled:k,readOnly:w,children:h,style:x,titleStyle:E,descriptionStyle:V,...P}=e,N=String(u),R=n.includes(N),S=c||k,{colors:z,spacing:O,typography:I}=s,[q,H]=(0,_react().useState)(0),M=(0,_react().useRef)(new(_reactNative().Animated.Value)(R?1:0)).current,A=(0,_react().useRef)(null),j=M.interpolate({inputRange:[0,1],outputRange:["90deg","-90deg"]});(0,_react().useEffect)(()=>{A.current?.stop();const e=_reactNative().Animated.timing(M,{toValue:R?1:0,duration:r?0:s.defaults.animationDuration,easing:_reactNative().Easing.ease,useNativeDriver:!1,isInteraction:!1});return A.current=e,e.start(({finished:e})=>{e&&(A.current=null)}),()=>{A.current?.stop(),A.current=null}},[M,R,r,s.defaults.animationDuration]);const W=_??f,D=b??y,F=(0,_react().useCallback)(()=>{S||w||i(N)},[S,N,w,i]);(0,_react().useImperativeHandle)(t,()=>({toggle:e=>{S||w||i(N,e)}}),[S,N,w,i]);const L=(0,_react().useCallback)(e=>{const t=e.nativeEvent.layout.height;(0,_utils.isNumber)(t)&&Number.isFinite(t)&&H(e=>e===t?e:t)},[]),B=(0,_react().useMemo)(()=>({height:M.interpolate({inputRange:[0,1],outputRange:[0,q]})}),[M,q]),K=(0,_react().useCallback)(()=>(0,_utils.isFunction)(o)?o(R):o||_react().default.createElement(_reactNative().Animated.View,{style:{transform:[{rotate:j}]}},_react().default.createElement(_Arrow().default,{size:16,fill:S?z.disabled:z.arrow})),[z.arrow,z.disabled,o,R,S,j]),T=(0,_react().useMemo)(()=>(0,_utils.renderTextOrNode)(h,{color:S?z.disabled:z.description,fontFamily:I.fontFamily,fontSize:I.descriptionSize,lineHeight:Math.round(1.5*I.descriptionSize)}),[h,z.description,z.disabled,S,I.descriptionSize,I.fontFamily]),G=Boolean(g),J=d>0&&G,Q=R&&G,U=v&&!w,X="left"===l?U||(0,_utils.isRenderable)(m)?_react().default.createElement(_reactNative().View,{style:s.layout.headerIconRow},U&&_react().default.createElement(_reactNative().View,{style:{marginRight:m?s.spacing.iconGap:0}},K()),m):void 0:m,Y="right"===l&&U?K():void 0;return _react().default.createElement(_reactNative().View,_extends({style:[s.layout.panel,{backgroundColor:z.background},x]},P),J&&_react().default.createElement(Hairline,{tokens:s,position:"top",color:z.border,inset:O.paddingHorizontal}),_react().default.createElement(_reactNative().View,{style:s.layout.headerWrapper},_react().default.createElement(_cell.Cell,{title:p,label:W,icon:X,value:D,size:C,border:!1,disabled:S,onPress:w?void 0:F,accessibilityState:{expanded:R,disabled:S},titleStyle:S?[E,{color:z.disabled}]:E,labelStyle:S?[V,{color:z.disabled}]:V,valueStyle:S?{color:z.disabled}:void 0,rightIcon:Y}),Q&&_react().default.createElement(Hairline,{tokens:s,position:"bottom",color:z.border,inset:O.paddingHorizontal})),_react().default.createElement(_reactNative().Animated.View,{style:[s.layout.bodyWrapper,B]},_react().default.createElement(_reactNative().View,{onLayout:L,style:[s.layout.bodyContent,{paddingVertical:O.paddingVertical,paddingHorizontal:O.paddingHorizontal,backgroundColor:z.background}]},T)))});CollapseImpl.Panel=CollapsePanel,CollapseImpl.Item=CollapsePanel;const Collapse=exports.Collapse=Object.assign(_react().default.memo(CollapseImpl),{Panel:CollapsePanel,Item:CollapsePanel});var _default=exports.default=Collapse;
@@ -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.Dialog=void 0;var _useLocale=require("../config-provider/useLocale"),_platform=require("../../platform"),_animation=require("../../hooks/animation"),_hairline=require("../../utils/hairline"),_promise=require("../../utils/promise"),_validate=require("../../utils/validate"),_utils=require("../../utils");function _reactNativeSystemIcon(){const e=require("react-native-system-icon");return _reactNativeSystemIcon=function(){return e},e}var _button=_interopRequireDefault(require("../button")),_popup=_interopRequireDefault(require("../popup")),_tokens=require("./tokens"),_ActionButton=require("../../hooks/dialog/ActionButton");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _interopRequireWildcard(e,t){if("function"==typeof WeakMap)var o=new WeakMap,r=new WeakMap;return(_interopRequireWildcard=function(e,t){if(!t&&e&&e.__esModule)return e;var n,a,i={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return i;if(n=t?r:o){if(n.has(e))return n.get(e);n.set(e,i)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((a=(n=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(a.get||a.set)?n(i,t,a):i[t]=e[t]);return i})(e,t)}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)}const DialogImpl=e=>{const t=(0,_useLocale.useLocale)(),{visible:o,title:r,message:n,messageAlign:a="center",theme:i="default",width:l,closeable:c=!1,closeIcon:s,overlay:d=!0,overlayStyle:u,overlayTestID:p="dialog-overlay",closeOnBackPress:g=!1,closeOnPopstate:f=!0,closeOnOverlayPress:_=!1,closeOnClickOverlay:m=!1,onClickOverlay:y,onClickCloseIcon:v,beforeClose:b,showCancelButton:h=!1,showConfirmButton:C=!0,cancelButtonText:P,cancelButtonColor:k,cancelProps:x,confirmButtonText:w,confirmButtonColor:N,confirmProps:B,footer:O,contentStyle:q,titleStyle:E,messageStyle:I,tokensOverride:z,style:D,children:H,onCancel:W,onConfirm:L,onClose:V,onClosed:R,...T}=e,A=(0,_tokens.useDialogTokens)(z),M=(0,_animation.useReducedMotion)(),F=(0,_validate.isValidNode)(r),j=(0,_validate.isValidNode)(H),G=(0,_validate.isValidNode)(n)||j,J=h||C,K="round-button"===i,Q=x?.loading,U=B?.loading,X=P??t.cancel,Y=w??t.confirm,Z=(0,_react().useRef)({seq:0,beforeClose:b,onClose:V,onCancel:W,onConfirm:L,onClickCloseIcon:v,cancelLoad:Q,confirmLoad:U});Object.assign(Z.current,{beforeClose:b,onClose:V,onCancel:W,onConfirm:L,onClickCloseIcon:v,cancelLoad:Q,confirmLoad:U});const $=(0,_react().useCallback)((e,t)=>{const o=Z.current;o.seq+=1;const r=o.seq,n=o.beforeClose;if(!n)return void t?.();let a;try{a=n(e)}catch{return}!1!==a&&((0,_promise.isPromiseLike)(a)?a.then(e=>{!1!==e&&Z.current.seq===r&&t?.()}).catch(()=>{}):t?.())},[]),ee=(0,_react().useCallback)(()=>{Z.current.onClickCloseIcon?.(),$("close",()=>Z.current.onClose?.())},[$]),te=(0,_react().useCallback)(()=>{Z.current.cancelLoad||$("cancel",()=>Z.current.onCancel?.())},[$]),oe=(0,_react().useCallback)(()=>{Z.current.confirmLoad||$("confirm",()=>Z.current.onConfirm?.())},[$]),re=(0,_react().useRef)(new(_reactNative().Animated.Value)(.7)).current,ne=(0,_react().useRef)(null);(0,_react().useEffect)(()=>{ne.current?.stop(),re.setValue(o?.7:1);const e=_reactNative().Animated.timing(re,{toValue:o?1:.9,duration:M?0:300,easing:o?_reactNative().Easing.out(_reactNative().Easing.cubic):_reactNative().Easing.in(_reactNative().Easing.cubic),useNativeDriver:_platform.nativeDriverEnabled,isInteraction:!1});ne.current=e,e.start()},[re,o,M]),(0,_react().useEffect)(()=>()=>{ne.current?.stop()},[]);const ae={transform:[{scale:re}]},ie=(0,_react().useMemo)(()=>F?{wrap:[S.titleWrap,{paddingTop:G?A.spacing.titlePaddingTop:A.spacing.titleIsolatedPadding,paddingBottom:G?0:A.spacing.titleIsolatedPadding,paddingHorizontal:G?A.spacing.paddingHorizontal:0,marginBottom:G?A.spacing.titleGap:0}],text:[S.title,{color:A.colors.title,fontFamily:A.typography.fontFamily,fontSize:A.typography.titleSize,lineHeight:A.typography.titleLineHeight,fontWeight:A.typography.titleWeight},E]}:null,[F,G,E,A]),le=(0,_react().useMemo)(()=>({text:[S.msg,{color:K?A.colors.title:A.colors.message,fontFamily:A.typography.fontFamily,fontSize:A.typography.messageSize,lineHeight:A.typography.messageLineHeight,textAlign:a},I],content:j?null:{alignItems:"center"===a?"center":"left"===a?"flex-start":"flex-end"},wrap:[S.msgWrap,{paddingTop:F?A.spacing.messagePaddingTop:A.spacing.messagePadding,paddingBottom:K?A.spacing.roundFooterPadding:A.spacing.messagePadding,paddingHorizontal:A.spacing.messagePaddingHorizontal}]}),[K,a,I,j,F,A]),ce=(0,_react().useMemo)(()=>({border:[S.footerBorder,(0,_hairline.createHairlineView)({position:"top",color:A.colors.divider,left:0,right:0,top:0})],round:[S.roundFooter,{paddingTop:A.spacing.messagePaddingTop,paddingHorizontal:A.spacing.messagePaddingHorizontal,paddingBottom:A.spacing.roundFooterPadding}]}),[A]),se=(0,_react().useMemo)(()=>{const e=l?(0,_validate.isNumber)(l)?{width:l}:{width:String(l)}:{width:"90%",maxWidth:A.sizes.maxWidth};return[{backgroundColor:A.colors.background,borderRadius:A.sizes.borderRadius,padding:0},e,D]},[l,D,A]),de=(0,_react().useCallback)(()=>{const e=Z.current.beforeClose;if(!e)return!0;try{return e("close")}catch{return!1}},[]),ue=(0,_react().useMemo)(()=>J&&_react().default.createElement(_reactNative().View,{style:ce.round},h&&_react().default.createElement(_reactNative().View,{style:[S.roundBtnWrap,C&&{marginRight:A.spacing.roundFooterGap}]},_react().default.createElement(_button.default,{block:!0,round:!0,type:"warning",text:X,color:k,loading:Q,disabled:x?.disabled,onPress:te,style:{minHeight:A.sizes.roundButtonHeight}})),C&&_react().default.createElement(_reactNative().View,{style:[S.roundBtnWrap,h&&{marginLeft:A.spacing.roundFooterGap}]},_react().default.createElement(_button.default,{block:!0,round:!0,type:"danger",text:Y,color:N,loading:U,disabled:B?.disabled,onPress:oe,style:{minHeight:A.sizes.roundButtonHeight}}))),[k,Q,x?.disabled,X,N,U,B?.disabled,Y,te,oe,J,ce.round,h,C,A.sizes.roundButtonHeight,A.spacing.roundFooterGap]),pe=(0,_react().useMemo)(()=>J&&_react().default.createElement(_reactNative().View,{style:S.footer},_react().default.createElement(_reactNative().View,{style:ce.border,pointerEvents:"none"}),h&&_react().default.createElement(_ActionButton.ActionButton,{tokens:A,text:X,color:k??A.colors.cancel,dividerPosition:"none",loading:Q,disabled:x?.disabled,onPress:te}),C&&_react().default.createElement(_ActionButton.ActionButton,{tokens:A,text:Y,color:N??A.colors.confirm,dividerPosition:h?"left":"none",loading:U,disabled:B?.disabled,onPress:oe})),[k,Q,x?.disabled,X,N,U,B?.disabled,Y,ce.border,te,oe,J,h,C,A]),ge=O??(K?ue:pe);return _react().default.createElement(_popup.default,_extends({visible:o,placement:"center",round:!0,overlay:d,overlayStyle:u,overlayTestID:p,closeOnBackPress:g,closeOnPopstate:f,closeOnClickOverlay:_||m,onClickOverlay:y,beforeClose:de,onClose:V,onClosed:R,contentAnimationStyle:ae,style:se,accessibilityRole:"android"===_reactNative().Platform.OS?"alert":"alertdialog",accessibilityLabel:"string"==typeof r?r:void 0},T),c&&_react().default.createElement(_reactNative().Pressable,{style:[S.closeIcon,{top:A.spacing.paddingTop/2,right:A.spacing.paddingHorizontal/2,padding:A.spacing.closeIconPadding}],hitSlop:{top:8,bottom:8,left:8,right:8},onPress:ee},s??_react().default.createElement(_reactNativeSystemIcon().Close,{size:A.sizes.closeSize,fill:A.colors.closeIcon,color:A.colors.closeIcon})),ie&&_react().default.createElement(_reactNative().View,{style:ie.wrap},(0,_utils.renderTextOrNode)(r,ie.text)),G&&_react().default.createElement(_reactNative().View,{style:[S.content,le.content,q]},j?H:_react().default.createElement(_reactNative().View,{style:le.wrap},(0,_utils.renderTextOrNode)(n,le.text))),ge)},S=_reactNative().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},msgWrap:{width:"100%"},roundFooter:{width:"100%",flexDirection:"row"},roundBtnWrap:{flex:1},closeIcon:{position:"absolute",zIndex:1}}),Dialog=exports.Dialog=_react().default.memo(DialogImpl);Dialog.displayName="Dialog";var _default=exports.default=Dialog;
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.Dialog=void 0;var _useLocale=require("../config-provider/useLocale"),_platform=require("../../platform"),_animation=require("../../hooks/animation"),_hairline=require("../../utils/hairline"),_promise=require("../../utils/promise"),_validate=require("../../utils/validate"),_utils=require("../../utils");function _Close(){const e=_interopRequireDefault(require("react-native-system-icon/Close"));return _Close=function(){return e},e}var _button=_interopRequireDefault(require("../button")),_popup=_interopRequireDefault(require("../popup")),_tokens=require("./tokens"),_ActionButton=require("../../hooks/dialog/ActionButton");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _interopRequireWildcard(e,t){if("function"==typeof WeakMap)var o=new WeakMap,r=new WeakMap;return(_interopRequireWildcard=function(e,t){if(!t&&e&&e.__esModule)return e;var n,a,i={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return i;if(n=t?r:o){if(n.has(e))return n.get(e);n.set(e,i)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((a=(n=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(a.get||a.set)?n(i,t,a):i[t]=e[t]);return i})(e,t)}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)}const DialogImpl=e=>{const t=(0,_useLocale.useLocale)(),{visible:o,title:r,message:n,messageAlign:a="center",theme:i="default",width:l,closeable:c=!1,closeIcon:s,overlay:d=!0,overlayStyle:u,overlayTestID:p="dialog-overlay",closeOnBackPress:g=!1,closeOnPopstate:f=!0,closeOnOverlayPress:_=!1,closeOnClickOverlay:m=!1,onClickOverlay:y,onClickCloseIcon:v,beforeClose:b,showCancelButton:h=!1,showConfirmButton:C=!0,cancelButtonText:P,cancelButtonColor:k,cancelProps:x,confirmButtonText:w,confirmButtonColor:N,confirmProps:B,footer:q,contentStyle:O,titleStyle:E,messageStyle:z,tokensOverride:D,style:I,children:H,onCancel:W,onConfirm:L,onClose:R,onClosed:V,...T}=e,A=(0,_tokens.useDialogTokens)(D),M=(0,_animation.useReducedMotion)(),F=(0,_validate.isValidNode)(r),j=(0,_validate.isValidNode)(H),G=(0,_validate.isValidNode)(n)||j,J=h||C,K="round-button"===i,Q=x?.loading,U=B?.loading,X=P??t.cancel,Y=w??t.confirm,Z=(0,_react().useRef)({seq:0,beforeClose:b,onClose:R,onCancel:W,onConfirm:L,onClickCloseIcon:v,cancelLoad:Q,confirmLoad:U});Object.assign(Z.current,{beforeClose:b,onClose:R,onCancel:W,onConfirm:L,onClickCloseIcon:v,cancelLoad:Q,confirmLoad:U});const $=(0,_react().useCallback)((e,t)=>{const o=Z.current;o.seq+=1;const r=o.seq,n=o.beforeClose;if(!n)return void t?.();let a;try{a=n(e)}catch{return}!1!==a&&((0,_promise.isPromiseLike)(a)?a.then(e=>{!1!==e&&Z.current.seq===r&&t?.()}).catch(()=>{}):t?.())},[]),ee=(0,_react().useCallback)(()=>{Z.current.onClickCloseIcon?.(),$("close",()=>Z.current.onClose?.())},[$]),te=(0,_react().useCallback)(()=>{Z.current.cancelLoad||$("cancel",()=>Z.current.onCancel?.())},[$]),oe=(0,_react().useCallback)(()=>{Z.current.confirmLoad||$("confirm",()=>Z.current.onConfirm?.())},[$]),re=(0,_react().useRef)(new(_reactNative().Animated.Value)(.7)).current,ne=(0,_react().useRef)(null);(0,_react().useEffect)(()=>{ne.current?.stop(),re.setValue(o?.7:1);const e=_reactNative().Animated.timing(re,{toValue:o?1:.9,duration:M?0:300,easing:o?_reactNative().Easing.out(_reactNative().Easing.cubic):_reactNative().Easing.in(_reactNative().Easing.cubic),useNativeDriver:_platform.nativeDriverEnabled,isInteraction:!1});ne.current=e,e.start()},[re,o,M]),(0,_react().useEffect)(()=>()=>{ne.current?.stop()},[]);const ae={transform:[{scale:re}]},ie=(0,_react().useMemo)(()=>F?{wrap:[S.titleWrap,{paddingTop:G?A.spacing.titlePaddingTop:A.spacing.titleIsolatedPadding,paddingBottom:G?0:A.spacing.titleIsolatedPadding,paddingHorizontal:G?A.spacing.paddingHorizontal:0,marginBottom:G?A.spacing.titleGap:0}],text:[S.title,{color:A.colors.title,fontFamily:A.typography.fontFamily,fontSize:A.typography.titleSize,lineHeight:A.typography.titleLineHeight,fontWeight:A.typography.titleWeight},E]}:null,[F,G,E,A]),le=(0,_react().useMemo)(()=>({text:[S.msg,{color:K?A.colors.title:A.colors.message,fontFamily:A.typography.fontFamily,fontSize:A.typography.messageSize,lineHeight:A.typography.messageLineHeight,textAlign:a},z],content:j?null:{alignItems:"center"===a?"center":"left"===a?"flex-start":"flex-end"},wrap:[S.msgWrap,{paddingTop:F?A.spacing.messagePaddingTop:A.spacing.messagePadding,paddingBottom:K?A.spacing.roundFooterPadding:A.spacing.messagePadding,paddingHorizontal:A.spacing.messagePaddingHorizontal}]}),[K,a,z,j,F,A]),ce=(0,_react().useMemo)(()=>({border:[S.footerBorder,(0,_hairline.createHairlineView)({position:"top",color:A.colors.divider,left:0,right:0,top:0})],round:[S.roundFooter,{paddingTop:A.spacing.messagePaddingTop,paddingHorizontal:A.spacing.messagePaddingHorizontal,paddingBottom:A.spacing.roundFooterPadding}]}),[A]),se=(0,_react().useMemo)(()=>{const e=l?(0,_validate.isNumber)(l)?{width:l}:{width:String(l)}:{width:"90%",maxWidth:A.sizes.maxWidth};return[{backgroundColor:A.colors.background,borderRadius:A.sizes.borderRadius,padding:0},e,I]},[l,I,A]),de=(0,_react().useCallback)(()=>{const e=Z.current.beforeClose;if(!e)return!0;try{return e("close")}catch{return!1}},[]),ue=(0,_react().useMemo)(()=>J&&_react().default.createElement(_reactNative().View,{style:ce.round},h&&_react().default.createElement(_reactNative().View,{style:[S.roundBtnWrap,C&&{marginRight:A.spacing.roundFooterGap}]},_react().default.createElement(_button.default,{block:!0,round:!0,type:"warning",text:X,color:k,loading:Q,disabled:x?.disabled,onPress:te,style:{minHeight:A.sizes.roundButtonHeight}})),C&&_react().default.createElement(_reactNative().View,{style:[S.roundBtnWrap,h&&{marginLeft:A.spacing.roundFooterGap}]},_react().default.createElement(_button.default,{block:!0,round:!0,type:"danger",text:Y,color:N,loading:U,disabled:B?.disabled,onPress:oe,style:{minHeight:A.sizes.roundButtonHeight}}))),[k,Q,x?.disabled,X,N,U,B?.disabled,Y,te,oe,J,ce.round,h,C,A.sizes.roundButtonHeight,A.spacing.roundFooterGap]),pe=(0,_react().useMemo)(()=>J&&_react().default.createElement(_reactNative().View,{style:S.footer},_react().default.createElement(_reactNative().View,{style:ce.border,pointerEvents:"none"}),h&&_react().default.createElement(_ActionButton.ActionButton,{tokens:A,text:X,color:k??A.colors.cancel,dividerPosition:"none",loading:Q,disabled:x?.disabled,onPress:te}),C&&_react().default.createElement(_ActionButton.ActionButton,{tokens:A,text:Y,color:N??A.colors.confirm,dividerPosition:h?"left":"none",loading:U,disabled:B?.disabled,onPress:oe})),[k,Q,x?.disabled,X,N,U,B?.disabled,Y,ce.border,te,oe,J,h,C,A]),ge=q??(K?ue:pe);return _react().default.createElement(_popup.default,_extends({visible:o,placement:"center",round:!0,overlay:d,overlayStyle:u,overlayTestID:p,closeOnBackPress:g,closeOnPopstate:f,closeOnClickOverlay:_||m,onClickOverlay:y,beforeClose:de,onClose:R,onClosed:V,contentAnimationStyle:ae,style:se,accessibilityRole:"android"===_reactNative().Platform.OS?"alert":"alertdialog",accessibilityLabel:"string"==typeof r?r:void 0},T),c&&_react().default.createElement(_reactNative().Pressable,{style:[S.closeIcon,{top:A.spacing.paddingTop/2,right:A.spacing.paddingHorizontal/2,padding:A.spacing.closeIconPadding}],hitSlop:{top:8,bottom:8,left:8,right:8},onPress:ee},s??_react().default.createElement(_Close().default,{size:A.sizes.closeSize,fill:A.colors.closeIcon,color:A.colors.closeIcon})),ie&&_react().default.createElement(_reactNative().View,{style:ie.wrap},(0,_utils.renderTextOrNode)(r,ie.text)),G&&_react().default.createElement(_reactNative().View,{style:[S.content,le.content,O]},j?H:_react().default.createElement(_reactNative().View,{style:le.wrap},(0,_utils.renderTextOrNode)(n,le.text))),ge)},S=_reactNative().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},msgWrap:{width:"100%"},roundFooter:{width:"100%",flexDirection:"row"},roundBtnWrap:{flex:1},closeIcon:{position:"absolute",zIndex:1}}),Dialog=exports.Dialog=_react().default.memo(DialogImpl);Dialog.displayName="Dialog";var _default=exports.default=Dialog;
@@ -1 +1 @@
1
- "use strict";function _react(){const e=_interopRequireDefault(require("react"));return _react=function(){return e},e}function _reactNative(){const e=require("react-native");return _reactNative=function(){return e},e}function _reactNativeSystemIcon(){const e=require("react-native-system-icon");return _reactNativeSystemIcon=function(){return e},e}Object.defineProperty(exports,"__esModule",{value:!0}),exports.Empty=void 0;var _utils=require("../../utils"),_image=_interopRequireDefault(require("../image")),_tokens=require("./tokens");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var i=arguments[t];for(var r in i)({}).hasOwnProperty.call(i,r)&&(e[r]=i[r])}return e},_extends.apply(null,arguments)}const PRESET_ICONS={default:_reactNativeSystemIcon().Description,error:_reactNativeSystemIcon().Fail,network:_reactNativeSystemIcon().Fail,search:_reactNativeSystemIcon().Search},EmptyImpl=e=>{const{tokensOverride:t,image:i,imageSize:r,imageStyle:a,description:n,descriptionStyle:o,children:c,style:s,gap:l,...u}=e,p=(0,_tokens.useEmptyTokens)(t),d=i??p.defaults.image,y=l??p.defaults.gap,_=r??p.sizing.image,g={fontFamily:p.typography.descriptionFontFamily,fontSize:p.typography.descriptionSize,fontWeight:p.typography.descriptionFontWeight};return _react().default.createElement(_reactNative().View,_extends({accessibilityRole:"summary",accessibilityLabel:(0,_utils.isText)(n)?String(n):void 0,style:[p.layout.container,s]},u),(()=>{if(_react().default.isValidElement(d))return _react().default.createElement(_reactNative().View,{style:[p.layout.imageWrapper,{width:_,height:_},a]},d);if((0,_utils.isString)(d)){if(/^https?:/.test(d))return _react().default.createElement(_image.default,{src:d,width:_,height:_,fit:"contain",showLoading:!1,showError:!1,containerStyle:[{backgroundColor:p.colors.imageBackground},a]});const e=PRESET_ICONS[d]||PRESET_ICONS.default;return _react().default.createElement(_reactNative().View,{style:[p.layout.imageWrapper,{width:_,height:_},a]},_react().default.createElement(e,{size:_*p.sizing.iconScale,color:p.colors.icon}))}return null})(),(0,_utils.isRenderable)(n)?(0,_utils.isText)(n)?_react().default.createElement(_reactNative().Text,{style:[p.layout.descriptionText,{marginTop:y,paddingHorizontal:p.spacing.descriptionPaddingHorizontal,color:p.colors.description,fontSize:p.typography.descriptionSize,lineHeight:p.typography.descriptionLineHeight,fontFamily:p.typography.descriptionFontFamily,fontWeight:p.typography.descriptionFontWeight},o]},n):_react().default.createElement(_reactNative().View,{style:{marginTop:y,paddingHorizontal:p.spacing.descriptionPaddingHorizontal}},n):null,(0,_utils.isRenderable)(c)&&_react().default.createElement(_reactNative().View,{style:{marginTop:p.spacing.footerMarginTop}},(0,_utils.renderTextOrNode)(c,g)))},Empty=exports.Empty=_react().default.memo(EmptyImpl);Empty.displayName="Empty";
1
+ "use strict";function _react(){const e=_interopRequireDefault(require("react"));return _react=function(){return e},e}function _reactNative(){const e=require("react-native");return _reactNative=function(){return e},e}function _Description(){const e=_interopRequireDefault(require("react-native-system-icon/Description"));return _Description=function(){return e},e}function _Fail(){const e=_interopRequireDefault(require("react-native-system-icon/Fail"));return _Fail=function(){return e},e}function _Search(){const e=_interopRequireDefault(require("react-native-system-icon/Search"));return _Search=function(){return e},e}Object.defineProperty(exports,"__esModule",{value:!0}),exports.Empty=void 0;var _utils=require("../../utils"),_image=_interopRequireDefault(require("../image")),_tokens=require("./tokens");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var i=arguments[t];for(var r in i)({}).hasOwnProperty.call(i,r)&&(e[r]=i[r])}return e},_extends.apply(null,arguments)}const PRESET_ICONS={default:_Description().default,error:_Fail().default,network:_Fail().default,search:_Search().default},EmptyImpl=e=>{const{tokensOverride:t,image:i,imageSize:r,imageStyle:n,description:a,descriptionStyle:o,children:c,style:l,gap:s,...u}=e,p=(0,_tokens.useEmptyTokens)(t),d=i??p.defaults.image,_=s??p.defaults.gap,f=r??p.sizing.image,g={fontFamily:p.typography.descriptionFontFamily,fontSize:p.typography.descriptionSize,fontWeight:p.typography.descriptionFontWeight};return _react().default.createElement(_reactNative().View,_extends({accessibilityRole:"summary",accessibilityLabel:(0,_utils.isText)(a)?String(a):void 0,style:[p.layout.container,l]},u),(()=>{if(_react().default.isValidElement(d))return _react().default.createElement(_reactNative().View,{style:[p.layout.imageWrapper,{width:f,height:f},n]},d);if((0,_utils.isString)(d)){if(/^https?:/.test(d))return _react().default.createElement(_image.default,{src:d,width:f,height:f,fit:"contain",showLoading:!1,showError:!1,containerStyle:[{backgroundColor:p.colors.imageBackground},n]});const e=PRESET_ICONS[d]||PRESET_ICONS.default;return _react().default.createElement(_reactNative().View,{style:[p.layout.imageWrapper,{width:f,height:f},n]},_react().default.createElement(e,{size:f*p.sizing.iconScale,color:p.colors.icon}))}return null})(),(0,_utils.isRenderable)(a)?(0,_utils.isText)(a)?_react().default.createElement(_reactNative().Text,{style:[p.layout.descriptionText,{marginTop:_,paddingHorizontal:p.spacing.descriptionPaddingHorizontal,color:p.colors.description,fontSize:p.typography.descriptionSize,lineHeight:p.typography.descriptionLineHeight,fontFamily:p.typography.descriptionFontFamily,fontWeight:p.typography.descriptionFontWeight},o]},a):_react().default.createElement(_reactNative().View,{style:{marginTop:_,paddingHorizontal:p.spacing.descriptionPaddingHorizontal}},a):null,(0,_utils.isRenderable)(c)&&_react().default.createElement(_reactNative().View,{style:{marginTop:p.spacing.footerMarginTop}},(0,_utils.renderTextOrNode)(c,g)))},Empty=exports.Empty=_react().default.memo(EmptyImpl);Empty.displayName="Empty";
@@ -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}function _reactNativeSystemIcon(){const e=require("react-native-system-icon");return _reactNativeSystemIcon=function(){return e},e}Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Field=void 0;var _cell=_interopRequireDefault(require("../cell")),_dialog=_interopRequireDefault(require("../dialog")),_string=require("../../utils/string"),_validate=require("../../utils/validate"),_tokens=require("./tokens"),_renderers=require("../../hooks/field/renderers");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 i,l,n={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return n;if(i=t?a:r){if(i.has(e))return i.get(e);i.set(e,n)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((l=(i=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(l.get||l.set)?i(n,t,l):n[t]=e[t]);return n})(e,t)}const FieldImpl=(e,t)=>{const{tokensOverride:r,label:a,labelWidth:i,labelAlign:l,inputAlign:n,controlAlign:o,required:c=!1,colon:s=!1,intro:u,description:d,tooltip:f,error:_=!1,errorMessage:g,errorMessageAlign:p="left",errorMessagePosition:m="inner",disabled:v=!1,readOnly:y=!1,clearable:b=!1,clearTrigger:h,clearIcon:x,leftIcon:R,rightIcon:w,prefix:S,suffix:T,button:k,extra:M,value:I,defaultValue:N="",type:C="text",rows:z,autoSize:F=!1,formatter:E,formatTrigger:P,showWordLimit:L=!1,onOverlimit:O,onClear:q,onClick:D,onClickInput:A,onClickLeftIcon:H,onClickRightIcon:W,border:B,center:G,clickable:V,isLink:j,arrowDirection:$,size:K,titleStyle:Q,contentStyle:J,inputStyle:U,labelStyle:X,introStyle:Y,errorMessageStyle:Z,style:ee,androidRipple:te,children:re,placeholderTextColor:ae,onFocus:ie,onBlur:le,onPressIn:ne,onChangeText:oe,maxLength:ce,...se}=e,ue=(0,_tokens.useFieldTokens)(r),de=i??ue.defaults.labelWidth,fe=l??ue.defaults.labelAlign,_e=n??ue.defaults.inputAlign,ge=o??ue.defaults.controlAlign,pe=h??ue.defaults.clearTrigger,me=z??ue.defaults.rows,ve=P??ue.defaults.formatTrigger,ye=[{width:de,minWidth:de,maxWidth:de,flexBasis:de,marginRight:ue.spacing.labelGap,flexShrink:0,flexGrow:0},Q],be=T??k,he=u??d,xe=ae??(v?ue.colors.disabled:ue.colors.placeholder),Re="textarea"===C,we=void 0!==I,[Se,Te]=(0,_react().useState)(N),ke=we?I??"":Se,[Me,Ie]=(0,_react().useState)(!1),[Ne,Ce]=(0,_react().useState)(!1),ze=(0,_react().useRef)(!1),Fe=(0,_react().useRef)(null),Ee=(0,_react().useId)(),Pe=(0,_react().useId)(),Le=(0,_react().useMemo)(()=>{const e=[(0,_validate.isRenderable)(g)?Pe:null,(0,_validate.isRenderable)(he)?Ee:null].filter(Boolean);return e.length?e:void 0},[Pe,g,Ee,he]),Oe=ue.defaults.textareaLineHeight,qe=F&&(0,_validate.isObject)(F)?F:void 0,De=Re?qe&&(0,_validate.isDef)(qe.minRows)?Math.max(1,qe.minRows):Math.max(1,me):1,Ae=Re&&qe&&(0,_validate.isDef)(qe.maxRows)?Math.max(1,qe.maxRows):void 0,He=(0,_react().useMemo)(()=>Re?Math.max(ue.sizes.textareaMinHeight,De*Oe):void 0,[Re,Oe,De,ue.sizes.textareaMinHeight]),We=(0,_react().useMemo)(()=>Re&&Ae?Math.max(ue.sizes.textareaMinHeight,Ae*Oe):void 0,[Re,Oe,Ae,ue.sizes.textareaMinHeight]),[Be,Ge]=(0,_react().useState)(He),Ve=(0,_react().useRef)(oe);Ve.current=oe;const je=(0,_react().useRef)(O);je.current=O;const $e=(0,_react().useRef)(ie);$e.current=ie;const Ke=(0,_react().useRef)(le);Ke.current=le;const Qe=(0,_react().useRef)(ne);Qe.current=ne;const Je=(0,_react().useRef)(A);Je.current=A;const Ue=(0,_react().useRef)(q);Ue.current=q;const Xe=(0,_react().useCallback)((e,t="onChange")=>E&&t===ve?E(e):e,[ve,E]),Ye=(0,_react().useCallback)((e,t="onChange")=>{const r=Xe(e,t);we||Te(r),Ve.current?.(r)},[Xe,we]);(0,_react().useImperativeHandle)(t,()=>({focus:()=>Fe.current?.focus(),blur:()=>Fe.current?.blur(),clear:()=>Ye(""),get nativeElement(){return Fe.current}}));const Ze="left"!==ge?ge:_e,et=b&&!y&&""!==(ke??"")&&("always"===pe||"focus"===pe&&(Me||Ne)),tt=(0,_react().useCallback)(e=>{let t=e??"";if("number"===C||"digit"===C){const e="number"===C;t=(0,_string.formatNumberInput)(t,e,e)}(0,_validate.isFiniteNumber)(ce)&&ce>=0&&t.length>ce&&(je.current?.(t),t=t.slice(0,ce)),Ye(t,"onChange")},[ce,C,Ye]),rt=(0,_react().useCallback)(e=>{Ie(!0),$e.current?.(e),y&&Fe.current?.blur()},[y]),at=(0,_react().useCallback)(e=>{if("web"!==_reactNative().Platform.OS&&ze.current)return ze.current=!1,Ie(!1),void Ke.current?.(e);Ye(ke??"","onBlur"),Ie(!1),Ke.current?.(e)},[Ye,ke]),it=(0,_react().useCallback)(e=>{Qe.current?.(e),Je.current?.()},[]),lt=(0,_react().useCallback)(e=>{if(!Re)return;const t=e.nativeEvent.contentSize?.height??0;if(!t)return;let r=t;F?(r=Math.max(He??t,t),We&&(r=Math.min(r,We))):He&&(r=Math.max(He,t)),Ge(r)},[F,Re,We,He]),nt=(0,_react().useCallback)(()=>{"web"!==_reactNative().Platform.OS&&(ze.current=!0),Ye(""),Fe.current?.clear?.(),Fe.current?.focus?.(),Ue.current?.()},[Ye]),ot=(0,_react().useCallback)(()=>{Ce(!0),"web"!==_reactNative().Platform.OS&&nt()},[nt]),ct=(0,_react().useCallback)(()=>{Ce(!1),ze.current=!1},[]),st=(0,_validate.isRenderable)(re)?_react().default.createElement(_reactNative().View,{style:[ue.layout.children,{minHeight:ue.sizes.controlMinHeight}]},re):_react().default.createElement(_renderers.FieldInput,{inputRef:Fe,tokens:ue,isTextarea:Re,disabled:v,error:_,finalTextAlign:Ze,lineHeight:Oe,textareaHeight:Be,minHeight:He,inputStyle:U,value:ke??"",onChangeText:tt,onFocus:rt,onBlur:at,onPressIn:it,rows:me,keyboardType:se.keyboardType??(0,_renderers.mapKeyboardType)(C),placeholderTextColor:xe,onContentSizeChange:lt,describedBy:Le,secureTextEntry:"password"===C,editable:!v&&!y,restInputProps:se}),ut=[{width:"100%",justifyContent:_renderers.alignMap[ge]},J],dt=e=>(0,_validate.isText)(e)?_react().default.createElement(_reactNative().Text,{style:[ue.layout.affixText,{color:ue.colors.input,fontSize:ue.typography.inputSize}],numberOfLines:1},e):e,ft=(0,_validate.isRenderable)(f)?(()=>{const e=_react().default.createElement(_reactNativeSystemIcon().QuestionO,{size:ue.sizes.icon,fill:ue.colors.tooltip,color:ue.colors.tooltip}),{icon:t,dialogProps:r}=(0,_renderers.resolveTooltipDialog)(f,e);return _react().default.createElement(_reactNative().Pressable,{style:[ue.layout.tooltip,{marginLeft:ue.spacing.rightIconGap}],onPress:()=>_dialog.default.show(r),accessibilityRole:"button"},t)})():null,_t=(0,_validate.isRenderable)(a)?(()=>{const e=(0,_validate.isText)(a)?_react().default.createElement(_reactNative().Text,{style:[{color:v?ue.colors.disabled:ue.colors.label,fontSize:ue.typography.labelSize,textAlign:fe},X],numberOfLines:1},a,s?":":""):a;return _react().default.createElement(_reactNative().View,{style:ue.layout.labelRow},e,ft)})():null,gt=L&&null!=ce?(()=>{const e=(ke??"").length,t=(0,_validate.isFunction)(L)?L({currentCount:e,maxLength:ce}):`${e}/${ce}`;return(0,_validate.isRenderable)(t)?(0,_validate.isText)(t)?_react().default.createElement(_reactNative().Text,{style:[ue.layout.wordLimit,{color:ue.colors.wordLimit,fontSize:ue.typography.wordLimitSize??12,textAlign:"right",alignSelf:"flex-end",marginTop:ue.spacing.wordLimitMarginTop}]},t):t:null})():null,pt=(0,_validate.isRenderable)(g)?(0,_validate.isText)(g)?_react().default.createElement(_reactNative().Text,{nativeID:Pe,style:[ue.layout.message,{color:ue.colors.error,fontSize:ue.typography.messageSize,textAlign:p,marginTop:ue.spacing.messageMarginTop},Z],accessibilityLiveRegion:"polite"},g):_react().default.createElement(_reactNative().View,{nativeID:Pe,style:[ue.layout.message,{alignSelf:_renderers.alignMap[p],marginTop:ue.spacing.messageMarginTop}],accessibilityLiveRegion:"polite"},g):null,mt=(0,_validate.isRenderable)(he)?(0,_validate.isText)(he)?_react().default.createElement(_reactNative().Text,{nativeID:Ee,style:[ue.layout.message,{color:ue.colors.intro,fontSize:ue.typography.introSize,textAlign:ge,marginTop:ue.spacing.introMarginTop},Y]},he):_react().default.createElement(_reactNative().View,{nativeID:Ee,style:{marginTop:ue.spacing.introMarginTop}},he):null,vt=S?_react().default.createElement(_reactNative().View,{style:[ue.layout.prefix,{paddingRight:ue.spacing.prefixGap}]},dt(S)):null,yt=be?_react().default.createElement(_reactNative().View,{style:[ue.layout.suffix,{paddingLeft:ue.spacing.suffixGap}]},dt(be)):null,bt=R?_react().default.createElement(_renderers.FieldSlot,{onPress:H,style:[ue.layout.leftIcon,{marginRight:ue.spacing.leftIconGap,minWidth:ue.sizes.icon}]},R):null,ht=w?_react().default.createElement(_renderers.FieldSlot,{onPress:W,style:[ue.layout.rightIcon,{paddingHorizontal:ue.spacing.rightIconGap}]},w):null,xt=et?_react().default.createElement(_renderers.FieldClearButton,{show:et,tokens:ue,clearIcon:x,onPressIn:ot,onPressOut:"web"===_reactNative().Platform.OS?ct:void 0,onPress:"web"===_reactNative().Platform.OS?nt:void 0}):null,Rt="outer"===m,wt=_react().default.createElement(_cell.default,{title:_t,icon:void 0,required:c,border:B,center:G,size:K,clickable:V,isLink:j,arrowDirection:$,extra:M,titleStyle:ye,style:[ee,Rt&&(_||(0,_validate.isRenderable)(g))?{borderColor:ue.colors.error}:void 0],contentStyle:ut,accessibilityState:_?{invalid:!0}:void 0,accessibilityLabel:(0,_validate.isText)(a)?String(a):void 0,onPress:D,android_ripple:te},_react().default.createElement(_renderers.FieldControlRow,{tokens:ue,prefixNode:vt,leftIconNode:bt,controlNode:st,clearNode:xt,rightIconNode:ht,suffixNode:yt}),gt,Rt?null:pt,mt);return Rt&&pt?_react().default.createElement(_react().default.Fragment,null,wt,pt):wt},FieldForwardRef=_react().default.forwardRef(FieldImpl);FieldForwardRef.displayName="Field";const Field=exports.Field=_react().default.memo(FieldForwardRef);var _default=exports.default=Field;
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}function _QuestionO(){const e=_interopRequireDefault(require("react-native-system-icon/QuestionO"));return _QuestionO=function(){return e},e}Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Field=void 0;var _cell=_interopRequireDefault(require("../cell")),_dialog=_interopRequireDefault(require("../dialog")),_string=require("../../utils/string"),_validate=require("../../utils/validate"),_tokens=require("./tokens"),_renderers=require("../../hooks/field/renderers");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 i,l,n={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return n;if(i=t?a:r){if(i.has(e))return i.get(e);i.set(e,n)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((l=(i=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(l.get||l.set)?i(n,t,l):n[t]=e[t]);return n})(e,t)}const FieldImpl=(e,t)=>{const{tokensOverride:r,label:a,labelWidth:i,labelAlign:l,inputAlign:n,controlAlign:o,required:c=!1,colon:s=!1,intro:u,description:d,tooltip:f,error:_=!1,errorMessage:g,errorMessageAlign:p="left",errorMessagePosition:m="inner",disabled:v=!1,readOnly:y=!1,clearable:b=!1,clearTrigger:h,clearIcon:x,leftIcon:R,rightIcon:w,prefix:S,suffix:T,button:k,extra:M,value:C,defaultValue:I="",type:N="text",rows:z,autoSize:F=!1,formatter:E,formatTrigger:P,showWordLimit:O=!1,onOverlimit:q,onClear:L,onClick:D,onClickInput:A,onClickLeftIcon:H,onClickRightIcon:W,border:B,center:G,clickable:V,isLink:j,arrowDirection:Q,size:$,titleStyle:K,contentStyle:J,inputStyle:U,labelStyle:X,introStyle:Y,errorMessageStyle:Z,style:ee,androidRipple:te,children:re,placeholderTextColor:ae,onFocus:ie,onBlur:le,onPressIn:ne,onChangeText:oe,maxLength:ce,...se}=e,ue=(0,_tokens.useFieldTokens)(r),de=i??ue.defaults.labelWidth,fe=l??ue.defaults.labelAlign,_e=n??ue.defaults.inputAlign,ge=o??ue.defaults.controlAlign,pe=h??ue.defaults.clearTrigger,me=z??ue.defaults.rows,ve=P??ue.defaults.formatTrigger,ye=[{width:de,minWidth:de,maxWidth:de,flexBasis:de,marginRight:ue.spacing.labelGap,flexShrink:0,flexGrow:0},K],be=T??k,he=u??d,xe=ae??(v?ue.colors.disabled:ue.colors.placeholder),Re="textarea"===N,we=void 0!==C,[Se,Te]=(0,_react().useState)(I),ke=we?C??"":Se,[Me,Ce]=(0,_react().useState)(!1),[Ie,Ne]=(0,_react().useState)(!1),ze=(0,_react().useRef)(!1),Fe=(0,_react().useRef)(null),Ee=(0,_react().useId)(),Pe=(0,_react().useId)(),Oe=(0,_react().useMemo)(()=>{const e=[(0,_validate.isRenderable)(g)?Pe:null,(0,_validate.isRenderable)(he)?Ee:null].filter(Boolean);return e.length?e:void 0},[Pe,g,Ee,he]),qe=ue.defaults.textareaLineHeight,Le=F&&(0,_validate.isObject)(F)?F:void 0,De=Re?Le&&(0,_validate.isDef)(Le.minRows)?Math.max(1,Le.minRows):Math.max(1,me):1,Ae=Re&&Le&&(0,_validate.isDef)(Le.maxRows)?Math.max(1,Le.maxRows):void 0,He=(0,_react().useMemo)(()=>Re?Math.max(ue.sizes.textareaMinHeight,De*qe):void 0,[Re,qe,De,ue.sizes.textareaMinHeight]),We=(0,_react().useMemo)(()=>Re&&Ae?Math.max(ue.sizes.textareaMinHeight,Ae*qe):void 0,[Re,qe,Ae,ue.sizes.textareaMinHeight]),[Be,Ge]=(0,_react().useState)(He),Ve=(0,_react().useRef)(oe);Ve.current=oe;const je=(0,_react().useRef)(q);je.current=q;const Qe=(0,_react().useRef)(ie);Qe.current=ie;const $e=(0,_react().useRef)(le);$e.current=le;const Ke=(0,_react().useRef)(ne);Ke.current=ne;const Je=(0,_react().useRef)(A);Je.current=A;const Ue=(0,_react().useRef)(L);Ue.current=L;const Xe=(0,_react().useCallback)((e,t="onChange")=>E&&t===ve?E(e):e,[ve,E]),Ye=(0,_react().useCallback)((e,t="onChange")=>{const r=Xe(e,t);we||Te(r),Ve.current?.(r)},[Xe,we]);(0,_react().useImperativeHandle)(t,()=>({focus:()=>Fe.current?.focus(),blur:()=>Fe.current?.blur(),clear:()=>Ye(""),get nativeElement(){return Fe.current}}));const Ze="left"!==ge?ge:_e,et=b&&!y&&""!==(ke??"")&&("always"===pe||"focus"===pe&&(Me||Ie)),tt=(0,_react().useCallback)(e=>{let t=e??"";if("number"===N||"digit"===N){const e="number"===N;t=(0,_string.formatNumberInput)(t,e,e)}(0,_validate.isFiniteNumber)(ce)&&ce>=0&&t.length>ce&&(je.current?.(t),t=t.slice(0,ce)),Ye(t,"onChange")},[ce,N,Ye]),rt=(0,_react().useCallback)(e=>{Ce(!0),Qe.current?.(e),y&&Fe.current?.blur()},[y]),at=(0,_react().useCallback)(e=>{if("web"!==_reactNative().Platform.OS&&ze.current)return ze.current=!1,Ce(!1),void $e.current?.(e);Ye(ke??"","onBlur"),Ce(!1),$e.current?.(e)},[Ye,ke]),it=(0,_react().useCallback)(e=>{Ke.current?.(e),Je.current?.()},[]),lt=(0,_react().useCallback)(e=>{if(!Re)return;const t=e.nativeEvent.contentSize?.height??0;if(!t)return;let r=t;F?(r=Math.max(He??t,t),We&&(r=Math.min(r,We))):He&&(r=Math.max(He,t)),Ge(r)},[F,Re,We,He]),nt=(0,_react().useCallback)(()=>{"web"!==_reactNative().Platform.OS&&(ze.current=!0),Ye(""),Fe.current?.clear?.(),Fe.current?.focus?.(),Ue.current?.()},[Ye]),ot=(0,_react().useCallback)(()=>{Ne(!0),"web"!==_reactNative().Platform.OS&&nt()},[nt]),ct=(0,_react().useCallback)(()=>{Ne(!1),ze.current=!1},[]),st=(0,_validate.isRenderable)(re)?_react().default.createElement(_reactNative().View,{style:[ue.layout.children,{minHeight:ue.sizes.controlMinHeight}]},re):_react().default.createElement(_renderers.FieldInput,{inputRef:Fe,tokens:ue,isTextarea:Re,disabled:v,error:_,finalTextAlign:Ze,lineHeight:qe,textareaHeight:Be,minHeight:He,inputStyle:U,value:ke??"",onChangeText:tt,onFocus:rt,onBlur:at,onPressIn:it,rows:me,keyboardType:se.keyboardType??(0,_renderers.mapKeyboardType)(N),placeholderTextColor:xe,onContentSizeChange:lt,describedBy:Oe,secureTextEntry:"password"===N,editable:!v&&!y,restInputProps:se}),ut=[{width:"100%",justifyContent:_renderers.alignMap[ge]},J],dt=e=>(0,_validate.isText)(e)?_react().default.createElement(_reactNative().Text,{style:[ue.layout.affixText,{color:ue.colors.input,fontSize:ue.typography.inputSize}],numberOfLines:1},e):e,ft=(0,_validate.isRenderable)(f)?(()=>{const e=_react().default.createElement(_QuestionO().default,{size:ue.sizes.icon,fill:ue.colors.tooltip,color:ue.colors.tooltip}),{icon:t,dialogProps:r}=(0,_renderers.resolveTooltipDialog)(f,e);return _react().default.createElement(_reactNative().Pressable,{style:[ue.layout.tooltip,{marginLeft:ue.spacing.rightIconGap}],onPress:()=>_dialog.default.show(r),accessibilityRole:"button"},t)})():null,_t=(0,_validate.isRenderable)(a)?(()=>{const e=(0,_validate.isText)(a)?_react().default.createElement(_reactNative().Text,{style:[{color:v?ue.colors.disabled:ue.colors.label,fontSize:ue.typography.labelSize,textAlign:fe},X],numberOfLines:1},a,s?":":""):a;return _react().default.createElement(_reactNative().View,{style:ue.layout.labelRow},e,ft)})():null,gt=O&&null!=ce?(()=>{const e=(ke??"").length,t=(0,_validate.isFunction)(O)?O({currentCount:e,maxLength:ce}):`${e}/${ce}`;return(0,_validate.isRenderable)(t)?(0,_validate.isText)(t)?_react().default.createElement(_reactNative().Text,{style:[ue.layout.wordLimit,{color:ue.colors.wordLimit,fontSize:ue.typography.wordLimitSize??12,textAlign:"right",alignSelf:"flex-end",marginTop:ue.spacing.wordLimitMarginTop}]},t):t:null})():null,pt=(0,_validate.isRenderable)(g)?(0,_validate.isText)(g)?_react().default.createElement(_reactNative().Text,{nativeID:Pe,style:[ue.layout.message,{color:ue.colors.error,fontSize:ue.typography.messageSize,textAlign:p,marginTop:ue.spacing.messageMarginTop},Z],accessibilityLiveRegion:"polite"},g):_react().default.createElement(_reactNative().View,{nativeID:Pe,style:[ue.layout.message,{alignSelf:_renderers.alignMap[p],marginTop:ue.spacing.messageMarginTop}],accessibilityLiveRegion:"polite"},g):null,mt=(0,_validate.isRenderable)(he)?(0,_validate.isText)(he)?_react().default.createElement(_reactNative().Text,{nativeID:Ee,style:[ue.layout.message,{color:ue.colors.intro,fontSize:ue.typography.introSize,textAlign:ge,marginTop:ue.spacing.introMarginTop},Y]},he):_react().default.createElement(_reactNative().View,{nativeID:Ee,style:{marginTop:ue.spacing.introMarginTop}},he):null,vt=S?_react().default.createElement(_reactNative().View,{style:[ue.layout.prefix,{paddingRight:ue.spacing.prefixGap}]},dt(S)):null,yt=be?_react().default.createElement(_reactNative().View,{style:[ue.layout.suffix,{paddingLeft:ue.spacing.suffixGap}]},dt(be)):null,bt=R?_react().default.createElement(_renderers.FieldSlot,{onPress:H,style:[ue.layout.leftIcon,{marginRight:ue.spacing.leftIconGap,minWidth:ue.sizes.icon}]},R):null,ht=w?_react().default.createElement(_renderers.FieldSlot,{onPress:W,style:[ue.layout.rightIcon,{paddingHorizontal:ue.spacing.rightIconGap}]},w):null,xt=et?_react().default.createElement(_renderers.FieldClearButton,{show:et,tokens:ue,clearIcon:x,onPressIn:ot,onPressOut:"web"===_reactNative().Platform.OS?ct:void 0,onPress:"web"===_reactNative().Platform.OS?nt:void 0}):null,Rt="outer"===m,wt=_react().default.createElement(_cell.default,{title:_t,icon:void 0,required:c,border:B,center:G,size:$,clickable:V,isLink:j,arrowDirection:Q,extra:M,titleStyle:ye,style:[ee,Rt&&(_||(0,_validate.isRenderable)(g))?{borderColor:ue.colors.error}:void 0],contentStyle:ut,accessibilityState:_?{invalid:!0}:void 0,accessibilityLabel:(0,_validate.isText)(a)?String(a):void 0,onPress:D,android_ripple:te},_react().default.createElement(_renderers.FieldControlRow,{tokens:ue,prefixNode:vt,leftIconNode:bt,controlNode:st,clearNode:xt,rightIconNode:ht,suffixNode:yt}),gt,Rt?null:pt,mt);return Rt&&pt?_react().default.createElement(_react().default.Fragment,null,wt,pt):wt},FieldForwardRef=_react().default.forwardRef(FieldImpl);FieldForwardRef.displayName="Field";const Field=exports.Field=_react().default.memo(FieldForwardRef);var _default=exports.default=Field;
@@ -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}function _reactNativeSystemIcon(){const e=require("react-native-system-icon");return _reactNativeSystemIcon=function(){return e},e}Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _hooks=require("../../hooks"),_useLocale=require("../config-provider/useLocale"),_useDirection=require("../config-provider/useDirection"),_hairline=require("../../utils/hairline"),_utils=require("../../utils"),_safeAreaView=require("../safe-area-view"),_tokens=require("./tokens");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 i,l,n={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return n;if(i=t?a:r){if(i.has(e))return i.get(e);i.set(e,n)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((l=(i=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(l.get||l.set)?i(n,t,l):n[t]=e[t]);return n})(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 NavBarBaseImpl=e=>{const{tokensOverride:t,title:r,description:a,children:i,leftText:l,rightText:n,leftIcon:o,rightIcon:s,leftArrow:c,fixed:u,placeholder:d,zIndex:f,border:_,safeAreaInsetTop:y,background:p,tintColor:v,titleStyle:b,descriptionStyle:h,sideStyle:m,onPressLeft:g,onClickLeft:N,onPressRight:x,onClickRight:w,style:k,...P}=e,R=(0,_useLocale.useLocale)(),B=(0,_useDirection.useDirection)(),E=(0,_tokens.useNavBarTokens)(t),O=c??E.defaults.leftArrow,I=u??E.defaults.fixed,L=d??E.defaults.placeholder,S=f??E.defaults.zIndex,q=_??E.defaults.border,V=y??I,A=p??E.colors.background,T=g??N,z=x??w,[W,D]=(0,_react().useState)(E.sizing.height),F=I&&L,j=(0,_react().useCallback)(e=>{if(!F)return;const t=e.nativeEvent.layout.height;D(e=>Math.abs(e-t)<.5?e:t)},[F]),C=v??E.colors.text,M=v??E.colors.icon,$=(0,_hooks.useAriaPress)({disabled:!T,onPress:T,extraProps:{accessibilityRole:"button",accessibilityLabel:(0,_utils.isText)(l)?`${l}`:R?.vanNavBar?.back??"Back"}}),H=(0,_hooks.useAriaPress)({disabled:!z,onPress:z,extraProps:{accessibilityRole:"button",accessibilityLabel:(0,_utils.isText)(n)?`${n}`:R?.vanNavBar?.action??"Actions"}}),X=e=>{const t="left"===e,r=t?l:n,a=t?o:s,i=t?$:H,c=t?T:z,u=t?!0===O?_react().default.createElement(_reactNativeSystemIcon().ArrowLeft,{size:18,fill:M,color:M,style:"rtl"===B?{transform:[{scaleX:-1}]}:void 0}):(0,_utils.isRenderable)(O)&&O:null;if(!(!!c||(0,_utils.isRenderable)(u)||(0,_utils.isRenderable)(r)||(0,_utils.isRenderable)(a)))return _react().default.createElement(_reactNative().View,{style:E.layout.sidePlaceholder});const d=_react().default.createElement(_react().default.Fragment,null,u,(0,_utils.isRenderable)(a)?a:null,(0,_utils.isRenderable)(r)?(0,_utils.isText)(r)?_react().default.createElement(_reactNative().Text,{numberOfLines:1,style:[E.layout.sideText,{color:M,fontFamily:E.typography.fontFamily}]},r):r:null),f=[E.layout.side,!t&&E.layout.rightAlign,m];return c?_react().default.createElement(_reactNative().Pressable,_extends({hitSlop:{top:8,right:8,bottom:8,left:8},testID:`rv-navbar-${e}`,style:f},i.interactionProps),d):_react().default.createElement(_reactNative().View,{testID:`rv-navbar-${e}`,style:f},d)},G=(0,_utils.isRenderable)(i)?i:_react().default.createElement(_reactNative().View,{style:E.layout.titleWrapper},(0,_utils.isRenderable)(r)&&(0,_utils.renderTextOrNode)(r,[E.layout.title,{color:C,fontFamily:E.typography.fontFamily,fontSize:E.typography.titleSize,fontWeight:E.typography.titleWeight},b],{numberOfLines:1}),(0,_utils.isRenderable)(a)&&(0,_utils.renderTextOrNode)(a,[E.layout.description,{color:v??E.colors.description,fontFamily:E.typography.fontFamily,fontSize:E.typography.descriptionSize},h],{numberOfLines:1})),J=_react().default.createElement(_reactNative().View,{style:[E.layout.bar,{backgroundColor:A}],onLayout:V?void 0:j},X("left"),_react().default.createElement(_reactNative().View,{style:E.layout.center},G),X("right"),q&&_react().default.createElement(_reactNative().View,{style:(0,_hairline.createHairlineView)({position:"bottom",color:E.colors.border,left:0,right:0})})),K=V?_react().default.createElement(_safeAreaView.SafeAreaView,{onLayout:j,style:{backgroundColor:A}},J):J;return _react().default.createElement(_react().default.Fragment,null,F&&_react().default.createElement(_reactNative().View,{testID:"rv-navbar-placeholder",style:{height:W}}),_react().default.createElement(_reactNative().View,_extends({},P,{accessibilityRole:"web"===_reactNative().Platform.OS?"navigation":void 0,style:[E.layout.container,I&&[E.layout.fixed,{zIndex:S}],k]}),K))},NavBarBase=_react().default.memo(NavBarBaseImpl);NavBarBase.displayName="NavBar";var _default=exports.default=NavBarBase;
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}function _ArrowLeft(){const e=_interopRequireDefault(require("react-native-system-icon/ArrowLeft"));return _ArrowLeft=function(){return e},e}Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _hooks=require("../../hooks"),_useLocale=require("../config-provider/useLocale"),_useDirection=require("../config-provider/useDirection"),_hairline=require("../../utils/hairline"),_utils=require("../../utils"),_safeAreaView=require("../safe-area-view"),_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 i,l,o={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return o;if(i=t?a:r){if(i.has(e))return i.get(e);i.set(e,o)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((l=(i=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(l.get||l.set)?i(o,t,l):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 NavBarBaseImpl=e=>{const{tokensOverride:t,title:r,description:a,children:i,leftText:l,rightText:o,leftIcon:n,rightIcon:s,leftArrow:c,fixed:u,placeholder:d,zIndex:f,border:_,safeAreaInsetTop:y,background:p,tintColor:v,titleStyle:b,descriptionStyle:h,sideStyle:g,onPressLeft:m,onClickLeft:x,onPressRight:w,onClickRight:N,style:k,...R}=e,L=(0,_useLocale.useLocale)(),P=(0,_useDirection.useDirection)(),q=(0,_tokens.useNavBarTokens)(t),B=c??q.defaults.leftArrow,E=u??q.defaults.fixed,O=d??q.defaults.placeholder,A=f??q.defaults.zIndex,V=_??q.defaults.border,I=y??E,S=p??q.colors.background,T=m??x,D=w??N,[z,W]=(0,_react().useState)(q.sizing.height),F=E&&O,M=(0,_react().useCallback)(e=>{if(!F)return;const t=e.nativeEvent.layout.height;W(e=>Math.abs(e-t)<.5?e:t)},[F]),j=v??q.colors.text,C=v??q.colors.icon,$=(0,_hooks.useAriaPress)({disabled:!T,onPress:T,extraProps:{accessibilityRole:"button",accessibilityLabel:(0,_utils.isText)(l)?`${l}`:L?.vanNavBar?.back??"Back"}}),H=(0,_hooks.useAriaPress)({disabled:!D,onPress:D,extraProps:{accessibilityRole:"button",accessibilityLabel:(0,_utils.isText)(o)?`${o}`:L?.vanNavBar?.action??"Actions"}}),X=e=>{const t="left"===e,r=t?l:o,a=t?n:s,i=t?$:H,c=t?T:D,u=t?!0===B?_react().default.createElement(_ArrowLeft().default,{size:18,fill:C,color:C,style:"rtl"===P?{transform:[{scaleX:-1}]}:void 0}):(0,_utils.isRenderable)(B)&&B:null;if(!(!!c||(0,_utils.isRenderable)(u)||(0,_utils.isRenderable)(r)||(0,_utils.isRenderable)(a)))return _react().default.createElement(_reactNative().View,{style:q.layout.sidePlaceholder});const d=_react().default.createElement(_react().default.Fragment,null,u,(0,_utils.isRenderable)(a)?a:null,(0,_utils.isRenderable)(r)?(0,_utils.isText)(r)?_react().default.createElement(_reactNative().Text,{numberOfLines:1,style:[q.layout.sideText,{color:C,fontFamily:q.typography.fontFamily}]},r):r:null),f=[q.layout.side,!t&&q.layout.rightAlign,g];return c?_react().default.createElement(_reactNative().Pressable,_extends({hitSlop:{top:8,right:8,bottom:8,left:8},testID:`rv-navbar-${e}`,style:f},i.interactionProps),d):_react().default.createElement(_reactNative().View,{testID:`rv-navbar-${e}`,style:f},d)},G=(0,_utils.isRenderable)(i)?i:_react().default.createElement(_reactNative().View,{style:q.layout.titleWrapper},(0,_utils.isRenderable)(r)&&(0,_utils.renderTextOrNode)(r,[q.layout.title,{color:j,fontFamily:q.typography.fontFamily,fontSize:q.typography.titleSize,fontWeight:q.typography.titleWeight},b],{numberOfLines:1}),(0,_utils.isRenderable)(a)&&(0,_utils.renderTextOrNode)(a,[q.layout.description,{color:v??q.colors.description,fontFamily:q.typography.fontFamily,fontSize:q.typography.descriptionSize},h],{numberOfLines:1})),J=_react().default.createElement(_reactNative().View,{style:[q.layout.bar,{backgroundColor:S}],onLayout:I?void 0:M},X("left"),_react().default.createElement(_reactNative().View,{style:q.layout.center},G),X("right"),V&&_react().default.createElement(_reactNative().View,{style:(0,_hairline.createHairlineView)({position:"bottom",color:q.colors.border,left:0,right:0})})),K=I?_react().default.createElement(_safeAreaView.SafeAreaView,{onLayout:M,style:{backgroundColor:S}},J):J;return _react().default.createElement(_react().default.Fragment,null,F&&_react().default.createElement(_reactNative().View,{testID:"rv-navbar-placeholder",style:{height:z}}),_react().default.createElement(_reactNative().View,_extends({},R,{accessibilityRole:"web"===_reactNative().Platform.OS?"navigation":void 0,style:[q.layout.container,E&&[q.layout.fixed,{zIndex:A}],k]}),K))},NavBarBase=_react().default.memo(NavBarBaseImpl);NavBarBase.displayName="NavBar";var _default=exports.default=NavBarBase;
@@ -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}function _reactNativeSystemIcon(){const e=require("react-native-system-icon");return _reactNativeSystemIcon=function(){return e},e}Object.defineProperty(exports,"__esModule",{value:!0}),exports.NoticeBar=void 0;var _hooks=require("../../hooks"),_useLocale=require("../config-provider/useLocale"),_useDirection=require("../config-provider/useDirection"),_number=require("../../utils/number"),_validate=require("../../utils/validate"),_utils=require("../../utils"),_platform=require("../../platform"),_animation=require("../../hooks/animation"),_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 i,n,o={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return o;if(i=t?r:a){if(i.has(e))return i.get(e);i.set(e,o)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((n=(i=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(n.get||n.set)?i(o,t,n):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 a=arguments[t];for(var r in a)({}).hasOwnProperty.call(a,r)&&(e[r]=a[r])}return e},_extends.apply(null,arguments)}const AnimatedText=_reactNative().Animated.createAnimatedComponent(_reactNative().Text),IS_WEB="web"===_reactNative().Platform.OS;if(IS_WEB){const e="undefined"!=typeof globalThis?globalThis:window;void 0===e.global&&(e.global=e)}const NoticeBarImpl=e=>{const{text:t,children:a,color:r,background:i,leftIcon:n,rightIcon:o,mode:l,tokensOverride:c,delay:s=1,speed:u=60,scrollable:d,wrapable:_=!1,direction:f="horizontal",items:p,verticalInterval:m=3e3,verticalDuration:v=300,onPress:y,onClose:h,onReplay:g,textProps:b,style:N,...x}=e,w=(0,_useLocale.useLocale)(),E=(0,_useDirection.useDirection)(),k=(0,_animation.useReducedMotion)(),A=(0,_tokens.useNoticeBarTokens)(c),P=r??A.colors.text,I=i??A.colors.background,T=t??a,V=(0,_validate.isText)(T),M="vertical"===f,[O,z]=(0,_react().useState)(!0),{onLayout:q,...L}=b??{},[D,R]=(0,_react().useState)(0),[W,C]=(0,_react().useState)(0),B=(0,_react().useRef)(new(_reactNative().Animated.Value)(0)).current,F=Math.max(0,(0,_number.parseNumber)(s,1)),j=(0,_number.parseNumber)(u,60),H=Math.max(0,(0,_number.parseNumber)(m,3e3)),X=Math.max(0,(0,_number.parseNumber)(v,300)),Y=(0,_react().useMemo)(()=>M?p&&p.length?p:(()=>{const e=_react().default.Children.toArray(a);return e.length?e:void 0!==t?[t]:[]})():[],[a,M,p,t]),G=!k&&M&&Y.length>1,J=(0,_react().useMemo)(()=>G?[...Y,Y[0]]:Y,[G,Y]),K=(0,_react().useRef)(new(_reactNative().Animated.Value)(0)).current,[Q,U]=(0,_react().useState)(0),Z=(0,_react().useCallback)(e=>{R(t=>Math.abs(t-e)<.5?t:e)},[]),$=(0,_react().useCallback)(e=>{C(t=>Math.abs(t-e)<.5?t:e)},[]),ee=(0,_react().useRef)(h);ee.current=h;const te=(0,_react().useRef)(g);te.current=g;const ae=(0,_react().useCallback)(()=>{z(!1),ee.current?.()},[]),re=(0,_hooks.useAriaPress)({disabled:"closeable"!==l||!O,onPress:ae,extraProps:{accessibilityRole:"button",accessibilityLabel:w?.vanNoticeBar?.close??"Close"}}),ie=(0,_hooks.useAriaPress)({disabled:!y||!O,onPress:y,extraProps:y?{accessibilityRole:"button"}:void 0}),ne="closeable"===l?_react().default.createElement(_reactNative().Pressable,_extends({hitSlop:8},re.interactionProps),_react().default.createElement(_reactNativeSystemIcon().Close,{size:16,fill:P,color:P})):"link"===l?_react().default.createElement(_reactNativeSystemIcon().Arrow,{size:16,fill:P,color:P}):o||null,oe=(0,_validate.isRenderable)(n),le=Boolean(ne),ce=Math.max(0,W-(oe?A.spacing.sidePadding:0)-(le?A.spacing.sidePadding:0)),se=!k&&!M&&!_&&(d??D>ce);(0,_react().useEffect)(()=>{if(!O||M)return void B.stopAnimation();if(!se||0===D||0===W||j<=0||!Number.isFinite(j))return void B.setValue(0);let e=!1;const t=(D+W)/j*1e3,a="rtl"===E?-1:1,r=i=>{B.setValue(i?0:a*W),_reactNative().Animated.sequence([_reactNative().Animated.delay(1e3*F),_reactNative().Animated.timing(B,{toValue:-a*D,duration:t,easing:_reactNative().Easing.linear,useNativeDriver:_platform.nativeDriverEnabled,isInteraction:!1})]).start(({finished:t})=>{t&&!e&&(te.current?.(),r(!1))})};return r(!0),()=>{e=!0,B.stopAnimation()}},[se,B,O,F,j,D,W,M,E]),(0,_react().useEffect)(()=>{if(!O)return void K.stopAnimation();if(!G||0===Q)return void K.setValue(0);const e=[];for(let t=1;t<=Y.length;t+=1)e.push(_reactNative().Animated.delay(H),_reactNative().Animated.timing(K,{toValue:-Q*t,duration:X,easing:_reactNative().Easing.linear,useNativeDriver:_platform.nativeDriverEnabled,isInteraction:!1}));e.push(_reactNative().Animated.timing(K,{toValue:0,duration:0,useNativeDriver:_platform.nativeDriverEnabled,isInteraction:!1}));const t=_reactNative().Animated.loop(_reactNative().Animated.sequence(e));return t.start(),()=>{t.stop(),K.stopAnimation()}},[O,G,Q,X,H,Y,K]);const ue=(0,_react().useCallback)(e=>{const t=e?.nativeEvent?.layout?.height;t&&U(e=>0===e||Math.abs(e-t)>=.5?t:e)},[]),de=(0,_react().useMemo)(()=>M&&0!==J.length?G?_react().default.createElement(_reactNative().View,{style:[S.vViewport,Q?{height:Q}:void 0],pointerEvents:"none"},_react().default.createElement(_reactNative().Animated.View,{renderToHardwareTextureAndroid:!0,shouldRasterizeIOS:!0,style:[S.vTrack,{transform:[{translateY:K}]}]},J.map((e,t)=>_react().default.createElement(_reactNative().View,{key:t,onLayout:0===t?ue:void 0,style:S.vItem},(0,_utils.renderTextOrNode)(e,[S.text,{color:P,fontFamily:A.typography.fontFamily,fontSize:A.typography.fontSize}],{numberOfLines:1,...L}))))):(0,_utils.renderTextOrNode)(J[0],[S.text,{color:P,fontFamily:A.typography.fontFamily,fontSize:A.typography.fontSize}],{numberOfLines:1,...L}):null,[ue,G,M,Q,P,L,q,A.typography.fontFamily,A.typography.fontSize,J,K]),_e=(0,_react().useCallback)(e=>{$(e.nativeEvent.layout.width)},[$]),fe=(0,_react().useCallback)(e=>{Z(e.nativeEvent.layout.width),q?.(e)},[Z,q]),pe=(0,_react().useCallback)(e=>Z(e.nativeEvent.layout.width),[Z]);return O?_react().default.createElement(_reactNative().Pressable,_extends({style:[S.ctr,{backgroundColor:I,paddingHorizontal:A.spacing.paddingHorizontal,paddingVertical:_?A.spacing.wrapPaddingVertical:A.spacing.paddingVertical,minHeight:A.layout.minHeight,borderRadius:A.layout.radius},N],disabled:ie.states.disabled},ie.interactionProps,x),oe&&_react().default.createElement(_reactNative().View,{style:[S.side,{minWidth:A.layout.sideMinWidth}]},n),_react().default.createElement(_reactNative().View,{onLayout:_e,style:[S.content,_&&S.contentWrap,oe&&{paddingLeft:A.spacing.sidePadding},le&&{paddingRight:A.spacing.sidePadding}],pointerEvents:"none"},M?de:se?V?_react().default.createElement(AnimatedText,_extends({onLayout:fe,style:[S.text,S.scrollText,{color:P,fontFamily:A.typography.fontFamily,fontSize:A.typography.fontSize,transform:[{translateX:B}]}]},IS_WEB?{}:{numberOfLines:1,ellipsizeMode:"clip"},L),T):_react().default.createElement(_reactNative().Animated.View,{onLayout:pe,renderToHardwareTextureAndroid:!0,shouldRasterizeIOS:!0,style:[S.text,{transform:[{translateX:B}]}]},T):V?_react().default.createElement(_reactNative().Text,_extends({onLayout:fe,style:[S.text,{color:P,fontFamily:A.typography.fontFamily,fontSize:A.typography.fontSize},_&&S.wrapText],numberOfLines:_?void 0:1,ellipsizeMode:_?"tail":"clip"},L),T):_react().default.createElement(_reactNative().View,{onLayout:pe,style:[S.text,_&&S.wrapText]},T)),ne&&_react().default.createElement(_reactNative().View,{style:[S.side,{minWidth:A.layout.sideMinWidth}]},ne)):null},S=_reactNative().StyleSheet.create({ctr:{flexDirection:"row",alignItems:"center"},side:{alignItems:"center",justifyContent:"center"},content:{flex:1,flexDirection:"row",overflow:"hidden"},text:{flexShrink:0},scrollText:_reactNative().Platform.select({web:{whiteSpace:"nowrap",textOverflow:"clip"},default:{}}),wrapText:{flexWrap:"wrap",flexShrink:1},contentWrap:{flexDirection:"column"},vViewport:{width:"100%",overflow:"hidden"},vTrack:{flexDirection:"column",width:"100%"},vItem:{width:"100%",justifyContent:"center"}}),NoticeBar=exports.NoticeBar=_react().default.memo(NoticeBarImpl);NoticeBar.displayName="NoticeBar";
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}function _Arrow(){const e=_interopRequireDefault(require("react-native-system-icon/Arrow"));return _Arrow=function(){return e},e}function _Close(){const e=_interopRequireDefault(require("react-native-system-icon/Close"));return _Close=function(){return e},e}Object.defineProperty(exports,"__esModule",{value:!0}),exports.NoticeBar=void 0;var _hooks=require("../../hooks"),_useLocale=require("../config-provider/useLocale"),_useDirection=require("../config-provider/useDirection"),_number=require("../../utils/number"),_validate=require("../../utils/validate"),_utils=require("../../utils"),_platform=require("../../platform"),_animation=require("../../hooks/animation"),_tokens=require("./tokens");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}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 i,n,o={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return o;if(i=t?r:a){if(i.has(e))return i.get(e);i.set(e,o)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((n=(i=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(n.get||n.set)?i(o,t,n):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 a=arguments[t];for(var r in a)({}).hasOwnProperty.call(a,r)&&(e[r]=a[r])}return e},_extends.apply(null,arguments)}const AnimatedText=_reactNative().Animated.createAnimatedComponent(_reactNative().Text),IS_WEB="web"===_reactNative().Platform.OS;if(IS_WEB){const e="undefined"!=typeof globalThis?globalThis:window;void 0===e.global&&(e.global=e)}const NoticeBarImpl=e=>{const{text:t,children:a,color:r,background:i,leftIcon:n,rightIcon:o,mode:l,tokensOverride:c,delay:s=1,speed:u=60,scrollable:d,wrapable:_=!1,direction:f="horizontal",items:p,verticalInterval:m=3e3,verticalDuration:v=300,onPress:y,onClose:h,onReplay:g,textProps:b,style:N,...x}=e,w=(0,_useLocale.useLocale)(),E=(0,_useDirection.useDirection)(),k=(0,_animation.useReducedMotion)(),A=(0,_tokens.useNoticeBarTokens)(c),P=r??A.colors.text,q=i??A.colors.background,M=t??a,T=(0,_validate.isText)(M),V="vertical"===f,[D,O]=(0,_react().useState)(!0),{onLayout:R,...z}=b??{},[C,I]=(0,_react().useState)(0),[L,W]=(0,_react().useState)(0),B=(0,_react().useRef)(new(_reactNative().Animated.Value)(0)).current,F=Math.max(0,(0,_number.parseNumber)(s,1)),j=(0,_number.parseNumber)(u,60),H=Math.max(0,(0,_number.parseNumber)(m,3e3)),X=Math.max(0,(0,_number.parseNumber)(v,300)),Y=(0,_react().useMemo)(()=>V?p&&p.length?p:(()=>{const e=_react().default.Children.toArray(a);return e.length?e:void 0!==t?[t]:[]})():[],[a,V,p,t]),G=!k&&V&&Y.length>1,J=(0,_react().useMemo)(()=>G?[...Y,Y[0]]:Y,[G,Y]),K=(0,_react().useRef)(new(_reactNative().Animated.Value)(0)).current,[Q,U]=(0,_react().useState)(0),Z=(0,_react().useCallback)(e=>{I(t=>Math.abs(t-e)<.5?t:e)},[]),$=(0,_react().useCallback)(e=>{W(t=>Math.abs(t-e)<.5?t:e)},[]),ee=(0,_react().useRef)(h);ee.current=h;const te=(0,_react().useRef)(g);te.current=g;const ae=(0,_react().useCallback)(()=>{O(!1),ee.current?.()},[]),re=(0,_hooks.useAriaPress)({disabled:"closeable"!==l||!D,onPress:ae,extraProps:{accessibilityRole:"button",accessibilityLabel:w?.vanNoticeBar?.close??"Close"}}),ie=(0,_hooks.useAriaPress)({disabled:!y||!D,onPress:y,extraProps:y?{accessibilityRole:"button"}:void 0}),ne="closeable"===l?_react().default.createElement(_reactNative().Pressable,_extends({hitSlop:8},re.interactionProps),_react().default.createElement(_Close().default,{size:16,fill:P,color:P})):"link"===l?_react().default.createElement(_Arrow().default,{size:16,fill:P,color:P}):o||null,oe=(0,_validate.isRenderable)(n),le=Boolean(ne),ce=Math.max(0,L-(oe?A.spacing.sidePadding:0)-(le?A.spacing.sidePadding:0)),se=!k&&!V&&!_&&(d??C>ce);(0,_react().useEffect)(()=>{if(!D||V)return void B.stopAnimation();if(!se||0===C||0===L||j<=0||!Number.isFinite(j))return void B.setValue(0);let e=!1;const t=(C+L)/j*1e3,a="rtl"===E?-1:1,r=i=>{B.setValue(i?0:a*L),_reactNative().Animated.sequence([_reactNative().Animated.delay(1e3*F),_reactNative().Animated.timing(B,{toValue:-a*C,duration:t,easing:_reactNative().Easing.linear,useNativeDriver:_platform.nativeDriverEnabled,isInteraction:!1})]).start(({finished:t})=>{t&&!e&&(te.current?.(),r(!1))})};return r(!0),()=>{e=!0,B.stopAnimation()}},[se,B,D,F,j,C,L,V,E]),(0,_react().useEffect)(()=>{if(!D)return void K.stopAnimation();if(!G||0===Q)return void K.setValue(0);const e=[];for(let t=1;t<=Y.length;t+=1)e.push(_reactNative().Animated.delay(H),_reactNative().Animated.timing(K,{toValue:-Q*t,duration:X,easing:_reactNative().Easing.linear,useNativeDriver:_platform.nativeDriverEnabled,isInteraction:!1}));e.push(_reactNative().Animated.timing(K,{toValue:0,duration:0,useNativeDriver:_platform.nativeDriverEnabled,isInteraction:!1}));const t=_reactNative().Animated.loop(_reactNative().Animated.sequence(e));return t.start(),()=>{t.stop(),K.stopAnimation()}},[D,G,Q,X,H,Y,K]);const ue=(0,_react().useCallback)(e=>{const t=e?.nativeEvent?.layout?.height;t&&U(e=>0===e||Math.abs(e-t)>=.5?t:e)},[]),de=(0,_react().useMemo)(()=>V&&0!==J.length?G?_react().default.createElement(_reactNative().View,{style:[S.vViewport,Q?{height:Q}:void 0],pointerEvents:"none"},_react().default.createElement(_reactNative().Animated.View,{renderToHardwareTextureAndroid:!0,shouldRasterizeIOS:!0,style:[S.vTrack,{transform:[{translateY:K}]}]},J.map((e,t)=>_react().default.createElement(_reactNative().View,{key:t,onLayout:0===t?ue:void 0,style:S.vItem},(0,_utils.renderTextOrNode)(e,[S.text,{color:P,fontFamily:A.typography.fontFamily,fontSize:A.typography.fontSize}],{numberOfLines:1,...z}))))):(0,_utils.renderTextOrNode)(J[0],[S.text,{color:P,fontFamily:A.typography.fontFamily,fontSize:A.typography.fontSize}],{numberOfLines:1,...z}):null,[ue,G,V,Q,P,z,R,A.typography.fontFamily,A.typography.fontSize,J,K]),_e=(0,_react().useCallback)(e=>{$(e.nativeEvent.layout.width)},[$]),fe=(0,_react().useCallback)(e=>{Z(e.nativeEvent.layout.width),R?.(e)},[Z,R]),pe=(0,_react().useCallback)(e=>Z(e.nativeEvent.layout.width),[Z]);return D?_react().default.createElement(_reactNative().Pressable,_extends({style:[S.ctr,{backgroundColor:q,paddingHorizontal:A.spacing.paddingHorizontal,paddingVertical:_?A.spacing.wrapPaddingVertical:A.spacing.paddingVertical,minHeight:A.layout.minHeight,borderRadius:A.layout.radius},N],disabled:ie.states.disabled},ie.interactionProps,x),oe&&_react().default.createElement(_reactNative().View,{style:[S.side,{minWidth:A.layout.sideMinWidth}]},n),_react().default.createElement(_reactNative().View,{onLayout:_e,style:[S.content,_&&S.contentWrap,oe&&{paddingLeft:A.spacing.sidePadding},le&&{paddingRight:A.spacing.sidePadding}],pointerEvents:"none"},V?de:se?T?_react().default.createElement(AnimatedText,_extends({onLayout:fe,style:[S.text,S.scrollText,{color:P,fontFamily:A.typography.fontFamily,fontSize:A.typography.fontSize,transform:[{translateX:B}]}]},IS_WEB?{}:{numberOfLines:1,ellipsizeMode:"clip"},z),M):_react().default.createElement(_reactNative().Animated.View,{onLayout:pe,renderToHardwareTextureAndroid:!0,shouldRasterizeIOS:!0,style:[S.text,{transform:[{translateX:B}]}]},M):T?_react().default.createElement(_reactNative().Text,_extends({onLayout:fe,style:[S.text,{color:P,fontFamily:A.typography.fontFamily,fontSize:A.typography.fontSize},_&&S.wrapText],numberOfLines:_?void 0:1,ellipsizeMode:_?"tail":"clip"},z),M):_react().default.createElement(_reactNative().View,{onLayout:pe,style:[S.text,_&&S.wrapText]},M)),ne&&_react().default.createElement(_reactNative().View,{style:[S.side,{minWidth:A.layout.sideMinWidth}]},ne)):null},S=_reactNative().StyleSheet.create({ctr:{flexDirection:"row",alignItems:"center"},side:{alignItems:"center",justifyContent:"center"},content:{flex:1,flexDirection:"row",overflow:"hidden"},text:{flexShrink:0},scrollText:_reactNative().Platform.select({web:{whiteSpace:"nowrap",textOverflow:"clip"},default:{}}),wrapText:{flexWrap:"wrap",flexShrink:1},contentWrap:{flexDirection:"column"},vViewport:{width:"100%",overflow:"hidden"},vTrack:{flexDirection:"column",width:"100%"},vItem:{width:"100%",justifyContent:"center"}}),NoticeBar=exports.NoticeBar=_react().default.memo(NoticeBarImpl);NoticeBar.displayName="NoticeBar";
@@ -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.Popup=void 0;var _safeAreaView=require("../safe-area-view"),_platform=require("../../platform"),_animation=require("../../hooks/animation"),_createPlatformShadow=require("../../utils/createPlatformShadow"),_validate=require("../../utils/validate");function _reactNativeSystemIcon(){const e=require("react-native-system-icon");return _reactNativeSystemIcon=function(){return e},e}var _Portal=_interopRequireDefault(require("../portal/Portal")),_hooks=require("../../hooks"),_useLocale=require("../config-provider/useLocale"),_useDirection=require("../config-provider/useDirection"),_tokens=require("./tokens"),_utils=require("../../hooks/popup/utils");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _interopRequireWildcard(e,t){if("function"==typeof WeakMap)var r=new WeakMap,o=new WeakMap;return(_interopRequireWildcard=function(e,t){if(!t&&e&&e.__esModule)return e;var a,n,i={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return i;if(a=t?o:r){if(a.has(e))return a.get(e);a.set(e,i)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((n=(a=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(n.get||n.set)?a(i,t,n):i[t]=e[t]);return i})(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 o in r)({}).hasOwnProperty.call(r,o)&&(e[o]=r[o])}return e},_extends.apply(null,arguments)}const AnimatedPressable=_reactNative().Animated.createAnimatedComponent(_reactNative().Pressable),PopupImpl=e=>{const t=(0,_useLocale.useLocale)(),r=(0,_useDirection.useDirection)(),{visible:o,placement:a,position:n,title:i,description:l,tokensOverride:c,overlay:s=!0,overlayStyle:u,overlayAccessibilityLabel:d=t?.vanPopup?.closeOverlay??"Close overlay",closeOnOverlayPress:p,closeOnClickOverlay:_,overlayTestID:f="popup-overlay",closeable:m=!1,closeIcon:v,closeIconPosition:y="top-right",round:g,safeArea:h=!1,safeAreaInsetTop:b=!1,safeAreaInsetBottom:P,lockScroll:O=!0,destroyOnClose:I=!1,duration:R=300,zIndex:C,closeOnBackPress:E=!1,closeOnPopstate:k=!1,children:w,beforeClose:A,onClickOverlay:N,onClose:x,onOpen:z,onOpened:W,onClosed:T,stopPropagation:q=!0,style:V,contentAnimationStyle:M,...D}=e,L=a??n??"center",H=_??p??!0,F="center"===L,j=P??!1,B=(0,_tokens.usePopupTokens)(c),U=(0,_animation.useReducedMotion)(),X=(0,_react().useRef)({onOpened:W,onClosed:T,onOpen:z,onClose:x,beforeClose:A,onClickOverlay:N});X.current={onOpened:W,onClosed:T,onOpen:z,onClose:x,beforeClose:A,onClickOverlay:N};const Y=(0,_react().useMemo)(()=>{const e=(0,_createPlatformShadow.createPlatformShadow)(B.shadow),{colors:t,spacing:r,typography:o,layout:a}=B;return{popup:{backgroundColor:t.background,padding:r.padding,...e},title:{color:t.title,fontFamily:o.fontFamily,fontSize:o.titleSize,fontWeight:o.titleWeight,marginHorizontal:r.descriptionHorizontal,textAlign:"center"},titleWrap:{marginTop:r.titleTop,marginBottom:r.titleBottom,marginHorizontal:r.descriptionHorizontal,alignItems:"center"},desc:{color:t.description,fontFamily:o.fontFamily,fontSize:o.descriptionSize,lineHeight:o.descriptionLineHeight},descWrap:{marginHorizontal:r.descriptionHorizontal,marginBottom:r.descriptionBottom},closeBase:{minWidth:r.closeIconSize,minHeight:r.closeIconSize,padding:r.closeIconPadding},closeDef:{width:r.closeIconSize,height:r.closeIconSize},side:{width:a.sideWidth,maxWidth:a.maxWidth},center:{minWidth:a.minWidth,maxWidth:a.centerMaxWidth}}},[B]),[G,J]=(0,_react().useState)(o),[K,Q]=(0,_react().useState)(o),Z=o||K,$=H&&(x||A),ee=(0,_react().useRef)(new(_reactNative().Animated.Value)(0)).current,te=(0,_react().useRef)(null),re=(0,_react().useRef)(0),oe=(0,_react().useRef)(o),ae=(0,_react().useRef)(!1),ne="top"===L||"bottom"===L,ie="left"===L||"right"===L,le="top"===L||"left"===L?-1:1,ce=(0,_react().useCallback)((e,t)=>{re.current+=1;const r=re.current;te.current?.stop();const o=t?0:R,a=_reactNative().Animated.timing(ee,{toValue:e?1:0,duration:o,easing:e?_utils.EASE_OUT:_utils.EASE_IN,useNativeDriver:_platform.nativeDriverEnabled,isInteraction:!1});te.current=a,a.start(({finished:t})=>{t&&r===re.current&&(e?X.current.onOpened?.():(Q(!1),I&&J(!1),X.current.onClosed?.()))})},[I,R,ee]);(0,_react().useEffect)(()=>{o?(J(!0),Q(!0),ce(!0,U)):oe.current&&ce(!1,U)},[ce,o,U]),(0,_react().useEffect)(()=>{o&&!oe.current&&X.current.onOpen?.(),oe.current=o},[o]),(0,_react().useEffect)(()=>()=>{te.current?.stop()},[]);const se=(0,_react().useCallback)(async e=>{if(!ae.current){ae.current=!0;try{if(X.current.beforeClose){if(!1===await X.current.beforeClose(e))return}X.current.onClose?.()}finally{ae.current=!1}}},[]);(0,_react().useEffect)(()=>{if(k)return(0,_platform.addPopStateListener)(()=>{o&&se("close")})},[k,se,o]);const ue=(0,_react().useCallback)(()=>{X.current.onClickOverlay?.(),H&&se("overlay")},[se,H]),de=(0,_react().useCallback)(()=>se("close-icon"),[se]),pe=(0,_react().useCallback)(()=>se("close"),[se]),{zIndex:_e}=(0,_hooks.useOverlayStack)({visible:Z,onClose:pe,closeOnBack:E,lockScroll:O,zIndex:C,type:"popup"}),{overlayRef:fe,overlayProps:me}=(0,_hooks.useAriaOverlay)({isOpen:Z,onClose:()=>se("overlay"),isDismissable:H,overlayProps:{..."android"===_reactNative().Platform.OS?{}:{accessibilityRole:"dialog"},accessibilityLiveRegion:"polite"}}),{onLayout:ve,...ye}=me,ge=(0,_react().useMemo)(()=>q?{...ye,onStartShouldSetResponder:_utils.CAPTURE}:ye,[ye,q]),he=_utils.placementConfig[L],Se=(0,_utils.buildRadius)(g,L,B.radius.round),{width:be,height:Pe}=(0,_reactNative().useWindowDimensions)(),Oe=ie?be:ne?Pe:0,Ie=(0,_react().useMemo)(()=>{if(F)return null;const e=[Oe*le,0];return"y"===he.axis?{translateY:ee.interpolate({inputRange:[0,1],outputRange:e})}:{translateX:ee.interpolate({inputRange:[0,1],outputRange:e})}},[he.axis,le,Oe,F,ee]),Re=(0,_react().useMemo)(()=>Ie?[Ie]:[],[Ie]),Ce=(0,_react().useMemo)(()=>{const e=M?.transform,t=Array.isArray(e)?[...Re,...e]:Re,r={...M,transform:t};return F?{...r,opacity:ee}:null==M?.opacity?{...r,opacity:1}:r},[Re,M,F,ee]),[Ee,ke]=(0,_react().useState)(0),we=(0,_react().useCallback)(e=>ke(e.nativeEvent.layout.height),[]),Ae=G||o,Ne=!Z,xe=(0,_validate.isRenderable)(i)||(0,_validate.isRenderable)(l),ze=(0,_react().useMemo)(()=>{if(!xe)return null;const e=B.spacing.closeIconRight+B.spacing.closeIconSize,t=m&&y.startsWith("top-")?y.endsWith("right")?{paddingRight:e}:{paddingLeft:e}:void 0,r=(e,t,r)=>(0,_validate.isRenderable)(e)?(0,_validate.isText)(e)?_react().default.createElement(_reactNative().Text,{style:t},e):_react().default.createElement(_reactNative().View,{style:r},e):null;return _react().default.createElement(_reactNative().View,{style:[S.header,t]},r(i,[S.title,Y.title],Y.titleWrap),r(l,[S.desc,Y.desc],Y.descWrap))},[m,y,l,Y,xe,i,B.spacing.closeIconRight,B.spacing.closeIconSize]),We=(0,_react().useMemo)(()=>{if(!m)return null;const e=null!=v,t=y.includes("bottom")?{bottom:B.spacing.closeIconTop}:{top:B.spacing.closeIconTop+Ee},o="rtl"===r,a=y.endsWith("left")?o?{right:B.spacing.closeIconRight}:{left:B.spacing.closeIconRight}:o?{left:B.spacing.closeIconRight}:{right:B.spacing.closeIconRight};return _react().default.createElement(_reactNative().Pressable,{style:[S.closeBase,Y.closeBase,t,a,!e&&Y.closeDef],hitSlop:8,onPress:de},e?v:_react().default.createElement(_reactNativeSystemIcon().Cross,{size:22,fill:B.colors.closeIcon,color:B.colors.closeIcon}))},[v,y,m,Y,de,Ee,B.colors.closeIcon,B.spacing.closeIconRight,B.spacing.closeIconTop]),Te=xe?_react().default.createElement(_react().default.Fragment,null,ze,w):w;if(!Ae)return null;const qe=_e??C,Ve=h?_react().default.createElement(_safeAreaView.SafeAreaView,null,Te):_react().default.createElement(_react().default.Fragment,null,b&&_react().default.createElement(_safeAreaView.SafeAreaView,{edge:"top",onLayout:we,pointerEvents:"none"}),Te,j&&_react().default.createElement(_safeAreaView.SafeAreaView,{edge:"bottom",pointerEvents:"none"}));return _react().default.createElement(_Portal.default,null,_react().default.createElement(_reactNative().View,{style:[S.root,qe?{zIndex:qe}:void 0],pointerEvents:"box-none"},_react().default.createElement(_reactNative().View,{style:[S.ctr,he.container],pointerEvents:Z?"auto":"none",accessibilityViewIsModal:Z,accessibilityLiveRegion:"polite",onAccessibilityEscape:pe},s&&Z?_react().default.createElement(AnimatedPressable,_extends({testID:f,style:[S.ovl,{backgroundColor:B.colors.overlay,opacity:ee},u],renderToHardwareTextureAndroid:"android"===_reactNative().Platform.OS,shouldRasterizeIOS:"ios"===_reactNative().Platform.OS,pointerEvents:Z?"auto":"none"},$?{accessibilityRole:"button",accessibilityLabel:d,accessibilityHint:t?.vanPopup?.closeHint??"Double-tap to close"}:{accessible:!1},{onPress:ue})):null,!s&&O&&Z?_react().default.createElement(_reactNative().View,{style:S.lock,pointerEvents:"auto",onStartShouldSetResponder:_utils.CAPTURE,onMoveShouldSetResponder:_utils.CAPTURE}):null,_react().default.createElement(_reactNative().Animated.View,_extends({ref:fe},ge,{onLayout:ve,renderToHardwareTextureAndroid:"android"===_reactNative().Platform.OS,shouldRasterizeIOS:"ios"===_reactNative().Platform.OS,style:[Y.popup,F&&Y.center,ne&&S.popV,ie&&Y.side,_utils.CONTENT_SELF[L],Se,Ce,V,Ne&&_utils.hiddenStyle]},D),We,Ve))))},S=_reactNative().StyleSheet.create({root:{..._reactNative().StyleSheet.absoluteFillObject,justifyContent:"center"},ctr:{flex:1},ovl:{..._reactNative().StyleSheet.absoluteFillObject,opacity:0},header:{width:"100%"},title:{includeFontPadding:!1},desc:{includeFontPadding:!1},popV:{alignSelf:"stretch"},closeBase:{position:"absolute",zIndex:999,alignItems:"center",justifyContent:"center"},lock:{..._reactNative().StyleSheet.absoluteFillObject}}),Popup=exports.Popup=_react().default.memo(PopupImpl);var _default=exports.default=Popup;
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.Popup=void 0;var _safeAreaView=require("../safe-area-view"),_platform=require("../../platform"),_animation=require("../../hooks/animation"),_createPlatformShadow=require("../../utils/createPlatformShadow"),_validate=require("../../utils/validate");function _Cross(){const e=_interopRequireDefault(require("react-native-system-icon/Cross"));return _Cross=function(){return e},e}var _Portal=_interopRequireDefault(require("../portal/Portal")),_hooks=require("../../hooks"),_useLocale=require("../config-provider/useLocale"),_useDirection=require("../config-provider/useDirection"),_tokens=require("./tokens"),_utils=require("../../hooks/popup/utils");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _interopRequireWildcard(e,t){if("function"==typeof WeakMap)var r=new WeakMap,o=new WeakMap;return(_interopRequireWildcard=function(e,t){if(!t&&e&&e.__esModule)return e;var a,n,i={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return i;if(a=t?o:r){if(a.has(e))return a.get(e);a.set(e,i)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((n=(a=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(n.get||n.set)?a(i,t,n):i[t]=e[t]);return i})(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 o in r)({}).hasOwnProperty.call(r,o)&&(e[o]=r[o])}return e},_extends.apply(null,arguments)}const AnimatedPressable=_reactNative().Animated.createAnimatedComponent(_reactNative().Pressable),PopupImpl=e=>{const t=(0,_useLocale.useLocale)(),r=(0,_useDirection.useDirection)(),{visible:o,placement:a,position:n,title:i,description:l,tokensOverride:c,overlay:s=!0,overlayStyle:u,overlayAccessibilityLabel:d=t?.vanPopup?.closeOverlay??"Close overlay",closeOnOverlayPress:p,closeOnClickOverlay:f,overlayTestID:_="popup-overlay",closeable:m=!1,closeIcon:v,closeIconPosition:y="top-right",round:g,safeArea:h=!1,safeAreaInsetTop:b=!1,safeAreaInsetBottom:P,lockScroll:O=!0,destroyOnClose:C=!1,duration:R=300,zIndex:I,closeOnBackPress:E=!1,closeOnPopstate:k=!1,children:w,beforeClose:A,onClickOverlay:x,onClose:N,onOpen:z,onOpened:W,onClosed:q,stopPropagation:T=!0,style:V,contentAnimationStyle:D,...M}=e,L=a??n??"center",H=f??p??!0,F="center"===L,j=P??!1,B=(0,_tokens.usePopupTokens)(c),U=(0,_animation.useReducedMotion)(),X=(0,_react().useRef)({onOpened:W,onClosed:q,onOpen:z,onClose:N,beforeClose:A,onClickOverlay:x});X.current={onOpened:W,onClosed:q,onOpen:z,onClose:N,beforeClose:A,onClickOverlay:x};const Y=(0,_react().useMemo)(()=>{const e=(0,_createPlatformShadow.createPlatformShadow)(B.shadow),{colors:t,spacing:r,typography:o,layout:a}=B;return{popup:{backgroundColor:t.background,padding:r.padding,...e},title:{color:t.title,fontFamily:o.fontFamily,fontSize:o.titleSize,fontWeight:o.titleWeight,marginHorizontal:r.descriptionHorizontal,textAlign:"center"},titleWrap:{marginTop:r.titleTop,marginBottom:r.titleBottom,marginHorizontal:r.descriptionHorizontal,alignItems:"center"},desc:{color:t.description,fontFamily:o.fontFamily,fontSize:o.descriptionSize,lineHeight:o.descriptionLineHeight},descWrap:{marginHorizontal:r.descriptionHorizontal,marginBottom:r.descriptionBottom},closeBase:{minWidth:r.closeIconSize,minHeight:r.closeIconSize,padding:r.closeIconPadding},closeDef:{width:r.closeIconSize,height:r.closeIconSize},side:{width:a.sideWidth,maxWidth:a.maxWidth},center:{minWidth:a.minWidth,maxWidth:a.centerMaxWidth}}},[B]),[G,J]=(0,_react().useState)(o),[K,Q]=(0,_react().useState)(o),Z=o||K,$=H&&(N||A),ee=(0,_react().useRef)(new(_reactNative().Animated.Value)(0)).current,te=(0,_react().useRef)(null),re=(0,_react().useRef)(0),oe=(0,_react().useRef)(o),ae=(0,_react().useRef)(!1),ne="top"===L||"bottom"===L,ie="left"===L||"right"===L,le="top"===L||"left"===L?-1:1,ce=(0,_react().useCallback)((e,t)=>{re.current+=1;const r=re.current;te.current?.stop();const o=t?0:R,a=_reactNative().Animated.timing(ee,{toValue:e?1:0,duration:o,easing:e?_utils.EASE_OUT:_utils.EASE_IN,useNativeDriver:_platform.nativeDriverEnabled,isInteraction:!1});te.current=a,a.start(({finished:t})=>{t&&r===re.current&&(e?X.current.onOpened?.():(Q(!1),C&&J(!1),X.current.onClosed?.()))})},[C,R,ee]);(0,_react().useEffect)(()=>{o?(J(!0),Q(!0),ce(!0,U)):oe.current&&ce(!1,U)},[ce,o,U]),(0,_react().useEffect)(()=>{o&&!oe.current&&X.current.onOpen?.(),oe.current=o},[o]),(0,_react().useEffect)(()=>()=>{te.current?.stop()},[]);const se=(0,_react().useCallback)(async e=>{if(!ae.current){ae.current=!0;try{if(X.current.beforeClose){if(!1===await X.current.beforeClose(e))return}X.current.onClose?.()}finally{ae.current=!1}}},[]);(0,_react().useEffect)(()=>{if(k)return(0,_platform.addPopStateListener)(()=>{o&&se("close")})},[k,se,o]);const ue=(0,_react().useCallback)(()=>{X.current.onClickOverlay?.(),H&&se("overlay")},[se,H]),de=(0,_react().useCallback)(()=>se("close-icon"),[se]),pe=(0,_react().useCallback)(()=>se("close"),[se]),{zIndex:fe}=(0,_hooks.useOverlayStack)({visible:Z,onClose:pe,closeOnBack:E,lockScroll:O,zIndex:I,type:"popup"}),{overlayRef:_e,overlayProps:me}=(0,_hooks.useAriaOverlay)({isOpen:Z,onClose:()=>se("overlay"),isDismissable:H,overlayProps:{..."android"===_reactNative().Platform.OS?{}:{accessibilityRole:"dialog"},accessibilityLiveRegion:"polite"}}),{onLayout:ve,...ye}=me,ge=(0,_react().useMemo)(()=>T?{...ye,onStartShouldSetResponder:_utils.CAPTURE}:ye,[ye,T]),he=_utils.placementConfig[L],Se=(0,_utils.buildRadius)(g,L,B.radius.round),{width:be,height:Pe}=(0,_reactNative().useWindowDimensions)(),Oe=ie?be:ne?Pe:0,Ce=(0,_react().useMemo)(()=>{if(F)return null;const e=[Oe*le,0];return"y"===he.axis?{translateY:ee.interpolate({inputRange:[0,1],outputRange:e})}:{translateX:ee.interpolate({inputRange:[0,1],outputRange:e})}},[he.axis,le,Oe,F,ee]),Re=(0,_react().useMemo)(()=>Ce?[Ce]:[],[Ce]),Ie=(0,_react().useMemo)(()=>{const e=D?.transform,t=Array.isArray(e)?[...Re,...e]:Re,r={...D,transform:t};return F?{...r,opacity:ee}:null==D?.opacity?{...r,opacity:1}:r},[Re,D,F,ee]),[Ee,ke]=(0,_react().useState)(0),we=(0,_react().useCallback)(e=>ke(e.nativeEvent.layout.height),[]),Ae=G||o,xe=!Z,Ne=(0,_validate.isRenderable)(i)||(0,_validate.isRenderable)(l),ze=(0,_react().useMemo)(()=>{if(!Ne)return null;const e=B.spacing.closeIconRight+B.spacing.closeIconSize,t=m&&y.startsWith("top-")?y.endsWith("right")?{paddingRight:e}:{paddingLeft:e}:void 0,r=(e,t,r)=>(0,_validate.isRenderable)(e)?(0,_validate.isText)(e)?_react().default.createElement(_reactNative().Text,{style:t},e):_react().default.createElement(_reactNative().View,{style:r},e):null;return _react().default.createElement(_reactNative().View,{style:[S.header,t]},r(i,[S.title,Y.title],Y.titleWrap),r(l,[S.desc,Y.desc],Y.descWrap))},[m,y,l,Y,Ne,i,B.spacing.closeIconRight,B.spacing.closeIconSize]),We=(0,_react().useMemo)(()=>{if(!m)return null;const e=null!=v,t=y.includes("bottom")?{bottom:B.spacing.closeIconTop}:{top:B.spacing.closeIconTop+Ee},o="rtl"===r,a=y.endsWith("left")?o?{right:B.spacing.closeIconRight}:{left:B.spacing.closeIconRight}:o?{left:B.spacing.closeIconRight}:{right:B.spacing.closeIconRight};return _react().default.createElement(_reactNative().Pressable,{style:[S.closeBase,Y.closeBase,t,a,!e&&Y.closeDef],hitSlop:8,onPress:de},e?v:_react().default.createElement(_Cross().default,{size:22,fill:B.colors.closeIcon,color:B.colors.closeIcon}))},[v,y,m,Y,de,Ee,B.colors.closeIcon,B.spacing.closeIconRight,B.spacing.closeIconTop]),qe=Ne?_react().default.createElement(_react().default.Fragment,null,ze,w):w;if(!Ae)return null;const Te=fe??I,Ve=h?_react().default.createElement(_safeAreaView.SafeAreaView,null,qe):_react().default.createElement(_react().default.Fragment,null,b&&_react().default.createElement(_safeAreaView.SafeAreaView,{edge:"top",onLayout:we,pointerEvents:"none"}),qe,j&&_react().default.createElement(_safeAreaView.SafeAreaView,{edge:"bottom",pointerEvents:"none"}));return _react().default.createElement(_Portal.default,null,_react().default.createElement(_reactNative().View,{style:[S.root,Te?{zIndex:Te}:void 0],pointerEvents:"box-none"},_react().default.createElement(_reactNative().View,{style:[S.ctr,he.container],pointerEvents:Z?"auto":"none",accessibilityViewIsModal:Z,accessibilityLiveRegion:"polite",onAccessibilityEscape:pe},s&&Z?_react().default.createElement(AnimatedPressable,_extends({testID:_,style:[S.ovl,{backgroundColor:B.colors.overlay,opacity:ee},u],renderToHardwareTextureAndroid:"android"===_reactNative().Platform.OS,shouldRasterizeIOS:"ios"===_reactNative().Platform.OS,pointerEvents:Z?"auto":"none"},$?{accessibilityRole:"button",accessibilityLabel:d,accessibilityHint:t?.vanPopup?.closeHint??"Double-tap to close"}:{accessible:!1},{onPress:ue})):null,!s&&O&&Z?_react().default.createElement(_reactNative().View,{style:S.lock,pointerEvents:"auto",onStartShouldSetResponder:_utils.CAPTURE,onMoveShouldSetResponder:_utils.CAPTURE}):null,_react().default.createElement(_reactNative().Animated.View,_extends({ref:_e},ge,{onLayout:ve,renderToHardwareTextureAndroid:"android"===_reactNative().Platform.OS,shouldRasterizeIOS:"ios"===_reactNative().Platform.OS,style:[Y.popup,F&&Y.center,ne&&S.popV,ie&&Y.side,_utils.CONTENT_SELF[L],Se,Ie,V,xe&&_utils.hiddenStyle]},M),We,Ve))))},S=_reactNative().StyleSheet.create({root:{..._reactNative().StyleSheet.absoluteFillObject,justifyContent:"center"},ctr:{flex:1},ovl:{..._reactNative().StyleSheet.absoluteFillObject,opacity:0},header:{width:"100%"},title:{includeFontPadding:!1},desc:{includeFontPadding:!1},popV:{alignSelf:"stretch"},closeBase:{position:"absolute",zIndex:999,alignItems:"center",justifyContent:"center"},lock:{..._reactNative().StyleSheet.absoluteFillObject}}),Popup=exports.Popup=_react().default.memo(PopupImpl);var _default=exports.default=Popup;
@@ -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}function _reactNativeSystemIcon(){const e=require("react-native-system-icon");return _reactNativeSystemIcon=function(){return e},e}Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Search=void 0;var _hooks=require("../../hooks"),_validate=require("../../utils/validate"),_useLocale=require("../config-provider/useLocale"),_field=_interopRequireDefault(require("../field")),_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,c,i={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return i;if(n=t?a:r){if(n.has(e))return n.get(e);n.set(e,i)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((c=(n=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(c.get||c.set)?n(i,t,c):i[t]=e[t]);return i})(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 SearchComponent=(e,t)=>{const r=(0,_useLocale.useLocale)(),{tokensOverride:a,label:n,action:c,actionText:i,showAction:o=!1,shape:l,background:s,style:u,fieldStyle:d,fieldContentStyle:f,clearTrigger:p,clearable:_=!0,leftIcon:g,rightIcon:y,errorMessage:h,onSearch:b,onCancel:v,onChangeText:m,onSubmitEditing:x,returnKeyType:k,inputStyle:R,align:w,inputAlign:N,...V}=e,q=(0,_tokens.useSearchTokens)(a),E=l??q.defaults.shape,[C,P]=(0,_hooks.useControllableValue)(e,{defaultValue:""}),T=C??"",I=w??N,W=(0,_react().useRef)(m),z=(0,_react().useRef)(v),O=(0,_react().useRef)(b),M=(0,_react().useRef)(x),j=(0,_react().useRef)(T);W.current=m,z.current=v,O.current=b,M.current=x,j.current=T;const L=(0,_react().useCallback)(e=>{P(e),W.current?.(e)},[P]),D=(0,_react().useCallback)(()=>{L(""),z.current?.()},[L]),H=(0,_react().useCallback)(e=>{O.current?.(j.current),M.current?.(e)},[]),G=s??q.colors.background,A=g??_react().default.createElement(_reactNativeSystemIcon().Search,{size:q.icon.size,fill:q.colors.icon,color:q.colors.icon}),F=p??q.defaults.clearTrigger,K=k??"search",B=!!c||o,J=_react().default.isValidElement(i),Q=B&&!c&&!J,U="round"===E?q.radius.round:q.radius.square,X=(0,_react().useRef)(null);(0,_react().useImperativeHandle)(t,()=>({focus:()=>X.current?.focus(),blur:()=>X.current?.blur(),clear:()=>L("")}),[L]);const Y=(0,_hooks.useAriaPress)({disabled:!Q,onPress:D,extraProps:{accessibilityRole:"button",testID:"rnsu-search-action"}}),Z=[S.ctr,{paddingHorizontal:q.spacing.paddingHorizontal,paddingVertical:q.spacing.paddingVertical,backgroundColor:G},u],$=[S.cnt,{borderRadius:U,paddingHorizontal:q.spacing.contentPaddingHorizontal,paddingVertical:q.spacing.contentPaddingVertical,backgroundColor:q.colors.contentBackground}],ee=n?(0,_validate.isText)(n)?_react().default.createElement(_reactNative().Text,{style:{marginRight:q.spacing.labelGap,color:q.colors.label,fontSize:q.typography.label,fontWeight:q.typography.labelWeight}},n):_react().default.createElement(_reactNative().View,{style:{marginRight:q.spacing.labelGap}},n):null,te=c?_react().default.createElement(_reactNative().View,{style:[S.act,{marginLeft:q.spacing.actionGap}]},c):B?J?_react().default.createElement(_reactNative().View,{style:[S.act,{marginLeft:q.spacing.actionGap}]},i):_react().default.createElement(_reactNative().Pressable,_extends({style:[S.act,{marginLeft:q.spacing.actionGap,opacity:Y.states.pressed?q.opacity.actionPressed:1}]},Y.interactionProps),_react().default.createElement(_reactNative().Text,{style:{color:q.colors.action,fontSize:q.typography.action,fontWeight:q.typography.actionWeight}},i??r.cancel)):null;return _react().default.createElement(_reactNative().View,{style:Z},_react().default.createElement(_reactNative().View,{style:$},ee,_react().default.createElement(_reactNative().View,{style:S.field},_react().default.createElement(_field.default,_extends({ref:X,type:"search",value:T,onChangeText:L,clearable:_,clearTrigger:F,leftIcon:A,rightIcon:y,center:!h,errorMessage:h,inputAlign:I,border:!1,style:[{paddingHorizontal:q.spacing.none,paddingVertical:q.spacing.none},d],contentStyle:[{paddingVertical:q.spacing.none},f],inputStyle:[{paddingVertical:q.spacing.none},R],onSubmitEditing:H,returnKeyType:K},V)))),te)},SearchForwardRef=_react().default.forwardRef(SearchComponent);SearchForwardRef.displayName="Search";const Search=exports.Search=_react().default.memo(SearchForwardRef),S=_reactNative().StyleSheet.create({ctr:{flexDirection:"row",alignItems:"center"},cnt:{flex:1,flexDirection:"row",alignItems:"center"},field:{flex:1},act:{justifyContent:"center"}});var _default=exports.default=Search;
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}function _Search(){const e=_interopRequireDefault(require("react-native-system-icon/Search"));return _Search=function(){return e},e}Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Search=void 0;var _hooks=require("../../hooks"),_validate=require("../../utils/validate"),_useLocale=require("../config-provider/useLocale"),_field=_interopRequireDefault(require("../field")),_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,c,i={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return i;if(n=t?a:r){if(n.has(e))return n.get(e);n.set(e,i)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((c=(n=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(c.get||c.set)?n(i,t,c):i[t]=e[t]);return i})(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 SearchComponent=(e,t)=>{const r=(0,_useLocale.useLocale)(),{tokensOverride:a,label:n,action:c,actionText:i,showAction:o=!1,shape:l,background:u,style:s,fieldStyle:d,fieldContentStyle:f,clearTrigger:p,clearable:_=!0,leftIcon:g,rightIcon:h,errorMessage:y,onSearch:b,onCancel:v,onChangeText:m,onSubmitEditing:x,returnKeyType:k,inputStyle:R,align:w,inputAlign:V,...q}=e,E=(0,_tokens.useSearchTokens)(a),C=l??E.defaults.shape,[N,P]=(0,_hooks.useControllableValue)(e,{defaultValue:""}),T=N??"",W=w??V,z=(0,_react().useRef)(m),O=(0,_react().useRef)(v),I=(0,_react().useRef)(b),M=(0,_react().useRef)(x),j=(0,_react().useRef)(T);z.current=m,O.current=v,I.current=b,M.current=x,j.current=T;const D=(0,_react().useCallback)(e=>{P(e),z.current?.(e)},[P]),L=(0,_react().useCallback)(()=>{D(""),O.current?.()},[D]),H=(0,_react().useCallback)(e=>{I.current?.(j.current),M.current?.(e)},[]),G=u??E.colors.background,A=g??_react().default.createElement(_Search().default,{size:E.icon.size,fill:E.colors.icon,color:E.colors.icon}),F=p??E.defaults.clearTrigger,K=k??"search",B=!!c||o,J=_react().default.isValidElement(i),Q=B&&!c&&!J,U="round"===C?E.radius.round:E.radius.square,X=(0,_react().useRef)(null);(0,_react().useImperativeHandle)(t,()=>({focus:()=>X.current?.focus(),blur:()=>X.current?.blur(),clear:()=>D("")}),[D]);const Y=(0,_hooks.useAriaPress)({disabled:!Q,onPress:L,extraProps:{accessibilityRole:"button",testID:"rnsu-search-action"}}),Z=[S.ctr,{paddingHorizontal:E.spacing.paddingHorizontal,paddingVertical:E.spacing.paddingVertical,backgroundColor:G},s],$=[S.cnt,{borderRadius:U,paddingHorizontal:E.spacing.contentPaddingHorizontal,paddingVertical:E.spacing.contentPaddingVertical,backgroundColor:E.colors.contentBackground}],ee=n?(0,_validate.isText)(n)?_react().default.createElement(_reactNative().Text,{style:{marginRight:E.spacing.labelGap,color:E.colors.label,fontSize:E.typography.label,fontWeight:E.typography.labelWeight}},n):_react().default.createElement(_reactNative().View,{style:{marginRight:E.spacing.labelGap}},n):null,te=c?_react().default.createElement(_reactNative().View,{style:[S.act,{marginLeft:E.spacing.actionGap}]},c):B?J?_react().default.createElement(_reactNative().View,{style:[S.act,{marginLeft:E.spacing.actionGap}]},i):_react().default.createElement(_reactNative().Pressable,_extends({style:[S.act,{marginLeft:E.spacing.actionGap,opacity:Y.states.pressed?E.opacity.actionPressed:1}]},Y.interactionProps),_react().default.createElement(_reactNative().Text,{style:{color:E.colors.action,fontSize:E.typography.action,fontWeight:E.typography.actionWeight}},i??r.cancel)):null;return _react().default.createElement(_reactNative().View,{style:Z},_react().default.createElement(_reactNative().View,{style:$},ee,_react().default.createElement(_reactNative().View,{style:S.field},_react().default.createElement(_field.default,_extends({ref:X,type:"search",value:T,onChangeText:D,clearable:_,clearTrigger:F,leftIcon:A,rightIcon:h,center:!y,errorMessage:y,inputAlign:W,border:!1,style:[{paddingHorizontal:E.spacing.none,paddingVertical:E.spacing.none},d],contentStyle:[{paddingVertical:E.spacing.none},f],inputStyle:[{paddingVertical:E.spacing.none},R],onSubmitEditing:H,returnKeyType:K},q)))),te)},SearchForwardRef=_react().default.forwardRef(SearchComponent);SearchForwardRef.displayName="Search";const Search=exports.Search=_react().default.memo(SearchForwardRef),S=_reactNative().StyleSheet.create({ctr:{flexDirection:"row",alignItems:"center"},cnt:{flex:1,flexDirection:"row",alignItems:"center"},field:{flex:1},act:{justifyContent:"center"}});var _default=exports.default=Search;
@@ -1 +1 @@
1
- "use strict";function _react(){const e=_interopRequireDefault(require("react"));return _react=function(){return e},e}function _reactNative(){const e=require("react-native");return _reactNative=function(){return e},e}function _reactNativeSystemIcon(){const e=require("react-native-system-icon");return _reactNativeSystemIcon=function(){return e},e}Object.defineProperty(exports,"__esModule",{value:!0}),exports.Tag=void 0;var _utils=require("../../utils"),_validate=require("../../utils/validate"),_useDirection=require("../config-provider/useDirection"),_tokens=require("./tokens");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}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 TagImpl=e=>{const{tokensOverride:t,children:r,type:a,size:i,plain:o,round:n,mark:s,color:l,textColor:u,show:d,closeable:c,closeIcon:f,onClose:p,onPress:g,textStyle:_,style:m,...y}=e,b=(0,_tokens.useTagTokens)(t),v=(0,_useDirection.useDirection)(),R=a??b.defaults.type,h=i??b.defaults.size,k=o??b.defaults.plain,T=n??b.defaults.round,z=s??b.defaults.mark;if(!(d??b.defaults.show))return null;const x=b.colors.toneMap[R]??b.colors.toneMap.default,N=b.sizing.sizes[h],S=k?b.colors.plainBackground:l??x.background,q=u??(k?l??x.background:x.text),L=k?l??x.background:"transparent",I=T?b.radii.round:N.borderRadius,P=z?"rtl"===v?{borderTopRightRadius:b.radii.markLeading,borderBottomRightRadius:b.radii.markLeading,borderTopLeftRadius:b.radii.round,borderBottomLeftRadius:b.radii.round}:{borderTopLeftRadius:b.radii.markLeading,borderBottomLeftRadius:b.radii.markLeading,borderTopRightRadius:b.radii.round,borderBottomRightRadius:b.radii.round}:null,O=z?b.radii.round:I,w=[b.layout.container,{backgroundColor:S,paddingHorizontal:N.paddingHorizontal,paddingVertical:N.paddingVertical,borderRadius:I},P,m],B=(0,_validate.isRenderable)(r)?(0,_utils.renderTextOrNode)(r,[{color:q,fontSize:N.fontSize,lineHeight:N.lineHeight,fontFamily:b.typography.fontFamily,fontWeight:b.typography.fontWeight},_].filter(Boolean)):null,D=c&&_react().default.createElement(_reactNative().Pressable,{accessibilityRole:"button",hitSlop:b.spacing.closeHitSlop,style:[b.layout.close,{marginLeft:b.spacing.closeGap}],onPress:e=>{e.stopPropagation?.(),p?.()}},(0,_utils.isFunction)(f)?f(q,b.sizing.closeIconSize):f??_react().default.createElement(_reactNativeSystemIcon().Close,{color:q,size:b.sizing.closeIconSize})),E=k?_react().default.createElement(_reactNative().View,{style:(0,_utils.createHairlineView)({position:"all",color:L,borderRadius:O})}):null,H=_react().default.createElement(_react().default.Fragment,null,B,D,E);return g?_react().default.createElement(_reactNative().Pressable,_extends({accessibilityRole:"button",onPress:g,style:({pressed:e})=>[w,e&&{opacity:b.defaults.pressedOpacity}]},y),H):_react().default.createElement(_reactNative().View,_extends({style:w},y),H)},Tag=exports.Tag=_react().default.memo(TagImpl);Tag.displayName="Tag";
1
+ "use strict";function _react(){const e=_interopRequireDefault(require("react"));return _react=function(){return e},e}function _reactNative(){const e=require("react-native");return _reactNative=function(){return e},e}function _Close(){const e=_interopRequireDefault(require("react-native-system-icon/Close"));return _Close=function(){return e},e}Object.defineProperty(exports,"__esModule",{value:!0}),exports.Tag=void 0;var _utils=require("../../utils"),_validate=require("../../utils/validate"),_useDirection=require("../config-provider/useDirection"),_tokens=require("./tokens");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}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 i in r)({}).hasOwnProperty.call(r,i)&&(e[i]=r[i])}return e},_extends.apply(null,arguments)}const TagImpl=e=>{const{tokensOverride:t,children:r,type:i,size:a,plain:o,round:n,mark:l,color:s,textColor:u,show:d,closeable:c,closeIcon:f,onClose:p,onPress:g,textStyle:_,style:b,...m}=e,y=(0,_tokens.useTagTokens)(t),R=(0,_useDirection.useDirection)(),v=i??y.defaults.type,h=a??y.defaults.size,k=o??y.defaults.plain,T=n??y.defaults.round,z=l??y.defaults.mark;if(!(d??y.defaults.show))return null;const x=y.colors.toneMap[v]??y.colors.toneMap.default,q=y.sizing.sizes[h],L=k?y.colors.plainBackground:s??x.background,N=u??(k?s??x.background:x.text),P=k?s??x.background:"transparent",C=T?y.radii.round:q.borderRadius,D=z?"rtl"===R?{borderTopRightRadius:y.radii.markLeading,borderBottomRightRadius:y.radii.markLeading,borderTopLeftRadius:y.radii.round,borderBottomLeftRadius:y.radii.round}:{borderTopLeftRadius:y.radii.markLeading,borderBottomLeftRadius:y.radii.markLeading,borderTopRightRadius:y.radii.round,borderBottomRightRadius:y.radii.round}:null,O=z?y.radii.round:C,S=[y.layout.container,{backgroundColor:L,paddingHorizontal:q.paddingHorizontal,paddingVertical:q.paddingVertical,borderRadius:C},D,b],w=(0,_validate.isRenderable)(r)?(0,_utils.renderTextOrNode)(r,[{color:N,fontSize:q.fontSize,lineHeight:q.lineHeight,fontFamily:y.typography.fontFamily,fontWeight:y.typography.fontWeight},_].filter(Boolean)):null,B=c&&_react().default.createElement(_reactNative().Pressable,{accessibilityRole:"button",hitSlop:y.spacing.closeHitSlop,style:[y.layout.close,{marginLeft:y.spacing.closeGap}],onPress:e=>{e.stopPropagation?.(),p?.()}},(0,_utils.isFunction)(f)?f(N,y.sizing.closeIconSize):f??_react().default.createElement(_Close().default,{color:N,size:y.sizing.closeIconSize})),E=k?_react().default.createElement(_reactNative().View,{style:(0,_utils.createHairlineView)({position:"all",color:P,borderRadius:O})}):null,H=_react().default.createElement(_react().default.Fragment,null,w,B,E);return g?_react().default.createElement(_reactNative().Pressable,_extends({accessibilityRole:"button",onPress:g,style:({pressed:e})=>[S,e&&{opacity:y.defaults.pressedOpacity}]},m),H):_react().default.createElement(_reactNative().View,_extends({style:S},m),H)},Tag=exports.Tag=_react().default.memo(TagImpl);Tag.displayName="Tag";
@@ -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:w}=(0,_reactNative().useWindowDimensions)(),O=(0,_validate.isFiniteNumber)(o)?Math.max(0,o):0,[I,C]=(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:I,type:"toast"}),H=(0,_react().useRef)(t),j=(0,_react().useRef)(!1),F=w>0?Math.round(w*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?(C(!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&&C(!1)}))},[M,R,N.animationDuration,t]),(0,_react().useEffect)(()=>()=>{P.current?.stop()},[]),(0,_react().useEffect)(()=>{if(!t||O<=0)return;const e=setTimeout(()=>{z.current?.()},O);return()=>clearTimeout(e)},[O,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)(()=>{!I&&j.current&&(j.current=!1,V.current?.())},[I]);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(!I)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,{style:S.pw}),_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},pw:{alignItems:"center"},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 _Checked(){const e=_interopRequireDefault(require("react-native-system-icon/Checked"));return _Checked=function(){return e},e}function _Close(){const e=_interopRequireDefault(require("react-native-system-icon/Close"));return _Close=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:p,safeAreaInsetBottom:m,tokensOverride:v,style:g,textStyle:y,onClose:x,onOpen:b,onOpened:h,onClosed:T}=e,R=(0,_useLocale.useLocale)(),E=(0,_tokens.useToastTokens)(v),C=(0,_animation.useReducedMotion)(),{colors:k}=E,{height:N}=(0,_reactNative().useWindowDimensions)(),w=(0,_validate.isFiniteNumber)(o)?Math.max(0,o):0,[O,q]=(0,_react().useState)(t),M=(0,_react().useRef)(new(_reactNative().Animated.Value)(t?1:0)).current,P=(0,_react().useRef)(null),I=(0,_react().useRef)(0),z=(0,_react().useRef)(x);z.current=x;const A=(0,_react().useRef)(b);A.current=b;const D=(0,_react().useRef)(h);D.current=h;const W=(0,_react().useRef)(T);W.current=T;const{zIndex:V}=(0,_hooks.useOverlayStack)({visible:O,type:"toast"}),H=(0,_react().useRef)(t),j=(0,_react().useRef)(!1),F=N>0?Math.round(N*E.positionOffsetRatio):E.positionOffsetMin,L=void 0!==p?p:"top"===s,B=void 0!==m?m:"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)(()=>{I.current+=1;const e=I.current;P.current?.stop();const r=C?0:E.animationDuration;t?(q(!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===I.current&&q(!1)}))},[M,C,E.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=C?0:E.animationDuration;(0,_react().useEffect)(()=>{let e=null;return t?(j.current=!1,!H.current&&(A.current?.(),D.current&&(e=setTimeout(D.current,J)))):H.current&&(j.current=!0),H.current=t,()=>{e&&clearTimeout(e)}},[J,t]),(0,_react().useEffect)(()=>{!O&&j.current&&(j.current=!1,W.current?.())},[O]);const K=(0,_react().useRef)(()=>z.current?.()).current,Q=(0,_hooks.useAriaPress)({disabled:!f,onPress:K,extraProps:{accessibilityRole:f?"button":"alert",accessibilityHint:f?R?.vanToast?.closeHint??"Double-tap to dismiss":void 0,accessibilityLiveRegion:"assertive"}}),U=(0,_react().useMemo)(()=>{if(a)return a;const e=i??E.iconSize;switch(n){case"success":return _react().default.createElement(_Checked().default,{size:e,fill:k.text,color:k.text});case"fail":return _react().default.createElement(_Close().default,{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,_,E.iconSize,n]),X=(0,_react().useMemo)(()=>({marginBottom:E.gap}),[E.gap]),Y=(0,_react().useMemo)(()=>({color:k.text,fontSize:E.fontSize,lineHeight:E.lineHeight,fontFamily:E.fontFamily}),[k.text,E.fontSize,E.fontFamily,E.lineHeight]),Z="info"===n&&!U,$=(0,_react().useMemo)(()=>Z?{minWidth:E.textMinWidth,minHeight:0,paddingVertical:E.textPaddingVertical,paddingHorizontal:E.textPaddingHorizontal}:{minWidth:E.defaultWidth,minHeight:E.defaultMinHeight,padding:E.defaultPadding},[Z,E.defaultMinHeight,E.defaultPadding,E.defaultWidth,E.textMinWidth,E.textPaddingHorizontal,E.textPaddingVertical]),ee=(0,_react().useMemo)(()=>({borderRadius:E.radius,opacity:f&&Q.states.pressed?E.pressedOpacity:M,backgroundColor:E.colors.variants[n],maxWidth:E.maxWidth,...$}),[M,$,f,Q.states.pressed,E.colors.variants,E.maxWidth,E.pressedOpacity,E.radius,n]);if(!O)return null;const te=(0,_validate.isRenderable)(r)&&("string"!=typeof r||""!==r);return _react().default.createElement(_reactNative().View,{style:[S.b,{backgroundColor:E.colors.transparent},G,V?{zIndex:V}:void 0],pointerEvents:c||u||f?"auto":"none"},(u||c)&&_react().default.createElement(_reactNative().Pressable,{testID:"rv-toast-overlay",style:[S.o,{backgroundColor:E.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,{style:S.pw}),_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:E.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},pw:{alignItems:"center"},t:{alignItems:"center",justifyContent:"center"},m:{textAlign:"center"},mw:{alignItems:"center"}});var _default=exports.default=Toast;
@@ -1 +1 @@
1
- "use strict";function _react(){const e=_interopRequireDefault(require("react"));return _react=function(){return e},e}function _reactNative(){const e=require("react-native");return _reactNative=function(){return e},e}function _reactNativeSystemIcon(){const e=require("react-native-system-icon");return _reactNativeSystemIcon=function(){return e},e}Object.defineProperty(exports,"__esModule",{value:!0}),exports.resolveTooltipDialog=exports.mapKeyboardType=exports.alignMap=exports.FieldSlot=exports.FieldInput=exports.FieldControlRow=exports.FieldClearButton=void 0;var _validate=require("../../utils/validate");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}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 o in r)({}).hasOwnProperty.call(r,o)&&(e[o]=r[o])}return e},_extends.apply(null,arguments)}const alignMap=exports.alignMap={left:"flex-start",center:"center",right:"flex-end"},mapKeyboardType=e=>{switch(e){case"number":return"decimal-pad";case"digit":return"number-pad";case"tel":return"phone-pad";default:return}};exports.mapKeyboardType=mapKeyboardType;const FieldSlot=({onPress:e,style:t,children:r,accessibilityRole:o="button"})=>r?e?_react().default.createElement(_reactNative().Pressable,{onPress:e,accessibilityRole:o,style:t},r):_react().default.createElement(_reactNative().View,{style:t},r):null;exports.FieldSlot=FieldSlot;const FieldClearButton=({show:e,tokens:t,clearIcon:r,onPressIn:o,onPressOut:n,onPress:l})=>{if(!e)return null;const a="web"===_reactNative().Platform.OS?{onMouseDown:e=>{e.preventDefault?.(),e.stopPropagation?.()}}:void 0;return _react().default.createElement(_reactNative().Pressable,_extends({style:[t.layout.clearIcon,{paddingHorizontal:t.spacing.rightIconGap}]},a,{onPressIn:o,onPressOut:n,onPress:l,accessibilityRole:"button"}),_react().default.isValidElement(r)?r:_react().default.createElement(_reactNativeSystemIcon().Clear,{size:t.sizes.clearIcon,fill:t.colors.clear,color:t.colors.clear}))};exports.FieldClearButton=FieldClearButton;const FieldInput=({inputRef:e,tokens:t,isTextarea:r,disabled:o,error:n,finalTextAlign:l,lineHeight:a,textareaHeight:i,minHeight:s,inputStyle:c,value:u,onChangeText:d,onFocus:p,onBlur:y,onPressIn:f,rows:g,placeholderTextColor:x,keyboardType:_,onContentSizeChange:v,describedBy:b,secureTextEntry:m,editable:h,restInputProps:T})=>{const I=[r?t.layout.textarea:t.layout.input,{color:o?t.colors.disabled:n?t.colors.error:t.colors.input,fontSize:t.typography.inputSize,textAlign:l,...r?{lineHeight:a,height:i,minHeight:s}:{minHeight:t.sizes.controlMinHeight}},c];return _react().default.createElement(_reactNative().TextInput,_extends({ref:e,style:I,value:u,onChangeText:d,onFocus:p,onBlur:y,onPressIn:f,editable:h,secureTextEntry:m,multiline:r,numberOfLines:r?g:void 0,keyboardType:_,placeholderTextColor:x,onContentSizeChange:r?v:void 0},b?{accessibilityDescribedBy:b}:null,{clearButtonMode:"never"},T))};exports.FieldInput=FieldInput;const FieldControlRow=({tokens:e,prefixNode:t,leftIconNode:r,controlNode:o,clearNode:n,rightIconNode:l,suffixNode:a})=>_react().default.createElement(_reactNative().View,{style:e.layout.body},t,r,_react().default.createElement(_reactNative().View,{style:[e.layout.controlWrapper,{minHeight:e.sizes.controlMinHeight}]},o,n),l,a);exports.FieldControlRow=FieldControlRow;const resolveTooltipDialog=(e,t)=>{if(!_react().default.isValidElement(e)&&!(0,_validate.isText)(e)){const{icon:r,...o}=e;return{icon:r??t,dialogProps:o}}return{icon:t,dialogProps:{message:e}}};exports.resolveTooltipDialog=resolveTooltipDialog;
1
+ "use strict";function _react(){const e=_interopRequireDefault(require("react"));return _react=function(){return e},e}function _reactNative(){const e=require("react-native");return _reactNative=function(){return e},e}function _Clear(){const e=_interopRequireDefault(require("react-native-system-icon/Clear"));return _Clear=function(){return e},e}Object.defineProperty(exports,"__esModule",{value:!0}),exports.resolveTooltipDialog=exports.mapKeyboardType=exports.alignMap=exports.FieldSlot=exports.FieldInput=exports.FieldControlRow=exports.FieldClearButton=void 0;var _validate=require("../../utils/validate");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}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 o in r)({}).hasOwnProperty.call(r,o)&&(e[o]=r[o])}return e},_extends.apply(null,arguments)}const alignMap=exports.alignMap={left:"flex-start",center:"center",right:"flex-end"},mapKeyboardType=e=>{switch(e){case"number":return"decimal-pad";case"digit":return"number-pad";case"tel":return"phone-pad";default:return}};exports.mapKeyboardType=mapKeyboardType;const FieldSlot=({onPress:e,style:t,children:r,accessibilityRole:o="button"})=>r?e?_react().default.createElement(_reactNative().Pressable,{onPress:e,accessibilityRole:o,style:t},r):_react().default.createElement(_reactNative().View,{style:t},r):null;exports.FieldSlot=FieldSlot;const FieldClearButton=({show:e,tokens:t,clearIcon:r,onPressIn:o,onPressOut:n,onPress:l})=>{if(!e)return null;const a="web"===_reactNative().Platform.OS?{onMouseDown:e=>{e.preventDefault?.(),e.stopPropagation?.()}}:void 0;return _react().default.createElement(_reactNative().Pressable,_extends({style:[t.layout.clearIcon,{paddingHorizontal:t.spacing.rightIconGap}]},a,{onPressIn:o,onPressOut:n,onPress:l,accessibilityRole:"button"}),_react().default.isValidElement(r)?r:_react().default.createElement(_Clear().default,{size:t.sizes.clearIcon,fill:t.colors.clear,color:t.colors.clear}))};exports.FieldClearButton=FieldClearButton;const FieldInput=({inputRef:e,tokens:t,isTextarea:r,disabled:o,error:n,finalTextAlign:l,lineHeight:a,textareaHeight:i,minHeight:s,inputStyle:c,value:u,onChangeText:d,onFocus:p,onBlur:f,onPressIn:y,rows:g,placeholderTextColor:x,keyboardType:_,onContentSizeChange:v,describedBy:b,secureTextEntry:h,editable:m,restInputProps:C})=>{const T=[r?t.layout.textarea:t.layout.input,{color:o?t.colors.disabled:n?t.colors.error:t.colors.input,fontSize:t.typography.inputSize,textAlign:l,...r?{lineHeight:a,height:i,minHeight:s}:{minHeight:t.sizes.controlMinHeight}},c];return _react().default.createElement(_reactNative().TextInput,_extends({ref:e,style:T,value:u,onChangeText:d,onFocus:p,onBlur:f,onPressIn:y,editable:m,secureTextEntry:h,multiline:r,numberOfLines:r?g:void 0,keyboardType:_,placeholderTextColor:x,onContentSizeChange:r?v:void 0},b?{accessibilityDescribedBy:b}:null,{clearButtonMode:"never"},C))};exports.FieldInput=FieldInput;const FieldControlRow=({tokens:e,prefixNode:t,leftIconNode:r,controlNode:o,clearNode:n,rightIconNode:l,suffixNode:a})=>_react().default.createElement(_reactNative().View,{style:e.layout.body},t,r,_react().default.createElement(_reactNative().View,{style:[e.layout.controlWrapper,{minHeight:e.sizes.controlMinHeight}]},o,n),l,a);exports.FieldControlRow=FieldControlRow;const resolveTooltipDialog=(e,t)=>{if(!_react().default.isValidElement(e)&&!(0,_validate.isText)(e)){const{icon:r,...o}=e;return{icon:r??t,dialogProps:o}}return{icon:t,dialogProps:{message:e}}};exports.resolveTooltipDialog=resolveTooltipDialog;
@@ -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{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
+ 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/Close";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
- 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 a in o)({}).hasOwnProperty.call(o,a)&&(e[a]=o[a])}return e},_extends.apply(null,arguments)}import React,{useCallback,useEffect,useRef,useState}from"react";import{FlatList,Pressable,Text,View,useWindowDimensions}from"react-native";import{Checked,Cross}from"react-native-system-icon";import{useControllableValue}from"../../hooks";import{shallowEqualArray,renderTextOrNode}from"../../utils";import{isFunction,isNumber,isText}from"../../utils/validate";import Popup from"../popup";import Tabs from"../tabs";import{useLocale}from"../config-provider/useLocale";import{useCascaderTokens}from"./tokens";import{useCascaderExtend}from"./useCascaderExtend";import{getFieldKeys,resolveRows}from"../../hooks/cascader/utils";const CascaderImpl=e=>{const{tokensOverride:t,options:o=[],title:a,placeholder:n,activeColor:l,fieldNames:i,optionRender:r,showHeader:s,closeable:c,closeIcon:d,onChange:u,onClose:p,onFinish:g,onClickTab:y,onTabChange:m,swipeable:h,style:b,testID:f,children:C,poppable:v,visible:R,defaultVisible:x,onVisibleChange:k,closeOnClickOverlay:T,closeOnFinish:E,popupPlacement:S,popupRound:w,popupProps:P,loadingText:z,...I}=e,O=useLocale(),V=useCascaderTokens(t),L=a??O?.vanCascader?.placeholder??V.defaults.title,N=n??O?.vanCascader?.placeholder??V.defaults.placeholder,H=l??V.colors.tabActive,A=s??V.defaults.showHeader,K=h??V.defaults.swipeable,F=v??V.defaults.poppable,W=T??V.defaults.closeOnClickOverlay,B=E??V.defaults.closeOnFinish,D=S??V.defaults.popupPlacement,M=w??V.defaults.popupRound,_=z??V.defaults.loadingText,[j,q]=useControllableValue(e,{defaultValue:[],trigger:"onChange"}),$=getFieldKeys(i),G=Array.isArray(j)?j:[],[J,Q]=useState(G),U=c??V.defaults.closeable,[X,Y]=useControllableValue(e,{defaultValue:!1,valuePropName:"visible",defaultValuePropName:"defaultVisible",trigger:"onVisibleChange"}),Z=F?J:G,{tabs:ee,items:te,depth:oe}=useCascaderExtend(o,$,Z),{width:ae}=useWindowDimensions(),[ne,le]=useState(0),ie=useCallback(e=>{const t=e.nativeEvent.layout.width;t&&le(e=>e===t?e:t)},[]),re=resolveRows(o,$,G),[se,ce]=useState(0);useEffect(()=>{const e=ee.length;let t=Math.max(e-1,0);t>=oe&&(t=Math.max(oe-1,0)),ce(e=>e===t?e:t)},[ee.length,oe]),useEffect(()=>{F&&X||Q(e=>shallowEqualArray(e,G)?e:G)},[G,F,X]);const de=useCallback(()=>{F&&!X&&(Q(e=>shallowEqualArray(e,G)?e:G),Y(!0))},[G,F,X,Y]),ue=useRef(p),pe=useRef(u),ge=useRef(g),ye=useRef(y),me=useRef(m);ue.current=p,pe.current=u,ge.current=g,ye.current=y,me.current=m;const he=useCallback(e=>{F&&X&&(Y(!1),e&&ue.current?.())},[F,X,Y]),be=useCallback(()=>{F&&(X?he(!0):de())},[he,de,F,X]),fe=isFunction(C),Ce=fe?C:null,ve=useCallback(e=>{const t=isNumber(e.index)?e.index:Number(e.name);if(Number.isNaN(t))return;const o=te[t]?.[$.textKey];ye.current?.(t,isText(o)?String(o):N)},[te,$.textKey,N]),Re=useCallback((e,t)=>{const o=isNumber(t)?t:Number(e);Number.isNaN(o)||(ce(o),me.current?.(o))},[]),xe=useCallback((e,t)=>{if(e.disabled)return;const a=e[$.valueKey];if(null==a)return;const n=[...(F?J:G).slice(0,t),a],l=resolveRows(o,$,n),i=e[$.childrenKey]??[],r=Object.prototype.hasOwnProperty.call(e,$.childrenKey)&&!i.length,s=n.length>=oe,c=!i.length&&!r;F?(Q(n),pe.current?.(n,l)):q(n,l),(c||s)&&(F&&(q(n,l),B&&he(!0)),ge.current?.(n,l))},[G,B,he,oe,$,o,J,F,q]),ke=useCallback(e=>{if(e<=0)return N;const t=te[e-1];if(!t)return N;if(!Object.prototype.hasOwnProperty.call(t,$.childrenKey))return N;return 0===(t[$.childrenKey]??[]).length&&Z.length===e?_:N},[Z.length,te,$.childrenKey,_,N]),Te=F||fe?null:C,Ee=React.createElement(View,_extends({testID:f,style:[V.layout.container,{backgroundColor:V.colors.background},b]},I),A?React.createElement(View,{style:[V.layout.header,{height:V.sizing.headerHeight,paddingHorizontal:V.spacing.headerPaddingHorizontal}]},renderTextOrNode(L,[V.layout.title,{color:V.colors.headerText,fontSize:V.typography.titleSize,fontWeight:V.typography.titleWeight}]),U?React.createElement(Pressable,{hitSlop:8,onPress:()=>{F?he(!0):ue.current?.()},style:[V.layout.closeButton,{marginLeft:V.spacing.closeButtonMarginLeft}],accessibilityRole:"button",accessibilityLabel:O?.vanCascader?.close??"Close"},d??(e=>React.createElement(Cross,{size:V.sizing.closeIconSize,fill:e.pressed?V.colors.closeIconActive:V.colors.closeIcon,color:e.pressed?V.colors.closeIconActive:V.colors.closeIcon}))):null):null,(()=>{if(!ee.length)return React.createElement(CascaderOptionList,{optionList:[],tabIndex:0,selectedValue:Z[0],activeColor:H,keys:$,optionRender:r,onSelect:xe,tokens:V,emptyText:ke(0)});const e=!!K,t=ne||ae||void 0,o={height:V.sizing.headerHeight,paddingHorizontal:V.spacing.tabNavPaddingHorizontal,paddingVertical:V.spacing.tabNavPaddingVertical,backgroundColor:V.colors.background};return React.createElement(View,{style:V.layout.tabsWrapper,onLayout:ie},React.createElement(Tabs,{style:t?{width:t}:void 0,active:se,onChange:Re,onClickTab:ve,align:"center",swipeable:e,swipeThreshold:0,scrollable:!0,animated:!0,duration:300,color:H,lineHeight:V.sizing.indicatorHeight,titleActiveColor:V.colors.tabText,titleInactiveColor:V.colors.tabInactive,tabBarStyle:o,tabStyle:[V.layout.tabsItem,{paddingHorizontal:V.spacing.tabPaddingHorizontal}],titleStyle:[V.layout.tabsTitle,{fontSize:V.typography.tabsTitleSize}],contentStyle:e?void 0:V.layout.tabsContentStatic},ee.map((e,t)=>{const o=te[t],a=isText(o?.[$.textKey])?String(o?.[$.textKey]):"",n=!a;return React.createElement(Tabs.TabPane,{key:t,name:t,title:e=>React.createElement(Text,{style:[V.layout.tabTitleNode,{color:n?V.colors.tabInactive:V.colors.tabText,fontWeight:n?V.typography.tabTitlePlaceholderWeight:V.typography.tabTitleWeight}]},n?N:a)},React.createElement(CascaderOptionList,{optionList:e,tabIndex:t,selectedValue:Z[t],activeColor:H,keys:$,optionRender:r,onSelect:xe,tokens:V,emptyText:ke(t)}))})))})(),Te?React.createElement(View,{style:[V.layout.inlineChildren,{paddingVertical:V.spacing.inlineChildrenPaddingVertical,paddingHorizontal:V.spacing.headerPaddingHorizontal}]},Te):null);if(!F)return Ee;const{closeOnOverlayPress:Se,overlay:we,onOpen:Pe,onOpened:ze,onClose:Ie,onClosed:Oe,...Ve}=P??{},Le=useRef(Ie);Le.current=Ie;const Ne=useCallback(()=>{Le.current?.(),he(!0)},[he]),He={open:de,close:()=>he(!0),toggle:be},Ae=useCallback(e=>{if(!React.isValidElement(e))return e;const t=e.props,o=()=>{t.onPress?.(),t.onClick?.(),de()};return React.cloneElement(e,{onPress:o,onClick:o})},[de])(Ce?Ce(G,re,He):fe?null:C||null);return React.createElement(React.Fragment,null,Ae,React.createElement(Popup,_extends({visible:X,placement:D,round:M,closeOnOverlayPress:Se??W,overlay:we??!0,safeAreaInsetTop:null!=Ve?.safeAreaInsetTop?Ve.safeAreaInsetTop:A&&U,safeAreaInsetBottom:null!=Ve?.safeAreaInsetBottom?Ve.safeAreaInsetBottom:"bottom"===D,onOpen:Pe,onOpened:ze,onClose:Ne,onClosed:Oe},Ve,{style:{paddingLeft:0,paddingRight:0}}),Ee))},CascaderOptionItem=React.memo(({option:e,tabIndex:t,selected:o,activeColor:a,keys:n,optionRender:l,onSelect:i,tokens:r})=>{const s=e[n.valueKey],c=e[n.textKey],d=!!e.disabled,u=e.color??r.colors.optionText,p=d?r.colors.optionDisabled:o?e.color??a:u,g=[r.layout.optionText,{color:p,fontSize:r.typography.optionTextSize},o?{fontWeight:r.typography.optionTextActiveWeight}:null],y=l?l({option:e,selected:o}):renderTextOrNode(c,g),m=isText(y)?renderTextOrNode(y,g):y;return React.createElement(Pressable,{testID:`cascader-option-${t}-${String(s)}`,style:({pressed:e})=>[r.layout.option,{minHeight:r.sizing.optionMinHeight,paddingVertical:r.spacing.optionPaddingVertical,paddingHorizontal:r.spacing.optionPaddingHorizontal},e&&!d&&{backgroundColor:r.colors.optionActiveBackground}],onPress:()=>i(e,t),disabled:d},React.createElement(View,{style:r.layout.optionContent},React.createElement(View,{style:[r.layout.optionLabel,{marginRight:r.spacing.optionLabelMarginRight}]},m),o?React.createElement(Checked,{size:r.sizing.selectedIconSize,fill:a,color:a}):null))}),CascaderOptionList=React.memo(({optionList:e,tabIndex:t,selectedValue:o,activeColor:a,keys:n,optionRender:l,onSelect:i,tokens:r,emptyText:s})=>{const c=useCallback(({item:e})=>React.createElement(CascaderOptionItem,{option:e,tabIndex:t,selected:o===e[n.valueKey],activeColor:a,keys:n,optionRender:l,onSelect:i,tokens:r}),[a,n,i,l,o,t,r]),d=useCallback(e=>String(e[n.valueKey]),[n.valueKey]);return e.length?React.createElement(FlatList,{data:e,style:[r.layout.optionList,{height:r.sizing.optionListHeight}],contentContainerStyle:{paddingTop:r.spacing.optionListPaddingTop,paddingBottom:r.spacing.optionListPaddingBottom},showsVerticalScrollIndicator:!1,renderItem:c,keyExtractor:d,removeClippedSubviews:!0,initialNumToRender:20,windowSize:5}):React.createElement(View,{style:[r.layout.optionList,{height:r.sizing.optionListHeight}]},React.createElement(Text,{style:[r.layout.empty,{color:r.colors.placeholder,paddingVertical:r.spacing.emptyPaddingVertical,fontSize:r.typography.emptyTextSize}]},s))}),Cascader=React.memo(CascaderImpl);export default Cascader;
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 a in o)({}).hasOwnProperty.call(o,a)&&(e[a]=o[a])}return e},_extends.apply(null,arguments)}import React,{useCallback,useEffect,useRef,useState}from"react";import{FlatList,Pressable,Text,View,useWindowDimensions}from"react-native";import Checked from"react-native-system-icon/Checked";import Cross from"react-native-system-icon/Cross";import{useControllableValue}from"../../hooks";import{shallowEqualArray,renderTextOrNode}from"../../utils";import{isFunction,isNumber,isText}from"../../utils/validate";import Popup from"../popup";import Tabs from"../tabs";import{useLocale}from"../config-provider/useLocale";import{useCascaderTokens}from"./tokens";import{useCascaderExtend}from"./useCascaderExtend";import{getFieldKeys,resolveRows}from"../../hooks/cascader/utils";const CascaderImpl=e=>{const{tokensOverride:t,options:o=[],title:a,placeholder:n,activeColor:l,fieldNames:i,optionRender:r,showHeader:s,closeable:c,closeIcon:d,onChange:u,onClose:p,onFinish:g,onClickTab:y,onTabChange:m,swipeable:h,style:b,testID:f,children:C,poppable:v,visible:R,defaultVisible:x,onVisibleChange:k,closeOnClickOverlay:T,closeOnFinish:E,popupPlacement:S,popupRound:w,popupProps:P,loadingText:z,...I}=e,O=useLocale(),V=useCascaderTokens(t),L=a??O?.vanCascader?.placeholder??V.defaults.title,N=n??O?.vanCascader?.placeholder??V.defaults.placeholder,H=l??V.colors.tabActive,A=s??V.defaults.showHeader,K=h??V.defaults.swipeable,F=v??V.defaults.poppable,W=T??V.defaults.closeOnClickOverlay,B=E??V.defaults.closeOnFinish,D=S??V.defaults.popupPlacement,M=w??V.defaults.popupRound,_=z??V.defaults.loadingText,[j,q]=useControllableValue(e,{defaultValue:[],trigger:"onChange"}),$=getFieldKeys(i),G=Array.isArray(j)?j:[],[J,Q]=useState(G),U=c??V.defaults.closeable,[X,Y]=useControllableValue(e,{defaultValue:!1,valuePropName:"visible",defaultValuePropName:"defaultVisible",trigger:"onVisibleChange"}),Z=F?J:G,{tabs:ee,items:te,depth:oe}=useCascaderExtend(o,$,Z),{width:ae}=useWindowDimensions(),[ne,le]=useState(0),ie=useCallback(e=>{const t=e.nativeEvent.layout.width;t&&le(e=>e===t?e:t)},[]),re=resolveRows(o,$,G),[se,ce]=useState(0);useEffect(()=>{const e=ee.length;let t=Math.max(e-1,0);t>=oe&&(t=Math.max(oe-1,0)),ce(e=>e===t?e:t)},[ee.length,oe]),useEffect(()=>{F&&X||Q(e=>shallowEqualArray(e,G)?e:G)},[G,F,X]);const de=useCallback(()=>{F&&!X&&(Q(e=>shallowEqualArray(e,G)?e:G),Y(!0))},[G,F,X,Y]),ue=useRef(p),pe=useRef(u),ge=useRef(g),ye=useRef(y),me=useRef(m);ue.current=p,pe.current=u,ge.current=g,ye.current=y,me.current=m;const he=useCallback(e=>{F&&X&&(Y(!1),e&&ue.current?.())},[F,X,Y]),be=useCallback(()=>{F&&(X?he(!0):de())},[he,de,F,X]),fe=isFunction(C),Ce=fe?C:null,ve=useCallback(e=>{const t=isNumber(e.index)?e.index:Number(e.name);if(Number.isNaN(t))return;const o=te[t]?.[$.textKey];ye.current?.(t,isText(o)?String(o):N)},[te,$.textKey,N]),Re=useCallback((e,t)=>{const o=isNumber(t)?t:Number(e);Number.isNaN(o)||(ce(o),me.current?.(o))},[]),xe=useCallback((e,t)=>{if(e.disabled)return;const a=e[$.valueKey];if(null==a)return;const n=[...(F?J:G).slice(0,t),a],l=resolveRows(o,$,n),i=e[$.childrenKey]??[],r=Object.prototype.hasOwnProperty.call(e,$.childrenKey)&&!i.length,s=n.length>=oe,c=!i.length&&!r;F?(Q(n),pe.current?.(n,l)):q(n,l),(c||s)&&(F&&(q(n,l),B&&he(!0)),ge.current?.(n,l))},[G,B,he,oe,$,o,J,F,q]),ke=useCallback(e=>{if(e<=0)return N;const t=te[e-1];if(!t)return N;if(!Object.prototype.hasOwnProperty.call(t,$.childrenKey))return N;return 0===(t[$.childrenKey]??[]).length&&Z.length===e?_:N},[Z.length,te,$.childrenKey,_,N]),Te=F||fe?null:C,Ee=React.createElement(View,_extends({testID:f,style:[V.layout.container,{backgroundColor:V.colors.background},b]},I),A?React.createElement(View,{style:[V.layout.header,{height:V.sizing.headerHeight,paddingHorizontal:V.spacing.headerPaddingHorizontal}]},renderTextOrNode(L,[V.layout.title,{color:V.colors.headerText,fontSize:V.typography.titleSize,fontWeight:V.typography.titleWeight}]),U?React.createElement(Pressable,{hitSlop:8,onPress:()=>{F?he(!0):ue.current?.()},style:[V.layout.closeButton,{marginLeft:V.spacing.closeButtonMarginLeft}],accessibilityRole:"button",accessibilityLabel:O?.vanCascader?.close??"Close"},d??(e=>React.createElement(Cross,{size:V.sizing.closeIconSize,fill:e.pressed?V.colors.closeIconActive:V.colors.closeIcon,color:e.pressed?V.colors.closeIconActive:V.colors.closeIcon}))):null):null,(()=>{if(!ee.length)return React.createElement(CascaderOptionList,{optionList:[],tabIndex:0,selectedValue:Z[0],activeColor:H,keys:$,optionRender:r,onSelect:xe,tokens:V,emptyText:ke(0)});const e=!!K,t=ne||ae||void 0,o={height:V.sizing.headerHeight,paddingHorizontal:V.spacing.tabNavPaddingHorizontal,paddingVertical:V.spacing.tabNavPaddingVertical,backgroundColor:V.colors.background};return React.createElement(View,{style:V.layout.tabsWrapper,onLayout:ie},React.createElement(Tabs,{style:t?{width:t}:void 0,active:se,onChange:Re,onClickTab:ve,align:"center",swipeable:e,swipeThreshold:0,scrollable:!0,animated:!0,duration:300,color:H,lineHeight:V.sizing.indicatorHeight,titleActiveColor:V.colors.tabText,titleInactiveColor:V.colors.tabInactive,tabBarStyle:o,tabStyle:[V.layout.tabsItem,{paddingHorizontal:V.spacing.tabPaddingHorizontal}],titleStyle:[V.layout.tabsTitle,{fontSize:V.typography.tabsTitleSize}],contentStyle:e?void 0:V.layout.tabsContentStatic},ee.map((e,t)=>{const o=te[t],a=isText(o?.[$.textKey])?String(o?.[$.textKey]):"",n=!a;return React.createElement(Tabs.TabPane,{key:t,name:t,title:e=>React.createElement(Text,{style:[V.layout.tabTitleNode,{color:n?V.colors.tabInactive:V.colors.tabText,fontWeight:n?V.typography.tabTitlePlaceholderWeight:V.typography.tabTitleWeight}]},n?N:a)},React.createElement(CascaderOptionList,{optionList:e,tabIndex:t,selectedValue:Z[t],activeColor:H,keys:$,optionRender:r,onSelect:xe,tokens:V,emptyText:ke(t)}))})))})(),Te?React.createElement(View,{style:[V.layout.inlineChildren,{paddingVertical:V.spacing.inlineChildrenPaddingVertical,paddingHorizontal:V.spacing.headerPaddingHorizontal}]},Te):null);if(!F)return Ee;const{closeOnOverlayPress:Se,overlay:we,onOpen:Pe,onOpened:ze,onClose:Ie,onClosed:Oe,...Ve}=P??{},Le=useRef(Ie);Le.current=Ie;const Ne=useCallback(()=>{Le.current?.(),he(!0)},[he]),He={open:de,close:()=>he(!0),toggle:be},Ae=useCallback(e=>{if(!React.isValidElement(e))return e;const t=e.props,o=()=>{t.onPress?.(),t.onClick?.(),de()};return React.cloneElement(e,{onPress:o,onClick:o})},[de])(Ce?Ce(G,re,He):fe?null:C||null);return React.createElement(React.Fragment,null,Ae,React.createElement(Popup,_extends({visible:X,placement:D,round:M,closeOnOverlayPress:Se??W,overlay:we??!0,safeAreaInsetTop:null!=Ve?.safeAreaInsetTop?Ve.safeAreaInsetTop:A&&U,safeAreaInsetBottom:null!=Ve?.safeAreaInsetBottom?Ve.safeAreaInsetBottom:"bottom"===D,onOpen:Pe,onOpened:ze,onClose:Ne,onClosed:Oe},Ve,{style:{paddingLeft:0,paddingRight:0}}),Ee))},CascaderOptionItem=React.memo(({option:e,tabIndex:t,selected:o,activeColor:a,keys:n,optionRender:l,onSelect:i,tokens:r})=>{const s=e[n.valueKey],c=e[n.textKey],d=!!e.disabled,u=e.color??r.colors.optionText,p=d?r.colors.optionDisabled:o?e.color??a:u,g=[r.layout.optionText,{color:p,fontSize:r.typography.optionTextSize},o?{fontWeight:r.typography.optionTextActiveWeight}:null],y=l?l({option:e,selected:o}):renderTextOrNode(c,g),m=isText(y)?renderTextOrNode(y,g):y;return React.createElement(Pressable,{testID:`cascader-option-${t}-${String(s)}`,style:({pressed:e})=>[r.layout.option,{minHeight:r.sizing.optionMinHeight,paddingVertical:r.spacing.optionPaddingVertical,paddingHorizontal:r.spacing.optionPaddingHorizontal},e&&!d&&{backgroundColor:r.colors.optionActiveBackground}],onPress:()=>i(e,t),disabled:d},React.createElement(View,{style:r.layout.optionContent},React.createElement(View,{style:[r.layout.optionLabel,{marginRight:r.spacing.optionLabelMarginRight}]},m),o?React.createElement(Checked,{size:r.sizing.selectedIconSize,fill:a,color:a}):null))}),CascaderOptionList=React.memo(({optionList:e,tabIndex:t,selectedValue:o,activeColor:a,keys:n,optionRender:l,onSelect:i,tokens:r,emptyText:s})=>{const c=useCallback(({item:e})=>React.createElement(CascaderOptionItem,{option:e,tabIndex:t,selected:o===e[n.valueKey],activeColor:a,keys:n,optionRender:l,onSelect:i,tokens:r}),[a,n,i,l,o,t,r]),d=useCallback(e=>String(e[n.valueKey]),[n.valueKey]);return e.length?React.createElement(FlatList,{data:e,style:[r.layout.optionList,{height:r.sizing.optionListHeight}],contentContainerStyle:{paddingTop:r.spacing.optionListPaddingTop,paddingBottom:r.spacing.optionListPaddingBottom},showsVerticalScrollIndicator:!1,renderItem:c,keyExtractor:d,removeClippedSubviews:!0,initialNumToRender:20,windowSize:5}):React.createElement(View,{style:[r.layout.optionList,{height:r.sizing.optionListHeight}]},React.createElement(Text,{style:[r.layout.empty,{color:r.colors.placeholder,paddingVertical:r.spacing.emptyPaddingVertical,fontSize:r.typography.emptyTextSize}]},s))}),Cascader=React.memo(CascaderImpl);export default Cascader;
@@ -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 o in r)({}).hasOwnProperty.call(r,o)&&(e[o]=r[o])}return e},_extends.apply(null,arguments)}import React,{useContext,useMemo}from"react";import{Pressable,Text,View}from"react-native";import{Arrow}from"react-native-system-icon";import{useAriaPress,useHairline}from"../../hooks";import{isRenderable,isText,renderTextOrNode}from"../../utils";import{useDirection}from"../config-provider/useDirection";import{CellGroupContext}from"./CellContext";import{useCellTokens}from"./tokens";const CellImpl=(e,t)=>{const{title:r,value:o,label:l,extra:a,icon:i,rightIcon:n,border:s,clickable:c,isLink:u,required:p,center:y,size:d,arrowDirection:g,tokensOverride:m,children:f,style:b,titleStyle:h,valueStyle:R,labelStyle:w,contentStyle:z,onPress:v,disabled:x,android_ripple:C,...S}=e,O=useCellTokens(m),T=useDirection(),V=useContext(CellGroupContext),E=s??O.defaults.border,P=d??O.defaults.size,L=g??O.defaults.arrowDirection,H="rtl"===T?"left"===L?"right":"right"===L?"left":L:L,k=O.typography.lineHeight,G=isRenderable(r),N=isRenderable(o),_=isRenderable(l),D=isRenderable(a),I=isRenderable(f),W=isRenderable(i),A=isRenderable(n),M=!G&&!I,j=E&&V.border&&!V.isLast,F=!!u||!!c,q=!x&&(c||!!v||!!S.onLongPress||!!S.onPressIn||!!S.onPressOut),B="large"===P,J=useMemo(()=>[B?O.layout.containerLarge:O.layout.container,y&&O.layout.center,b],[P,y,O.layout,b]),K=useHairline({show:j,containerStyle:J,color:O.colors.border,width:O.borders.width,defaultPaddingHorizontal:O.sizing.paddingHorizontal}),Q=useMemo(()=>[O.layout.customContent,{justifyContent:y?"center":"flex-start"},z],[y,O.layout.customContent,z]),{interactionProps:U,states:X}=useAriaPress({disabled:!q,onPress:v??void 0}),Y=q?Pressable:View,Z=q?{android_ripple:C??{color:O.colors.ripple},accessibilityRole:"button",...U}:{};return React.createElement(Y,_extends({ref:t,style:[J,q&&X.pressed&&{opacity:O.defaults.activeOpacity}]},Z,S),W&&React.createElement(View,{style:[O.layout.iconWrapper,{marginRight:O.spacing.iconGap,minHeight:O.sizing.iconSize,minWidth:O.sizing.iconSize}]},i),React.createElement(View,{style:O.layout.body},(G||p)&&React.createElement(View,{style:[O.layout.titleRow,{minHeight:k}]},p&&React.createElement(Text,{style:{color:O.colors.required,marginRight:O.spacing.iconGap/2}},"*"),G&&React.createElement(View,{style:h},renderTextOrNode(r,[{color:O.colors.title,fontSize:B?O.typography.largeTitleSize:O.typography.titleSize,fontWeight:O.typography.titleWeight},h],{numberOfLines:1}))),_&&React.createElement(View,{style:[{marginTop:O.spacing.labelMarginTop},w]},renderTextOrNode(l,[{color:O.colors.label,fontSize:B?O.typography.largeLabelSize:O.typography.labelSize},w],{numberOfLines:2}))),React.createElement(View,{style:[O.layout.valueContainer,{minHeight:k,marginLeft:O.spacing.valueGap},!y&&M&&O.layout.valueOnlyContainer,y&&O.layout.valueCenter]},N?React.createElement(View,{style:Q},renderTextOrNode(o,[O.layout.value,M&&O.layout.valueOnly,{color:O.colors.value,fontSize:B?O.typography.largeValueSize:O.typography.valueSize},R],{numberOfLines:1})):I&&React.createElement(View,{style:Q},isText(f)?renderTextOrNode(f,[O.layout.value,{color:O.colors.value,fontSize:B?O.typography.largeValueSize:O.typography.valueSize},R]):f)),D&&React.createElement(View,{style:{marginLeft:O.spacing.extraGap}},renderTextOrNode(a,{marginLeft:O.spacing.extraGap,color:O.colors.value,fontSize:B?O.typography.largeValueSize:O.typography.valueSize})),A?n:F&&React.createElement(View,{style:[O.layout.rightIconWrapper,O.layout.arrowTransforms[H]]},React.createElement(Arrow,{size:O.sizing.arrowSize,fill:O.colors.arrow})),K)},CellForwardRef=React.forwardRef(CellImpl);CellForwardRef.displayName="Cell";export const Cell=React.memo(CellForwardRef);
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 o in r)({}).hasOwnProperty.call(r,o)&&(e[o]=r[o])}return e},_extends.apply(null,arguments)}import React,{useContext,useMemo}from"react";import{Pressable,Text,View}from"react-native";import Arrow from"react-native-system-icon/Arrow";import{useAriaPress,useHairline}from"../../hooks";import{isRenderable,isText,renderTextOrNode}from"../../utils";import{useDirection}from"../config-provider/useDirection";import{CellGroupContext}from"./CellContext";import{useCellTokens}from"./tokens";const CellImpl=(e,t)=>{const{title:r,value:o,label:l,extra:a,icon:i,rightIcon:n,border:s,clickable:c,isLink:u,required:p,center:y,size:d,arrowDirection:g,tokensOverride:m,children:f,style:b,titleStyle:h,valueStyle:R,labelStyle:w,contentStyle:z,onPress:v,disabled:x,android_ripple:C,...S}=e,O=useCellTokens(m),T=useDirection(),V=useContext(CellGroupContext),E=s??O.defaults.border,P=d??O.defaults.size,L=g??O.defaults.arrowDirection,H="rtl"===T?"left"===L?"right":"right"===L?"left":L:L,k=O.typography.lineHeight,G=isRenderable(r),N=isRenderable(o),_=isRenderable(l),A=isRenderable(a),D=isRenderable(f),I=isRenderable(i),W=isRenderable(n),M=!G&&!D,j=E&&V.border&&!V.isLast,F=!!u||!!c,q=!x&&(c||!!v||!!S.onLongPress||!!S.onPressIn||!!S.onPressOut),B="large"===P,J=useMemo(()=>[B?O.layout.containerLarge:O.layout.container,y&&O.layout.center,b],[P,y,O.layout,b]),K=useHairline({show:j,containerStyle:J,color:O.colors.border,width:O.borders.width,defaultPaddingHorizontal:O.sizing.paddingHorizontal}),Q=useMemo(()=>[O.layout.customContent,{justifyContent:y?"center":"flex-start"},z],[y,O.layout.customContent,z]),{interactionProps:U,states:X}=useAriaPress({disabled:!q,onPress:v??void 0}),Y=q?Pressable:View,Z=q?{android_ripple:C??{color:O.colors.ripple},accessibilityRole:"button",...U}:{};return React.createElement(Y,_extends({ref:t,style:[J,q&&X.pressed&&{opacity:O.defaults.activeOpacity}]},Z,S),I&&React.createElement(View,{style:[O.layout.iconWrapper,{marginRight:O.spacing.iconGap,minHeight:O.sizing.iconSize,minWidth:O.sizing.iconSize}]},i),React.createElement(View,{style:O.layout.body},(G||p)&&React.createElement(View,{style:[O.layout.titleRow,{minHeight:k}]},p&&React.createElement(Text,{style:{color:O.colors.required,marginRight:O.spacing.iconGap/2}},"*"),G&&React.createElement(View,{style:h},renderTextOrNode(r,[{color:O.colors.title,fontSize:B?O.typography.largeTitleSize:O.typography.titleSize,fontWeight:O.typography.titleWeight},h],{numberOfLines:1}))),_&&React.createElement(View,{style:[{marginTop:O.spacing.labelMarginTop},w]},renderTextOrNode(l,[{color:O.colors.label,fontSize:B?O.typography.largeLabelSize:O.typography.labelSize},w],{numberOfLines:2}))),React.createElement(View,{style:[O.layout.valueContainer,{minHeight:k,marginLeft:O.spacing.valueGap},!y&&M&&O.layout.valueOnlyContainer,y&&O.layout.valueCenter]},N?React.createElement(View,{style:Q},renderTextOrNode(o,[O.layout.value,M&&O.layout.valueOnly,{color:O.colors.value,fontSize:B?O.typography.largeValueSize:O.typography.valueSize},R],{numberOfLines:1})):D&&React.createElement(View,{style:Q},isText(f)?renderTextOrNode(f,[O.layout.value,{color:O.colors.value,fontSize:B?O.typography.largeValueSize:O.typography.valueSize},R]):f)),A&&React.createElement(View,{style:{marginLeft:O.spacing.extraGap}},renderTextOrNode(a,{marginLeft:O.spacing.extraGap,color:O.colors.value,fontSize:B?O.typography.largeValueSize:O.typography.valueSize})),W?n:F&&React.createElement(View,{style:[O.layout.rightIconWrapper,O.layout.arrowTransforms[H]]},React.createElement(Arrow,{size:O.sizing.arrowSize,fill:O.colors.arrow})),K)},CellForwardRef=React.forwardRef(CellImpl);CellForwardRef.displayName="Cell";export const Cell=React.memo(CellForwardRef);
@@ -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,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
+ 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/Arrow";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
- function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var o=1;o<arguments.length;o++){var t=arguments[o];for(var n in t)({}).hasOwnProperty.call(t,n)&&(e[n]=t[n])}return e},_extends.apply(null,arguments)}import React,{useCallback,useEffect,useMemo,useRef}from"react";import{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";import{ActionButton}from"../../hooks/dialog/ActionButton";const DialogImpl=e=>{const o=useLocale(),{visible:t,title:n,message:i,messageAlign:r="center",theme:a="default",width:l,closeable:s=!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:k,cancelButtonColor:x,cancelProps:w,confirmButtonText:B,confirmButtonColor:R,confirmProps:E,footer:O,contentStyle:z,titleStyle:I,messageStyle:H,tokensOverride:V,style:T,children:D,onCancel:L,onConfirm:A,onClose:F,onClosed:N,...W}=e,M=useDialogTokens(V),q=useReducedMotion(),G=isValidNode(n),_=isValidNode(D),j=isValidNode(i)||_,J=v||P,K="round-button"===a,Q=w?.loading,U=E?.loading,X=k??o.cancel,Y=B??o.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,o)=>{const t=Z.current;t.seq+=1;const n=t.seq,i=t.beforeClose;if(!i)return void o?.();let r;try{r=i(e)}catch{return}!1!==r&&(isPromiseLike(r)?r.then(e=>{!1!==e&&Z.current.seq===n&&o?.()}).catch(()=>{}):o?.())},[]),ee=useCallback(()=>{Z.current.onClickCloseIcon?.(),$("close",()=>Z.current.onClose?.())},[$]),oe=useCallback(()=>{Z.current.cancelLoad||$("cancel",()=>Z.current.onCancel?.())},[$]),te=useCallback(()=>{Z.current.confirmLoad||$("confirm",()=>Z.current.onConfirm?.())},[$]),ne=useRef(new Animated.Value(.7)).current,ie=useRef(null);useEffect(()=>{ie.current?.stop(),ne.setValue(t?.7:1);const e=Animated.timing(ne,{toValue:t?1:.9,duration:q?0:300,easing:t?Easing.out(Easing.cubic):Easing.in(Easing.cubic),useNativeDriver:nativeDriverEnabled,isInteraction:!1});ie.current=e,e.start()},[ne,t,q]),useEffect(()=>()=>{ie.current?.stop()},[]);const re={transform:[{scale:ne}]},ae=useMemo(()=>G?{wrap:[S.titleWrap,{paddingTop:j?M.spacing.titlePaddingTop:M.spacing.titleIsolatedPadding,paddingBottom:j?0:M.spacing.titleIsolatedPadding,paddingHorizontal:j?M.spacing.paddingHorizontal:0,marginBottom:j?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},I]}:null,[G,j,I,M]),le=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:_?null:{alignItems:"center"===r?"center":"left"===r?"flex-start":"flex-end"},wrap:[S.msgWrap,{paddingTop:G?M.spacing.messagePaddingTop:M.spacing.messagePadding,paddingBottom:K?M.spacing.roundFooterPadding:M.spacing.messagePadding,paddingHorizontal:M.spacing.messagePaddingHorizontal}]}),[K,r,H,_,G,M]),se=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=l?isNumber(l)?{width:l}:{width:String(l)}:{width:"90%",maxWidth:M.sizes.maxWidth};return[{backgroundColor:M.colors.background,borderRadius:M.sizes.borderRadius,padding:0},e,T]},[l,T,M]),de=useCallback(()=>{const e=Z.current.beforeClose;if(!e)return!0;try{return e("close")}catch{return!1}},[]),ge=useMemo(()=>J&&React.createElement(View,{style:se.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:x,loading:Q,disabled:w?.disabled,onPress:oe,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:R,loading:U,disabled:E?.disabled,onPress:te,style:{minHeight:M.sizes.roundButtonHeight}}))),[x,Q,w?.disabled,X,R,U,E?.disabled,Y,oe,te,J,se.round,v,P,M.sizes.roundButtonHeight,M.spacing.roundFooterGap]),pe=useMemo(()=>J&&React.createElement(View,{style:S.footer},React.createElement(View,{style:se.border,pointerEvents:"none"}),v&&React.createElement(ActionButton,{tokens:M,text:X,color:x??M.colors.cancel,dividerPosition:"none",loading:Q,disabled:w?.disabled,onPress:oe}),P&&React.createElement(ActionButton,{tokens:M,text:Y,color:R??M.colors.confirm,dividerPosition:v?"left":"none",loading:U,disabled:E?.disabled,onPress:te})),[x,Q,w?.disabled,X,R,U,E?.disabled,Y,se.border,oe,te,J,v,P,M]),me=O??(K?ge:pe);return React.createElement(Popup,_extends({visible:t,placement:"center",round:!0,overlay:d,overlayStyle:g,overlayTestID:p,closeOnBackPress:m,closeOnPopstate:u,closeOnClickOverlay:f||y,onClickOverlay:b,beforeClose:de,onClose:F,onClosed:N,contentAnimationStyle:re,style:ce,accessibilityRole:"android"===Platform.OS?"alert":"alertdialog",accessibilityLabel:"string"==typeof n?n:void 0},W),s&&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)),j&&React.createElement(View,{style:[S.content,le.content,z]},_?D:React.createElement(View,{style:le.wrap},renderTextOrNode(i,le.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},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 o=1;o<arguments.length;o++){var t=arguments[o];for(var n in t)({}).hasOwnProperty.call(t,n)&&(e[n]=t[n])}return e},_extends.apply(null,arguments)}import React,{useCallback,useEffect,useMemo,useRef}from"react";import{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/Close";import Button from"../button";import Popup from"../popup";import{useDialogTokens}from"./tokens";import{ActionButton}from"../../hooks/dialog/ActionButton";const DialogImpl=e=>{const o=useLocale(),{visible:t,title:n,message:i,messageAlign:r="center",theme:a="default",width:l,closeable:s=!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:k,cancelButtonColor:x,cancelProps:w,confirmButtonText:B,confirmButtonColor:R,confirmProps:E,footer:O,contentStyle:z,titleStyle:I,messageStyle:H,tokensOverride:V,style:T,children:D,onCancel:L,onConfirm:A,onClose:F,onClosed:N,...W}=e,M=useDialogTokens(V),q=useReducedMotion(),G=isValidNode(n),_=isValidNode(D),j=isValidNode(i)||_,J=v||P,K="round-button"===a,Q=w?.loading,U=E?.loading,X=k??o.cancel,Y=B??o.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,o)=>{const t=Z.current;t.seq+=1;const n=t.seq,i=t.beforeClose;if(!i)return void o?.();let r;try{r=i(e)}catch{return}!1!==r&&(isPromiseLike(r)?r.then(e=>{!1!==e&&Z.current.seq===n&&o?.()}).catch(()=>{}):o?.())},[]),ee=useCallback(()=>{Z.current.onClickCloseIcon?.(),$("close",()=>Z.current.onClose?.())},[$]),oe=useCallback(()=>{Z.current.cancelLoad||$("cancel",()=>Z.current.onCancel?.())},[$]),te=useCallback(()=>{Z.current.confirmLoad||$("confirm",()=>Z.current.onConfirm?.())},[$]),ne=useRef(new Animated.Value(.7)).current,ie=useRef(null);useEffect(()=>{ie.current?.stop(),ne.setValue(t?.7:1);const e=Animated.timing(ne,{toValue:t?1:.9,duration:q?0:300,easing:t?Easing.out(Easing.cubic):Easing.in(Easing.cubic),useNativeDriver:nativeDriverEnabled,isInteraction:!1});ie.current=e,e.start()},[ne,t,q]),useEffect(()=>()=>{ie.current?.stop()},[]);const re={transform:[{scale:ne}]},ae=useMemo(()=>G?{wrap:[S.titleWrap,{paddingTop:j?M.spacing.titlePaddingTop:M.spacing.titleIsolatedPadding,paddingBottom:j?0:M.spacing.titleIsolatedPadding,paddingHorizontal:j?M.spacing.paddingHorizontal:0,marginBottom:j?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},I]}:null,[G,j,I,M]),le=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:_?null:{alignItems:"center"===r?"center":"left"===r?"flex-start":"flex-end"},wrap:[S.msgWrap,{paddingTop:G?M.spacing.messagePaddingTop:M.spacing.messagePadding,paddingBottom:K?M.spacing.roundFooterPadding:M.spacing.messagePadding,paddingHorizontal:M.spacing.messagePaddingHorizontal}]}),[K,r,H,_,G,M]),se=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=l?isNumber(l)?{width:l}:{width:String(l)}:{width:"90%",maxWidth:M.sizes.maxWidth};return[{backgroundColor:M.colors.background,borderRadius:M.sizes.borderRadius,padding:0},e,T]},[l,T,M]),de=useCallback(()=>{const e=Z.current.beforeClose;if(!e)return!0;try{return e("close")}catch{return!1}},[]),ge=useMemo(()=>J&&React.createElement(View,{style:se.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:x,loading:Q,disabled:w?.disabled,onPress:oe,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:R,loading:U,disabled:E?.disabled,onPress:te,style:{minHeight:M.sizes.roundButtonHeight}}))),[x,Q,w?.disabled,X,R,U,E?.disabled,Y,oe,te,J,se.round,v,P,M.sizes.roundButtonHeight,M.spacing.roundFooterGap]),pe=useMemo(()=>J&&React.createElement(View,{style:S.footer},React.createElement(View,{style:se.border,pointerEvents:"none"}),v&&React.createElement(ActionButton,{tokens:M,text:X,color:x??M.colors.cancel,dividerPosition:"none",loading:Q,disabled:w?.disabled,onPress:oe}),P&&React.createElement(ActionButton,{tokens:M,text:Y,color:R??M.colors.confirm,dividerPosition:v?"left":"none",loading:U,disabled:E?.disabled,onPress:te})),[x,Q,w?.disabled,X,R,U,E?.disabled,Y,se.border,oe,te,J,v,P,M]),me=O??(K?ge:pe);return React.createElement(Popup,_extends({visible:t,placement:"center",round:!0,overlay:d,overlayStyle:g,overlayTestID:p,closeOnBackPress:m,closeOnPopstate:u,closeOnClickOverlay:f||y,onClickOverlay:b,beforeClose:de,onClose:F,onClosed:N,contentAnimationStyle:re,style:ce,accessibilityRole:"android"===Platform.OS?"alert":"alertdialog",accessibilityLabel:"string"==typeof n?n:void 0},W),s&&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)),j&&React.createElement(View,{style:[S.content,le.content,z]},_?D:React.createElement(View,{style:le.wrap},renderTextOrNode(i,le.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},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
- function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var i=arguments[t];for(var r in i)({}).hasOwnProperty.call(i,r)&&(e[r]=i[r])}return e},_extends.apply(null,arguments)}import React from"react";import{Text,View}from"react-native";import{Description,Fail,Search}from"react-native-system-icon";import{isRenderable,isString,isText,renderTextOrNode}from"../../utils";import Image from"../image";import{useEmptyTokens}from"./tokens";const PRESET_ICONS={default:Description,error:Fail,network:Fail,search:Search},EmptyImpl=e=>{const{tokensOverride:t,image:i,imageSize:r,imageStyle:n,description:o,descriptionStyle:a,children:s,style:c,gap:l,...p}=e,m=useEmptyTokens(t),g=i??m.defaults.image,d=l??m.defaults.gap,y=r??m.sizing.image,h={fontFamily:m.typography.descriptionFontFamily,fontSize:m.typography.descriptionSize,fontWeight:m.typography.descriptionFontWeight};return React.createElement(View,_extends({accessibilityRole:"summary",accessibilityLabel:isText(o)?String(o):void 0,style:[m.layout.container,c]},p),(()=>{if(React.isValidElement(g))return React.createElement(View,{style:[m.layout.imageWrapper,{width:y,height:y},n]},g);if(isString(g)){if(/^https?:/.test(g))return React.createElement(Image,{src:g,width:y,height:y,fit:"contain",showLoading:!1,showError:!1,containerStyle:[{backgroundColor:m.colors.imageBackground},n]});const e=PRESET_ICONS[g]||PRESET_ICONS.default;return React.createElement(View,{style:[m.layout.imageWrapper,{width:y,height:y},n]},React.createElement(e,{size:y*m.sizing.iconScale,color:m.colors.icon}))}return null})(),isRenderable(o)?isText(o)?React.createElement(Text,{style:[m.layout.descriptionText,{marginTop:d,paddingHorizontal:m.spacing.descriptionPaddingHorizontal,color:m.colors.description,fontSize:m.typography.descriptionSize,lineHeight:m.typography.descriptionLineHeight,fontFamily:m.typography.descriptionFontFamily,fontWeight:m.typography.descriptionFontWeight},a]},o):React.createElement(View,{style:{marginTop:d,paddingHorizontal:m.spacing.descriptionPaddingHorizontal}},o):null,isRenderable(s)&&React.createElement(View,{style:{marginTop:m.spacing.footerMarginTop}},renderTextOrNode(s,h)))};export const Empty=React.memo(EmptyImpl);Empty.displayName="Empty";
1
+ function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var i=arguments[t];for(var r in i)({}).hasOwnProperty.call(i,r)&&(e[r]=i[r])}return e},_extends.apply(null,arguments)}import React from"react";import{Text,View}from"react-native";import Description from"react-native-system-icon/Description";import Fail from"react-native-system-icon/Fail";import Search from"react-native-system-icon/Search";import{isRenderable,isString,isText,renderTextOrNode}from"../../utils";import Image from"../image";import{useEmptyTokens}from"./tokens";const PRESET_ICONS={default:Description,error:Fail,network:Fail,search:Search},EmptyImpl=e=>{const{tokensOverride:t,image:i,imageSize:r,imageStyle:n,description:o,descriptionStyle:a,children:s,style:c,gap:l,...p}=e,m=useEmptyTokens(t),g=i??m.defaults.image,d=l??m.defaults.gap,y=r??m.sizing.image,h={fontFamily:m.typography.descriptionFontFamily,fontSize:m.typography.descriptionSize,fontWeight:m.typography.descriptionFontWeight};return React.createElement(View,_extends({accessibilityRole:"summary",accessibilityLabel:isText(o)?String(o):void 0,style:[m.layout.container,c]},p),(()=>{if(React.isValidElement(g))return React.createElement(View,{style:[m.layout.imageWrapper,{width:y,height:y},n]},g);if(isString(g)){if(/^https?:/.test(g))return React.createElement(Image,{src:g,width:y,height:y,fit:"contain",showLoading:!1,showError:!1,containerStyle:[{backgroundColor:m.colors.imageBackground},n]});const e=PRESET_ICONS[g]||PRESET_ICONS.default;return React.createElement(View,{style:[m.layout.imageWrapper,{width:y,height:y},n]},React.createElement(e,{size:y*m.sizing.iconScale,color:m.colors.icon}))}return null})(),isRenderable(o)?isText(o)?React.createElement(Text,{style:[m.layout.descriptionText,{marginTop:d,paddingHorizontal:m.spacing.descriptionPaddingHorizontal,color:m.colors.description,fontSize:m.typography.descriptionSize,lineHeight:m.typography.descriptionLineHeight,fontFamily:m.typography.descriptionFontFamily,fontWeight:m.typography.descriptionFontWeight},a]},o):React.createElement(View,{style:{marginTop:d,paddingHorizontal:m.spacing.descriptionPaddingHorizontal}},o):null,isRenderable(s)&&React.createElement(View,{style:{marginTop:m.spacing.footerMarginTop}},renderTextOrNode(s,h)))};export const Empty=React.memo(EmptyImpl);Empty.displayName="Empty";
@@ -1 +1 @@
1
- import React,{useCallback,useId,useImperativeHandle,useMemo,useRef,useState}from"react";import{Platform,Pressable,Text,View}from"react-native";import{QuestionO}from"react-native-system-icon";import Cell from"../cell";import Dialog from"../dialog";import{formatNumberInput}from"../../utils/string";import{isDef,isFiniteNumber,isFunction,isObject,isRenderable,isText}from"../../utils/validate";import{useFieldTokens}from"./tokens";import{alignMap,FieldClearButton,FieldControlRow,FieldInput,FieldSlot,mapKeyboardType,resolveTooltipDialog}from"../../hooks/field/renderers";const FieldImpl=(e,t)=>{const{tokensOverride:r,label:l,labelWidth:i,labelAlign:o,inputAlign:n,controlAlign:a,required:s=!1,colon:c=!1,intro:u,description:d,tooltip:g,error:m=!1,errorMessage:p,errorMessageAlign:f="left",errorMessagePosition:b="inner",disabled:y=!1,readOnly:R=!1,clearable:h=!1,clearTrigger:x,clearIcon:T,leftIcon:w,rightIcon:S,prefix:v,suffix:C,button:I,extra:k,value:F,defaultValue:M="",type:z="text",rows:E,autoSize:P=!1,formatter:L,formatTrigger:O,showWordLimit:D=!1,onOverlimit:H,onClear:A,onClick:N,onClickInput:B,onClickLeftIcon:V,onClickRightIcon:G,border:W,center:j,clickable:q,isLink:K,arrowDirection:Q,size:$,titleStyle:_,contentStyle:J,inputStyle:U,labelStyle:X,introStyle:Y,errorMessageStyle:Z,style:ee,androidRipple:te,children:re,placeholderTextColor:le,onFocus:ie,onBlur:oe,onPressIn:ne,onChangeText:ae,maxLength:se,...ce}=e,ue=useFieldTokens(r),de=i??ue.defaults.labelWidth,ge=o??ue.defaults.labelAlign,me=n??ue.defaults.inputAlign,pe=a??ue.defaults.controlAlign,fe=x??ue.defaults.clearTrigger,be=E??ue.defaults.rows,ye=O??ue.defaults.formatTrigger,Re=[{width:de,minWidth:de,maxWidth:de,flexBasis:de,marginRight:ue.spacing.labelGap,flexShrink:0,flexGrow:0},_],he=C??I,xe=u??d,Te=le??(y?ue.colors.disabled:ue.colors.placeholder),we="textarea"===z,Se=void 0!==F,[ve,Ce]=useState(M),Ie=Se?F??"":ve,[ke,Fe]=useState(!1),[Me,ze]=useState(!1),Ee=useRef(!1),Pe=useRef(null),Le=useId(),Oe=useId(),De=useMemo(()=>{const e=[isRenderable(p)?Oe:null,isRenderable(xe)?Le:null].filter(Boolean);return e.length?e:void 0},[Oe,p,Le,xe]),He=ue.defaults.textareaLineHeight,Ae=P&&isObject(P)?P:void 0,Ne=we?Ae&&isDef(Ae.minRows)?Math.max(1,Ae.minRows):Math.max(1,be):1,Be=we&&Ae&&isDef(Ae.maxRows)?Math.max(1,Ae.maxRows):void 0,Ve=useMemo(()=>we?Math.max(ue.sizes.textareaMinHeight,Ne*He):void 0,[we,He,Ne,ue.sizes.textareaMinHeight]),Ge=useMemo(()=>we&&Be?Math.max(ue.sizes.textareaMinHeight,Be*He):void 0,[we,He,Be,ue.sizes.textareaMinHeight]),[We,je]=useState(Ve),qe=useRef(ae);qe.current=ae;const Ke=useRef(H);Ke.current=H;const Qe=useRef(ie);Qe.current=ie;const $e=useRef(oe);$e.current=oe;const _e=useRef(ne);_e.current=ne;const Je=useRef(B);Je.current=B;const Ue=useRef(A);Ue.current=A;const Xe=useCallback((e,t="onChange")=>L&&t===ye?L(e):e,[ye,L]),Ye=useCallback((e,t="onChange")=>{const r=Xe(e,t);Se||Ce(r),qe.current?.(r)},[Xe,Se]);useImperativeHandle(t,()=>({focus:()=>Pe.current?.focus(),blur:()=>Pe.current?.blur(),clear:()=>Ye(""),get nativeElement(){return Pe.current}}));const Ze="left"!==pe?pe:me,et=h&&!R&&""!==(Ie??"")&&("always"===fe||"focus"===fe&&(ke||Me)),tt=useCallback(e=>{let t=e??"";if("number"===z||"digit"===z){const e="number"===z;t=formatNumberInput(t,e,e)}isFiniteNumber(se)&&se>=0&&t.length>se&&(Ke.current?.(t),t=t.slice(0,se)),Ye(t,"onChange")},[se,z,Ye]),rt=useCallback(e=>{Fe(!0),Qe.current?.(e),R&&Pe.current?.blur()},[R]),lt=useCallback(e=>{if("web"!==Platform.OS&&Ee.current)return Ee.current=!1,Fe(!1),void $e.current?.(e);Ye(Ie??"","onBlur"),Fe(!1),$e.current?.(e)},[Ye,Ie]),it=useCallback(e=>{_e.current?.(e),Je.current?.()},[]),ot=useCallback(e=>{if(!we)return;const t=e.nativeEvent.contentSize?.height??0;if(!t)return;let r=t;P?(r=Math.max(Ve??t,t),Ge&&(r=Math.min(r,Ge))):Ve&&(r=Math.max(Ve,t)),je(r)},[P,we,Ge,Ve]),nt=useCallback(()=>{"web"!==Platform.OS&&(Ee.current=!0),Ye(""),Pe.current?.clear?.(),Pe.current?.focus?.(),Ue.current?.()},[Ye]),at=useCallback(()=>{ze(!0),"web"!==Platform.OS&&nt()},[nt]),st=useCallback(()=>{ze(!1),Ee.current=!1},[]),ct=isRenderable(re)?React.createElement(View,{style:[ue.layout.children,{minHeight:ue.sizes.controlMinHeight}]},re):React.createElement(FieldInput,{inputRef:Pe,tokens:ue,isTextarea:we,disabled:y,error:m,finalTextAlign:Ze,lineHeight:He,textareaHeight:We,minHeight:Ve,inputStyle:U,value:Ie??"",onChangeText:tt,onFocus:rt,onBlur:lt,onPressIn:it,rows:be,keyboardType:ce.keyboardType??mapKeyboardType(z),placeholderTextColor:Te,onContentSizeChange:ot,describedBy:De,secureTextEntry:"password"===z,editable:!y&&!R,restInputProps:ce}),ut=[{width:"100%",justifyContent:alignMap[pe]},J],dt=e=>isText(e)?React.createElement(Text,{style:[ue.layout.affixText,{color:ue.colors.input,fontSize:ue.typography.inputSize}],numberOfLines:1},e):e,gt=isRenderable(g)?(()=>{const e=React.createElement(QuestionO,{size:ue.sizes.icon,fill:ue.colors.tooltip,color:ue.colors.tooltip}),{icon:t,dialogProps:r}=resolveTooltipDialog(g,e);return React.createElement(Pressable,{style:[ue.layout.tooltip,{marginLeft:ue.spacing.rightIconGap}],onPress:()=>Dialog.show(r),accessibilityRole:"button"},t)})():null,mt=isRenderable(l)?(()=>{const e=isText(l)?React.createElement(Text,{style:[{color:y?ue.colors.disabled:ue.colors.label,fontSize:ue.typography.labelSize,textAlign:ge},X],numberOfLines:1},l,c?":":""):l;return React.createElement(View,{style:ue.layout.labelRow},e,gt)})():null,pt=D&&null!=se?(()=>{const e=(Ie??"").length,t=isFunction(D)?D({currentCount:e,maxLength:se}):`${e}/${se}`;return isRenderable(t)?isText(t)?React.createElement(Text,{style:[ue.layout.wordLimit,{color:ue.colors.wordLimit,fontSize:ue.typography.wordLimitSize??12,textAlign:"right",alignSelf:"flex-end",marginTop:ue.spacing.wordLimitMarginTop}]},t):t:null})():null,ft=isRenderable(p)?isText(p)?React.createElement(Text,{nativeID:Oe,style:[ue.layout.message,{color:ue.colors.error,fontSize:ue.typography.messageSize,textAlign:f,marginTop:ue.spacing.messageMarginTop},Z],accessibilityLiveRegion:"polite"},p):React.createElement(View,{nativeID:Oe,style:[ue.layout.message,{alignSelf:alignMap[f],marginTop:ue.spacing.messageMarginTop}],accessibilityLiveRegion:"polite"},p):null,bt=isRenderable(xe)?isText(xe)?React.createElement(Text,{nativeID:Le,style:[ue.layout.message,{color:ue.colors.intro,fontSize:ue.typography.introSize,textAlign:pe,marginTop:ue.spacing.introMarginTop},Y]},xe):React.createElement(View,{nativeID:Le,style:{marginTop:ue.spacing.introMarginTop}},xe):null,yt=v?React.createElement(View,{style:[ue.layout.prefix,{paddingRight:ue.spacing.prefixGap}]},dt(v)):null,Rt=he?React.createElement(View,{style:[ue.layout.suffix,{paddingLeft:ue.spacing.suffixGap}]},dt(he)):null,ht=w?React.createElement(FieldSlot,{onPress:V,style:[ue.layout.leftIcon,{marginRight:ue.spacing.leftIconGap,minWidth:ue.sizes.icon}]},w):null,xt=S?React.createElement(FieldSlot,{onPress:G,style:[ue.layout.rightIcon,{paddingHorizontal:ue.spacing.rightIconGap}]},S):null,Tt=et?React.createElement(FieldClearButton,{show:et,tokens:ue,clearIcon:T,onPressIn:at,onPressOut:"web"===Platform.OS?st:void 0,onPress:"web"===Platform.OS?nt:void 0}):null,wt="outer"===b,St=React.createElement(Cell,{title:mt,icon:void 0,required:s,border:W,center:j,size:$,clickable:q,isLink:K,arrowDirection:Q,extra:k,titleStyle:Re,style:[ee,wt&&(m||isRenderable(p))?{borderColor:ue.colors.error}:void 0],contentStyle:ut,accessibilityState:m?{invalid:!0}:void 0,accessibilityLabel:isText(l)?String(l):void 0,onPress:N,android_ripple:te},React.createElement(FieldControlRow,{tokens:ue,prefixNode:yt,leftIconNode:ht,controlNode:ct,clearNode:Tt,rightIconNode:xt,suffixNode:Rt}),pt,wt?null:ft,bt);return wt&&ft?React.createElement(React.Fragment,null,St,ft):St},FieldForwardRef=React.forwardRef(FieldImpl);FieldForwardRef.displayName="Field";export const Field=React.memo(FieldForwardRef);export default Field;
1
+ import React,{useCallback,useId,useImperativeHandle,useMemo,useRef,useState}from"react";import{Platform,Pressable,Text,View}from"react-native";import QuestionO from"react-native-system-icon/QuestionO";import Cell from"../cell";import Dialog from"../dialog";import{formatNumberInput}from"../../utils/string";import{isDef,isFiniteNumber,isFunction,isObject,isRenderable,isText}from"../../utils/validate";import{useFieldTokens}from"./tokens";import{alignMap,FieldClearButton,FieldControlRow,FieldInput,FieldSlot,mapKeyboardType,resolveTooltipDialog}from"../../hooks/field/renderers";const FieldImpl=(e,t)=>{const{tokensOverride:r,label:l,labelWidth:i,labelAlign:o,inputAlign:n,controlAlign:a,required:s=!1,colon:c=!1,intro:u,description:d,tooltip:g,error:m=!1,errorMessage:p,errorMessageAlign:f="left",errorMessagePosition:b="inner",disabled:y=!1,readOnly:R=!1,clearable:h=!1,clearTrigger:x,clearIcon:T,leftIcon:w,rightIcon:S,prefix:v,suffix:C,button:I,extra:k,value:F,defaultValue:M="",type:z="text",rows:E,autoSize:P=!1,formatter:L,formatTrigger:O,showWordLimit:D=!1,onOverlimit:H,onClear:A,onClick:N,onClickInput:B,onClickLeftIcon:V,onClickRightIcon:G,border:W,center:j,clickable:Q,isLink:q,arrowDirection:K,size:$,titleStyle:_,contentStyle:J,inputStyle:U,labelStyle:X,introStyle:Y,errorMessageStyle:Z,style:ee,androidRipple:te,children:re,placeholderTextColor:le,onFocus:ie,onBlur:oe,onPressIn:ne,onChangeText:ae,maxLength:se,...ce}=e,ue=useFieldTokens(r),de=i??ue.defaults.labelWidth,ge=o??ue.defaults.labelAlign,me=n??ue.defaults.inputAlign,pe=a??ue.defaults.controlAlign,fe=x??ue.defaults.clearTrigger,be=E??ue.defaults.rows,ye=O??ue.defaults.formatTrigger,Re=[{width:de,minWidth:de,maxWidth:de,flexBasis:de,marginRight:ue.spacing.labelGap,flexShrink:0,flexGrow:0},_],he=C??I,xe=u??d,Te=le??(y?ue.colors.disabled:ue.colors.placeholder),we="textarea"===z,Se=void 0!==F,[ve,Ce]=useState(M),Ie=Se?F??"":ve,[ke,Fe]=useState(!1),[Me,ze]=useState(!1),Ee=useRef(!1),Pe=useRef(null),Le=useId(),Oe=useId(),De=useMemo(()=>{const e=[isRenderable(p)?Oe:null,isRenderable(xe)?Le:null].filter(Boolean);return e.length?e:void 0},[Oe,p,Le,xe]),He=ue.defaults.textareaLineHeight,Ae=P&&isObject(P)?P:void 0,Ne=we?Ae&&isDef(Ae.minRows)?Math.max(1,Ae.minRows):Math.max(1,be):1,Be=we&&Ae&&isDef(Ae.maxRows)?Math.max(1,Ae.maxRows):void 0,Ve=useMemo(()=>we?Math.max(ue.sizes.textareaMinHeight,Ne*He):void 0,[we,He,Ne,ue.sizes.textareaMinHeight]),Ge=useMemo(()=>we&&Be?Math.max(ue.sizes.textareaMinHeight,Be*He):void 0,[we,He,Be,ue.sizes.textareaMinHeight]),[We,je]=useState(Ve),Qe=useRef(ae);Qe.current=ae;const qe=useRef(H);qe.current=H;const Ke=useRef(ie);Ke.current=ie;const $e=useRef(oe);$e.current=oe;const _e=useRef(ne);_e.current=ne;const Je=useRef(B);Je.current=B;const Ue=useRef(A);Ue.current=A;const Xe=useCallback((e,t="onChange")=>L&&t===ye?L(e):e,[ye,L]),Ye=useCallback((e,t="onChange")=>{const r=Xe(e,t);Se||Ce(r),Qe.current?.(r)},[Xe,Se]);useImperativeHandle(t,()=>({focus:()=>Pe.current?.focus(),blur:()=>Pe.current?.blur(),clear:()=>Ye(""),get nativeElement(){return Pe.current}}));const Ze="left"!==pe?pe:me,et=h&&!R&&""!==(Ie??"")&&("always"===fe||"focus"===fe&&(ke||Me)),tt=useCallback(e=>{let t=e??"";if("number"===z||"digit"===z){const e="number"===z;t=formatNumberInput(t,e,e)}isFiniteNumber(se)&&se>=0&&t.length>se&&(qe.current?.(t),t=t.slice(0,se)),Ye(t,"onChange")},[se,z,Ye]),rt=useCallback(e=>{Fe(!0),Ke.current?.(e),R&&Pe.current?.blur()},[R]),lt=useCallback(e=>{if("web"!==Platform.OS&&Ee.current)return Ee.current=!1,Fe(!1),void $e.current?.(e);Ye(Ie??"","onBlur"),Fe(!1),$e.current?.(e)},[Ye,Ie]),it=useCallback(e=>{_e.current?.(e),Je.current?.()},[]),ot=useCallback(e=>{if(!we)return;const t=e.nativeEvent.contentSize?.height??0;if(!t)return;let r=t;P?(r=Math.max(Ve??t,t),Ge&&(r=Math.min(r,Ge))):Ve&&(r=Math.max(Ve,t)),je(r)},[P,we,Ge,Ve]),nt=useCallback(()=>{"web"!==Platform.OS&&(Ee.current=!0),Ye(""),Pe.current?.clear?.(),Pe.current?.focus?.(),Ue.current?.()},[Ye]),at=useCallback(()=>{ze(!0),"web"!==Platform.OS&&nt()},[nt]),st=useCallback(()=>{ze(!1),Ee.current=!1},[]),ct=isRenderable(re)?React.createElement(View,{style:[ue.layout.children,{minHeight:ue.sizes.controlMinHeight}]},re):React.createElement(FieldInput,{inputRef:Pe,tokens:ue,isTextarea:we,disabled:y,error:m,finalTextAlign:Ze,lineHeight:He,textareaHeight:We,minHeight:Ve,inputStyle:U,value:Ie??"",onChangeText:tt,onFocus:rt,onBlur:lt,onPressIn:it,rows:be,keyboardType:ce.keyboardType??mapKeyboardType(z),placeholderTextColor:Te,onContentSizeChange:ot,describedBy:De,secureTextEntry:"password"===z,editable:!y&&!R,restInputProps:ce}),ut=[{width:"100%",justifyContent:alignMap[pe]},J],dt=e=>isText(e)?React.createElement(Text,{style:[ue.layout.affixText,{color:ue.colors.input,fontSize:ue.typography.inputSize}],numberOfLines:1},e):e,gt=isRenderable(g)?(()=>{const e=React.createElement(QuestionO,{size:ue.sizes.icon,fill:ue.colors.tooltip,color:ue.colors.tooltip}),{icon:t,dialogProps:r}=resolveTooltipDialog(g,e);return React.createElement(Pressable,{style:[ue.layout.tooltip,{marginLeft:ue.spacing.rightIconGap}],onPress:()=>Dialog.show(r),accessibilityRole:"button"},t)})():null,mt=isRenderable(l)?(()=>{const e=isText(l)?React.createElement(Text,{style:[{color:y?ue.colors.disabled:ue.colors.label,fontSize:ue.typography.labelSize,textAlign:ge},X],numberOfLines:1},l,c?":":""):l;return React.createElement(View,{style:ue.layout.labelRow},e,gt)})():null,pt=D&&null!=se?(()=>{const e=(Ie??"").length,t=isFunction(D)?D({currentCount:e,maxLength:se}):`${e}/${se}`;return isRenderable(t)?isText(t)?React.createElement(Text,{style:[ue.layout.wordLimit,{color:ue.colors.wordLimit,fontSize:ue.typography.wordLimitSize??12,textAlign:"right",alignSelf:"flex-end",marginTop:ue.spacing.wordLimitMarginTop}]},t):t:null})():null,ft=isRenderable(p)?isText(p)?React.createElement(Text,{nativeID:Oe,style:[ue.layout.message,{color:ue.colors.error,fontSize:ue.typography.messageSize,textAlign:f,marginTop:ue.spacing.messageMarginTop},Z],accessibilityLiveRegion:"polite"},p):React.createElement(View,{nativeID:Oe,style:[ue.layout.message,{alignSelf:alignMap[f],marginTop:ue.spacing.messageMarginTop}],accessibilityLiveRegion:"polite"},p):null,bt=isRenderable(xe)?isText(xe)?React.createElement(Text,{nativeID:Le,style:[ue.layout.message,{color:ue.colors.intro,fontSize:ue.typography.introSize,textAlign:pe,marginTop:ue.spacing.introMarginTop},Y]},xe):React.createElement(View,{nativeID:Le,style:{marginTop:ue.spacing.introMarginTop}},xe):null,yt=v?React.createElement(View,{style:[ue.layout.prefix,{paddingRight:ue.spacing.prefixGap}]},dt(v)):null,Rt=he?React.createElement(View,{style:[ue.layout.suffix,{paddingLeft:ue.spacing.suffixGap}]},dt(he)):null,ht=w?React.createElement(FieldSlot,{onPress:V,style:[ue.layout.leftIcon,{marginRight:ue.spacing.leftIconGap,minWidth:ue.sizes.icon}]},w):null,xt=S?React.createElement(FieldSlot,{onPress:G,style:[ue.layout.rightIcon,{paddingHorizontal:ue.spacing.rightIconGap}]},S):null,Tt=et?React.createElement(FieldClearButton,{show:et,tokens:ue,clearIcon:T,onPressIn:at,onPressOut:"web"===Platform.OS?st:void 0,onPress:"web"===Platform.OS?nt:void 0}):null,wt="outer"===b,St=React.createElement(Cell,{title:mt,icon:void 0,required:s,border:W,center:j,size:$,clickable:Q,isLink:q,arrowDirection:K,extra:k,titleStyle:Re,style:[ee,wt&&(m||isRenderable(p))?{borderColor:ue.colors.error}:void 0],contentStyle:ut,accessibilityState:m?{invalid:!0}:void 0,accessibilityLabel:isText(l)?String(l):void 0,onPress:N,android_ripple:te},React.createElement(FieldControlRow,{tokens:ue,prefixNode:yt,leftIconNode:ht,controlNode:ct,clearNode:Tt,rightIconNode:xt,suffixNode:Rt}),pt,wt?null:ft,bt);return wt&&ft?React.createElement(React.Fragment,null,St,ft):St},FieldForwardRef=React.forwardRef(FieldImpl);FieldForwardRef.displayName="Field";export const Field=React.memo(FieldForwardRef);export default Field;
@@ -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 a in r)({}).hasOwnProperty.call(r,a)&&(e[a]=r[a])}return e},_extends.apply(null,arguments)}import React,{useCallback,useState}from"react";import{Platform,Pressable,Text,View}from"react-native";import{ArrowLeft}from"react-native-system-icon";import{useAriaPress}from"../../hooks";import{useLocale}from"../config-provider/useLocale";import{useDirection}from"../config-provider/useDirection";import{createHairlineView}from"../../utils/hairline";import{isRenderable,isText,renderTextOrNode}from"../../utils";import{SafeAreaView}from"../safe-area-view";import{useNavBarTokens}from"./tokens";const NavBarBaseImpl=e=>{const{tokensOverride:t,title:r,description:a,children:o,leftText:i,rightText:l,leftIcon:s,rightIcon:n,leftArrow:c,fixed:d,placeholder:u,zIndex:f,border:y,safeAreaInsetTop:m,background:p,tintColor:b,titleStyle:g,descriptionStyle:h,sideStyle:v,onPressLeft:R,onClickLeft:x,onPressRight:w,onClickRight:B,style:P,...k}=e,E=useLocale(),T=useDirection(),L=useNavBarTokens(t),N=c??L.defaults.leftArrow,S=d??L.defaults.fixed,V=u??L.defaults.placeholder,A=f??L.defaults.zIndex,I=y??L.defaults.border,O=m??S,z=p??L.colors.background,F=R??x,C=w??B,[D,_]=useState(L.sizing.height),$=S&&V,W=useCallback(e=>{if(!$)return;const t=e.nativeEvent.layout.height;_(e=>Math.abs(e-t)<.5?e:t)},[$]),j=b??L.colors.text,H=b??L.colors.icon,M=useAriaPress({disabled:!F,onPress:F,extraProps:{accessibilityRole:"button",accessibilityLabel:isText(i)?`${i}`:E?.vanNavBar?.back??"Back"}}),X=useAriaPress({disabled:!C,onPress:C,extraProps:{accessibilityRole:"button",accessibilityLabel:isText(l)?`${l}`:E?.vanNavBar?.action??"Actions"}}),q=e=>{const t="left"===e,r=t?i:l,a=t?s:n,o=t?M:X,c=t?F:C,d=t?!0===N?React.createElement(ArrowLeft,{size:18,fill:H,color:H,style:"rtl"===T?{transform:[{scaleX:-1}]}:void 0}):isRenderable(N)&&N:null;if(!(!!c||isRenderable(d)||isRenderable(r)||isRenderable(a)))return React.createElement(View,{style:L.layout.sidePlaceholder});const u=React.createElement(React.Fragment,null,d,isRenderable(a)?a:null,isRenderable(r)?isText(r)?React.createElement(Text,{numberOfLines:1,style:[L.layout.sideText,{color:H,fontFamily:L.typography.fontFamily}]},r):r:null),f=[L.layout.side,!t&&L.layout.rightAlign,v];return c?React.createElement(Pressable,_extends({hitSlop:{top:8,right:8,bottom:8,left:8},testID:`rv-navbar-${e}`,style:f},o.interactionProps),u):React.createElement(View,{testID:`rv-navbar-${e}`,style:f},u)},G=isRenderable(o)?o:React.createElement(View,{style:L.layout.titleWrapper},isRenderable(r)&&renderTextOrNode(r,[L.layout.title,{color:j,fontFamily:L.typography.fontFamily,fontSize:L.typography.titleSize,fontWeight:L.typography.titleWeight},g],{numberOfLines:1}),isRenderable(a)&&renderTextOrNode(a,[L.layout.description,{color:b??L.colors.description,fontFamily:L.typography.fontFamily,fontSize:L.typography.descriptionSize},h],{numberOfLines:1})),J=React.createElement(View,{style:[L.layout.bar,{backgroundColor:z}],onLayout:O?void 0:W},q("left"),React.createElement(View,{style:L.layout.center},G),q("right"),I&&React.createElement(View,{style:createHairlineView({position:"bottom",color:L.colors.border,left:0,right:0})})),K=O?React.createElement(SafeAreaView,{onLayout:W,style:{backgroundColor:z}},J):J;return React.createElement(React.Fragment,null,$&&React.createElement(View,{testID:"rv-navbar-placeholder",style:{height:D}}),React.createElement(View,_extends({},k,{accessibilityRole:"web"===Platform.OS?"navigation":void 0,style:[L.layout.container,S&&[L.layout.fixed,{zIndex:A}],P]}),K))},NavBarBase=React.memo(NavBarBaseImpl);NavBarBase.displayName="NavBar";export default NavBarBase;
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 a in r)({}).hasOwnProperty.call(r,a)&&(e[a]=r[a])}return e},_extends.apply(null,arguments)}import React,{useCallback,useState}from"react";import{Platform,Pressable,Text,View}from"react-native";import ArrowLeft from"react-native-system-icon/ArrowLeft";import{useAriaPress}from"../../hooks";import{useLocale}from"../config-provider/useLocale";import{useDirection}from"../config-provider/useDirection";import{createHairlineView}from"../../utils/hairline";import{isRenderable,isText,renderTextOrNode}from"../../utils";import{SafeAreaView}from"../safe-area-view";import{useNavBarTokens}from"./tokens";const NavBarBaseImpl=e=>{const{tokensOverride:t,title:r,description:a,children:o,leftText:i,rightText:l,leftIcon:s,rightIcon:n,leftArrow:c,fixed:d,placeholder:f,zIndex:u,border:y,safeAreaInsetTop:m,background:p,tintColor:b,titleStyle:g,descriptionStyle:h,sideStyle:v,onPressLeft:R,onClickLeft:x,onPressRight:w,onClickRight:B,style:P,...k}=e,E=useLocale(),L=useDirection(),T=useNavBarTokens(t),N=c??T.defaults.leftArrow,A=d??T.defaults.fixed,S=f??T.defaults.placeholder,V=u??T.defaults.zIndex,I=y??T.defaults.border,O=m??A,z=p??T.colors.background,F=R??x,C=w??B,[D,_]=useState(T.sizing.height),$=A&&S,W=useCallback(e=>{if(!$)return;const t=e.nativeEvent.layout.height;_(e=>Math.abs(e-t)<.5?e:t)},[$]),j=b??T.colors.text,H=b??T.colors.icon,M=useAriaPress({disabled:!F,onPress:F,extraProps:{accessibilityRole:"button",accessibilityLabel:isText(i)?`${i}`:E?.vanNavBar?.back??"Back"}}),X=useAriaPress({disabled:!C,onPress:C,extraProps:{accessibilityRole:"button",accessibilityLabel:isText(l)?`${l}`:E?.vanNavBar?.action??"Actions"}}),q=e=>{const t="left"===e,r=t?i:l,a=t?s:n,o=t?M:X,c=t?F:C,d=t?!0===N?React.createElement(ArrowLeft,{size:18,fill:H,color:H,style:"rtl"===L?{transform:[{scaleX:-1}]}:void 0}):isRenderable(N)&&N:null;if(!(!!c||isRenderable(d)||isRenderable(r)||isRenderable(a)))return React.createElement(View,{style:T.layout.sidePlaceholder});const f=React.createElement(React.Fragment,null,d,isRenderable(a)?a:null,isRenderable(r)?isText(r)?React.createElement(Text,{numberOfLines:1,style:[T.layout.sideText,{color:H,fontFamily:T.typography.fontFamily}]},r):r:null),u=[T.layout.side,!t&&T.layout.rightAlign,v];return c?React.createElement(Pressable,_extends({hitSlop:{top:8,right:8,bottom:8,left:8},testID:`rv-navbar-${e}`,style:u},o.interactionProps),f):React.createElement(View,{testID:`rv-navbar-${e}`,style:u},f)},G=isRenderable(o)?o:React.createElement(View,{style:T.layout.titleWrapper},isRenderable(r)&&renderTextOrNode(r,[T.layout.title,{color:j,fontFamily:T.typography.fontFamily,fontSize:T.typography.titleSize,fontWeight:T.typography.titleWeight},g],{numberOfLines:1}),isRenderable(a)&&renderTextOrNode(a,[T.layout.description,{color:b??T.colors.description,fontFamily:T.typography.fontFamily,fontSize:T.typography.descriptionSize},h],{numberOfLines:1})),J=React.createElement(View,{style:[T.layout.bar,{backgroundColor:z}],onLayout:O?void 0:W},q("left"),React.createElement(View,{style:T.layout.center},G),q("right"),I&&React.createElement(View,{style:createHairlineView({position:"bottom",color:T.colors.border,left:0,right:0})})),K=O?React.createElement(SafeAreaView,{onLayout:W,style:{backgroundColor:z}},J):J;return React.createElement(React.Fragment,null,$&&React.createElement(View,{testID:"rv-navbar-placeholder",style:{height:D}}),React.createElement(View,_extends({},k,{accessibilityRole:"web"===Platform.OS?"navigation":void 0,style:[T.layout.container,A&&[T.layout.fixed,{zIndex:V}],P]}),K))},NavBarBase=React.memo(NavBarBaseImpl);NavBarBase.displayName="NavBar";export default NavBarBase;
@@ -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 i in a)({}).hasOwnProperty.call(a,i)&&(e[i]=a[i])}return e},_extends.apply(null,arguments)}import React,{useCallback,useEffect,useMemo,useRef,useState}from"react";import{Animated,Easing,Pressable,StyleSheet,Text,View,Platform}from"react-native";import{Arrow,Close}from"react-native-system-icon";import{useAriaPress}from"../../hooks";import{useLocale}from"../config-provider/useLocale";import{useDirection}from"../config-provider/useDirection";import{parseNumber}from"../../utils/number";import{isRenderable,isText}from"../../utils/validate";import{renderTextOrNode}from"../../utils";import{nativeDriverEnabled}from"../../platform";import{useReducedMotion}from"../../hooks/animation";import{useNoticeBarTokens}from"./tokens";const AnimatedText=Animated.createAnimatedComponent(Text),IS_WEB="web"===Platform.OS;if(IS_WEB){const e="undefined"!=typeof globalThis?globalThis:window;void 0===e.global&&(e.global=e)}const NoticeBarImpl=e=>{const{text:t,children:a,color:i,background:n,leftIcon:r,rightIcon:o,mode:s,tokensOverride:l,delay:c=1,speed:d=60,scrollable:u,wrapable:m=!1,direction:p="horizontal",items:f,verticalInterval:y=3e3,verticalDuration:h=300,onPress:g,onClose:b,onReplay:v,textProps:x,style:w,...E}=e,R=useLocale(),A=useDirection(),T=useReducedMotion(),k=useNoticeBarTokens(l),P=i??k.colors.text,V=n??k.colors.background,N=t??a,z=isText(N),C="vertical"===p,[I,M]=useState(!0),{onLayout:L,...D}=x??{},[O,B]=useState(0),[F,W]=useState(0),_=useRef(new Animated.Value(0)).current,H=Math.max(0,parseNumber(c,1)),j=parseNumber(d,60),q=Math.max(0,parseNumber(y,3e3)),X=Math.max(0,parseNumber(h,300)),Y=useMemo(()=>C?f&&f.length?f:(()=>{const e=React.Children.toArray(a);return e.length?e:void 0!==t?[t]:[]})():[],[a,C,f,t]),G=!T&&C&&Y.length>1,J=useMemo(()=>G?[...Y,Y[0]]:Y,[G,Y]),K=useRef(new Animated.Value(0)).current,[Q,U]=useState(0),Z=useCallback(e=>{B(t=>Math.abs(t-e)<.5?t:e)},[]),$=useCallback(e=>{W(t=>Math.abs(t-e)<.5?t:e)},[]),ee=useRef(b);ee.current=b;const te=useRef(v);te.current=v;const ae=useCallback(()=>{M(!1),ee.current?.()},[]),ie=useAriaPress({disabled:"closeable"!==s||!I,onPress:ae,extraProps:{accessibilityRole:"button",accessibilityLabel:R?.vanNoticeBar?.close??"Close"}}),ne=useAriaPress({disabled:!g||!I,onPress:g,extraProps:g?{accessibilityRole:"button"}:void 0}),re="closeable"===s?React.createElement(Pressable,_extends({hitSlop:8},ie.interactionProps),React.createElement(Close,{size:16,fill:P,color:P})):"link"===s?React.createElement(Arrow,{size:16,fill:P,color:P}):o||null,oe=isRenderable(r),se=Boolean(re),le=Math.max(0,F-(oe?k.spacing.sidePadding:0)-(se?k.spacing.sidePadding:0)),ce=!T&&!C&&!m&&(u??O>le);useEffect(()=>{if(!I||C)return void _.stopAnimation();if(!ce||0===O||0===F||j<=0||!Number.isFinite(j))return void _.setValue(0);let e=!1;const t=(O+F)/j*1e3,a="rtl"===A?-1:1,i=n=>{_.setValue(n?0:a*F),Animated.sequence([Animated.delay(1e3*H),Animated.timing(_,{toValue:-a*O,duration:t,easing:Easing.linear,useNativeDriver:nativeDriverEnabled,isInteraction:!1})]).start(({finished:t})=>{t&&!e&&(te.current?.(),i(!1))})};return i(!0),()=>{e=!0,_.stopAnimation()}},[ce,_,I,H,j,O,F,C,A]),useEffect(()=>{if(!I)return void K.stopAnimation();if(!G||0===Q)return void K.setValue(0);const e=[];for(let t=1;t<=Y.length;t+=1)e.push(Animated.delay(q),Animated.timing(K,{toValue:-Q*t,duration:X,easing:Easing.linear,useNativeDriver:nativeDriverEnabled,isInteraction:!1}));e.push(Animated.timing(K,{toValue:0,duration:0,useNativeDriver:nativeDriverEnabled,isInteraction:!1}));const t=Animated.loop(Animated.sequence(e));return t.start(),()=>{t.stop(),K.stopAnimation()}},[I,G,Q,X,q,Y,K]);const de=useCallback(e=>{const t=e?.nativeEvent?.layout?.height;t&&U(e=>0===e||Math.abs(e-t)>=.5?t:e)},[]),ue=useMemo(()=>C&&0!==J.length?G?React.createElement(View,{style:[S.vViewport,Q?{height:Q}:void 0],pointerEvents:"none"},React.createElement(Animated.View,{renderToHardwareTextureAndroid:!0,shouldRasterizeIOS:!0,style:[S.vTrack,{transform:[{translateY:K}]}]},J.map((e,t)=>React.createElement(View,{key:t,onLayout:0===t?de:void 0,style:S.vItem},renderTextOrNode(e,[S.text,{color:P,fontFamily:k.typography.fontFamily,fontSize:k.typography.fontSize}],{numberOfLines:1,...D}))))):renderTextOrNode(J[0],[S.text,{color:P,fontFamily:k.typography.fontFamily,fontSize:k.typography.fontSize}],{numberOfLines:1,...D}):null,[de,G,C,Q,P,D,L,k.typography.fontFamily,k.typography.fontSize,J,K]),me=useCallback(e=>{$(e.nativeEvent.layout.width)},[$]),pe=useCallback(e=>{Z(e.nativeEvent.layout.width),L?.(e)},[Z,L]),fe=useCallback(e=>Z(e.nativeEvent.layout.width),[Z]);return I?React.createElement(Pressable,_extends({style:[S.ctr,{backgroundColor:V,paddingHorizontal:k.spacing.paddingHorizontal,paddingVertical:m?k.spacing.wrapPaddingVertical:k.spacing.paddingVertical,minHeight:k.layout.minHeight,borderRadius:k.layout.radius},w],disabled:ne.states.disabled},ne.interactionProps,E),oe&&React.createElement(View,{style:[S.side,{minWidth:k.layout.sideMinWidth}]},r),React.createElement(View,{onLayout:me,style:[S.content,m&&S.contentWrap,oe&&{paddingLeft:k.spacing.sidePadding},se&&{paddingRight:k.spacing.sidePadding}],pointerEvents:"none"},C?ue:ce?z?React.createElement(AnimatedText,_extends({onLayout:pe,style:[S.text,S.scrollText,{color:P,fontFamily:k.typography.fontFamily,fontSize:k.typography.fontSize,transform:[{translateX:_}]}]},IS_WEB?{}:{numberOfLines:1,ellipsizeMode:"clip"},D),N):React.createElement(Animated.View,{onLayout:fe,renderToHardwareTextureAndroid:!0,shouldRasterizeIOS:!0,style:[S.text,{transform:[{translateX:_}]}]},N):z?React.createElement(Text,_extends({onLayout:pe,style:[S.text,{color:P,fontFamily:k.typography.fontFamily,fontSize:k.typography.fontSize},m&&S.wrapText],numberOfLines:m?void 0:1,ellipsizeMode:m?"tail":"clip"},D),N):React.createElement(View,{onLayout:fe,style:[S.text,m&&S.wrapText]},N)),re&&React.createElement(View,{style:[S.side,{minWidth:k.layout.sideMinWidth}]},re)):null},S=StyleSheet.create({ctr:{flexDirection:"row",alignItems:"center"},side:{alignItems:"center",justifyContent:"center"},content:{flex:1,flexDirection:"row",overflow:"hidden"},text:{flexShrink:0},scrollText:Platform.select({web:{whiteSpace:"nowrap",textOverflow:"clip"},default:{}}),wrapText:{flexWrap:"wrap",flexShrink:1},contentWrap:{flexDirection:"column"},vViewport:{width:"100%",overflow:"hidden"},vTrack:{flexDirection:"column",width:"100%"},vItem:{width:"100%",justifyContent:"center"}});export const NoticeBar=React.memo(NoticeBarImpl);NoticeBar.displayName="NoticeBar";
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 i in a)({}).hasOwnProperty.call(a,i)&&(e[i]=a[i])}return e},_extends.apply(null,arguments)}import React,{useCallback,useEffect,useMemo,useRef,useState}from"react";import{Animated,Easing,Pressable,StyleSheet,Text,View,Platform}from"react-native";import Arrow from"react-native-system-icon/Arrow";import Close from"react-native-system-icon/Close";import{useAriaPress}from"../../hooks";import{useLocale}from"../config-provider/useLocale";import{useDirection}from"../config-provider/useDirection";import{parseNumber}from"../../utils/number";import{isRenderable,isText}from"../../utils/validate";import{renderTextOrNode}from"../../utils";import{nativeDriverEnabled}from"../../platform";import{useReducedMotion}from"../../hooks/animation";import{useNoticeBarTokens}from"./tokens";const AnimatedText=Animated.createAnimatedComponent(Text),IS_WEB="web"===Platform.OS;if(IS_WEB){const e="undefined"!=typeof globalThis?globalThis:window;void 0===e.global&&(e.global=e)}const NoticeBarImpl=e=>{const{text:t,children:a,color:i,background:n,leftIcon:r,rightIcon:o,mode:s,tokensOverride:l,delay:c=1,speed:d=60,scrollable:u,wrapable:m=!1,direction:p="horizontal",items:f,verticalInterval:y=3e3,verticalDuration:h=300,onPress:g,onClose:b,onReplay:v,textProps:x,style:w,...E}=e,R=useLocale(),A=useDirection(),T=useReducedMotion(),k=useNoticeBarTokens(l),P=i??k.colors.text,V=n??k.colors.background,N=t??a,z=isText(N),C="vertical"===p,[I,M]=useState(!0),{onLayout:L,...D}=x??{},[O,B]=useState(0),[F,W]=useState(0),_=useRef(new Animated.Value(0)).current,H=Math.max(0,parseNumber(c,1)),j=parseNumber(d,60),q=Math.max(0,parseNumber(y,3e3)),X=Math.max(0,parseNumber(h,300)),Y=useMemo(()=>C?f&&f.length?f:(()=>{const e=React.Children.toArray(a);return e.length?e:void 0!==t?[t]:[]})():[],[a,C,f,t]),G=!T&&C&&Y.length>1,J=useMemo(()=>G?[...Y,Y[0]]:Y,[G,Y]),K=useRef(new Animated.Value(0)).current,[Q,U]=useState(0),Z=useCallback(e=>{B(t=>Math.abs(t-e)<.5?t:e)},[]),$=useCallback(e=>{W(t=>Math.abs(t-e)<.5?t:e)},[]),ee=useRef(b);ee.current=b;const te=useRef(v);te.current=v;const ae=useCallback(()=>{M(!1),ee.current?.()},[]),ie=useAriaPress({disabled:"closeable"!==s||!I,onPress:ae,extraProps:{accessibilityRole:"button",accessibilityLabel:R?.vanNoticeBar?.close??"Close"}}),ne=useAriaPress({disabled:!g||!I,onPress:g,extraProps:g?{accessibilityRole:"button"}:void 0}),re="closeable"===s?React.createElement(Pressable,_extends({hitSlop:8},ie.interactionProps),React.createElement(Close,{size:16,fill:P,color:P})):"link"===s?React.createElement(Arrow,{size:16,fill:P,color:P}):o||null,oe=isRenderable(r),se=Boolean(re),le=Math.max(0,F-(oe?k.spacing.sidePadding:0)-(se?k.spacing.sidePadding:0)),ce=!T&&!C&&!m&&(u??O>le);useEffect(()=>{if(!I||C)return void _.stopAnimation();if(!ce||0===O||0===F||j<=0||!Number.isFinite(j))return void _.setValue(0);let e=!1;const t=(O+F)/j*1e3,a="rtl"===A?-1:1,i=n=>{_.setValue(n?0:a*F),Animated.sequence([Animated.delay(1e3*H),Animated.timing(_,{toValue:-a*O,duration:t,easing:Easing.linear,useNativeDriver:nativeDriverEnabled,isInteraction:!1})]).start(({finished:t})=>{t&&!e&&(te.current?.(),i(!1))})};return i(!0),()=>{e=!0,_.stopAnimation()}},[ce,_,I,H,j,O,F,C,A]),useEffect(()=>{if(!I)return void K.stopAnimation();if(!G||0===Q)return void K.setValue(0);const e=[];for(let t=1;t<=Y.length;t+=1)e.push(Animated.delay(q),Animated.timing(K,{toValue:-Q*t,duration:X,easing:Easing.linear,useNativeDriver:nativeDriverEnabled,isInteraction:!1}));e.push(Animated.timing(K,{toValue:0,duration:0,useNativeDriver:nativeDriverEnabled,isInteraction:!1}));const t=Animated.loop(Animated.sequence(e));return t.start(),()=>{t.stop(),K.stopAnimation()}},[I,G,Q,X,q,Y,K]);const de=useCallback(e=>{const t=e?.nativeEvent?.layout?.height;t&&U(e=>0===e||Math.abs(e-t)>=.5?t:e)},[]),ue=useMemo(()=>C&&0!==J.length?G?React.createElement(View,{style:[S.vViewport,Q?{height:Q}:void 0],pointerEvents:"none"},React.createElement(Animated.View,{renderToHardwareTextureAndroid:!0,shouldRasterizeIOS:!0,style:[S.vTrack,{transform:[{translateY:K}]}]},J.map((e,t)=>React.createElement(View,{key:t,onLayout:0===t?de:void 0,style:S.vItem},renderTextOrNode(e,[S.text,{color:P,fontFamily:k.typography.fontFamily,fontSize:k.typography.fontSize}],{numberOfLines:1,...D}))))):renderTextOrNode(J[0],[S.text,{color:P,fontFamily:k.typography.fontFamily,fontSize:k.typography.fontSize}],{numberOfLines:1,...D}):null,[de,G,C,Q,P,D,L,k.typography.fontFamily,k.typography.fontSize,J,K]),me=useCallback(e=>{$(e.nativeEvent.layout.width)},[$]),pe=useCallback(e=>{Z(e.nativeEvent.layout.width),L?.(e)},[Z,L]),fe=useCallback(e=>Z(e.nativeEvent.layout.width),[Z]);return I?React.createElement(Pressable,_extends({style:[S.ctr,{backgroundColor:V,paddingHorizontal:k.spacing.paddingHorizontal,paddingVertical:m?k.spacing.wrapPaddingVertical:k.spacing.paddingVertical,minHeight:k.layout.minHeight,borderRadius:k.layout.radius},w],disabled:ne.states.disabled},ne.interactionProps,E),oe&&React.createElement(View,{style:[S.side,{minWidth:k.layout.sideMinWidth}]},r),React.createElement(View,{onLayout:me,style:[S.content,m&&S.contentWrap,oe&&{paddingLeft:k.spacing.sidePadding},se&&{paddingRight:k.spacing.sidePadding}],pointerEvents:"none"},C?ue:ce?z?React.createElement(AnimatedText,_extends({onLayout:pe,style:[S.text,S.scrollText,{color:P,fontFamily:k.typography.fontFamily,fontSize:k.typography.fontSize,transform:[{translateX:_}]}]},IS_WEB?{}:{numberOfLines:1,ellipsizeMode:"clip"},D),N):React.createElement(Animated.View,{onLayout:fe,renderToHardwareTextureAndroid:!0,shouldRasterizeIOS:!0,style:[S.text,{transform:[{translateX:_}]}]},N):z?React.createElement(Text,_extends({onLayout:pe,style:[S.text,{color:P,fontFamily:k.typography.fontFamily,fontSize:k.typography.fontSize},m&&S.wrapText],numberOfLines:m?void 0:1,ellipsizeMode:m?"tail":"clip"},D),N):React.createElement(View,{onLayout:fe,style:[S.text,m&&S.wrapText]},N)),re&&React.createElement(View,{style:[S.side,{minWidth:k.layout.sideMinWidth}]},re)):null},S=StyleSheet.create({ctr:{flexDirection:"row",alignItems:"center"},side:{alignItems:"center",justifyContent:"center"},content:{flex:1,flexDirection:"row",overflow:"hidden"},text:{flexShrink:0},scrollText:Platform.select({web:{whiteSpace:"nowrap",textOverflow:"clip"},default:{}}),wrapText:{flexWrap:"wrap",flexShrink:1},contentWrap:{flexDirection:"column"},vViewport:{width:"100%",overflow:"hidden"},vTrack:{flexDirection:"column",width:"100%"},vItem:{width:"100%",justifyContent:"center"}});export const NoticeBar=React.memo(NoticeBarImpl);NoticeBar.displayName="NoticeBar";
@@ -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,useState}from"react";import{Animated,Platform,Pressable,StyleSheet,Text,View,useWindowDimensions}from"react-native";import{SafeAreaView}from"../safe-area-view";import{addPopStateListener,nativeDriverEnabled}from"../../platform";import{useReducedMotion}from"../../hooks/animation";import{createPlatformShadow}from"../../utils/createPlatformShadow";import{isRenderable,isText}from"../../utils/validate";import{Cross}from"react-native-system-icon";import Portal from"../portal/Portal";import{useAriaOverlay,useOverlayStack}from"../../hooks";import{useLocale}from"../config-provider/useLocale";import{useDirection}from"../config-provider/useDirection";import{usePopupTokens}from"./tokens";import{buildRadius,CAPTURE,CONTENT_SELF,EASE_IN,EASE_OUT,hiddenStyle,placementConfig}from"../../hooks/popup/utils";const AnimatedPressable=Animated.createAnimatedComponent(Pressable),PopupImpl=e=>{const t=useLocale(),o=useDirection(),{visible:n,placement:i,position:r,title:l,description:s,tokensOverride:a,overlay:c=!0,overlayStyle:u,overlayAccessibilityLabel:p=t?.vanPopup?.closeOverlay??"Close overlay",closeOnOverlayPress:d,closeOnClickOverlay:m,overlayTestID:f="popup-overlay",closeable:y=!1,closeIcon:g,closeIconPosition:h="top-right",round:b,safeArea:R=!1,safeAreaInsetTop:v=!1,safeAreaInsetBottom:E,lockScroll:C=!0,destroyOnClose:O=!1,duration:P=300,zIndex:I,closeOnBackPress:A=!1,closeOnPopstate:k=!1,children:w,beforeClose:x,onClickOverlay:T,onClose:z,onOpen:W,onOpened:L,onClosed:V,stopPropagation:D=!0,style:F,contentAnimationStyle:H,...M}=e,B=i??r??"center",_=m??d??!0,j="center"===B,N=E??!1,U=usePopupTokens(a),X=useReducedMotion(),Y=useRef({onOpened:L,onClosed:V,onOpen:W,onClose:z,beforeClose:x,onClickOverlay:T});Y.current={onOpened:L,onClosed:V,onOpen:W,onClose:z,beforeClose:x,onClickOverlay:T};const q=useMemo(()=>{const e=createPlatformShadow(U.shadow),{colors:t,spacing:o,typography:n,layout:i}=U;return{popup:{backgroundColor:t.background,padding:o.padding,...e},title:{color:t.title,fontFamily:n.fontFamily,fontSize:n.titleSize,fontWeight:n.titleWeight,marginHorizontal:o.descriptionHorizontal,textAlign:"center"},titleWrap:{marginTop:o.titleTop,marginBottom:o.titleBottom,marginHorizontal:o.descriptionHorizontal,alignItems:"center"},desc:{color:t.description,fontFamily:n.fontFamily,fontSize:n.descriptionSize,lineHeight:n.descriptionLineHeight},descWrap:{marginHorizontal:o.descriptionHorizontal,marginBottom:o.descriptionBottom},closeBase:{minWidth:o.closeIconSize,minHeight:o.closeIconSize,padding:o.closeIconPadding},closeDef:{width:o.closeIconSize,height:o.closeIconSize},side:{width:i.sideWidth,maxWidth:i.maxWidth},center:{minWidth:i.minWidth,maxWidth:i.centerMaxWidth}}},[U]),[G,J]=useState(n),[K,Q]=useState(n),Z=n||K,$=_&&(z||x),ee=useRef(new Animated.Value(0)).current,te=useRef(null),oe=useRef(0),ne=useRef(n),ie=useRef(!1),re="top"===B||"bottom"===B,le="left"===B||"right"===B,se="top"===B||"left"===B?-1:1,ae=useCallback((e,t)=>{oe.current+=1;const o=oe.current;te.current?.stop();const n=t?0:P,i=Animated.timing(ee,{toValue:e?1:0,duration:n,easing:e?EASE_OUT:EASE_IN,useNativeDriver:nativeDriverEnabled,isInteraction:!1});te.current=i,i.start(({finished:t})=>{t&&o===oe.current&&(e?Y.current.onOpened?.():(Q(!1),O&&J(!1),Y.current.onClosed?.()))})},[O,P,ee]);useEffect(()=>{n?(J(!0),Q(!0),ae(!0,X)):ne.current&&ae(!1,X)},[ae,n,X]),useEffect(()=>{n&&!ne.current&&Y.current.onOpen?.(),ne.current=n},[n]),useEffect(()=>()=>{te.current?.stop()},[]);const ce=useCallback(async e=>{if(!ie.current){ie.current=!0;try{if(Y.current.beforeClose){if(!1===await Y.current.beforeClose(e))return}Y.current.onClose?.()}finally{ie.current=!1}}},[]);useEffect(()=>{if(k)return addPopStateListener(()=>{n&&ce("close")})},[k,ce,n]);const ue=useCallback(()=>{Y.current.onClickOverlay?.(),_&&ce("overlay")},[ce,_]),pe=useCallback(()=>ce("close-icon"),[ce]),de=useCallback(()=>ce("close"),[ce]),{zIndex:me}=useOverlayStack({visible:Z,onClose:de,closeOnBack:A,lockScroll:C,zIndex:I,type:"popup"}),{overlayRef:fe,overlayProps:ye}=useAriaOverlay({isOpen:Z,onClose:()=>ce("overlay"),isDismissable:_,overlayProps:{..."android"===Platform.OS?{}:{accessibilityRole:"dialog"},accessibilityLiveRegion:"polite"}}),{onLayout:ge,...Se}=ye,he=useMemo(()=>D?{...Se,onStartShouldSetResponder:CAPTURE}:Se,[Se,D]),be=placementConfig[B],Re=buildRadius(b,B,U.radius.round),{width:ve,height:Ee}=useWindowDimensions(),Ce=le?ve:re?Ee:0,Oe=useMemo(()=>{if(j)return null;const e=[Ce*se,0];return"y"===be.axis?{translateY:ee.interpolate({inputRange:[0,1],outputRange:e})}:{translateX:ee.interpolate({inputRange:[0,1],outputRange:e})}},[be.axis,se,Ce,j,ee]),Pe=useMemo(()=>Oe?[Oe]:[],[Oe]),Ie=useMemo(()=>{const e=H?.transform,t=Array.isArray(e)?[...Pe,...e]:Pe,o={...H,transform:t};return j?{...o,opacity:ee}:null==H?.opacity?{...o,opacity:1}:o},[Pe,H,j,ee]),[Ae,ke]=useState(0),we=useCallback(e=>ke(e.nativeEvent.layout.height),[]),xe=G||n,Te=!Z,ze=isRenderable(l)||isRenderable(s),We=useMemo(()=>{if(!ze)return null;const e=U.spacing.closeIconRight+U.spacing.closeIconSize,t=y&&h.startsWith("top-")?h.endsWith("right")?{paddingRight:e}:{paddingLeft:e}:void 0,o=(e,t,o)=>isRenderable(e)?isText(e)?React.createElement(Text,{style:t},e):React.createElement(View,{style:o},e):null;return React.createElement(View,{style:[S.header,t]},o(l,[S.title,q.title],q.titleWrap),o(s,[S.desc,q.desc],q.descWrap))},[y,h,s,q,ze,l,U.spacing.closeIconRight,U.spacing.closeIconSize]),Le=useMemo(()=>{if(!y)return null;const e=null!=g,t=h.includes("bottom")?{bottom:U.spacing.closeIconTop}:{top:U.spacing.closeIconTop+Ae},n="rtl"===o,i=h.endsWith("left")?n?{right:U.spacing.closeIconRight}:{left:U.spacing.closeIconRight}:n?{left:U.spacing.closeIconRight}:{right:U.spacing.closeIconRight};return React.createElement(Pressable,{style:[S.closeBase,q.closeBase,t,i,!e&&q.closeDef],hitSlop:8,onPress:pe},e?g:React.createElement(Cross,{size:22,fill:U.colors.closeIcon,color:U.colors.closeIcon}))},[g,h,y,q,pe,Ae,U.colors.closeIcon,U.spacing.closeIconRight,U.spacing.closeIconTop]),Ve=ze?React.createElement(React.Fragment,null,We,w):w;if(!xe)return null;const De=me??I,Fe=R?React.createElement(SafeAreaView,null,Ve):React.createElement(React.Fragment,null,v&&React.createElement(SafeAreaView,{edge:"top",onLayout:we,pointerEvents:"none"}),Ve,N&&React.createElement(SafeAreaView,{edge:"bottom",pointerEvents:"none"}));return React.createElement(Portal,null,React.createElement(View,{style:[S.root,De?{zIndex:De}:void 0],pointerEvents:"box-none"},React.createElement(View,{style:[S.ctr,be.container],pointerEvents:Z?"auto":"none",accessibilityViewIsModal:Z,accessibilityLiveRegion:"polite",onAccessibilityEscape:de},c&&Z?React.createElement(AnimatedPressable,_extends({testID:f,style:[S.ovl,{backgroundColor:U.colors.overlay,opacity:ee},u],renderToHardwareTextureAndroid:"android"===Platform.OS,shouldRasterizeIOS:"ios"===Platform.OS,pointerEvents:Z?"auto":"none"},$?{accessibilityRole:"button",accessibilityLabel:p,accessibilityHint:t?.vanPopup?.closeHint??"Double-tap to close"}:{accessible:!1},{onPress:ue})):null,!c&&C&&Z?React.createElement(View,{style:S.lock,pointerEvents:"auto",onStartShouldSetResponder:CAPTURE,onMoveShouldSetResponder:CAPTURE}):null,React.createElement(Animated.View,_extends({ref:fe},he,{onLayout:ge,renderToHardwareTextureAndroid:"android"===Platform.OS,shouldRasterizeIOS:"ios"===Platform.OS,style:[q.popup,j&&q.center,re&&S.popV,le&&q.side,CONTENT_SELF[B],Re,Ie,F,Te&&hiddenStyle]},M),Le,Fe))))},S=StyleSheet.create({root:{...StyleSheet.absoluteFillObject,justifyContent:"center"},ctr:{flex:1},ovl:{...StyleSheet.absoluteFillObject,opacity:0},header:{width:"100%"},title:{includeFontPadding:!1},desc:{includeFontPadding:!1},popV:{alignSelf:"stretch"},closeBase:{position:"absolute",zIndex:999,alignItems:"center",justifyContent:"center"},lock:{...StyleSheet.absoluteFillObject}});export const Popup=React.memo(PopupImpl);export default Popup;
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,useState}from"react";import{Animated,Platform,Pressable,StyleSheet,Text,View,useWindowDimensions}from"react-native";import{SafeAreaView}from"../safe-area-view";import{addPopStateListener,nativeDriverEnabled}from"../../platform";import{useReducedMotion}from"../../hooks/animation";import{createPlatformShadow}from"../../utils/createPlatformShadow";import{isRenderable,isText}from"../../utils/validate";import Cross from"react-native-system-icon/Cross";import Portal from"../portal/Portal";import{useAriaOverlay,useOverlayStack}from"../../hooks";import{useLocale}from"../config-provider/useLocale";import{useDirection}from"../config-provider/useDirection";import{usePopupTokens}from"./tokens";import{buildRadius,CAPTURE,CONTENT_SELF,EASE_IN,EASE_OUT,hiddenStyle,placementConfig}from"../../hooks/popup/utils";const AnimatedPressable=Animated.createAnimatedComponent(Pressable),PopupImpl=e=>{const t=useLocale(),o=useDirection(),{visible:n,placement:i,position:r,title:s,description:l,tokensOverride:a,overlay:c=!0,overlayStyle:u,overlayAccessibilityLabel:p=t?.vanPopup?.closeOverlay??"Close overlay",closeOnOverlayPress:d,closeOnClickOverlay:m,overlayTestID:f="popup-overlay",closeable:y=!1,closeIcon:g,closeIconPosition:h="top-right",round:b,safeArea:R=!1,safeAreaInsetTop:v=!1,safeAreaInsetBottom:E,lockScroll:C=!0,destroyOnClose:O=!1,duration:P=300,zIndex:I,closeOnBackPress:A=!1,closeOnPopstate:k=!1,children:w,beforeClose:x,onClickOverlay:T,onClose:z,onOpen:W,onOpened:L,onClosed:V,stopPropagation:D=!0,style:F,contentAnimationStyle:H,...M}=e,B=i??r??"center",_=m??d??!0,j="center"===B,N=E??!1,U=usePopupTokens(a),X=useReducedMotion(),Y=useRef({onOpened:L,onClosed:V,onOpen:W,onClose:z,beforeClose:x,onClickOverlay:T});Y.current={onOpened:L,onClosed:V,onOpen:W,onClose:z,beforeClose:x,onClickOverlay:T};const q=useMemo(()=>{const e=createPlatformShadow(U.shadow),{colors:t,spacing:o,typography:n,layout:i}=U;return{popup:{backgroundColor:t.background,padding:o.padding,...e},title:{color:t.title,fontFamily:n.fontFamily,fontSize:n.titleSize,fontWeight:n.titleWeight,marginHorizontal:o.descriptionHorizontal,textAlign:"center"},titleWrap:{marginTop:o.titleTop,marginBottom:o.titleBottom,marginHorizontal:o.descriptionHorizontal,alignItems:"center"},desc:{color:t.description,fontFamily:n.fontFamily,fontSize:n.descriptionSize,lineHeight:n.descriptionLineHeight},descWrap:{marginHorizontal:o.descriptionHorizontal,marginBottom:o.descriptionBottom},closeBase:{minWidth:o.closeIconSize,minHeight:o.closeIconSize,padding:o.closeIconPadding},closeDef:{width:o.closeIconSize,height:o.closeIconSize},side:{width:i.sideWidth,maxWidth:i.maxWidth},center:{minWidth:i.minWidth,maxWidth:i.centerMaxWidth}}},[U]),[G,J]=useState(n),[K,Q]=useState(n),Z=n||K,$=_&&(z||x),ee=useRef(new Animated.Value(0)).current,te=useRef(null),oe=useRef(0),ne=useRef(n),ie=useRef(!1),re="top"===B||"bottom"===B,se="left"===B||"right"===B,le="top"===B||"left"===B?-1:1,ae=useCallback((e,t)=>{oe.current+=1;const o=oe.current;te.current?.stop();const n=t?0:P,i=Animated.timing(ee,{toValue:e?1:0,duration:n,easing:e?EASE_OUT:EASE_IN,useNativeDriver:nativeDriverEnabled,isInteraction:!1});te.current=i,i.start(({finished:t})=>{t&&o===oe.current&&(e?Y.current.onOpened?.():(Q(!1),O&&J(!1),Y.current.onClosed?.()))})},[O,P,ee]);useEffect(()=>{n?(J(!0),Q(!0),ae(!0,X)):ne.current&&ae(!1,X)},[ae,n,X]),useEffect(()=>{n&&!ne.current&&Y.current.onOpen?.(),ne.current=n},[n]),useEffect(()=>()=>{te.current?.stop()},[]);const ce=useCallback(async e=>{if(!ie.current){ie.current=!0;try{if(Y.current.beforeClose){if(!1===await Y.current.beforeClose(e))return}Y.current.onClose?.()}finally{ie.current=!1}}},[]);useEffect(()=>{if(k)return addPopStateListener(()=>{n&&ce("close")})},[k,ce,n]);const ue=useCallback(()=>{Y.current.onClickOverlay?.(),_&&ce("overlay")},[ce,_]),pe=useCallback(()=>ce("close-icon"),[ce]),de=useCallback(()=>ce("close"),[ce]),{zIndex:me}=useOverlayStack({visible:Z,onClose:de,closeOnBack:A,lockScroll:C,zIndex:I,type:"popup"}),{overlayRef:fe,overlayProps:ye}=useAriaOverlay({isOpen:Z,onClose:()=>ce("overlay"),isDismissable:_,overlayProps:{..."android"===Platform.OS?{}:{accessibilityRole:"dialog"},accessibilityLiveRegion:"polite"}}),{onLayout:ge,...Se}=ye,he=useMemo(()=>D?{...Se,onStartShouldSetResponder:CAPTURE}:Se,[Se,D]),be=placementConfig[B],Re=buildRadius(b,B,U.radius.round),{width:ve,height:Ee}=useWindowDimensions(),Ce=se?ve:re?Ee:0,Oe=useMemo(()=>{if(j)return null;const e=[Ce*le,0];return"y"===be.axis?{translateY:ee.interpolate({inputRange:[0,1],outputRange:e})}:{translateX:ee.interpolate({inputRange:[0,1],outputRange:e})}},[be.axis,le,Ce,j,ee]),Pe=useMemo(()=>Oe?[Oe]:[],[Oe]),Ie=useMemo(()=>{const e=H?.transform,t=Array.isArray(e)?[...Pe,...e]:Pe,o={...H,transform:t};return j?{...o,opacity:ee}:null==H?.opacity?{...o,opacity:1}:o},[Pe,H,j,ee]),[Ae,ke]=useState(0),we=useCallback(e=>ke(e.nativeEvent.layout.height),[]),xe=G||n,Te=!Z,ze=isRenderable(s)||isRenderable(l),We=useMemo(()=>{if(!ze)return null;const e=U.spacing.closeIconRight+U.spacing.closeIconSize,t=y&&h.startsWith("top-")?h.endsWith("right")?{paddingRight:e}:{paddingLeft:e}:void 0,o=(e,t,o)=>isRenderable(e)?isText(e)?React.createElement(Text,{style:t},e):React.createElement(View,{style:o},e):null;return React.createElement(View,{style:[S.header,t]},o(s,[S.title,q.title],q.titleWrap),o(l,[S.desc,q.desc],q.descWrap))},[y,h,l,q,ze,s,U.spacing.closeIconRight,U.spacing.closeIconSize]),Le=useMemo(()=>{if(!y)return null;const e=null!=g,t=h.includes("bottom")?{bottom:U.spacing.closeIconTop}:{top:U.spacing.closeIconTop+Ae},n="rtl"===o,i=h.endsWith("left")?n?{right:U.spacing.closeIconRight}:{left:U.spacing.closeIconRight}:n?{left:U.spacing.closeIconRight}:{right:U.spacing.closeIconRight};return React.createElement(Pressable,{style:[S.closeBase,q.closeBase,t,i,!e&&q.closeDef],hitSlop:8,onPress:pe},e?g:React.createElement(Cross,{size:22,fill:U.colors.closeIcon,color:U.colors.closeIcon}))},[g,h,y,q,pe,Ae,U.colors.closeIcon,U.spacing.closeIconRight,U.spacing.closeIconTop]),Ve=ze?React.createElement(React.Fragment,null,We,w):w;if(!xe)return null;const De=me??I,Fe=R?React.createElement(SafeAreaView,null,Ve):React.createElement(React.Fragment,null,v&&React.createElement(SafeAreaView,{edge:"top",onLayout:we,pointerEvents:"none"}),Ve,N&&React.createElement(SafeAreaView,{edge:"bottom",pointerEvents:"none"}));return React.createElement(Portal,null,React.createElement(View,{style:[S.root,De?{zIndex:De}:void 0],pointerEvents:"box-none"},React.createElement(View,{style:[S.ctr,be.container],pointerEvents:Z?"auto":"none",accessibilityViewIsModal:Z,accessibilityLiveRegion:"polite",onAccessibilityEscape:de},c&&Z?React.createElement(AnimatedPressable,_extends({testID:f,style:[S.ovl,{backgroundColor:U.colors.overlay,opacity:ee},u],renderToHardwareTextureAndroid:"android"===Platform.OS,shouldRasterizeIOS:"ios"===Platform.OS,pointerEvents:Z?"auto":"none"},$?{accessibilityRole:"button",accessibilityLabel:p,accessibilityHint:t?.vanPopup?.closeHint??"Double-tap to close"}:{accessible:!1},{onPress:ue})):null,!c&&C&&Z?React.createElement(View,{style:S.lock,pointerEvents:"auto",onStartShouldSetResponder:CAPTURE,onMoveShouldSetResponder:CAPTURE}):null,React.createElement(Animated.View,_extends({ref:fe},he,{onLayout:ge,renderToHardwareTextureAndroid:"android"===Platform.OS,shouldRasterizeIOS:"ios"===Platform.OS,style:[q.popup,j&&q.center,re&&S.popV,se&&q.side,CONTENT_SELF[B],Re,Ie,F,Te&&hiddenStyle]},M),Le,Fe))))},S=StyleSheet.create({root:{...StyleSheet.absoluteFillObject,justifyContent:"center"},ctr:{flex:1},ovl:{...StyleSheet.absoluteFillObject,opacity:0},header:{width:"100%"},title:{includeFontPadding:!1},desc:{includeFontPadding:!1},popV:{alignSelf:"stretch"},closeBase:{position:"absolute",zIndex:999,alignItems:"center",justifyContent:"center"},lock:{...StyleSheet.absoluteFillObject}});export const Popup=React.memo(PopupImpl);export default Popup;
@@ -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 r in a)({}).hasOwnProperty.call(a,r)&&(e[r]=a[r])}return e},_extends.apply(null,arguments)}import React,{useCallback,useImperativeHandle,useRef}from"react";import{Pressable,StyleSheet,Text,View}from"react-native";import{Search as SearchIcon}from"react-native-system-icon";import{useAriaPress,useControllableValue}from"../../hooks";import{isText}from"../../utils/validate";import{useLocale}from"../config-provider/useLocale";import Field from"../field";import{useSearchTokens}from"./tokens";const SearchComponent=(e,t)=>{const a=useLocale(),{tokensOverride:r,label:n,action:c,actionText:o,showAction:i=!1,shape:l,background:s,style:u,fieldStyle:d,fieldContentStyle:p,clearTrigger:g,clearable:f=!0,leftIcon:m,rightIcon:h,errorMessage:y,onSearch:b,onCancel:R,onChangeText:x,onSubmitEditing:V,returnKeyType:w,inputStyle:C,align:T,inputAlign:k,...E}=e,v=useSearchTokens(r),I=l??v.defaults.shape,[P,z]=useControllableValue(e,{defaultValue:""}),H=P??"",L=T??k,A=useRef(x),F=useRef(R),G=useRef(b),_=useRef(V),O=useRef(H);A.current=x,F.current=R,G.current=b,_.current=V,O.current=H;const W=useCallback(e=>{z(e),A.current?.(e)},[z]),j=useCallback(()=>{W(""),F.current?.()},[W]),D=useCallback(e=>{G.current?.(O.current),_.current?.(e)},[]),K=s??v.colors.background,M=m??React.createElement(SearchIcon,{size:v.icon.size,fill:v.colors.icon,color:v.colors.icon}),q=g??v.defaults.clearTrigger,B=w??"search",N=!!c||i,J=React.isValidElement(o),Q=N&&!c&&!J,U="round"===I?v.radius.round:v.radius.square,X=useRef(null);useImperativeHandle(t,()=>({focus:()=>X.current?.focus(),blur:()=>X.current?.blur(),clear:()=>W("")}),[W]);const Y=useAriaPress({disabled:!Q,onPress:j,extraProps:{accessibilityRole:"button",testID:"rnsu-search-action"}}),Z=[S.ctr,{paddingHorizontal:v.spacing.paddingHorizontal,paddingVertical:v.spacing.paddingVertical,backgroundColor:K},u],$=[S.cnt,{borderRadius:U,paddingHorizontal:v.spacing.contentPaddingHorizontal,paddingVertical:v.spacing.contentPaddingVertical,backgroundColor:v.colors.contentBackground}],ee=n?isText(n)?React.createElement(Text,{style:{marginRight:v.spacing.labelGap,color:v.colors.label,fontSize:v.typography.label,fontWeight:v.typography.labelWeight}},n):React.createElement(View,{style:{marginRight:v.spacing.labelGap}},n):null,te=c?React.createElement(View,{style:[S.act,{marginLeft:v.spacing.actionGap}]},c):N?J?React.createElement(View,{style:[S.act,{marginLeft:v.spacing.actionGap}]},o):React.createElement(Pressable,_extends({style:[S.act,{marginLeft:v.spacing.actionGap,opacity:Y.states.pressed?v.opacity.actionPressed:1}]},Y.interactionProps),React.createElement(Text,{style:{color:v.colors.action,fontSize:v.typography.action,fontWeight:v.typography.actionWeight}},o??a.cancel)):null;return React.createElement(View,{style:Z},React.createElement(View,{style:$},ee,React.createElement(View,{style:S.field},React.createElement(Field,_extends({ref:X,type:"search",value:H,onChangeText:W,clearable:f,clearTrigger:q,leftIcon:M,rightIcon:h,center:!y,errorMessage:y,inputAlign:L,border:!1,style:[{paddingHorizontal:v.spacing.none,paddingVertical:v.spacing.none},d],contentStyle:[{paddingVertical:v.spacing.none},p],inputStyle:[{paddingVertical:v.spacing.none},C],onSubmitEditing:D,returnKeyType:B},E)))),te)},SearchForwardRef=React.forwardRef(SearchComponent);SearchForwardRef.displayName="Search";export const Search=React.memo(SearchForwardRef);const S=StyleSheet.create({ctr:{flexDirection:"row",alignItems:"center"},cnt:{flex:1,flexDirection:"row",alignItems:"center"},field:{flex:1},act:{justifyContent:"center"}});export default Search;
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 r in a)({}).hasOwnProperty.call(a,r)&&(e[r]=a[r])}return e},_extends.apply(null,arguments)}import React,{useCallback,useImperativeHandle,useRef}from"react";import{Pressable,StyleSheet,Text,View}from"react-native";import SearchIcon from"react-native-system-icon/Search";import{useAriaPress,useControllableValue}from"../../hooks";import{isText}from"../../utils/validate";import{useLocale}from"../config-provider/useLocale";import Field from"../field";import{useSearchTokens}from"./tokens";const SearchComponent=(e,t)=>{const a=useLocale(),{tokensOverride:r,label:n,action:c,actionText:o,showAction:i=!1,shape:l,background:s,style:u,fieldStyle:d,fieldContentStyle:p,clearTrigger:g,clearable:f=!0,leftIcon:m,rightIcon:h,errorMessage:y,onSearch:b,onCancel:R,onChangeText:x,onSubmitEditing:V,returnKeyType:w,inputStyle:C,align:T,inputAlign:k,...E}=e,v=useSearchTokens(r),I=l??v.defaults.shape,[P,z]=useControllableValue(e,{defaultValue:""}),H=P??"",L=T??k,A=useRef(x),F=useRef(R),G=useRef(b),_=useRef(V),O=useRef(H);A.current=x,F.current=R,G.current=b,_.current=V,O.current=H;const W=useCallback(e=>{z(e),A.current?.(e)},[z]),j=useCallback(()=>{W(""),F.current?.()},[W]),D=useCallback(e=>{G.current?.(O.current),_.current?.(e)},[]),K=s??v.colors.background,M=m??React.createElement(SearchIcon,{size:v.icon.size,fill:v.colors.icon,color:v.colors.icon}),q=g??v.defaults.clearTrigger,B=w??"search",N=!!c||i,J=React.isValidElement(o),Q=N&&!c&&!J,U="round"===I?v.radius.round:v.radius.square,X=useRef(null);useImperativeHandle(t,()=>({focus:()=>X.current?.focus(),blur:()=>X.current?.blur(),clear:()=>W("")}),[W]);const Y=useAriaPress({disabled:!Q,onPress:j,extraProps:{accessibilityRole:"button",testID:"rnsu-search-action"}}),Z=[S.ctr,{paddingHorizontal:v.spacing.paddingHorizontal,paddingVertical:v.spacing.paddingVertical,backgroundColor:K},u],$=[S.cnt,{borderRadius:U,paddingHorizontal:v.spacing.contentPaddingHorizontal,paddingVertical:v.spacing.contentPaddingVertical,backgroundColor:v.colors.contentBackground}],ee=n?isText(n)?React.createElement(Text,{style:{marginRight:v.spacing.labelGap,color:v.colors.label,fontSize:v.typography.label,fontWeight:v.typography.labelWeight}},n):React.createElement(View,{style:{marginRight:v.spacing.labelGap}},n):null,te=c?React.createElement(View,{style:[S.act,{marginLeft:v.spacing.actionGap}]},c):N?J?React.createElement(View,{style:[S.act,{marginLeft:v.spacing.actionGap}]},o):React.createElement(Pressable,_extends({style:[S.act,{marginLeft:v.spacing.actionGap,opacity:Y.states.pressed?v.opacity.actionPressed:1}]},Y.interactionProps),React.createElement(Text,{style:{color:v.colors.action,fontSize:v.typography.action,fontWeight:v.typography.actionWeight}},o??a.cancel)):null;return React.createElement(View,{style:Z},React.createElement(View,{style:$},ee,React.createElement(View,{style:S.field},React.createElement(Field,_extends({ref:X,type:"search",value:H,onChangeText:W,clearable:f,clearTrigger:q,leftIcon:M,rightIcon:h,center:!y,errorMessage:y,inputAlign:L,border:!1,style:[{paddingHorizontal:v.spacing.none,paddingVertical:v.spacing.none},d],contentStyle:[{paddingVertical:v.spacing.none},p],inputStyle:[{paddingVertical:v.spacing.none},C],onSubmitEditing:D,returnKeyType:B},E)))),te)},SearchForwardRef=React.forwardRef(SearchComponent);SearchForwardRef.displayName="Search";export const Search=React.memo(SearchForwardRef);const S=StyleSheet.create({ctr:{flexDirection:"row",alignItems:"center"},cnt:{flex:1,flexDirection:"row",alignItems:"center"},field:{flex:1},act:{justifyContent:"center"}});export default Search;
@@ -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 from"react";import{Pressable,View}from"react-native";import{Close}from"react-native-system-icon";import{createHairlineView,isFunction,renderTextOrNode}from"../../utils";import{isRenderable}from"../../utils/validate";import{useDirection}from"../config-provider/useDirection";import{useTagTokens}from"./tokens";const TagImpl=e=>{const{tokensOverride:t,children:o,type:r,size:i,plain:a,round:n,mark:s,color:l,textColor:d,show:c,closeable:u,closeIcon:p,onClose:g,onPress:m,textStyle:f,style:b,...R}=e,y=useTagTokens(t),h=useDirection(),k=r??y.defaults.type,T=i??y.defaults.size,z=a??y.defaults.plain,x=n??y.defaults.round,L=s??y.defaults.mark;if(!(c??y.defaults.show))return null;const v=y.colors.toneMap[k]??y.colors.toneMap.default,w=y.sizing.sizes[T],P=z?y.colors.plainBackground:l??v.background,H=d??(z?l??v.background:v.text),O=z?l??v.background:"transparent",S=x?y.radii.round:w.borderRadius,V=L?"rtl"===h?{borderTopRightRadius:y.radii.markLeading,borderBottomRightRadius:y.radii.markLeading,borderTopLeftRadius:y.radii.round,borderBottomLeftRadius:y.radii.round}:{borderTopLeftRadius:y.radii.markLeading,borderBottomLeftRadius:y.radii.markLeading,borderTopRightRadius:y.radii.round,borderBottomRightRadius:y.radii.round}:null,B=L?y.radii.round:S,E=[y.layout.container,{backgroundColor:P,paddingHorizontal:w.paddingHorizontal,paddingVertical:w.paddingVertical,borderRadius:S},V,b],C=isRenderable(o)?renderTextOrNode(o,[{color:H,fontSize:w.fontSize,lineHeight:w.lineHeight,fontFamily:y.typography.fontFamily,fontWeight:y.typography.fontWeight},f].filter(Boolean)):null,F=u&&React.createElement(Pressable,{accessibilityRole:"button",hitSlop:y.spacing.closeHitSlop,style:[y.layout.close,{marginLeft:y.spacing.closeGap}],onPress:e=>{e.stopPropagation?.(),g?.()}},isFunction(p)?p(H,y.sizing.closeIconSize):p??React.createElement(Close,{color:H,size:y.sizing.closeIconSize})),I=z?React.createElement(View,{style:createHairlineView({position:"all",color:O,borderRadius:B})}):null,_=React.createElement(React.Fragment,null,C,F,I);return m?React.createElement(Pressable,_extends({accessibilityRole:"button",onPress:m,style:({pressed:e})=>[E,e&&{opacity:y.defaults.pressedOpacity}]},R),_):React.createElement(View,_extends({style:E},R),_)};export const Tag=React.memo(TagImpl);Tag.displayName="Tag";
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 from"react";import{Pressable,View}from"react-native";import Close from"react-native-system-icon/Close";import{createHairlineView,isFunction,renderTextOrNode}from"../../utils";import{isRenderable}from"../../utils/validate";import{useDirection}from"../config-provider/useDirection";import{useTagTokens}from"./tokens";const TagImpl=e=>{const{tokensOverride:t,children:o,type:r,size:i,plain:a,round:n,mark:s,color:l,textColor:d,show:c,closeable:u,closeIcon:p,onClose:g,onPress:m,textStyle:f,style:b,...R}=e,y=useTagTokens(t),h=useDirection(),k=r??y.defaults.type,T=i??y.defaults.size,z=a??y.defaults.plain,x=n??y.defaults.round,L=s??y.defaults.mark;if(!(c??y.defaults.show))return null;const v=y.colors.toneMap[k]??y.colors.toneMap.default,w=y.sizing.sizes[T],P=z?y.colors.plainBackground:l??v.background,H=d??(z?l??v.background:v.text),O=z?l??v.background:"transparent",S=x?y.radii.round:w.borderRadius,V=L?"rtl"===h?{borderTopRightRadius:y.radii.markLeading,borderBottomRightRadius:y.radii.markLeading,borderTopLeftRadius:y.radii.round,borderBottomLeftRadius:y.radii.round}:{borderTopLeftRadius:y.radii.markLeading,borderBottomLeftRadius:y.radii.markLeading,borderTopRightRadius:y.radii.round,borderBottomRightRadius:y.radii.round}:null,B=L?y.radii.round:S,C=[y.layout.container,{backgroundColor:P,paddingHorizontal:w.paddingHorizontal,paddingVertical:w.paddingVertical,borderRadius:S},V,b],E=isRenderable(o)?renderTextOrNode(o,[{color:H,fontSize:w.fontSize,lineHeight:w.lineHeight,fontFamily:y.typography.fontFamily,fontWeight:y.typography.fontWeight},f].filter(Boolean)):null,F=u&&React.createElement(Pressable,{accessibilityRole:"button",hitSlop:y.spacing.closeHitSlop,style:[y.layout.close,{marginLeft:y.spacing.closeGap}],onPress:e=>{e.stopPropagation?.(),g?.()}},isFunction(p)?p(H,y.sizing.closeIconSize):p??React.createElement(Close,{color:H,size:y.sizing.closeIconSize})),I=z?React.createElement(View,{style:createHairlineView({position:"all",color:O,borderRadius:B})}):null,_=React.createElement(React.Fragment,null,E,F,I);return m?React.createElement(Pressable,_extends({accessibilityRole:"button",onPress:m,style:({pressed:e})=>[C,e&&{opacity:y.defaults.pressedOpacity}]},R),_):React.createElement(View,_extends({style:C},R),_)};export const Tag=React.memo(TagImpl);Tag.displayName="Tag";
@@ -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,{useEffect,useMemo,useRef,useState}from"react";import{AccessibilityInfo,Animated,Easing,Pressable,StyleSheet,View,useWindowDimensions}from"react-native";import Portal from"../portal/Portal";import{SafeAreaView}from"../safe-area-view";import{useAriaPress,useOverlayStack}from"../../hooks";import Loading from"../loading";import{Checked,Close}from"react-native-system-icon";import{isFiniteNumber,isText,isRenderable}from"../../utils/validate";import{renderTextOrNode}from"../../utils";import{nativeDriverEnabled}from"../../platform";import{useReducedMotion}from"../../hooks/animation";import{useLocale}from"../config-provider/useLocale";import{useToastTokens}from"./tokens";const RT=()=>!0,ToastContentImpl=e=>{const{visible:t,message:n,icon:o,type:r="info",iconSize:i,duration:s=2e3,position:a="middle",forbidClick:c=!1,overlay:l=!1,overlayStyle:u,closeOnClickOverlay:d=!1,closeOnClick:m=!1,loadingIndicator:f,safeAreaInsetTop:p,safeAreaInsetBottom:g,tokensOverride:v,style:x,textStyle:b,onClose:R,onOpen:y,onOpened:h,onClosed:E}=e,T=useLocale(),C=useToastTokens(v),O=useReducedMotion(),{colors:w}=C,{height:I}=useWindowDimensions(),P=isFiniteNumber(s)?Math.max(0,s):0,[k,z]=useState(t),A=useRef(new Animated.Value(t?1:0)).current,M=useRef(null),V=useRef(0),H=useRef(R);H.current=R;const D=useRef(y);D.current=y;const W=useRef(h);W.current=h;const j=useRef(E);j.current=E;const{zIndex:F}=useOverlayStack({visible:k,type:"toast"}),N=useRef(t),L=useRef(!1),_=I>0?Math.round(I*C.positionOffsetRatio):C.positionOffsetMin,B=void 0!==p?p:"top"===a,q=void 0!==g?g:"bottom"===a,G=useMemo(()=>"top"===a?{justifyContent:"flex-start",paddingTop:_}:"bottom"===a?{justifyContent:"flex-end",paddingBottom:_}:{justifyContent:"center"},[a,_]);useEffect(()=>{V.current+=1;const e=V.current;M.current?.stop();const n=O?0:C.animationDuration;t?(z(!0),M.current=Animated.timing(A,{toValue:1,duration:n,easing:Easing.out(Easing.cubic),useNativeDriver:nativeDriverEnabled,isInteraction:!1}),M.current.start()):(M.current=Animated.timing(A,{toValue:0,duration:n,easing:Easing.out(Easing.cubic),useNativeDriver:nativeDriverEnabled,isInteraction:!1}),M.current.start(({finished:t})=>{t&&e===V.current&&z(!1)}))},[A,O,C.animationDuration,t]),useEffect(()=>()=>{M.current?.stop()},[]),useEffect(()=>{if(!t||P<=0)return;const e=setTimeout(()=>{H.current?.()},P);return()=>clearTimeout(e)},[P,t]),useEffect(()=>{if(!t||!isText(n))return;const e=String(n);e&&AccessibilityInfo.announceForAccessibility?.(e)},[n,t]);const J=O?0:C.animationDuration;useEffect(()=>{let e=null;return t?(L.current=!1,!N.current&&(D.current?.(),W.current&&(e=setTimeout(W.current,J)))):N.current&&(L.current=!0),N.current=t,()=>{e&&clearTimeout(e)}},[J,t]),useEffect(()=>{!k&&L.current&&(L.current=!1,j.current?.())},[k]);const K=useRef(()=>H.current?.()).current,Q=useAriaPress({disabled:!m,onPress:K,extraProps:{accessibilityRole:m?"button":"alert",accessibilityHint:m?T?.vanToast?.closeHint??"Double-tap to dismiss":void 0,accessibilityLiveRegion:"assertive"}}),U=useMemo(()=>{if(o)return o;const e=i??C.iconSize;switch(r){case"success":return React.createElement(Checked,{size:e,fill:w.text,color:w.text});case"fail":return React.createElement(Close,{size:e,fill:w.text,color:w.text});case"loading":return f??React.createElement(Loading,{color:w.text,size:e});default:return null}},[w.text,o,i,f,C.iconSize,r]),X=useMemo(()=>({marginBottom:C.gap}),[C.gap]),Y=useMemo(()=>({color:w.text,fontSize:C.fontSize,lineHeight:C.lineHeight,fontFamily:C.fontFamily}),[w.text,C.fontSize,C.fontFamily,C.lineHeight]),Z="info"===r&&!U,$=useMemo(()=>Z?{minWidth:C.textMinWidth,minHeight:0,paddingVertical:C.textPaddingVertical,paddingHorizontal:C.textPaddingHorizontal}:{minWidth:C.defaultWidth,minHeight:C.defaultMinHeight,padding:C.defaultPadding},[Z,C.defaultMinHeight,C.defaultPadding,C.defaultWidth,C.textMinWidth,C.textPaddingHorizontal,C.textPaddingVertical]),ee=useMemo(()=>({borderRadius:C.radius,opacity:m&&Q.states.pressed?C.pressedOpacity:A,backgroundColor:C.colors.variants[r],maxWidth:C.maxWidth,...$}),[A,$,m,Q.states.pressed,C.colors.variants,C.maxWidth,C.pressedOpacity,C.radius,r]);if(!k)return null;const te=isRenderable(n)&&("string"!=typeof n||""!==n);return React.createElement(View,{style:[S.b,{backgroundColor:C.colors.transparent},G,F?{zIndex:F}:void 0],pointerEvents:c||l||m?"auto":"none"},(l||c)&&React.createElement(Pressable,{testID:"rv-toast-overlay",style:[S.o,{backgroundColor:C.colors.transparent},l&&{backgroundColor:w.backdrop},u],pointerEvents:"auto",onPress:l&&d?K:void 0,onStartShouldSetResponder:RT,onMoveShouldSetResponder:RT}),B&&React.createElement(SafeAreaView,{edge:"top",pointerEvents:"none"}),React.createElement(Pressable,_extends({disabled:!m},Q.interactionProps,{style:S.pw}),React.createElement(Animated.View,{renderToHardwareTextureAndroid:!0,shouldRasterizeIOS:!0,style:[S.t,ee,x]},U&&React.createElement(View,{style:X},isText(U)?renderTextOrNode(U,[{color:w.text,fontSize:C.iconSize}]):U),te&&(isText(n)?renderTextOrNode(n,[S.m,Y,b]):React.createElement(View,{style:S.mw},n)))),q&&React.createElement(SafeAreaView,{edge:"bottom",pointerEvents:"none"}))};export const ToastContent=React.memo(ToastContentImpl);const ToastImpl=e=>React.createElement(Portal,null,React.createElement(ToastContent,e));export const Toast=React.memo(ToastImpl);const S=StyleSheet.create({b:{flex:1,alignItems:"center"},o:{...StyleSheet.absoluteFillObject},pw:{alignItems:"center"},t:{alignItems:"center",justifyContent:"center"},m:{textAlign:"center"},mw:{alignItems:"center"}});export default Toast;
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,{useEffect,useMemo,useRef,useState}from"react";import{AccessibilityInfo,Animated,Easing,Pressable,StyleSheet,View,useWindowDimensions}from"react-native";import Portal from"../portal/Portal";import{SafeAreaView}from"../safe-area-view";import{useAriaPress,useOverlayStack}from"../../hooks";import Loading from"../loading";import Checked from"react-native-system-icon/Checked";import Close from"react-native-system-icon/Close";import{isFiniteNumber,isText,isRenderable}from"../../utils/validate";import{renderTextOrNode}from"../../utils";import{nativeDriverEnabled}from"../../platform";import{useReducedMotion}from"../../hooks/animation";import{useLocale}from"../config-provider/useLocale";import{useToastTokens}from"./tokens";const RT=()=>!0,ToastContentImpl=e=>{const{visible:t,message:n,icon:o,type:r="info",iconSize:i,duration:s=2e3,position:a="middle",forbidClick:c=!1,overlay:l=!1,overlayStyle:u,closeOnClickOverlay:d=!1,closeOnClick:m=!1,loadingIndicator:f,safeAreaInsetTop:p,safeAreaInsetBottom:g,tokensOverride:v,style:x,textStyle:b,onClose:y,onOpen:R,onOpened:h,onClosed:E}=e,T=useLocale(),C=useToastTokens(v),O=useReducedMotion(),{colors:k}=C,{height:w}=useWindowDimensions(),I=isFiniteNumber(s)?Math.max(0,s):0,[P,z]=useState(t),A=useRef(new Animated.Value(t?1:0)).current,M=useRef(null),V=useRef(0),H=useRef(y);H.current=y;const D=useRef(R);D.current=R;const W=useRef(h);W.current=h;const j=useRef(E);j.current=E;const{zIndex:F}=useOverlayStack({visible:P,type:"toast"}),N=useRef(t),L=useRef(!1),_=w>0?Math.round(w*C.positionOffsetRatio):C.positionOffsetMin,B=void 0!==p?p:"top"===a,q=void 0!==g?g:"bottom"===a,G=useMemo(()=>"top"===a?{justifyContent:"flex-start",paddingTop:_}:"bottom"===a?{justifyContent:"flex-end",paddingBottom:_}:{justifyContent:"center"},[a,_]);useEffect(()=>{V.current+=1;const e=V.current;M.current?.stop();const n=O?0:C.animationDuration;t?(z(!0),M.current=Animated.timing(A,{toValue:1,duration:n,easing:Easing.out(Easing.cubic),useNativeDriver:nativeDriverEnabled,isInteraction:!1}),M.current.start()):(M.current=Animated.timing(A,{toValue:0,duration:n,easing:Easing.out(Easing.cubic),useNativeDriver:nativeDriverEnabled,isInteraction:!1}),M.current.start(({finished:t})=>{t&&e===V.current&&z(!1)}))},[A,O,C.animationDuration,t]),useEffect(()=>()=>{M.current?.stop()},[]),useEffect(()=>{if(!t||I<=0)return;const e=setTimeout(()=>{H.current?.()},I);return()=>clearTimeout(e)},[I,t]),useEffect(()=>{if(!t||!isText(n))return;const e=String(n);e&&AccessibilityInfo.announceForAccessibility?.(e)},[n,t]);const J=O?0:C.animationDuration;useEffect(()=>{let e=null;return t?(L.current=!1,!N.current&&(D.current?.(),W.current&&(e=setTimeout(W.current,J)))):N.current&&(L.current=!0),N.current=t,()=>{e&&clearTimeout(e)}},[J,t]),useEffect(()=>{!P&&L.current&&(L.current=!1,j.current?.())},[P]);const K=useRef(()=>H.current?.()).current,Q=useAriaPress({disabled:!m,onPress:K,extraProps:{accessibilityRole:m?"button":"alert",accessibilityHint:m?T?.vanToast?.closeHint??"Double-tap to dismiss":void 0,accessibilityLiveRegion:"assertive"}}),U=useMemo(()=>{if(o)return o;const e=i??C.iconSize;switch(r){case"success":return React.createElement(Checked,{size:e,fill:k.text,color:k.text});case"fail":return React.createElement(Close,{size:e,fill:k.text,color:k.text});case"loading":return f??React.createElement(Loading,{color:k.text,size:e});default:return null}},[k.text,o,i,f,C.iconSize,r]),X=useMemo(()=>({marginBottom:C.gap}),[C.gap]),Y=useMemo(()=>({color:k.text,fontSize:C.fontSize,lineHeight:C.lineHeight,fontFamily:C.fontFamily}),[k.text,C.fontSize,C.fontFamily,C.lineHeight]),Z="info"===r&&!U,$=useMemo(()=>Z?{minWidth:C.textMinWidth,minHeight:0,paddingVertical:C.textPaddingVertical,paddingHorizontal:C.textPaddingHorizontal}:{minWidth:C.defaultWidth,minHeight:C.defaultMinHeight,padding:C.defaultPadding},[Z,C.defaultMinHeight,C.defaultPadding,C.defaultWidth,C.textMinWidth,C.textPaddingHorizontal,C.textPaddingVertical]),ee=useMemo(()=>({borderRadius:C.radius,opacity:m&&Q.states.pressed?C.pressedOpacity:A,backgroundColor:C.colors.variants[r],maxWidth:C.maxWidth,...$}),[A,$,m,Q.states.pressed,C.colors.variants,C.maxWidth,C.pressedOpacity,C.radius,r]);if(!P)return null;const te=isRenderable(n)&&("string"!=typeof n||""!==n);return React.createElement(View,{style:[S.b,{backgroundColor:C.colors.transparent},G,F?{zIndex:F}:void 0],pointerEvents:c||l||m?"auto":"none"},(l||c)&&React.createElement(Pressable,{testID:"rv-toast-overlay",style:[S.o,{backgroundColor:C.colors.transparent},l&&{backgroundColor:k.backdrop},u],pointerEvents:"auto",onPress:l&&d?K:void 0,onStartShouldSetResponder:RT,onMoveShouldSetResponder:RT}),B&&React.createElement(SafeAreaView,{edge:"top",pointerEvents:"none"}),React.createElement(Pressable,_extends({disabled:!m},Q.interactionProps,{style:S.pw}),React.createElement(Animated.View,{renderToHardwareTextureAndroid:!0,shouldRasterizeIOS:!0,style:[S.t,ee,x]},U&&React.createElement(View,{style:X},isText(U)?renderTextOrNode(U,[{color:k.text,fontSize:C.iconSize}]):U),te&&(isText(n)?renderTextOrNode(n,[S.m,Y,b]):React.createElement(View,{style:S.mw},n)))),q&&React.createElement(SafeAreaView,{edge:"bottom",pointerEvents:"none"}))};export const ToastContent=React.memo(ToastContentImpl);const ToastImpl=e=>React.createElement(Portal,null,React.createElement(ToastContent,e));export const Toast=React.memo(ToastImpl);const S=StyleSheet.create({b:{flex:1,alignItems:"center"},o:{...StyleSheet.absoluteFillObject},pw:{alignItems:"center"},t:{alignItems:"center",justifyContent:"center"},m:{textAlign:"center"},mw:{alignItems:"center"}});export default Toast;
@@ -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 from"react";import{Platform,Pressable,TextInput,View}from"react-native";import{Clear}from"react-native-system-icon";import{isText}from"../../utils/validate";export const alignMap={left:"flex-start",center:"center",right:"flex-end"};export const mapKeyboardType=e=>{switch(e){case"number":return"decimal-pad";case"digit":return"number-pad";case"tel":return"phone-pad";default:return}};export const FieldSlot=({onPress:e,style:t,children:o,accessibilityRole:n="button"})=>o?e?React.createElement(Pressable,{onPress:e,accessibilityRole:n,style:t},o):React.createElement(View,{style:t},o):null;export const FieldClearButton=({show:e,tokens:t,clearIcon:o,onPressIn:n,onPressOut:r,onPress:l})=>{if(!e)return null;const i="web"===Platform.OS?{onMouseDown:e=>{e.preventDefault?.(),e.stopPropagation?.()}}:void 0;return React.createElement(Pressable,_extends({style:[t.layout.clearIcon,{paddingHorizontal:t.spacing.rightIconGap}]},i,{onPressIn:n,onPressOut:r,onPress:l,accessibilityRole:"button"}),React.isValidElement(o)?o:React.createElement(Clear,{size:t.sizes.clearIcon,fill:t.colors.clear,color:t.colors.clear}))};export const FieldInput=({inputRef:e,tokens:t,isTextarea:o,disabled:n,error:r,finalTextAlign:l,lineHeight:i,textareaHeight:s,minHeight:a,inputStyle:c,value:u,onChangeText:d,onFocus:p,onBlur:y,onPressIn:g,rows:m,placeholderTextColor:x,keyboardType:f,onContentSizeChange:h,describedBy:b,secureTextEntry:P,editable:T,restInputProps:R})=>{const v=[o?t.layout.textarea:t.layout.input,{color:n?t.colors.disabled:r?t.colors.error:t.colors.input,fontSize:t.typography.inputSize,textAlign:l,...o?{lineHeight:i,height:s,minHeight:a}:{minHeight:t.sizes.controlMinHeight}},c];return React.createElement(TextInput,_extends({ref:e,style:v,value:u,onChangeText:d,onFocus:p,onBlur:y,onPressIn:g,editable:T,secureTextEntry:P,multiline:o,numberOfLines:o?m:void 0,keyboardType:f,placeholderTextColor:x,onContentSizeChange:o?h:void 0},b?{accessibilityDescribedBy:b}:null,{clearButtonMode:"never"},R))};export const FieldControlRow=({tokens:e,prefixNode:t,leftIconNode:o,controlNode:n,clearNode:r,rightIconNode:l,suffixNode:i})=>React.createElement(View,{style:e.layout.body},t,o,React.createElement(View,{style:[e.layout.controlWrapper,{minHeight:e.sizes.controlMinHeight}]},n,r),l,i);export const resolveTooltipDialog=(e,t)=>{if(!React.isValidElement(e)&&!isText(e)){const{icon:o,...n}=e;return{icon:o??t,dialogProps:n}}return{icon:t,dialogProps:{message:e}}};
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 from"react";import{Platform,Pressable,TextInput,View}from"react-native";import Clear from"react-native-system-icon/Clear";import{isText}from"../../utils/validate";export const alignMap={left:"flex-start",center:"center",right:"flex-end"};export const mapKeyboardType=e=>{switch(e){case"number":return"decimal-pad";case"digit":return"number-pad";case"tel":return"phone-pad";default:return}};export const FieldSlot=({onPress:e,style:t,children:o,accessibilityRole:n="button"})=>o?e?React.createElement(Pressable,{onPress:e,accessibilityRole:n,style:t},o):React.createElement(View,{style:t},o):null;export const FieldClearButton=({show:e,tokens:t,clearIcon:o,onPressIn:n,onPressOut:r,onPress:l})=>{if(!e)return null;const i="web"===Platform.OS?{onMouseDown:e=>{e.preventDefault?.(),e.stopPropagation?.()}}:void 0;return React.createElement(Pressable,_extends({style:[t.layout.clearIcon,{paddingHorizontal:t.spacing.rightIconGap}]},i,{onPressIn:n,onPressOut:r,onPress:l,accessibilityRole:"button"}),React.isValidElement(o)?o:React.createElement(Clear,{size:t.sizes.clearIcon,fill:t.colors.clear,color:t.colors.clear}))};export const FieldInput=({inputRef:e,tokens:t,isTextarea:o,disabled:n,error:r,finalTextAlign:l,lineHeight:i,textareaHeight:s,minHeight:a,inputStyle:c,value:u,onChangeText:d,onFocus:p,onBlur:y,onPressIn:g,rows:m,placeholderTextColor:x,keyboardType:f,onContentSizeChange:h,describedBy:b,secureTextEntry:P,editable:T,restInputProps:R})=>{const v=[o?t.layout.textarea:t.layout.input,{color:n?t.colors.disabled:r?t.colors.error:t.colors.input,fontSize:t.typography.inputSize,textAlign:l,...o?{lineHeight:i,height:s,minHeight:a}:{minHeight:t.sizes.controlMinHeight}},c];return React.createElement(TextInput,_extends({ref:e,style:v,value:u,onChangeText:d,onFocus:p,onBlur:y,onPressIn:g,editable:T,secureTextEntry:P,multiline:o,numberOfLines:o?m:void 0,keyboardType:f,placeholderTextColor:x,onContentSizeChange:o?h:void 0},b?{accessibilityDescribedBy:b}:null,{clearButtonMode:"never"},R))};export const FieldControlRow=({tokens:e,prefixNode:t,leftIconNode:o,controlNode:n,clearNode:r,rightIconNode:l,suffixNode:i})=>React.createElement(View,{style:e.layout.body},t,o,React.createElement(View,{style:[e.layout.controlWrapper,{minHeight:e.sizes.controlMinHeight}]},n,r),l,i);export const resolveTooltipDialog=(e,t)=>{if(!React.isValidElement(e)&&!isText(e)){const{icon:o,...n}=e;return{icon:o??t,dialogProps:n}}return{icon:t,dialogProps:{message:e}}};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-system-ui",
3
- "version": "1.0.8",
3
+ "version": "1.0.9",
4
4
  "description": "面向 React Native 的设计系统级组件库,Tokens + ThemeProvider 主题体系,按需引入、体积小;API 统一可组合、高效可靠,支持可访问性与多端一致。",
5
5
  "homepage": "https://rn-system-ui.netlify.app/",
6
6
  "main": "./dist/cjs/index.js",
@@ -41,7 +41,6 @@
41
41
  "license": "ISC",
42
42
  "peerDependencies": {
43
43
  "react": ">=18.2.0",
44
- "react-dom": ">=18.2.0",
45
44
  "react-native": ">=0.79.0",
46
45
  "react-native-safe-area-context": ">=4.0.0",
47
46
  "react-native-svg": ">=12.4.1",
@@ -53,19 +52,19 @@
53
52
  }
54
53
  },
55
54
  "devDependencies": {
56
- "@jest/test-sequencer": "^30.2.0",
55
+ "@jest/test-sequencer": "^30.3.0",
57
56
  "@types/jest": "^30.0.0",
58
- "@types/node": "^25.1.0",
59
- "@types/react": "^19.2.10",
57
+ "@types/node": "^25.4.0",
58
+ "@types/react": "^19.2.14",
60
59
  "@types/react-dom": "^19.2.3",
61
60
  "@types/react-test-renderer": "^19.1.0",
62
- "jest-environment-jsdom": "^30.2.0",
63
- "jsdom": "^28.0.0",
61
+ "jest-environment-jsdom": "^30.3.0",
62
+ "jsdom": "^28.1.0",
64
63
  "react": "^19.2.4",
65
64
  "react-dom": "^19.2.4",
66
- "react-native": "^0.83.1",
67
- "react-native-safe-area-context": "^5.6.2",
68
- "react-native-svg": "^15.15.1",
65
+ "react-native": "^0.84.1",
66
+ "react-native-safe-area-context": "^5.7.0",
67
+ "react-native-svg": "^15.15.3",
69
68
  "react-native-web": "^0.21.2",
70
69
  "react-test-renderer": "^19.2.4",
71
70
  "dts-minify": "^0.3.3",
@@ -83,14 +82,14 @@
83
82
  "@react-native-aria/slider": "^0.2.12",
84
83
  "@react-native-aria/toggle": "^0.2.11",
85
84
  "@react-native-aria/utils": "^0.2.12",
86
- "@react-stately/checkbox": "^3.7.4",
87
- "@react-stately/list": "^3.13.3",
88
- "@react-stately/radio": "^3.11.4",
89
- "@react-stately/slider": "^3.7.4",
90
- "@react-stately/toggle": "^3.9.4",
91
- "@react-types/checkbox": "^3.10.3",
92
- "@react-types/listbox": "^3.7.5",
93
- "react-native-system-icon": "^1.0.4"
85
+ "@react-stately/checkbox": "^3.7.5",
86
+ "@react-stately/list": "^3.13.4",
87
+ "@react-stately/radio": "^3.11.5",
88
+ "@react-stately/slider": "^3.7.5",
89
+ "@react-stately/toggle": "^3.9.5",
90
+ "@react-types/checkbox": "^3.10.4",
91
+ "@react-types/listbox": "^3.7.6",
92
+ "react-native-system-icon": "^1.0.5"
94
93
  },
95
94
  "react-native": "./dist/es/index.js",
96
95
  "sideEffects": false,