@webority/mobile-ui 0.10.0 → 0.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. package/android/src/newarch/java/com/webority/mobileui/pdfrasterizer/PdfRasterizerModule.kt +6 -7
  2. package/ios/PdfRasterizer.mm +36 -9
  3. package/lib/commonjs/components/Checkbox/Checkbox.js +1 -1
  4. package/lib/commonjs/components/FieldBase/ChoiceText.js +1 -1
  5. package/lib/commonjs/components/FieldBase/FieldBase.js +1 -1
  6. package/lib/commonjs/components/FieldBase/useFloatingLabel.js +1 -1
  7. package/lib/commonjs/components/FormField/FormField.js +1 -1
  8. package/lib/commonjs/components/Input/Input.js +1 -1
  9. package/lib/commonjs/components/Notation/Notation.js +1 -1
  10. package/lib/commonjs/components/OptionSheet/OptionSheet.js +1 -1
  11. package/lib/commonjs/components/PermissionPrompt/PermissionPrompt.js +1 -0
  12. package/lib/commonjs/components/PermissionPrompt/index.js +1 -0
  13. package/lib/commonjs/components/PermissionPrompt/usePermissionPrompt.js +1 -0
  14. package/lib/commonjs/components/PhoneNumberInput/PhoneNumberInput.js +1 -1
  15. package/lib/commonjs/components/Radio/Radio.js +1 -1
  16. package/lib/commonjs/components/Radio/RadioGroup.js +1 -1
  17. package/lib/commonjs/components/SegmentedControl/SegmentedControl.js +1 -1
  18. package/lib/commonjs/components/Select/Select.js +1 -1
  19. package/lib/commonjs/components/Switch/Switch.js +1 -1
  20. package/lib/commonjs/components/TagInput/TagInput.js +1 -1
  21. package/lib/commonjs/components/index.js +1 -1
  22. package/lib/module/components/Checkbox/Checkbox.js +1 -1
  23. package/lib/module/components/FieldBase/ChoiceText.js +1 -1
  24. package/lib/module/components/FieldBase/FieldBase.js +1 -1
  25. package/lib/module/components/FieldBase/useFloatingLabel.js +1 -1
  26. package/lib/module/components/FormField/FormField.js +1 -1
  27. package/lib/module/components/Input/Input.js +1 -1
  28. package/lib/module/components/Notation/Notation.js +1 -1
  29. package/lib/module/components/OptionSheet/OptionSheet.js +1 -1
  30. package/lib/module/components/PermissionPrompt/PermissionPrompt.js +1 -0
  31. package/lib/module/components/PermissionPrompt/index.js +1 -0
  32. package/lib/module/components/PermissionPrompt/usePermissionPrompt.js +1 -0
  33. package/lib/module/components/PhoneNumberInput/PhoneNumberInput.js +1 -1
  34. package/lib/module/components/Radio/Radio.js +1 -1
  35. package/lib/module/components/Radio/RadioGroup.js +1 -1
  36. package/lib/module/components/SegmentedControl/SegmentedControl.js +1 -1
  37. package/lib/module/components/Select/Select.js +1 -1
  38. package/lib/module/components/Switch/Switch.js +1 -1
  39. package/lib/module/components/TagInput/TagInput.js +1 -1
  40. package/lib/module/components/index.js +1 -1
  41. package/lib/typescript/commonjs/components/Checkbox/Checkbox.d.ts +4 -1
  42. package/lib/typescript/commonjs/components/FileViewer/FileViewer.d.ts +1 -1
  43. package/lib/typescript/commonjs/components/Notation/Notation.d.ts +10 -4
  44. package/lib/typescript/commonjs/components/OptionSheet/OptionSheet.d.ts +2 -0
  45. package/lib/typescript/commonjs/components/PermissionPrompt/PermissionPrompt.d.ts +39 -0
  46. package/lib/typescript/commonjs/components/PermissionPrompt/index.d.ts +5 -0
  47. package/lib/typescript/commonjs/components/PermissionPrompt/usePermissionPrompt.d.ts +44 -0
  48. package/lib/typescript/commonjs/components/PhoneNumberInput/PhoneNumberInput.d.ts +5 -2
  49. package/lib/typescript/commonjs/components/Radio/Radio.d.ts +13 -4
  50. package/lib/typescript/commonjs/components/Radio/RadioGroup.d.ts +5 -0
  51. package/lib/typescript/commonjs/components/SegmentedControl/SegmentedControl.d.ts +5 -1
  52. package/lib/typescript/commonjs/components/Select/Select.d.ts +2 -0
  53. package/lib/typescript/commonjs/components/Switch/Switch.d.ts +11 -4
  54. package/lib/typescript/commonjs/components/TagInput/TagInput.d.ts +4 -0
  55. package/lib/typescript/commonjs/components/index.d.ts +2 -0
  56. package/lib/typescript/commonjs/specs/NativePdfRasterizer.d.ts +1 -1
  57. package/lib/typescript/module/components/Checkbox/Checkbox.d.ts +4 -1
  58. package/lib/typescript/module/components/FileViewer/FileViewer.d.ts +1 -1
  59. package/lib/typescript/module/components/Notation/Notation.d.ts +10 -4
  60. package/lib/typescript/module/components/OptionSheet/OptionSheet.d.ts +2 -0
  61. package/lib/typescript/module/components/PermissionPrompt/PermissionPrompt.d.ts +39 -0
  62. package/lib/typescript/module/components/PermissionPrompt/index.d.ts +5 -0
  63. package/lib/typescript/module/components/PermissionPrompt/usePermissionPrompt.d.ts +44 -0
  64. package/lib/typescript/module/components/PhoneNumberInput/PhoneNumberInput.d.ts +5 -2
  65. package/lib/typescript/module/components/Radio/Radio.d.ts +13 -4
  66. package/lib/typescript/module/components/Radio/RadioGroup.d.ts +5 -0
  67. package/lib/typescript/module/components/SegmentedControl/SegmentedControl.d.ts +5 -1
  68. package/lib/typescript/module/components/Select/Select.d.ts +2 -0
  69. package/lib/typescript/module/components/Switch/Switch.d.ts +11 -4
  70. package/lib/typescript/module/components/TagInput/TagInput.d.ts +4 -0
  71. package/lib/typescript/module/components/index.d.ts +2 -0
  72. package/lib/typescript/module/specs/NativePdfRasterizer.d.ts +1 -1
  73. package/package.json +3 -3
  74. package/src/specs/NativePdfRasterizer.ts +1 -1
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Select=void 0;var _react=require("react"),_reactNative=require("react-native"),_index=require("../../theme/index.js"),_index2=require("../../utils/index.js"),_slotIcon=require("../AppIcon/slotIcon.js"),_Chevron=require("../FieldBase/Chevron.js"),_FieldBase=require("../FieldBase/FieldBase.js"),_Notation=require("../Notation/Notation.js"),_OptionSheet=require("../OptionSheet/OptionSheet.js"),_jsxRuntime=require("react/jsx-runtime");const sameSelectValue=(e,t)=>String(e)===String(t),containsValue=(e,t)=>e.some(e=>sameSelectValue(e,t)),Select=exports.Select=(0,_react.forwardRef)((e,t)=>{const{options:i,getOptionLabel:l,getOptionValue:o,getOptionDisabled:r,getOptionDescription:n,getOptionIcon:s,placeholder:a,searchable:c=!1,haptic:d,label:u,help:x,title:p,required:_=!1,error:h,helperText:S,prefix:f,numberOfLines:b=1,disabled:v=!1,size:g="md",variant:m,leftIcon:j,rightIcon:y,chevronColor:F,chevronSize:C,borderRadius:R,accessibilityLabel:O,labelStyle:z,style:k,triggerStyle:N,textStyle:V,optionStyle:T,selectedOptionStyle:B,optionTextStyle:I,selectedOptionTextStyle:q,testID:H}=e,L=!0===e.multi,w=(0,_react.useCallback)(e=>l?l(e):e.label??"",[l]),M=(0,_react.useCallback)(e=>o?o(e):e.value,[o]),P=(0,_react.useCallback)(e=>r?r(e):!0===e.disabled,[r]),D=(0,_react.useCallback)(e=>n?n(e):e.description,[n]),E=(0,_react.useCallback)(e=>s?s(e):e.icon,[s]),A=(0,_index.useTheme)(),$=(0,_react.useMemo)(()=>buildStyles(A),[A]),G=(0,_FieldBase.resolveFieldSize)(A,g),J=(0,_FieldBase.resolveFieldTextStyle)(A,{disabled:v}),K=m??A.components.select?.defaultVariant??A.components.field?.defaultVariant??"outlined",Q=(0,_react.useMemo)(()=>{const e=A.components.select?.fillColors?.[K];if(!e)return;const t={};return void 0!==e.idleEmpty&&(t.backgroundIdleEmpty=e.idleEmpty),void 0!==e.idleFilled&&(t.backgroundIdleFilled=e.idleFilled),void 0!==e.focus&&(t.backgroundFocused=e.focus),void 0!==e.error&&(t.backgroundError=e.error),void 0!==e.disabled&&(t.backgroundDisabled=e.disabled),Object.keys(t).length>0?t:void 0},[A.components.select?.fillColors,K]),U=R??A.components.select?.borderRadius,[W,X]=(0,_react.useState)(!1),Y=(0,_react.useCallback)(t=>{if(L){const i=e.value??[];return containsValue(i,t)}return null!=e.value&&sameSelectValue(e.value,t)},[L,e.value]),Z=(0,_react.useMemo)(()=>{if(L){const t=e.value??[];return i.filter(e=>containsValue(t,M(e)))}const t=e.value;if(null==t)return[];const l=i.find(e=>sameSelectValue(M(e),t));return l?[l]:[]},[L,i,e.value,M]),ee=(0,_react.useCallback)(()=>{if(v)return;const e=(0,_index2.resolveHaptic)(d,"selection");e&&(0,_index2.triggerHaptic)(e),X(!0)},[v,d]),te=(0,_react.useCallback)(()=>{X(!1)},[]),ie=(0,_react.useCallback)(t=>{if(P(t))return;const i=M(t),l=(0,_index2.resolveHaptic)(d,"selection");if(l&&(0,_index2.triggerHaptic)(l),L){const t=e.value??[],l=containsValue(t,i)?t.filter(e=>!sameSelectValue(e,i)):[...t,i];return void e.onChange(l)}e.onChange(i),te()},[L,e,te,P,M,d]),le=0===Z.length?a??"Select…":Z.map(e=>w(e)).join(", "),oe=0===Z.length,re=!0===h||(0,_FieldBase.hasFieldText)(h),ne=(0,_FieldBase.hasFieldText)(u),se=(0,_FieldBase.fieldTextAsString)(u),ae=Math.round(1.4*G.fontSize),ce=(0,_react.useMemo)(()=>({fontSize:G.fontSize,color:J.placeholderColor}),[G.fontSize,J.placeholderColor]),de={color:v?A.colors.field.iconDisabled:W?A.colors.field.iconFocused:A.colors.field.icon,size:G.iconSize,disabled:v,focused:W,error:re},ue=0===Z.length?a??"No selection":`Selected: ${Z.map(e=>w(e)).join(", ")}`,xe=O??`${se??"Select"}. ${ue}`;return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[$.container,k],testID:H,children:[ne?(0,_jsxRuntime.jsx)(_FieldBase.FieldLabel,{size:g,required:_,help:x,style:z,children:u}):null,(0,_jsxRuntime.jsx)(_reactNative.View,{ref:t,collapsable:!1,children:(0,_jsxRuntime.jsxs)(_FieldBase.FieldBase,{size:g,variant:K,disabled:v,error:re,filled:Z.length>0,onPress:ee,borderRadius:U,fillOverrides:Q,paddingHorizontal:"underline"===K?0:void 0,accessibilityRole:"button",accessibilityLabel:xe,accessibilityState:{disabled:v,expanded:W},"aria-disabled":v,"aria-expanded":W,style:N,slotAlign:1===b?"center":"top",slotLineHeight:1===b?void 0:ae,leading:j?(0,_jsxRuntime.jsx)(_reactNative.View,{children:(0,_slotIcon.renderSlotIcon)(j,de)}):null,trailing:y?(0,_jsxRuntime.jsx)(_reactNative.View,{children:(0,_slotIcon.renderSlotIcon)(y,de)}):(0,_jsxRuntime.jsx)(_Chevron.Chevron,{color:F??(v?A.colors.text.disabled:A.colors.text.tertiary),size:C??G.iconSize,open:W,style:$.chevron}),children:[(0,_FieldBase.hasFieldText)(f)?"string"==typeof f||"number"==typeof f?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[$.prefix,{color:J.placeholderColor,fontSize:G.fontSize,lineHeight:1===b?void 0:ae,marginRight:A.spacing.xs}],children:f}):(0,_jsxRuntime.jsx)(_reactNative.View,{style:[$.prefixNode,{minHeight:1===b?void 0:ae,justifyContent:"center",marginRight:A.spacing.xs}],children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[$.prefix,{color:J.placeholderColor,fontSize:G.fontSize,lineHeight:1===b?void 0:ae}],children:(0,_jsxRuntime.jsx)(_Notation.NotationInkContext.Provider,{value:ce,children:f})})}):null,(0,_jsxRuntime.jsxs)(_reactNative.Text,{style:[$.triggerText,{color:oe?J.placeholderColor:J.color,fontSize:G.fontSize,lineHeight:1===b?void 0:ae,...J.weightStyle},V],numberOfLines:b,children:[le,oe&&_&&!ne?(0,_jsxRuntime.jsx)(_FieldBase.RequiredMark,{}):null]})]})}),(0,_jsxRuntime.jsx)(_FieldBase.FieldMessage,{size:g,error:re,text:re?h:S}),(0,_jsxRuntime.jsx)(_OptionSheet.OptionSheet,{open:W,onClose:te,title:p??se,accessibilityLabel:se??(ne?p:void 0)??a??"Options",options:i,labelOf:w,getValue:M,disabledOf:P,descriptionOf:D,iconOf:E,isSelected:Y,onSelect:ie,multi:L,searchable:c,optionStyle:T,selectedOptionStyle:B,optionTextStyle:I,selectedOptionTextStyle:q,searchSelectionColor:(0,_FieldBase.resolveVariantColors)(A,K,Q).borderFocusedRepresentative})]})});Select.displayName="Select";const buildStyles=e=>_reactNative.StyleSheet.create({container:{width:"100%"},label:{includeFontPadding:!1},triggerText:{flex:1,includeFontPadding:!1},errorText:{includeFontPadding:!1},prefix:{flexShrink:0,includeFontPadding:!1},prefixNode:{flexShrink:0},chevron:{marginLeft:8}});var _default=exports.default=Select;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Select=void 0;var _react=require("react"),_reactNative=require("react-native"),_index=require("../../theme/index.js"),_index2=require("../../utils/index.js"),_slotIcon=require("../AppIcon/slotIcon.js"),_Chevron=require("../FieldBase/Chevron.js"),_FieldBase=require("../FieldBase/FieldBase.js"),_Notation=require("../Notation/Notation.js"),_OptionSheet=require("../OptionSheet/OptionSheet.js"),_jsxRuntime=require("react/jsx-runtime");const sameSelectValue=(e,t)=>String(e)===String(t),containsValue=(e,t)=>e.some(e=>sameSelectValue(e,t)),Select=exports.Select=(0,_react.forwardRef)((e,t)=>{const{options:i,getOptionLabel:l,getOptionValue:o,getOptionDisabled:r,getOptionDescription:n,getOptionIcon:a,placeholder:s,onOpenChange:c,searchable:d=!1,haptic:u,label:x,help:p,title:_,required:h=!1,error:S,helperText:f,prefix:b,numberOfLines:g=1,disabled:v=!1,size:m="md",variant:j,leftIcon:y,rightIcon:F,chevronColor:C,chevronSize:O,borderRadius:R,accessibilityLabel:z,labelStyle:k,style:N,triggerStyle:V,textStyle:T,optionStyle:B,selectedOptionStyle:I,optionTextStyle:q,selectedOptionTextStyle:H,testID:L}=e,w=!0===e.multi,M=(0,_react.useCallback)(e=>l?l(e):e.label??"",[l]),P=(0,_react.useCallback)(e=>o?o(e):e.value,[o]),D=(0,_react.useCallback)(e=>r?r(e):!0===e.disabled,[r]),E=(0,_react.useCallback)(e=>n?n(e):e.description,[n]),A=(0,_react.useCallback)(e=>a?a(e):e.icon,[a]),$=(0,_index.useTheme)(),G=(0,_react.useMemo)(()=>buildStyles($),[$]),J=(0,_FieldBase.resolveFieldSize)($,m),K=(0,_FieldBase.resolveFieldTextStyle)($,{disabled:v}),Q=j??$.components.select?.defaultVariant??$.components.field?.defaultVariant??"outlined",U=(0,_react.useMemo)(()=>{const e=$.components.select?.fillColors?.[Q];if(!e)return;const t={};return void 0!==e.idleEmpty&&(t.backgroundIdleEmpty=e.idleEmpty),void 0!==e.idleFilled&&(t.backgroundIdleFilled=e.idleFilled),void 0!==e.focus&&(t.backgroundFocused=e.focus),void 0!==e.error&&(t.backgroundError=e.error),void 0!==e.disabled&&(t.backgroundDisabled=e.disabled),Object.keys(t).length>0?t:void 0},[$.components.select?.fillColors,Q]),W=R??$.components.select?.borderRadius,[X,Y]=(0,_react.useState)(!1),Z=(0,_react.useCallback)(t=>{if(w){const i=e.value??[];return containsValue(i,t)}return null!=e.value&&sameSelectValue(e.value,t)},[w,e.value]),ee=(0,_react.useMemo)(()=>{if(w){const t=e.value??[];return i.filter(e=>containsValue(t,P(e)))}const t=e.value;if(null==t)return[];const l=i.find(e=>sameSelectValue(P(e),t));return l?[l]:[]},[w,i,e.value,P]),te=(0,_react.useCallback)(()=>{if(v)return;const e=(0,_index2.resolveHaptic)(u,"selection");e&&(0,_index2.triggerHaptic)(e),Y(!0)},[v,u]),ie=(0,_react.useCallback)(()=>{Y(!1)},[]),le=(0,_react.useCallback)(t=>{if(D(t))return;const i=P(t),l=(0,_index2.resolveHaptic)(u,"selection");if(l&&(0,_index2.triggerHaptic)(l),w){const t=e.value??[],l=containsValue(t,i)?t.filter(e=>!sameSelectValue(e,i)):[...t,i];return void e.onChange(l)}e.onChange(i),ie()},[w,e,ie,D,P,u]),oe=0===ee.length?s??"Select…":ee.map(e=>M(e)).join(", "),re=0===ee.length,ne=!0===S||(0,_FieldBase.hasFieldText)(S),ae=(0,_FieldBase.hasFieldText)(x),se=(0,_FieldBase.fieldTextAsString)(x),ce=Math.round(1.4*J.fontSize),de=(0,_react.useMemo)(()=>({fontSize:J.fontSize,color:K.placeholderColor}),[J.fontSize,K.placeholderColor]),ue={color:v?$.colors.field.iconDisabled:X?$.colors.field.iconFocused:$.colors.field.icon,size:J.iconSize,disabled:v,focused:X,error:ne},xe=0===ee.length?s??"No selection":`Selected: ${ee.map(e=>M(e)).join(", ")}`,pe=z??`${se??"Select"}. ${xe}`;return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[G.container,N],testID:L,children:[ae?(0,_jsxRuntime.jsx)(_FieldBase.FieldLabel,{size:m,required:h,help:p,style:k,children:x}):null,(0,_jsxRuntime.jsx)(_reactNative.View,{ref:t,collapsable:!1,children:(0,_jsxRuntime.jsxs)(_FieldBase.FieldBase,{size:m,variant:Q,disabled:v,error:ne,filled:ee.length>0,onPress:te,borderRadius:W,fillOverrides:U,paddingHorizontal:"underline"===Q?0:void 0,accessibilityRole:"button",accessibilityLabel:pe,accessibilityState:{disabled:v,expanded:X},"aria-disabled":v,"aria-expanded":X,style:V,slotAlign:1===g?"center":"top",slotLineHeight:1===g?void 0:ce,leading:y?(0,_jsxRuntime.jsx)(_reactNative.View,{children:(0,_slotIcon.renderSlotIcon)(y,ue)}):null,trailing:F?(0,_jsxRuntime.jsx)(_reactNative.View,{children:(0,_slotIcon.renderSlotIcon)(F,ue)}):(0,_jsxRuntime.jsx)(_Chevron.Chevron,{color:C??(v?$.colors.text.disabled:$.colors.text.tertiary),size:O??J.iconSize,open:X,style:G.chevron}),children:[(0,_FieldBase.hasFieldText)(b)?"string"==typeof b||"number"==typeof b?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[G.prefix,{color:K.placeholderColor,fontSize:J.fontSize,lineHeight:1===g?void 0:ce,marginRight:$.spacing.xs}],children:b}):(0,_jsxRuntime.jsx)(_reactNative.View,{style:[G.prefixNode,{minHeight:1===g?void 0:ce,justifyContent:"center",marginRight:$.spacing.xs}],children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[G.prefix,{color:K.placeholderColor,fontSize:J.fontSize,lineHeight:1===g?void 0:ce}],children:(0,_jsxRuntime.jsx)(_Notation.NotationInkContext.Provider,{value:de,children:b})})}):null,(0,_jsxRuntime.jsxs)(_reactNative.Text,{style:[G.triggerText,{color:re?K.placeholderColor:K.color,fontSize:J.fontSize,lineHeight:1===g?void 0:ce,...K.weightStyle},T],numberOfLines:g,children:[oe,re&&h&&!ae?(0,_jsxRuntime.jsx)(_FieldBase.RequiredMark,{}):null]})]})}),(0,_jsxRuntime.jsx)(_FieldBase.FieldMessage,{size:m,error:ne,text:ne?S:f}),(0,_jsxRuntime.jsx)(_OptionSheet.OptionSheet,{open:X,onClose:ie,onOpenChange:c,title:_??se,accessibilityLabel:se??(ae?_:void 0)??s??"Options",options:i,labelOf:M,getValue:P,disabledOf:D,descriptionOf:E,iconOf:A,isSelected:Z,onSelect:le,multi:w,searchable:d,optionStyle:B,selectedOptionStyle:I,optionTextStyle:q,selectedOptionTextStyle:H,searchSelectionColor:(0,_FieldBase.resolveVariantColors)($,Q,U).borderFocusedRepresentative})]})});Select.displayName="Select";const buildStyles=e=>_reactNative.StyleSheet.create({container:{width:"100%"},label:{includeFontPadding:!1},triggerText:{flex:1,includeFontPadding:!1},errorText:{includeFontPadding:!1},prefix:{flexShrink:0,includeFontPadding:!1},prefixNode:{flexShrink:0},chevron:{marginLeft:8}});var _default=exports.default=Select;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Switch=void 0;var _react=require("react"),_reactNative=require("react-native"),_index=require("../../hooks/index.js"),_index2=require("../../theme/index.js"),_corners=require("../../utils/corners.js"),_hapticUtils=require("../../utils/hapticUtils.js"),_ChoiceText=require("../FieldBase/ChoiceText.js"),_jsxRuntime=require("react/jsx-runtime");const sizeMap={sm:{trackWidth:42,trackHeight:26,thumbSize:22,padding:2},md:{trackWidth:51,trackHeight:31,thumbSize:27,padding:2},lg:{trackWidth:60,trackHeight:36,thumbSize:32,padding:2}},toneColor=(e,t)=>{switch(t){case"success":return e.colors.success;case"warning":return e.colors.warning;case"error":return e.colors.error;default:return e.colors.primary}},Switch=exports.Switch=(0,_react.forwardRef)((e,t)=>{const{value:i,defaultValue:s,onChange:r,disabled:a=!1,size:n="md",tone:c="primary",label:o,description:l,error:d,labelLines:u,layout:h="inline",accessibilityLabel:p,haptic:m="selection",bounce:_=!1,style:b,containerStyle:x,trackStyle:g,thumbStyle:f,testID:y,...v}=e,[w,j]=(0,_index.useControllableState)({value:i,defaultValue:s??!1,onChange:r}),R=(0,_index2.useTheme)(),C={...sizeMap[n],...R.components.switch?.[n]??{}},S=R.components.switch?.thumbColor??"#FFFFFF",k=(0,_react.useMemo)(()=>buildStyles(R),[R]),N="dark"===R.mode?R.colors.secondary:R.colors.surface.disabled,T=toneColor(R,c),V=(0,_react.useRef)((0,_index2.createAnimatedValue)(w?1:0)).current;(0,_react.useEffect)(()=>{const e=_reactNative.Animated.spring(V,{toValue:w?1:0,damping:R.motion.spring.snappy.damping,stiffness:R.motion.spring.snappy.stiffness,mass:R.motion.spring.snappy.mass,useNativeDriver:!0});return e.start(),()=>e.stop()},[w,V,R.motion.spring.snappy]);const D=(0,_react.useRef)((0,_index2.createAnimatedValue)(w?1:0)).current;(0,_react.useEffect)(()=>{const e=_reactNative.Animated.timing(D,{toValue:w?1:0,duration:R.motion.duration.fast,easing:_reactNative.Easing.out(_reactNative.Easing.ease),useNativeDriver:!1});return e.start(),()=>e.stop()},[w,D,R.motion.duration.fast]);const H=C.padding,z=C.trackWidth-C.thumbSize-C.padding,A=V.interpolate({inputRange:[0,1],outputRange:[H,z]}),q=D.interpolate({inputRange:[0,1],outputRange:[N,T]}),L=(0,_react.useRef)((0,_index2.createAnimatedValue)(1)).current,F=(0,_react.useRef)(!0);(0,_react.useEffect)(()=>{if(!_)return;if(F.current)return void(F.current=!1);const e=_reactNative.Animated.sequence([_reactNative.Animated.spring(L,{toValue:1.15,damping:10,stiffness:220,mass:1,useNativeDriver:!0}),_reactNative.Animated.spring(L,{toValue:1,damping:14,stiffness:240,mass:1,useNativeDriver:!0})]);return e.start(),()=>e.stop()},[w,_,L]);const handlePress=e=>{a||(!1!==m&&(0,_hapticUtils.triggerHaptic)(m),j(!w),v.onPressOut?.(e))},P=p??o,E=Boolean(o)||(0,_ChoiceText.hasChoiceDetail)(l,d),I="row"===h&&E,W=(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:[k.track,{width:C.trackWidth,height:C.trackHeight,borderRadius:C.trackHeight/2,..._corners.smoothCorners,backgroundColor:q},g],children:(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:[k.thumb,R.shadows.sm,{backgroundColor:S,width:C.thumbSize,height:C.thumbSize,borderRadius:C.thumbSize/2,..._corners.smoothCorners,transform:[{translateX:A},{scale:L}]},f]})});if(I)return(0,_jsxRuntime.jsxs)(_reactNative.Pressable,{ref:t,onPress:handlePress,disabled:a,accessibilityRole:"switch",accessibilityLabel:P,accessibilityHint:v.accessibilityHint??l,accessibilityState:{checked:w,disabled:a},"aria-checked":w,"aria-disabled":a,testID:y,...v,style:({pressed:e})=>[k.row,k.spreadRow,(0,_ChoiceText.hasChoiceDetail)(l,d)?k.rowTop:null,{opacity:a?.55:e?.9:1},x,b],children:[(0,_jsxRuntime.jsx)(_ChoiceText.ChoiceText,{label:o,description:l,error:d,disabled:a,labelLines:u||void 0,descriptionLines:u||void 0,style:k.spreadText}),W]});const M=(0,_jsxRuntime.jsx)(_reactNative.Pressable,{ref:t,onPress:handlePress,disabled:a,accessibilityRole:"switch",accessibilityLabel:P,accessibilityHint:v.accessibilityHint??l,accessibilityState:{checked:w,disabled:a},"aria-checked":w,"aria-disabled":a,testID:y,hitSlop:8,...v,style:({pressed:e})=>[{opacity:a?.55:e?.9:1},E?null:b],children:W});return E?(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[k.row,(0,_ChoiceText.hasChoiceDetail)(l,d)?k.rowTop:null,x,b],children:[M,(0,_jsxRuntime.jsx)(_ChoiceText.ChoiceText,{label:o,description:l,error:d,disabled:a,labelLines:u||void 0,descriptionLines:u||void 0,style:k.text})]}):x?(0,_jsxRuntime.jsx)(_reactNative.View,{style:x,children:M}):M});Switch.displayName="Switch";const buildStyles=e=>_reactNative.StyleSheet.create({row:{flexDirection:"row",alignItems:"center"},track:{justifyContent:"center"},thumb:{position:"absolute",top:2},rowTop:{alignItems:"flex-start"},text:{marginLeft:10},spreadRow:{minHeight:44,justifyContent:"space-between"},spreadText:{flex:1,marginRight:12}});var _default=exports.default=Switch;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Switch=void 0;var _react=require("react"),_reactNative=require("react-native"),_index=require("../../hooks/index.js"),_index2=require("../../theme/index.js"),_corners=require("../../utils/corners.js"),_hapticUtils=require("../../utils/hapticUtils.js"),_ChoiceText=require("../FieldBase/ChoiceText.js"),_FieldBase=require("../FieldBase/FieldBase.js"),_jsxRuntime=require("react/jsx-runtime");const sizeMap={sm:{trackWidth:42,trackHeight:26,thumbSize:22,padding:2},md:{trackWidth:51,trackHeight:31,thumbSize:27,padding:2},lg:{trackWidth:60,trackHeight:36,thumbSize:32,padding:2}},toneColor=(e,t)=>{switch(t){case"success":return e.colors.success;case"warning":return e.colors.warning;case"error":return e.colors.error;default:return e.colors.primary}},Switch=exports.Switch=(0,_react.forwardRef)((e,t)=>{const{value:i,defaultValue:r,onChange:s,disabled:a=!1,size:n="md",tone:o="primary",label:c,description:l,error:d,labelLines:u,layout:h="inline",accessibilityLabel:p,haptic:m="selection",bounce:_=!1,style:b,containerStyle:x,trackStyle:g,thumbStyle:f,testID:y,...v}=e,[w,j]=(0,_index.useControllableState)({value:i,defaultValue:r??!1,onChange:s}),R=(0,_index2.useTheme)(),S={...sizeMap[n],...R.components.switch?.[n]??{}},C=R.components.switch?.thumbColor??"#FFFFFF",k=(0,_react.useMemo)(()=>buildStyles(R),[R]),N="dark"===R.mode?R.colors.secondary:R.colors.surface.disabled,T=toneColor(R,o),F=(0,_react.useRef)((0,_index2.createAnimatedValue)(w?1:0)).current;(0,_react.useEffect)(()=>{const e=_reactNative.Animated.spring(F,{toValue:w?1:0,damping:R.motion.spring.snappy.damping,stiffness:R.motion.spring.snappy.stiffness,mass:R.motion.spring.snappy.mass,useNativeDriver:!0});return e.start(),()=>e.stop()},[w,F,R.motion.spring.snappy]);const V=(0,_react.useRef)((0,_index2.createAnimatedValue)(w?1:0)).current;(0,_react.useEffect)(()=>{const e=_reactNative.Animated.timing(V,{toValue:w?1:0,duration:R.motion.duration.fast,easing:_reactNative.Easing.out(_reactNative.Easing.ease),useNativeDriver:!1});return e.start(),()=>e.stop()},[w,V,R.motion.duration.fast]);const A=S.padding,H=S.trackWidth-S.thumbSize-S.padding,D=F.interpolate({inputRange:[0,1],outputRange:[A,H]}),q=V.interpolate({inputRange:[0,1],outputRange:[N,T]}),z=(0,_react.useRef)((0,_index2.createAnimatedValue)(1)).current,B=(0,_react.useRef)(!0);(0,_react.useEffect)(()=>{if(!_)return;if(B.current)return void(B.current=!1);const e=_reactNative.Animated.sequence([_reactNative.Animated.spring(z,{toValue:1.15,damping:10,stiffness:220,mass:1,useNativeDriver:!0}),_reactNative.Animated.spring(z,{toValue:1,damping:14,stiffness:240,mass:1,useNativeDriver:!0})]);return e.start(),()=>e.stop()},[w,_,z]);const handlePress=e=>{a||(!1!==m&&(0,_hapticUtils.triggerHaptic)(m),j(!w),v.onPressOut?.(e))},L=p??(0,_FieldBase.fieldTextAsString)(c),E=(0,_FieldBase.hasFieldText)(c)||(0,_ChoiceText.hasChoiceDetail)(l,d),P=(!0===d||(0,_FieldBase.hasFieldText)(d))&&!w&&!a,W="row"===h&&E,I=(0,_jsxRuntime.jsxs)(_reactNative.Animated.View,{style:[k.track,{width:S.trackWidth,height:S.trackHeight,borderRadius:S.trackHeight/2,..._corners.smoothCorners,backgroundColor:q},g],children:[P?(0,_jsxRuntime.jsx)(_reactNative.View,{pointerEvents:"none",style:[k.errorRing,{borderRadius:S.trackHeight/2,..._corners.smoothCorners,borderWidth:R.colors.border.width,borderColor:R.colors.field.borderError}]}):null,(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:[k.thumb,R.shadows.sm,{backgroundColor:C,width:S.thumbSize,height:S.thumbSize,borderRadius:S.thumbSize/2,..._corners.smoothCorners,transform:[{translateX:D},{scale:z}]},f]})]});if(W)return(0,_jsxRuntime.jsxs)(_reactNative.Pressable,{ref:t,onPress:handlePress,disabled:a,accessibilityRole:"switch",accessibilityLabel:L,accessibilityHint:v.accessibilityHint??(0,_FieldBase.fieldTextAsString)(l),accessibilityState:{checked:w,disabled:a},"aria-checked":w,"aria-disabled":a,testID:y,...v,style:({pressed:e})=>[k.row,k.spreadRow,(0,_ChoiceText.hasChoiceDetail)(l,d)?k.rowTop:null,{opacity:a?.55:e?.9:1},x,b],children:[(0,_jsxRuntime.jsx)(_ChoiceText.ChoiceText,{label:c,description:l,error:d,disabled:a,labelLines:u||void 0,descriptionLines:u||void 0,style:k.spreadText}),I]});const M=(0,_jsxRuntime.jsx)(_reactNative.Pressable,{ref:t,onPress:handlePress,disabled:a,accessibilityRole:"switch",accessibilityLabel:L,accessibilityHint:v.accessibilityHint??(0,_FieldBase.fieldTextAsString)(l),accessibilityState:{checked:w,disabled:a},"aria-checked":w,"aria-disabled":a,testID:y,hitSlop:8,...v,style:({pressed:e})=>[{opacity:a?.55:e?.9:1},E?null:b],children:I});return E?(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[k.row,(0,_ChoiceText.hasChoiceDetail)(l,d)?k.rowTop:null,x,b],children:[M,(0,_jsxRuntime.jsx)(_ChoiceText.ChoiceText,{label:c,description:l,error:d,disabled:a,labelLines:u||void 0,descriptionLines:u||void 0,style:k.text})]}):x?(0,_jsxRuntime.jsx)(_reactNative.View,{style:x,children:M}):M});Switch.displayName="Switch";const buildStyles=e=>_reactNative.StyleSheet.create({row:{flexDirection:"row",alignItems:"center"},track:{justifyContent:"center"},thumb:{position:"absolute",top:2},errorRing:{..._reactNative.StyleSheet.absoluteFill},rowTop:{alignItems:"flex-start"},text:{marginLeft:10},spreadRow:{minHeight:44,justifyContent:"space-between"},spreadText:{flex:1,marginRight:12}});var _default=exports.default=Switch;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.TagInput=void 0;var _react=require("react"),_reactNative=require("react-native"),_index=require("../../hooks/index.js"),_index2=require("../../theme/index.js"),_index3=require("../../utils/index.js"),_index4=require("../Chip/index.js"),_index5=require("../FieldBase/index.js"),_index6=require("../FormField/index.js"),_jsxRuntime=require("react/jsx-runtime");const TagInput=exports.TagInput=(0,_react.forwardRef)((e,t)=>{const{value:r,defaultValue:i,onChange:a,placeholder:n,label:s,helperText:l,error:o,required:u,disabled:d=!1,size:c="md",variant:x,maxTags:p,unique:_=!0,transform:h,separators:m=[","],haptic:g,style:f,testID:v}=e,j=(0,_index2.useTheme)(),b=(0,_react.useMemo)(()=>buildStyles(j),[j]),[y,T]=(0,_index.useControllableState)({value:r,defaultValue:i??[],onChange:a}),[C,q]=(0,_react.useState)(""),[I,w]=(0,_react.useState)(!1),F=(0,_react.useRef)(null),R=(0,_react.useMemo)(()=>(0,_index3.mergeRefs)(F,t),[t]),S=(0,_react.useCallback)(()=>{d||F.current?.focus()},[d]),k="number"==typeof p&&y.length>=p,N=(0,_react.useCallback)(e=>{const t=h?h(e.trim()):e.trim();if(!t)return;if(k)return;if(_&&y.some(e=>e.toLowerCase()===t.toLowerCase()))return void q("");T([...y,t]),q("");const r=(0,_index3.resolveHaptic)(g,"selection");r&&(0,_index3.triggerHaptic)(r)},[k,g,T,y,h,_]),V=(0,_react.useCallback)(e=>{const t=y.filter((t,r)=>r!==e);T(t);const r=(0,_index3.resolveHaptic)(g,"selection");r&&(0,_index3.triggerHaptic)(r)},[g,T,y]),z=(0,_react.useCallback)(e=>{const t=m.find(t=>t.length>0&&e.includes(t));if(t){const[r]=e.split(t);return void N(r)}q(e)},[N,m]),D=(0,_react.useCallback)(e=>{d||"Backspace"===e.nativeEvent.key&&""===C&&y.length>0&&V(y.length-1)},[d,C,V,y.length]),B=(0,_jsxRuntime.jsx)(_index5.FieldBase,{size:c,variant:x,focused:I,disabled:d,error:(0,_index5.hasFieldText)(o),filled:y.length>0||C.length>0,onPress:S,pressFeedback:!1,style:f,children:(0,_jsxRuntime.jsxs)(_reactNative.View,{style:b.wrap,children:[y.map((e,t)=>(0,_jsxRuntime.jsx)(_index4.Chip,{label:e,size:"sm",onClose:d?void 0:()=>V(t),haptic:g},`${e}-${t}`)),(0,_jsxRuntime.jsx)(_reactNative.TextInput,{ref:R,value:C,onChangeText:z,onKeyPress:D,onSubmitEditing:()=>N(C),onFocus:()=>w(!0),onBlur:()=>{w(!1),N(C)},editable:!d&&!k,placeholder:k?void 0:n,placeholderTextColor:j.colors.text.tertiary,blurOnSubmit:!1,returnKeyType:"done",style:[b.input,{color:j.colors.text.primary,fontSize:j.typography.fontSize.base}],testID:v?`${v}-input`:void 0})]})});return s||l||(0,_index5.hasFieldText)(o)?(0,_jsxRuntime.jsx)(_reactNative.View,{testID:v,children:(0,_jsxRuntime.jsx)(_index6.FormField,{label:s,helperText:l,error:o,required:u,children:B})}):(0,_jsxRuntime.jsx)(_reactNative.View,{testID:v,children:B})});TagInput.displayName="TagInput";const buildStyles=e=>_reactNative.StyleSheet.create({wrap:{flex:1,flexDirection:"row",flexWrap:"wrap",alignItems:"center",gap:e.spacing.xs,paddingVertical:e.spacing.xs},input:{...(0,_index2.fontFor)(e,"normal"),flexGrow:1,minWidth:80,padding:0}});var _default=exports.default=TagInput;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.TagInput=void 0;var _react=require("react"),_reactNative=require("react-native"),_index=require("../../hooks/index.js"),_index2=require("../../theme/index.js"),_index3=require("../../utils/index.js"),_index4=require("../Chip/index.js"),_index5=require("../FieldBase/index.js"),_jsxRuntime=require("react/jsx-runtime");const TagInput=exports.TagInput=(0,_react.forwardRef)((e,t)=>{const{value:r,defaultValue:i,onChange:a,placeholder:n,label:s,helperText:l,error:o,required:u,disabled:d=!1,size:c="md",variant:x,maxTags:p,unique:_=!0,transform:g,separators:m=[","],haptic:f,style:h,testID:v}=e,b=(0,_index2.useTheme)(),j=(0,_react.useMemo)(()=>buildStyles(b),[b]),[y,C]=(0,_index.useControllableState)({value:r,defaultValue:i??[],onChange:a}),[T,q]=(0,_react.useState)(""),[I,R]=(0,_react.useState)(!1),S=(0,_react.useRef)(null),w=(0,_react.useMemo)(()=>(0,_index3.mergeRefs)(S,t),[t]),k=(0,_react.useCallback)(()=>{d||S.current?.focus()},[d]),F="number"==typeof p&&y.length>=p,z=!0===o||(0,_index5.hasFieldText)(o),N=(0,_react.useCallback)(e=>{const t=g?g(e.trim()):e.trim();if(!t)return;if(F)return;if(_&&y.some(e=>e.toLowerCase()===t.toLowerCase()))return void q("");C([...y,t]),q("");const r=(0,_index3.resolveHaptic)(f,"selection");r&&(0,_index3.triggerHaptic)(r)},[F,f,C,y,g,_]),V=(0,_react.useCallback)(e=>{const t=y.filter((t,r)=>r!==e);C(t);const r=(0,_index3.resolveHaptic)(f,"selection");r&&(0,_index3.triggerHaptic)(r)},[f,C,y]),B=(0,_react.useCallback)(e=>{const t=m.find(t=>t.length>0&&e.includes(t));if(t){const[r]=e.split(t);return void N(r)}q(e)},[N,m]),D=(0,_react.useCallback)(e=>{d||"Backspace"===e.nativeEvent.key&&""===T&&y.length>0&&V(y.length-1)},[d,T,V,y.length]),H=(0,_jsxRuntime.jsx)(_index5.FieldBase,{size:c,variant:x,focused:I,disabled:d,error:z,filled:y.length>0||T.length>0,onPress:k,pressFeedback:!1,style:h,children:(0,_jsxRuntime.jsxs)(_reactNative.View,{style:j.wrap,children:[y.map((e,t)=>(0,_jsxRuntime.jsx)(_index4.Chip,{label:e,size:"sm",onClose:d?void 0:()=>V(t),haptic:f},`${e}-${t}`)),(0,_jsxRuntime.jsx)(_reactNative.TextInput,{ref:w,value:T,onChangeText:B,onKeyPress:D,onSubmitEditing:()=>N(T),onFocus:()=>R(!0),onBlur:()=>{R(!1),N(T)},editable:!d&&!F,placeholder:F?void 0:n,placeholderTextColor:b.colors.text.tertiary,blurOnSubmit:!1,returnKeyType:"done",accessibilityLabel:s??n,style:[j.input,{color:b.colors.text.primary,fontSize:b.typography.fontSize.base}],testID:v?`${v}-input`:void 0})]})});return(0,_jsxRuntime.jsxs)(_reactNative.View,{testID:v,children:[s?(0,_jsxRuntime.jsx)(_index5.FieldLabel,{size:c,required:u,children:s}):null,H,(0,_jsxRuntime.jsx)(_index5.FieldMessage,{size:c,error:z,text:z?o:l})]})});TagInput.displayName="TagInput";const buildStyles=e=>_reactNative.StyleSheet.create({wrap:{flex:1,flexDirection:"row",flexWrap:"wrap",alignItems:"center",gap:e.spacing.xs,paddingVertical:e.spacing.xs},input:{...(0,_index2.fontFor)(e,"normal"),flexGrow:1,minWidth:80,padding:0}});var _default=exports.default=TagInput;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"ALL_CALLING_CODES",{enumerable:!0,get:function(){return _index57.ALL_CALLING_CODES}}),Object.defineProperty(exports,"Accordion",{enumerable:!0,get:function(){return _index.Accordion}}),Object.defineProperty(exports,"AccordionGroup",{enumerable:!0,get:function(){return _index.AccordionGroup}}),Object.defineProperty(exports,"AmountSlider",{enumerable:!0,get:function(){return _index2.AmountSlider}}),Object.defineProperty(exports,"AnimatePresence",{enumerable:!0,get:function(){return _index3.AnimatePresence}}),Object.defineProperty(exports,"AppBar",{enumerable:!0,get:function(){return _index4.AppBar}}),Object.defineProperty(exports,"AsyncBlock",{enumerable:!0,get:function(){return _index5.AsyncBlock}}),Object.defineProperty(exports,"AuthedImage",{enumerable:!0,get:function(){return _index6.AuthedImage}}),Object.defineProperty(exports,"Autocomplete",{enumerable:!0,get:function(){return _index7.Autocomplete}}),Object.defineProperty(exports,"Avatar",{enumerable:!0,get:function(){return _index8.Avatar}}),Object.defineProperty(exports,"AvatarGroup",{enumerable:!0,get:function(){return _index8.AvatarGroup}}),Object.defineProperty(exports,"Badge",{enumerable:!0,get:function(){return _index9.Badge}}),Object.defineProperty(exports,"Banner",{enumerable:!0,get:function(){return _index0.Banner}}),Object.defineProperty(exports,"BarChart",{enumerable:!0,get:function(){return _index1.BarChart}}),Object.defineProperty(exports,"BottomNavigation",{enumerable:!0,get:function(){return _index10.BottomNavigation}}),Object.defineProperty(exports,"BottomSheet",{enumerable:!0,get:function(){return _index11.BottomSheet}}),Object.defineProperty(exports,"Box",{enumerable:!0,get:function(){return _index12.Box}}),Object.defineProperty(exports,"Button",{enumerable:!0,get:function(){return _index13.Button}}),Object.defineProperty(exports,"Calendar",{enumerable:!0,get:function(){return _index14.Calendar}}),Object.defineProperty(exports,"Card",{enumerable:!0,get:function(){return _index15.Card}}),Object.defineProperty(exports,"Carousel",{enumerable:!0,get:function(){return _index16.Carousel}}),Object.defineProperty(exports,"Checkbox",{enumerable:!0,get:function(){return _index17.Checkbox}}),Object.defineProperty(exports,"Chip",{enumerable:!0,get:function(){return _index18.Chip}}),Object.defineProperty(exports,"ChoiceGroup",{enumerable:!0,get:function(){return _index19.ChoiceGroup}}),Object.defineProperty(exports,"Composer",{enumerable:!0,get:function(){return _index20.Composer}}),Object.defineProperty(exports,"Confetti",{enumerable:!0,get:function(){return _index21.Confetti}}),Object.defineProperty(exports,"DEFAULT_CALLING_CODES",{enumerable:!0,get:function(){return _index57.DEFAULT_CALLING_CODES}}),Object.defineProperty(exports,"DEFAULT_DATE_SEPARATOR_LABELS",{enumerable:!0,get:function(){return _index24.DEFAULT_DATE_SEPARATOR_LABELS}}),Object.defineProperty(exports,"DEFAULT_MESSAGE_BUBBLE_LABELS",{enumerable:!0,get:function(){return _index48.DEFAULT_MESSAGE_BUBBLE_LABELS}}),Object.defineProperty(exports,"DEFAULT_MESSAGE_LIST_LABELS",{enumerable:!0,get:function(){return _index49.DEFAULT_MESSAGE_LIST_LABELS}}),Object.defineProperty(exports,"DatePicker",{enumerable:!0,get:function(){return _index22.DatePicker}}),Object.defineProperty(exports,"DateRangePicker",{enumerable:!0,get:function(){return _index23.DateRangePicker}}),Object.defineProperty(exports,"DateSeparator",{enumerable:!0,get:function(){return _index24.DateSeparator}}),Object.defineProperty(exports,"DecimalInput",{enumerable:!0,get:function(){return _index25.DecimalInput}}),Object.defineProperty(exports,"Descriptions",{enumerable:!0,get:function(){return _index26.Descriptions}}),Object.defineProperty(exports,"Dialog",{enumerable:!0,get:function(){return _index27.Dialog}}),Object.defineProperty(exports,"Divider",{enumerable:!0,get:function(){return _index28.Divider}}),Object.defineProperty(exports,"Drawer",{enumerable:!0,get:function(){return _index29.Drawer}}),Object.defineProperty(exports,"EmptyState",{enumerable:!0,get:function(){return _index30.EmptyState}}),Object.defineProperty(exports,"ErrorBoundary",{enumerable:!0,get:function(){return _index31.ErrorBoundary}}),Object.defineProperty(exports,"FilePicker",{enumerable:!0,get:function(){return _index32.FilePicker}}),Object.defineProperty(exports,"FileViewer",{enumerable:!0,get:function(){return _index33.FileViewer}}),Object.defineProperty(exports,"FloatingActionButton",{enumerable:!0,get:function(){return _index34.FloatingActionButton}}),Object.defineProperty(exports,"FloatingActionButtonGroup",{enumerable:!0,get:function(){return _index34.FloatingActionButtonGroup}}),Object.defineProperty(exports,"ForceUpdateDialog",{enumerable:!0,get:function(){return _index35.ForceUpdateDialog}}),Object.defineProperty(exports,"FormField",{enumerable:!0,get:function(){return _index36.FormField}}),Object.defineProperty(exports,"IconBadge",{enumerable:!0,get:function(){return _index37.IconBadge}}),Object.defineProperty(exports,"IconButton",{enumerable:!0,get:function(){return _index38.IconButton}}),Object.defineProperty(exports,"ImageGallery",{enumerable:!0,get:function(){return _index39.ImageGallery}}),Object.defineProperty(exports,"InlineSelect",{enumerable:!0,get:function(){return _index40.InlineSelect}}),Object.defineProperty(exports,"Input",{enumerable:!0,get:function(){return _index41.Input}}),Object.defineProperty(exports,"KeyboardAwareScrollView",{enumerable:!0,get:function(){return _index42.KeyboardAwareScrollView}}),Object.defineProperty(exports,"KeyboardToolbar",{enumerable:!0,get:function(){return _index43.KeyboardToolbar}}),Object.defineProperty(exports,"ListItem",{enumerable:!0,get:function(){return _index44.ListItem}}),Object.defineProperty(exports,"LoaderOverlay",{enumerable:!0,get:function(){return _index45.LoaderOverlay}}),Object.defineProperty(exports,"MODAL_DISMISS_GRACE_MS",{enumerable:!0,get:function(){return _index50.MODAL_DISMISS_GRACE_MS}}),Object.defineProperty(exports,"Markdown",{enumerable:!0,get:function(){return _index46.Markdown}}),Object.defineProperty(exports,"Menu",{enumerable:!0,get:function(){return _index47.Menu}}),Object.defineProperty(exports,"MessageBubble",{enumerable:!0,get:function(){return _index48.MessageBubble}}),Object.defineProperty(exports,"MessageList",{enumerable:!0,get:function(){return _index49.MessageList}}),Object.defineProperty(exports,"Modal",{enumerable:!0,get:function(){return _index50.Modal}}),Object.defineProperty(exports,"Notation",{enumerable:!0,get:function(){return _index51.Notation}}),Object.defineProperty(exports,"NumberInput",{enumerable:!0,get:function(){return _index52.NumberInput}}),Object.defineProperty(exports,"OTPInput",{enumerable:!0,get:function(){return _index55.OTPInput}}),Object.defineProperty(exports,"OnboardingPager",{enumerable:!0,get:function(){return _index53.OnboardingPager}}),Object.defineProperty(exports,"OptionSheet",{enumerable:!0,get:function(){return _index54.OptionSheet}}),Object.defineProperty(exports,"PaymentResult",{enumerable:!0,get:function(){return _index56.PaymentResult}}),Object.defineProperty(exports,"PhoneNumberInput",{enumerable:!0,get:function(){return _index57.PhoneNumberInput}}),Object.defineProperty(exports,"PickerTrigger",{enumerable:!0,get:function(){return _index58.PickerTrigger}}),Object.defineProperty(exports,"ProfileCompletion",{enumerable:!0,get:function(){return _index59.ProfileCompletion}}),Object.defineProperty(exports,"ProfilePicker",{enumerable:!0,get:function(){return _index60.ProfilePicker}}),Object.defineProperty(exports,"ProgressBar",{enumerable:!0,get:function(){return _index61.ProgressBar}}),Object.defineProperty(exports,"ProgressRing",{enumerable:!0,get:function(){return _index62.ProgressRing}}),Object.defineProperty(exports,"Radio",{enumerable:!0,get:function(){return _index63.Radio}}),Object.defineProperty(exports,"RadioDot",{enumerable:!0,get:function(){return _index63.RadioDot}}),Object.defineProperty(exports,"RadioGroup",{enumerable:!0,get:function(){return _index63.RadioGroup}}),Object.defineProperty(exports,"Rating",{enumerable:!0,get:function(){return _index64.Rating}}),Object.defineProperty(exports,"Repeater",{enumerable:!0,get:function(){return _index65.Repeater}}),Object.defineProperty(exports,"RichTextEditor",{enumerable:!0,get:function(){return _index66.RichTextEditor}}),Object.defineProperty(exports,"Row",{enumerable:!0,get:function(){return _index12.Row}}),Object.defineProperty(exports,"ScannerOverlay",{enumerable:!0,get:function(){return _index67.ScannerOverlay}}),Object.defineProperty(exports,"SearchBar",{enumerable:!0,get:function(){return _index68.SearchBar}}),Object.defineProperty(exports,"SectionHeader",{enumerable:!0,get:function(){return _index69.SectionHeader}}),Object.defineProperty(exports,"SegmentedControl",{enumerable:!0,get:function(){return _index70.SegmentedControl}}),Object.defineProperty(exports,"Select",{enumerable:!0,get:function(){return _index71.Select}}),Object.defineProperty(exports,"SignaturePad",{enumerable:!0,get:function(){return _index72.SignaturePad}}),Object.defineProperty(exports,"Skeleton",{enumerable:!0,get:function(){return _index73.Skeleton}}),Object.defineProperty(exports,"SkeletonCircle",{enumerable:!0,get:function(){return _index73.SkeletonCircle}}),Object.defineProperty(exports,"SkeletonClockProvider",{enumerable:!0,get:function(){return _index73.SkeletonClockProvider}}),Object.defineProperty(exports,"SkeletonContent",{enumerable:!0,get:function(){return _index73.SkeletonContent}}),Object.defineProperty(exports,"SkeletonList",{enumerable:!0,get:function(){return _index73.SkeletonList}}),Object.defineProperty(exports,"SkeletonProvider",{enumerable:!0,get:function(){return _index73.SkeletonProvider}}),Object.defineProperty(exports,"SkeletonSkip",{enumerable:!0,get:function(){return _index73.SkeletonSkip}}),Object.defineProperty(exports,"SkeletonText",{enumerable:!0,get:function(){return _index73.SkeletonText}}),Object.defineProperty(exports,"SlideToConfirm",{enumerable:!0,get:function(){return _index76.SlideToConfirm}}),Object.defineProperty(exports,"Slider",{enumerable:!0,get:function(){return _index74.Slider}}),Object.defineProperty(exports,"SliderField",{enumerable:!0,get:function(){return _index75.SliderField}}),Object.defineProperty(exports,"Spacer",{enumerable:!0,get:function(){return _index12.Spacer}}),Object.defineProperty(exports,"Sparkline",{enumerable:!0,get:function(){return _index77.Sparkline}}),Object.defineProperty(exports,"Spinner",{enumerable:!0,get:function(){return _index78.Spinner}}),Object.defineProperty(exports,"Stack",{enumerable:!0,get:function(){return _index12.Stack}}),Object.defineProperty(exports,"StatTile",{enumerable:!0,get:function(){return _index79.StatTile}}),Object.defineProperty(exports,"StatusBadge",{enumerable:!0,get:function(){return _index80.StatusBadge}}),Object.defineProperty(exports,"Stepper",{enumerable:!0,get:function(){return _index81.Stepper}}),Object.defineProperty(exports,"Swipeable",{enumerable:!0,get:function(){return _index82.Swipeable}}),Object.defineProperty(exports,"Switch",{enumerable:!0,get:function(){return _index83.Switch}}),Object.defineProperty(exports,"Tabs",{enumerable:!0,get:function(){return _index84.Tabs}}),Object.defineProperty(exports,"TagInput",{enumerable:!0,get:function(){return _index85.TagInput}}),Object.defineProperty(exports,"Text",{enumerable:!0,get:function(){return _index86.Text}}),Object.defineProperty(exports,"TimePicker",{enumerable:!0,get:function(){return _index88.TimePicker}}),Object.defineProperty(exports,"Timeline",{enumerable:!0,get:function(){return _index87.Timeline}}),Object.defineProperty(exports,"Toast",{enumerable:!0,get:function(){return _index89.Toast}}),Object.defineProperty(exports,"ToastHost",{enumerable:!0,get:function(){return _index89.ToastHost}}),Object.defineProperty(exports,"ToastProvider",{enumerable:!0,get:function(){return _index89.ToastProvider}}),Object.defineProperty(exports,"Tooltip",{enumerable:!0,get:function(){return _index90.Tooltip}}),Object.defineProperty(exports,"Tour",{enumerable:!0,get:function(){return _index91.Tour}}),Object.defineProperty(exports,"TypingIndicator",{enumerable:!0,get:function(){return _index92.TypingIndicator}}),Object.defineProperty(exports,"WheelPicker",{enumerable:!0,get:function(){return _index93.WheelPicker}}),Object.defineProperty(exports,"ZoomableImage",{enumerable:!0,get:function(){return _index94.ZoomableImage}}),Object.defineProperty(exports,"applyMarkdownAction",{enumerable:!0,get:function(){return _index66.applyMarkdownAction}}),Object.defineProperty(exports,"authedImageCacheStats",{enumerable:!0,get:function(){return _index6.authedImageCacheStats}}),Object.defineProperty(exports,"cleanDecimalText",{enumerable:!0,get:function(){return _index25.cleanDecimalText}}),Object.defineProperty(exports,"clearAuthedImageCache",{enumerable:!0,get:function(){return _index6.clearAuthedImageCache}}),Object.defineProperty(exports,"dayLabel",{enumerable:!0,get:function(){return _index24.dayLabel}}),Object.defineProperty(exports,"formatE164",{enumerable:!0,get:function(){return _index57.formatE164}}),Object.defineProperty(exports,"formatFileSize",{enumerable:!0,get:function(){return _index32.formatFileSize}}),Object.defineProperty(exports,"getAuthedImageCacheLimit",{enumerable:!0,get:function(){return _index6.getAuthedImageCacheLimit}}),Object.defineProperty(exports,"loader",{enumerable:!0,get:function(){return _index45.loader}}),Object.defineProperty(exports,"parseDecimalText",{enumerable:!0,get:function(){return _index25.parseDecimalText}}),Object.defineProperty(exports,"parseE164",{enumerable:!0,get:function(){return _index57.parseE164}}),Object.defineProperty(exports,"parseNotation",{enumerable:!0,get:function(){return _index51.parseNotation}}),Object.defineProperty(exports,"setAuthedImageCacheLimit",{enumerable:!0,get:function(){return _index6.setAuthedImageCacheLimit}}),Object.defineProperty(exports,"sym",{enumerable:!0,get:function(){return _index51.sym}}),Object.defineProperty(exports,"toast",{enumerable:!0,get:function(){return _index89.toast}}),Object.defineProperty(exports,"useBottomSheet",{enumerable:!0,get:function(){return _index11.useBottomSheet}}),Object.defineProperty(exports,"useErrorHandler",{enumerable:!0,get:function(){return _index31.useErrorHandler}}),Object.defineProperty(exports,"useLoader",{enumerable:!0,get:function(){return _index45.useLoader}}),Object.defineProperty(exports,"useRecentSearches",{enumerable:!0,get:function(){return _index68.useRecentSearches}}),Object.defineProperty(exports,"useReduceMotion",{enumerable:!0,get:function(){return _index73.useReduceMotion}}),Object.defineProperty(exports,"useSheetSwap",{enumerable:!0,get:function(){return _index11.useSheetSwap}}),Object.defineProperty(exports,"useSkeletonClock",{enumerable:!0,get:function(){return _index73.useSkeletonClock}}),Object.defineProperty(exports,"useSkeletonDefaults",{enumerable:!0,get:function(){return _index73.useSkeletonDefaults}}),Object.defineProperty(exports,"useToast",{enumerable:!0,get:function(){return _index89.useToast}}),Object.defineProperty(exports,"withErrorBoundary",{enumerable:!0,get:function(){return _index31.withErrorBoundary}});var _index=require("./Accordion/index.js"),_index2=require("./AmountSlider/index.js"),_index3=require("./AnimatePresence/index.js"),_index4=require("./AppBar/index.js"),_index5=require("./AsyncBlock/index.js"),_index6=require("./AuthedImage/index.js"),_index7=require("./Autocomplete/index.js"),_index8=require("./Avatar/index.js"),_index9=require("./Badge/index.js"),_index0=require("./Banner/index.js"),_index1=require("./BarChart/index.js"),_index10=require("./BottomNavigation/index.js"),_index11=require("./BottomSheet/index.js"),_index12=require("./Box/index.js"),_index13=require("./Button/index.js"),_index14=require("./Calendar/index.js"),_index15=require("./Card/index.js"),_index16=require("./Carousel/index.js"),_index17=require("./Checkbox/index.js"),_index18=require("./Chip/index.js"),_index19=require("./ChoiceGroup/index.js"),_index20=require("./Composer/index.js"),_index21=require("./Confetti/index.js"),_index22=require("./DatePicker/index.js"),_index23=require("./DateRangePicker/index.js"),_index24=require("./DateSeparator/index.js"),_index25=require("./DecimalInput/index.js"),_index26=require("./Descriptions/index.js"),_index27=require("./Dialog/index.js"),_index28=require("./Divider/index.js"),_index29=require("./Drawer/index.js"),_index30=require("./EmptyState/index.js"),_index31=require("./ErrorBoundary/index.js"),_index32=require("./FilePicker/index.js"),_index33=require("./FileViewer/index.js"),_index34=require("./FloatingActionButton/index.js"),_index35=require("./ForceUpdateDialog/index.js"),_index36=require("./FormField/index.js"),_index37=require("./IconBadge/index.js"),_index38=require("./IconButton/index.js"),_index39=require("./ImageGallery/index.js"),_index40=require("./InlineSelect/index.js"),_index41=require("./Input/index.js"),_index42=require("./KeyboardAwareScrollView/index.js"),_index43=require("./KeyboardToolbar/index.js"),_index44=require("./ListItem/index.js"),_index45=require("./LoaderOverlay/index.js"),_index46=require("./Markdown/index.js"),_index47=require("./Menu/index.js"),_index48=require("./MessageBubble/index.js"),_index49=require("./MessageList/index.js"),_index50=require("./Modal/index.js"),_index51=require("./Notation/index.js"),_index52=require("./NumberInput/index.js"),_index53=require("./OnboardingPager/index.js"),_index54=require("./OptionSheet/index.js"),_index55=require("./OTPInput/index.js"),_index56=require("./PaymentResult/index.js"),_index57=require("./PhoneNumberInput/index.js"),_index58=require("./PickerTrigger/index.js"),_index59=require("./ProfileCompletion/index.js"),_index60=require("./ProfilePicker/index.js"),_index61=require("./ProgressBar/index.js"),_index62=require("./ProgressRing/index.js"),_index63=require("./Radio/index.js"),_index64=require("./Rating/index.js"),_index65=require("./Repeater/index.js"),_index66=require("./RichTextEditor/index.js"),_index67=require("./ScannerOverlay/index.js"),_index68=require("./SearchBar/index.js"),_index69=require("./SectionHeader/index.js"),_index70=require("./SegmentedControl/index.js"),_index71=require("./Select/index.js"),_index72=require("./SignaturePad/index.js"),_index73=require("./Skeleton/index.js"),_index74=require("./Slider/index.js"),_index75=require("./SliderField/index.js"),_index76=require("./SlideToConfirm/index.js"),_index77=require("./Sparkline/index.js"),_index78=require("./Spinner/index.js"),_index79=require("./StatTile/index.js"),_index80=require("./StatusBadge/index.js"),_index81=require("./Stepper/index.js"),_index82=require("./Swipeable/index.js"),_index83=require("./Switch/index.js"),_index84=require("./Tabs/index.js"),_index85=require("./TagInput/index.js"),_index86=require("./Text/index.js"),_index87=require("./Timeline/index.js"),_index88=require("./TimePicker/index.js"),_index89=require("./Toast/index.js"),_index90=require("./Tooltip/index.js"),_index91=require("./Tour/index.js"),_index92=require("./TypingIndicator/index.js"),_index93=require("./WheelPicker/index.js"),_index94=require("./ZoomableImage/index.js");
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"ALL_CALLING_CODES",{enumerable:!0,get:function(){return _index58.ALL_CALLING_CODES}}),Object.defineProperty(exports,"Accordion",{enumerable:!0,get:function(){return _index.Accordion}}),Object.defineProperty(exports,"AccordionGroup",{enumerable:!0,get:function(){return _index.AccordionGroup}}),Object.defineProperty(exports,"AmountSlider",{enumerable:!0,get:function(){return _index2.AmountSlider}}),Object.defineProperty(exports,"AnimatePresence",{enumerable:!0,get:function(){return _index3.AnimatePresence}}),Object.defineProperty(exports,"AppBar",{enumerable:!0,get:function(){return _index4.AppBar}}),Object.defineProperty(exports,"AsyncBlock",{enumerable:!0,get:function(){return _index5.AsyncBlock}}),Object.defineProperty(exports,"AuthedImage",{enumerable:!0,get:function(){return _index6.AuthedImage}}),Object.defineProperty(exports,"Autocomplete",{enumerable:!0,get:function(){return _index7.Autocomplete}}),Object.defineProperty(exports,"Avatar",{enumerable:!0,get:function(){return _index8.Avatar}}),Object.defineProperty(exports,"AvatarGroup",{enumerable:!0,get:function(){return _index8.AvatarGroup}}),Object.defineProperty(exports,"Badge",{enumerable:!0,get:function(){return _index9.Badge}}),Object.defineProperty(exports,"Banner",{enumerable:!0,get:function(){return _index0.Banner}}),Object.defineProperty(exports,"BarChart",{enumerable:!0,get:function(){return _index1.BarChart}}),Object.defineProperty(exports,"BottomNavigation",{enumerable:!0,get:function(){return _index10.BottomNavigation}}),Object.defineProperty(exports,"BottomSheet",{enumerable:!0,get:function(){return _index11.BottomSheet}}),Object.defineProperty(exports,"Box",{enumerable:!0,get:function(){return _index12.Box}}),Object.defineProperty(exports,"Button",{enumerable:!0,get:function(){return _index13.Button}}),Object.defineProperty(exports,"Calendar",{enumerable:!0,get:function(){return _index14.Calendar}}),Object.defineProperty(exports,"Card",{enumerable:!0,get:function(){return _index15.Card}}),Object.defineProperty(exports,"Carousel",{enumerable:!0,get:function(){return _index16.Carousel}}),Object.defineProperty(exports,"Checkbox",{enumerable:!0,get:function(){return _index17.Checkbox}}),Object.defineProperty(exports,"Chip",{enumerable:!0,get:function(){return _index18.Chip}}),Object.defineProperty(exports,"ChoiceGroup",{enumerable:!0,get:function(){return _index19.ChoiceGroup}}),Object.defineProperty(exports,"Composer",{enumerable:!0,get:function(){return _index20.Composer}}),Object.defineProperty(exports,"Confetti",{enumerable:!0,get:function(){return _index21.Confetti}}),Object.defineProperty(exports,"DEFAULT_CALLING_CODES",{enumerable:!0,get:function(){return _index58.DEFAULT_CALLING_CODES}}),Object.defineProperty(exports,"DEFAULT_DATE_SEPARATOR_LABELS",{enumerable:!0,get:function(){return _index24.DEFAULT_DATE_SEPARATOR_LABELS}}),Object.defineProperty(exports,"DEFAULT_MESSAGE_BUBBLE_LABELS",{enumerable:!0,get:function(){return _index48.DEFAULT_MESSAGE_BUBBLE_LABELS}}),Object.defineProperty(exports,"DEFAULT_MESSAGE_LIST_LABELS",{enumerable:!0,get:function(){return _index49.DEFAULT_MESSAGE_LIST_LABELS}}),Object.defineProperty(exports,"DatePicker",{enumerable:!0,get:function(){return _index22.DatePicker}}),Object.defineProperty(exports,"DateRangePicker",{enumerable:!0,get:function(){return _index23.DateRangePicker}}),Object.defineProperty(exports,"DateSeparator",{enumerable:!0,get:function(){return _index24.DateSeparator}}),Object.defineProperty(exports,"DecimalInput",{enumerable:!0,get:function(){return _index25.DecimalInput}}),Object.defineProperty(exports,"Descriptions",{enumerable:!0,get:function(){return _index26.Descriptions}}),Object.defineProperty(exports,"Dialog",{enumerable:!0,get:function(){return _index27.Dialog}}),Object.defineProperty(exports,"Divider",{enumerable:!0,get:function(){return _index28.Divider}}),Object.defineProperty(exports,"Drawer",{enumerable:!0,get:function(){return _index29.Drawer}}),Object.defineProperty(exports,"EmptyState",{enumerable:!0,get:function(){return _index30.EmptyState}}),Object.defineProperty(exports,"ErrorBoundary",{enumerable:!0,get:function(){return _index31.ErrorBoundary}}),Object.defineProperty(exports,"FilePicker",{enumerable:!0,get:function(){return _index32.FilePicker}}),Object.defineProperty(exports,"FileViewer",{enumerable:!0,get:function(){return _index33.FileViewer}}),Object.defineProperty(exports,"FloatingActionButton",{enumerable:!0,get:function(){return _index34.FloatingActionButton}}),Object.defineProperty(exports,"FloatingActionButtonGroup",{enumerable:!0,get:function(){return _index34.FloatingActionButtonGroup}}),Object.defineProperty(exports,"ForceUpdateDialog",{enumerable:!0,get:function(){return _index35.ForceUpdateDialog}}),Object.defineProperty(exports,"FormField",{enumerable:!0,get:function(){return _index36.FormField}}),Object.defineProperty(exports,"IconBadge",{enumerable:!0,get:function(){return _index37.IconBadge}}),Object.defineProperty(exports,"IconButton",{enumerable:!0,get:function(){return _index38.IconButton}}),Object.defineProperty(exports,"ImageGallery",{enumerable:!0,get:function(){return _index39.ImageGallery}}),Object.defineProperty(exports,"InlineSelect",{enumerable:!0,get:function(){return _index40.InlineSelect}}),Object.defineProperty(exports,"Input",{enumerable:!0,get:function(){return _index41.Input}}),Object.defineProperty(exports,"KeyboardAwareScrollView",{enumerable:!0,get:function(){return _index42.KeyboardAwareScrollView}}),Object.defineProperty(exports,"KeyboardToolbar",{enumerable:!0,get:function(){return _index43.KeyboardToolbar}}),Object.defineProperty(exports,"ListItem",{enumerable:!0,get:function(){return _index44.ListItem}}),Object.defineProperty(exports,"LoaderOverlay",{enumerable:!0,get:function(){return _index45.LoaderOverlay}}),Object.defineProperty(exports,"MODAL_DISMISS_GRACE_MS",{enumerable:!0,get:function(){return _index50.MODAL_DISMISS_GRACE_MS}}),Object.defineProperty(exports,"Markdown",{enumerable:!0,get:function(){return _index46.Markdown}}),Object.defineProperty(exports,"Menu",{enumerable:!0,get:function(){return _index47.Menu}}),Object.defineProperty(exports,"MessageBubble",{enumerable:!0,get:function(){return _index48.MessageBubble}}),Object.defineProperty(exports,"MessageList",{enumerable:!0,get:function(){return _index49.MessageList}}),Object.defineProperty(exports,"Modal",{enumerable:!0,get:function(){return _index50.Modal}}),Object.defineProperty(exports,"Notation",{enumerable:!0,get:function(){return _index51.Notation}}),Object.defineProperty(exports,"NumberInput",{enumerable:!0,get:function(){return _index52.NumberInput}}),Object.defineProperty(exports,"OTPInput",{enumerable:!0,get:function(){return _index55.OTPInput}}),Object.defineProperty(exports,"OnboardingPager",{enumerable:!0,get:function(){return _index53.OnboardingPager}}),Object.defineProperty(exports,"OptionSheet",{enumerable:!0,get:function(){return _index54.OptionSheet}}),Object.defineProperty(exports,"PaymentResult",{enumerable:!0,get:function(){return _index56.PaymentResult}}),Object.defineProperty(exports,"PermissionPrompt",{enumerable:!0,get:function(){return _index57.PermissionPrompt}}),Object.defineProperty(exports,"PhoneNumberInput",{enumerable:!0,get:function(){return _index58.PhoneNumberInput}}),Object.defineProperty(exports,"PickerTrigger",{enumerable:!0,get:function(){return _index59.PickerTrigger}}),Object.defineProperty(exports,"ProfileCompletion",{enumerable:!0,get:function(){return _index60.ProfileCompletion}}),Object.defineProperty(exports,"ProfilePicker",{enumerable:!0,get:function(){return _index61.ProfilePicker}}),Object.defineProperty(exports,"ProgressBar",{enumerable:!0,get:function(){return _index62.ProgressBar}}),Object.defineProperty(exports,"ProgressRing",{enumerable:!0,get:function(){return _index63.ProgressRing}}),Object.defineProperty(exports,"Radio",{enumerable:!0,get:function(){return _index64.Radio}}),Object.defineProperty(exports,"RadioDot",{enumerable:!0,get:function(){return _index64.RadioDot}}),Object.defineProperty(exports,"RadioGroup",{enumerable:!0,get:function(){return _index64.RadioGroup}}),Object.defineProperty(exports,"Rating",{enumerable:!0,get:function(){return _index65.Rating}}),Object.defineProperty(exports,"Repeater",{enumerable:!0,get:function(){return _index66.Repeater}}),Object.defineProperty(exports,"RichTextEditor",{enumerable:!0,get:function(){return _index67.RichTextEditor}}),Object.defineProperty(exports,"Row",{enumerable:!0,get:function(){return _index12.Row}}),Object.defineProperty(exports,"ScannerOverlay",{enumerable:!0,get:function(){return _index68.ScannerOverlay}}),Object.defineProperty(exports,"SearchBar",{enumerable:!0,get:function(){return _index69.SearchBar}}),Object.defineProperty(exports,"SectionHeader",{enumerable:!0,get:function(){return _index70.SectionHeader}}),Object.defineProperty(exports,"SegmentedControl",{enumerable:!0,get:function(){return _index71.SegmentedControl}}),Object.defineProperty(exports,"Select",{enumerable:!0,get:function(){return _index72.Select}}),Object.defineProperty(exports,"SignaturePad",{enumerable:!0,get:function(){return _index73.SignaturePad}}),Object.defineProperty(exports,"Skeleton",{enumerable:!0,get:function(){return _index74.Skeleton}}),Object.defineProperty(exports,"SkeletonCircle",{enumerable:!0,get:function(){return _index74.SkeletonCircle}}),Object.defineProperty(exports,"SkeletonClockProvider",{enumerable:!0,get:function(){return _index74.SkeletonClockProvider}}),Object.defineProperty(exports,"SkeletonContent",{enumerable:!0,get:function(){return _index74.SkeletonContent}}),Object.defineProperty(exports,"SkeletonList",{enumerable:!0,get:function(){return _index74.SkeletonList}}),Object.defineProperty(exports,"SkeletonProvider",{enumerable:!0,get:function(){return _index74.SkeletonProvider}}),Object.defineProperty(exports,"SkeletonSkip",{enumerable:!0,get:function(){return _index74.SkeletonSkip}}),Object.defineProperty(exports,"SkeletonText",{enumerable:!0,get:function(){return _index74.SkeletonText}}),Object.defineProperty(exports,"SlideToConfirm",{enumerable:!0,get:function(){return _index77.SlideToConfirm}}),Object.defineProperty(exports,"Slider",{enumerable:!0,get:function(){return _index75.Slider}}),Object.defineProperty(exports,"SliderField",{enumerable:!0,get:function(){return _index76.SliderField}}),Object.defineProperty(exports,"Spacer",{enumerable:!0,get:function(){return _index12.Spacer}}),Object.defineProperty(exports,"Sparkline",{enumerable:!0,get:function(){return _index78.Sparkline}}),Object.defineProperty(exports,"Spinner",{enumerable:!0,get:function(){return _index79.Spinner}}),Object.defineProperty(exports,"Stack",{enumerable:!0,get:function(){return _index12.Stack}}),Object.defineProperty(exports,"StatTile",{enumerable:!0,get:function(){return _index80.StatTile}}),Object.defineProperty(exports,"StatusBadge",{enumerable:!0,get:function(){return _index81.StatusBadge}}),Object.defineProperty(exports,"Stepper",{enumerable:!0,get:function(){return _index82.Stepper}}),Object.defineProperty(exports,"Swipeable",{enumerable:!0,get:function(){return _index83.Swipeable}}),Object.defineProperty(exports,"Switch",{enumerable:!0,get:function(){return _index84.Switch}}),Object.defineProperty(exports,"Tabs",{enumerable:!0,get:function(){return _index85.Tabs}}),Object.defineProperty(exports,"TagInput",{enumerable:!0,get:function(){return _index86.TagInput}}),Object.defineProperty(exports,"Text",{enumerable:!0,get:function(){return _index87.Text}}),Object.defineProperty(exports,"TimePicker",{enumerable:!0,get:function(){return _index89.TimePicker}}),Object.defineProperty(exports,"Timeline",{enumerable:!0,get:function(){return _index88.Timeline}}),Object.defineProperty(exports,"Toast",{enumerable:!0,get:function(){return _index90.Toast}}),Object.defineProperty(exports,"ToastHost",{enumerable:!0,get:function(){return _index90.ToastHost}}),Object.defineProperty(exports,"ToastProvider",{enumerable:!0,get:function(){return _index90.ToastProvider}}),Object.defineProperty(exports,"Tooltip",{enumerable:!0,get:function(){return _index91.Tooltip}}),Object.defineProperty(exports,"Tour",{enumerable:!0,get:function(){return _index92.Tour}}),Object.defineProperty(exports,"TypingIndicator",{enumerable:!0,get:function(){return _index93.TypingIndicator}}),Object.defineProperty(exports,"WheelPicker",{enumerable:!0,get:function(){return _index94.WheelPicker}}),Object.defineProperty(exports,"ZoomableImage",{enumerable:!0,get:function(){return _index95.ZoomableImage}}),Object.defineProperty(exports,"applyMarkdownAction",{enumerable:!0,get:function(){return _index67.applyMarkdownAction}}),Object.defineProperty(exports,"authedImageCacheStats",{enumerable:!0,get:function(){return _index6.authedImageCacheStats}}),Object.defineProperty(exports,"cleanDecimalText",{enumerable:!0,get:function(){return _index25.cleanDecimalText}}),Object.defineProperty(exports,"clearAuthedImageCache",{enumerable:!0,get:function(){return _index6.clearAuthedImageCache}}),Object.defineProperty(exports,"dayLabel",{enumerable:!0,get:function(){return _index24.dayLabel}}),Object.defineProperty(exports,"formatE164",{enumerable:!0,get:function(){return _index58.formatE164}}),Object.defineProperty(exports,"formatFileSize",{enumerable:!0,get:function(){return _index32.formatFileSize}}),Object.defineProperty(exports,"getAuthedImageCacheLimit",{enumerable:!0,get:function(){return _index6.getAuthedImageCacheLimit}}),Object.defineProperty(exports,"loader",{enumerable:!0,get:function(){return _index45.loader}}),Object.defineProperty(exports,"parseDecimalText",{enumerable:!0,get:function(){return _index25.parseDecimalText}}),Object.defineProperty(exports,"parseE164",{enumerable:!0,get:function(){return _index58.parseE164}}),Object.defineProperty(exports,"parseNotation",{enumerable:!0,get:function(){return _index51.parseNotation}}),Object.defineProperty(exports,"setAuthedImageCacheLimit",{enumerable:!0,get:function(){return _index6.setAuthedImageCacheLimit}}),Object.defineProperty(exports,"sym",{enumerable:!0,get:function(){return _index51.sym}}),Object.defineProperty(exports,"toast",{enumerable:!0,get:function(){return _index90.toast}}),Object.defineProperty(exports,"useBottomSheet",{enumerable:!0,get:function(){return _index11.useBottomSheet}}),Object.defineProperty(exports,"useErrorHandler",{enumerable:!0,get:function(){return _index31.useErrorHandler}}),Object.defineProperty(exports,"useLoader",{enumerable:!0,get:function(){return _index45.useLoader}}),Object.defineProperty(exports,"usePermissionPrompt",{enumerable:!0,get:function(){return _index57.usePermissionPrompt}}),Object.defineProperty(exports,"useRecentSearches",{enumerable:!0,get:function(){return _index69.useRecentSearches}}),Object.defineProperty(exports,"useReduceMotion",{enumerable:!0,get:function(){return _index74.useReduceMotion}}),Object.defineProperty(exports,"useSheetSwap",{enumerable:!0,get:function(){return _index11.useSheetSwap}}),Object.defineProperty(exports,"useSkeletonClock",{enumerable:!0,get:function(){return _index74.useSkeletonClock}}),Object.defineProperty(exports,"useSkeletonDefaults",{enumerable:!0,get:function(){return _index74.useSkeletonDefaults}}),Object.defineProperty(exports,"useToast",{enumerable:!0,get:function(){return _index90.useToast}}),Object.defineProperty(exports,"withErrorBoundary",{enumerable:!0,get:function(){return _index31.withErrorBoundary}});var _index=require("./Accordion/index.js"),_index2=require("./AmountSlider/index.js"),_index3=require("./AnimatePresence/index.js"),_index4=require("./AppBar/index.js"),_index5=require("./AsyncBlock/index.js"),_index6=require("./AuthedImage/index.js"),_index7=require("./Autocomplete/index.js"),_index8=require("./Avatar/index.js"),_index9=require("./Badge/index.js"),_index0=require("./Banner/index.js"),_index1=require("./BarChart/index.js"),_index10=require("./BottomNavigation/index.js"),_index11=require("./BottomSheet/index.js"),_index12=require("./Box/index.js"),_index13=require("./Button/index.js"),_index14=require("./Calendar/index.js"),_index15=require("./Card/index.js"),_index16=require("./Carousel/index.js"),_index17=require("./Checkbox/index.js"),_index18=require("./Chip/index.js"),_index19=require("./ChoiceGroup/index.js"),_index20=require("./Composer/index.js"),_index21=require("./Confetti/index.js"),_index22=require("./DatePicker/index.js"),_index23=require("./DateRangePicker/index.js"),_index24=require("./DateSeparator/index.js"),_index25=require("./DecimalInput/index.js"),_index26=require("./Descriptions/index.js"),_index27=require("./Dialog/index.js"),_index28=require("./Divider/index.js"),_index29=require("./Drawer/index.js"),_index30=require("./EmptyState/index.js"),_index31=require("./ErrorBoundary/index.js"),_index32=require("./FilePicker/index.js"),_index33=require("./FileViewer/index.js"),_index34=require("./FloatingActionButton/index.js"),_index35=require("./ForceUpdateDialog/index.js"),_index36=require("./FormField/index.js"),_index37=require("./IconBadge/index.js"),_index38=require("./IconButton/index.js"),_index39=require("./ImageGallery/index.js"),_index40=require("./InlineSelect/index.js"),_index41=require("./Input/index.js"),_index42=require("./KeyboardAwareScrollView/index.js"),_index43=require("./KeyboardToolbar/index.js"),_index44=require("./ListItem/index.js"),_index45=require("./LoaderOverlay/index.js"),_index46=require("./Markdown/index.js"),_index47=require("./Menu/index.js"),_index48=require("./MessageBubble/index.js"),_index49=require("./MessageList/index.js"),_index50=require("./Modal/index.js"),_index51=require("./Notation/index.js"),_index52=require("./NumberInput/index.js"),_index53=require("./OnboardingPager/index.js"),_index54=require("./OptionSheet/index.js"),_index55=require("./OTPInput/index.js"),_index56=require("./PaymentResult/index.js"),_index57=require("./PermissionPrompt/index.js"),_index58=require("./PhoneNumberInput/index.js"),_index59=require("./PickerTrigger/index.js"),_index60=require("./ProfileCompletion/index.js"),_index61=require("./ProfilePicker/index.js"),_index62=require("./ProgressBar/index.js"),_index63=require("./ProgressRing/index.js"),_index64=require("./Radio/index.js"),_index65=require("./Rating/index.js"),_index66=require("./Repeater/index.js"),_index67=require("./RichTextEditor/index.js"),_index68=require("./ScannerOverlay/index.js"),_index69=require("./SearchBar/index.js"),_index70=require("./SectionHeader/index.js"),_index71=require("./SegmentedControl/index.js"),_index72=require("./Select/index.js"),_index73=require("./SignaturePad/index.js"),_index74=require("./Skeleton/index.js"),_index75=require("./Slider/index.js"),_index76=require("./SliderField/index.js"),_index77=require("./SlideToConfirm/index.js"),_index78=require("./Sparkline/index.js"),_index79=require("./Spinner/index.js"),_index80=require("./StatTile/index.js"),_index81=require("./StatusBadge/index.js"),_index82=require("./Stepper/index.js"),_index83=require("./Swipeable/index.js"),_index84=require("./Switch/index.js"),_index85=require("./Tabs/index.js"),_index86=require("./TagInput/index.js"),_index87=require("./Text/index.js"),_index88=require("./Timeline/index.js"),_index89=require("./TimePicker/index.js"),_index90=require("./Toast/index.js"),_index91=require("./Tooltip/index.js"),_index92=require("./Tour/index.js"),_index93=require("./TypingIndicator/index.js"),_index94=require("./WheelPicker/index.js"),_index95=require("./ZoomableImage/index.js");
@@ -1 +1 @@
1
- "use strict";import{forwardRef,useEffect,useMemo,useRef}from"react";import{Animated,Pressable,StyleSheet,View}from"react-native";import Svg,{Path}from"react-native-svg";import{useControllableState}from"../../hooks/index.js";import{createAnimatedValue,useTheme}from"../../theme/index.js";import{smoothCorners}from"../../utils/corners.js";import{resolveHaptic,triggerHaptic}from"../../utils/hapticUtils.js";import{ChoiceText,hasChoiceDetail}from"../FieldBase/ChoiceText.js";import{fieldTextAsString,hasFieldText}from"../FieldBase/FieldBase.js";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";const sizeMap={sm:16,md:20,lg:24},toneColor=(e,r)=>{switch(r){case"success":return e.colors.success;case"warning":return e.colors.warning;case"error":return e.colors.error;default:return e.colors.primary}},toneOnColor=(e,r)=>{switch(r){case"success":return e.colors.onSuccess;case"warning":return e.colors.onWarning;case"error":return e.colors.onError;default:return e.colors.onPrimary}},Checkbox=forwardRef((e,r)=>{const{checked:t,defaultChecked:s,onChange:o,indeterminate:i=!1,disabled:a=!1,label:n,description:l,error:c,help:d,labelLines:h,size:p="md",tone:m="primary",accessibilityLabel:u,haptic:x,style:b,boxStyle:f,indeterminateBarStyle:g,containerStyle:y,labelStyle:w,testID:C,...S}=e,[j,k]=useControllableState({value:t,defaultValue:s??!1,onChange:o}),T=useTheme(),v=useMemo(()=>buildStyles(T),[T]),R=T.components.checkbox?.[p]?.boxSize??sizeMap[p],_=T.colors.border.width,L=T.components.checkbox?.labelGap??10,V=toneColor(T,m),M=j||i,A=useRef(createAnimatedValue(M?1:0)).current;useEffect(()=>{const e=Animated.spring(A,{toValue:M?1:0,damping:T.motion.spring.snappy.damping,stiffness:T.motion.spring.snappy.stiffness,mass:T.motion.spring.snappy.mass,useNativeDriver:!0});return e.start(),()=>e.stop()},[M,A,T.motion.spring.snappy]);const D=A.interpolate({inputRange:[0,1],outputRange:[0,1]}),F=u??fieldTextAsString(n),I=M?V:a?T.colors.border.primary:hasFieldText(c)?T.colors.field.borderError:T.colors.border.primary,P=M?V:a?T.colors.surface.disabled:"transparent",H=a&&!M?T.colors.text.disabled:toneOnColor(T,m),B=Math.round(.72*R),W=Math.round(.55*R),z=Math.max(2,Math.round(.12*R)),E=_jsxs(Pressable,{ref:r,onPress:e=>{if(a)return;const r=resolveHaptic(x,"selection");r&&triggerHaptic(r),k(!j),S.onPressOut?.(e)},disabled:a,accessibilityRole:"checkbox",accessibilityLabel:F,accessibilityHint:S.accessibilityHint??fieldTextAsString(l),accessibilityState:{checked:i?"mixed":j,disabled:a},"aria-checked":i?"mixed":j,"aria-disabled":a,testID:C,hitSlop:6,...S,style:({pressed:e})=>[v.row,hasChoiceDetail(l,c)?v.rowTop:null,hasFieldText(d)?v.rowShrink:null,{opacity:a?.55:e?.85:1},y,b],children:[_jsx(View,{style:[v.box,{width:R,height:R,borderWidth:_,borderRadius:T.radius.xs,...smoothCorners,borderColor:I,backgroundColor:P},f],children:_jsx(Animated.View,{style:[v.glyphWrap,{opacity:A,transform:[{scale:D}]}],children:i?_jsx(View,{style:[{width:W,height:z,borderRadius:z/2,...smoothCorners,backgroundColor:H},g]}):_jsx(Svg,{width:B,height:B,viewBox:"0 0 24 24",children:_jsx(Path,{d:"M5 12.5l4.5 4.5L19 7.5",stroke:H,strokeWidth:3,strokeLinecap:"round",strokeLinejoin:"round",fill:"none"})})})}),_jsx(ChoiceText,{label:n,description:l,error:c,disabled:a,labelLines:h||void 0,descriptionLines:h||void 0,style:{marginLeft:L},labelStyle:w})]});return hasFieldText(d)?_jsxs(View,{style:[v.helpRow,hasChoiceDetail(l,c)?v.rowTop:null],children:[E,_jsx(View,{style:[v.help,{marginLeft:T.spacing.xs}],children:d})]}):E});Checkbox.displayName="Checkbox";const buildStyles=e=>StyleSheet.create({row:{flexDirection:"row",alignItems:"center"},rowTop:{alignItems:"flex-start"},rowShrink:{flexShrink:1},helpRow:{flexDirection:"row",alignItems:"center"},help:{flexShrink:0},box:{alignItems:"center",justifyContent:"center"},glyphWrap:{alignItems:"center",justifyContent:"center"}});export{Checkbox};export default Checkbox;
1
+ "use strict";import{forwardRef,useEffect,useMemo,useRef}from"react";import{Animated,Pressable,StyleSheet,View}from"react-native";import Svg,{Path}from"react-native-svg";import{useControllableState}from"../../hooks/index.js";import{createAnimatedValue,useTheme}from"../../theme/index.js";import{smoothCorners}from"../../utils/corners.js";import{resolveHaptic,triggerHaptic}from"../../utils/hapticUtils.js";import{ChoiceText,hasChoiceDetail}from"../FieldBase/ChoiceText.js";import{fieldTextAsString,hasFieldText}from"../FieldBase/FieldBase.js";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";const sizeMap={sm:16,md:20,lg:24},toneColor=(e,r)=>{switch(r){case"success":return e.colors.success;case"warning":return e.colors.warning;case"error":return e.colors.error;default:return e.colors.primary}},toneOnColor=(e,r)=>{switch(r){case"success":return e.colors.onSuccess;case"warning":return e.colors.onWarning;case"error":return e.colors.onError;default:return e.colors.onPrimary}},Checkbox=forwardRef((e,r)=>{const{checked:t,defaultChecked:s,onChange:o,indeterminate:i=!1,disabled:a=!1,label:n,description:l,error:c,help:d,labelLines:h,size:p="md",tone:m="primary",accessibilityLabel:u,haptic:x,style:b,boxStyle:f,indeterminateBarStyle:g,containerStyle:y,labelStyle:w,testID:C,...S}=e,[j,k]=useControllableState({value:t,defaultValue:s??!1,onChange:o}),T=useTheme(),v=useMemo(()=>buildStyles(T),[T]),R=T.components.checkbox?.[p]?.boxSize??sizeMap[p],_=T.colors.border.width,L=T.components.checkbox?.labelGap??10,V=toneColor(T,m),M=j||i,A=useRef(createAnimatedValue(M?1:0)).current;useEffect(()=>{const e=Animated.spring(A,{toValue:M?1:0,damping:T.motion.spring.snappy.damping,stiffness:T.motion.spring.snappy.stiffness,mass:T.motion.spring.snappy.mass,useNativeDriver:!0});return e.start(),()=>e.stop()},[M,A,T.motion.spring.snappy]);const D=A.interpolate({inputRange:[0,1],outputRange:[0,1]}),F=u??fieldTextAsString(n),I=!0===c||hasFieldText(c),P=M?V:a?T.colors.border.primary:I?T.colors.field.borderError:T.colors.border.primary,H=M?V:a?T.colors.surface.disabled:"transparent",B=a&&!M?T.colors.text.disabled:toneOnColor(T,m),W=Math.round(.72*R),z=Math.round(.55*R),E=Math.max(2,Math.round(.12*R)),O=_jsxs(Pressable,{ref:r,onPress:e=>{if(a)return;const r=resolveHaptic(x,"selection");r&&triggerHaptic(r),k(!j),S.onPressOut?.(e)},disabled:a,accessibilityRole:"checkbox",accessibilityLabel:F,accessibilityHint:S.accessibilityHint??fieldTextAsString(l),accessibilityState:{checked:i?"mixed":j,disabled:a},"aria-checked":i?"mixed":j,"aria-disabled":a,testID:C,hitSlop:6,...S,style:({pressed:e})=>[v.row,hasChoiceDetail(l,c)?v.rowTop:null,hasFieldText(d)?v.rowShrink:null,{opacity:a?.55:e?.85:1},y,b],children:[_jsx(View,{style:[v.box,{width:R,height:R,borderWidth:_,borderRadius:T.radius.xs,...smoothCorners,borderColor:P,backgroundColor:H},f],children:_jsx(Animated.View,{style:[v.glyphWrap,{opacity:A,transform:[{scale:D}]}],children:i?_jsx(View,{style:[{width:z,height:E,borderRadius:E/2,...smoothCorners,backgroundColor:B},g]}):_jsx(Svg,{width:W,height:W,viewBox:"0 0 24 24",children:_jsx(Path,{d:"M5 12.5l4.5 4.5L19 7.5",stroke:B,strokeWidth:3,strokeLinecap:"round",strokeLinejoin:"round",fill:"none"})})})}),_jsx(ChoiceText,{label:n,description:l,error:c,disabled:a,labelLines:h||void 0,descriptionLines:h||void 0,style:{marginLeft:L},labelStyle:w})]});return hasFieldText(d)?_jsxs(View,{style:[v.helpRow,hasChoiceDetail(l,c)?v.rowTop:null],children:[O,_jsx(View,{style:[v.help,{marginLeft:T.spacing.xs}],children:d})]}):O});Checkbox.displayName="Checkbox";const buildStyles=e=>StyleSheet.create({row:{flexDirection:"row",alignItems:"center"},rowTop:{alignItems:"flex-start"},rowShrink:{flexShrink:1},helpRow:{flexDirection:"row",alignItems:"center"},help:{flexShrink:0},box:{alignItems:"center",justifyContent:"center"},glyphWrap:{alignItems:"center",justifyContent:"center"}});export{Checkbox};export default Checkbox;
@@ -1 +1 @@
1
- "use strict";import{StyleSheet,Text,View}from"react-native";import{fontFor,useTheme}from"../../theme/index.js";import{FieldErrorGlyph,hasFieldText}from"./FieldBase.js";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";export const hasChoiceDetail=(e,s)=>hasFieldText(e)||hasFieldText(s);export const ChoiceText=({label:e,description:s,error:t,disabled:o=!1,labelLines:l,descriptionLines:r,style:i,labelStyle:n})=>{const a=useTheme();if(!hasFieldText(e)&&!hasFieldText(s)&&!hasFieldText(t))return null;const c=a.typography.fontSize.sm;return _jsxs(View,{style:[styles.column,i],children:[hasFieldText(e)?_jsx(Text,{style:[{color:o?a.colors.text.disabled:a.colors.text.primary,fontSize:a.typography.fontSize.base,...fontFor(a,"normal")},n],numberOfLines:l,children:e}):null,hasFieldText(s)?_jsx(Text,{style:{color:o?a.colors.text.disabled:a.colors.text.secondary,fontSize:c,marginTop:a.spacing.xs/2,...fontFor(a,"normal")},numberOfLines:r,children:s}):null,hasFieldText(t)?_jsxs(View,{style:[styles.errorRow,{marginTop:a.spacing.xs,columnGap:a.spacing.xs}],accessibilityLiveRegion:"polite",children:[_jsx(FieldErrorGlyph,{size:c,color:a.colors.field.message}),_jsx(Text,{style:{flexShrink:1,color:a.colors.field.message,fontSize:c,...fontFor(a,"normal")},children:t})]}):null]})};const styles=StyleSheet.create({column:{flexShrink:1},errorRow:{flexDirection:"row",alignItems:"center"}});
1
+ "use strict";import{StyleSheet,Text,View}from"react-native";import{fontFor,useTheme}from"../../theme/index.js";import{NotationInkContext,useNotationInk}from"../Notation/Notation.js";import{FieldErrorGlyph,hasFieldText}from"./FieldBase.js";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";export const hasChoiceDetail=(e,o)=>hasFieldText(e)||hasFieldText(o);export const ChoiceText=({label:e,description:o,error:t,disabled:s=!1,labelLines:i,descriptionLines:r,style:l,labelStyle:n})=>{const a=useTheme(),x=s?a.colors.text.disabled:a.colors.text.primary,c=s?a.colors.text.disabled:a.colors.text.secondary,d=a.typography.fontSize.sm,h=useNotationInk(n,a.typography.fontSize.base,x),m=useNotationInk(void 0,d,c),p=useNotationInk(void 0,d,a.colors.field.message);return hasFieldText(e)||hasFieldText(o)||hasFieldText(t)?_jsxs(View,{style:[styles.column,l],children:[hasFieldText(e)?_jsx(Text,{style:[{color:x,fontSize:a.typography.fontSize.base,...fontFor(a,"normal")},n],numberOfLines:i,children:_jsx(NotationInkContext.Provider,{value:h,children:e})}):null,hasFieldText(o)?_jsx(Text,{style:{color:c,fontSize:d,marginTop:a.spacing.xs/2,...fontFor(a,"normal")},numberOfLines:r,children:_jsx(NotationInkContext.Provider,{value:m,children:o})}):null,hasFieldText(t)?_jsxs(View,{style:[styles.errorRow,{marginTop:a.spacing.xs,columnGap:a.spacing.xs}],accessibilityLiveRegion:"polite",children:[_jsx(FieldErrorGlyph,{size:d,color:a.colors.field.message}),_jsx(Text,{style:{flexShrink:1,color:a.colors.field.message,fontSize:d,...fontFor(a,"normal")},children:_jsx(NotationInkContext.Provider,{value:p,children:t})})]}):null]}):null};const styles=StyleSheet.create({column:{flexShrink:1},errorRow:{flexDirection:"row",alignItems:"center"}});
@@ -1 +1 @@
1
- "use strict";import{useEffect,useMemo,useRef}from"react";import{Animated,Easing,Pressable,StyleSheet,Text,View}from"react-native";import{createAnimatedValue,fontFor,useTheme}from"../../theme/index.js";import{ariaFromState}from"../../utils/ariaState.js";import{smoothCorners}from"../../utils/corners.js";import{defaultIcons}from"../AppIcon/defaultIcons.js";import{NotationInkContext}from"../Notation/Notation.js";import{SquircleFill,useSquircle}from"../SquircleFill/SquircleFill.js";import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";const expandColorSides=e=>"string"==typeof e?{top:e,right:e,bottom:e,left:e}:{top:e.top??"transparent",right:e.right??"transparent",bottom:e.bottom??"transparent",left:e.left??"transparent"},expandWidthSides=e=>"number"==typeof e?{top:e,right:e,bottom:e,left:e}:{top:e.top??0,right:e.right??0,bottom:e.bottom??0,left:e.left??0};export const pickRepresentativeBorderColor=e=>{for(const t of["bottom","top","left","right"]){const o=e[t];if(o&&"transparent"!==o)return o}return e.bottom};export const resolveFieldTextStyle=(e,t={})=>{const{disabled:o=!1}=t,r=e.components.field,i=e.colors.field;return{color:o?r?.disabledTextColor??i.textDisabled:r?.textColor??i.text,placeholderColor:r?.placeholderColor??(o?i.placeholderDisabled:i.placeholder),weightStyle:r?.fontWeight?{fontWeight:r.fontWeight}:fontFor(e,"normal")}};export const RequiredMark=()=>{const e=useTheme(),t=e.components.field;return _jsx(Text,{style:{color:t?.requiredMarkerColor??e.colors.toneText.error},children:` ${t?.requiredMarker??"*"}`})};export const RequiredPlaceholder=({text:e,color:t,fontSize:o,weightStyle:r,align:i="center",paddingTop:l,textAlign:n})=>_jsx(View,{pointerEvents:"none",style:[StyleSheet.absoluteFill,{justifyContent:"top"===i?"flex-start":"center",paddingTop:l}],children:_jsxs(Text,{accessible:!1,numberOfLines:1,style:{color:t,fontSize:o,...r,includeFontPadding:!1,textAlign:n},children:[e,_jsx(RequiredMark,{})]})});export const FieldErrorGlyph=({size:e,color:t})=>{const o=useTheme(),r=o.icons?.error??defaultIcons.error;return _jsx(_Fragment,{children:r({size:e,color:t})})};export const hasFieldText=e=>null!=e&&!1!==e&&!0!==e&&""!==e;export const fieldTextAsString=e=>"string"==typeof e?e:void 0;export const FieldLabel=({children:e,size:t="md",required:o=!1,help:r,color:i,style:l})=>{const n=useTheme(),s=resolveFieldSize(n,t),d=hasFieldText(r),a=StyleSheet.flatten(l),c=a?.fontSize??s.labelFontSize,b=a?.color??i??n.colors.field.label,p=useMemo(()=>({fontSize:c,color:b}),[c,b]),g=_jsxs(Text,{style:[familyStyles.label,{color:i??n.colors.field.label,fontSize:s.labelFontSize,...fontFor(n,"semibold"),marginBottom:d?0:s.labelGap},d?familyStyles.labelShrink:null,l],children:[_jsx(NotationInkContext.Provider,{value:p,children:e}),o?_jsx(RequiredMark,{}):null]});return d?_jsxs(View,{style:[familyStyles.labelRow,{marginBottom:s.labelGap}],children:[g,_jsx(View,{style:[familyStyles.help,{marginLeft:n.spacing.xs}],children:r})]}):g};export const FieldMessage=({text:e,error:t=!1,size:o="md",style:r})=>{const i=useTheme(),l=resolveFieldSize(i,o);if(!hasFieldText(e))return null;const n=t?i.colors.field.message:i.colors.text.secondary;return _jsxs(View,{style:[familyStyles.messageRow,{marginTop:l.messageGap,columnGap:i.spacing.xs+2}],accessibilityLiveRegion:t?"polite":"none",children:[t?_jsx(FieldErrorGlyph,{size:l.messageFontSize,color:n}):null,_jsx(Text,{style:[familyStyles.messageText,{color:n,fontSize:l.messageFontSize,...fontFor(i,"normal")},r],children:e})]})};const familyStyles=StyleSheet.create({label:{includeFontPadding:!1},labelShrink:{flexShrink:1},labelRow:{flexDirection:"row",alignItems:"center"},help:{flexShrink:0,alignItems:"center",justifyContent:"center"},messageRow:{flexDirection:"row",alignItems:"center"},messageText:{flexShrink:1,includeFontPadding:!1}});export const resolveFieldSize=(e,t)=>{const o=e.components.field?.[t],r=DEFAULT_SIZES[t];return{paddingHorizontal:o?.paddingHorizontal??r.paddingHorizontal,paddingVertical:o?.paddingVertical??r.paddingVertical,minHeight:o?.minHeight??r.minHeight,fontSize:o?.fontSize??r.fontSize,borderRadius:o?.borderRadius??r.borderRadius,iconSize:o?.iconSize??r.iconSize,labelFontSize:o?.labelFontSize??r.labelFontSize,labelGap:o?.labelGap??r.labelGap,messageFontSize:o?.messageFontSize??r.messageFontSize,messageGap:o?.messageGap??r.messageGap}};const DEFAULT_SIZES={sm:{paddingHorizontal:12,paddingVertical:10,minHeight:38,fontSize:13,borderRadius:10,iconSize:14,labelFontSize:11,labelGap:4,messageFontSize:11,messageGap:2},md:{paddingHorizontal:14,paddingVertical:13,minHeight:44,fontSize:14,borderRadius:10,iconSize:16,labelFontSize:12,labelGap:4,messageFontSize:12,messageGap:2},lg:{paddingHorizontal:16,paddingVertical:15,minHeight:52,fontSize:16,borderRadius:10,iconSize:18,labelFontSize:13,labelGap:4,messageFontSize:13,messageGap:2}};export const resolveVariantColors=(e,t,o)=>{const r=e.components.field?.[t],i=e.colors.field;let l,n,s,d,a;"outlined"===t?(l=i.background,n=i.backgroundFocused,s=i.backgroundDisabled,d=i.border,a=e.colors.border.width):"underline"===t?(l="transparent",n=void 0,s="transparent",d={bottom:i.border},a={bottom:e.colors.border.width}):(l=i.background,n=void 0,s=i.backgroundDisabled,d="transparent",a=0);const wrapToIdleShape=e=>"string"==typeof d?e:{bottom:e},c=expandColorSides(o?.borderIdle??r?.borderIdle??d),b=expandColorSides(o?.borderFocused??r?.borderFocused??wrapToIdleShape(i.borderFocused)),p=expandColorSides(o?.borderError??r?.borderError??wrapToIdleShape(i.borderError)),g=expandColorSides(o?.borderDisabled??r?.borderDisabled??d),u=expandWidthSides(o?.borderWidth??r?.borderWidth??a);return{backgroundIdleEmpty:o?.backgroundIdleEmpty??r?.backgroundIdleEmpty??l,backgroundIdleFilled:o?.backgroundIdleFilled??r?.backgroundIdleFilled??o?.backgroundIdleEmpty??r?.backgroundIdleEmpty??l,backgroundFocused:o?.backgroundFocused??r?.backgroundFocused??n,backgroundError:o?.backgroundError??r?.backgroundError??void 0,backgroundDisabled:o?.backgroundDisabled??r?.backgroundDisabled??s,borderIdle:c,borderFocused:b,borderError:p,borderDisabled:g,borderWidth:u,borderFocusedRepresentative:pickRepresentativeBorderColor(b)}};export const FieldBase=e=>{const{size:t="md",variant:o,focused:r=!1,disabled:i=!1,error:l=!1,filled:n=!1,leading:s,leadingDivider:d=!1,trailing:a,slotAlign:c="center",slotLineHeight:b,topNotch:p,children:g,onPress:u,pressFeedback:m=!0,minHeight:h,maxHeight:f,width:S,height:x,paddingHorizontal:y,paddingLeft:F,paddingRight:z,paddingVertical:k,borderRadius:R,borderTopLeftRadius:C,borderTopRightRadius:j,borderBottomLeftRadius:v,borderBottomRightRadius:T,borderWidth:I,borderTopWidth:w,borderRightWidth:_,borderBottomWidth:E,borderLeftWidth:V,gap:H,fillOverrides:D,style:L,testID:W,accessibilityRole:G,accessibilityLabel:B,accessibilityState:q,accessibilityHint:A}=e,M=useTheme(),P=useMemo(()=>buildStyles(),[]),N=o??M.components.field?.defaultVariant??"outlined",O=resolveFieldSize(M,t),U=useMemo(()=>resolveVariantColors(M,N,D),[M,N,D]),Z=l?2:r?1:0,$=useRef(createAnimatedValue(Z)).current;useEffect(()=>{const e=Animated.timing($,{toValue:Z,duration:M.motion.duration.fast,easing:Easing.bezier(...M.motion.easing.standard),useNativeDriver:!1});return e.start(),()=>e.stop()},[Z,$,M.motion.duration.fast,M.motion.easing.standard]);const J=[0,1,2],K=n?U.backgroundIdleFilled:U.backgroundIdleEmpty,Q=U.backgroundFocused??K,X=U.backgroundError??K,Y=i?U.backgroundDisabled:$.interpolate({inputRange:J,outputRange:[K,Q,X]}),ee=U.borderIdle,te=U.borderFocused,oe=U.borderError,re={top:w,right:_,bottom:E,left:V},ie={top:re.top??I??U.borderWidth.top,right:re.right??I??U.borderWidth.right,bottom:re.bottom??I??U.borderWidth.bottom,left:re.left??I??U.borderWidth.left},le={minHeight:x??h??O.minHeight,maxHeight:f,paddingHorizontal:y??O.paddingHorizontal,paddingVertical:k??O.paddingVertical,paddingLeft:F??y??O.paddingHorizontal,paddingRight:z??y??O.paddingHorizontal,backgroundColor:Y,columnGap:H??M.spacing.md,alignItems:"top"===c?"flex-start":"center"},ne="underline"===N,se=ne?0:R??O.borderRadius,de=ne?{tl:0,tr:0,bl:0,br:0}:{tl:C??se,tr:j??se,bl:v??se,br:T??se};le.borderTopLeftRadius=de.tl,le.borderTopRightRadius=de.tr,le.borderBottomLeftRadius=de.bl,le.borderBottomRightRadius=de.br,le.borderCurve=smoothCorners.borderCurve,le.borderTopWidth=ie.top,le.borderRightWidth=ie.right,le.borderBottomWidth=ie.bottom,le.borderLeftWidth=ie.left;const sideColor=e=>$.interpolate({inputRange:J,outputRange:[ee[e],te[e],oe[e]]}),sameOnEverySide=e=>e.top===e.right&&e.top===e.bottom&&e.top===e.left,ae=!ne&&de.tl===de.tr&&de.tl===de.bl&&de.tl===de.br&&sameOnEverySide(ie)&&sameOnEverySide(ee)&&sameOnEverySide(te)&&sameOnEverySide(oe)&&sameOnEverySide(U.borderDisabled),ce=useSquircle(ae,de.tl);if(ce.active)le.backgroundColor="transparent",le.borderTopColor="transparent",le.borderRightColor="transparent",le.borderBottomColor="transparent",le.borderLeftColor="transparent";else if(i){const e=U.borderDisabled;le.borderTopColor=e.top,le.borderRightColor=e.right,le.borderBottomColor=e.bottom,le.borderLeftColor=e.left}else le.borderTopColor=sideColor("top"),le.borderRightColor=sideColor("right"),le.borderBottomColor=sideColor("bottom"),le.borderLeftColor=sideColor("left");const be=i?U.borderDisabled.top:sideColor("top"),pe=useRef(Z);pe.current=Z,useEffect(()=>{$.setValue(pe.current)},[U,$]),void 0!==S&&(le.width=S),void 0!==x&&(le.height=x);const ge={disabled:i,...q},ue="top"===c,me=ue?{alignSelf:"flex-start",marginTop:Math.max(0,((b??O.iconSize)-O.iconSize)/2)}:null,he=x??h??O.minHeight,fe=(()=>{if(!p)return 0;const e=Math.min(de.tl,he/2),t=p.left;return e<=0||t>=e?0:Math.ceil(e-Math.sqrt(e*e-(e-t)*(e-t)))})(),Se=p&&ie.top>0?_jsx(Animated.View,{pointerEvents:"none",style:{position:"absolute",top:-ie.top,left:p.left-ie.left,width:p.width,height:ie.top+fe,backgroundColor:Y}}):null,renderInner=e=>_jsxs(_Fragment,{children:[ce.active&&ce.size?_jsx(SquircleFill,{width:ce.size.width,height:ce.size.height,radius:de.tl,fill:e&&!i?M.colors.surface.pressed:Y,stroke:be,strokeWidth:ie.top,outset:ie.top}):null,Se,null!=s?_jsx(View,{style:[P.slot,me],children:s}):null,null!=s&&d?_jsx(View,{pointerEvents:"none",style:[P.divider,me,{height:O.iconSize,backgroundColor:M.colors.field.border}]}):null,_jsx(View,{style:[P.content,ue?P.contentTop:null],children:g}),null!=a?_jsx(View,{style:[P.slot,me],children:a}):null]}),xe=_jsx(Animated.View,{onLayout:ce.onLayout,style:[P.box,le,L],accessibilityRole:G,accessibilityLabel:B,accessibilityHint:A,accessibilityState:ge,...ariaFromState(ge),testID:W,children:renderInner(!1)});return u&&!m?_jsx(Pressable,{onPress:u,disabled:i,accessible:!1,children:xe}):u?_jsx(Pressable,{onPress:u,disabled:i,accessibilityRole:G??"button",accessibilityLabel:B,accessibilityHint:A,accessibilityState:ge,...ariaFromState(ge),testID:W,children:({pressed:e})=>_jsx(Animated.View,{onLayout:ce.onLayout,style:[P.box,le,!e||i||ce.active?null:{backgroundColor:M.colors.surface.pressed},L],children:renderInner(e)})}):xe};FieldBase.displayName="FieldBase";const buildStyles=()=>StyleSheet.create({box:{flexDirection:"row",alignItems:"center",overflow:"visible"},slot:{alignItems:"center",justifyContent:"center"},divider:{width:1,alignSelf:"center"},content:{flex:1,flexDirection:"row",alignItems:"center"},contentTop:{alignItems:"flex-start"}});export default FieldBase;
1
+ "use strict";import{useEffect,useMemo,useRef}from"react";import{Animated,Easing,Pressable,StyleSheet,Text,View}from"react-native";import{createAnimatedValue,fontFor,useTheme}from"../../theme/index.js";import{ariaFromState}from"../../utils/ariaState.js";import{smoothCorners}from"../../utils/corners.js";import{defaultIcons}from"../AppIcon/defaultIcons.js";import{NotationInkContext,useNotationInk}from"../Notation/Notation.js";import{SquircleFill,useSquircle}from"../SquircleFill/SquircleFill.js";import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";const expandColorSides=e=>"string"==typeof e?{top:e,right:e,bottom:e,left:e}:{top:e.top??"transparent",right:e.right??"transparent",bottom:e.bottom??"transparent",left:e.left??"transparent"},expandWidthSides=e=>"number"==typeof e?{top:e,right:e,bottom:e,left:e}:{top:e.top??0,right:e.right??0,bottom:e.bottom??0,left:e.left??0};export const pickRepresentativeBorderColor=e=>{for(const t of["bottom","top","left","right"]){const o=e[t];if(o&&"transparent"!==o)return o}return e.bottom};export const resolveFieldTextStyle=(e,t={})=>{const{disabled:o=!1}=t,r=e.components.field,i=e.colors.field;return{color:o?r?.disabledTextColor??i.textDisabled:r?.textColor??i.text,placeholderColor:r?.placeholderColor??(o?i.placeholderDisabled:i.placeholder),weightStyle:r?.fontWeight?{fontWeight:r.fontWeight}:fontFor(e,"normal")}};export const RequiredMark=()=>{const e=useTheme(),t=e.components.field;return _jsx(Text,{style:{color:t?.requiredMarkerColor??e.colors.toneText.error},children:` ${t?.requiredMarker??"*"}`})};export const RequiredPlaceholder=({text:e,color:t,fontSize:o,weightStyle:r,align:i="center",paddingTop:l,textAlign:n})=>_jsx(View,{pointerEvents:"none",style:[StyleSheet.absoluteFill,{justifyContent:"top"===i?"flex-start":"center",paddingTop:l}],children:_jsxs(Text,{accessible:!1,numberOfLines:1,style:{color:t,fontSize:o,...r,includeFontPadding:!1,textAlign:n},children:[e,_jsx(RequiredMark,{})]})});export const FieldErrorGlyph=({size:e,color:t})=>{const o=useTheme(),r=o.icons?.error??defaultIcons.error;return _jsx(_Fragment,{children:r({size:e,color:t})})};export const hasFieldText=e=>null!=e&&!1!==e&&!0!==e&&""!==e;export const fieldTextAsString=e=>"string"==typeof e?e:void 0;export const FieldLabel=({children:e,size:t="md",required:o=!1,help:r,color:i,style:l})=>{const n=useTheme(),s=resolveFieldSize(n,t),a=hasFieldText(r),d=useNotationInk(l,s.labelFontSize,i??n.colors.field.label),c=_jsxs(Text,{style:[familyStyles.label,{color:i??n.colors.field.label,fontSize:s.labelFontSize,...fontFor(n,"semibold"),marginBottom:a?0:s.labelGap},a?familyStyles.labelShrink:null,l],children:[_jsx(NotationInkContext.Provider,{value:d,children:e}),o?_jsx(RequiredMark,{}):null]});return a?_jsxs(View,{style:[familyStyles.labelRow,{marginBottom:s.labelGap}],children:[c,_jsx(View,{style:[familyStyles.help,{marginLeft:n.spacing.xs}],children:r})]}):c};export const FieldMessage=({text:e,error:t=!1,size:o="md",style:r})=>{const i=useTheme(),l=resolveFieldSize(i,o),n=t?i.colors.field.message:i.colors.text.secondary,s=useNotationInk(r,l.messageFontSize,n);return hasFieldText(e)?_jsxs(View,{style:[familyStyles.messageRow,{marginTop:l.messageGap,columnGap:i.spacing.xs+2}],accessibilityLiveRegion:t?"polite":"none",children:[t?_jsx(FieldErrorGlyph,{size:l.messageFontSize,color:n}):null,_jsx(Text,{style:[familyStyles.messageText,{color:n,fontSize:l.messageFontSize,...fontFor(i,"normal")},r],children:_jsx(NotationInkContext.Provider,{value:s,children:e})})]}):null};const familyStyles=StyleSheet.create({label:{includeFontPadding:!1},labelShrink:{flexShrink:1},labelRow:{flexDirection:"row",alignItems:"center"},help:{flexShrink:0,alignItems:"center",justifyContent:"center"},messageRow:{flexDirection:"row",alignItems:"center"},messageText:{flexShrink:1,includeFontPadding:!1}});export const resolveFieldSize=(e,t)=>{const o=e.components.field?.[t],r=DEFAULT_SIZES[t];return{paddingHorizontal:o?.paddingHorizontal??r.paddingHorizontal,paddingVertical:o?.paddingVertical??r.paddingVertical,minHeight:o?.minHeight??r.minHeight,fontSize:o?.fontSize??r.fontSize,borderRadius:o?.borderRadius??r.borderRadius,iconSize:o?.iconSize??r.iconSize,labelFontSize:o?.labelFontSize??r.labelFontSize,labelGap:o?.labelGap??r.labelGap,messageFontSize:o?.messageFontSize??r.messageFontSize,messageGap:o?.messageGap??r.messageGap}};const DEFAULT_SIZES={sm:{paddingHorizontal:12,paddingVertical:10,minHeight:38,fontSize:13,borderRadius:10,iconSize:14,labelFontSize:11,labelGap:4,messageFontSize:11,messageGap:2},md:{paddingHorizontal:14,paddingVertical:13,minHeight:44,fontSize:14,borderRadius:10,iconSize:16,labelFontSize:12,labelGap:4,messageFontSize:12,messageGap:2},lg:{paddingHorizontal:16,paddingVertical:15,minHeight:52,fontSize:16,borderRadius:10,iconSize:18,labelFontSize:13,labelGap:4,messageFontSize:13,messageGap:2}};export const resolveVariantColors=(e,t,o)=>{const r=e.components.field?.[t],i=e.colors.field;let l,n,s,a,d;"outlined"===t?(l=i.background,n=i.backgroundFocused,s=i.backgroundDisabled,a=i.border,d=e.colors.border.width):"underline"===t?(l="transparent",n=void 0,s="transparent",a={bottom:i.border},d={bottom:e.colors.border.width}):(l=i.background,n=void 0,s=i.backgroundDisabled,a="transparent",d=0);const wrapToIdleShape=e=>"string"==typeof a?e:{bottom:e},c=expandColorSides(o?.borderIdle??r?.borderIdle??a),b=expandColorSides(o?.borderFocused??r?.borderFocused??wrapToIdleShape(i.borderFocused)),p=expandColorSides(o?.borderError??r?.borderError??wrapToIdleShape(i.borderError)),g=expandColorSides(o?.borderDisabled??r?.borderDisabled??a),u=expandWidthSides(o?.borderWidth??r?.borderWidth??d);return{backgroundIdleEmpty:o?.backgroundIdleEmpty??r?.backgroundIdleEmpty??l,backgroundIdleFilled:o?.backgroundIdleFilled??r?.backgroundIdleFilled??o?.backgroundIdleEmpty??r?.backgroundIdleEmpty??l,backgroundFocused:o?.backgroundFocused??r?.backgroundFocused??n,backgroundError:o?.backgroundError??r?.backgroundError??void 0,backgroundDisabled:o?.backgroundDisabled??r?.backgroundDisabled??s,borderIdle:c,borderFocused:b,borderError:p,borderDisabled:g,borderWidth:u,borderFocusedRepresentative:pickRepresentativeBorderColor(b)}};export const FieldBase=e=>{const{size:t="md",variant:o,focused:r=!1,disabled:i=!1,error:l=!1,filled:n=!1,leading:s,leadingDivider:a=!1,trailing:d,slotAlign:c="center",slotLineHeight:b,topNotch:p,children:g,onPress:u,pressFeedback:m=!0,minHeight:h,maxHeight:f,width:x,height:S,paddingHorizontal:y,paddingLeft:F,paddingRight:z,paddingVertical:k,borderRadius:R,borderTopLeftRadius:C,borderTopRightRadius:j,borderBottomLeftRadius:v,borderBottomRightRadius:I,borderWidth:T,borderTopWidth:w,borderRightWidth:_,borderBottomWidth:E,borderLeftWidth:V,gap:H,fillOverrides:D,style:L,testID:W,accessibilityRole:G,accessibilityLabel:B,accessibilityState:q,accessibilityHint:A}=e,M=useTheme(),P=useMemo(()=>buildStyles(),[]),N=o??M.components.field?.defaultVariant??"outlined",O=resolveFieldSize(M,t),U=useMemo(()=>resolveVariantColors(M,N,D),[M,N,D]),Z=l?2:r?1:0,$=useRef(createAnimatedValue(Z)).current;useEffect(()=>{const e=Animated.timing($,{toValue:Z,duration:M.motion.duration.fast,easing:Easing.bezier(...M.motion.easing.standard),useNativeDriver:!1});return e.start(),()=>e.stop()},[Z,$,M.motion.duration.fast,M.motion.easing.standard]);const J=[0,1,2],K=n?U.backgroundIdleFilled:U.backgroundIdleEmpty,Q=U.backgroundFocused??K,X=U.backgroundError??K,Y=i?U.backgroundDisabled:$.interpolate({inputRange:J,outputRange:[K,Q,X]}),ee=U.borderIdle,te=U.borderFocused,oe=U.borderError,re={top:w,right:_,bottom:E,left:V},ie={top:re.top??T??U.borderWidth.top,right:re.right??T??U.borderWidth.right,bottom:re.bottom??T??U.borderWidth.bottom,left:re.left??T??U.borderWidth.left},le={minHeight:S??h??O.minHeight,maxHeight:f,paddingHorizontal:y??O.paddingHorizontal,paddingVertical:k??O.paddingVertical,paddingLeft:F??y??O.paddingHorizontal,paddingRight:z??y??O.paddingHorizontal,backgroundColor:Y,columnGap:H??M.spacing.md,alignItems:"top"===c?"flex-start":"center"},ne="underline"===N,se=ne?0:R??O.borderRadius,ae=ne?{tl:0,tr:0,bl:0,br:0}:{tl:C??se,tr:j??se,bl:v??se,br:I??se};le.borderTopLeftRadius=ae.tl,le.borderTopRightRadius=ae.tr,le.borderBottomLeftRadius=ae.bl,le.borderBottomRightRadius=ae.br,le.borderCurve=smoothCorners.borderCurve,le.borderTopWidth=ie.top,le.borderRightWidth=ie.right,le.borderBottomWidth=ie.bottom,le.borderLeftWidth=ie.left;const sideColor=e=>$.interpolate({inputRange:J,outputRange:[ee[e],te[e],oe[e]]}),sameOnEverySide=e=>e.top===e.right&&e.top===e.bottom&&e.top===e.left,de=!ne&&ae.tl===ae.tr&&ae.tl===ae.bl&&ae.tl===ae.br&&sameOnEverySide(ie)&&sameOnEverySide(ee)&&sameOnEverySide(te)&&sameOnEverySide(oe)&&sameOnEverySide(U.borderDisabled),ce=useSquircle(de,ae.tl);if(ce.active)le.backgroundColor="transparent",le.borderTopColor="transparent",le.borderRightColor="transparent",le.borderBottomColor="transparent",le.borderLeftColor="transparent";else if(i){const e=U.borderDisabled;le.borderTopColor=e.top,le.borderRightColor=e.right,le.borderBottomColor=e.bottom,le.borderLeftColor=e.left}else le.borderTopColor=sideColor("top"),le.borderRightColor=sideColor("right"),le.borderBottomColor=sideColor("bottom"),le.borderLeftColor=sideColor("left");const be=i?U.borderDisabled.top:sideColor("top"),pe=useRef(Z);pe.current=Z,useEffect(()=>{$.setValue(pe.current)},[U,$]),void 0!==x&&(le.width=x),void 0!==S&&(le.height=S);const ge={disabled:i,...q},ue="top"===c,me=ue?{alignSelf:"flex-start",marginTop:Math.max(0,((b??O.iconSize)-O.iconSize)/2)}:null,he=S??h??O.minHeight,fe=(()=>{if(!p)return 0;const e=Math.min(ae.tl,he/2),t=p.left;return e<=0||t>=e?0:Math.ceil(e-Math.sqrt(e*e-(e-t)*(e-t)))})(),xe=p&&ie.top>0?_jsx(Animated.View,{pointerEvents:"none",style:{position:"absolute",top:-ie.top,left:p.left-ie.left,width:p.width,height:ie.top+fe,backgroundColor:Y}}):null,renderInner=e=>_jsxs(_Fragment,{children:[ce.active&&ce.size?_jsx(SquircleFill,{width:ce.size.width,height:ce.size.height,radius:ae.tl,fill:e&&!i?M.colors.surface.pressed:Y,stroke:be,strokeWidth:ie.top,outset:ie.top}):null,xe,null!=s?_jsx(View,{style:[P.slot,me],children:s}):null,null!=s&&a?_jsx(View,{pointerEvents:"none",style:[P.divider,me,{height:O.iconSize,backgroundColor:M.colors.field.border}]}):null,_jsx(View,{style:[P.content,ue?P.contentTop:null],children:g}),null!=d?_jsx(View,{style:[P.slot,me],children:d}):null]}),Se=_jsx(Animated.View,{onLayout:ce.onLayout,style:[P.box,le,L],accessibilityRole:G,accessibilityLabel:B,accessibilityHint:A,accessibilityState:ge,...ariaFromState(ge),testID:W,children:renderInner(!1)});return u&&!m?_jsx(Pressable,{onPress:u,disabled:i,accessible:!1,children:Se}):u?_jsx(Pressable,{onPress:u,disabled:i,accessibilityRole:G??"button",accessibilityLabel:B,accessibilityHint:A,accessibilityState:ge,...ariaFromState(ge),testID:W,children:({pressed:e})=>_jsx(Animated.View,{onLayout:ce.onLayout,style:[P.box,le,!e||i||ce.active?null:{backgroundColor:M.colors.surface.pressed},L],children:renderInner(e)})}):Se};FieldBase.displayName="FieldBase";const buildStyles=()=>StyleSheet.create({box:{flexDirection:"row",alignItems:"center",overflow:"visible"},slot:{alignItems:"center",justifyContent:"center"},divider:{width:1,alignSelf:"center"},content:{flex:1,flexDirection:"row",alignItems:"center"},contentTop:{alignItems:"flex-start"}});export default FieldBase;
@@ -1 +1 @@
1
- "use strict";import{useEffect,useMemo,useRef,useState}from"react";import{Animated,Easing,StyleSheet}from"react-native";import{createAnimatedValue,fontFor,useTheme}from"../../theme/index.js";import{hasFieldText,RequiredMark}from"./FieldBase.js";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";export const FLOATED_LABEL_SCALE=.85;const FLOATED_LABEL_LIFT=1,NOTCH_GAP=4;export const useFloatingLabel=({label:e,enabled:t,floated:n,required:i=!1,variant:a,sizeTokens:r,leadingOffset:o,trailingOffset:s=0,textAlign:l="left",paddingLeft:u,lineHeight:d,restNudge:g=0,floatTrim:m=0,color:f,style:c})=>{const h=useTheme(),p=useRef(createAnimatedValue(n?1:0)).current,x=useRef(createAnimatedValue(n?1:0)).current,A="outlined"===a,[R,E]=useState(null);return useEffect(()=>{const e=n?1:0,timing=(t,n)=>Animated.timing(t,{toValue:e,duration:h.motion.duration.fast,easing:Easing.bezier(...h.motion.easing.standard),useNativeDriver:n});A||x.setValue(e);const t=A?Animated.parallel([timing(p,!0),timing(x,!1)]):timing(p,!0);return t.start(),()=>t.stop()},[n,A,p,x,h.motion.duration.fast,h.motion.easing.standard]),useMemo(()=>{if(!t||!hasFieldText(e))return{node:null,topNotch:void 0};const n=d??R?.height??r.fontSize,a=null!=d?r.paddingVertical+g:Math.max(0,(r.minHeight-n)/2),L=-(a+n/2+1-m),S=p.interpolate({inputRange:[0,1],outputRange:[0,L]}),T=p.interpolate({inputRange:[0,1],outputRange:[1,.85]}),j=-o,v=p.interpolate({inputRange:[0,1],outputRange:[0,j]}),F="right"===l?{right:r.paddingHorizontal+s,transformOrigin:"right center"}:"center"===l?{alignSelf:"center",transformOrigin:"center"}:{left:u+o,transformOrigin:"left center"},_=R?.85*R.width:0,y=R?"right"===l?R.width-_:"center"===l?(R.width-_)/2:0:0,O=A&&R?{left:R.x+j+y-4,width:x.interpolate({inputRange:[0,1],outputRange:[0,_+8]})}:void 0;return{node:_jsxs(Animated.Text,{pointerEvents:"none",onLayout:e=>{const{x:t,width:n,height:i}=e.nativeEvent.layout;E(e=>e&&e.x===t&&e.width===n&&e.height===i?e:{x:t,width:n,height:i})},style:[styles.label,F,{top:a,color:f,fontSize:r.fontSize,lineHeight:d,...fontFor(h,"medium"),transform:[{translateX:v},{translateY:S},{scale:T}]},c],children:[e,i?_jsx(RequiredMark,{}):null]}),topNotch:O}},[t,e,i,A,r,o,s,l,u,d,g,m,f,c,p,x,R,h])};const styles=StyleSheet.create({label:{position:"absolute",zIndex:1}});
1
+ "use strict";import{useEffect,useMemo,useRef,useState}from"react";import{Animated,Easing,StyleSheet}from"react-native";import{createAnimatedValue,fontFor,useTheme}from"../../theme/index.js";import{NotationInkContext}from"../Notation/Notation.js";import{hasFieldText,RequiredMark}from"./FieldBase.js";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";export const FLOATED_LABEL_SCALE=.85;const FLOATED_LABEL_LIFT=1,NOTCH_GAP=4;export const useFloatingLabel=({label:t,enabled:e,floated:n,required:i=!1,variant:o,sizeTokens:a,leadingOffset:r,trailingOffset:s=0,textAlign:l="left",paddingLeft:u,lineHeight:d,restNudge:f=0,floatTrim:m=0,color:c,style:g})=>{const h=useTheme(),p=useRef(createAnimatedValue(n?1:0)).current,x=useRef(createAnimatedValue(n?1:0)).current,S="outlined"===o,[A,R]=useState(null);return useEffect(()=>{const t=n?1:0,timing=(e,n)=>Animated.timing(e,{toValue:t,duration:h.motion.duration.fast,easing:Easing.bezier(...h.motion.easing.standard),useNativeDriver:n});S||x.setValue(t);const e=S?Animated.parallel([timing(p,!0),timing(x,!1)]):timing(p,!0);return e.start(),()=>e.stop()},[n,S,p,x,h.motion.duration.fast,h.motion.easing.standard]),useMemo(()=>{if(!e||!hasFieldText(t))return{node:null,topNotch:void 0};const n=d??A?.height??a.fontSize,o=null!=d?a.paddingVertical+f:Math.max(0,(a.minHeight-n)/2),j=-(o+n/2+1-m),v=p.interpolate({inputRange:[0,1],outputRange:[0,j]}),E=p.interpolate({inputRange:[0,1],outputRange:[1,.85]}),L=-r,T=p.interpolate({inputRange:[0,1],outputRange:[0,L]}),z="right"===l?{right:a.paddingHorizontal+s,transformOrigin:"right center"}:"center"===l?{alignSelf:"center",transformOrigin:"center"}:{left:u+r,transformOrigin:"left center"},_=A?.85*A.width:0,y=A?"right"===l?A.width-_:"center"===l?(A.width-_)/2:0:0,F=S&&A?{left:A.x+L+y-4,width:x.interpolate({inputRange:[0,1],outputRange:[0,_+8]})}:void 0,N=StyleSheet.flatten(g),O={fontSize:N?.fontSize??a.fontSize,color:N?.color??c};return{node:_jsxs(Animated.Text,{pointerEvents:"none",onLayout:t=>{const{x:e,width:n,height:i}=t.nativeEvent.layout;R(t=>t&&t.x===e&&t.width===n&&t.height===i?t:{x:e,width:n,height:i})},style:[styles.label,z,{top:o,color:c,fontSize:a.fontSize,lineHeight:d,...fontFor(h,"medium"),transform:[{translateX:T},{translateY:v},{scale:E}]},g],children:[_jsx(NotationInkContext.Provider,{value:O,children:t}),i?_jsx(RequiredMark,{}):null]}),topNotch:F}},[e,t,i,S,a,r,s,l,u,d,f,m,c,g,p,x,A,h])};const styles=StyleSheet.create({label:{position:"absolute",zIndex:1}});
@@ -1 +1 @@
1
- "use strict";import React,{forwardRef,useEffect,useMemo,useRef}from"react";import{Animated,StyleSheet,Text,View}from"react-native";import{useOptionalFormContext}from"../../form/FormContext.js";import{createAnimatedValue,fontFor,useTheme}from"../../theme/index.js";import{fieldTextAsString,hasFieldText,RequiredMark}from"../FieldBase/index.js";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";const FormField=forwardRef((e,t)=>{const{label:r,help:i,helperText:l,error:n,required:o=!1,name:s,children:a,layout:c="stacked",helperLines:u,labelStyle:d,helperStyle:m,errorStyle:x,containerStyle:f,inputContainerStyle:p,accessibilityLabel:h,testID:y}=e,F=useTheme(),S=useMemo(()=>buildStyles(F),[F]),b=useOptionalFormContext(),g=null!=s&&null!=b,T=g?b.getFieldProps(s):null,j="function"==typeof a,w=g?j?T?.error:void 0:n,R=fieldTextAsString(g?T?.error:n),k=useRef(createAnimatedValue(w?1:0)).current;useEffect(()=>{const e=Animated.timing(k,{toValue:w?1:0,duration:F.motion.duration.fast,useNativeDriver:!0});return e.start(),()=>e.stop()},[w,k,F.motion.duration.fast]);const v=useMemo(()=>{if(h)return h;const e=fieldTextAsString(r);return e?R?`${e}, error: ${R}`:e:void 0},[h,r,R]),I=hasFieldText(r),V=_jsxs(Text,{style:[S.label,"inline"!==c||hasFieldText(i)?null:S.labelInline,hasFieldText(i)?S.labelShrink:null,d],children:[r,o?_jsx(RequiredMark,{}):null]}),_=I?hasFieldText(i)?_jsxs(View,{style:[S.labelRow,"inline"===c?S.labelInline:null],children:[V,_jsx(View,{style:[S.help,{marginLeft:F.spacing.xs}],children:i})]}):V:null,A="inline"===c?S.inputInline:S.inputStacked,L=hasFieldText(w),C=!L&&hasFieldText(l),z=(()=>{if(j)return T?a(T):null;if(g&&T&&React.isValidElement(a)){const e=a,t=e.props.onChangeText,r=e.props.onBlur,i=e.props.onFocus;return React.cloneElement(e,{value:T.value,onChangeText:e=>{T.onChangeText(e),t?.(e)},onBlur:e=>{T.onBlur(),r?.(e)},onFocus:e=>{T.onFocus(),i?.(e)},error:T.error,ref:e=>b.registerField(s,e??null)})}return a})(),D=o&&!I&&React.isValidElement(z)?React.cloneElement(z,{required:!0}):z;return _jsxs(View,{ref:t,style:["inline"===c?S.rootInline:S.rootStacked,f],accessibilityLabel:v,accessibilityHint:R||void 0,testID:y,children:[_,_jsx(View,{style:[A,p],children:D}),C?_jsx(Text,{style:[S.helper,m],numberOfLines:u||void 0,children:l}):null,L?_jsx(Animated.Text,{style:[S.error,{opacity:k},x],numberOfLines:u||void 0,accessibilityLiveRegion:"polite",children:w}):null]})});FormField.displayName="FormField";const buildStyles=e=>StyleSheet.create({rootStacked:{flexDirection:"column",gap:e.spacing.xs},rootInline:{flexDirection:"row",alignItems:"center",flexWrap:"wrap",gap:e.spacing.xs},label:{fontSize:e.typography.fontSize.sm,...fontFor(e,"medium"),color:e.colors.text.secondary},labelShrink:{flexShrink:1},labelRow:{flexDirection:"row",alignItems:"center"},help:{flexShrink:0},labelInline:{width:e.components.formField?.inlineLabelWidth??"35%"},inputStacked:{width:"100%"},inputInline:{flex:1,minWidth:0},helper:{fontSize:e.typography.fontSize.sm,color:e.colors.text.tertiary},error:{fontSize:e.typography.fontSize.sm,color:e.colors.toneText.error}});export{FormField};export default FormField;
1
+ "use strict";import React,{forwardRef,useEffect,useMemo,useRef}from"react";import{Animated,StyleSheet,Text,View}from"react-native";import{useOptionalFormContext}from"../../form/FormContext.js";import{createAnimatedValue,fontFor,useTheme}from"../../theme/index.js";import{fieldTextAsString,hasFieldText,RequiredMark}from"../FieldBase/index.js";import{NotationInkContext,useNotationInk}from"../Notation/Notation.js";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";const FormField=forwardRef((e,t)=>{const{label:r,help:o,helperText:n,error:i,required:l=!1,name:s,children:a,layout:c="stacked",helperLines:u,labelStyle:d,helperStyle:m,errorStyle:x,containerStyle:p,inputContainerStyle:f,accessibilityLabel:h,testID:y}=e,S=useTheme(),F=useMemo(()=>buildStyles(S),[S]),g=useOptionalFormContext(),b=null!=s&&null!=g,T=b?g.getFieldProps(s):null,j="function"==typeof a,k=b?j?T?.error:void 0:i,I=fieldTextAsString(b?T?.error:i),v=useRef(createAnimatedValue(k?1:0)).current;useEffect(()=>{const e=Animated.timing(v,{toValue:k?1:0,duration:S.motion.duration.fast,useNativeDriver:!0});return e.start(),()=>e.stop()},[k,v,S.motion.duration.fast]);const w=useMemo(()=>{if(h)return h;const e=fieldTextAsString(r);return e?I?`${e}, error: ${I}`:e:void 0},[h,r,I]),R=useNotationInk(d,S.typography.fontSize.sm,S.colors.text.secondary),_=useNotationInk(m,S.typography.fontSize.sm,S.colors.text.tertiary),N=useNotationInk(x,S.typography.fontSize.sm,S.colors.toneText.error),C=hasFieldText(r),V=_jsxs(Text,{style:[F.label,"inline"!==c||hasFieldText(o)?null:F.labelInline,hasFieldText(o)?F.labelShrink:null,d],children:[_jsx(NotationInkContext.Provider,{value:R,children:r}),l?_jsx(RequiredMark,{}):null]}),z=C?hasFieldText(o)?_jsxs(View,{style:[F.labelRow,"inline"===c?F.labelInline:null],children:[V,_jsx(View,{style:[F.help,{marginLeft:S.spacing.xs}],children:o})]}):V:null,A="inline"===c?F.inputInline:F.inputStacked,L=hasFieldText(k),D=!L&&hasFieldText(n),E=(()=>{if(j)return T?a(T):null;if(b&&T&&React.isValidElement(a)){const e=a,t=e.props.onChangeText,r=e.props.onBlur,o=e.props.onFocus;return React.cloneElement(e,{value:T.value,onChangeText:e=>{T.onChangeText(e),t?.(e)},onBlur:e=>{T.onBlur(),r?.(e)},onFocus:e=>{T.onFocus(),o?.(e)},error:T.error,ref:e=>g.registerField(s,e??null)})}return a})(),M=l&&!C&&React.isValidElement(E)?React.cloneElement(E,{required:!0}):E;return _jsxs(View,{ref:t,style:["inline"===c?F.rootInline:F.rootStacked,p],accessibilityLabel:w,accessibilityHint:I||void 0,testID:y,children:[z,_jsx(View,{style:[A,f],children:M}),D?_jsx(Text,{style:[F.helper,m],numberOfLines:u||void 0,children:_jsx(NotationInkContext.Provider,{value:_,children:n})}):null,L?_jsx(Animated.Text,{style:[F.error,{opacity:v},x],numberOfLines:u||void 0,accessibilityLiveRegion:"polite",children:_jsx(NotationInkContext.Provider,{value:N,children:k})}):null]})});FormField.displayName="FormField";const buildStyles=e=>StyleSheet.create({rootStacked:{flexDirection:"column",gap:e.spacing.xs},rootInline:{flexDirection:"row",alignItems:"center",flexWrap:"wrap",gap:e.spacing.xs},label:{fontSize:e.typography.fontSize.sm,...fontFor(e,"medium"),color:e.colors.text.secondary},labelShrink:{flexShrink:1},labelRow:{flexDirection:"row",alignItems:"center"},help:{flexShrink:0},labelInline:{width:e.components.formField?.inlineLabelWidth??"35%"},inputStacked:{width:"100%"},inputInline:{flex:1,minWidth:0},helper:{fontSize:e.typography.fontSize.sm,color:e.colors.text.tertiary},error:{fontSize:e.typography.fontSize.sm,color:e.colors.toneText.error}});export{FormField};export default FormField;
@@ -1 +1 @@
1
- "use strict";import{forwardRef,useCallback,useEffect,useMemo,useRef,useState}from"react";import{Animated,Easing,Pressable,StyleSheet,Text,TextInput,View}from"react-native";import{useReducedMotion}from"../../hooks/index.js";import{createAnimatedValue,fontFor,setNativeValue,useTheme}from"../../theme/index.js";import{mergeRefs,triggerHaptic}from"../../utils/index.js";import{defaultIcons}from"../AppIcon/defaultIcons.js";import{renderSlotIcon}from"../AppIcon/slotIcon.js";import{Button}from"../Button/index.js";import{FieldBase,FieldErrorGlyph,FieldLabel,fieldTextAsString,hasFieldText,RequiredPlaceholder,resolveFieldSize,resolveFieldTextStyle}from"../FieldBase/FieldBase.js";import{useFloatingLabel}from"../FieldBase/useFloatingLabel.js";import{NotationInkContext}from"../Notation/Notation.js";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";const multilineMinHeightMap={sm:72,md:92,lg:110},Input=forwardRef((e,t)=>{const{label:i,help:o,placeholder:n,value:l,onChangeText:r,error:s,helperText:a,type:d="input",secureTextEntry:c=!1,showPasswordToggle:u=!1,disabled:f=!1,multiline:p=!1,leftIcon:g,rightIcon:m,unit:x,unitStyle:h,prefix:y,prefixStyle:S,readOnly:b=!1,action:v,actionStyle:j,size:F="md",variant:w,labelMode:z,required:T=!1,maxLength:I,showCounter:R=!0,textAlign:V,format:_,parse:A,style:k,containerStyle:C,inputStyle:N,labelStyle:D,messageStyle:H,borderRadius:L,onFocus:E,onBlur:M,accessibilityLabel:P,testID:B,editable:O,...G}=e,q=useTheme(),W=useMemo(()=>buildStyles(q),[q]),$=resolveFieldSize(q,F),X=multilineMinHeightMap[F],J=Math.round(1.4*$.fontSize),K=w??q.components.input?.defaultVariant??q.components.field?.defaultVariant??"outlined",Q=z??q.components.input?.defaultLabelMode??"top",[U,Y]=useState(!1),[Z,ee]=useState(!1),te="password"===d||u||c,ie="password"===d||u,oe="textarea"===d||p,ne=oe?Math.round(.1*$.fontSize):0,le="string"==typeof l&&l.length>0,re=hasFieldText(s),se=!0===s||re,ae=hasFieldText(a),de=re||!se&&ae,ce=hasFieldText(i),ue=hasFieldText(y),fe=!f&&!1!==O,pe=U||le||ue,ge=useRef(null),me=useMemo(()=>mergeRefs(ge,t),[t]),xe=useCallback(()=>{fe&&ge.current?.focus()},[fe]),he=ce&&"float"===Q,ye=useRef(createAnimatedValue(0)).current,Se=useRef(createAnimatedValue(de?1:0)).current;useEffect(()=>{const e=Animated.timing(Se,{toValue:de?1:0,duration:q.motion.duration.fast,easing:Easing.bezier(...q.motion.easing.standard),useNativeDriver:!0});return e.start(),()=>e.stop()},[de,Se,q.motion.duration.fast,q.motion.easing.standard]);const be=useReducedMotion(),ve=q.components.input?.shakeOnError??!1,je=useRef(se);useEffect(()=>{if(!ve)return void(je.current=se);let e;return se&&!je.current&&(be||(setNativeValue(ye,0),e=Animated.sequence([Animated.timing(ye,{toValue:1,duration:50,useNativeDriver:!0}),Animated.timing(ye,{toValue:-1,duration:50,useNativeDriver:!0}),Animated.timing(ye,{toValue:1,duration:50,useNativeDriver:!0}),Animated.timing(ye,{toValue:-1,duration:50,useNativeDriver:!0}),Animated.timing(ye,{toValue:0,duration:100,useNativeDriver:!0})]),e.start()),triggerHaptic("notificationError")),je.current=se,()=>e?.stop()},[se,ye,ve,be]);const Fe=useCallback(e=>{Y(!0),E?.(e)},[E]),we=useCallback(e=>{Y(!1),M?.(e)},[M]),ze=useCallback(()=>{triggerHaptic("selection"),ee(e=>!e)},[]),Te=useMemo(()=>{const e=q.components.input?.fillColors?.[K];if(!e)return;const t={};return void 0!==e.idleEmpty&&(t.backgroundIdleEmpty=e.idleEmpty),void 0!==e.idleFilled&&(t.backgroundIdleFilled=e.idleFilled),void 0!==e.focus&&(t.backgroundFocused=e.focus),void 0!==e.error&&(t.backgroundError=e.error),void 0!==e.disabled&&(t.backgroundDisabled=e.disabled),Object.keys(t).length>0?t:void 0},[q.components.input?.fillColors,K]),Ie=q.colors.field.caret,Re=L??q.components.input?.borderRadius,Ve=q.components.input?.tintLabelOnFocus??!1,_e=U&&Ve?q.colors.field.borderFocused:q.colors.field.label,Ae=ye.interpolate({inputRange:[-1,0,1],outputRange:[-6,0,6]}),ke=Boolean(m)||Boolean(x)||ie,Ce="underline"===K,Ne=g?$.iconSize+q.spacing.md+1+q.spacing.md:0,De=useFloatingLabel({label:i,enabled:he,floated:pe,required:T,variant:K,sizeTokens:$,leadingOffset:Ne,trailingOffset:ke?$.iconSize+q.spacing.sm:0,textAlign:V,paddingLeft:Ce?0:$.paddingHorizontal,lineHeight:oe?J:void 0,restNudge:ne,floatTrim:oe?2:0,color:_e,style:D}),He=resolveFieldTextStyle(q,{disabled:f}),Le=He.color,Ee=He.placeholderColor,Me=T&&!ce&&!le&&"string"==typeof n&&n.length>0,Pe=se?s:a,Be=R&&"number"==typeof I&&"string"==typeof l?`${l.length} / ${I}`:null,Oe=se?q.colors.field.message:q.colors.text.secondary,Ge=P??fieldTextAsString(i)??n,qe=q.colors.field,We=f?qe.iconDisabled:U?qe.iconFocused:qe.icon,$e={focused:U,disabled:f,error:se,color:We,size:$.iconSize},renderSlot=e=>renderSlotIcon(e,$e),Xe=(()=>{if(ie){const e=(Z?q.icons?.eyeOff:q.icons?.eye)??(Z?defaultIcons.eyeOff:defaultIcons.eye);return _jsx(Pressable,{onPress:ze,disabled:!fe,hitSlop:8,accessibilityRole:"button",accessibilityLabel:Z?"Hide password":"Show password",children:e({size:$.iconSize,color:We})})}const e=x?_jsx(Text,{style:[W.unit,{fontSize:$.fontSize,color:Ee},h],children:x}):null,t=m?_jsx(View,{children:renderSlot(m)}):null;return e&&t?_jsxs(View,{style:W.trailingRow,children:[e,t]}):e??t})(),Je=g?_jsx(View,{children:renderSlot(g)}):null,Ke=StyleSheet.flatten(S),Qe=Ke?.fontSize??$.fontSize,Ue=Ke?.color??Ee,Ye=useMemo(()=>({fontSize:Qe,color:Ue}),[Qe,Ue]),Ze=ue?"string"==typeof y||"number"==typeof y?_jsx(Text,{style:[W.prefix,{fontSize:$.fontSize,color:Ee,marginRight:q.spacing.xs,lineHeight:oe?J:void 0,paddingTop:oe?ne:void 0},S],children:y}):_jsx(View,{style:[W.prefixNode,{marginRight:q.spacing.xs,minHeight:oe?J:void 0,justifyContent:"center",paddingTop:oe?ne:void 0}],children:_jsx(Text,{style:[W.prefix,{fontSize:$.fontSize,color:Ee,lineHeight:oe?J:void 0},S],children:_jsx(NotationInkContext.Provider,{value:Ye,children:y})})}):null,et=v?_jsx(Button,{variant:v.variant??"outline",tone:v.tone??"primary",size:F,title:v.label,leftIcon:v.icon,loading:v.loading,disabled:f||v.disabled,onPress:v.onPress,pressAnimation:!1,testID:v.testID,style:[W.action,{minHeight:$.minHeight,alignSelf:oe?"flex-start":"stretch"},j]}):null;return _jsxs(Animated.View,{style:[W.container,{transform:[{translateX:Ae}]},k],children:[ce&&!he?_jsx(FieldLabel,{size:F,required:T,help:o,color:_e,style:D,children:i}):null,_jsxs(View,{style:[W.fieldRow,{columnGap:q.spacing.sm,alignItems:oe?"flex-start":"stretch"}],children:[_jsxs(View,{style:W.fieldWrapper,children:[_jsxs(FieldBase,{size:F,variant:K,focused:U,disabled:f,error:se,filled:le,minHeight:oe?X:void 0,borderRadius:Re,fillOverrides:Te,leading:Je,leadingDivider:null!=g,paddingLeft:Ce?0:void 0,trailing:Xe,slotAlign:oe?"top":"center",slotLineHeight:oe?J:void 0,topNotch:De.topNotch,onPress:xe,pressFeedback:!1,style:C,children:[Ze,_jsxs(View,{style:W.inputWrap,children:[_jsx(TextInput,{ref:me,style:[W.input,{color:Le,fontSize:$.fontSize,...He.weightStyle,paddingLeft:Ce?0:void 0,minHeight:oe?X-2*$.paddingVertical:void 0,lineHeight:oe?J:void 0,paddingTop:oe?ne:void 0,textAlignVertical:oe?"top":"center"},N],textAlign:V,placeholder:he&&!pe||Me?void 0:n,placeholderTextColor:Ee,value:_&&null!=l?_(l):l,onChangeText:e=>{r&&r(A?A(e):e)},onFocus:Fe,onBlur:we,editable:fe,readOnly:b,secureTextEntry:te&&!Z,multiline:oe,autoCapitalize:te?"none":void 0,autoCorrect:!te&&void 0,maxLength:I,selectionColor:Ie,accessibilityLabel:Ge,accessibilityState:{disabled:f},"aria-disabled":f,testID:B,...G}),Me?_jsx(RequiredPlaceholder,{text:n,color:Ee,fontSize:$.fontSize,weightStyle:He.weightStyle,align:oe?"top":"center",paddingTop:oe?ne:void 0,textAlign:V}):null]})]}),De.node]}),et]}),de||Be?_jsxs(View,{style:[W.footerRow,{marginTop:$.messageGap}],children:[de?_jsxs(Animated.View,{style:[W.messageRow,{columnGap:q.spacing.xs+2,opacity:Se}],accessibilityLiveRegion:se?"polite":"none",children:[se?_jsx(FieldErrorGlyph,{size:$.messageFontSize,color:Oe}):null,_jsx(Text,{style:[W.messageText,{color:Oe,fontSize:$.messageFontSize,...fontFor(q,"normal")},H],children:Pe})]}):_jsx(View,{style:W.footerSpacer}),Be?_jsx(Text,{style:[W.counterText,{color:q.colors.text.tertiary,fontSize:$.messageFontSize,...fontFor(q,"normal")}],children:Be}):null]}):null]})});Input.displayName="Input";const buildStyles=e=>StyleSheet.create({container:{width:"100%"},fieldRow:{flexDirection:"row"},fieldWrapper:{position:"relative",overflow:"visible",flex:1},action:{flexShrink:0},input:{padding:0,margin:0,includeFontPadding:!1},prefix:{flexShrink:0,includeFontPadding:!1},prefixNode:{flexShrink:0},inputWrap:{flex:1,alignSelf:"stretch",justifyContent:"center"},unit:{includeFontPadding:!1},trailingRow:{flexDirection:"row",alignItems:"center",columnGap:8},footerRow:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",columnGap:8},footerSpacer:{flex:1},messageRow:{flex:1,flexDirection:"row",alignItems:"center"},messageText:{flexShrink:1,includeFontPadding:!1},counterText:{flexShrink:0,includeFontPadding:!1}});export{Input};export default Input;
1
+ "use strict";import{forwardRef,useCallback,useEffect,useMemo,useRef,useState}from"react";import{Animated,Easing,Pressable,StyleSheet,Text,TextInput,View}from"react-native";import{useReducedMotion}from"../../hooks/index.js";import{createAnimatedValue,fontFor,setNativeValue,useTheme}from"../../theme/index.js";import{mergeRefs,triggerHaptic}from"../../utils/index.js";import{defaultIcons}from"../AppIcon/defaultIcons.js";import{renderSlotIcon}from"../AppIcon/slotIcon.js";import{Button}from"../Button/index.js";import{FieldBase,FieldErrorGlyph,FieldLabel,fieldTextAsString,hasFieldText,RequiredPlaceholder,resolveFieldSize,resolveFieldTextStyle}from"../FieldBase/FieldBase.js";import{useFloatingLabel}from"../FieldBase/useFloatingLabel.js";import{NotationInkContext,useNotationInk}from"../Notation/Notation.js";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";const multilineMinHeightMap={sm:72,md:92,lg:110},Input=forwardRef((e,t)=>{const{label:i,help:o,placeholder:n,value:l,onChangeText:r,error:s,helperText:a,type:d="input",secureTextEntry:c=!1,showPasswordToggle:u=!1,disabled:f=!1,multiline:p=!1,leftIcon:g,rightIcon:m,unit:x,unitStyle:h,prefix:y,prefixStyle:S,readOnly:b=!1,action:v,actionStyle:j,size:F="md",variant:w,labelMode:z,required:T=!1,maxLength:I,showCounter:R=!0,textAlign:V,format:_,parse:k,style:A,containerStyle:C,inputStyle:N,labelStyle:D,messageStyle:H,borderRadius:L,onFocus:P,onBlur:E,accessibilityLabel:M,testID:B,editable:O,...G}=e,q=useTheme(),W=useMemo(()=>buildStyles(q),[q]),$=resolveFieldSize(q,F),X=multilineMinHeightMap[F],J=Math.round(1.4*$.fontSize),K=w??q.components.input?.defaultVariant??q.components.field?.defaultVariant??"outlined",Q=z??q.components.input?.defaultLabelMode??"top",[U,Y]=useState(!1),[Z,ee]=useState(!1),te="password"===d||u||c,ie="password"===d||u,oe="textarea"===d||p,ne=oe?Math.round(.1*$.fontSize):0,le="string"==typeof l&&l.length>0,re=hasFieldText(s),se=!0===s||re,ae=hasFieldText(a),de=re||!se&&ae,ce=hasFieldText(i),ue=hasFieldText(y),fe=!f&&!1!==O,pe=U||le||ue,ge=useRef(null),me=useMemo(()=>mergeRefs(ge,t),[t]),xe=useCallback(()=>{fe&&ge.current?.focus()},[fe]),he=ce&&"float"===Q,ye=useRef(createAnimatedValue(0)).current,Se=useRef(createAnimatedValue(de?1:0)).current;useEffect(()=>{const e=Animated.timing(Se,{toValue:de?1:0,duration:q.motion.duration.fast,easing:Easing.bezier(...q.motion.easing.standard),useNativeDriver:!0});return e.start(),()=>e.stop()},[de,Se,q.motion.duration.fast,q.motion.easing.standard]);const be=useReducedMotion(),ve=q.components.input?.shakeOnError??!1,je=useRef(se);useEffect(()=>{if(!ve)return void(je.current=se);let e;return se&&!je.current&&(be||(setNativeValue(ye,0),e=Animated.sequence([Animated.timing(ye,{toValue:1,duration:50,useNativeDriver:!0}),Animated.timing(ye,{toValue:-1,duration:50,useNativeDriver:!0}),Animated.timing(ye,{toValue:1,duration:50,useNativeDriver:!0}),Animated.timing(ye,{toValue:-1,duration:50,useNativeDriver:!0}),Animated.timing(ye,{toValue:0,duration:100,useNativeDriver:!0})]),e.start()),triggerHaptic("notificationError")),je.current=se,()=>e?.stop()},[se,ye,ve,be]);const Fe=useCallback(e=>{Y(!0),P?.(e)},[P]),we=useCallback(e=>{Y(!1),E?.(e)},[E]),ze=useCallback(()=>{triggerHaptic("selection"),ee(e=>!e)},[]),Te=useMemo(()=>{const e=q.components.input?.fillColors?.[K];if(!e)return;const t={};return void 0!==e.idleEmpty&&(t.backgroundIdleEmpty=e.idleEmpty),void 0!==e.idleFilled&&(t.backgroundIdleFilled=e.idleFilled),void 0!==e.focus&&(t.backgroundFocused=e.focus),void 0!==e.error&&(t.backgroundError=e.error),void 0!==e.disabled&&(t.backgroundDisabled=e.disabled),Object.keys(t).length>0?t:void 0},[q.components.input?.fillColors,K]),Ie=q.colors.field.caret,Re=L??q.components.input?.borderRadius,Ve=q.components.input?.tintLabelOnFocus??!1,_e=U&&Ve?q.colors.field.borderFocused:q.colors.field.label,ke=ye.interpolate({inputRange:[-1,0,1],outputRange:[-6,0,6]}),Ae=Boolean(m)||Boolean(x)||ie,Ce="underline"===K,Ne=g?$.iconSize+q.spacing.md+1+q.spacing.md:0,De=useFloatingLabel({label:i,enabled:he,floated:pe,required:T,variant:K,sizeTokens:$,leadingOffset:Ne,trailingOffset:Ae?$.iconSize+q.spacing.sm:0,textAlign:V,paddingLeft:Ce?0:$.paddingHorizontal,lineHeight:oe?J:void 0,restNudge:ne,floatTrim:oe?2:0,color:_e,style:D}),He=resolveFieldTextStyle(q,{disabled:f}),Le=He.color,Pe=He.placeholderColor,Ee=T&&!ce&&!le&&"string"==typeof n&&n.length>0,Me=se?s:a,Be=R&&"number"==typeof I&&"string"==typeof l?`${l.length} / ${I}`:null,Oe=se?q.colors.field.message:q.colors.text.secondary,Ge=useNotationInk(H,$.messageFontSize,Oe),qe=M??fieldTextAsString(i)??n,We=q.colors.field,$e=f?We.iconDisabled:U?We.iconFocused:We.icon,Xe={focused:U,disabled:f,error:se,color:$e,size:$.iconSize},renderSlot=e=>renderSlotIcon(e,Xe),Je=(()=>{if(ie){const e=(Z?q.icons?.eyeOff:q.icons?.eye)??(Z?defaultIcons.eyeOff:defaultIcons.eye);return _jsx(Pressable,{onPress:ze,disabled:!fe,hitSlop:8,accessibilityRole:"button",accessibilityLabel:Z?"Hide password":"Show password",children:e({size:$.iconSize,color:$e})})}const e=x?_jsx(Text,{style:[W.unit,{fontSize:$.fontSize,color:Pe},h],children:x}):null,t=m?_jsx(View,{children:renderSlot(m)}):null;return e&&t?_jsxs(View,{style:W.trailingRow,children:[e,t]}):e??t})(),Ke=g?_jsx(View,{children:renderSlot(g)}):null,Qe=StyleSheet.flatten(S),Ue=Qe?.fontSize??$.fontSize,Ye=Qe?.color??Pe,Ze=useMemo(()=>({fontSize:Ue,color:Ye}),[Ue,Ye]),et=ue?"string"==typeof y||"number"==typeof y?_jsx(Text,{style:[W.prefix,{fontSize:$.fontSize,color:Pe,marginRight:q.spacing.xs,lineHeight:oe?J:void 0,paddingTop:oe?ne:void 0},S],children:y}):_jsx(View,{style:[W.prefixNode,{marginRight:q.spacing.xs,minHeight:oe?J:void 0,justifyContent:"center",paddingTop:oe?ne:void 0}],children:_jsx(Text,{style:[W.prefix,{fontSize:$.fontSize,color:Pe,lineHeight:oe?J:void 0},S],children:_jsx(NotationInkContext.Provider,{value:Ze,children:y})})}):null,tt=v?_jsx(Button,{variant:v.variant??"outline",tone:v.tone??"primary",size:F,title:v.label,leftIcon:v.icon,loading:v.loading,disabled:f||v.disabled,onPress:v.onPress,pressAnimation:!1,testID:v.testID,style:[W.action,{minHeight:$.minHeight,alignSelf:oe?"flex-start":"stretch"},j]}):null;return _jsxs(Animated.View,{style:[W.container,{transform:[{translateX:ke}]},A],children:[ce&&!he?_jsx(FieldLabel,{size:F,required:T,help:o,color:_e,style:D,children:i}):null,_jsxs(View,{style:[W.fieldRow,{columnGap:q.spacing.sm,alignItems:oe?"flex-start":"stretch"}],children:[_jsxs(View,{style:W.fieldWrapper,children:[_jsxs(FieldBase,{size:F,variant:K,focused:U,disabled:f,error:se,filled:le,minHeight:oe?X:void 0,borderRadius:Re,fillOverrides:Te,leading:Ke,leadingDivider:null!=g,paddingLeft:Ce?0:void 0,trailing:Je,slotAlign:oe?"top":"center",slotLineHeight:oe?J:void 0,topNotch:De.topNotch,onPress:xe,pressFeedback:!1,style:C,children:[et,_jsxs(View,{style:W.inputWrap,children:[_jsx(TextInput,{ref:me,style:[W.input,{color:Le,fontSize:$.fontSize,...He.weightStyle,paddingLeft:Ce?0:void 0,minHeight:oe?X-2*$.paddingVertical:void 0,lineHeight:oe?J:void 0,paddingTop:oe?ne:void 0,textAlignVertical:oe?"top":"center"},N],textAlign:V,placeholder:he&&!pe||Ee?void 0:n,placeholderTextColor:Pe,value:_&&null!=l?_(l):l,onChangeText:e=>{r&&r(k?k(e):e)},onFocus:Fe,onBlur:we,editable:fe,readOnly:b,secureTextEntry:te&&!Z,multiline:oe,autoCapitalize:te?"none":void 0,autoCorrect:!te&&void 0,maxLength:I,selectionColor:Ie,accessibilityLabel:qe,accessibilityState:{disabled:f},"aria-disabled":f,testID:B,...G}),Ee?_jsx(RequiredPlaceholder,{text:n,color:Pe,fontSize:$.fontSize,weightStyle:He.weightStyle,align:oe?"top":"center",paddingTop:oe?ne:void 0,textAlign:V}):null]})]}),De.node]}),tt]}),de||Be?_jsxs(View,{style:[W.footerRow,{marginTop:$.messageGap}],children:[de?_jsxs(Animated.View,{style:[W.messageRow,{columnGap:q.spacing.xs+2,opacity:Se}],accessibilityLiveRegion:se?"polite":"none",children:[se?_jsx(FieldErrorGlyph,{size:$.messageFontSize,color:Oe}):null,_jsx(Text,{style:[W.messageText,{color:Oe,fontSize:$.messageFontSize,...fontFor(q,"normal")},H],children:_jsx(NotationInkContext.Provider,{value:Ge,children:Me})})]}):_jsx(View,{style:W.footerSpacer}),Be?_jsx(Text,{style:[W.counterText,{color:q.colors.text.tertiary,fontSize:$.messageFontSize,...fontFor(q,"normal")}],children:Be}):null]}):null]})});Input.displayName="Input";const buildStyles=e=>StyleSheet.create({container:{width:"100%"},fieldRow:{flexDirection:"row"},fieldWrapper:{position:"relative",overflow:"visible",flex:1},action:{flexShrink:0},input:{padding:0,margin:0,includeFontPadding:!1},prefix:{flexShrink:0,includeFontPadding:!1},prefixNode:{flexShrink:0},inputWrap:{flex:1,alignSelf:"stretch",justifyContent:"center"},unit:{includeFontPadding:!1},trailingRow:{flexDirection:"row",alignItems:"center",columnGap:8},footerRow:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",columnGap:8},footerSpacer:{flex:1},messageRow:{flex:1,flexDirection:"row",alignItems:"center"},messageText:{flexShrink:1,includeFontPadding:!1},counterText:{flexShrink:0,includeFontPadding:!1}});export{Input};export default Input;
@@ -1 +1 @@
1
- "use strict";import{createContext,Fragment,useContext}from"react";import{Text as RNText,StyleSheet,View}from"react-native";import{fontFor,useTheme}from"../../theme/index.js";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";const SUBSCRIPTED=/(?<![A-Za-z0-9_])([A-Za-z])_([A-Za-z0-9]+)(?![A-Za-z0-9_])/g;export const parseNotation=t=>{const e=String(t??""),o=[];let n=0;for(const t of e.matchAll(SUBSCRIPTED)){const s=t.index??0;s>n&&o.push({text:e.slice(n,s)}),o.push({text:t[1],sub:t[2]}),n=s+t[0].length}return n<e.length&&o.push({text:e.slice(n)}),o};const SUB_DROP=.4;export const NotationInkContext=createContext(null);const Subscript=({children:t,color:e})=>{const o=useTheme(),n=useContext(NotationInkContext),s=Math.round(.75*(n?.fontSize??o.typography.fontSize.sm));return _jsx(View,{style:{transform:[{translateY:Math.round(.4*s)}]},children:_jsx(RNText,{maxFontSizeMultiplier:o.maxFontSizeMultiplier,style:[styles.sub,{fontSize:s,lineHeight:s,color:e??n?.color??o.colors.text.primary,...fontFor(o,"normal")}],children:t})})},renderNotation=(t,e)=>parseNotation(t).map((t,o)=>t.sub?_jsxs(Fragment,{children:[t.text,_jsx(Subscript,{color:e,children:t.sub})]},o):_jsx(Fragment,{children:t.text},o));export const Notation=({text:t,base:e,sub:o,desc:n,color:s,testID:r})=>null!=e?_jsxs(RNText,{testID:r,children:[e,o?_jsx(Subscript,{color:s,children:o}):null,n?` ${n}`:null]}):_jsx(RNText,{testID:r,children:"string"==typeof t||null==t?renderNotation(t??"",s):t.map((t,e)=>_jsx(Fragment,"string"==typeof t?{children:renderNotation(t,s)}:{children:t.verbatim},e))});export const sym=(t,e,o,n)=>_jsx(Notation,{base:t,sub:e,desc:o,color:n});const styles=StyleSheet.create({sub:{includeFontPadding:!1}});export default Notation;
1
+ "use strict";import{createContext,Fragment,useContext,useMemo}from"react";import{Text as RNText,StyleSheet,View}from"react-native";import{fontFor,useTheme}from"../../theme/index.js";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";const SUBSCRIPTED=/(?<![A-Za-z0-9_])([A-Za-z])_([A-Za-z0-9]+)(?![A-Za-z0-9_])/g;export const parseNotation=t=>{const e=String(t??""),o=[];let n=0;for(const t of e.matchAll(SUBSCRIPTED)){const s=t.index??0;s>n&&o.push({text:e.slice(n,s)}),o.push({text:t[1],sub:t[2]}),n=s+t[0].length}return n<e.length&&o.push({text:e.slice(n)}),o};const SUB_DROP=.4;export const NotationInkContext=createContext(null);export const useNotationInk=(t,e,o)=>{const n=StyleSheet.flatten(t),s=n?.fontSize??e,r=n?.color??o;return useMemo(()=>({fontSize:s,color:r}),[s,r])};const Subscript=({children:t,color:e})=>{const o=useTheme(),n=useContext(NotationInkContext),s=Math.round(.75*(n?.fontSize??o.typography.fontSize.sm));return _jsx(View,{style:{transform:[{translateY:Math.round(.4*s)}]},children:_jsx(RNText,{maxFontSizeMultiplier:o.maxFontSizeMultiplier,style:[styles.sub,{fontSize:s,lineHeight:s,color:e??n?.color??o.colors.text.primary,...fontFor(o,"normal")}],children:t})})},renderNotation=(t,e)=>parseNotation(t).map((t,o)=>t.sub?_jsxs(Fragment,{children:[t.text,_jsx(Subscript,{color:e,children:t.sub})]},o):_jsx(Fragment,{children:t.text},o));export const Notation=({text:t,base:e,sub:o,desc:n,color:s,testID:r})=>null!=e?_jsxs(RNText,{testID:r,children:[e,o?_jsx(Subscript,{color:s,children:o}):null,n?` ${n}`:null]}):_jsx(RNText,{testID:r,children:"string"==typeof t||null==t?renderNotation(t??"",s):t.map((t,e)=>_jsx(Fragment,"string"==typeof t?{children:renderNotation(t,s)}:{children:t.verbatim},e))});export const sym=(t,e,o,n)=>_jsx(Notation,{base:t,sub:e,desc:o,color:n});const styles=StyleSheet.create({sub:{includeFontPadding:!1}});export default Notation;
@@ -1 +1 @@
1
- "use strict";import{useCallback,useEffect,useMemo,useRef,useState}from"react";import{Animated,Dimensions,Easing,FlatList,Modal,Platform,Pressable,StatusBar,StyleSheet,Text,TextInput,View}from"react-native";import{Gesture,GestureDetector,GestureHandlerRootView}from"react-native-gesture-handler";import{useKeyboardState}from"react-native-keyboard-controller";import{useSafeAreaInsets}from"react-native-safe-area-context";import{useDragToDismiss}from"../../hooks/useDragToDismiss.js";import{createAnimatedValue,setNativeValue,useTheme}from"../../theme/index.js";import{smoothCorners}from"../../utils/corners.js";import{defaultIcons}from"../AppIcon/defaultIcons.js";import{ToastHost}from"../Toast/ToastProvider.js";import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";const SEARCH_ICON_SIZE=18;export const OptionSheet=e=>{const{open:t,onClose:o,onAfterClose:i,title:s,options:r,sections:n,renderSectionHeader:a,renderOption:l,alphabetIndex:c=!1,searchPlaceholder:d="Search…",emptyText:p="No options",labelOf:u,getValue:h,disabledOf:m,destructiveOf:g,descriptionOf:y,iconOf:f,isSelected:b,onSelect:x,multi:S=!1,searchable:T=!1,searchSelectionColor:j,accessibilityLabel:w,optionStyle:C,selectedOptionStyle:_,optionTextStyle:V,selectedOptionTextStyle:k,testID:R}=e,I=useTheme(),v=useSafeAreaInsets(),z=useMemo(()=>buildStyles(I),[I]),[D,L]=useState(""),P=Dimensions.get("window").height,H=Math.round(.7*P),[W,A]=useState(t),M=useRef(createAnimatedValue(0)).current,B=useRef(createAnimatedValue(H)).current,O=useRef(createAnimatedValue(0)).current,E=useMemo(()=>Animated.add(B,O),[B,O]);useEffect(()=>{t&&A(!0)},[t]);const F=useRef(i);F.current=i;const N=useRef(W);useEffect(()=>{N.current&&!W&&"ios"!==Platform.OS&&F.current?.(),N.current=W},[W]),useEffect(()=>{if(!W)return;t&&setNativeValue(O,0);const e=t?Animated.parallel([Animated.timing(M,{toValue:1,duration:I.motion.duration.fast,easing:Easing.bezier(...I.motion.easing.standard),useNativeDriver:!1}),Animated.spring(B,{toValue:0,damping:I.motion.spring.snappy.damping,stiffness:I.motion.spring.snappy.stiffness,mass:I.motion.spring.snappy.mass,useNativeDriver:!0})]):Animated.parallel([Animated.timing(M,{toValue:0,duration:I.motion.duration.fast,easing:Easing.bezier(...I.motion.easing.standard),useNativeDriver:!1}),Animated.timing(B,{toValue:H,duration:I.motion.duration.fast,easing:Easing.bezier(...I.motion.easing.accelerate),useNativeDriver:!0})]);return e.start(({finished:e})=>{e&&!t&&A(!1)}),()=>e.stop()},[t,W,M,B,O,H,I.motion.duration.fast,I.motion.easing.standard,I.motion.easing.accelerate,I.motion.spring.snappy]);const{handleGesture:G}=useDragToDismiss({drag:O,travel:H,onDismiss:o}),$=useMemo(()=>Gesture.Native(),[]),[J,K]=useState(0),U=useKeyboardState(e=>e.height),Y=W?Math.max(0,Math.round(U)):0,Z=Math.max(v.top,StatusBar.currentHeight??0)+I.spacing.sm,q=Y>0,Q=q?Math.max(0,Math.min(H,(J>0?J:P)-Y-Z)):H;useEffect(()=>{t||L("")},[t]);const X=useMemo(()=>{const e=T?D.trim().toLowerCase():"",matches=t=>0===e.length||u(t).toLowerCase().includes(e)||(y(t)??"").toLowerCase().includes(e);if(!n)return r.filter(matches).map(e=>({kind:"option",option:e}));const t=[];return n.forEach((e,o)=>{const i=e.options.filter(matches);if(0!==i.length){t.push({kind:"header",title:e.title});for(const e of i)t.push({kind:"option",option:e,section:o})}}),t},[T,D,r,n,u,y]),ee=useCallback(()=>{o()},[o]),te=useRef(null),oe=useMemo(()=>{const e=new Map;if(!c)return e;let t=0;if(n)for(let e=X.length-1;e>=0;e-=1)if("header"===X[e].kind){t=e+1;break}for(let o=t;o<X.length;o+=1){const t=X[o];if("option"!==t.kind)continue;const i=u(t.option).trim().charAt(0).toUpperCase(),s=/^[A-Z]$/.test(i)?i:"#";e.has(s)||e.set(s,o)}return e},[c,X,n,u]),ie=c&&oe.size>0&&0===D.trim().length,se=useMemo(()=>[..."ABCDEFGHIJKLMNOPQRSTUVWXYZ",...oe.has("#")?["#"]:[]],[oe]),re=useCallback(e=>{const t=oe.get(e);void 0!==t&&te.current?.scrollToIndex({index:t,animated:!0,viewPosition:0})},[oe]),ne=useRef(null),ae=useCallback(()=>{null!==ne.current&&(clearTimeout(ne.current),ne.current=null)},[]),le=useCallback(e=>{te.current?.scrollToOffset({offset:e.averageItemLength*e.index,animated:!1}),ae(),ne.current=setTimeout(()=>{ne.current=null,te.current?.scrollToIndex({index:e.index,animated:!0,viewPosition:0})},50)},[ae]);useEffect(()=>(W||ae(),ae),[W,ae]);return _jsx(Modal,{visible:W,transparent:!0,animationType:"none",onRequestClose:ee,onDismiss:()=>F.current?.(),statusBarTranslucent:!0,navigationBarTranslucent:!0,children:_jsxs(GestureHandlerRootView,{collapsable:!1,onLayout:e=>K(e.nativeEvent.layout.height),style:[StyleSheet.absoluteFill,{backgroundColor:I.colors.background.overlay}],children:[_jsx(Pressable,{style:StyleSheet.absoluteFill,onPress:ee,accessibilityRole:"button",accessibilityLabel:"Close picker"}),_jsxs(Animated.View,{testID:R,accessibilityViewIsModal:!0,accessibilityLabel:w??s??"Options",style:[z.sheet,{maxHeight:Q,bottom:Y,paddingBottom:q?16:v.bottom+16,backgroundColor:I.colors.background.elevated,borderTopLeftRadius:I.radius.xl,borderTopRightRadius:I.radius.xl,...smoothCorners,transform:[{translateY:E}],...I.shadows.xl}],children:[_jsx(GestureDetector,{gesture:G,children:_jsxs(View,{children:[_jsx(View,{style:z.sheetHandleRow,children:_jsx(View,{style:[z.sheetHandle,{backgroundColor:I.components.select?.handleColor??I.components.bottomSheet?.handleColor??I.colors.border.primary}]})}),s?_jsx(Text,{style:[z.sheetTitle,{color:I.colors.text.primary,fontSize:I.typography.fontSize.lg,fontWeight:I.typography.fontWeight.semibold,paddingHorizontal:I.spacing.lg,marginBottom:I.spacing.sm}],children:s}):null]})}),T?_jsx(View,{style:[z.searchWrap,{marginHorizontal:I.spacing.lg,marginBottom:I.spacing.sm}],children:_jsxs(View,{style:[z.searchBox,{backgroundColor:I.colors.background.secondary,borderColor:I.colors.border.primary,borderRadius:I.radius.md,...smoothCorners,paddingHorizontal:I.spacing.md,gap:I.spacing.sm}],children:[(I.icons?.search??defaultIcons.search)({size:18,color:I.colors.text.tertiary}),_jsx(TextInput,{value:D,onChangeText:L,placeholder:d,placeholderTextColor:I.colors.text.tertiary,selectionColor:j??I.colors.border.focus,accessibilityLabel:"Search options",style:[z.searchInput,{color:I.colors.text.primary,fontSize:I.typography.fontSize.base,paddingVertical:I.spacing.sm}]}),D.length>0?_jsx(Pressable,{onPress:()=>L(""),hitSlop:8,accessibilityRole:"button",accessibilityLabel:"Clear search",children:(I.icons?.close??defaultIcons.close)({size:18,color:I.colors.text.secondary})}):null]})}):null,_jsxs(View,{style:[z.listWrap,ie?z.listRow:null],children:[_jsx(GestureDetector,{gesture:$,children:_jsx(FlatList,{ref:te,data:X,keyExtractor:e=>"header"===e.kind?`h:${e.title}`:`o:${e.section??""}:${String(h(e.option))}`,renderItem:({item:e})=>{if("header"===e.kind)return _jsx(View,{accessible:!0,accessibilityRole:"header",style:[z.sectionHeader,{paddingHorizontal:I.spacing.lg,paddingTop:I.spacing.md}],children:a?a(e.title):_jsx(Text,{style:[z.sectionTitle,{color:I.colors.text.tertiary,fontSize:I.typography.fontSize.xs,fontWeight:I.typography.fontWeight.semibold}],children:e.title.toUpperCase()})});const t=e.option,o=u(t),i=h(t),s=y(t),r=f(t),n=b(i),c=m(t),d=g?.(t)??!1;return _jsxs(Pressable,{onPress:()=>x(t),disabled:c,android_ripple:{color:I.colors.surface.pressed,borderless:!1},accessibilityRole:"button",accessibilityLabel:o,accessibilityState:{selected:n,disabled:c},"aria-selected":n,"aria-disabled":c,style:({pressed:e})=>[z.optionRow,{backgroundColor:n?I.colors.surface.selected:e?I.colors.surface.pressed:"transparent",opacity:c?.5:1,paddingHorizontal:I.spacing.lg,paddingVertical:I.spacing.md},C,n?_:null],children:[l?_jsx(View,{style:z.optionTextWrap,children:l(t,{selected:n,disabled:c})}):_jsxs(_Fragment,{children:[r?_jsx(View,{style:z.optionIcon,children:r}):null,_jsxs(View,{style:z.optionTextWrap,children:[_jsx(Text,{style:[z.optionLabel,{color:d?I.colors.toneText.error:n?I.colors.primary:I.colors.text.primary,fontSize:I.typography.fontSize.base,fontWeight:n?I.typography.fontWeight.semibold:I.typography.fontWeight.medium},V,n?k:null],children:o}),s?_jsx(Text,{style:[z.optionDescription,{color:I.colors.text.tertiary,fontSize:I.typography.fontSize.sm}],numberOfLines:2,children:s}):null]})]}),S?_jsx(View,{style:[z.checkbox,{borderColor:n?I.colors.primary:I.colors.border.primary,backgroundColor:n?I.colors.primary:"transparent"}],children:n?_jsx(View,{style:z.checkboxTick}):null}):n?"icon"===I.components.optionSheet?.selectedMarker?_jsx(View,{style:z.singleSelectedIcon,children:(I.icons?.selectedTick??defaultIcons.selectedTick)({size:20,color:I.colors.primary})}):_jsx(View,{style:[z.singleSelectedDot,{backgroundColor:I.colors.primary}]}):null]})},onScrollToIndexFailed:le,overScrollMode:"never",bounces:!1,keyboardShouldPersistTaps:"handled",showsVerticalScrollIndicator:!ie,style:ie?z.listBesideRail:null,ListEmptyComponent:_jsx(Text,{style:[z.empty,{color:I.colors.text.tertiary,fontSize:I.typography.fontSize.sm,paddingVertical:I.spacing.xl}],children:p})})}),ie?_jsx(View,{style:[z.rail,{paddingRight:I.spacing.xs}],accessibilityRole:"list",accessibilityLabel:"Jump to letter",testID:"option-sheet-alphabet",children:se.map(e=>{const t=oe.has(e);return _jsx(Pressable,{onPress:()=>re(e),disabled:!t,hitSlop:{left:8,right:8},accessibilityRole:"button",accessibilityLabel:`Jump to ${e}`,accessibilityState:{disabled:!t},"aria-disabled":!t,style:z.railLetter,children:_jsx(Text,{style:[z.railLetterText,{color:t?I.colors.primary:I.colors.text.tertiary,fontSize:I.typography.fontSize.xs,fontWeight:I.typography.fontWeight.semibold,opacity:t?1:.45}],children:e})},e)})}):null]}),S?_jsx(View,{style:[z.sheetFooter,{borderTopColor:I.colors.border.secondary,paddingHorizontal:I.spacing.lg,paddingVertical:I.spacing.md}],children:_jsx(Pressable,{onPress:ee,accessibilityRole:"button",accessibilityLabel:"Done",style:({pressed:e})=>[z.doneButton,{backgroundColor:e?I.colors.primaryPressed:I.colors.primary,borderRadius:I.radius.md,...smoothCorners,paddingVertical:I.spacing.sm,paddingHorizontal:I.spacing.lg}],children:_jsx(Text,{style:{color:I.colors.onPrimary,fontSize:I.typography.fontSize.base,fontWeight:I.typography.fontWeight.semibold},children:"Done"})})}):null]}),_jsx(ToastHost,{})]})})};OptionSheet.displayName="OptionSheet";const buildStyles=e=>StyleSheet.create({sheet:{position:"absolute",left:0,right:0,bottom:0,paddingBottom:16,overflow:"hidden"},sheetHandleRow:{alignItems:"center",paddingTop:10,paddingBottom:8},sheetHandle:{width:36,height:4,borderRadius:2,...smoothCorners},sheetTitle:{includeFontPadding:!1},searchWrap:{width:"auto"},searchBox:{flexDirection:"row",alignItems:"center",borderWidth:1},searchInput:{flex:1,includeFontPadding:!1},optionRow:{flexDirection:"row",alignItems:"center"},sectionHeader:{paddingBottom:4},listWrap:{flexShrink:1},listRow:{flexDirection:"row"},listBesideRail:{flex:1},rail:{justifyContent:"space-between",alignItems:"center",alignSelf:"stretch",paddingVertical:4},railLetter:{paddingHorizontal:4,minHeight:14,justifyContent:"center"},railLetterText:{includeFontPadding:!1,lineHeight:14},sectionTitle:{includeFontPadding:!1,letterSpacing:.6},optionIcon:{marginRight:12},optionTextWrap:{flex:1},optionLabel:{includeFontPadding:!1},optionDescription:{includeFontPadding:!1,marginTop:2},checkbox:{width:22,height:22,borderRadius:6,...smoothCorners,borderWidth:2,alignItems:"center",justifyContent:"center",marginLeft:12},checkboxTick:{width:10,height:6,borderLeftWidth:2,borderBottomWidth:2,borderColor:e.colors.onPrimary,transform:[{rotate:"-45deg"},{translateY:-1}]},singleSelectedDot:{width:8,height:8,borderRadius:4,...smoothCorners,marginLeft:12},singleSelectedIcon:{marginLeft:12},empty:{textAlign:"center"},sheetFooter:{borderTopWidth:StyleSheet.hairlineWidth,alignItems:"flex-end"},doneButton:{alignSelf:"flex-end"}});export default OptionSheet;
1
+ "use strict";import{useCallback,useEffect,useMemo,useRef,useState}from"react";import{Animated,Dimensions,Easing,FlatList,Modal,Platform,Pressable,StatusBar,StyleSheet,Text,TextInput,View}from"react-native";import{Gesture,GestureDetector,GestureHandlerRootView}from"react-native-gesture-handler";import{useKeyboardState}from"react-native-keyboard-controller";import{useSafeAreaInsets}from"react-native-safe-area-context";import{useDragToDismiss}from"../../hooks/useDragToDismiss.js";import{createAnimatedValue,setNativeValue,useTheme}from"../../theme/index.js";import{smoothCorners}from"../../utils/corners.js";import{defaultIcons}from"../AppIcon/defaultIcons.js";import{ToastHost}from"../Toast/ToastProvider.js";import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";const SEARCH_ICON_SIZE=18;export const OptionSheet=e=>{const{open:t,onClose:o,onAfterClose:i,onOpenChange:s,title:r,options:n,sections:a,renderSectionHeader:l,renderOption:c,alphabetIndex:d=!1,searchPlaceholder:p="Search…",emptyText:u="No options",labelOf:h,getValue:m,disabledOf:g,destructiveOf:f,descriptionOf:y,iconOf:b,isSelected:x,onSelect:S,multi:T=!1,searchable:j=!1,searchSelectionColor:C,accessibilityLabel:w,optionStyle:_,selectedOptionStyle:R,optionTextStyle:V,selectedOptionTextStyle:k,testID:I}=e,v=useTheme(),z=useSafeAreaInsets(),D=useMemo(()=>buildStyles(v),[v]),[L,P]=useState(""),H=Dimensions.get("window").height,W=Math.round(.7*H),[A,M]=useState(t),O=useRef(createAnimatedValue(0)).current,B=useRef(createAnimatedValue(W)).current,E=useRef(createAnimatedValue(0)).current,F=useMemo(()=>Animated.add(B,E),[B,E]);useEffect(()=>{t&&M(!0)},[t]);const N=useRef(s);N.current=s;const G=useRef(!1);useEffect(()=>{G.current!==t&&(G.current=t,N.current?.(t))},[t]);const $=useRef(i);$.current=i;const J=useRef(A);useEffect(()=>{J.current&&!A&&"ios"!==Platform.OS&&$.current?.(),J.current=A},[A]),useEffect(()=>{if(!A)return;t&&setNativeValue(E,0);const e=t?Animated.parallel([Animated.timing(O,{toValue:1,duration:v.motion.duration.fast,easing:Easing.bezier(...v.motion.easing.standard),useNativeDriver:!1}),Animated.spring(B,{toValue:0,damping:v.motion.spring.snappy.damping,stiffness:v.motion.spring.snappy.stiffness,mass:v.motion.spring.snappy.mass,useNativeDriver:!0})]):Animated.parallel([Animated.timing(O,{toValue:0,duration:v.motion.duration.fast,easing:Easing.bezier(...v.motion.easing.standard),useNativeDriver:!1}),Animated.timing(B,{toValue:W,duration:v.motion.duration.fast,easing:Easing.bezier(...v.motion.easing.accelerate),useNativeDriver:!0})]);return e.start(({finished:e})=>{e&&!t&&M(!1)}),()=>e.stop()},[t,A,O,B,E,W,v.motion.duration.fast,v.motion.easing.standard,v.motion.easing.accelerate,v.motion.spring.snappy]);const{handleGesture:K}=useDragToDismiss({drag:E,travel:W,onDismiss:o}),U=useMemo(()=>Gesture.Native(),[]),[Y,Z]=useState(0),q=useKeyboardState(e=>e.height),Q=A?Math.max(0,Math.round(q)):0,X=Math.max(z.top,StatusBar.currentHeight??0)+v.spacing.sm,ee=Q>0,te=ee?Math.max(0,Math.min(W,(Y>0?Y:H)-Q-X)):W;useEffect(()=>{t||P("")},[t]);const oe=useMemo(()=>{const e=j?L.trim().toLowerCase():"",matches=t=>0===e.length||h(t).toLowerCase().includes(e)||(y(t)??"").toLowerCase().includes(e);if(!a)return n.filter(matches).map(e=>({kind:"option",option:e}));const t=[];return a.forEach((e,o)=>{const i=e.options.filter(matches);if(0!==i.length){t.push({kind:"header",title:e.title});for(const e of i)t.push({kind:"option",option:e,section:o})}}),t},[j,L,n,a,h,y]),ie=useCallback(()=>{o()},[o]),se=useRef(null),re=useMemo(()=>{const e=new Map;if(!d)return e;let t=0;if(a)for(let e=oe.length-1;e>=0;e-=1)if("header"===oe[e].kind){t=e+1;break}for(let o=t;o<oe.length;o+=1){const t=oe[o];if("option"!==t.kind)continue;const i=h(t.option).trim().charAt(0).toUpperCase(),s=/^[A-Z]$/.test(i)?i:"#";e.has(s)||e.set(s,o)}return e},[d,oe,a,h]),ne=d&&re.size>0&&0===L.trim().length,ae=useMemo(()=>[..."ABCDEFGHIJKLMNOPQRSTUVWXYZ",...re.has("#")?["#"]:[]],[re]),le=useCallback(e=>{const t=re.get(e);void 0!==t&&se.current?.scrollToIndex({index:t,animated:!0,viewPosition:0})},[re]),ce=useRef(null),de=useCallback(()=>{null!==ce.current&&(clearTimeout(ce.current),ce.current=null)},[]),pe=useCallback(e=>{se.current?.scrollToOffset({offset:e.averageItemLength*e.index,animated:!1}),de(),ce.current=setTimeout(()=>{ce.current=null,se.current?.scrollToIndex({index:e.index,animated:!0,viewPosition:0})},50)},[de]);useEffect(()=>(A||de(),de),[A,de]);return _jsx(Modal,{visible:A,transparent:!0,animationType:"none",onRequestClose:ie,onDismiss:()=>$.current?.(),statusBarTranslucent:!0,navigationBarTranslucent:!0,children:_jsxs(GestureHandlerRootView,{collapsable:!1,onLayout:e=>Z(e.nativeEvent.layout.height),style:[StyleSheet.absoluteFill,{backgroundColor:v.colors.background.overlay}],children:[_jsx(Pressable,{style:StyleSheet.absoluteFill,onPress:ie,accessibilityRole:"button",accessibilityLabel:"Close picker"}),_jsxs(Animated.View,{testID:I,accessibilityViewIsModal:!0,accessibilityLabel:w??r??"Options",style:[D.sheet,{maxHeight:te,bottom:Q,paddingBottom:ee?16:z.bottom+16,backgroundColor:v.colors.background.elevated,borderTopLeftRadius:v.radius.xl,borderTopRightRadius:v.radius.xl,...smoothCorners,transform:[{translateY:F}],...v.shadows.xl}],children:[_jsx(GestureDetector,{gesture:K,children:_jsxs(View,{children:[_jsx(View,{style:D.sheetHandleRow,children:_jsx(View,{style:[D.sheetHandle,{backgroundColor:v.components.select?.handleColor??v.components.bottomSheet?.handleColor??v.colors.border.primary}]})}),r?_jsx(Text,{style:[D.sheetTitle,{color:v.colors.text.primary,fontSize:v.typography.fontSize.lg,fontWeight:v.typography.fontWeight.semibold,paddingHorizontal:v.spacing.lg,marginBottom:v.spacing.sm}],children:r}):null]})}),j?_jsx(View,{style:[D.searchWrap,{marginHorizontal:v.spacing.lg,marginBottom:v.spacing.sm}],children:_jsxs(View,{style:[D.searchBox,{backgroundColor:v.colors.background.secondary,borderColor:v.colors.border.primary,borderRadius:v.radius.md,...smoothCorners,paddingHorizontal:v.spacing.md,gap:v.spacing.sm}],children:[(v.icons?.search??defaultIcons.search)({size:18,color:v.colors.text.tertiary}),_jsx(TextInput,{value:L,onChangeText:P,placeholder:p,placeholderTextColor:v.colors.text.tertiary,selectionColor:C??v.colors.border.focus,accessibilityLabel:"Search options",style:[D.searchInput,{color:v.colors.text.primary,fontSize:v.typography.fontSize.base,paddingVertical:v.spacing.sm}]}),L.length>0?_jsx(Pressable,{onPress:()=>P(""),hitSlop:8,accessibilityRole:"button",accessibilityLabel:"Clear search",children:(v.icons?.close??defaultIcons.close)({size:18,color:v.colors.text.secondary})}):null]})}):null,_jsxs(View,{style:[D.listWrap,ne?D.listRow:null],children:[_jsx(GestureDetector,{gesture:U,children:_jsx(FlatList,{ref:se,data:oe,keyExtractor:e=>"header"===e.kind?`h:${e.title}`:`o:${e.section??""}:${String(m(e.option))}`,renderItem:({item:e})=>{if("header"===e.kind)return _jsx(View,{accessible:!0,accessibilityRole:"header",style:[D.sectionHeader,{paddingHorizontal:v.spacing.lg,paddingTop:v.spacing.md}],children:l?l(e.title):_jsx(Text,{style:[D.sectionTitle,{color:v.colors.text.tertiary,fontSize:v.typography.fontSize.xs,fontWeight:v.typography.fontWeight.semibold}],children:e.title.toUpperCase()})});const t=e.option,o=h(t),i=m(t),s=y(t),r=b(t),n=x(i),a=g(t),d=f?.(t)??!1;return _jsxs(Pressable,{onPress:()=>S(t),disabled:a,android_ripple:{color:v.colors.surface.pressed,borderless:!1},accessibilityRole:"button",accessibilityLabel:o,accessibilityState:{selected:n,disabled:a},"aria-selected":n,"aria-disabled":a,style:({pressed:e})=>[D.optionRow,{backgroundColor:n?v.colors.surface.selected:e?v.colors.surface.pressed:"transparent",opacity:a?.5:1,paddingHorizontal:v.spacing.lg,paddingVertical:v.spacing.md},_,n?R:null],children:[c?_jsx(View,{style:D.optionTextWrap,children:c(t,{selected:n,disabled:a})}):_jsxs(_Fragment,{children:[r?_jsx(View,{style:D.optionIcon,children:r}):null,_jsxs(View,{style:D.optionTextWrap,children:[_jsx(Text,{style:[D.optionLabel,{color:d?v.colors.toneText.error:n?v.colors.primary:v.colors.text.primary,fontSize:v.typography.fontSize.base,fontWeight:n?v.typography.fontWeight.semibold:v.typography.fontWeight.medium},V,n?k:null],children:o}),s?_jsx(Text,{style:[D.optionDescription,{color:v.colors.text.tertiary,fontSize:v.typography.fontSize.sm}],numberOfLines:2,children:s}):null]})]}),T?_jsx(View,{style:[D.checkbox,{borderColor:n?v.colors.primary:v.colors.border.primary,backgroundColor:n?v.colors.primary:"transparent"}],children:n?_jsx(View,{style:D.checkboxTick}):null}):n?"icon"===v.components.optionSheet?.selectedMarker?_jsx(View,{style:D.singleSelectedIcon,children:(v.icons?.selectedTick??defaultIcons.selectedTick)({size:20,color:v.colors.primary})}):_jsx(View,{style:[D.singleSelectedDot,{backgroundColor:v.colors.primary}]}):null]})},onScrollToIndexFailed:pe,overScrollMode:"never",bounces:!1,keyboardShouldPersistTaps:"handled",showsVerticalScrollIndicator:!ne,style:ne?D.listBesideRail:null,ListEmptyComponent:_jsx(Text,{style:[D.empty,{color:v.colors.text.tertiary,fontSize:v.typography.fontSize.sm,paddingVertical:v.spacing.xl}],children:u})})}),ne?_jsx(View,{style:[D.rail,{paddingRight:v.spacing.xs}],accessibilityRole:"list",accessibilityLabel:"Jump to letter",testID:"option-sheet-alphabet",children:ae.map(e=>{const t=re.has(e);return _jsx(Pressable,{onPress:()=>le(e),disabled:!t,hitSlop:{left:8,right:8},accessibilityRole:"button",accessibilityLabel:`Jump to ${e}`,accessibilityState:{disabled:!t},"aria-disabled":!t,style:D.railLetter,children:_jsx(Text,{style:[D.railLetterText,{color:t?v.colors.primary:v.colors.text.tertiary,fontSize:v.typography.fontSize.xs,fontWeight:v.typography.fontWeight.semibold,opacity:t?1:.45}],children:e})},e)})}):null]}),T?_jsx(View,{style:[D.sheetFooter,{borderTopColor:v.colors.border.secondary,paddingHorizontal:v.spacing.lg,paddingVertical:v.spacing.md}],children:_jsx(Pressable,{onPress:ie,accessibilityRole:"button",accessibilityLabel:"Done",style:({pressed:e})=>[D.doneButton,{backgroundColor:e?v.colors.primaryPressed:v.colors.primary,borderRadius:v.radius.md,...smoothCorners,paddingVertical:v.spacing.sm,paddingHorizontal:v.spacing.lg}],children:_jsx(Text,{style:{color:v.colors.onPrimary,fontSize:v.typography.fontSize.base,fontWeight:v.typography.fontWeight.semibold},children:"Done"})})}):null]}),_jsx(ToastHost,{})]})})};OptionSheet.displayName="OptionSheet";const buildStyles=e=>StyleSheet.create({sheet:{position:"absolute",left:0,right:0,bottom:0,paddingBottom:16,overflow:"hidden"},sheetHandleRow:{alignItems:"center",paddingTop:10,paddingBottom:8},sheetHandle:{width:36,height:4,borderRadius:2,...smoothCorners},sheetTitle:{includeFontPadding:!1},searchWrap:{width:"auto"},searchBox:{flexDirection:"row",alignItems:"center",borderWidth:1},searchInput:{flex:1,includeFontPadding:!1},optionRow:{flexDirection:"row",alignItems:"center"},sectionHeader:{paddingBottom:4},listWrap:{flexShrink:1},listRow:{flexDirection:"row"},listBesideRail:{flex:1},rail:{justifyContent:"space-between",alignItems:"center",alignSelf:"stretch",paddingVertical:4},railLetter:{paddingHorizontal:4,minHeight:14,justifyContent:"center"},railLetterText:{includeFontPadding:!1,lineHeight:14},sectionTitle:{includeFontPadding:!1,letterSpacing:.6},optionIcon:{marginRight:12},optionTextWrap:{flex:1},optionLabel:{includeFontPadding:!1},optionDescription:{includeFontPadding:!1,marginTop:2},checkbox:{width:22,height:22,borderRadius:6,...smoothCorners,borderWidth:2,alignItems:"center",justifyContent:"center",marginLeft:12},checkboxTick:{width:10,height:6,borderLeftWidth:2,borderBottomWidth:2,borderColor:e.colors.onPrimary,transform:[{rotate:"-45deg"},{translateY:-1}]},singleSelectedDot:{width:8,height:8,borderRadius:4,...smoothCorners,marginLeft:12},singleSelectedIcon:{marginLeft:12},empty:{textAlign:"center"},sheetFooter:{borderTopWidth:StyleSheet.hairlineWidth,alignItems:"flex-end"},doneButton:{alignSelf:"flex-end"}});export default OptionSheet;
@@ -0,0 +1 @@
1
+ "use strict";import{useEffect,useMemo,useRef}from"react";import{StyleSheet,View}from"react-native";import{useTheme}from"../../theme/index.js";import{announce}from"../../utils/announce.js";import{Button}from"../Button/index.js";import{IconBadge}from"../IconBadge/index.js";import{Text}from"../Text/index.js";import{usePermissionPrompt}from"./usePermissionPrompt.js";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";const ACCESS={camera:"Camera access",microphone:"Microphone access",photos:"Photo access",photosAdd:"Photo access",mediaLibrary:"Media library access",location:"Location access",locationAlways:"Location access",contacts:"Contacts access",calendar:"Calendar access",reminders:"Reminders access",notifications:"Notification access",bluetooth:"Bluetooth access",storage:"Storage access"},unavailableMessage=(e,s,t)=>{const i=ACCESS[e];return"unavailable"===s?`${i} is not available on this device.`:t?`${i} is off for this app. You can turn it on in Settings.`:`${i} is off, so this cannot be used right now.`};export const PermissionPrompt=({kind:e,title:s,reason:t,icon:i,onResult:n,fallback:a,haptic:o="selection",style:r,testID:c})=>{const l=useTheme(),u=useMemo(()=>buildStyles(l),[l]),m=usePermissionPrompt(e,{onResult:n}),p=unavailableMessage(e,m.status,m.showSettings),d=useRef(!1);if(useEffect(()=>{"explain"!==m.view?("unavailable"===m.view&&d.current&&announce(p),d.current=!1):d.current=!0},[m.view,p]),"explain"!==m.view&&"unavailable"!==m.view)return _jsx(View,{style:r,testID:c});const h="explain"===m.view;return _jsxs(View,{style:[u.root,r],testID:c,children:[_jsxs(View,{style:u.header,children:[i?_jsx(IconBadge,{icon:i,size:"lg",tone:h?"primary":"neutral"}):null,_jsx(Text,{variant:"h3",align:"center",children:s}),_jsx(Text,{variant:"body",color:"secondary",align:"center",children:h?t:p})]}),_jsxs(View,h?{style:u.actions,children:[_jsx(Button,{haptic:o,title:"Continue",size:"lg",fullWidth:!0,loading:m.requesting,onPress:()=>{m.request()}}),m.cancellable?_jsx(Button,{haptic:o,title:"Cancel",size:"lg",fullWidth:!0,variant:"ghost",tone:"neutral",disabled:m.requesting,onPress:m.cancel}):null]}:{style:u.actions,children:[a?_jsx(Button,{haptic:o,title:a.label,size:"lg",fullWidth:!0,onPress:a.onPress}):null,m.showSettings?_jsx(View,{style:u.link,children:_jsx(Button,{haptic:o,title:"Open Settings",variant:"link",onPress:()=>{m.openSettings()}})}):null]})]})};const buildStyles=e=>StyleSheet.create({root:{gap:e.spacing.lg,paddingVertical:e.spacing.lg},header:{alignItems:"center",gap:e.spacing.sm},actions:{gap:e.spacing.sm},link:{alignItems:"center",paddingVertical:e.spacing.sm}});export default PermissionPrompt;
@@ -0,0 +1 @@
1
+ "use strict";export{default,PermissionPrompt}from"./PermissionPrompt.js";export{usePermissionPrompt}from"./usePermissionPrompt.js";
@@ -0,0 +1 @@
1
+ "use strict";import{Logger}from"@webority/mobile-core";import{Permissions}from"@webority/mobile-core/permissions";import{useCallback,useEffect,useRef,useState}from"react";import{AppState,Platform}from"react-native";const INITIAL={view:"pending",status:null,requesting:!1,answered:!1},isAuthorized=e=>"granted"===e||"limited"===e,canAsk=e=>"undetermined"===e||"denied"===e,settledView=e=>isAuthorized(e)?"authorized":"unavailable",safely=async(e,t,r)=>{try{return await r()}catch(r){return Logger.error(`[@webority/mobile-ui] PermissionPrompt: ${e}(${t}) failed.`,r),"unavailable"}};export const usePermissionPrompt=(e,{onResult:t}={})=>{const[r,s]=useState(INITIAL),n=useRef(r);n.current=r;const i=useRef(t);i.current=t;const u=useRef(0),a=useRef(!1),c="android"===Platform.OS,o=useCallback(async t=>{if(a.current)return null;a.current=!0,s(e=>({...e,requesting:!0}));const r=await safely("request",e,()=>Permissions.request(e));return a.current=!1,t!==u.current||(s({view:settledView(r),status:r,requesting:!1,answered:!0}),i.current?.(r)),r},[e]);useEffect(()=>{u.current+=1;const t=u.current;s(INITIAL);return(async()=>{const r=await safely("check",e,()=>Permissions.check(e));if(t===u.current){if(c&&"undetermined"===r){s({...INITIAL,status:r});return void(null===await o(t)&&t===u.current&&s({...INITIAL,view:"explain",status:r}))}canAsk(r)?s({...INITIAL,view:"explain",status:r}):(s({...INITIAL,view:settledView(r),status:r}),i.current?.(r))}})(),()=>{u.current+=1}},[e,c,o]);const l="unavailable"===r.view&&"blocked"===r.status&&!r.answered;useEffect(()=>{if(!l)return;const t=u.current,r=AppState.addEventListener("change",r=>{"active"===r&&safely("check",e,()=>Permissions.check(e)).then(e=>{t===u.current&&(isAuthorized(e)?(s({view:"authorized",status:e,requesting:!1,answered:!0}),i.current?.(e)):canAsk(e)&&s({...INITIAL,view:"explain",status:e}))})});return()=>r.remove()},[l,e]);const d=useCallback(()=>o(u.current),[o]),w=useCallback(()=>{const e=n.current;"explain"!==e.view||null===e.status||e.requesting||(s({...e,view:"unavailable",answered:!0}),i.current?.(e.status))},[]);return{view:r.view,status:r.status,requesting:r.requesting,cancellable:c,showSettings:l,request:d,cancel:w,openSettings:Permissions.openSettings}};
@@ -1 +1 @@
1
- "use strict";import{countryFlagEmoji,formatPhoneAsTyped,getPhoneCountries,isSupportedCountry,isValidNationalNumber,maxNationalNumberLength,splitPhoneNumber}from"@webority/mobile-core";import{PHONE_COUNTRY_NAMES}from"@webority/mobile-core/phone/countries";import{forwardRef,useCallback,useEffect,useImperativeHandle,useMemo,useRef,useState}from"react";import{Pressable,StyleSheet,Text,TextInput,View}from"react-native";import{useControllableState}from"../../hooks/index.js";import{fontFor,useTheme}from"../../theme/index.js";import{resolveHaptic,triggerHaptic}from"../../utils/index.js";import{FieldBase,FieldLabel,FieldMessage,hasFieldText,RequiredPlaceholder,resolveFieldSize,resolveFieldTextStyle}from"../FieldBase/index.js";import{Chevron}from"../FieldBase/Chevron.js";import{useFloatingLabel}from"../FieldBase/useFloatingLabel.js";import{OptionSheet}from"../OptionSheet/OptionSheet.js";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";export const DEFAULT_CALLING_CODES=[{iso:"IN",code:"91",label:"India"},{iso:"AE",code:"971",label:"United Arab Emirates"},{iso:"GB",code:"44",label:"United Kingdom"},{iso:"US",code:"1",label:"United States"},{iso:"CA",code:"1",label:"Canada"},{iso:"AU",code:"61",label:"Australia"},{iso:"SG",code:"65",label:"Singapore"},{iso:"SA",code:"966",label:"Saudi Arabia"}];export const ALL_CALLING_CODES=getPhoneCountries().map(e=>({iso:e.iso,code:e.callingCode,label:PHONE_COUNTRY_NAMES[e.iso]??e.iso})).sort((e,t)=>e.label.localeCompare(t.label));const digitsOnly=e=>e.replace(/[^0-9]/g,"");export const formatE164=e=>`+${e.callingCode}${e.nationalNumber}`;export const parseE164=(e,t,o)=>{const i=e.replace(/[^0-9]/g,"");if(!i)return null;const n=splitPhoneNumber(`+${i}`);let l=n?.callingCode,r=n?.nationalNumber??"";if(!l){const e=Array.from(new Set(t.map(e=>e.code))).sort((e,t)=>t.length-e.length);if(l=e.find(e=>i.startsWith(e)),!l)return null;r=i.slice(l.length)}const a=t.filter(e=>e.code===l),s=a.find(e=>e.iso===o)?.iso??a.find(e=>e.iso===n?.country)?.iso??n?.country??a[0]?.iso??"";return{callingCode:l,nationalNumber:r,iso:s}};const planOf=e=>isSupportedCountry(e)?e:null;export const PhoneNumberInput=forwardRef((e,t)=>{const{value:o,defaultValue:i,onChange:n,e164:l,onChangeE164:r,returnKeyType:a,submitBehavior:s,onSubmitEditing:u,blurOnSubmit:d,onComplete:c,onValidityChange:b,countries:m=ALL_CALLING_CODES,popularCountries:p,popularCountriesTitle:f="Popular",allCountriesTitle:g="All countries",hiddenCountries:h,showFlag:y=!0,renderFlag:N,renderCountry:C,countrySearchPlaceholder:S,showAlphabetIndex:x,defaultIso:v="IN",validation:F="any",maxLength:T,formatAsYouType:I=!0,countryLocked:E=!1,label:L,labelMode:O="top",labelStyle:P,placeholder:j="Phone number",helperText:_,error:A,invalidMessage:w,required:z,disabled:R=!1,size:k="md",variant:M,borderRadius:V,countrySheetTitle:D="Country code",haptic:B,accessibilityLabel:$,countryAccessibilityLabel:H,onFocus:U,onBlur:W,style:q,testID:G}=e,Y=useTheme(),K=useMemo(()=>buildStyles(Y),[Y]),J=useRef(null),Q=useMemo(()=>h?.length?m.filter(e=>!h.includes(e.iso)):m,[m,h]),X=useMemo(()=>{if(!p?.length)return;const e=p.map(e=>Q.find(t=>t.iso===e)).filter(e=>void 0!==e);return e.length?[{title:f,options:e},{title:g,options:Q}]:void 0},[p,f,g,Q]),Z=useCallback((e,t,o)=>{if(!e)return null;if(N)return N(e);if(!y)return null;const i=countryFlagEmoji(e.iso);return i?_jsx(Text,{style:[K.flag,{fontSize:t}],testID:o,children:i}):null},[N,y,K.flag]),ee=useCallback(e=>{const t=planOf(e),o=t?maxNationalNumberLength(t,!1===F?"any":F):Number.POSITIVE_INFINITY;return T?Math.min(o,T):o},[T,F]),te=useCallback((e,t)=>e.slice(0,ee(t)),[ee]),oe=useCallback((e,t)=>{const o=planOf(t)??void 0,i=splitPhoneNumber(e,o);if(!i)return null;const n=i.country??t,l=m.find(e=>e.iso===n);return{callingCode:l?.code??i.callingCode,nationalNumber:te(i.nationalNumber,n),iso:l?.iso??n}},[m,te]),ie=useMemo(()=>{const e=Q.find(e=>e.iso===v)??Q[0]??m[0],t={callingCode:e?.code??"91",nationalNumber:"",iso:e?.iso??"IN"};return"string"==typeof i?oe(i,t.iso)??t:i??t},[m,Q,v,i,oe]),ne=useCallback(e=>{if(!1===F)return e.nationalNumber.length>0;const t=planOf(e.iso);return t?isValidNationalNumber(e.nationalNumber,t,F):e.nationalNumber.length>0},[F]),[le,re]=useState(ie.iso),ae=useMemo(()=>{if(void 0===l)return;const e=l?parseE164(l,m,le):null;if(e)return{...e,nationalNumber:te(e.nationalNumber,e.iso)};const t=m.find(e=>e.iso===le);return{callingCode:t?.code??ie.callingCode,nationalNumber:"",iso:le}},[l,m,le,ie.callingCode,te]),se=useCallback(e=>{re(e.iso),n?.(e),r?.(e.nationalNumber?formatE164(e):"",{country:m.find(t=>t.iso===e.iso),national:e.nationalNumber,valid:ne(e)})},[n,r,m,ne]),[ue,de]=useControllableState({value:o??ae,defaultValue:ie,onChange:se}),[ce,be]=useState(!1),me=useCallback(()=>{R||J.current?.focus()},[R]),[pe,fe]=useState(!1),[ge,he]=useState(!1),[ye,Ne]=useState(!1),Ce=useRef(!1);useEffect(()=>{ye||(Ce.current=!1)},[ye]);const Se=resolveFieldSize(Y,k),xe=resolveFieldTextStyle(Y,{disabled:R}),ve=M??Y.components.field?.defaultVariant??"outlined",Fe="underline"===ve,Te=V??Y.components.phoneNumberInput?.borderRadius,Ie=Y.spacing.md,[Ee,Le]=useState(0),Oe=Ee+Ie+1+Ie,Pe=ue.nationalNumber.length>0,je=z&&!L&&!Pe&&j.length>0,_e=ce||Pe,Ae=Boolean(L)&&"float"===O&&Ee>0,we=useFloatingLabel({label:L,enabled:Ae,floated:_e,required:z,variant:ve,sizeTokens:Se,leadingOffset:Oe,paddingLeft:Fe?0:Se.paddingHorizontal,color:Y.colors.field.label,style:P}),ze=useMemo(()=>m.find(e=>e.iso===ue.iso),[m,ue.iso]),Re=planOf(ue.iso),ke=I&&Re?formatPhoneAsTyped(ue.nationalNumber,Re):ue.nationalNumber,Me=ee(ue.iso),Ve=0===ue.nationalNumber.length||pe||!Number.isFinite(Me)?void 0:ke.length+Math.max(0,Me-ue.nationalNumber.length),De=ne(ue);useEffect(()=>{Pe||he(!1)},[Pe]);const Be=Re?maxNationalNumberLength(Re,!1===F?"any":F):Number.POSITIVE_INFINITY,$e=ue.nationalNumber.length>=Be,He=A??(!1!==F&&!1!==w&&Pe&&!De&&(ge||$e)?w||("mobile"===F?"Enter a valid mobile number":"Enter a valid number"):void 0),Ue=useRef(De),We=useRef(ue);We.current=ue,useEffect(()=>{Ue.current!==De&&(Ue.current=De,b?.(De),De&&c?.(formatE164(We.current)))},[De,c,b]);const qe=useCallback(e=>{if(e.includes("+")){const t=oe(e,ue.iso);if(t&&!E&&Q.some(e=>e.iso===t.iso))return void de(t);if(t&&t.iso===ue.iso)return void de(t)}de({...ue,nationalNumber:te(digitsOnly(e),ue.iso)})},[Q,E,ue,oe,te,de]),Ge=useCallback(e=>{const t=e;de({callingCode:t.code,iso:t.iso,nationalNumber:te(ue.nationalNumber,t.iso)}),Ne(!1);const o=resolveHaptic(B,"selection");o&&triggerHaptic(o)},[ue,B,te,de]);useImperativeHandle(t,()=>({focus:()=>J.current?.focus(),blur:()=>J.current?.blur(),clear:()=>de({...We.current,nationalNumber:""}),isFocused:()=>J.current?.isFocused()??!1,getValue:()=>We.current,getE164:()=>formatE164(We.current),getFormatted:()=>{const e=We.current,t=planOf(e.iso);return t?formatPhoneAsTyped(e.nationalNumber,t):e.nationalNumber},isValid:()=>ne(We.current),getCountry:()=>m.find(e=>e.iso===We.current.iso)}),[m,ne,de]);const Ye=R||E,Ke=_jsx(FieldBase,{size:k,variant:ve,borderRadius:Te,topNotch:we.topNotch,focused:ce,disabled:R,error:hasFieldText(He),filled:Pe,onPress:me,pressFeedback:!1,leadingDivider:!0,paddingLeft:Fe?0:void 0,leading:_jsxs(Pressable,{onPress:()=>{Ye||(Ce.current=!0,Ne(!0))},disabled:Ye,accessibilityRole:"button",accessibilityLabel:H??`Country code, currently +${ue.callingCode}`,accessibilityState:{disabled:Ye},"aria-disabled":Ye,hitSlop:6,onLayout:e=>{const{width:t}=e.nativeEvent.layout;Le(e=>e===t?e:t)},style:K.codeTrigger,testID:G?`${G}-code`:void 0,children:[Z(ze,Se.fontSize,G?`${G}-flag`:void 0),_jsx(Text,{style:[K.codeText,{color:xe.color,fontSize:Se.fontSize}],children:`+${ue.callingCode}`}),E?null:_jsx(Chevron,{color:R?Y.colors.field.iconDisabled:Y.colors.field.icon,size:Se.iconSize,open:ye})]}),children:_jsxs(View,{style:K.inputWrap,children:[_jsx(TextInput,{ref:J,value:ke,maxLength:Ve,onChangeText:qe,returnKeyType:a,submitBehavior:s,onSubmitEditing:u,blurOnSubmit:d,onSelectionChange:e=>{const{start:t,end:o}=e.nativeEvent.selection;fe(t!==o)},onFocus:()=>{be(!0),U?.()},onBlur:()=>{be(!1),Pe&&!Ce.current&&he(!0),W?.()},editable:!R,placeholder:Ae&&!_e||je?void 0:j,placeholderTextColor:xe.placeholderColor,accessibilityLabel:$??L??j,selectionColor:Y.colors.field.caret,keyboardType:"phone-pad",textContentType:"telephoneNumber",autoComplete:"tel",style:[K.input,{color:xe.color,fontSize:Se.fontSize,...xe.weightStyle,paddingLeft:Fe?0:void 0}],testID:G?`${G}-input`:void 0}),je?_jsx(RequiredPlaceholder,{text:j,color:xe.placeholderColor,fontSize:Se.fontSize,weightStyle:xe.weightStyle}):null]})});return _jsxs(View,{style:q,testID:G,children:[L&&"top"===O?_jsx(FieldLabel,{size:k,required:z,children:L}):null,_jsxs(View,{style:K.fieldWrapper,children:[Ke,we.node]}),_jsx(FieldMessage,{size:k,error:hasFieldText(He),text:He??_}),_jsx(OptionSheet,{open:ye,onClose:()=>Ne(!1),title:D,options:Q,sections:X,labelOf:e=>`${e.label} (+${e.code})`,getValue:e=>e.iso,disabledOf:()=>!1,descriptionOf:()=>{},iconOf:e=>Z(e,Y.typography.fontSize.lg),renderOption:C?(e,t)=>C(e,{selected:t.selected}):void 0,isSelected:e=>e===ze?.iso,onSelect:Ge,searchable:Q.length>8,searchPlaceholder:S,alphabetIndex:x??Q.length>20})]})});PhoneNumberInput.displayName="PhoneNumberInput";const buildStyles=e=>StyleSheet.create({fieldWrapper:{position:"relative",overflow:"visible"},codeTrigger:{flexDirection:"row",alignItems:"center",gap:2},flag:{includeFontPadding:!1,marginRight:4},codeText:{...fontFor(e,"semibold"),fontWeight:"600",includeFontPadding:!1,writingDirection:"ltr"},input:{padding:0,margin:0,includeFontPadding:!1,writingDirection:"ltr"},inputWrap:{flex:1,alignSelf:"stretch",justifyContent:"center"}});export default PhoneNumberInput;
1
+ "use strict";import{countryFlagEmoji,formatPhoneAsTyped,getPhoneCountries,isSupportedCountry,isValidNationalNumber,maxNationalNumberLength,splitPhoneNumber}from"@webority/mobile-core";import{PHONE_COUNTRY_NAMES}from"@webority/mobile-core/phone/countries";import{forwardRef,useCallback,useEffect,useImperativeHandle,useMemo,useRef,useState}from"react";import{Pressable,StyleSheet,Text,TextInput,View}from"react-native";import{useControllableState}from"../../hooks/index.js";import{fontFor,useTheme}from"../../theme/index.js";import{resolveHaptic,triggerHaptic}from"../../utils/index.js";import{FieldBase,FieldLabel,FieldMessage,hasFieldText,RequiredPlaceholder,resolveFieldSize,resolveFieldTextStyle}from"../FieldBase/index.js";import{Chevron}from"../FieldBase/Chevron.js";import{useFloatingLabel}from"../FieldBase/useFloatingLabel.js";import{OptionSheet}from"../OptionSheet/OptionSheet.js";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";export const DEFAULT_CALLING_CODES=[{iso:"IN",code:"91",label:"India"},{iso:"AE",code:"971",label:"United Arab Emirates"},{iso:"GB",code:"44",label:"United Kingdom"},{iso:"US",code:"1",label:"United States"},{iso:"CA",code:"1",label:"Canada"},{iso:"AU",code:"61",label:"Australia"},{iso:"SG",code:"65",label:"Singapore"},{iso:"SA",code:"966",label:"Saudi Arabia"}];export const ALL_CALLING_CODES=getPhoneCountries().map(e=>({iso:e.iso,code:e.callingCode,label:PHONE_COUNTRY_NAMES[e.iso]??e.iso})).sort((e,t)=>e.label.localeCompare(t.label));const digitsOnly=e=>e.replace(/[^0-9]/g,"");export const formatE164=e=>`+${e.callingCode}${e.nationalNumber}`;export const parseE164=(e,t,o)=>{const i=e.replace(/[^0-9]/g,"");if(!i)return null;const n=splitPhoneNumber(`+${i}`);let l=n?.callingCode,r=n?.nationalNumber??"";if(!l){const e=Array.from(new Set(t.map(e=>e.code))).sort((e,t)=>t.length-e.length);if(l=e.find(e=>i.startsWith(e)),!l)return null;r=i.slice(l.length)}const a=t.filter(e=>e.code===l),s=a.find(e=>e.iso===o)?.iso??a.find(e=>e.iso===n?.country)?.iso??n?.country??a[0]?.iso??"";return{callingCode:l,nationalNumber:r,iso:s}};const planOf=e=>isSupportedCountry(e)?e:null;export const PhoneNumberInput=forwardRef((e,t)=>{const{value:o,defaultValue:i,onChange:n,e164:l,onChangeE164:r,returnKeyType:a,submitBehavior:s,onSubmitEditing:u,blurOnSubmit:d,onComplete:c,onValidityChange:b,countries:m=ALL_CALLING_CODES,popularCountries:p,popularCountriesTitle:f="Popular",allCountriesTitle:g="All countries",hiddenCountries:h,showFlag:y=!0,renderFlag:N,renderCountry:C,countrySearchPlaceholder:S,showAlphabetIndex:x,defaultIso:v="IN",validation:F="any",maxLength:T,formatAsYouType:I=!0,countryLocked:E=!1,label:L,labelMode:O="top",labelStyle:P,placeholder:j="Phone number",helperText:_,error:A,invalidMessage:w,required:z,disabled:R=!1,size:k="md",variant:M,borderRadius:V,countrySheetTitle:D="Country code",haptic:B,accessibilityLabel:$,countryAccessibilityLabel:H,onFocus:U,onBlur:W,style:q,testID:G}=e,Y=useTheme(),K=useMemo(()=>buildStyles(Y),[Y]),J=useRef(null),Q=useMemo(()=>h?.length?m.filter(e=>!h.includes(e.iso)):m,[m,h]),X=useMemo(()=>{if(!p?.length)return;const e=p.map(e=>Q.find(t=>t.iso===e)).filter(e=>void 0!==e);return e.length?[{title:f,options:e},{title:g,options:Q}]:void 0},[p,f,g,Q]),Z=useCallback((e,t,o)=>{if(!e)return null;if(N)return N(e);if(!y)return null;const i=countryFlagEmoji(e.iso);return i?_jsx(Text,{style:[K.flag,{fontSize:t}],testID:o,children:i}):null},[N,y,K.flag]),ee=useCallback(e=>{const t=planOf(e),o=t?maxNationalNumberLength(t,!1===F?"any":F):Number.POSITIVE_INFINITY;return T?Math.min(o,T):o},[T,F]),te=useCallback((e,t)=>e.slice(0,ee(t)),[ee]),oe=useCallback((e,t)=>{const o=planOf(t)??void 0,i=splitPhoneNumber(e,o);if(!i)return null;const n=i.country??t,l=m.find(e=>e.iso===n);return{callingCode:l?.code??i.callingCode,nationalNumber:te(i.nationalNumber,n),iso:l?.iso??n}},[m,te]),ie=useMemo(()=>{const e=Q.find(e=>e.iso===v)??Q[0]??m[0],t={callingCode:e?.code??"91",nationalNumber:"",iso:e?.iso??"IN"};return"string"==typeof i?oe(i,t.iso)??t:i??t},[m,Q,v,i,oe]),ne=useCallback(e=>{if(!1===F)return e.nationalNumber.length>0;const t=planOf(e.iso);return t?isValidNationalNumber(e.nationalNumber,t,F):e.nationalNumber.length>0},[F]),[le,re]=useState(ie.iso),ae=useMemo(()=>{if(void 0===l)return;const e=l?parseE164(l,m,le):null;if(e)return{...e,nationalNumber:te(e.nationalNumber,e.iso)};const t=m.find(e=>e.iso===le);return{callingCode:t?.code??ie.callingCode,nationalNumber:"",iso:le}},[l,m,le,ie.callingCode,te]),se=useCallback(e=>{re(e.iso),n?.(e),r?.(e.nationalNumber?formatE164(e):"",{country:m.find(t=>t.iso===e.iso),national:e.nationalNumber,valid:ne(e)})},[n,r,m,ne]),[ue,de]=useControllableState({value:o??ae,defaultValue:ie,onChange:se}),[ce,be]=useState(!1),me=useCallback(()=>{R||J.current?.focus()},[R]),[pe,fe]=useState(!1),[ge,he]=useState(!1),[ye,Ne]=useState(!1),Ce=useRef(!1);useEffect(()=>{ye||(Ce.current=!1)},[ye]);const Se=resolveFieldSize(Y,k),xe=resolveFieldTextStyle(Y,{disabled:R}),ve=M??Y.components.field?.defaultVariant??"outlined",Fe="underline"===ve,Te=V??Y.components.phoneNumberInput?.borderRadius,Ie=Y.spacing.md,[Ee,Le]=useState(0),Oe=Ee+Ie+1+Ie,Pe=ue.nationalNumber.length>0,je=z&&!L&&!Pe&&j.length>0,_e=ce||Pe,Ae=Boolean(L)&&"float"===O&&Ee>0,we=useFloatingLabel({label:L,enabled:Ae,floated:_e,required:z,variant:ve,sizeTokens:Se,leadingOffset:Oe,paddingLeft:Fe?0:Se.paddingHorizontal,color:Y.colors.field.label,style:P}),ze=useMemo(()=>m.find(e=>e.iso===ue.iso),[m,ue.iso]),Re=planOf(ue.iso),ke=I&&Re?formatPhoneAsTyped(ue.nationalNumber,Re):ue.nationalNumber,Me=ee(ue.iso),Ve=0===ue.nationalNumber.length||pe||!Number.isFinite(Me)?void 0:ke.length+Math.max(0,Me-ue.nationalNumber.length),De=ne(ue);useEffect(()=>{Pe||he(!1)},[Pe]);const Be=Re?maxNationalNumberLength(Re,!1===F?"any":F):Number.POSITIVE_INFINITY,$e=ue.nationalNumber.length>=Be,He=!1!==F&&!1!==w&&Pe&&!De&&(ge||$e),Ue="mobile"===F?"Enter a valid mobile number":"Enter a valid number",We=hasFieldText(A)?A:He?w||Ue:void 0,qe=!0===A||hasFieldText(We),Ge=useRef(De),Ye=useRef(ue);Ye.current=ue,useEffect(()=>{Ge.current!==De&&(Ge.current=De,b?.(De),De&&c?.(formatE164(Ye.current)))},[De,c,b]);const Ke=useCallback(e=>{if(e.includes("+")){const t=oe(e,ue.iso);if(t&&!E&&Q.some(e=>e.iso===t.iso))return void de(t);if(t&&t.iso===ue.iso)return void de(t)}de({...ue,nationalNumber:te(digitsOnly(e),ue.iso)})},[Q,E,ue,oe,te,de]),Je=useCallback(e=>{const t=e;de({callingCode:t.code,iso:t.iso,nationalNumber:te(ue.nationalNumber,t.iso)}),Ne(!1);const o=resolveHaptic(B,"selection");o&&triggerHaptic(o)},[ue,B,te,de]);useImperativeHandle(t,()=>({focus:()=>J.current?.focus(),blur:()=>J.current?.blur(),clear:()=>de({...Ye.current,nationalNumber:""}),isFocused:()=>J.current?.isFocused()??!1,getValue:()=>Ye.current,getE164:()=>formatE164(Ye.current),getFormatted:()=>{const e=Ye.current,t=planOf(e.iso);return t?formatPhoneAsTyped(e.nationalNumber,t):e.nationalNumber},isValid:()=>ne(Ye.current),getCountry:()=>m.find(e=>e.iso===Ye.current.iso)}),[m,ne,de]);const Qe=R||E,Xe=_jsx(FieldBase,{size:k,variant:ve,borderRadius:Te,topNotch:we.topNotch,focused:ce,disabled:R,error:qe,filled:Pe,onPress:me,pressFeedback:!1,leadingDivider:!0,paddingLeft:Fe?0:void 0,leading:_jsxs(Pressable,{onPress:()=>{Qe||(Ce.current=!0,Ne(!0))},disabled:Qe,accessibilityRole:"button",accessibilityLabel:H??`Country code, currently +${ue.callingCode}`,accessibilityState:{disabled:Qe},"aria-disabled":Qe,hitSlop:6,onLayout:e=>{const{width:t}=e.nativeEvent.layout;Le(e=>e===t?e:t)},style:K.codeTrigger,testID:G?`${G}-code`:void 0,children:[Z(ze,Se.fontSize,G?`${G}-flag`:void 0),_jsx(Text,{style:[K.codeText,{color:xe.color,fontSize:Se.fontSize}],children:`+${ue.callingCode}`}),E?null:_jsx(Chevron,{color:R?Y.colors.field.iconDisabled:Y.colors.field.icon,size:Se.iconSize,open:ye})]}),children:_jsxs(View,{style:K.inputWrap,children:[_jsx(TextInput,{ref:J,value:ke,maxLength:Ve,onChangeText:Ke,returnKeyType:a,submitBehavior:s,onSubmitEditing:u,blurOnSubmit:d,onSelectionChange:e=>{const{start:t,end:o}=e.nativeEvent.selection;fe(t!==o)},onFocus:()=>{be(!0),U?.()},onBlur:()=>{be(!1),Pe&&!Ce.current&&he(!0),W?.()},editable:!R,placeholder:Ae&&!_e||je?void 0:j,placeholderTextColor:xe.placeholderColor,accessibilityLabel:$??L??j,selectionColor:Y.colors.field.caret,keyboardType:"phone-pad",textContentType:"telephoneNumber",autoComplete:"tel",style:[K.input,{color:xe.color,fontSize:Se.fontSize,...xe.weightStyle,paddingLeft:Fe?0:void 0}],testID:G?`${G}-input`:void 0}),je?_jsx(RequiredPlaceholder,{text:j,color:xe.placeholderColor,fontSize:Se.fontSize,weightStyle:xe.weightStyle}):null]})});return _jsxs(View,{style:q,testID:G,children:[L&&"top"===O?_jsx(FieldLabel,{size:k,required:z,children:L}):null,_jsxs(View,{style:K.fieldWrapper,children:[Xe,we.node]}),_jsx(FieldMessage,{size:k,error:qe,text:qe?We:_}),_jsx(OptionSheet,{open:ye,onClose:()=>Ne(!1),title:D,options:Q,sections:X,labelOf:e=>`${e.label} (+${e.code})`,getValue:e=>e.iso,disabledOf:()=>!1,descriptionOf:()=>{},iconOf:e=>Z(e,Y.typography.fontSize.lg),renderOption:C?(e,t)=>C(e,{selected:t.selected}):void 0,isSelected:e=>e===ze?.iso,onSelect:Je,searchable:Q.length>8,searchPlaceholder:S,alphabetIndex:x??Q.length>20})]})});PhoneNumberInput.displayName="PhoneNumberInput";const buildStyles=e=>StyleSheet.create({fieldWrapper:{position:"relative",overflow:"visible"},codeTrigger:{flexDirection:"row",alignItems:"center",gap:2},flag:{includeFontPadding:!1,marginRight:4},codeText:{...fontFor(e,"semibold"),fontWeight:"600",includeFontPadding:!1,writingDirection:"ltr"},input:{padding:0,margin:0,includeFontPadding:!1,writingDirection:"ltr"},inputWrap:{flex:1,alignSelf:"stretch",justifyContent:"center"}});export default PhoneNumberInput;
@@ -1 +1 @@
1
- "use strict";import{createContext,forwardRef,useContext,useMemo}from"react";import{Pressable,StyleSheet}from"react-native";import{useTheme}from"../../theme/index.js";import{resolveHaptic,triggerHaptic}from"../../utils/hapticUtils.js";import{hasFieldText}from"../FieldBase/index.js";import{ChoiceText,hasChoiceDetail}from"../FieldBase/ChoiceText.js";import{RadioDot}from"./RadioDot.js";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";export const RadioGroupContext=createContext(null);export const useRadioGroup=()=>useContext(RadioGroupContext);const toneColor=(e,t)=>{switch(t){case"success":return e.colors.success;case"warning":return e.colors.warning;case"error":return e.colors.error;default:return e.colors.primary}},Radio=forwardRef((e,t)=>{const{value:o,selected:r,onChange:i,disabled:s=!1,label:a,description:l,error:c,size:n="md",tone:d="primary",accessibilityLabel:p,haptic:u,style:m,containerStyle:b,circleStyle:h,dotStyle:x,labelStyle:y,testID:f,...C}=e,R=useTheme(),w=useMemo(()=>buildStyles(R),[R]),S=useRadioGroup();__DEV__&&void 0===o&&console.warn("[@webority/mobile-ui] Radio was rendered without a `value`. Selection compares against it, so the group cannot track which option is chosen.");const g=S?S.selectedValue===o:!!r,j=S&&S.disabled||s,D=toneColor(R,d),T=R.components.radio?.labelGap??10;return _jsxs(Pressable,{ref:t,onPress:e=>{if(j)return;const t=resolveHaptic(u,"selection");t&&triggerHaptic(t),S?S.onChange(o):i?.(o)},disabled:j,accessibilityRole:"radio",accessibilityLabel:p??a,accessibilityHint:C.accessibilityHint??l,accessibilityState:{checked:g,disabled:j},"aria-checked":g,"aria-disabled":j,testID:f,hitSlop:6,...C,style:({pressed:e})=>[w.row,hasChoiceDetail(l,c)?w.rowTop:null,{opacity:j?.55:e?.85:1},m,b],children:[_jsx(RadioDot,{selected:g,color:D,disabled:j&&!g,size:n,style:[!hasFieldText(c)||g||j?null:{borderColor:R.colors.field.borderError},h],dotStyle:x}),_jsx(ChoiceText,{label:a,description:l,error:c,disabled:j,labelLines:2,style:{marginLeft:T},labelStyle:y})]})});Radio.displayName="Radio";const buildStyles=e=>StyleSheet.create({row:{flexDirection:"row",alignItems:"center"},rowTop:{alignItems:"flex-start"}});export{Radio};export default Radio;
1
+ "use strict";import{createContext,forwardRef,useContext,useMemo}from"react";import{Pressable,StyleSheet}from"react-native";import{useTheme}from"../../theme/index.js";import{resolveHaptic,triggerHaptic}from"../../utils/hapticUtils.js";import{fieldTextAsString,hasFieldText}from"../FieldBase/index.js";import{ChoiceText,hasChoiceDetail}from"../FieldBase/ChoiceText.js";import{RadioDot}from"./RadioDot.js";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";export const RadioGroupContext=createContext(null);export const useRadioGroup=()=>useContext(RadioGroupContext);const toneColor=(e,t)=>{switch(t){case"success":return e.colors.success;case"warning":return e.colors.warning;case"error":return e.colors.error;default:return e.colors.primary}},Radio=forwardRef((e,t)=>{const{value:o,selected:r,onChange:i,disabled:s=!1,label:a,description:l,error:c,size:n="md",tone:d="primary",accessibilityLabel:p,haptic:u,style:m,containerStyle:x,circleStyle:b,dotStyle:h,labelStyle:y,testID:f,...S}=e,g=useTheme(),C=useMemo(()=>buildStyles(g),[g]),R=useRadioGroup();__DEV__&&void 0===o&&console.warn("[@webority/mobile-ui] Radio was rendered without a `value`. Selection compares against it, so the group cannot track which option is chosen.");const w=R?R.selectedValue===o:!!r,j=R&&R.disabled||s,T=toneColor(g,d),D=g.components.radio?.labelGap??10,_=p??fieldTextAsString(a),v=!0===R?.error||!0===c||hasFieldText(c);return _jsxs(Pressable,{ref:t,onPress:e=>{if(j)return;const t=resolveHaptic(u,"selection");t&&triggerHaptic(t),R?R.onChange(o):i?.(o)},disabled:j,accessibilityRole:"radio",accessibilityLabel:_,accessibilityHint:S.accessibilityHint??fieldTextAsString(l),accessibilityState:{checked:w,disabled:j},"aria-checked":w,"aria-disabled":j,testID:f,hitSlop:6,...S,style:({pressed:e})=>[C.row,hasChoiceDetail(l,c)?C.rowTop:null,{opacity:j?.55:e?.85:1},m,x],children:[_jsx(RadioDot,{selected:w,color:T,disabled:j&&!w,size:n,style:[!v||w||j?null:{borderColor:g.colors.field.borderError},b],dotStyle:h}),_jsx(ChoiceText,{label:a,description:l,error:c,disabled:j,labelLines:2,style:{marginLeft:D},labelStyle:y})]})});Radio.displayName="Radio";const buildStyles=e=>StyleSheet.create({row:{flexDirection:"row",alignItems:"center"},rowTop:{alignItems:"flex-start"}});export{Radio};export default Radio;
@@ -1 +1 @@
1
- "use strict";import{useMemo}from"react";import{View}from"react-native";import{useControllableState}from"../../hooks/index.js";import{RadioGroupContext}from"./Radio.js";import{jsx as _jsx}from"react/jsx-runtime";const RadioGroup=({value:e,defaultValue:o,onChange:a,children:i,disabled:t=!1,accessibilityLabel:r,style:s,testID:l})=>{const[d,u]=useControllableState({value:e,defaultValue:o??void 0,onChange:a}),n=useMemo(()=>({selectedValue:d,onChange:u,disabled:t}),[d,u,t]);return _jsx(RadioGroupContext.Provider,{value:n,children:_jsx(View,{accessibilityRole:"radiogroup",accessibilityLabel:r,accessibilityState:{disabled:t},"aria-disabled":t,testID:l,style:s,children:i})})};RadioGroup.displayName="RadioGroup";export{RadioGroup};export default RadioGroup;
1
+ "use strict";import{useMemo}from"react";import{View}from"react-native";import{useControllableState}from"../../hooks/index.js";import{hasFieldText}from"../FieldBase/index.js";import{ChoiceText}from"../FieldBase/ChoiceText.js";import{RadioGroupContext}from"./Radio.js";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";const RadioGroup=({value:e,defaultValue:o,onChange:i,children:a,disabled:t=!1,error:r,accessibilityLabel:s,style:l,testID:d})=>{const[u,c]=useControllableState({value:e,defaultValue:o??void 0,onChange:i}),n=!0===r||hasFieldText(r),x=useMemo(()=>({selectedValue:u,onChange:c,disabled:t,error:n}),[u,c,t,n]);return _jsxs(RadioGroupContext.Provider,{value:x,children:[_jsx(View,{accessibilityRole:"radiogroup",accessibilityLabel:s,accessibilityState:{disabled:t},"aria-disabled":t,testID:d,style:l,children:a}),_jsx(ChoiceText,{error:r})]})};RadioGroup.displayName="RadioGroup";export{RadioGroup};export default RadioGroup;