@webority/mobile-ui 0.18.1 → 0.19.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (215) hide show
  1. package/lib/commonjs/canvasKit/index.js +1 -1
  2. package/lib/commonjs/components/Accordion/Accordion.js +1 -1
  3. package/lib/commonjs/components/AppBar/AppBar.js +1 -1
  4. package/lib/commonjs/components/Avatar/Avatar.js +1 -1
  5. package/lib/commonjs/components/Badge/Badge.js +1 -1
  6. package/lib/commonjs/components/Banner/Banner.js +1 -1
  7. package/lib/commonjs/components/BarChart/BarChart.js +1 -1
  8. package/lib/commonjs/components/BottomNavigation/BottomNavigation.js +1 -1
  9. package/lib/commonjs/components/BottomSheet/BottomSheet.js +1 -1
  10. package/lib/commonjs/components/Box/Box.js +1 -1
  11. package/lib/commonjs/components/Button/Button.js +1 -1
  12. package/lib/commonjs/components/Calendar/calendarStyles.js +1 -1
  13. package/lib/commonjs/components/Card/Card.js +1 -1
  14. package/lib/commonjs/components/Carousel/Carousel.js +1 -1
  15. package/lib/commonjs/components/Checkbox/Checkbox.js +1 -1
  16. package/lib/commonjs/components/Chip/Chip.js +1 -1
  17. package/lib/commonjs/components/ChoiceGroup/ChoiceGroup.js +1 -1
  18. package/lib/commonjs/components/Composer/Composer.js +1 -1
  19. package/lib/commonjs/components/DatePicker/DatePicker.js +1 -1
  20. package/lib/commonjs/components/DateRangePicker/DateRangePicker.js +1 -1
  21. package/lib/commonjs/components/Descriptions/Descriptions.js +1 -1
  22. package/lib/commonjs/components/Dialog/Dialog.js +1 -1
  23. package/lib/commonjs/components/EmptyState/EmptyState.js +1 -1
  24. package/lib/commonjs/components/FieldBase/ChoiceText.js +1 -1
  25. package/lib/commonjs/components/FieldBase/FieldBase.js +1 -1
  26. package/lib/commonjs/components/FieldBase/index.js +1 -1
  27. package/lib/commonjs/components/FieldBase/useFloatingLabel.js +1 -1
  28. package/lib/commonjs/components/FilePicker/FilePicker.js +1 -1
  29. package/lib/commonjs/components/FloatingActionButton/FloatingActionButton.js +1 -1
  30. package/lib/commonjs/components/ImageGallery/ImageGallery.js +1 -1
  31. package/lib/commonjs/components/InlineSelect/InlineSelect.js +1 -1
  32. package/lib/commonjs/components/Input/Input.js +1 -1
  33. package/lib/commonjs/components/ListItem/ListItem.js +1 -1
  34. package/lib/commonjs/components/Markdown/Markdown.js +1 -1
  35. package/lib/commonjs/components/MessageBubble/MessageBubble.js +1 -1
  36. package/lib/commonjs/components/MessageList/MessageList.js +1 -1
  37. package/lib/commonjs/components/Modal/Modal.js +1 -1
  38. package/lib/commonjs/components/NumberInput/NumberInput.js +1 -1
  39. package/lib/commonjs/components/OTPInput/OTPInput.js +1 -1
  40. package/lib/commonjs/components/OptionSheet/OptionSheet.js +1 -1
  41. package/lib/commonjs/components/PaymentResult/PaymentResult.js +1 -1
  42. package/lib/commonjs/components/PhoneNumberInput/PhoneNumberInput.js +1 -1
  43. package/lib/commonjs/components/PickerTrigger/PickerTrigger.js +1 -1
  44. package/lib/commonjs/components/ProfileCompletion/ProfileCompletion.js +1 -1
  45. package/lib/commonjs/components/ProfilePicker/ProfilePicker.js +1 -1
  46. package/lib/commonjs/components/ProgressBar/ProgressBar.js +1 -1
  47. package/lib/commonjs/components/Radio/Radio.js +1 -1
  48. package/lib/commonjs/components/Radio/RadioDot.js +1 -1
  49. package/lib/commonjs/components/Rating/Rating.js +1 -1
  50. package/lib/commonjs/components/ScannerOverlay/ScannerOverlay.js +1 -1
  51. package/lib/commonjs/components/SearchBar/SearchBar.js +1 -1
  52. package/lib/commonjs/components/SegmentedControl/SegmentedControl.js +1 -1
  53. package/lib/commonjs/components/Select/Select.js +1 -1
  54. package/lib/commonjs/components/Skeleton/Skeleton.js +1 -1
  55. package/lib/commonjs/components/Skeleton/SkeletonContent.js +1 -1
  56. package/lib/commonjs/components/SlideToConfirm/SlideToConfirm.js +1 -1
  57. package/lib/commonjs/components/Slider/Slider.js +1 -1
  58. package/lib/commonjs/components/SliderField/SliderField.js +1 -1
  59. package/lib/commonjs/components/Spinner/Spinner.js +1 -1
  60. package/lib/commonjs/components/StatusBadge/StatusBadge.js +1 -1
  61. package/lib/commonjs/components/Stepper/Stepper.js +1 -1
  62. package/lib/commonjs/components/Swipeable/Swipeable.js +1 -1
  63. package/lib/commonjs/components/Switch/Switch.js +1 -1
  64. package/lib/commonjs/components/Tabs/Tabs.js +1 -1
  65. package/lib/commonjs/components/TagInput/TagInput.js +1 -1
  66. package/lib/commonjs/components/TimePicker/TimePicker.js +1 -1
  67. package/lib/commonjs/components/Timeline/Timeline.js +1 -1
  68. package/lib/commonjs/components/Toast/Toast.js +1 -1
  69. package/lib/commonjs/components/Tooltip/Tooltip.js +1 -1
  70. package/lib/commonjs/components/Tour/Tour.js +1 -1
  71. package/lib/commonjs/components/TypingIndicator/TypingIndicator.js +1 -1
  72. package/lib/commonjs/components/WheelPicker/Wheel.js +1 -1
  73. package/lib/commonjs/index.js +1 -1
  74. package/lib/commonjs/network/NetworkStatusBanner.js +1 -1
  75. package/lib/commonjs/theme/componentSizes.js +1 -0
  76. package/lib/commonjs/theme/componentTokens.js +1 -0
  77. package/lib/commonjs/theme/index.js +1 -1
  78. package/lib/commonjs/theme/merge.js +1 -1
  79. package/lib/commonjs/theme/retiredThemeKeys.js +1 -0
  80. package/lib/commonjs/theme/scale.js +1 -0
  81. package/lib/commonjs/theme/tokens.js +1 -1
  82. package/lib/commonjs/utils/index.js +1 -1
  83. package/lib/module/canvasKit/index.js +1 -1
  84. package/lib/module/components/Accordion/Accordion.js +1 -1
  85. package/lib/module/components/AppBar/AppBar.js +1 -1
  86. package/lib/module/components/Avatar/Avatar.js +1 -1
  87. package/lib/module/components/Badge/Badge.js +1 -1
  88. package/lib/module/components/Banner/Banner.js +1 -1
  89. package/lib/module/components/BarChart/BarChart.js +1 -1
  90. package/lib/module/components/BottomNavigation/BottomNavigation.js +1 -1
  91. package/lib/module/components/BottomSheet/BottomSheet.js +1 -1
  92. package/lib/module/components/Box/Box.js +1 -1
  93. package/lib/module/components/Button/Button.js +1 -1
  94. package/lib/module/components/Calendar/calendarStyles.js +1 -1
  95. package/lib/module/components/Card/Card.js +1 -1
  96. package/lib/module/components/Carousel/Carousel.js +1 -1
  97. package/lib/module/components/Checkbox/Checkbox.js +1 -1
  98. package/lib/module/components/Chip/Chip.js +1 -1
  99. package/lib/module/components/ChoiceGroup/ChoiceGroup.js +1 -1
  100. package/lib/module/components/Composer/Composer.js +1 -1
  101. package/lib/module/components/DatePicker/DatePicker.js +1 -1
  102. package/lib/module/components/DateRangePicker/DateRangePicker.js +1 -1
  103. package/lib/module/components/Descriptions/Descriptions.js +1 -1
  104. package/lib/module/components/Dialog/Dialog.js +1 -1
  105. package/lib/module/components/EmptyState/EmptyState.js +1 -1
  106. package/lib/module/components/FieldBase/ChoiceText.js +1 -1
  107. package/lib/module/components/FieldBase/FieldBase.js +1 -1
  108. package/lib/module/components/FieldBase/index.js +1 -1
  109. package/lib/module/components/FieldBase/useFloatingLabel.js +1 -1
  110. package/lib/module/components/FilePicker/FilePicker.js +1 -1
  111. package/lib/module/components/FloatingActionButton/FloatingActionButton.js +1 -1
  112. package/lib/module/components/ImageGallery/ImageGallery.js +1 -1
  113. package/lib/module/components/InlineSelect/InlineSelect.js +1 -1
  114. package/lib/module/components/Input/Input.js +1 -1
  115. package/lib/module/components/ListItem/ListItem.js +1 -1
  116. package/lib/module/components/Markdown/Markdown.js +1 -1
  117. package/lib/module/components/MessageBubble/MessageBubble.js +1 -1
  118. package/lib/module/components/MessageList/MessageList.js +1 -1
  119. package/lib/module/components/Modal/Modal.js +1 -1
  120. package/lib/module/components/NumberInput/NumberInput.js +1 -1
  121. package/lib/module/components/OTPInput/OTPInput.js +1 -1
  122. package/lib/module/components/OptionSheet/OptionSheet.js +1 -1
  123. package/lib/module/components/PaymentResult/PaymentResult.js +1 -1
  124. package/lib/module/components/PhoneNumberInput/PhoneNumberInput.js +1 -1
  125. package/lib/module/components/PickerTrigger/PickerTrigger.js +1 -1
  126. package/lib/module/components/ProfileCompletion/ProfileCompletion.js +1 -1
  127. package/lib/module/components/ProfilePicker/ProfilePicker.js +1 -1
  128. package/lib/module/components/ProgressBar/ProgressBar.js +1 -1
  129. package/lib/module/components/Radio/Radio.js +1 -1
  130. package/lib/module/components/Radio/RadioDot.js +1 -1
  131. package/lib/module/components/Rating/Rating.js +1 -1
  132. package/lib/module/components/ScannerOverlay/ScannerOverlay.js +1 -1
  133. package/lib/module/components/SearchBar/SearchBar.js +1 -1
  134. package/lib/module/components/SegmentedControl/SegmentedControl.js +1 -1
  135. package/lib/module/components/Select/Select.js +1 -1
  136. package/lib/module/components/Skeleton/Skeleton.js +1 -1
  137. package/lib/module/components/Skeleton/SkeletonContent.js +1 -1
  138. package/lib/module/components/SlideToConfirm/SlideToConfirm.js +1 -1
  139. package/lib/module/components/Slider/Slider.js +1 -1
  140. package/lib/module/components/SliderField/SliderField.js +1 -1
  141. package/lib/module/components/Spinner/Spinner.js +1 -1
  142. package/lib/module/components/StatusBadge/StatusBadge.js +1 -1
  143. package/lib/module/components/Stepper/Stepper.js +1 -1
  144. package/lib/module/components/Swipeable/Swipeable.js +1 -1
  145. package/lib/module/components/Switch/Switch.js +1 -1
  146. package/lib/module/components/Tabs/Tabs.js +1 -1
  147. package/lib/module/components/TagInput/TagInput.js +1 -1
  148. package/lib/module/components/TimePicker/TimePicker.js +1 -1
  149. package/lib/module/components/Timeline/Timeline.js +1 -1
  150. package/lib/module/components/Toast/Toast.js +1 -1
  151. package/lib/module/components/Tooltip/Tooltip.js +1 -1
  152. package/lib/module/components/Tour/Tour.js +1 -1
  153. package/lib/module/components/TypingIndicator/TypingIndicator.js +1 -1
  154. package/lib/module/components/WheelPicker/Wheel.js +1 -1
  155. package/lib/module/index.js +1 -1
  156. package/lib/module/network/NetworkStatusBanner.js +1 -1
  157. package/lib/module/theme/componentSizes.js +1 -0
  158. package/lib/module/theme/componentTokens.js +1 -0
  159. package/lib/module/theme/index.js +1 -1
  160. package/lib/module/theme/merge.js +1 -1
  161. package/lib/module/theme/retiredThemeKeys.js +1 -0
  162. package/lib/module/theme/scale.js +1 -0
  163. package/lib/module/theme/tokens.js +1 -1
  164. package/lib/module/utils/index.js +1 -1
  165. package/lib/typescript/commonjs/components/BottomNavigation/BottomNavigation.d.ts +6 -6
  166. package/lib/typescript/commonjs/components/Box/Box.d.ts +18 -20
  167. package/lib/typescript/commonjs/components/Calendar/calendarStyles.d.ts +1 -1
  168. package/lib/typescript/commonjs/components/Card/Card.d.ts +1 -1
  169. package/lib/typescript/commonjs/components/FieldBase/FieldBase.d.ts +2 -8
  170. package/lib/typescript/commonjs/components/FieldBase/index.d.ts +1 -1
  171. package/lib/typescript/commonjs/components/FieldBase/useFloatingLabel.d.ts +3 -2
  172. package/lib/typescript/commonjs/components/InlineSelect/InlineSelect.d.ts +1 -1
  173. package/lib/typescript/commonjs/components/Input/Input.d.ts +1 -1
  174. package/lib/typescript/commonjs/components/PhoneNumberInput/PhoneNumberInput.d.ts +1 -1
  175. package/lib/typescript/commonjs/components/SearchBar/SearchBar.d.ts +1 -1
  176. package/lib/typescript/commonjs/components/SegmentedControl/SegmentedControl.d.ts +1 -15
  177. package/lib/typescript/commonjs/components/Select/Select.d.ts +2 -2
  178. package/lib/typescript/commonjs/components/Skeleton/Skeleton.d.ts +1 -1
  179. package/lib/typescript/commonjs/components/Tabs/Tabs.d.ts +1 -1
  180. package/lib/typescript/commonjs/index.d.ts +4 -4
  181. package/lib/typescript/commonjs/theme/componentSizes.d.ts +27 -0
  182. package/lib/typescript/commonjs/theme/componentTokens.d.ts +762 -0
  183. package/lib/typescript/commonjs/theme/index.d.ts +4 -1
  184. package/lib/typescript/commonjs/theme/retiredThemeKeys.d.ts +22 -0
  185. package/lib/typescript/commonjs/theme/scale.d.ts +5 -0
  186. package/lib/typescript/commonjs/theme/types.d.ts +6 -790
  187. package/lib/typescript/commonjs/utils/index.d.ts +0 -2
  188. package/lib/typescript/module/components/BottomNavigation/BottomNavigation.d.ts +6 -6
  189. package/lib/typescript/module/components/Box/Box.d.ts +18 -20
  190. package/lib/typescript/module/components/Calendar/calendarStyles.d.ts +1 -1
  191. package/lib/typescript/module/components/Card/Card.d.ts +1 -1
  192. package/lib/typescript/module/components/FieldBase/FieldBase.d.ts +2 -8
  193. package/lib/typescript/module/components/FieldBase/index.d.ts +1 -1
  194. package/lib/typescript/module/components/FieldBase/useFloatingLabel.d.ts +3 -2
  195. package/lib/typescript/module/components/InlineSelect/InlineSelect.d.ts +1 -1
  196. package/lib/typescript/module/components/Input/Input.d.ts +1 -1
  197. package/lib/typescript/module/components/PhoneNumberInput/PhoneNumberInput.d.ts +1 -1
  198. package/lib/typescript/module/components/SearchBar/SearchBar.d.ts +1 -1
  199. package/lib/typescript/module/components/SegmentedControl/SegmentedControl.d.ts +1 -15
  200. package/lib/typescript/module/components/Select/Select.d.ts +2 -2
  201. package/lib/typescript/module/components/Skeleton/Skeleton.d.ts +1 -1
  202. package/lib/typescript/module/components/Tabs/Tabs.d.ts +1 -1
  203. package/lib/typescript/module/index.d.ts +4 -4
  204. package/lib/typescript/module/theme/componentSizes.d.ts +27 -0
  205. package/lib/typescript/module/theme/componentTokens.d.ts +762 -0
  206. package/lib/typescript/module/theme/index.d.ts +4 -1
  207. package/lib/typescript/module/theme/retiredThemeKeys.d.ts +22 -0
  208. package/lib/typescript/module/theme/scale.d.ts +5 -0
  209. package/lib/typescript/module/theme/types.d.ts +6 -790
  210. package/lib/typescript/module/utils/index.d.ts +0 -2
  211. package/package.json +14 -4
  212. package/lib/commonjs/utils/spacing.js +0 -1
  213. package/lib/module/utils/spacing.js +0 -1
  214. package/lib/typescript/commonjs/utils/spacing.d.ts +0 -61
  215. package/lib/typescript/module/utils/spacing.d.ts +0 -61
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Card=void 0;var _react=_interopRequireWildcard(require("react")),_reactNative=require("react-native"),_useControllableState=require("../../hooks/useControllableState.js"),_usePressAnimation=require("../../hooks/usePressAnimation.js"),_index=require("../../theme/index.js"),_corners=require("../../utils/corners.js"),_hapticUtils=require("../../utils/hapticUtils.js"),_mergeRefs=require("../../utils/mergeRefs.js"),_shadows=require("../../utils/shadows.js"),_squircle=require("../../utils/squircle.js"),_themeStyles=require("../../utils/themeStyles.js"),_AppIcon=require("../AppIcon/AppIcon.js"),_useContextMenu=require("../Menu/useContextMenu.js"),_index2=require("../Skeleton/index.js"),_SquircleFill=require("../SquircleFill/SquircleFill.js"),_index3=require("../Text/index.js"),_jsxRuntime=require("react/jsx-runtime");function _interopRequireWildcard(e,t){if("function"==typeof WeakMap)var i=new WeakMap,r=new WeakMap;return(_interopRequireWildcard=function(e,t){if(!t&&e&&e.__esModule)return e;var s,o,a={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return a;if(s=t?r:i){if(s.has(e))return s.get(e);s.set(e,a)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((o=(s=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(o.get||o.set)?s(a,t,o):a[t]=e[t]);return a})(e,t)}const paddingMap={none:"none",sm:"sm",md:"lg",lg:"xl",xl:"2xl"},Card=exports.Card=_react.default.memo((0,_react.forwardRef)((e,t)=>{const{children:i,variant:r="elevated",elevation:s="sm",radius:o="lg",padding:a="md",interactive:n=!1,bg:l,header:d,title:c,lead:u,action:m,headerActions:h,collapsible:x=!1,collapsed:_,defaultCollapsed:p=!1,onCollapsedChange:g,collapsedSummary:b,onRemove:y,removeLabel:j="Remove",separatorHeight:v=_reactNative.StyleSheet.hairlineWidth,footer:R,imageSource:f,imageHeight:S=160,imageAspectRatio:w,imageOverlay:C,loading:k=!1,gradient:A,onPress:q,haptic:N,contextMenu:T,accessibilityLabel:P,accessibilityHint:I,accessibilityRole:B,style:L,containerStyle:M,headerStyle:F,bodyStyle:V,footerStyle:H,borderRadius:W,testID:z,onLayout:O,...D}=e,U=(0,_index.useTheme)(),E=n||"function"==typeof q,G=(0,_useContextMenu.useContextMenu)(T,{haptic:N||!1,testID:z,accessibilityActions:D.accessibilityActions,onAccessibilityAction:D.onAccessibilityAction}),$=(0,_react.useMemo)(()=>(0,_mergeRefs.mergeRefs)(t,G.hostRef),[t,G.hostRef]),J=E||G.enabled,{style:K,pressIn:Q,pressOut:X}=(0,_usePressAnimation.usePressAnimation)({enabled:J}),Y=stylesFor(U),Z=Boolean(f),ee=U.spacing[paddingMap[a]],te=(0,_react.useMemo)(()=>A?"string"==typeof A?U.gradients[A]??null:A:null,[A,U.gradients]),ie="flat"===r,re=ie?0:W??U.radius[o],se=resolveBackground(U,l),[oe,ae]=(0,_useControllableState.useControllableState)({value:_,defaultValue:p,onChange:g}),ne=x&&oe,le=hasBuiltInHeaderContent(e),de=Boolean(d)||le,ce=(0,_SquircleFill.useSquircle)(!Z&&!te&&!ie,re,O),ue=_reactNative.StyleSheet.flatten([L,M])??{},me=ue.backgroundColor,he=ue.borderColor,xe=me??se??("filled"===r?U.colors.background.secondary:U.colors.background.elevated),pe="outlined"===r?U.colors.border.width:0,ge=he??U.colors.border.primary,be="elevated"===r&&(0,_shadows.supportsBoxShadow)()?(0,_shadows.toBoxShadow)(U.shadows[s]):void 0,ye=ce.active&&"elevated"===r&&!be,je=ce.active&&!ye?{backgroundColor:"transparent",borderColor:"transparent"}:null,ve=(0,_react.useMemo)(()=>{const e={borderRadius:ye&&ce.size?(0,_squircle.squircleHostRadius)(ce.size.width,ce.size.height,re):re,..._corners.smoothCorners,padding:Z?0:ee,overflow:ce.active?"visible":"hidden"};switch(r){case"flat":return{...e,backgroundColor:se??U.colors.background.elevated,borderBottomWidth:v,borderBottomColor:U.colors.border.primary};case"outlined":return{...e,backgroundColor:ce.active?"transparent":se??U.colors.background.elevated,borderWidth:U.colors.border.width,borderColor:ce.active?"transparent":U.colors.border.primary};case"filled":return{...e,backgroundColor:ce.active?"transparent":se??U.colors.background.secondary};default:return{...e,backgroundColor:se??U.colors.background.elevated,...be?{boxShadow:be}:U.shadows[s]}}},[U,r,s,re,Z,ee,ce.active,ce.size,be,ye,se,v]),Re=(0,_react.useMemo)(()=>({..."number"==typeof w?{width:"100%",aspectRatio:w}:{width:"100%",height:S},borderTopLeftRadius:re,borderTopRightRadius:re,borderBottomLeftRadius:0,borderBottomRightRadius:0,..._corners.smoothCorners}),[re,w,S]),fe="string"==typeof c?c:"",Se=(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[(0,_jsxRuntime.jsxs)(_reactNative.View,{style:Y.titleColumn,children:["string"==typeof c?(0,_jsxRuntime.jsx)(_index3.Text,{variant:"title",accessibilityRole:"header",children:c}):c,u?(0,_jsxRuntime.jsx)(_index3.Text,{variant:"bodySmall",style:Y.lead,children:u}):null,ne&&b?(0,_jsxRuntime.jsx)(_index3.Text,{variant:"caption",style:Y.lead,children:b}):null]}),isCardTextAction(m)?(0,_jsxRuntime.jsx)(CardTextActionButton,{action:m,haptic:N}):m?(0,_jsxRuntime.jsx)(_reactNative.View,{style:Y.actionNode,children:m}):null,h,x?(0,_jsxRuntime.jsx)(CardIconAction,{icon:ne?"chevron-down":"chevron-up",label:`${ne?"Show":"Hide"} ${fe}`.trim(),expanded:!ne,onPress:()=>ae(!ne),haptic:N}):null,y?(0,_jsxRuntime.jsx)(CardIconAction,{icon:"trash",label:j,onPress:y,color:U.colors.toneText.error,haptic:N}):null]}),we=(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[de?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[Y.header,!d&&Y.headerRow,ne&&Y.headerFolded,F],children:d??Se}):null,ne?null:(0,_jsxRuntime.jsx)(_reactNative.View,{style:[de||R?Y.body:null,V],children:i}),R&&!ne?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[Y.footer,H],children:R}):null]}),Ce=Z?(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[(0,_jsxRuntime.jsxs)(_reactNative.View,{style:Y.imageWrapper,children:[(0,_jsxRuntime.jsx)(_reactNative.Image,{source:f,resizeMode:"cover",style:Re,accessibilityLabel:"",accessible:!1}),C?(0,_jsxRuntime.jsx)(_reactNative.View,{pointerEvents:"box-none",style:Y.imageOverlay,children:C}):null]}),(0,_jsxRuntime.jsx)(_reactNative.View,{style:{padding:ee},children:we})]}):we,ke=te?(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[(0,_jsxRuntime.jsx)(_index.Gradient,{gradient:te,style:_reactNative.StyleSheet.absoluteFill}),Ce]}):ce.active&&ce.size?(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[(0,_jsxRuntime.jsx)(_SquircleFill.SquircleFill,{width:ce.size.width,height:ce.size.height,radius:re,fill:xe,stroke:pe?ge:void 0,strokeWidth:pe,outset:pe}),Ce]}):Ce;let Ae;if(J){const handlePress=e=>{E&&(N&&(0,_hapticUtils.triggerHaptic)(N),q?.(e))};Ae=(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:K,children:(0,_jsxRuntime.jsx)(_reactNative.Pressable,{ref:$,onPress:handlePress,onPressIn:Q,onPressOut:X,android_ripple:{color:U.colors.surface.pressed,borderless:!1},accessibilityRole:B??(E?"button":void 0),accessibilityLabel:P,accessibilityHint:I,testID:z,onLayout:ce.onLayout,style:[ve,L,M,je],...D,...G.hostProps,children:ke})})}else Ae=(0,_jsxRuntime.jsx)(_reactNative.View,{ref:t,accessibilityLabel:P,accessibilityHint:I,accessibilityRole:B,testID:z,onLayout:ce.onLayout,style:[ve,L,M,je],...D,children:ke});return k?(0,_jsxRuntime.jsx)(CardSkeleton,{...e}):G.enabled?(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[Ae,G.renderSurface((0,_jsxRuntime.jsx)(_reactNative.View,{style:[ve,L,M,je,Y.preview],children:ke}))]}):Ae}));Card.displayName="Card";const CardSkeleton=({variant:e="elevated",elevation:t,radius:i="lg",padding:r="md",bg:s,header:o,footer:a,imageSource:n,imageHeight:l=160,imageAspectRatio:d,borderRadius:c,containerStyle:u,headerStyle:m,bodyStyle:h,footerStyle:x,style:_,...p})=>{const g=(0,_index.useTheme)(),b=paddingMap[r],y=g.spacing[b],j="flat"===e?0:c??g.radius[i],v=void 0!==o||hasBuiltInHeaderContent(p),R=resolveBackground(g,s)??g.colors.background.elevated,f="outlined"===e?1:0,S="outlined"===e?g.colors.border.primary:void 0;return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[{backgroundColor:R,borderRadius:j,..._corners.smoothCorners,borderWidth:f,borderColor:S,overflow:"hidden"},u,_],accessibilityRole:"progressbar",accessibilityLabel:"Loading",accessibilityState:{busy:!0},"aria-busy":!0,children:[void 0!==n?(0,_jsxRuntime.jsx)(_index2.Skeleton,{width:"100%",height:d?void 0:l,style:d?{aspectRatio:d,width:"100%"}:void 0}):null,v?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[{padding:y,paddingBottom:g.spacing.sm},m],children:(0,_jsxRuntime.jsx)(_index2.Skeleton,{shape:"text",width:"60%",height:18})}):null,(0,_jsxRuntime.jsx)(_reactNative.View,{style:[{padding:y},h],children:(0,_jsxRuntime.jsx)(_index2.SkeletonText,{lines:3,fontSize:14,lastLineWidth:"55%"})}),void 0!==a?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[{padding:y,paddingTop:g.spacing.sm,flexDirection:"row"},x],children:(0,_jsxRuntime.jsx)(_index2.Skeleton,{width:88,height:32,shape:"rounded"})}):null]})};CardSkeleton.displayName="CardSkeleton",Card.Skeleton=CardSkeleton;const hasBuiltInHeaderContent=e=>Boolean(e.title||e.lead||e.action||e.headerActions||e.collapsible||e.onRemove),isCardTextAction=e=>"object"==typeof e&&null!==e&&!_react.default.isValidElement(e)&&"label"in e&&"onPress"in e,HIT_TARGET=44,CardIconAction=({icon:e,label:t,onPress:i,expanded:r,color:s,haptic:o})=>{const a=(0,_index.useTheme)();return(0,_jsxRuntime.jsx)(_reactNative.Pressable,{accessibilityRole:"button",accessibilityLabel:t,accessibilityState:void 0===r?void 0:{expanded:r},"aria-expanded":r,onPress:()=>{o&&(0,_hapticUtils.triggerHaptic)(o),i()},style:iconActionStyle,children:(0,_jsxRuntime.jsx)(_AppIcon.AppIcon,{name:e,size:20,color:s??a.colors.text.primary})})},CardTextActionButton=({action:e,haptic:t})=>{const i=(0,_index.useTheme)();return(0,_jsxRuntime.jsx)(_reactNative.Pressable,{accessibilityRole:"button",accessibilityLabel:e.accessibilityLabel??e.label,onPress:()=>{t&&(0,_hapticUtils.triggerHaptic)(t),e.onPress()},style:textActionStyle,children:(0,_jsxRuntime.jsx)(_index3.Text,{variant:"label",weight:"semibold",color:i.colors.primary,children:e.label})})},iconActionStyle={width:44,height:44,alignItems:"center",justifyContent:"center"},textActionStyle={minWidth:44,minHeight:44,alignItems:"center",justifyContent:"center"},resolveBackground=(e,t)=>{if(null==t)return;return e.colors.background[t]??t},buildStyles=e=>_reactNative.StyleSheet.create({header:{marginBottom:e.spacing.md},headerRow:{flexDirection:"row",alignItems:"center",gap:e.spacing.sm},headerFolded:{marginBottom:0},titleColumn:{flex:1},lead:{marginTop:e.spacing.xs},actionNode:{flexShrink:0},body:{flexShrink:1},footer:{marginTop:e.spacing.md},imageWrapper:{position:"relative"},imageOverlay:{..._reactNative.StyleSheet.absoluteFill},preview:{margin:0,marginTop:0,marginBottom:0,marginLeft:0,marginRight:0,marginStart:0,marginEnd:0,marginHorizontal:0,marginVertical:0,position:"relative",top:0,left:0,width:"100%",height:"100%"}}),stylesFor=(0,_themeStyles.themeStyles)(buildStyles);var _default=exports.default=Card;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Card=void 0;var _react=_interopRequireWildcard(require("react")),_reactNative=require("react-native"),_useControllableState=require("../../hooks/useControllableState.js"),_usePressAnimation=require("../../hooks/usePressAnimation.js"),_index=require("../../theme/index.js"),_corners=require("../../utils/corners.js"),_hapticUtils=require("../../utils/hapticUtils.js"),_mergeRefs=require("../../utils/mergeRefs.js"),_shadows=require("../../utils/shadows.js"),_squircle=require("../../utils/squircle.js"),_themeStyles=require("../../utils/themeStyles.js"),_AppIcon=require("../AppIcon/AppIcon.js"),_useContextMenu=require("../Menu/useContextMenu.js"),_index2=require("../Skeleton/index.js"),_SquircleFill=require("../SquircleFill/SquircleFill.js"),_index3=require("../Text/index.js"),_jsxRuntime=require("react/jsx-runtime");function _interopRequireWildcard(e,t){if("function"==typeof WeakMap)var i=new WeakMap,r=new WeakMap;return(_interopRequireWildcard=function(e,t){if(!t&&e&&e.__esModule)return e;var n,s,o={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return o;if(n=t?r:i){if(n.has(e))return n.get(e);n.set(e,o)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((s=(n=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(s.get||s.set)?n(o,t,s):o[t]=e[t]);return o})(e,t)}const paddingMap={none:"none",sm:"sm",md:"lg",lg:"xl",xl:"2xl"},Card=exports.Card=_react.default.memo((0,_react.forwardRef)((e,t)=>{const{children:i,variant:r="elevated",elevation:n="sm",radius:s="lg",padding:o="md",interactive:a=!1,bg:l,header:c,title:d,lead:u,action:m,headerActions:h,collapsible:x=!1,collapsed:p,defaultCollapsed:_=!1,onCollapsedChange:g,collapsedSummary:b,onRemove:y,removeLabel:j="Remove",separatorHeight:v=_reactNative.StyleSheet.hairlineWidth,footer:R,imageSource:f,imageHeight:S=160,imageAspectRatio:w,imageOverlay:C,loading:k=!1,gradient:A,onPress:q,haptic:N,contextMenu:T,accessibilityLabel:P,accessibilityHint:I,accessibilityRole:B,style:L,containerStyle:M,headerStyle:F,bodyStyle:V,footerStyle:H,borderRadius:W,testID:z,onLayout:O,...D}=e,U=(0,_index.useTheme)(),E=a||"function"==typeof q,G=(0,_useContextMenu.useContextMenu)(T,{haptic:N||!1,testID:z,accessibilityActions:D.accessibilityActions,onAccessibilityAction:D.onAccessibilityAction}),$=(0,_react.useMemo)(()=>(0,_mergeRefs.mergeRefs)(t,G.hostRef),[t,G.hostRef]),J=E||G.enabled,{style:K,pressIn:Q,pressOut:X}=(0,_usePressAnimation.usePressAnimation)({enabled:J}),Y=stylesFor(U),Z=Boolean(f),ee=U.spacing[paddingMap[o]],te=(0,_react.useMemo)(()=>A?"string"==typeof A?U.gradients[A]??null:A:null,[A,U.gradients]),ie="flat"===r,re=ie?U.radius.none:W??U.radius[s],ne=resolveBackground(U,l),[se,oe]=(0,_useControllableState.useControllableState)({value:p,defaultValue:_,onChange:g}),ae=x&&se,le=hasBuiltInHeaderContent(e),ce=Boolean(c)||le,de=(0,_SquircleFill.useSquircle)(!Z&&!te&&!ie,re,O),ue=_reactNative.StyleSheet.flatten([L,M])??{},me=ue.backgroundColor,he=ue.borderColor,xe=me??ne??("filled"===r?U.colors.background.secondary:U.colors.background.elevated),pe="outlined"===r?U.colors.border.width:0,ge=he??U.colors.border.primary,be="elevated"===r&&(0,_shadows.supportsBoxShadow)()?(0,_shadows.toBoxShadow)(U.shadows[n]):void 0,ye=de.active&&"elevated"===r&&!be,je=de.active&&!ye?{backgroundColor:"transparent",borderColor:"transparent"}:null,ve=(0,_react.useMemo)(()=>{const e={borderRadius:ye&&de.size?(0,_squircle.squircleHostRadius)(de.size.width,de.size.height,re):re,..._corners.smoothCorners,padding:Z?U.spacing.none:ee,overflow:de.active?"visible":"hidden"};switch(r){case"flat":return{...e,backgroundColor:ne??U.colors.background.elevated,borderBottomWidth:v,borderBottomColor:U.colors.border.primary};case"outlined":return{...e,backgroundColor:de.active?"transparent":ne??U.colors.background.elevated,borderWidth:U.colors.border.width,borderColor:de.active?"transparent":U.colors.border.primary};case"filled":return{...e,backgroundColor:de.active?"transparent":ne??U.colors.background.secondary};default:return{...e,backgroundColor:ne??U.colors.background.elevated,...be?{boxShadow:be}:U.shadows[n]}}},[U,r,n,re,Z,ee,de.active,de.size,be,ye,ne,v]),Re=(0,_react.useMemo)(()=>({..."number"==typeof w?{width:"100%",aspectRatio:w}:{width:"100%",height:S},borderTopLeftRadius:re,borderTopRightRadius:re,borderBottomLeftRadius:U.radius.none,borderBottomRightRadius:U.radius.none,..._corners.smoothCorners}),[U,re,w,S]),fe="string"==typeof d?d:"",Se=(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[(0,_jsxRuntime.jsxs)(_reactNative.View,{style:Y.titleColumn,children:["string"==typeof d?(0,_jsxRuntime.jsx)(_index3.Text,{variant:"title",accessibilityRole:"header",children:d}):d,u?(0,_jsxRuntime.jsx)(_index3.Text,{variant:"bodySmall",style:Y.lead,children:u}):null,ae&&b?(0,_jsxRuntime.jsx)(_index3.Text,{variant:"caption",style:Y.lead,children:b}):null]}),isCardTextAction(m)?(0,_jsxRuntime.jsx)(CardTextActionButton,{action:m,haptic:N}):m?(0,_jsxRuntime.jsx)(_reactNative.View,{style:Y.actionNode,children:m}):null,h,x?(0,_jsxRuntime.jsx)(CardIconAction,{icon:ae?"chevron-down":"chevron-up",label:`${ae?"Show":"Hide"} ${fe}`.trim(),expanded:!ae,onPress:()=>oe(!ae),haptic:N}):null,y?(0,_jsxRuntime.jsx)(CardIconAction,{icon:"trash",label:j,onPress:y,color:U.colors.toneText.error,haptic:N}):null]}),we=(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[ce?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[Y.header,!c&&Y.headerRow,ae&&Y.headerFolded,F],children:c??Se}):null,ae?null:(0,_jsxRuntime.jsx)(_reactNative.View,{style:[ce||R?Y.body:null,V],children:i}),R&&!ae?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[Y.footer,H],children:R}):null]}),Ce=Z?(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[(0,_jsxRuntime.jsxs)(_reactNative.View,{style:Y.imageWrapper,children:[(0,_jsxRuntime.jsx)(_reactNative.Image,{source:f,resizeMode:"cover",style:Re,accessibilityLabel:"",accessible:!1}),C?(0,_jsxRuntime.jsx)(_reactNative.View,{pointerEvents:"box-none",style:Y.imageOverlay,children:C}):null]}),(0,_jsxRuntime.jsx)(_reactNative.View,{style:{padding:ee},children:we})]}):we,ke=te?(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[(0,_jsxRuntime.jsx)(_index.Gradient,{gradient:te,style:_reactNative.StyleSheet.absoluteFill}),Ce]}):de.active&&de.size?(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[(0,_jsxRuntime.jsx)(_SquircleFill.SquircleFill,{width:de.size.width,height:de.size.height,radius:re,fill:xe,stroke:pe?ge:void 0,strokeWidth:pe,outset:pe}),Ce]}):Ce;let Ae;if(J){const handlePress=e=>{E&&(N&&(0,_hapticUtils.triggerHaptic)(N),q?.(e))};Ae=(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:K,children:(0,_jsxRuntime.jsx)(_reactNative.Pressable,{ref:$,onPress:handlePress,onPressIn:Q,onPressOut:X,android_ripple:{color:U.colors.surface.pressed,borderless:!1},accessibilityRole:B??(E?"button":void 0),accessibilityLabel:P,accessibilityHint:I,testID:z,onLayout:de.onLayout,style:[ve,L,M,je],...D,...G.hostProps,children:ke})})}else Ae=(0,_jsxRuntime.jsx)(_reactNative.View,{ref:t,accessibilityLabel:P,accessibilityHint:I,accessibilityRole:B,testID:z,onLayout:de.onLayout,style:[ve,L,M,je],...D,children:ke});return k?(0,_jsxRuntime.jsx)(CardSkeleton,{...e}):G.enabled?(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[Ae,G.renderSurface((0,_jsxRuntime.jsx)(_reactNative.View,{style:[ve,L,M,je,Y.preview],children:ke}))]}):Ae}));Card.displayName="Card";const CardSkeleton=({variant:e="elevated",elevation:t,radius:i="lg",padding:r="md",bg:n,header:s,footer:o,imageSource:a,imageHeight:l=160,imageAspectRatio:c,borderRadius:d,containerStyle:u,headerStyle:m,bodyStyle:h,footerStyle:x,style:p,..._})=>{const g=(0,_index.useTheme)(),b=paddingMap[r],y=g.spacing[b],j="flat"===e?g.radius.none:d??g.radius[i],v=void 0!==s||hasBuiltInHeaderContent(_),R=resolveBackground(g,n)??g.colors.background.elevated,f="outlined"===e?1:0,S="outlined"===e?g.colors.border.primary:void 0;return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[{backgroundColor:R,borderRadius:j,..._corners.smoothCorners,borderWidth:f,borderColor:S,overflow:"hidden"},u,p],accessibilityRole:"progressbar",accessibilityLabel:"Loading",accessibilityState:{busy:!0},"aria-busy":!0,children:[void 0!==a?(0,_jsxRuntime.jsx)(_index2.Skeleton,{width:"100%",height:c?void 0:l,style:c?{aspectRatio:c,width:"100%"}:void 0}):null,v?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[{padding:y,paddingBottom:g.spacing.sm},m],children:(0,_jsxRuntime.jsx)(_index2.Skeleton,{shape:"text",width:"60%",height:18})}):null,(0,_jsxRuntime.jsx)(_reactNative.View,{style:[{padding:y},h],children:(0,_jsxRuntime.jsx)(_index2.SkeletonText,{lines:3,fontSize:g.typography.fontSize.base,lastLineWidth:"55%"})}),void 0!==o?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[{padding:y,paddingTop:g.spacing.sm,flexDirection:"row"},x],children:(0,_jsxRuntime.jsx)(_index2.Skeleton,{width:88,height:32,shape:"rounded"})}):null]})};CardSkeleton.displayName="CardSkeleton",Card.Skeleton=CardSkeleton;const hasBuiltInHeaderContent=e=>Boolean(e.title||e.lead||e.action||e.headerActions||e.collapsible||e.onRemove),isCardTextAction=e=>"object"==typeof e&&null!==e&&!_react.default.isValidElement(e)&&"label"in e&&"onPress"in e,HIT_TARGET=44,CardIconAction=({icon:e,label:t,onPress:i,expanded:r,color:n,haptic:s})=>{const o=(0,_index.useTheme)();return(0,_jsxRuntime.jsx)(_reactNative.Pressable,{accessibilityRole:"button",accessibilityLabel:t,accessibilityState:void 0===r?void 0:{expanded:r},"aria-expanded":r,onPress:()=>{s&&(0,_hapticUtils.triggerHaptic)(s),i()},style:iconActionStyle,children:(0,_jsxRuntime.jsx)(_AppIcon.AppIcon,{name:e,size:20,color:n??o.colors.text.primary})})},CardTextActionButton=({action:e,haptic:t})=>{const i=(0,_index.useTheme)();return(0,_jsxRuntime.jsx)(_reactNative.Pressable,{accessibilityRole:"button",accessibilityLabel:e.accessibilityLabel??e.label,onPress:()=>{t&&(0,_hapticUtils.triggerHaptic)(t),e.onPress()},style:textActionStyle,children:(0,_jsxRuntime.jsx)(_index3.Text,{variant:"label",weight:"semibold",color:i.colors.primary,children:e.label})})},iconActionStyle={width:44,height:44,alignItems:"center",justifyContent:"center"},textActionStyle={minWidth:44,minHeight:44,alignItems:"center",justifyContent:"center"},resolveBackground=(e,t)=>{if(null==t)return;return e.colors.background[t]??t},buildStyles=e=>_reactNative.StyleSheet.create({header:{marginBottom:e.spacing.md},headerRow:{flexDirection:"row",alignItems:"center",gap:e.spacing.sm},headerFolded:{marginBottom:e.spacing.none},titleColumn:{flex:1},lead:{marginTop:e.spacing.xs},actionNode:{flexShrink:0},body:{flexShrink:1},footer:{marginTop:e.spacing.md},imageWrapper:{position:"relative"},imageOverlay:{..._reactNative.StyleSheet.absoluteFill},preview:{margin:e.spacing.none,marginTop:e.spacing.none,marginBottom:e.spacing.none,marginLeft:e.spacing.none,marginRight:e.spacing.none,marginStart:e.spacing.none,marginEnd:e.spacing.none,marginHorizontal:e.spacing.none,marginVertical:e.spacing.none,position:"relative",top:0,left:0,width:"100%",height:"100%"}}),stylesFor=(0,_themeStyles.themeStyles)(buildStyles);var _default=exports.default=Card;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Carousel=void 0;var _react=require("react"),_reactNative=require("react-native"),_index=require("../../theme/index.js"),_index2=require("../../utils/index.js"),_corners=require("../../utils/corners.js"),_index3=require("../Skeleton/index.js"),_jsxRuntime=require("react/jsx-runtime");const CarouselInner=(0,_react.forwardRef)((e,t)=>{const{data:n,renderItem:r,keyExtractor:a,index:i,defaultIndex:s=0,onIndexChange:l,onScrollOffsetChange:o,autoPlay:c=!1,autoPlayInterval:u=4e3,loop:d=!1,showPagination:m=!0,paginationStyle:h="dots",itemWidth:x="screen",spacing:g=0,containerStyle:_,accessibilityLabel:y,testID:p,showThumbnails:b=!1,haptic:f,renderThumbnail:S,loading:v=!1}=e,j=(0,_index.useTheme)(),R="number"==typeof i,w=d||c,[C,k]=(0,_react.useState)(()=>_reactNative.Dimensions.get("window").width),I="screen"===x?C:x,N=I+g,T=(0,_react.useRef)(null),A=(0,_react.useRef)((0,_index.createAnimatedValue)(0)).current,E=clamp(R?i:s,0,Math.max(0,n.length-1)),[V,z]=(0,_react.useState)(E),H=(0,_react.useRef)(null),M=(0,_react.useRef)(null),P=(0,_react.useRef)(!1),W=(0,_react.useRef)(V);W.current=V;const D=(0,_react.useCallback)(e=>{const t=clamp(e,0,Math.max(0,n.length-1));z(e=>e===t?e:(l?.(t),t))},[n.length,l]),$=(0,_react.useCallback)((e,t=!0)=>{if(0===n.length)return;const r=clamp(e,0,n.length-1);T.current?.scrollToOffset({offset:r*N,animated:t}),D(r)},[n.length,N,D]),L=(0,_react.useCallback)(()=>{if(0===n.length)return;const e=W.current+1;e>=n.length?w&&$(0,!1):$(e,!0)},[n.length,w,$]),q=(0,_react.useCallback)(()=>{if(0===n.length)return;const e=W.current-1;e<0?w&&$(n.length-1,!1):$(e,!0)},[n.length,w,$]);(0,_react.useImperativeHandle)(t,()=>({scrollTo:$,next:L,prev:q}),[$,L,q]),(0,_react.useEffect)(()=>{R&&i!==V&&$(i,!0)},[i]);const O=(0,_react.useCallback)(()=>{H.current&&(clearInterval(H.current),H.current=null)},[]),F=(0,_react.useCallback)(()=>{!c||n.length<=1||(O(),H.current=setInterval(()=>{if(P.current)return;const e=W.current+1;e>=n.length?$(0,!1):$(e,!0)},u))},[c,u,n.length,$,O]);(0,_react.useEffect)(()=>(F(),()=>{O(),M.current&&clearTimeout(M.current)}),[F,O]),(0,_react.useEffect)(()=>{const e=_reactNative.AppState.addEventListener("change",e=>{"active"!==e?(O(),M.current&&(clearTimeout(M.current),M.current=null)):F()});return()=>e.remove()},[F,O]);const X=m&&n.length>1&&"numbers"!==h||void 0!==o,B=(0,_react.useMemo)(()=>_reactNative.Animated.event([{nativeEvent:{contentOffset:{x:A}}}],{useNativeDriver:!1,listener:o?e=>o(e.nativeEvent.contentOffset.x):void 0}),[A,o]),G=(0,_react.useCallback)(e=>{if(N<=0)return;const t=e.nativeEvent.contentOffset.x,n=Math.round(t/N);D(n)},[N,D]),J=(0,_react.useCallback)(()=>{P.current=!0,O(),M.current&&(clearTimeout(M.current),M.current=null)},[O]),K=(0,_react.useCallback)(()=>{P.current=!1,c&&(M.current&&clearTimeout(M.current),M.current=setTimeout(()=>{F()},1e3))},[c,F]),Q=(0,_react.useCallback)(e=>{switch(e.nativeEvent.actionName){case"increment":L();break;case"decrement":q()}},[L,q]),U=(0,_react.useMemo)(()=>buildStyles(j),[j]),Y=(0,_react.useCallback)(({item:e,index:t})=>(0,_jsxRuntime.jsx)(_reactNative.View,{style:{width:I,marginRight:t===n.length-1?0:g},accessibilityElementsHidden:t!==V,importantForAccessibility:t===V?"yes":"no-hide-descendants",children:r(e,t)}),[r,I,g,n.length,V]),Z=(0,_react.useCallback)((e,t)=>String(t),[]),ee=(0,_react.useCallback)((e,t)=>({length:N,offset:N*t,index:t}),[N]);return v?(0,_jsxRuntime.jsx)(CarouselSkeleton,{...e,containerWidth:C}):(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[U.container,_],onLayout:e=>k(e.nativeEvent.layout.width),accessibilityRole:"adjustable",accessibilityLabel:y??"Carousel",accessibilityValue:{min:0,max:Math.max(0,n.length-1),now:V,text:`Slide ${V+1} of ${n.length}`},accessibilityActions:[{name:"increment"},{name:"decrement"}],onAccessibilityAction:Q,testID:p,children:[(0,_jsxRuntime.jsx)(_reactNative.FlatList,{ref:T,data:n,keyExtractor:a??Z,renderItem:Y,horizontal:!0,pagingEnabled:"screen"===x&&0===g,snapToInterval:N,snapToAlignment:"start",decelerationRate:"fast",showsHorizontalScrollIndicator:!1,onScroll:X?B:void 0,scrollEventThrottle:X?16:void 0,onMomentumScrollEnd:G,onScrollBeginDrag:J,onScrollEndDrag:K,getItemLayout:ee,initialScrollIndex:E,bounces:!1}),m&&n.length>1?(0,_jsxRuntime.jsx)(Pagination,{count:n.length,currentIndex:V,scrollX:A,slideStride:N,variant:h,theme:j}):null,b&&n.length>0?(0,_jsxRuntime.jsx)(ThumbnailStrip,{data:n,currentIndex:V,renderThumbnail:S,onSelect:e=>{const t=(0,_index2.resolveHaptic)(f,"selection");t&&(0,_index2.triggerHaptic)(t),$(e,!0)},theme:j}):null]})});CarouselInner.displayName="Carousel";const CarouselSkeleton=({itemWidth:e="screen",showPagination:t=!0,paginationStyle:n="dots",containerStyle:r,containerWidth:a})=>{const i="screen"===e?a||320:e;return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[carouselSkeletonStyles.container,r],children:[(0,_jsxRuntime.jsx)(_index3.Skeleton,{width:i,height:160,radius:"md"}),t?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[carouselSkeletonStyles.paginationRow,{marginTop:12}],children:Array.from({length:3}).map((e,t)=>"numbers"===n?(0,_jsxRuntime.jsx)(_index3.Skeleton,{width:24,height:16,radius:"sm",style:{marginHorizontal:4}},`sk-pg-${t}`):"bars"===n?(0,_jsxRuntime.jsx)(_index3.Skeleton,{width:20,height:4,radius:2,style:{marginHorizontal:3}},`sk-pg-${t}`):(0,_jsxRuntime.jsx)(_index3.Skeleton,{shape:"circle",width:8,height:8,style:{marginHorizontal:4}},`sk-pg-${t}`))}):null]})};CarouselSkeleton.displayName="CarouselSkeleton";const carouselSkeletonStyles=_reactNative.StyleSheet.create({container:{alignItems:"center"},paginationRow:{flexDirection:"row",justifyContent:"center"}}),Carousel=exports.Carousel=CarouselInner;Carousel.Skeleton=CarouselSkeleton;const Pagination=({count:e,currentIndex:t,scrollX:n,slideStride:r,variant:a,theme:i})=>{if("numbers"===a)return(0,_jsxRuntime.jsx)(_reactNative.View,{style:paginationStyles.numbersWrap,children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[paginationStyles.numbersText,{color:i.colors.text.secondary,fontSize:i.typography.fontSize.sm,fontWeight:i.typography.fontWeight.medium}],accessibilityLabel:`Slide ${t+1} of ${e}`,children:`${t+1} / ${e}`})});const s=Array.from({length:e},(e,t)=>t),l="bars"===a,o=l?24:6,c=l?36:16,u=l?3:6;return(0,_jsxRuntime.jsx)(_reactNative.View,{style:paginationStyles.dotRow,accessibilityElementsHidden:!0,importantForAccessibility:"no-hide-descendants",children:s.map(e=>{const a=[(e-1)*r,e*r,(e+1)*r],s=n.interpolate({inputRange:a,outputRange:[o,c,o],extrapolate:"clamp"}),l=n.interpolate({inputRange:a,outputRange:[.5,1,.5],extrapolate:"clamp"});return(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:[{width:s,height:u,marginHorizontal:4,borderRadius:u/2,..._corners.smoothCorners,backgroundColor:e===t?i.colors.primary:i.colors.border.primary,opacity:l}]},e)})})},ThumbnailStrip=({data:e,currentIndex:t,renderThumbnail:n,onSelect:r,theme:a})=>(0,_jsxRuntime.jsx)(_reactNative.ScrollView,{horizontal:!0,showsHorizontalScrollIndicator:!1,contentContainerStyle:thumbStyles.row,accessibilityRole:"tablist",children:e.map((e,i)=>(0,_jsxRuntime.jsx)(ThumbnailItem,{item:e,index:i,isActive:i===t,renderThumbnail:n,onPress:()=>r(i),theme:a},i))}),ThumbnailItem=({item:e,index:t,isActive:n,renderThumbnail:r,onPress:a,theme:i})=>{const s=(0,_react.useRef)((0,_index.createAnimatedValue)(n?1.1:1)).current;(0,_react.useEffect)(()=>{const e=_reactNative.Animated.spring(s,{toValue:n?1.1:1,useNativeDriver:!0,friction:6,tension:80});return e.start(),()=>e.stop()},[n,s]);const l=(0,_react.useMemo)(()=>r?r(e,t):e&&"object"==typeof e&&"uri"in e&&"string"==typeof e.uri?(0,_jsxRuntime.jsx)(_reactNative.Image,{source:{uri:e.uri},style:thumbStyles.image,resizeMode:"cover"}):(0,_jsxRuntime.jsx)(_reactNative.View,{style:[thumbStyles.placeholder,{backgroundColor:i.colors.background.secondary}],children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:{color:i.colors.text.secondary,fontSize:i.typography.fontSize.xs,fontWeight:i.typography.fontWeight.semibold},children:t+1})}),[e,t,r,i]);return(0,_jsxRuntime.jsx)(_reactNative.Pressable,{onPress:a,accessibilityRole:"tab",accessibilityState:{selected:n},"aria-selected":n,accessibilityLabel:`Go to slide ${t+1}`,children:(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:[thumbStyles.thumb,{borderColor:n?i.colors.primary:"transparent",transform:[{scale:s}]}],children:l})})},thumbStyles=_reactNative.StyleSheet.create({row:{flexDirection:"row",alignItems:"center",paddingHorizontal:8,paddingVertical:8},thumb:{width:40,height:40,marginHorizontal:4,borderRadius:6,..._corners.smoothCorners,borderWidth:2,overflow:"hidden"},image:{width:"100%",height:"100%"},placeholder:{flex:1,alignItems:"center",justifyContent:"center"}}),clamp=(e,t,n)=>Math.min(Math.max(e,t),n),buildStyles=e=>_reactNative.StyleSheet.create({container:{width:"100%"}}),paginationStyles=_reactNative.StyleSheet.create({dotRow:{flexDirection:"row",alignItems:"center",justifyContent:"center",paddingVertical:12},numbersWrap:{alignItems:"center",justifyContent:"center",paddingVertical:12},numbersText:{textAlign:"center"}});var _default=exports.default=Carousel;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Carousel=void 0;var _react=require("react"),_reactNative=require("react-native"),_index=require("../../theme/index.js"),_index2=require("../../utils/index.js"),_corners=require("../../utils/corners.js"),_index3=require("../Skeleton/index.js"),_jsxRuntime=require("react/jsx-runtime");const CarouselInner=(0,_react.forwardRef)((e,t)=>{const{data:n,renderItem:r,keyExtractor:a,index:i,defaultIndex:s=0,onIndexChange:l,onScrollOffsetChange:c,autoPlay:o=!1,autoPlayInterval:u=4e3,loop:d=!1,showPagination:m=!0,paginationStyle:h="dots",itemWidth:x="screen",spacing:g=0,containerStyle:_,accessibilityLabel:p,testID:y,showThumbnails:b=!1,haptic:f,renderThumbnail:v,loading:S=!1}=e,j=(0,_index.useTheme)(),R="number"==typeof i,w=d||o,[C,k]=(0,_react.useState)(()=>_reactNative.Dimensions.get("window").width),I="screen"===x?C:x,N=I+g,T=(0,_react.useRef)(null),A=(0,_react.useRef)((0,_index.createAnimatedValue)(0)).current,E=clamp(R?i:s,0,Math.max(0,n.length-1)),[V,z]=(0,_react.useState)(E),M=(0,_react.useRef)(null),H=(0,_react.useRef)(null),P=(0,_react.useRef)(!1),W=(0,_react.useRef)(V);W.current=V;const D=(0,_react.useCallback)(e=>{const t=clamp(e,0,Math.max(0,n.length-1));z(e=>e===t?e:(l?.(t),t))},[n.length,l]),$=(0,_react.useCallback)((e,t=!0)=>{if(0===n.length)return;const r=clamp(e,0,n.length-1);T.current?.scrollToOffset({offset:r*N,animated:t}),D(r)},[n.length,N,D]),L=(0,_react.useCallback)(()=>{if(0===n.length)return;const e=W.current+1;e>=n.length?w&&$(0,!1):$(e,!0)},[n.length,w,$]),q=(0,_react.useCallback)(()=>{if(0===n.length)return;const e=W.current-1;e<0?w&&$(n.length-1,!1):$(e,!0)},[n.length,w,$]);(0,_react.useImperativeHandle)(t,()=>({scrollTo:$,next:L,prev:q}),[$,L,q]),(0,_react.useEffect)(()=>{R&&i!==V&&$(i,!0)},[i]);const O=(0,_react.useCallback)(()=>{M.current&&(clearInterval(M.current),M.current=null)},[]),F=(0,_react.useCallback)(()=>{!o||n.length<=1||(O(),M.current=setInterval(()=>{if(P.current)return;const e=W.current+1;e>=n.length?$(0,!1):$(e,!0)},u))},[o,u,n.length,$,O]);(0,_react.useEffect)(()=>(F(),()=>{O(),H.current&&clearTimeout(H.current)}),[F,O]),(0,_react.useEffect)(()=>{const e=_reactNative.AppState.addEventListener("change",e=>{"active"!==e?(O(),H.current&&(clearTimeout(H.current),H.current=null)):F()});return()=>e.remove()},[F,O]);const X=m&&n.length>1&&"numbers"!==h||void 0!==c,B=(0,_react.useMemo)(()=>_reactNative.Animated.event([{nativeEvent:{contentOffset:{x:A}}}],{useNativeDriver:!1,listener:c?e=>c(e.nativeEvent.contentOffset.x):void 0}),[A,c]),G=(0,_react.useCallback)(e=>{if(N<=0)return;const t=e.nativeEvent.contentOffset.x,n=Math.round(t/N);D(n)},[N,D]),J=(0,_react.useCallback)(()=>{P.current=!0,O(),H.current&&(clearTimeout(H.current),H.current=null)},[O]),K=(0,_react.useCallback)(()=>{P.current=!1,o&&(H.current&&clearTimeout(H.current),H.current=setTimeout(()=>{F()},1e3))},[o,F]),Q=(0,_react.useCallback)(e=>{switch(e.nativeEvent.actionName){case"increment":L();break;case"decrement":q()}},[L,q]),U=(0,_react.useMemo)(()=>buildStyles(j),[j]),Y=(0,_react.useCallback)(({item:e,index:t})=>(0,_jsxRuntime.jsx)(_reactNative.View,{style:{width:I,marginRight:t===n.length-1?0:g},accessibilityElementsHidden:t!==V,importantForAccessibility:t===V?"yes":"no-hide-descendants",children:r(e,t)}),[r,I,g,n.length,V]),Z=(0,_react.useCallback)((e,t)=>String(t),[]),ee=(0,_react.useCallback)((e,t)=>({length:N,offset:N*t,index:t}),[N]);return S?(0,_jsxRuntime.jsx)(CarouselSkeleton,{...e,containerWidth:C}):(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[U.container,_],onLayout:e=>k(e.nativeEvent.layout.width),accessibilityRole:"adjustable",accessibilityLabel:p??"Carousel",accessibilityValue:{min:0,max:Math.max(0,n.length-1),now:V,text:`Slide ${V+1} of ${n.length}`},accessibilityActions:[{name:"increment"},{name:"decrement"}],onAccessibilityAction:Q,testID:y,children:[(0,_jsxRuntime.jsx)(_reactNative.FlatList,{ref:T,data:n,keyExtractor:a??Z,renderItem:Y,horizontal:!0,pagingEnabled:"screen"===x&&0===g,snapToInterval:N,snapToAlignment:"start",decelerationRate:"fast",showsHorizontalScrollIndicator:!1,onScroll:X?B:void 0,scrollEventThrottle:X?16:void 0,onMomentumScrollEnd:G,onScrollBeginDrag:J,onScrollEndDrag:K,getItemLayout:ee,initialScrollIndex:E,bounces:!1}),m&&n.length>1?(0,_jsxRuntime.jsx)(Pagination,{count:n.length,currentIndex:V,scrollX:A,slideStride:N,variant:h,theme:j}):null,b&&n.length>0?(0,_jsxRuntime.jsx)(ThumbnailStrip,{data:n,currentIndex:V,renderThumbnail:v,onSelect:e=>{const t=(0,_index2.resolveHaptic)(f,"selection");t&&(0,_index2.triggerHaptic)(t),$(e,!0)},theme:j}):null]})});CarouselInner.displayName="Carousel";const CarouselSkeleton=({itemWidth:e="screen",showPagination:t=!0,paginationStyle:n="dots",containerStyle:r,containerWidth:a})=>{const i=(0,_index.useTheme)(),s="screen"===e?a||320:e;return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[carouselSkeletonStyles.container,r],children:[(0,_jsxRuntime.jsx)(_index3.Skeleton,{width:s,height:160,radius:"md"}),t?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[carouselSkeletonStyles.paginationRow,{marginTop:i.spacing.md}],children:Array.from({length:3}).map((e,t)=>"numbers"===n?(0,_jsxRuntime.jsx)(_index3.Skeleton,{width:24,height:16,radius:"sm",style:{marginHorizontal:i.spacing.xs}},`sk-pg-${t}`):"bars"===n?(0,_jsxRuntime.jsx)(_index3.Skeleton,{width:20,height:4,radius:"pill",style:{marginHorizontal:i.spacing.xxs}},`sk-pg-${t}`):(0,_jsxRuntime.jsx)(_index3.Skeleton,{shape:"circle",width:8,height:8,style:{marginHorizontal:i.spacing.xs}},`sk-pg-${t}`))}):null]})};CarouselSkeleton.displayName="CarouselSkeleton";const carouselSkeletonStyles=_reactNative.StyleSheet.create({container:{alignItems:"center"},paginationRow:{flexDirection:"row",justifyContent:"center"}}),Carousel=exports.Carousel=CarouselInner;Carousel.Skeleton=CarouselSkeleton;const Pagination=({count:e,currentIndex:t,scrollX:n,slideStride:r,variant:a,theme:i})=>{const s=(0,_react.useMemo)(()=>buildPaginationStyles(i),[i]);if("numbers"===a)return(0,_jsxRuntime.jsx)(_reactNative.View,{style:s.numbersWrap,children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[s.numbersText,{color:i.colors.text.secondary,fontSize:i.typography.fontSize.sm,fontWeight:i.typography.fontWeight.medium}],accessibilityLabel:`Slide ${t+1} of ${e}`,children:`${t+1} / ${e}`})});const l=Array.from({length:e},(e,t)=>t),c="bars"===a,o=c?24:6,u=c?36:16,d=c?3:6;return(0,_jsxRuntime.jsx)(_reactNative.View,{style:s.dotRow,accessibilityElementsHidden:!0,importantForAccessibility:"no-hide-descendants",children:l.map(e=>{const a=[(e-1)*r,e*r,(e+1)*r],s=n.interpolate({inputRange:a,outputRange:[o,u,o],extrapolate:"clamp"}),l=n.interpolate({inputRange:a,outputRange:[.5,1,.5],extrapolate:"clamp"});return(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:[{width:s,height:d,marginHorizontal:i.spacing.xs,borderRadius:i.radius.pill,..._corners.smoothCorners,backgroundColor:e===t?i.colors.primary:i.colors.border.primary,opacity:l}]},e)})})},ThumbnailStrip=({data:e,currentIndex:t,renderThumbnail:n,onSelect:r,theme:a})=>{const i=(0,_react.useMemo)(()=>buildThumbStyles(a),[a]);return(0,_jsxRuntime.jsx)(_reactNative.ScrollView,{horizontal:!0,showsHorizontalScrollIndicator:!1,contentContainerStyle:i.row,accessibilityRole:"tablist",children:e.map((e,s)=>(0,_jsxRuntime.jsx)(ThumbnailItem,{item:e,index:s,isActive:s===t,renderThumbnail:n,onPress:()=>r(s),theme:a,styles:i},s))})},ThumbnailItem=({item:e,index:t,isActive:n,renderThumbnail:r,onPress:a,theme:i,styles:s})=>{const l=(0,_react.useRef)((0,_index.createAnimatedValue)(n?1.1:1)).current;(0,_react.useEffect)(()=>{const e=_reactNative.Animated.spring(l,{toValue:n?1.1:1,useNativeDriver:!0,friction:6,tension:80});return e.start(),()=>e.stop()},[n,l]);const c=(0,_react.useMemo)(()=>r?r(e,t):e&&"object"==typeof e&&"uri"in e&&"string"==typeof e.uri?(0,_jsxRuntime.jsx)(_reactNative.Image,{source:{uri:e.uri},style:s.image,resizeMode:"cover"}):(0,_jsxRuntime.jsx)(_reactNative.View,{style:[s.placeholder,{backgroundColor:i.colors.background.secondary}],children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:{color:i.colors.text.secondary,fontSize:i.typography.fontSize.xs,fontWeight:i.typography.fontWeight.semibold},children:t+1})}),[e,t,r,i,s]);return(0,_jsxRuntime.jsx)(_reactNative.Pressable,{onPress:a,accessibilityRole:"tab",accessibilityState:{selected:n},"aria-selected":n,accessibilityLabel:`Go to slide ${t+1}`,children:(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:[s.thumb,{borderColor:n?i.colors.primary:"transparent",transform:[{scale:l}]}],children:c})})},buildThumbStyles=e=>_reactNative.StyleSheet.create({row:{flexDirection:"row",alignItems:"center",paddingHorizontal:e.spacing.sm,paddingVertical:e.spacing.sm},thumb:{width:40,height:40,marginHorizontal:e.spacing.xs,borderRadius:e.radius.sm,..._corners.smoothCorners,borderWidth:2,overflow:"hidden"},image:{width:"100%",height:"100%"},placeholder:{flex:1,alignItems:"center",justifyContent:"center"}}),clamp=(e,t,n)=>Math.min(Math.max(e,t),n),buildStyles=e=>_reactNative.StyleSheet.create({container:{width:"100%"}}),buildPaginationStyles=e=>_reactNative.StyleSheet.create({dotRow:{flexDirection:"row",alignItems:"center",justifyContent:"center",paddingVertical:e.spacing.md},numbersWrap:{alignItems:"center",justifyContent:"center",paddingVertical:e.spacing.md},numbersText:{textAlign:"center"}});var _default=exports.default=Carousel;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Checkbox=void 0;var _react=require("react"),_reactNative=require("react-native"),_reactNativeSvg=_interopRequireWildcard(require("react-native-svg")),_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");function _interopRequireWildcard(e,r){if("function"==typeof WeakMap)var t=new WeakMap,i=new WeakMap;return(_interopRequireWildcard=function(e,r){if(!r&&e&&e.__esModule)return e;var s,o,a={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return a;if(s=r?i:t){if(s.has(e))return s.get(e);s.set(e,a)}for(const r in e)"default"!==r&&{}.hasOwnProperty.call(e,r)&&((o=(s=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,r))&&(o.get||o.set)?s(a,r,o):a[r]=e[r]);return a})(e,r)}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=exports.Checkbox=(0,_react.forwardRef)((e,r)=>{const{checked:t,defaultChecked:i,onChange:s,indeterminate:o=!1,disabled:a=!1,label:n,description:l,error:c,help:d,labelLines:u,size:h="md",tone:p="primary",accessibilityLabel:x,haptic:_,style:b,boxStyle:f,indeterminateBarStyle:m,containerStyle:y,labelStyle:g,testID:j,...v}=e,[w,C]=(0,_index.useControllableState)({value:t,defaultValue:i??!1,onChange:s}),k=(0,_index2.useTheme)(),S=(0,_react.useMemo)(()=>buildStyles(k),[k]),R=k.components.checkbox?.[h]?.boxSize??sizeMap[h],T=k.colors.border.width,N=k.components.checkbox?.labelGap??10,q=toneColor(k,p),M=w||o,F=(0,_react.useRef)((0,_index2.createAnimatedValue)(M?1:0)).current;(0,_react.useEffect)(()=>{const e=_reactNative.Animated.spring(F,{toValue:M?1:0,damping:k.motion.spring.snappy.damping,stiffness:k.motion.spring.snappy.stiffness,mass:k.motion.spring.snappy.mass,useNativeDriver:!0});return e.start(),()=>e.stop()},[M,F,k.motion.spring.snappy]);const B=F.interpolate({inputRange:[0,1],outputRange:[0,1]}),W=x??(0,_FieldBase.fieldTextAsString)(n),L=!0===c||(0,_FieldBase.hasFieldText)(c),P=M?q:a?k.colors.border.primary:L?k.colors.field.borderError:k.colors.border.primary,D=M?q:a?k.colors.surface.disabled:"transparent",O=a&&!M?k.colors.text.disabled:toneOnColor(k,p),V=Math.round(.72*R),I=Math.round(.55*R),A=Math.max(2,Math.round(.12*R)),z=(0,_jsxRuntime.jsxs)(_reactNative.Pressable,{ref:r,onPress:e=>{if(a)return;const r=(0,_hapticUtils.resolveHaptic)(_,"selection");r&&(0,_hapticUtils.triggerHaptic)(r),C(!w),v.onPressOut?.(e)},disabled:a,accessibilityRole:"checkbox",accessibilityLabel:W,accessibilityHint:v.accessibilityHint??(0,_FieldBase.fieldTextAsString)(l),accessibilityState:{checked:o?"mixed":w,disabled:a},"aria-checked":o?"mixed":w,"aria-disabled":a,testID:j,hitSlop:6,...v,style:({pressed:e})=>[S.row,(0,_ChoiceText.hasChoiceDetail)(l,c)?S.rowTop:null,(0,_FieldBase.hasFieldText)(d)?S.rowShrink:null,{opacity:a?.55:e?.85:1},y,b],children:[(0,_jsxRuntime.jsx)(_reactNative.View,{style:[S.box,{width:R,height:R,borderWidth:T,borderRadius:k.radius.xs,..._corners.smoothCorners,borderColor:P,backgroundColor:D},f],children:(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:[S.glyphWrap,{opacity:F,transform:[{scale:B}]}],children:o?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[{width:I,height:A,borderRadius:A/2,..._corners.smoothCorners,backgroundColor:O},m]}):(0,_jsxRuntime.jsx)(_reactNativeSvg.default,{width:V,height:V,viewBox:"0 0 24 24",children:(0,_jsxRuntime.jsx)(_reactNativeSvg.Path,{d:"M5 12.5l4.5 4.5L19 7.5",stroke:O,strokeWidth:3,strokeLinecap:"round",strokeLinejoin:"round",fill:"none"})})})}),(0,_jsxRuntime.jsx)(_ChoiceText.ChoiceText,{label:n,description:l,error:c,disabled:a,labelLines:u||void 0,descriptionLines:u||void 0,style:{marginLeft:N},labelStyle:g})]});return(0,_FieldBase.hasFieldText)(d)?(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[S.helpRow,(0,_ChoiceText.hasChoiceDetail)(l,c)?S.rowTop:null],children:[z,(0,_jsxRuntime.jsx)(_reactNative.View,{style:[S.help,{marginLeft:k.spacing.xs}],children:d})]}):z});Checkbox.displayName="Checkbox";const buildStyles=e=>_reactNative.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"}});var _default=exports.default=Checkbox;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Checkbox=void 0;var _react=require("react"),_reactNative=require("react-native"),_reactNativeSvg=_interopRequireWildcard(require("react-native-svg")),_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");function _interopRequireWildcard(e,r){if("function"==typeof WeakMap)var t=new WeakMap,i=new WeakMap;return(_interopRequireWildcard=function(e,r){if(!r&&e&&e.__esModule)return e;var s,o,a={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return a;if(s=r?i:t){if(s.has(e))return s.get(e);s.set(e,a)}for(const r in e)"default"!==r&&{}.hasOwnProperty.call(e,r)&&((o=(s=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,r))&&(o.get||o.set)?s(a,r,o):a[r]=e[r]);return a})(e,r)}const 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=exports.Checkbox=(0,_react.forwardRef)((e,r)=>{const{checked:t,defaultChecked:i,onChange:s,indeterminate:o=!1,disabled:a=!1,label:n,description:l,error:c,help:d,labelLines:u,size:h="md",tone:p="primary",accessibilityLabel:x,haptic:_,style:b,boxStyle:f,indeterminateBarStyle:m,containerStyle:y,labelStyle:g,testID:j,...v}=e,[w,C]=(0,_index.useControllableState)({value:t,defaultValue:i??!1,onChange:s}),k=(0,_index2.useTheme)(),S=(0,_react.useMemo)(()=>buildStyles(k),[k]),{boxSize:R}=(0,_react.useMemo)(()=>(0,_index2.resolveCheckboxSize)(k,h),[k,h]),T=k.colors.border.width,N=(0,_index2.spaceOf)(k,k.components.checkbox.labelGap,"components.checkbox.labelGap"),q=toneColor(k,p),F=w||o,M=(0,_react.useRef)((0,_index2.createAnimatedValue)(F?1:0)).current;(0,_react.useEffect)(()=>{const e=_reactNative.Animated.spring(M,{toValue:F?1:0,damping:k.motion.spring.snappy.damping,stiffness:k.motion.spring.snappy.stiffness,mass:k.motion.spring.snappy.mass,useNativeDriver:!0});return e.start(),()=>e.stop()},[F,M,k.motion.spring.snappy]);const B=M.interpolate({inputRange:[0,1],outputRange:[0,1]}),W=x??(0,_FieldBase.fieldTextAsString)(n),L=!0===c||(0,_FieldBase.hasFieldText)(c),O=F?q:a?k.colors.border.primary:L?k.colors.field.borderError:k.colors.border.primary,P=F?q:a?k.colors.surface.disabled:"transparent",D=a&&!F?k.colors.text.disabled:toneOnColor(k,p),V=Math.round(.72*R),I=Math.round(.55*R),A=Math.max(2,Math.round(.12*R)),H=(0,_jsxRuntime.jsxs)(_reactNative.Pressable,{ref:r,onPress:e=>{if(a)return;const r=(0,_hapticUtils.resolveHaptic)(_,"selection");r&&(0,_hapticUtils.triggerHaptic)(r),C(!w),v.onPressOut?.(e)},disabled:a,accessibilityRole:"checkbox",accessibilityLabel:W,accessibilityHint:v.accessibilityHint??(0,_FieldBase.fieldTextAsString)(l),accessibilityState:{checked:o?"mixed":w,disabled:a},"aria-checked":o?"mixed":w,"aria-disabled":a,testID:j,hitSlop:6,...v,style:({pressed:e})=>[S.row,(0,_ChoiceText.hasChoiceDetail)(l,c)?S.rowTop:null,(0,_FieldBase.hasFieldText)(d)?S.rowShrink:null,{opacity:a?.55:e?.85:1},y,b],children:[(0,_jsxRuntime.jsx)(_reactNative.View,{style:[S.box,{width:R,height:R,borderWidth:T,borderRadius:k.radius.sm,..._corners.smoothCorners,borderColor:O,backgroundColor:P},f],children:(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:[S.glyphWrap,{opacity:M,transform:[{scale:B}]}],children:o?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[{width:I,height:A,borderRadius:k.radius.pill,..._corners.smoothCorners,backgroundColor:D},m]}):(0,_jsxRuntime.jsx)(_reactNativeSvg.default,{width:V,height:V,viewBox:"0 0 24 24",children:(0,_jsxRuntime.jsx)(_reactNativeSvg.Path,{d:"M5 12.5l4.5 4.5L19 7.5",stroke:D,strokeWidth:3,strokeLinecap:"round",strokeLinejoin:"round",fill:"none"})})})}),(0,_jsxRuntime.jsx)(_ChoiceText.ChoiceText,{label:n,description:l,error:c,disabled:a,labelLines:u||void 0,descriptionLines:u||void 0,style:{marginLeft:N},labelStyle:g})]});return(0,_FieldBase.hasFieldText)(d)?(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[S.helpRow,(0,_ChoiceText.hasChoiceDetail)(l,c)?S.rowTop:null],children:[H,(0,_jsxRuntime.jsx)(_reactNative.View,{style:[S.help,{marginLeft:k.spacing.xs}],children:d})]}):H});Checkbox.displayName="Checkbox";const buildStyles=e=>_reactNative.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"}});var _default=exports.default=Checkbox;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Chip=void 0;var _react=require("react"),_reactNative=require("react-native"),_usePressAnimation=require("../../hooks/usePressAnimation.js"),_index=require("../../theme/index.js"),_color=require("../../utils/color.js"),_corners=require("../../utils/corners.js"),_hapticUtils=require("../../utils/hapticUtils.js"),_slotIcon=require("../AppIcon/slotIcon.js"),_index2=require("../Skeleton/index.js"),_jsxRuntime=require("react/jsx-runtime");const toneFor=(e,r)=>{switch(r){case"primary":return{base:e.colors.primaryMuted,on:e.colors.primary,ink:e.colors.toneText.primary,border:e.colors.primary,selectedBg:e.colors.primaryMuted,selectedOn:e.colors.primary,selectedInk:e.colors.toneText.primary,selectedBorder:e.colors.primary};case"success":return{base:e.colors.background.tertiary,on:e.colors.success,ink:e.colors.toneText.success,border:e.colors.success,selectedBg:e.colors.primaryMuted,selectedOn:e.colors.primary,selectedInk:e.colors.toneText.primary,selectedBorder:e.colors.primary};case"warning":return{base:e.colors.background.tertiary,on:e.colors.warning,ink:e.colors.toneText.warning,border:e.colors.warning,selectedBg:e.colors.primaryMuted,selectedOn:e.colors.primary,selectedInk:e.colors.toneText.primary,selectedBorder:e.colors.primary};case"error":return{base:e.colors.background.tertiary,on:e.colors.error,ink:e.colors.toneText.error,border:e.colors.error,selectedBg:e.colors.primaryMuted,selectedOn:e.colors.primary,selectedInk:e.colors.toneText.primary,selectedBorder:e.colors.primary};case"info":return{base:e.colors.background.tertiary,on:e.colors.info,ink:e.colors.toneText.info,border:e.colors.info,selectedBg:e.colors.primaryMuted,selectedOn:e.colors.primary,selectedInk:e.colors.toneText.primary,selectedBorder:e.colors.primary};default:return{base:e.colors.background.tertiary,on:e.colors.text.primary,ink:e.colors.text.primary,border:e.colors.border.primary,selectedBg:e.colors.primaryMuted,selectedOn:e.colors.primary,selectedInk:e.colors.toneText.primary,selectedBorder:e.colors.primary}}},SOFT_FILL_OPACITY=.14,SOFT_SELECTED_FILL_OPACITY=.24,sizeMap={sm:{paddingH:10,paddingV:4,fontSize:12,minHeight:26,closeSize:16,closeFont:12,gap:6,iconSize:14},md:{paddingH:12,paddingV:6,fontSize:13,minHeight:32,closeSize:18,closeFont:13,gap:8,iconSize:16}},hasChipCount=e=>null!=e&&""!==e,Chip=exports.Chip=(0,_react.forwardRef)((e,r)=>{const{label:t,count:o,selected:i=!1,selectionMode:s="single",onPress:l,onClose:n,leftIcon:a,iconVariant:c,variant:d="filled",tone:p="neutral",size:u="md",disabled:m=!1,loading:y=!1,accessibilityLabel:g,haptic:h,style:b,textStyle:x,containerStyle:f,countStyle:S,closeButtonStyle:_,closeIconStyle:z,testID:k}=e,j=(0,_index.useTheme)(),C=!!l&&!m,v="radio"===s,I=!!l&&(!m||v),M=hasChipCount(o),{style:H,pressIn:R,pressOut:T}=(0,_usePressAnimation.usePressAnimation)({enabled:C}),w=(0,_react.useMemo)(()=>toneFor(j,p),[j,p]),F=j.components.chip?.[u],O={paddingH:F?.paddingHorizontal??sizeMap[u].paddingH,paddingV:F?.paddingVertical??sizeMap[u].paddingV,fontSize:F?.fontSize??sizeMap[u].fontSize,minHeight:F?.minHeight??sizeMap[u].minHeight,closeSize:F?.closeSize??sizeMap[u].closeSize,closeFont:F?.closeFontSize??sizeMap[u].closeFont,gap:F?.gap??sizeMap[u].gap,iconSize:F?.iconSize??sizeMap[u].iconSize},B=Math.max(0,Math.ceil((44-O.minHeight)/2)),L=v?{top:B,bottom:B}:void 0,P="filled"===d,N="soft"===d,V=(()=>{if(N){const e=i?w.selectedOn:w.on,r=i?.24:.14;return(0,_color.tintOf)(e,r,i?w.selectedBg:w.base)}return i?P?w.selectedBg:"transparent":P?w.base:"transparent"})(),q=N?"transparent":i?w.selectedBorder:P?"transparent":w.border,A=m?j.colors.text.disabled:i?N?j.colors.text.primary:w.selectedInk:w.ink,D=P||N?0:j.colors.border.width,handlePress=()=>{if(!C)return;const e=(0,_hapticUtils.resolveHaptic)(h,"selection");e&&(0,_hapticUtils.triggerHaptic)(e),l?.()},U=g??(M?`${t}, ${o}`:t),E=(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.row,children:[a?(0,_jsxRuntime.jsx)(_reactNative.View,{style:{marginRight:O.gap},children:(0,_slotIcon.renderSlotIcon)(a,{color:A,size:O.iconSize,disabled:m},c)}):null,(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[styles.label,{color:A,fontSize:O.fontSize,...(0,_index.fontFor)(j,"medium")},x],numberOfLines:1,children:t??" "}),M?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[styles.count,{color:A,fontSize:Math.min(j.typography.fontSize.xs,O.fontSize),marginLeft:j.spacing.xs,...(0,_index.fontFor)(j,"normal")},S],numberOfLines:1,children:o}):null,n?(0,_jsxRuntime.jsx)(_reactNative.Pressable,{onPress:()=>{m||(!1!==h&&(0,_hapticUtils.triggerHaptic)("impactLight"),n?.())},disabled:m,accessibilityRole:"button",accessibilityLabel:`Remove ${t}`,accessibilityState:{disabled:m},"aria-disabled":m,hitSlop:6,style:({pressed:e})=>[styles.close,{width:O.closeSize,height:O.closeSize,borderRadius:O.closeSize/2,..._corners.smoothCorners,marginLeft:O.gap,backgroundColor:e?j.colors.surface.pressed:j.colors.surface.hovered},_],children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[{color:A,fontSize:O.closeFont,...(0,_index.fontFor)(j,"bold"),lineHeight:O.closeFont+2},z],maxFontSizeMultiplier:1,children:"×"})}):null]}),$={paddingHorizontal:O.paddingH,paddingVertical:O.paddingV,minHeight:O.minHeight,borderRadius:j.radius.full,..._corners.smoothCorners,overflow:"hidden",backgroundColor:V,borderWidth:D,borderColor:q,opacity:m?.55:1};let Y;return Y=I?(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:[H,{alignSelf:"flex-start",borderRadius:j.radius.full,..._corners.smoothCorners,overflow:"hidden"}],children:(0,_jsxRuntime.jsx)(_reactNative.Pressable,{ref:r,onPress:handlePress,onPressIn:R,onPressOut:T,disabled:!C,accessibilityRole:v?"radio":"multiple"===s?"checkbox":"button",accessibilityLabel:U,accessibilityState:v||"multiple"===s?{checked:i,disabled:m}:{selected:i,disabled:m},"aria-checked":v||"multiple"===s?i:void 0,"aria-selected":v||"multiple"===s?void 0:i,"aria-disabled":m,hitSlop:L,android_ripple:{color:j.colors.surface.pressed,borderless:!1},testID:k,style:({pressed:e})=>[styles.base,$,e&&"outlined"===d?{backgroundColor:j.colors.surface.pressed}:null,f,b],children:E})}):(0,_jsxRuntime.jsx)(_reactNative.View,{ref:r,style:[styles.base,$,f,b],accessible:!0,accessibilityRole:"text",accessibilityLabel:U,accessibilityState:{selected:i,disabled:m},"aria-selected":i,"aria-disabled":m,testID:k,children:E}),y?(0,_jsxRuntime.jsx)(ChipSkeleton,{...e}):Y});Chip.displayName="Chip";const ChipSkeleton=({label:e,count:r,size:t="md",leftIcon:o,onClose:i,style:s,containerStyle:l})=>{const n=sizeMap[t],a=Math.max(40,Math.min(120,7*(e??"").length)),c=n.minHeight,d=c/2,p=a+2*n.paddingH+(hasChipCount(r)?n.gap/2+7*String(r).length:0)+(void 0!==o?n.gap+14:0)+(void 0!==i?n.gap+n.closeSize:0);return(0,_jsxRuntime.jsx)(_index2.Skeleton,{width:p,height:c,radius:d,style:[{alignSelf:"flex-start"},l,s]})};ChipSkeleton.displayName="ChipSkeleton",Chip.Skeleton=ChipSkeleton;const styles=_reactNative.StyleSheet.create({base:{alignSelf:"flex-start",flexDirection:"row",alignItems:"center",justifyContent:"center"},row:{flexDirection:"row",alignItems:"center"},label:{flexShrink:1,textAlign:"center"},count:{flexShrink:0,fontVariant:["tabular-nums"]},close:{alignItems:"center",justifyContent:"center"}});var _default=exports.default=Chip;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Chip=void 0;var _react=require("react"),_reactNative=require("react-native"),_usePressAnimation=require("../../hooks/usePressAnimation.js"),_index=require("../../theme/index.js"),_color=require("../../utils/color.js"),_corners=require("../../utils/corners.js"),_hapticUtils=require("../../utils/hapticUtils.js"),_slotIcon=require("../AppIcon/slotIcon.js"),_index2=require("../Skeleton/index.js"),_jsxRuntime=require("react/jsx-runtime");const toneFor=(e,r)=>{switch(r){case"primary":return{base:e.colors.primaryMuted,on:e.colors.primary,ink:e.colors.toneText.primary,border:e.colors.primary,selectedBg:e.colors.primaryMuted,selectedOn:e.colors.primary,selectedInk:e.colors.toneText.primary,selectedBorder:e.colors.primary};case"success":return{base:e.colors.background.tertiary,on:e.colors.success,ink:e.colors.toneText.success,border:e.colors.success,selectedBg:e.colors.primaryMuted,selectedOn:e.colors.primary,selectedInk:e.colors.toneText.primary,selectedBorder:e.colors.primary};case"warning":return{base:e.colors.background.tertiary,on:e.colors.warning,ink:e.colors.toneText.warning,border:e.colors.warning,selectedBg:e.colors.primaryMuted,selectedOn:e.colors.primary,selectedInk:e.colors.toneText.primary,selectedBorder:e.colors.primary};case"error":return{base:e.colors.background.tertiary,on:e.colors.error,ink:e.colors.toneText.error,border:e.colors.error,selectedBg:e.colors.primaryMuted,selectedOn:e.colors.primary,selectedInk:e.colors.toneText.primary,selectedBorder:e.colors.primary};case"info":return{base:e.colors.background.tertiary,on:e.colors.info,ink:e.colors.toneText.info,border:e.colors.info,selectedBg:e.colors.primaryMuted,selectedOn:e.colors.primary,selectedInk:e.colors.toneText.primary,selectedBorder:e.colors.primary};default:return{base:e.colors.background.tertiary,on:e.colors.text.primary,ink:e.colors.text.primary,border:e.colors.border.primary,selectedBg:e.colors.primaryMuted,selectedOn:e.colors.primary,selectedInk:e.colors.toneText.primary,selectedBorder:e.colors.primary}}},SOFT_FILL_OPACITY=.14,SOFT_SELECTED_FILL_OPACITY=.24,hasChipCount=e=>null!=e&&""!==e,Chip=exports.Chip=(0,_react.forwardRef)((e,r)=>{const{label:t,count:s,selected:o=!1,selectionMode:i="single",onPress:l,onClose:n,leftIcon:a,iconVariant:c,variant:d="filled",tone:u="neutral",size:p="md",disabled:m=!1,loading:y=!1,accessibilityLabel:x,haptic:b,style:h,textStyle:g,containerStyle:_,countStyle:f,closeButtonStyle:S,closeIconStyle:k,testID:j}=e,C=(0,_index.useTheme)(),v=!!l&&!m,I="radio"===i,T=!!l&&(!m||I),R=hasChipCount(s),{style:w,pressIn:M,pressOut:O}=(0,_usePressAnimation.usePressAnimation)({enabled:v}),B=(0,_react.useMemo)(()=>toneFor(C,u),[C,u]),z=(0,_react.useMemo)(()=>(0,_index.resolveChipSize)(C,p),[C,p]),L=Math.max(0,Math.ceil((44-z.minHeight)/2)),P=I?{top:L,bottom:L}:void 0,N="filled"===d,q="soft"===d,F=(()=>{if(q){const e=o?B.selectedOn:B.on,r=o?.24:.14;return(0,_color.tintOf)(e,r,o?B.selectedBg:B.base)}return o?N?B.selectedBg:"transparent":N?B.base:"transparent"})(),A=q?"transparent":o?B.selectedBorder:N?"transparent":B.border,H=m?C.colors.text.disabled:o?q?C.colors.text.primary:B.selectedInk:B.ink,V=N||q?0:C.colors.border.width,handlePress=()=>{if(!v)return;const e=(0,_hapticUtils.resolveHaptic)(b,"selection");e&&(0,_hapticUtils.triggerHaptic)(e),l?.()},D=x??(R?`${t}, ${s}`:t),U=(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.row,children:[a?(0,_jsxRuntime.jsx)(_reactNative.View,{style:{marginRight:z.gap},children:(0,_slotIcon.renderSlotIcon)(a,{color:H,size:z.icon,disabled:m},c)}):null,(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[styles.label,{color:H,fontSize:z.text,...(0,_index.fontFor)(C,"medium")},g],numberOfLines:1,children:t??" "}),R?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[styles.count,{color:H,fontSize:Math.min(C.typography.fontSize.xs,z.text),marginLeft:C.spacing.xs,...(0,_index.fontFor)(C,"normal")},f],numberOfLines:1,children:s}):null,n?(0,_jsxRuntime.jsx)(_reactNative.Pressable,{onPress:()=>{m||(!1!==b&&(0,_hapticUtils.triggerHaptic)("impactLight"),n?.())},disabled:m,accessibilityRole:"button",accessibilityLabel:`Remove ${t}`,accessibilityState:{disabled:m},"aria-disabled":m,hitSlop:6,style:({pressed:e})=>[styles.close,{width:z.closeSize,height:z.closeSize,borderRadius:z.closeSize/2,..._corners.smoothCorners,marginLeft:z.gap,backgroundColor:e?C.colors.surface.pressed:C.colors.surface.hovered},S],children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[{color:H,fontSize:z.closeText,...(0,_index.fontFor)(C,"bold"),lineHeight:z.closeText+2},k],maxFontSizeMultiplier:1,children:"×"})}):null]}),E={paddingHorizontal:z.paddingX,paddingVertical:z.paddingY,minHeight:z.minHeight,borderRadius:C.radius.pill,..._corners.smoothCorners,overflow:"hidden",backgroundColor:F,borderWidth:V,borderColor:A,opacity:m?.55:1};let Y;return Y=T?(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:[w,{alignSelf:"flex-start",borderRadius:C.radius.pill,..._corners.smoothCorners,overflow:"hidden"}],children:(0,_jsxRuntime.jsx)(_reactNative.Pressable,{ref:r,onPress:handlePress,onPressIn:M,onPressOut:O,disabled:!v,accessibilityRole:I?"radio":"multiple"===i?"checkbox":"button",accessibilityLabel:D,accessibilityState:I||"multiple"===i?{checked:o,disabled:m}:{selected:o,disabled:m},"aria-checked":I||"multiple"===i?o:void 0,"aria-selected":I||"multiple"===i?void 0:o,"aria-disabled":m,hitSlop:P,android_ripple:{color:C.colors.surface.pressed,borderless:!1},testID:j,style:({pressed:e})=>[styles.base,E,e&&"outlined"===d?{backgroundColor:C.colors.surface.pressed}:null,_,h],children:U})}):(0,_jsxRuntime.jsx)(_reactNative.View,{ref:r,style:[styles.base,E,_,h],accessible:!0,accessibilityRole:"text",accessibilityLabel:D,accessibilityState:{selected:o,disabled:m},"aria-selected":o,"aria-disabled":m,testID:j,children:U}),y?(0,_jsxRuntime.jsx)(ChipSkeleton,{...e}):Y});Chip.displayName="Chip";const ChipSkeleton=({label:e,count:r,size:t="md",leftIcon:s,onClose:o,style:i,containerStyle:l})=>{const n=(0,_index.useTheme)(),a=(0,_index.resolveChipSize)(n,t),c=Math.max(40,Math.min(120,7*(e??"").length)),d=a.minHeight,u=d/2,p=c+2*a.paddingX+(hasChipCount(r)?a.gap/2+7*String(r).length:0)+(void 0!==s?a.gap+14:0)+(void 0!==o?a.gap+a.closeSize:0);return(0,_jsxRuntime.jsx)(_index2.Skeleton,{width:p,height:d,radius:u,style:[{alignSelf:"flex-start"},l,i]})};ChipSkeleton.displayName="ChipSkeleton",Chip.Skeleton=ChipSkeleton;const styles=_reactNative.StyleSheet.create({base:{alignSelf:"flex-start",flexDirection:"row",alignItems:"center",justifyContent:"center"},row:{flexDirection:"row",alignItems:"center"},label:{flexShrink:1,textAlign:"center"},count:{flexShrink:0,fontVariant:["tabular-nums"]},close:{alignItems:"center",justifyContent:"center"}});var _default=exports.default=Chip;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.ChoiceGroup=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"),_color=require("../../utils/color.js"),_corners=require("../../utils/corners.js"),_slotIcon=require("../AppIcon/slotIcon.js"),_RadioDot=require("../Radio/RadioDot.js"),_jsxRuntime=require("react/jsx-runtime");const sizeTokens={sm:{paddingHorizontal:10,chipPaddingHorizontal:12,paddingVertical:6,fontSize:13,minHeight:32,iconSize:14},md:{paddingHorizontal:12,chipPaddingHorizontal:16,paddingVertical:8,fontSize:15,minHeight:40,iconSize:16},lg:{paddingHorizontal:16,chipPaddingHorizontal:20,paddingVertical:11,fontSize:16,minHeight:48,iconSize:18}},ChoiceGroup=exports.ChoiceGroup=(0,_react.forwardRef)((e,i)=>{const{options:r,getOptionLabel:t,getOptionValue:o,getOptionDisabled:a,getOptionDescription:n,getOptionIcon:l,getOptionColor:s,renderOption:c,variant:d="card",indicatorPosition:u="trailing",direction:p="row",gap:x,wrap:b=!1,fullWidth:g,disabled:m=!1,size:_="md",labelLines:h=1,descriptionLines:f=2,haptic:y,accessibilityLabel:j,style:z,optionStyle:v,testID:R}=e,C=(0,_index2.useTheme)(),S=(0,_react.useMemo)(()=>buildStyles(C),[C]),H=sizeTokens[_],k=(0,_react.useCallback)(e=>t?t(e):e.label??"",[t]),w=(0,_react.useCallback)(e=>o?o(e):e.value,[o]),V=(0,_react.useCallback)(e=>a?a(e):!0===e.disabled,[a]),O=(0,_react.useCallback)(e=>n?n(e):e.description,[n]),D=(0,_react.useCallback)(e=>l?l(e):e.icon,[l]),N=(0,_react.useCallback)(e=>s?s(e):e.color,[s]),L="multiple"===e.selectionMode,{min:q,max:G}=e,[I,P]=(0,_index.useControllableState)({value:e.value,defaultValue:e.defaultValue??(L?[]:void 0),onChange:e.onChange}),T=Array.isArray(I)?I:[],F=(0,_react.useCallback)(e=>{const i=w(e);if(L){const e=T.includes(i);if(e&&null!=q&&T.length<=q)return;if(!e&&null!=G&&T.length>=G)return;const r=(0,_index3.resolveHaptic)(y,"selection");return r&&(0,_index3.triggerHaptic)(r),void P(e?T.filter(e=>e!==i):[...T,i])}const r=(0,_index3.resolveHaptic)(y,"selection");r&&(0,_index3.triggerHaptic)(r),P(i)},[y,L,q,G,T,P,w]),M=g??("card"===d&&"row"===p&&!b),W=C.components.choiceGroup?.selectedFillOpacity??.12,A=C.components.choiceGroup?.borderRadius??C.radius.md,surfaceFor=(e,i,r)=>i?{borderColor:C.colors.border.primary,backgroundColor:C.colors.surface.disabled}:{borderColor:e?r:C.colors.border.primary,backgroundColor:e?(0,_color.tintOf)(r,W,C.colors.surface.selected):C.colors.background.primary},renderIcon=(e,i,r,t)=>{const o=D(e);if(null==o)return null;const a="string"==typeof o&&i?{name:o,variant:"bold"}:o;return(0,_slotIcon.renderSlotIcon)(a,{color:r,size:H.iconSize,disabled:t})},renderChip=e=>{const{option:i,selected:r,disabled:t,color:o}=e,a=t?C.colors.text.disabled:r?o:C.colors.text.primary,n=renderIcon(i,r,a,t);return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[S.chip,{minHeight:H.minHeight,paddingHorizontal:H.chipPaddingHorizontal,paddingVertical:H.paddingVertical,borderRadius:C.radius.full,..._corners.smoothCorners,borderWidth:C.colors.border.width,...surfaceFor(r,t,o),columnGap:C.spacing.xs}],children:[n?(0,_jsxRuntime.jsx)(_reactNative.View,{children:n}):null,(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[S.cardLabel,{color:a,fontSize:H.fontSize,...(0,_index2.fontFor)(C,"medium")}],numberOfLines:h,ellipsizeMode:"tail",children:k(i)})]})},renderDefaultCard=e=>{const{option:i,selected:r,disabled:t,color:o}=e,a=N(i),n=t?C.colors.text.disabled:a??C.colors.text.primary,l=O(i),s=renderIcon(i,r,n,t),c=(0,_jsxRuntime.jsx)(_RadioDot.RadioDot,{selected:r,color:o,disabled:t,size:_});return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[S.card,{minHeight:H.minHeight,paddingHorizontal:H.paddingHorizontal,paddingVertical:H.paddingVertical,borderRadius:A,..._corners.smoothCorners,borderWidth:C.colors.border.width,...surfaceFor(r,t,o),columnGap:C.spacing.sm}],children:["leading"===u?c:null,s?(0,_jsxRuntime.jsx)(_reactNative.View,{children:s}):null,(0,_jsxRuntime.jsxs)(_reactNative.View,{style:S.cardTextWrap,children:[(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[S.cardLabel,{color:n,fontSize:H.fontSize,...(0,_index2.fontFor)(C,"medium")}],numberOfLines:h,ellipsizeMode:"tail",children:k(i)}),l?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[S.cardDescription,{color:r?C.colors.text.secondary:C.colors.text.tertiary,fontSize:C.typography.fontSize.xs}],numberOfLines:f,ellipsizeMode:"tail",children:l}):null]}),"trailing"===u?c:null]})};return(0,_jsxRuntime.jsx)(_reactNative.View,{ref:i,accessibilityRole:L?void 0:"radiogroup",accessibilityLabel:j,accessibilityState:{disabled:m},"aria-disabled":m,testID:R,style:[{flexDirection:p,gap:x??C.spacing.sm,flexWrap:b?"wrap":"nowrap"},z],children:r.map((e,i)=>{const r=w(e),t=L?T.includes(r):I===r,o=L&&null!=G&&!t&&T.length>=G,a=m||o||V(e),n=N(e)??C.colors.primary,l=c||"card"!==d?void 0:O(e);return(0,_jsxRuntime.jsx)(_reactNative.Pressable,{onPress:()=>{a||F(e)},disabled:a,accessibilityRole:L?"checkbox":"radio",accessibilityLabel:l?`${k(e)}, ${l}`:k(e),accessibilityState:{checked:t,disabled:a},"aria-checked":t,"aria-disabled":a,style:[M?S.stretchOption:null,{opacity:a&&c?.55:1},v],children:({pressed:r})=>{const o={option:e,index:i,selected:t,pressed:r&&!a,disabled:a,color:n};return(0,_jsxRuntime.jsx)(_jsxRuntime.Fragment,{children:c?c(o):"chip"===d?renderChip(o):renderDefaultCard(o)})}},String(r))})})});ChoiceGroup.displayName="ChoiceGroup";const buildStyles=e=>_reactNative.StyleSheet.create({stretchOption:{flex:1},card:{flexDirection:"row",alignItems:"center"},chip:{flexDirection:"row",alignItems:"center",justifyContent:"center"},cardTextWrap:{flex:1},cardLabel:{includeFontPadding:!1},cardDescription:{includeFontPadding:!1,marginTop:2}});var _default=exports.default=ChoiceGroup;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.ChoiceGroup=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"),_color=require("../../utils/color.js"),_corners=require("../../utils/corners.js"),_slotIcon=require("../AppIcon/slotIcon.js"),_RadioDot=require("../Radio/RadioDot.js"),_jsxRuntime=require("react/jsx-runtime");const sizeTokensOf=e=>({sm:{paddingHorizontal:e.spacing.sm,chipPaddingHorizontal:e.spacing.md,paddingVertical:e.spacing.xs,fontSize:e.typography.fontSize.sm,minHeight:32,iconSize:14},md:{paddingHorizontal:e.spacing.md,chipPaddingHorizontal:e.spacing.lg,paddingVertical:e.spacing.sm,fontSize:e.typography.fontSize.base,minHeight:40,iconSize:16},lg:{paddingHorizontal:e.spacing.lg,chipPaddingHorizontal:e.spacing.xl,paddingVertical:e.spacing.md,fontSize:e.typography.fontSize.lg,minHeight:48,iconSize:18}}),ChoiceGroup=exports.ChoiceGroup=(0,_react.forwardRef)((e,i)=>{const{options:t,getOptionLabel:r,getOptionValue:o,getOptionDisabled:a,getOptionDescription:n,getOptionIcon:s,getOptionColor:l,renderOption:c,variant:d="card",indicatorPosition:p="trailing",direction:u="row",gap:g,wrap:x=!1,fullWidth:m,disabled:b=!1,size:_="md",labelLines:h=1,descriptionLines:f=2,haptic:y,accessibilityLabel:j,style:z,optionStyle:v,testID:S}=e,C=(0,_index2.useTheme)(),R=(0,_react.useMemo)(()=>buildStyles(C),[C]),H=(0,_react.useMemo)(()=>sizeTokensOf(C)[_],[C,_]),O=(0,_react.useCallback)(e=>r?r(e):e.label??"",[r]),k=(0,_react.useCallback)(e=>o?o(e):e.value,[o]),w=(0,_react.useCallback)(e=>a?a(e):!0===e.disabled,[a]),V=(0,_react.useCallback)(e=>n?n(e):e.description,[n]),D=(0,_react.useCallback)(e=>s?s(e):e.icon,[s]),N=(0,_react.useCallback)(e=>l?l(e):e.color,[l]),L="multiple"===e.selectionMode,{min:G,max:q}=e,[I,P]=(0,_index.useControllableState)({value:e.value,defaultValue:e.defaultValue??(L?[]:void 0),onChange:e.onChange}),T=Array.isArray(I)?I:[],M=(0,_react.useCallback)(e=>{const i=k(e);if(L){const e=T.includes(i);if(e&&null!=G&&T.length<=G)return;if(!e&&null!=q&&T.length>=q)return;const t=(0,_index3.resolveHaptic)(y,"selection");return t&&(0,_index3.triggerHaptic)(t),void P(e?T.filter(e=>e!==i):[...T,i])}const t=(0,_index3.resolveHaptic)(y,"selection");t&&(0,_index3.triggerHaptic)(t),P(i)},[y,L,G,q,T,P,k]),F=m??("card"===d&&"row"===u&&!x),W=C.components.choiceGroup?.selectedFillOpacity??.12,A=(0,_index2.radiusOf)(C,C.components.choiceGroup?.radius??"md","components.choiceGroup.radius"),surfaceFor=(e,i,t)=>i?{borderColor:C.colors.border.primary,backgroundColor:C.colors.surface.disabled}:{borderColor:e?t:C.colors.border.primary,backgroundColor:e?(0,_color.tintOf)(t,W,C.colors.surface.selected):C.colors.background.primary},renderIcon=(e,i,t,r)=>{const o=D(e);if(null==o)return null;const a="string"==typeof o&&i?{name:o,variant:"bold"}:o;return(0,_slotIcon.renderSlotIcon)(a,{color:t,size:H.iconSize,disabled:r})},renderChip=e=>{const{option:i,selected:t,disabled:r,color:o}=e,a=r?C.colors.text.disabled:t?o:C.colors.text.primary,n=renderIcon(i,t,a,r);return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[R.chip,{minHeight:H.minHeight,paddingHorizontal:H.chipPaddingHorizontal,paddingVertical:H.paddingVertical,borderRadius:C.radius.pill,..._corners.smoothCorners,borderWidth:C.colors.border.width,...surfaceFor(t,r,o),columnGap:C.spacing.xs}],children:[n?(0,_jsxRuntime.jsx)(_reactNative.View,{children:n}):null,(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[R.cardLabel,{color:a,fontSize:H.fontSize,...(0,_index2.fontFor)(C,"medium")}],numberOfLines:h,ellipsizeMode:"tail",children:O(i)})]})},renderDefaultCard=e=>{const{option:i,selected:t,disabled:r,color:o}=e,a=N(i),n=r?C.colors.text.disabled:a??C.colors.text.primary,s=V(i),l=renderIcon(i,t,n,r),c=(0,_jsxRuntime.jsx)(_RadioDot.RadioDot,{selected:t,color:o,disabled:r,size:_});return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[R.card,{minHeight:H.minHeight,paddingHorizontal:H.paddingHorizontal,paddingVertical:H.paddingVertical,borderRadius:A,..._corners.smoothCorners,borderWidth:C.colors.border.width,...surfaceFor(t,r,o),columnGap:C.spacing.sm}],children:["leading"===p?c:null,l?(0,_jsxRuntime.jsx)(_reactNative.View,{children:l}):null,(0,_jsxRuntime.jsxs)(_reactNative.View,{style:R.cardTextWrap,children:[(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[R.cardLabel,{color:n,fontSize:H.fontSize,...(0,_index2.fontFor)(C,"medium")}],numberOfLines:h,ellipsizeMode:"tail",children:O(i)}),s?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[R.cardDescription,{color:t?C.colors.text.secondary:C.colors.text.tertiary,fontSize:C.typography.fontSize.xs}],numberOfLines:f,ellipsizeMode:"tail",children:s}):null]}),"trailing"===p?c:null]})};return(0,_jsxRuntime.jsx)(_reactNative.View,{ref:i,accessibilityRole:L?void 0:"radiogroup",accessibilityLabel:j,accessibilityState:{disabled:b},"aria-disabled":b,testID:S,style:[{flexDirection:u,gap:g??C.spacing.sm,flexWrap:x?"wrap":"nowrap"},z],children:t.map((e,i)=>{const t=k(e),r=L?T.includes(t):I===t,o=L&&null!=q&&!r&&T.length>=q,a=b||o||w(e),n=N(e)??C.colors.primary,s=c||"card"!==d?void 0:V(e);return(0,_jsxRuntime.jsx)(_reactNative.Pressable,{onPress:()=>{a||M(e)},disabled:a,accessibilityRole:L?"checkbox":"radio",accessibilityLabel:s?`${O(e)}, ${s}`:O(e),accessibilityState:{checked:r,disabled:a},"aria-checked":r,"aria-disabled":a,style:[F?R.stretchOption:null,{opacity:a&&c?.55:1},v],children:({pressed:t})=>{const o={option:e,index:i,selected:r,pressed:t&&!a,disabled:a,color:n};return(0,_jsxRuntime.jsx)(_jsxRuntime.Fragment,{children:c?c(o):"chip"===d?renderChip(o):renderDefaultCard(o)})}},String(t))})})});ChoiceGroup.displayName="ChoiceGroup";const buildStyles=e=>_reactNative.StyleSheet.create({stretchOption:{flex:1},card:{flexDirection:"row",alignItems:"center"},chip:{flexDirection:"row",alignItems:"center",justifyContent:"center"},cardTextWrap:{flex:1},cardLabel:{includeFontPadding:!1},cardDescription:{includeFontPadding:!1,marginTop:e.spacing.xxs}});var _default=exports.default=ChoiceGroup;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Composer=void 0;var _react=require("react"),_reactNative=require("react-native"),_reactNativeKeyboardController=require("react-native-keyboard-controller"),_reactNativeSafeAreaContext=require("react-native-safe-area-context"),_useControllableState=require("../../hooks/useControllableState.js"),_index=require("../../theme/index.js"),_corners=require("../../utils/corners.js"),_FieldBase=require("../FieldBase/FieldBase.js"),_index2=require("../IconButton/index.js"),_jsxRuntime=require("react/jsx-runtime");const MIN_BOX=44,Composer=exports.Composer=(0,_react.forwardRef)(({onSend:e,value:t,onChangeText:a,placeholder:r="Message",accessibilityLabel:o,sendLabel:i="Send",busy:s=!1,disabled:l=!1,maxLength:n,maxLines:d=5,leading:c,trailing:u,above:b,below:p,keyboardAware:x=!0,keyboardOffset:g,safeArea:m=!0,autoFocus:_,haptic:h,style:v,testID:y},C)=>{const f=(0,_index.useTheme)(),S=(0,_reactNativeSafeAreaContext.useSafeAreaInsets)(),j=(0,_react.useMemo)(()=>buildStyles(f),[f]),[N,k]=(0,_useControllableState.useControllableState)({value:t,defaultValue:"",onChange:a}),w=N.trim(),q=s||l||""===w,I=m?S.bottom:0,R=g??I,T=(0,_FieldBase.resolveFieldTextStyle)(f,{disabled:l}),B=f.typography.fontSize.base,D=Math.round(B*f.typography.lineHeight.normal),F=(44-D)/2,z=D*d+2*F,[H,L]=(0,_react.useState)(void 0),M=(0,_react.useCallback)(e=>{const t=e.nativeEvent.contentSize.height+2*F;L(Math.min(Math.max(t,44),z))},[F,z]),V=(0,_react.useCallback)(()=>{q||(k(""),e(w))},[q,k,e,w]),A=(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[j.bar,{paddingBottom:f.spacing.sm+I},v],testID:y,children:[b,(0,_jsxRuntime.jsxs)(_reactNative.View,{style:j.row,children:[c,(0,_jsxRuntime.jsx)(_reactNative.View,{style:[j.box,l?j.boxDisabled:null],children:(0,_jsxRuntime.jsx)(_reactNative.TextInput,{ref:C,value:N,onChangeText:k,multiline:!0,maxLength:n,editable:!l,autoFocus:_,placeholder:r,placeholderTextColor:T.placeholderColor,selectionColor:f.colors.field.caret,accessibilityLabel:o??r,accessibilityState:{disabled:l},"aria-disabled":l,onContentSizeChange:"web"===_reactNative.Platform.OS?M:void 0,style:[j.input,{color:T.color,...T.weightStyle,fontSize:B,lineHeight:D,paddingVertical:F,maxHeight:z,height:"web"===_reactNative.Platform.OS?H:void 0}],testID:y?`${y}-input`:void 0})}),u,(0,_jsxRuntime.jsx)(_index2.IconButton,{icon:"send",accessibilityLabel:i,variant:"solid",tone:"primary",disabled:q,loading:s,haptic:h,onPress:V,testID:y?`${y}-send`:void 0})]}),p]});return x?(0,_jsxRuntime.jsx)(_reactNativeKeyboardController.KeyboardStickyView,{offset:{closed:0,opened:R},children:A}):A});Composer.displayName="Composer";const buildStyles=e=>_reactNative.StyleSheet.create({bar:{gap:e.spacing.xs,paddingHorizontal:e.spacing.md,paddingTop:e.spacing.sm,backgroundColor:e.colors.background.primary,borderTopWidth:_reactNative.StyleSheet.hairlineWidth,borderTopColor:e.colors.border.secondary},row:{flexDirection:"row",alignItems:"flex-end",gap:e.spacing.sm},box:{flex:1,minHeight:44,justifyContent:"center",backgroundColor:e.colors.field.background,borderRadius:22,..._corners.smoothCorners,paddingHorizontal:e.spacing.md},boxDisabled:{backgroundColor:e.colors.field.backgroundDisabled},input:{margin:0,paddingHorizontal:0,includeFontPadding:!1,textAlignVertical:"top"}});var _default=exports.default=Composer;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Composer=void 0;var _react=require("react"),_reactNative=require("react-native"),_reactNativeKeyboardController=require("react-native-keyboard-controller"),_reactNativeSafeAreaContext=require("react-native-safe-area-context"),_useControllableState=require("../../hooks/useControllableState.js"),_index=require("../../theme/index.js"),_corners=require("../../utils/corners.js"),_FieldBase=require("../FieldBase/FieldBase.js"),_index2=require("../IconButton/index.js"),_jsxRuntime=require("react/jsx-runtime");const MIN_BOX=44,Composer=exports.Composer=(0,_react.forwardRef)(({onSend:e,value:t,onChangeText:a,placeholder:o="Message",accessibilityLabel:r,sendLabel:i="Send",busy:n=!1,disabled:s=!1,maxLength:l,maxLines:d=5,leading:c,trailing:u,above:b,below:p,keyboardAware:x=!0,keyboardOffset:g,safeArea:m=!0,autoFocus:_,haptic:h,style:v,testID:y},C)=>{const f=(0,_index.useTheme)(),S=(0,_reactNativeSafeAreaContext.useSafeAreaInsets)(),j=(0,_react.useMemo)(()=>buildStyles(f),[f]),[N,k]=(0,_useControllableState.useControllableState)({value:t,defaultValue:"",onChange:a}),w=N.trim(),q=n||s||""===w,I=m?S.bottom:0,R=g??I,T=(0,_FieldBase.resolveFieldTextStyle)(f,{disabled:s}),B=f.typography.fontSize.base,D=Math.round(B*f.typography.lineHeight.normal),F=(44-D)/2,z=D*d+2*F,[H,L]=(0,_react.useState)(void 0),M=(0,_react.useCallback)(e=>{const t=e.nativeEvent.contentSize.height+2*F;L(Math.min(Math.max(t,44),z))},[F,z]),V=(0,_react.useCallback)(()=>{q||(k(""),e(w))},[q,k,e,w]),A=(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[j.bar,{paddingBottom:f.spacing.sm+I},v],testID:y,children:[b,(0,_jsxRuntime.jsxs)(_reactNative.View,{style:j.row,children:[c,(0,_jsxRuntime.jsx)(_reactNative.View,{style:[j.box,s?j.boxDisabled:null],children:(0,_jsxRuntime.jsx)(_reactNative.TextInput,{ref:C,value:N,onChangeText:k,multiline:!0,maxLength:l,editable:!s,autoFocus:_,placeholder:o,placeholderTextColor:T.placeholderColor,selectionColor:f.colors.field.caret,accessibilityLabel:r??o,accessibilityState:{disabled:s},"aria-disabled":s,onContentSizeChange:"web"===_reactNative.Platform.OS?M:void 0,style:[j.input,{color:T.color,...T.weightStyle,fontSize:B,lineHeight:D,paddingVertical:F,maxHeight:z,height:"web"===_reactNative.Platform.OS?H:void 0}],testID:y?`${y}-input`:void 0})}),u,(0,_jsxRuntime.jsx)(_index2.IconButton,{icon:"send",accessibilityLabel:i,variant:"solid",tone:"primary",disabled:q,loading:n,haptic:h,onPress:V,testID:y?`${y}-send`:void 0})]}),p]});return x?(0,_jsxRuntime.jsx)(_reactNativeKeyboardController.KeyboardStickyView,{offset:{closed:0,opened:R},children:A}):A});Composer.displayName="Composer";const buildStyles=e=>_reactNative.StyleSheet.create({bar:{gap:e.spacing.xs,paddingHorizontal:e.spacing.md,paddingTop:e.spacing.sm,backgroundColor:e.colors.background.primary,borderTopWidth:_reactNative.StyleSheet.hairlineWidth,borderTopColor:e.colors.border.secondary},row:{flexDirection:"row",alignItems:"flex-end",gap:e.spacing.sm},box:{flex:1,minHeight:44,justifyContent:"center",backgroundColor:e.colors.field.background,borderRadius:e.radius.pill,..._corners.smoothCorners,paddingHorizontal:e.spacing.md},boxDisabled:{backgroundColor:e.colors.field.backgroundDisabled},input:{margin:e.spacing.none,paddingHorizontal:e.spacing.none,includeFontPadding:!1,textAlignVertical:"top"}});var _default=exports.default=Composer;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.DatePicker=void 0;var _react=require("react"),_reactNative=require("react-native"),_reactNativeGestureHandler=require("react-native-gesture-handler"),_useDragToDismiss=require("../../hooks/useDragToDismiss.js"),_usePresenceMotion=require("../../hooks/usePresenceMotion.js"),_index=require("../../theme/index.js"),_index2=require("../../utils/index.js"),_corners=require("../../utils/corners.js"),_defaultIcons=require("../AppIcon/defaultIcons.js"),_ModalSafeArea=require("../ModalSafeArea/ModalSafeArea.js"),_index3=require("../PickerTrigger/index.js"),_ToastProvider=require("../Toast/ToastProvider.js"),_jsxRuntime=require("react/jsx-runtime");const AnimatedGestureRoot=_reactNative.Animated.createAnimatedComponent(_reactNativeGestureHandler.GestureHandlerRootView),transparentOf=e=>{const t=e.match(/^rgba?\(([^)]+)\)$/);if(!t)return"transparent";const[a,r,i]=t[1].split(",").map(e=>e.trim());return`rgba(${a}, ${r}, ${i}, 0)`},GRID_SIZE=12,DECADE_SPAN=10,startOfDay=e=>new Date(e.getFullYear(),e.getMonth(),e.getDate()),isSameDay=(e,t)=>e.getFullYear()===t.getFullYear()&&e.getMonth()===t.getMonth()&&e.getDate()===t.getDate(),toIso=e=>`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,"0")}-${String(e.getDate()).padStart(2,"0")}`,addMonths=(e,t)=>new Date(e.getFullYear(),e.getMonth()+t,1),buildMonthMatrix=(e,t)=>{const a=e.getFullYear(),r=e.getMonth(),i=(new Date(a,r,1).getDay()-t+7)%7,n=[];for(let e=0;e<42;e+=1){const t=new Date(a,r,1-i+e);n.push({date:t,inMonth:t.getMonth()===r,iso:toIso(t)})}return n},weekdayLabels=(e,t)=>{const a=new Intl.DateTimeFormat(e,{weekday:"short"}),r=[];for(let e=0;e<7;e+=1){const i=new Date(1970,0,4+(t+e)%7);r.push(a.format(i))}return r},formatMonthYear=(e,t)=>new Intl.DateTimeFormat(t,{month:"long",year:"numeric"}).format(e),decadeStartFor=e=>10*Math.floor(e/10),buildYearCells=e=>{const t=e-4;return Array.from({length:12},(e,a)=>t+a)},buildDecadeCells=e=>{const t=decadeStartFor(e)-40;return Array.from({length:12},(e,a)=>t+10*a)},DatePicker=e=>{const{value:t,onChange:a,onClose:r,minDate:i,maxDate:n,disabledDates:s,mode:o="modal",locale:l="en-IN",weekStartsOn:c=0,title:d="Select Date",confirmLabel:u="Confirm",cancelLabel:m="Cancel",style:g,containerStyle:y,headerLabelStyle:_,navButtonStyle:p,footerButtonStyle:x,haptic:h,testID:v,label:b,placeholder:f,helperText:j,error:N,required:R,disabled:D,size:w,variant:C,clearable:S,onClear:k,formatValue:P,triggerStyle:A}=e,T=void 0!==e.visible,[M,V]=(0,_react.useState)(!1),I=T?e.visible:M,F=T?v:v?`${v}-calendar`:void 0,B=(0,_index.useTheme)(),L=(0,_usePresenceMotion.usePresenceMotion)(),[Y,$]=(0,_ModalSafeArea.useModalInsets)(),z=(0,_react.useMemo)(()=>buildStyles(B),[B]),[H,W]=(0,_react.useState)(()=>startOfDay(new Date));(0,_react.useEffect)(()=>{I&&W(startOfDay(new Date))},[I]);const q=t?startOfDay(t):H,[E,O]=(0,_react.useState)(q),[G,X]=(0,_react.useState)(t?startOfDay(t):null),[Z,J]=(0,_react.useState)("days"),K=(0,_react.useRef)((0,_index.createAnimatedValue)(0)).current,Q=(0,_react.useRef)((0,_index.createAnimatedValue)(0)).current,U=(0,_react.useRef)((0,_index.createAnimatedValue)(0)).current,ee=(0,_react.useRef)(0),te=(0,_react.useRef)((0,_index.createAnimatedValue)(0)).current,ae=(0,_react.useRef)((0,_index.createAnimatedValue)(1)).current,re=(0,_react.useRef)((0,_index.createAnimatedValue)(1)).current,ie=(0,_react.useRef)((0,_index.createAnimatedValue)(1)).current,ne=(0,_react.useRef)((0,_index.createAnimatedValue)(1)).current,se=(0,_react.useRef)((0,_index.createAnimatedValue)(1)).current;(0,_react.useEffect)(()=>{if(t){const e=startOfDay(t);X(e),O(e)}else X(null)},[t]);const oe=(0,_react.useMemo)(()=>{const e=new Set;return s?.forEach(t=>e.add(toIso(startOfDay(t)))),e},[s]),le=(0,_react.useMemo)(()=>i?startOfDay(i):null,[i]),ce=(0,_react.useMemo)(()=>n?startOfDay(n):null,[n]),de=(0,_react.useCallback)(e=>!!(le&&e.getTime()<le.getTime())||(!!(ce&&e.getTime()>ce.getTime())||!!oe.has(toIso(e))),[le,ce,oe]),ue=(0,_react.useMemo)(()=>buildMonthMatrix(E,c),[E,c]),me=(0,_react.useMemo)(()=>buildYearCells(E.getFullYear()),[E]),ge=(0,_react.useMemo)(()=>buildDecadeCells(E.getFullYear()),[E]),ye=(0,_react.useMemo)(()=>weekdayLabels(l,c),[l,c]),pe=(0,_react.useMemo)(()=>new Intl.DateTimeFormat(l,{weekday:"long",year:"numeric",month:"long",day:"numeric"}),[l]),xe=(0,_react.useMemo)(()=>{if("days"===Z)return formatMonthYear(E,l);if("years"===Z){return`${me[0]} - ${me[me.length-1]}`}return`${ge[0]} - ${ge[ge.length-1]+9}`},[E,ge,l,Z,me]),he=(0,_react.useCallback)(e=>!!(le&&e<le.getFullYear())||!!(ce&&e>ce.getFullYear()),[le,ce]),ve=(0,_react.useCallback)(e=>!!(le&&e+10-1<le.getFullYear())||!!(ce&&e>ce.getFullYear()),[le,ce]),be=(0,_react.useCallback)(e=>{!1!==h&&(0,_index2.triggerHaptic)("impactLight");const t=e>0?1:-1,a=B.components.datePicker?.monthSlideDistance??32,r=B.components.datePicker?.monthSlideOutDuration??B.motion.duration.fast??140,i=B.components.datePicker?.monthSlideInDuration??B.motion.duration.fast??160,[n]=L.range(-t*a,0),[s]=L.range(t*a,0),o=L.reduced?L.duration("fast"):r,c=L.reduced?L.duration("fast"):i;_reactNative.Animated.sequence([_reactNative.Animated.parallel([_reactNative.Animated.timing(te,{toValue:n,duration:r,easing:_reactNative.Easing.out(_reactNative.Easing.quad),useNativeDriver:!0}),_reactNative.Animated.timing(ae,{toValue:0,duration:o,useNativeDriver:!0})]),_reactNative.Animated.timing(te,{toValue:s,duration:0,useNativeDriver:!0}),_reactNative.Animated.parallel([_reactNative.Animated.timing(te,{toValue:0,duration:i,easing:_reactNative.Easing.out(_reactNative.Easing.cubic),useNativeDriver:!0}),_reactNative.Animated.timing(ae,{toValue:1,duration:c,useNativeDriver:!0})])]).start();const d=addMonths(E,e);O(d),_reactNative.AccessibilityInfo.announceForAccessibility(formatMonthYear(d,l))},[E,h,l,ae,te,L,B.components.datePicker,B.motion.duration.fast]),fe=(0,_react.useCallback)(()=>{"days"!==Z?(!1!==h&&(0,_index2.triggerHaptic)("impactLight"),O("years"===Z?e=>new Date(e.getFullYear()-12,e.getMonth(),1):e=>new Date(e.getFullYear()-120,e.getMonth(),1))):be(-1)},[be,Z,h]),je=(0,_react.useCallback)(()=>{"days"!==Z?(!1!==h&&(0,_index2.triggerHaptic)("impactLight"),O("years"===Z?e=>new Date(e.getFullYear()+12,e.getMonth(),1):e=>new Date(e.getFullYear()+120,e.getMonth(),1))):be(1)},[be,Z,h]),Ne=(0,_react.useCallback)(()=>{const[e]=L.range(.9,1),t=L.reduced?L.duration("normal"):B.components.datePicker?.viewTransitionDuration??B.motion.duration.normal??200;(0,_index.setNativeValue)(ie,0),(0,_index.setNativeValue)(ne,e),_reactNative.Animated.parallel([_reactNative.Animated.timing(ie,{toValue:1,duration:t,easing:_reactNative.Easing.out(_reactNative.Easing.cubic),useNativeDriver:!0}),_reactNative.Animated.timing(ne,{toValue:1,duration:t,easing:_reactNative.Easing.out(_reactNative.Easing.cubic),useNativeDriver:!0})]).start()},[ie,ne,L,B.components.datePicker,B.motion.duration.normal]),Re=(0,_react.useCallback)(()=>{const e=(0,_index2.resolveHaptic)(h,"selection");if(e&&(0,_index2.triggerHaptic)(e),!L.reduced){const e=B.components.datePicker?.headerPressDuration??80,t=B.components.datePicker?.headerReleaseDuration??100;_reactNative.Animated.sequence([_reactNative.Animated.timing(se,{toValue:.96,duration:e,useNativeDriver:!0}),_reactNative.Animated.timing(se,{toValue:1,duration:t,useNativeDriver:!0})]).start()}J(e=>"days"===e?"years":"years"===e?"decades":"years"),Ne()},[Ne,se,h,L.reduced,B.components.datePicker]),De=(0,_react.useCallback)(e=>{const t=(0,_index2.resolveHaptic)(h,"selection");t&&(0,_index2.triggerHaptic)(t),O(t=>new Date(e,t.getMonth(),1)),J("days"),Ne()},[Ne,h]),we=(0,_react.useCallback)(e=>{const t=(0,_index2.resolveHaptic)(h,"selection");t&&(0,_index2.triggerHaptic)(t),O(t=>new Date(e+4,t.getMonth(),1)),J("years"),Ne()},[Ne,h]),Ce=(0,_react.useCallback)(e=>{if(de(e.date))return;const t=(0,_index2.resolveHaptic)(h,"selection");t&&(0,_index2.triggerHaptic)(t),X(e.date),e.inMonth||O(new Date(e.date.getFullYear(),e.date.getMonth(),1)),L.reduced||((0,_index.setNativeValue)(re,.7),_reactNative.Animated.spring(re,{toValue:1,damping:B.motion.spring.bouncy.damping,stiffness:B.motion.spring.bouncy.stiffness,mass:B.motion.spring.bouncy.mass,useNativeDriver:!0}).start())},[de,L.reduced,re,B.motion.spring.bouncy,h]),Se=(0,_react.useCallback)(()=>{T||V(!1),r?.()},[T,r]),ke=(0,_react.useCallback)(()=>{"modal"===o?_reactNative.Animated.parallel([_reactNative.Animated.timing(K,{toValue:0,duration:L.duration("normal"),easing:_reactNative.Easing.bezier(...B.motion.easing.accelerate),useNativeDriver:!1}),_reactNative.Animated.timing(Q,{toValue:0,duration:L.duration("fast"),easing:_reactNative.Easing.bezier(...B.motion.easing.accelerate),useNativeDriver:!0})]).start(()=>{Se()}):Se()},[K,o,Se,L,Q,B.motion.easing.accelerate]),{handleGesture:Pe,opacity:Ae}=(0,_useDragToDismiss.useDragToDismiss)({drag:U,travel:()=>ee.current||320,onDismiss:ke}),Te=(0,_react.useMemo)(()=>_reactNative.Animated.multiply(Q,Ae),[Q,Ae]),Me=(0,_react.useMemo)(()=>K.interpolate({inputRange:[0,1],outputRange:[transparentOf(B.colors.background.overlay),B.colors.background.overlay]}),[K,B.colors.background.overlay]);(0,_react.useEffect)(()=>{if("modal"===o&&I){K.setValue(0),(0,_index.setNativeValue)(Q,0),(0,_index.setNativeValue)(U,0),(0,_index.setNativeValue)(Ae,1);const e=L.reduced?_reactNative.Animated.timing(Q,{toValue:1,duration:L.duration("normal"),useNativeDriver:!0}):_reactNative.Animated.spring(Q,{toValue:1,damping:B.motion.spring.gentle.damping,stiffness:B.motion.spring.gentle.stiffness,mass:B.motion.spring.gentle.mass,useNativeDriver:!0}),t=_reactNative.Animated.parallel([_reactNative.Animated.timing(K,{toValue:1,duration:L.duration("normal"),easing:_reactNative.Easing.out(_reactNative.Easing.cubic),useNativeDriver:!1}),e]);return t.start(),()=>t.stop()}},[I,o,K,L,Q,U,Ae,B.motion]);const Ve=(0,_react.useCallback)(()=>{!1!==h&&(0,_index2.triggerHaptic)("selection"),ke()},[ke,h]),Ie=(0,_react.useCallback)(()=>{G&&(!1!==h&&(0,_index2.triggerHaptic)("notificationSuccess"),a?.(G),ke())},[ke,a,G,h]),Fe=Q.interpolate({inputRange:[0,1],outputRange:L.range(320,0)}),Be=(0,_jsxRuntime.jsx)(_reactNative.View,{style:z.titleRow,children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:z.title,accessibilityRole:"header",children:d})}),Le=(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[z.card,g,y],accessibilityRole:"modal"===o?void 0:"none",accessible:!1,testID:F,children:["modal"===o?(0,_jsxRuntime.jsx)(_reactNativeGestureHandler.GestureDetector,{gesture:Pe,children:(0,_jsxRuntime.jsxs)(_reactNative.View,{style:z.grabArea,children:[(0,_jsxRuntime.jsx)(_reactNative.View,{style:z.handle}),Be]})}):Be,(0,_jsxRuntime.jsxs)(_reactNative.View,{style:z.headerRow,children:[(0,_jsxRuntime.jsx)(_reactNative.Pressable,{onPress:fe,style:({pressed:e})=>[z.navBtn,e&&z.navBtnPressed,p],accessibilityRole:"button",accessibilityLabel:"days"===Z?"Previous month":"years"===Z?"Previous years":"Previous decades",hitSlop:8,children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:z.navText,children:"‹"})}),(0,_jsxRuntime.jsx)(_reactNative.Pressable,{onPress:Re,style:[z.headerLabelWrap,_],accessibilityRole:"button",accessibilityLabel:"days"===Z?`${xe}, switch to year selection`:"years"===Z?`${xe}, switch to decade selection`:`${xe}, switch to year selection`,hitSlop:8,children:(0,_jsxRuntime.jsxs)(_reactNative.Animated.View,{style:[z.headerLabelInner,{transform:[{scale:se}],opacity:"days"===Z?ae:1}],children:[(0,_jsxRuntime.jsx)(_reactNative.Animated.Text,{style:[z.headerLabel,{transform:[{translateX:"days"===Z?te:0}]}],accessibilityLiveRegion:"polite",children:xe}),(0,_jsxRuntime.jsx)(_reactNative.View,{style:z.headerCaret,children:(B.icons?.chevronDown??_defaultIcons.defaultIcons.chevronDown)({size:B.typography.fontSize.sm,color:B.colors.text.secondary})})]})}),(0,_jsxRuntime.jsx)(_reactNative.Pressable,{onPress:je,style:({pressed:e})=>[z.navBtn,e&&z.navBtnPressed,p],accessibilityRole:"button",accessibilityLabel:"days"===Z?"Next month":"years"===Z?"Next years":"Next decades",hitSlop:8,children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:z.navText,children:"›"})})]}),"days"===Z?(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[(0,_jsxRuntime.jsx)(_reactNative.View,{style:z.weekdayRow,children:ye.map((e,t)=>(0,_jsxRuntime.jsx)(_reactNative.View,{style:z.weekdayCell,children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:z.weekdayText,children:e})},`${e}-${t}`))}),(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:[z.grid,{opacity:ae,transform:[{translateX:te}]}],children:Array.from({length:6}).map((e,t)=>(0,_jsxRuntime.jsx)(_reactNative.View,{style:z.gridRow,children:ue.slice(7*t,7*t+7).map(e=>{const t=de(e.date),a=!!G&&isSameDay(e.date,G),r=isSameDay(e.date,H),i=a?B.colors.primary:"transparent",n=r&&!a?B.colors.primary:"transparent",s=a?B.colors.onPrimary:e.inMonth?t?B.colors.text.disabled:B.colors.text.primary:B.colors.text.tertiary,o=t?.3:e.inMonth?1:.4;return(0,_jsxRuntime.jsx)(_reactNative.Pressable,{disabled:t,onPress:()=>Ce(e),accessibilityRole:"button",accessibilityLabel:pe.format(e.date),accessibilityState:{selected:a,disabled:t},"aria-selected":a,"aria-disabled":t,style:z.dayCell,children:(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:[z.dayInner,{backgroundColor:i,borderColor:n,borderWidth:r&&!a?1.5:0,opacity:o},a?{transform:[{scale:re}]}:null],children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[z.dayText,{color:s}],children:e.date.getDate()})})},e.iso)})},`r-${t}`))})]}):"years"===Z?(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:[z.yearGrid,{opacity:ie,transform:[{scale:ne}]}],children:Array.from({length:3}).map((e,t)=>(0,_jsxRuntime.jsx)(_reactNative.View,{style:z.gridRow,children:me.slice(4*t,4*t+4).map(e=>{const t=he(e),a=!!G&&G.getFullYear()===e,r=H.getFullYear()===e,i=a?B.colors.primary:"transparent",n=r&&!a?B.colors.primary:"transparent",s=a?B.colors.onPrimary:t?B.colors.text.disabled:B.colors.text.primary,o=t?.3:1;return(0,_jsxRuntime.jsx)(_reactNative.Pressable,{disabled:t,onPress:()=>De(e),accessibilityRole:"button",accessibilityLabel:`Year ${e}`,accessibilityState:{selected:a,disabled:t},"aria-selected":a,"aria-disabled":t,style:z.yearCell,children:(0,_jsxRuntime.jsx)(_reactNative.View,{style:[z.yearInner,{backgroundColor:i,borderColor:n,borderWidth:r&&!a?1.5:0,opacity:o}],children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[z.yearText,{color:s}],children:e})})},`year-${e}`)})},`yr-${t}`))}):(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:[z.yearGrid,{opacity:ie,transform:[{scale:ne}]}],children:Array.from({length:3}).map((e,t)=>(0,_jsxRuntime.jsx)(_reactNative.View,{style:z.gridRow,children:ge.slice(4*t,4*t+4).map(e=>{const t=e+10-1,a=ve(e),r=!!G&&decadeStartFor(G.getFullYear())===e,i=decadeStartFor(H.getFullYear())===e,n=r?B.colors.primary:"transparent",s=i&&!r?B.colors.primary:"transparent",o=r?B.colors.onPrimary:a?B.colors.text.disabled:B.colors.text.primary,l=a?.3:1;return(0,_jsxRuntime.jsx)(_reactNative.Pressable,{disabled:a,onPress:()=>we(e),accessibilityRole:"button",accessibilityLabel:`Decade ${e} to ${t}`,accessibilityState:{selected:r,disabled:a},"aria-selected":r,"aria-disabled":a,style:z.yearCell,children:(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[z.yearInner,{backgroundColor:n,borderColor:s,borderWidth:i&&!r?1.5:0,opacity:l}],children:[(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[z.yearText,{color:o}],children:`${e}s`}),(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[z.decadeRangeText,{color:r?B.colors.onPrimary:B.colors.text.tertiary}],children:`${e}-${t}`})]})},`decade-${e}`)})},`dec-${t}`))}),(0,_jsxRuntime.jsxs)(_reactNative.View,{style:z.footer,children:[(0,_jsxRuntime.jsx)(_reactNative.Pressable,{onPress:Ve,style:({pressed:e})=>[z.footerBtn,z.footerCancel,e&&z.footerBtnPressed,x],accessibilityRole:"button",accessibilityLabel:m,children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[z.footerBtnText,{color:B.colors.text.secondary}],children:m})}),(0,_jsxRuntime.jsx)(_reactNative.Pressable,{onPress:Ie,disabled:!G,style:({pressed:e})=>[z.footerBtn,z.footerConfirm,{backgroundColor:B.colors.primary,opacity:G?1:.5},e&&{backgroundColor:B.colors.primaryHover},x],accessibilityRole:"button",accessibilityLabel:u,accessibilityState:{disabled:!G},"aria-disabled":!G,children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[z.footerBtnText,{color:B.colors.onPrimary}],children:u})})]})]}),Ye=t?(P??(e=>e.toLocaleDateString()))(t):void 0,$e=!T;if("inline"===o)return I||$e?$e?(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[(0,_jsxRuntime.jsx)(_index3.PickerTrigger,{label:b,value:Ye,placeholder:f,helperText:j,error:N,required:R,disabled:D,size:w,variant:C,clearable:S,onClear:k,onPress:()=>V(!0),triggerStyle:A,testID:v}),I?Le:null]}):Le:null;const ze=(0,_jsxRuntime.jsx)(_reactNative.Modal,{visible:I,transparent:!0,statusBarTranslucent:!0,navigationBarTranslucent:!0,animationType:"none",onRequestClose:ke,children:(0,_jsxRuntime.jsx)(_ModalSafeArea.ModalSafeArea,{onInsets:$,children:(0,_jsxRuntime.jsxs)(AnimatedGestureRoot,{collapsable:!1,style:[z.backdrop,{backgroundColor:Me}],children:[(0,_jsxRuntime.jsx)(_reactNative.Pressable,{style:_reactNative.StyleSheet.absoluteFill,onPress:ke,accessibilityLabel:"Dismiss"}),(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:[z.sheetWrap,{paddingBottom:Math.max(Y.bottom,B.spacing.lg),opacity:Te,transform:[{translateY:_reactNative.Animated.add(Fe,U)}]}],onLayout:e=>{ee.current=e.nativeEvent.layout.height},accessibilityViewIsModal:!0,accessibilityRole:"none",children:Le}),(0,_jsxRuntime.jsx)(_ToastProvider.ToastHost,{})]})})});return $e?(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[(0,_jsxRuntime.jsx)(_index3.PickerTrigger,{label:b,value:Ye,placeholder:f,helperText:j,error:N,required:R,disabled:D,size:w,variant:C,clearable:S,onClear:k,onPress:()=>V(!0),triggerStyle:A,testID:v}),ze]}):ze};exports.DatePicker=DatePicker;const buildStyles=e=>{const t=e.shadows.lg;return _reactNative.StyleSheet.create({backdrop:{..._reactNative.StyleSheet.absoluteFill},sheetWrap:{position:"absolute",left:0,right:0,bottom:0,paddingHorizontal:e.spacing.md,paddingBottom:e.spacing.lg},card:{backgroundColor:e.colors.background.elevated,borderRadius:e.radius.xl,..._corners.smoothCorners,padding:e.spacing.lg,shadowColor:t.shadowColor,shadowOffset:t.shadowOffset,shadowOpacity:t.shadowOpacity,shadowRadius:t.shadowRadius,elevation:t.elevation},grabArea:{marginTop:-e.spacing.lg,paddingTop:e.spacing.sm},handle:{alignSelf:"center",width:36,height:4,borderRadius:e.radius.full,..._corners.smoothCorners,backgroundColor:e.colors.border.secondary,marginBottom:e.spacing.sm},titleRow:{marginBottom:e.spacing.sm},title:{fontSize:e.typography.fontSize.lg,fontWeight:e.typography.fontWeight.semibold,color:e.colors.text.primary},headerRow:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",marginBottom:e.spacing.md},navBtn:{width:e.components.datePicker?.navButtonSize??36,height:e.components.datePicker?.navButtonSize??36,borderRadius:e.radius.full,..._corners.smoothCorners,alignItems:"center",justifyContent:"center",backgroundColor:e.colors.background.secondary},navBtnPressed:{backgroundColor:e.colors.surface.pressed},navText:{fontSize:e.components.datePicker?.navTextFontSize??22,lineHeight:e.components.datePicker?.navTextLineHeight??24,color:e.colors.text.primary,fontWeight:e.typography.fontWeight.semibold},headerLabelWrap:{flex:1,alignItems:"center"},headerLabelInner:{flexDirection:"row",alignItems:"center",justifyContent:"center"},headerLabel:{fontSize:e.typography.fontSize.base,fontWeight:e.typography.fontWeight.semibold,color:e.colors.text.primary},headerCaret:{marginLeft:e.spacing.xs,alignItems:"center",justifyContent:"center"},weekdayRow:{flexDirection:"row",marginBottom:e.spacing.xs},weekdayCell:{flex:1,alignItems:"center",paddingVertical:e.spacing.xs},weekdayText:{fontSize:e.typography.fontSize.xs,fontWeight:e.typography.fontWeight.medium,color:e.colors.text.tertiary,letterSpacing:e.typography.letterSpacing.wide},grid:{},gridRow:{flexDirection:"row"},dayCell:{flex:1,aspectRatio:1,alignItems:"center",justifyContent:"center",padding:e.components.datePicker?.dayCellPadding??2},dayInner:{width:"100%",height:"100%",borderRadius:e.components.datePicker?.dayInnerBorderRadius??e.radius.full,..._corners.smoothCorners,alignItems:"center",justifyContent:"center"},dayText:{fontSize:e.typography.fontSize.sm,fontWeight:e.typography.fontWeight.medium},yearGrid:{},yearCell:{flex:1,aspectRatio:1.6,alignItems:"center",justifyContent:"center",padding:e.components.datePicker?.yearCellPadding??4},yearInner:{width:"100%",height:"100%",borderRadius:e.components.datePicker?.yearInnerBorderRadius??e.radius.lg,..._corners.smoothCorners,alignItems:"center",justifyContent:"center"},yearText:{fontSize:e.typography.fontSize.base,fontWeight:e.typography.fontWeight.semibold},decadeRangeText:{fontSize:e.typography.fontSize.xs,fontWeight:e.typography.fontWeight.medium,marginTop:e.components.datePicker?.decadeRangeMarginTop??2},footer:{flexDirection:"row",justifyContent:"flex-end",alignItems:"center",marginTop:e.spacing.lg,gap:e.spacing.sm},footerBtn:{paddingHorizontal:e.spacing.lg,paddingVertical:e.spacing.sm,borderRadius:e.radius.md,..._corners.smoothCorners,minHeight:e.components.datePicker?.footerButtonMinHeight??40,alignItems:"center",justifyContent:"center"},footerCancel:{backgroundColor:"transparent"},footerConfirm:{},footerBtnPressed:{opacity:.85},footerBtnText:{fontSize:e.typography.fontSize.sm,fontWeight:e.typography.fontWeight.semibold}})};var _default=exports.default=DatePicker;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.DatePicker=void 0;var _react=require("react"),_reactNative=require("react-native"),_reactNativeGestureHandler=require("react-native-gesture-handler"),_useDragToDismiss=require("../../hooks/useDragToDismiss.js"),_usePresenceMotion=require("../../hooks/usePresenceMotion.js"),_index=require("../../theme/index.js"),_scale=require("../../theme/scale.js"),_index2=require("../../utils/index.js"),_corners=require("../../utils/corners.js"),_defaultIcons=require("../AppIcon/defaultIcons.js"),_ModalSafeArea=require("../ModalSafeArea/ModalSafeArea.js"),_index3=require("../PickerTrigger/index.js"),_ToastProvider=require("../Toast/ToastProvider.js"),_jsxRuntime=require("react/jsx-runtime");const AnimatedGestureRoot=_reactNative.Animated.createAnimatedComponent(_reactNativeGestureHandler.GestureHandlerRootView),transparentOf=e=>{const t=e.match(/^rgba?\(([^)]+)\)$/);if(!t)return"transparent";const[a,r,i]=t[1].split(",").map(e=>e.trim());return`rgba(${a}, ${r}, ${i}, 0)`},GRID_SIZE=12,DECADE_SPAN=10,startOfDay=e=>new Date(e.getFullYear(),e.getMonth(),e.getDate()),isSameDay=(e,t)=>e.getFullYear()===t.getFullYear()&&e.getMonth()===t.getMonth()&&e.getDate()===t.getDate(),toIso=e=>`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,"0")}-${String(e.getDate()).padStart(2,"0")}`,addMonths=(e,t)=>new Date(e.getFullYear(),e.getMonth()+t,1),buildMonthMatrix=(e,t)=>{const a=e.getFullYear(),r=e.getMonth(),i=(new Date(a,r,1).getDay()-t+7)%7,n=[];for(let e=0;e<42;e+=1){const t=new Date(a,r,1-i+e);n.push({date:t,inMonth:t.getMonth()===r,iso:toIso(t)})}return n},weekdayLabels=(e,t)=>{const a=new Intl.DateTimeFormat(e,{weekday:"short"}),r=[];for(let e=0;e<7;e+=1){const i=new Date(1970,0,4+(t+e)%7);r.push(a.format(i))}return r},formatMonthYear=(e,t)=>new Intl.DateTimeFormat(t,{month:"long",year:"numeric"}).format(e),decadeStartFor=e=>10*Math.floor(e/10),buildYearCells=e=>{const t=e-4;return Array.from({length:12},(e,a)=>t+a)},buildDecadeCells=e=>{const t=decadeStartFor(e)-40;return Array.from({length:12},(e,a)=>t+10*a)},DatePicker=e=>{const{value:t,onChange:a,onClose:r,minDate:i,maxDate:n,disabledDates:s,mode:o="modal",locale:l="en-IN",weekStartsOn:c=0,title:d="Select Date",confirmLabel:u="Confirm",cancelLabel:m="Cancel",style:g,containerStyle:y,headerLabelStyle:_,navButtonStyle:p,footerButtonStyle:x,haptic:h,testID:v,label:b,placeholder:f,helperText:j,error:R,required:N,disabled:D,size:w,variant:C,clearable:S,onClear:P,formatValue:k,triggerStyle:A}=e,T=void 0!==e.visible,[M,V]=(0,_react.useState)(!1),I=T?e.visible:M,F=T?v:v?`${v}-calendar`:void 0,L=(0,_index.useTheme)(),Y=(0,_usePresenceMotion.usePresenceMotion)(),[$,z]=(0,_ModalSafeArea.useModalInsets)(),B=(0,_react.useMemo)(()=>buildStyles(L),[L]),[H,O]=(0,_react.useState)(()=>startOfDay(new Date));(0,_react.useEffect)(()=>{I&&O(startOfDay(new Date))},[I]);const W=t?startOfDay(t):H,[q,E]=(0,_react.useState)(W),[G,X]=(0,_react.useState)(t?startOfDay(t):null),[Z,J]=(0,_react.useState)("days"),K=(0,_react.useRef)((0,_index.createAnimatedValue)(0)).current,Q=(0,_react.useRef)((0,_index.createAnimatedValue)(0)).current,U=(0,_react.useRef)((0,_index.createAnimatedValue)(0)).current,ee=(0,_react.useRef)(0),te=(0,_react.useRef)((0,_index.createAnimatedValue)(0)).current,ae=(0,_react.useRef)((0,_index.createAnimatedValue)(1)).current,re=(0,_react.useRef)((0,_index.createAnimatedValue)(1)).current,ie=(0,_react.useRef)((0,_index.createAnimatedValue)(1)).current,ne=(0,_react.useRef)((0,_index.createAnimatedValue)(1)).current,se=(0,_react.useRef)((0,_index.createAnimatedValue)(1)).current;(0,_react.useEffect)(()=>{if(t){const e=startOfDay(t);X(e),E(e)}else X(null)},[t]);const oe=(0,_react.useMemo)(()=>{const e=new Set;return s?.forEach(t=>e.add(toIso(startOfDay(t)))),e},[s]),le=(0,_react.useMemo)(()=>i?startOfDay(i):null,[i]),ce=(0,_react.useMemo)(()=>n?startOfDay(n):null,[n]),de=(0,_react.useCallback)(e=>!!(le&&e.getTime()<le.getTime())||(!!(ce&&e.getTime()>ce.getTime())||!!oe.has(toIso(e))),[le,ce,oe]),ue=(0,_react.useMemo)(()=>buildMonthMatrix(q,c),[q,c]),me=(0,_react.useMemo)(()=>buildYearCells(q.getFullYear()),[q]),ge=(0,_react.useMemo)(()=>buildDecadeCells(q.getFullYear()),[q]),ye=(0,_react.useMemo)(()=>weekdayLabels(l,c),[l,c]),pe=(0,_react.useMemo)(()=>new Intl.DateTimeFormat(l,{weekday:"long",year:"numeric",month:"long",day:"numeric"}),[l]),xe=(0,_react.useMemo)(()=>{if("days"===Z)return formatMonthYear(q,l);if("years"===Z){return`${me[0]} - ${me[me.length-1]}`}return`${ge[0]} - ${ge[ge.length-1]+9}`},[q,ge,l,Z,me]),he=(0,_react.useCallback)(e=>!!(le&&e<le.getFullYear())||!!(ce&&e>ce.getFullYear()),[le,ce]),ve=(0,_react.useCallback)(e=>!!(le&&e+10-1<le.getFullYear())||!!(ce&&e>ce.getFullYear()),[le,ce]),be=(0,_react.useCallback)(e=>{!1!==h&&(0,_index2.triggerHaptic)("impactLight");const t=e>0?1:-1,a=L.components.datePicker?.monthSlideDistance??32,r=L.components.datePicker?.monthSlideOutDuration??L.motion.duration.fast??140,i=L.components.datePicker?.monthSlideInDuration??L.motion.duration.fast??160,[n]=Y.range(-t*a,0),[s]=Y.range(t*a,0),o=Y.reduced?Y.duration("fast"):r,c=Y.reduced?Y.duration("fast"):i;_reactNative.Animated.sequence([_reactNative.Animated.parallel([_reactNative.Animated.timing(te,{toValue:n,duration:r,easing:_reactNative.Easing.out(_reactNative.Easing.quad),useNativeDriver:!0}),_reactNative.Animated.timing(ae,{toValue:0,duration:o,useNativeDriver:!0})]),_reactNative.Animated.timing(te,{toValue:s,duration:0,useNativeDriver:!0}),_reactNative.Animated.parallel([_reactNative.Animated.timing(te,{toValue:0,duration:i,easing:_reactNative.Easing.out(_reactNative.Easing.cubic),useNativeDriver:!0}),_reactNative.Animated.timing(ae,{toValue:1,duration:c,useNativeDriver:!0})])]).start();const d=addMonths(q,e);E(d),_reactNative.AccessibilityInfo.announceForAccessibility(formatMonthYear(d,l))},[q,h,l,ae,te,Y,L.components.datePicker,L.motion.duration.fast]),fe=(0,_react.useCallback)(()=>{"days"!==Z?(!1!==h&&(0,_index2.triggerHaptic)("impactLight"),E("years"===Z?e=>new Date(e.getFullYear()-12,e.getMonth(),1):e=>new Date(e.getFullYear()-120,e.getMonth(),1))):be(-1)},[be,Z,h]),je=(0,_react.useCallback)(()=>{"days"!==Z?(!1!==h&&(0,_index2.triggerHaptic)("impactLight"),E("years"===Z?e=>new Date(e.getFullYear()+12,e.getMonth(),1):e=>new Date(e.getFullYear()+120,e.getMonth(),1))):be(1)},[be,Z,h]),Re=(0,_react.useCallback)(()=>{const[e]=Y.range(.9,1),t=Y.reduced?Y.duration("normal"):L.components.datePicker?.viewTransitionDuration??L.motion.duration.normal??200;(0,_index.setNativeValue)(ie,0),(0,_index.setNativeValue)(ne,e),_reactNative.Animated.parallel([_reactNative.Animated.timing(ie,{toValue:1,duration:t,easing:_reactNative.Easing.out(_reactNative.Easing.cubic),useNativeDriver:!0}),_reactNative.Animated.timing(ne,{toValue:1,duration:t,easing:_reactNative.Easing.out(_reactNative.Easing.cubic),useNativeDriver:!0})]).start()},[ie,ne,Y,L.components.datePicker,L.motion.duration.normal]),Ne=(0,_react.useCallback)(()=>{const e=(0,_index2.resolveHaptic)(h,"selection");if(e&&(0,_index2.triggerHaptic)(e),!Y.reduced){const e=L.components.datePicker?.headerPressDuration??80,t=L.components.datePicker?.headerReleaseDuration??100;_reactNative.Animated.sequence([_reactNative.Animated.timing(se,{toValue:.96,duration:e,useNativeDriver:!0}),_reactNative.Animated.timing(se,{toValue:1,duration:t,useNativeDriver:!0})]).start()}J(e=>"days"===e?"years":"years"===e?"decades":"years"),Re()},[Re,se,h,Y.reduced,L.components.datePicker]),De=(0,_react.useCallback)(e=>{const t=(0,_index2.resolveHaptic)(h,"selection");t&&(0,_index2.triggerHaptic)(t),E(t=>new Date(e,t.getMonth(),1)),J("days"),Re()},[Re,h]),we=(0,_react.useCallback)(e=>{const t=(0,_index2.resolveHaptic)(h,"selection");t&&(0,_index2.triggerHaptic)(t),E(t=>new Date(e+4,t.getMonth(),1)),J("years"),Re()},[Re,h]),Ce=(0,_react.useCallback)(e=>{if(de(e.date))return;const t=(0,_index2.resolveHaptic)(h,"selection");t&&(0,_index2.triggerHaptic)(t),X(e.date),e.inMonth||E(new Date(e.date.getFullYear(),e.date.getMonth(),1)),Y.reduced||((0,_index.setNativeValue)(re,.7),_reactNative.Animated.spring(re,{toValue:1,damping:L.motion.spring.bouncy.damping,stiffness:L.motion.spring.bouncy.stiffness,mass:L.motion.spring.bouncy.mass,useNativeDriver:!0}).start())},[de,Y.reduced,re,L.motion.spring.bouncy,h]),Se=(0,_react.useCallback)(()=>{T||V(!1),r?.()},[T,r]),Pe=(0,_react.useCallback)(()=>{"modal"===o?_reactNative.Animated.parallel([_reactNative.Animated.timing(K,{toValue:0,duration:Y.duration("normal"),easing:_reactNative.Easing.bezier(...L.motion.easing.accelerate),useNativeDriver:!1}),_reactNative.Animated.timing(Q,{toValue:0,duration:Y.duration("fast"),easing:_reactNative.Easing.bezier(...L.motion.easing.accelerate),useNativeDriver:!0})]).start(()=>{Se()}):Se()},[K,o,Se,Y,Q,L.motion.easing.accelerate]),{handleGesture:ke,opacity:Ae}=(0,_useDragToDismiss.useDragToDismiss)({drag:U,travel:()=>ee.current||320,onDismiss:Pe}),Te=(0,_react.useMemo)(()=>_reactNative.Animated.multiply(Q,Ae),[Q,Ae]),Me=(0,_react.useMemo)(()=>K.interpolate({inputRange:[0,1],outputRange:[transparentOf(L.colors.background.overlay),L.colors.background.overlay]}),[K,L.colors.background.overlay]);(0,_react.useEffect)(()=>{if("modal"===o&&I){K.setValue(0),(0,_index.setNativeValue)(Q,0),(0,_index.setNativeValue)(U,0),(0,_index.setNativeValue)(Ae,1);const e=Y.reduced?_reactNative.Animated.timing(Q,{toValue:1,duration:Y.duration("normal"),useNativeDriver:!0}):_reactNative.Animated.spring(Q,{toValue:1,damping:L.motion.spring.gentle.damping,stiffness:L.motion.spring.gentle.stiffness,mass:L.motion.spring.gentle.mass,useNativeDriver:!0}),t=_reactNative.Animated.parallel([_reactNative.Animated.timing(K,{toValue:1,duration:Y.duration("normal"),easing:_reactNative.Easing.out(_reactNative.Easing.cubic),useNativeDriver:!1}),e]);return t.start(),()=>t.stop()}},[I,o,K,Y,Q,U,Ae,L.motion]);const Ve=(0,_react.useCallback)(()=>{!1!==h&&(0,_index2.triggerHaptic)("selection"),Pe()},[Pe,h]),Ie=(0,_react.useCallback)(()=>{G&&(!1!==h&&(0,_index2.triggerHaptic)("notificationSuccess"),a?.(G),Pe())},[Pe,a,G,h]),Fe=Q.interpolate({inputRange:[0,1],outputRange:Y.range(320,0)}),Le=(0,_jsxRuntime.jsx)(_reactNative.View,{style:B.titleRow,children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:B.title,accessibilityRole:"header",children:d})}),Ye=(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[B.card,g,y],accessibilityRole:"modal"===o?void 0:"none",accessible:!1,testID:F,children:["modal"===o?(0,_jsxRuntime.jsx)(_reactNativeGestureHandler.GestureDetector,{gesture:ke,children:(0,_jsxRuntime.jsxs)(_reactNative.View,{style:B.grabArea,children:[(0,_jsxRuntime.jsx)(_reactNative.View,{style:B.handle}),Le]})}):Le,(0,_jsxRuntime.jsxs)(_reactNative.View,{style:B.headerRow,children:[(0,_jsxRuntime.jsx)(_reactNative.Pressable,{onPress:fe,style:({pressed:e})=>[B.navBtn,e&&B.navBtnPressed,p],accessibilityRole:"button",accessibilityLabel:"days"===Z?"Previous month":"years"===Z?"Previous years":"Previous decades",hitSlop:8,children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:B.navText,children:"‹"})}),(0,_jsxRuntime.jsx)(_reactNative.Pressable,{onPress:Ne,style:[B.headerLabelWrap,_],accessibilityRole:"button",accessibilityLabel:"days"===Z?`${xe}, switch to year selection`:"years"===Z?`${xe}, switch to decade selection`:`${xe}, switch to year selection`,hitSlop:8,children:(0,_jsxRuntime.jsxs)(_reactNative.Animated.View,{style:[B.headerLabelInner,{transform:[{scale:se}],opacity:"days"===Z?ae:1}],children:[(0,_jsxRuntime.jsx)(_reactNative.Animated.Text,{style:[B.headerLabel,{transform:[{translateX:"days"===Z?te:0}]}],accessibilityLiveRegion:"polite",children:xe}),(0,_jsxRuntime.jsx)(_reactNative.View,{style:B.headerCaret,children:(L.icons?.chevronDown??_defaultIcons.defaultIcons.chevronDown)({size:L.typography.fontSize.sm,color:L.colors.text.secondary})})]})}),(0,_jsxRuntime.jsx)(_reactNative.Pressable,{onPress:je,style:({pressed:e})=>[B.navBtn,e&&B.navBtnPressed,p],accessibilityRole:"button",accessibilityLabel:"days"===Z?"Next month":"years"===Z?"Next years":"Next decades",hitSlop:8,children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:B.navText,children:"›"})})]}),"days"===Z?(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[(0,_jsxRuntime.jsx)(_reactNative.View,{style:B.weekdayRow,children:ye.map((e,t)=>(0,_jsxRuntime.jsx)(_reactNative.View,{style:B.weekdayCell,children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:B.weekdayText,children:e})},`${e}-${t}`))}),(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:[B.grid,{opacity:ae,transform:[{translateX:te}]}],children:Array.from({length:6}).map((e,t)=>(0,_jsxRuntime.jsx)(_reactNative.View,{style:B.gridRow,children:ue.slice(7*t,7*t+7).map(e=>{const t=de(e.date),a=!!G&&isSameDay(e.date,G),r=isSameDay(e.date,H),i=a?L.colors.primary:"transparent",n=r&&!a?L.colors.primary:"transparent",s=a?L.colors.onPrimary:e.inMonth?t?L.colors.text.disabled:L.colors.text.primary:L.colors.text.tertiary,o=t?.3:e.inMonth?1:.4;return(0,_jsxRuntime.jsx)(_reactNative.Pressable,{disabled:t,onPress:()=>Ce(e),accessibilityRole:"button",accessibilityLabel:pe.format(e.date),accessibilityState:{selected:a,disabled:t},"aria-selected":a,"aria-disabled":t,style:B.dayCell,children:(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:[B.dayInner,{backgroundColor:i,borderColor:n,borderWidth:r&&!a?1.5:0,opacity:o},a?{transform:[{scale:re}]}:null],children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[B.dayText,{color:s}],children:e.date.getDate()})})},e.iso)})},`r-${t}`))})]}):"years"===Z?(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:[B.yearGrid,{opacity:ie,transform:[{scale:ne}]}],children:Array.from({length:3}).map((e,t)=>(0,_jsxRuntime.jsx)(_reactNative.View,{style:B.gridRow,children:me.slice(4*t,4*t+4).map(e=>{const t=he(e),a=!!G&&G.getFullYear()===e,r=H.getFullYear()===e,i=a?L.colors.primary:"transparent",n=r&&!a?L.colors.primary:"transparent",s=a?L.colors.onPrimary:t?L.colors.text.disabled:L.colors.text.primary,o=t?.3:1;return(0,_jsxRuntime.jsx)(_reactNative.Pressable,{disabled:t,onPress:()=>De(e),accessibilityRole:"button",accessibilityLabel:`Year ${e}`,accessibilityState:{selected:a,disabled:t},"aria-selected":a,"aria-disabled":t,style:B.yearCell,children:(0,_jsxRuntime.jsx)(_reactNative.View,{style:[B.yearInner,{backgroundColor:i,borderColor:n,borderWidth:r&&!a?1.5:0,opacity:o}],children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[B.yearText,{color:s}],children:e})})},`year-${e}`)})},`yr-${t}`))}):(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:[B.yearGrid,{opacity:ie,transform:[{scale:ne}]}],children:Array.from({length:3}).map((e,t)=>(0,_jsxRuntime.jsx)(_reactNative.View,{style:B.gridRow,children:ge.slice(4*t,4*t+4).map(e=>{const t=e+10-1,a=ve(e),r=!!G&&decadeStartFor(G.getFullYear())===e,i=decadeStartFor(H.getFullYear())===e,n=r?L.colors.primary:"transparent",s=i&&!r?L.colors.primary:"transparent",o=r?L.colors.onPrimary:a?L.colors.text.disabled:L.colors.text.primary,l=a?.3:1;return(0,_jsxRuntime.jsx)(_reactNative.Pressable,{disabled:a,onPress:()=>we(e),accessibilityRole:"button",accessibilityLabel:`Decade ${e} to ${t}`,accessibilityState:{selected:r,disabled:a},"aria-selected":r,"aria-disabled":a,style:B.yearCell,children:(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[B.yearInner,{backgroundColor:n,borderColor:s,borderWidth:i&&!r?1.5:0,opacity:l}],children:[(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[B.yearText,{color:o}],children:`${e}s`}),(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[B.decadeRangeText,{color:r?L.colors.onPrimary:L.colors.text.tertiary}],children:`${e}-${t}`})]})},`decade-${e}`)})},`dec-${t}`))}),(0,_jsxRuntime.jsxs)(_reactNative.View,{style:B.footer,children:[(0,_jsxRuntime.jsx)(_reactNative.Pressable,{onPress:Ve,style:({pressed:e})=>[B.footerBtn,B.footerCancel,e&&B.footerBtnPressed,x],accessibilityRole:"button",accessibilityLabel:m,children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[B.footerBtnText,{color:L.colors.text.secondary}],children:m})}),(0,_jsxRuntime.jsx)(_reactNative.Pressable,{onPress:Ie,disabled:!G,style:({pressed:e})=>[B.footerBtn,B.footerConfirm,{backgroundColor:L.colors.primary,opacity:G?1:.5},e&&{backgroundColor:L.colors.primaryHover},x],accessibilityRole:"button",accessibilityLabel:u,accessibilityState:{disabled:!G},"aria-disabled":!G,children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[B.footerBtnText,{color:L.colors.onPrimary}],children:u})})]})]}),$e=t?(k??(e=>e.toLocaleDateString()))(t):void 0,ze=!T;if("inline"===o)return I||ze?ze?(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[(0,_jsxRuntime.jsx)(_index3.PickerTrigger,{label:b,value:$e,placeholder:f,helperText:j,error:R,required:N,disabled:D,size:w,variant:C,clearable:S,onClear:P,onPress:()=>V(!0),triggerStyle:A,testID:v}),I?Ye:null]}):Ye:null;const Be=(0,_jsxRuntime.jsx)(_reactNative.Modal,{visible:I,transparent:!0,statusBarTranslucent:!0,navigationBarTranslucent:!0,animationType:"none",onRequestClose:Pe,children:(0,_jsxRuntime.jsx)(_ModalSafeArea.ModalSafeArea,{onInsets:z,children:(0,_jsxRuntime.jsxs)(AnimatedGestureRoot,{collapsable:!1,style:[B.backdrop,{backgroundColor:Me}],children:[(0,_jsxRuntime.jsx)(_reactNative.Pressable,{style:_reactNative.StyleSheet.absoluteFill,onPress:Pe,accessibilityLabel:"Dismiss"}),(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:[B.sheetWrap,{paddingBottom:Math.max($.bottom,L.spacing.lg),opacity:Te,transform:[{translateY:_reactNative.Animated.add(Fe,U)}]}],onLayout:e=>{ee.current=e.nativeEvent.layout.height},accessibilityViewIsModal:!0,accessibilityRole:"none",children:Ye}),(0,_jsxRuntime.jsx)(_ToastProvider.ToastHost,{})]})})});return ze?(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[(0,_jsxRuntime.jsx)(_index3.PickerTrigger,{label:b,value:$e,placeholder:f,helperText:j,error:R,required:N,disabled:D,size:w,variant:C,clearable:S,onClear:P,onPress:()=>V(!0),triggerStyle:A,testID:v}),Be]}):Be};exports.DatePicker=DatePicker;const buildStyles=e=>{const t=e.shadows.lg,a=e.components.datePicker;return _reactNative.StyleSheet.create({backdrop:{..._reactNative.StyleSheet.absoluteFill},sheetWrap:{position:"absolute",left:0,right:0,bottom:0,paddingHorizontal:e.spacing.md,paddingBottom:e.spacing.lg},card:{backgroundColor:e.colors.background.elevated,borderRadius:e.radius.xl,..._corners.smoothCorners,padding:e.spacing.lg,shadowColor:t.shadowColor,shadowOffset:t.shadowOffset,shadowOpacity:t.shadowOpacity,shadowRadius:t.shadowRadius,elevation:t.elevation},grabArea:{marginTop:-e.spacing.lg,paddingTop:e.spacing.sm},handle:{alignSelf:"center",width:36,height:4,borderRadius:e.radius.pill,..._corners.smoothCorners,backgroundColor:e.colors.border.secondary,marginBottom:e.spacing.sm},titleRow:{marginBottom:e.spacing.sm},title:{fontSize:e.typography.fontSize.lg,fontWeight:e.typography.fontWeight.semibold,color:e.colors.text.primary},headerRow:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",marginBottom:e.spacing.md},navBtn:{width:e.components.datePicker?.navButtonSize??36,height:e.components.datePicker?.navButtonSize??36,borderRadius:e.radius.pill,..._corners.smoothCorners,alignItems:"center",justifyContent:"center",backgroundColor:e.colors.background.secondary},navBtnPressed:{backgroundColor:e.colors.surface.pressed},navText:{fontSize:(0,_scale.fontSizeOf)(e,a?.navText??"2xl","components.datePicker.navText"),lineHeight:a?.navTextLineHeight??26,color:e.colors.text.primary,fontWeight:e.typography.fontWeight.semibold},headerLabelWrap:{flex:1,alignItems:"center"},headerLabelInner:{flexDirection:"row",alignItems:"center",justifyContent:"center"},headerLabel:{fontSize:e.typography.fontSize.base,fontWeight:e.typography.fontWeight.semibold,color:e.colors.text.primary},headerCaret:{marginLeft:e.spacing.xs,alignItems:"center",justifyContent:"center"},weekdayRow:{flexDirection:"row",marginBottom:e.spacing.xs},weekdayCell:{flex:1,alignItems:"center",paddingVertical:e.spacing.xs},weekdayText:{fontSize:e.typography.fontSize.xs,fontWeight:e.typography.fontWeight.medium,color:e.colors.text.tertiary,letterSpacing:e.typography.letterSpacing.wide},grid:{},gridRow:{flexDirection:"row"},dayCell:{flex:1,aspectRatio:1,alignItems:"center",justifyContent:"center",padding:(0,_scale.spaceOf)(e,a?.dayCellPadding??"xxs","components.datePicker.dayCellPadding")},dayInner:{width:"100%",height:"100%",borderRadius:(0,_scale.radiusOf)(e,a?.dayInnerRadius??"pill","components.datePicker.dayInnerRadius"),..._corners.smoothCorners,alignItems:"center",justifyContent:"center"},dayText:{fontSize:e.typography.fontSize.sm,fontWeight:e.typography.fontWeight.medium},yearGrid:{},yearCell:{flex:1,aspectRatio:1.6,alignItems:"center",justifyContent:"center",padding:(0,_scale.spaceOf)(e,a?.yearCellPadding??"xs","components.datePicker.yearCellPadding")},yearInner:{width:"100%",height:"100%",borderRadius:(0,_scale.radiusOf)(e,a?.yearInnerRadius??"lg","components.datePicker.yearInnerRadius"),..._corners.smoothCorners,alignItems:"center",justifyContent:"center"},yearText:{fontSize:e.typography.fontSize.base,fontWeight:e.typography.fontWeight.semibold},decadeRangeText:{fontSize:e.typography.fontSize.xs,fontWeight:e.typography.fontWeight.medium,marginTop:(0,_scale.spaceOf)(e,a?.decadeRangeMarginTop??"xxs","components.datePicker.decadeRangeMarginTop")},footer:{flexDirection:"row",justifyContent:"flex-end",alignItems:"center",marginTop:e.spacing.lg,gap:e.spacing.sm},footerBtn:{paddingHorizontal:e.spacing.lg,paddingVertical:e.spacing.sm,borderRadius:e.radius.md,..._corners.smoothCorners,minHeight:e.components.datePicker?.footerButtonMinHeight??40,alignItems:"center",justifyContent:"center"},footerCancel:{backgroundColor:"transparent"},footerConfirm:{},footerBtnPressed:{opacity:.85},footerBtnText:{fontSize:e.typography.fontSize.sm,fontWeight:e.typography.fontWeight.semibold}})};var _default=exports.default=DatePicker;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.DateRangePicker=void 0;var _react=require("react"),_reactNative=require("react-native"),_reactNativeGestureHandler=require("react-native-gesture-handler"),_useDragToDismiss=require("../../hooks/useDragToDismiss.js"),_usePresenceMotion=require("../../hooks/usePresenceMotion.js"),_index=require("../../theme/index.js"),_index2=require("../../utils/index.js"),_corners=require("../../utils/corners.js"),_index3=require("../Calendar/index.js"),_calendarDates=require("../Calendar/calendarDates.js"),_ModalSafeArea=require("../ModalSafeArea/ModalSafeArea.js"),_index4=require("../PickerTrigger/index.js"),_ToastProvider=require("../Toast/ToastProvider.js"),_jsxRuntime=require("react/jsx-runtime");const AnimatedGestureRoot=_reactNative.Animated.createAnimatedComponent(_reactNativeGestureHandler.GestureHandlerRootView),transparentOf=e=>{const t=e.match(/^rgba?\(([^)]+)\)$/);if(!t)return"transparent";const[a,r,i]=t[1].split(",").map(e=>e.trim());return`rgba(${a}, ${r}, ${i}, 0)`},formatRangePart=(e,t)=>new Intl.DateTimeFormat(t,{weekday:"short",day:"numeric",month:"short"}).format(e),DateRangePicker=exports.DateRangePicker=(0,_react.forwardRef)((e,t)=>{const{visible:a,value:r,onChange:i,onClose:s,label:n,placeholder:o,helperText:l,error:c,required:d,disabled:u,size:g,variant:m,clearable:_,onClear:p,formatValue:x,triggerStyle:f,minDate:v,maxDate:h,disabledDates:y,markedDates:b,strikeMarkedInRange:R,locale:j="en-IN",weekStartsOn:D=0,title:N="Select Date Range",confirmLabel:S="Confirm",cancelLabel:k="Cancel",maxRange:C,haptic:P,style:T,containerStyle:w,headerLabelStyle:M,navButtonStyle:A,footerButtonStyle:V,testID:B}=e,q=void 0!==a,[O,H]=(0,_react.useState)(!1),I=q?a:O,z=q?B:B?`${B}-calendar`:void 0,L=(0,_index.useTheme)(),$=(0,_usePresenceMotion.usePresenceMotion)(),[G,E]=(0,_ModalSafeArea.useModalInsets)(),W=(0,_react.useMemo)(()=>buildStyles(L),[L]),[F,Y]=(0,_react.useState)(()=>(0,_calendarDates.startOfMonth)(r.start??new Date)),[J,K]=(0,_react.useState)(r.start?(0,_calendarDates.startOfDay)(r.start):null),[Q,U]=(0,_react.useState)(r.end?(0,_calendarDates.startOfDay)(r.end):null),X=(0,_react.useRef)((0,_index.createAnimatedValue)(0)).current,Z=(0,_react.useRef)((0,_index.createAnimatedValue)(0)).current,ee=(0,_react.useRef)((0,_index.createAnimatedValue)(0)).current,te=(0,_react.useRef)(0);(0,_react.useEffect)(()=>{if(r.start){const e=(0,_calendarDates.startOfDay)(r.start);K(e),Y((0,_calendarDates.startOfMonth)(e))}else K(null);r.end?U((0,_calendarDates.startOfDay)(r.end)):U(null)},[r.start,r.end]);const ae=(0,_react.useCallback)(e=>{if(e.end&&C&&(0,_calendarDates.daysBetween)(e.start,e.end)+1>C)return!1!==P&&(0,_index2.triggerHaptic)("notificationWarning"),K(e.end),void U(null);K(e.start),U(e.end??null)},[C,P]),re=(0,_react.useCallback)(()=>{q?s?.():H(!1)},[q,s]),ie=(0,_react.useCallback)(()=>{_reactNative.Animated.parallel([_reactNative.Animated.timing(X,{toValue:0,duration:$.duration("normal"),easing:_reactNative.Easing.bezier(...L.motion.easing.accelerate),useNativeDriver:!1}),_reactNative.Animated.timing(Z,{toValue:0,duration:$.duration("fast"),easing:_reactNative.Easing.bezier(...L.motion.easing.accelerate),useNativeDriver:!0})]).start(()=>{re()})},[X,re,$,Z,L.motion.easing.accelerate]),{handleGesture:se,opacity:ne}=(0,_useDragToDismiss.useDragToDismiss)({drag:ee,travel:()=>te.current||320,onDismiss:ie}),oe=(0,_react.useMemo)(()=>_reactNative.Animated.multiply(Z,ne),[Z,ne]),le=(0,_react.useMemo)(()=>X.interpolate({inputRange:[0,1],outputRange:[transparentOf(L.colors.background.overlay),L.colors.background.overlay]}),[X,L.colors.background.overlay]);(0,_react.useEffect)(()=>{let e;if(I){X.setValue(0),(0,_index.setNativeValue)(Z,0),(0,_index.setNativeValue)(ee,0),(0,_index.setNativeValue)(ne,1);const t=$.reduced?_reactNative.Animated.timing(Z,{toValue:1,duration:$.duration("normal"),useNativeDriver:!0}):_reactNative.Animated.spring(Z,{toValue:1,damping:L.motion.spring.gentle.damping,stiffness:L.motion.spring.gentle.stiffness,mass:L.motion.spring.gentle.mass,useNativeDriver:!0});e=_reactNative.Animated.parallel([_reactNative.Animated.timing(X,{toValue:1,duration:$.duration("normal"),easing:_reactNative.Easing.out(_reactNative.Easing.cubic),useNativeDriver:!1}),t]),e.start()}return()=>e?.stop()},[I,X,$,Z,ee,ne,L.motion]);const ce=(0,_react.useCallback)(()=>{!1!==P&&(0,_index2.triggerHaptic)("selection"),ie()},[ie,P]),de=(0,_react.useCallback)(()=>{J&&Q&&(!1!==P&&(0,_index2.triggerHaptic)("notificationSuccess"),i?.({start:J,end:Q}),ie())},[ie,i,J,Q,P]),ue=Z.interpolate({inputRange:[0,1],outputRange:$.range(320,0)}),ge=(0,_react.useMemo)(()=>J&&Q?`${formatRangePart(J,j)} — ${formatRangePart(Q,j)}`:J?`${formatRangePart(J,j)} — …`:"—",[J,Q,j]),me=!J||!Q,pe=(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[W.card,T,w],ref:t,accessible:!1,testID:z,children:[(0,_jsxRuntime.jsx)(_reactNativeGestureHandler.GestureDetector,{gesture:se,children:(0,_jsxRuntime.jsxs)(_reactNative.View,{style:W.grabArea,children:[(0,_jsxRuntime.jsx)(_reactNative.View,{style:W.handle}),(0,_jsxRuntime.jsxs)(_reactNative.View,{style:W.titleRow,children:[(0,_jsxRuntime.jsx)(_reactNative.Text,{style:W.title,accessibilityRole:"header",children:N}),(0,_jsxRuntime.jsx)(_reactNative.Text,{style:W.subtitle,accessibilityLiveRegion:"polite",children:ge})]})]})}),(0,_jsxRuntime.jsx)(_index3.Calendar,{mode:"range",value:J?{start:J,end:Q??void 0}:null,onChange:ae,month:F,onMonthChange:Y,minDate:v,maxDate:h,disabledDates:y,markedDates:b,strikeMarkedInRange:R,weekStartsOn:D,locale:j,haptic:P,headerLabelStyle:M,navButtonStyle:A,testID:z?`${z}-grid`:void 0}),(0,_jsxRuntime.jsxs)(_reactNative.View,{style:W.footer,children:[(0,_jsxRuntime.jsx)(_reactNative.Pressable,{onPress:ce,style:({pressed:e})=>[W.footerBtn,W.footerCancel,e&&W.footerBtnPressed,V],accessibilityRole:"button",accessibilityLabel:k,children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[W.footerBtnText,{color:L.colors.text.secondary}],children:k})}),(0,_jsxRuntime.jsx)(_reactNative.Pressable,{onPress:de,disabled:me,style:({pressed:e})=>[W.footerBtn,W.footerConfirm,{backgroundColor:L.colors.primary,opacity:me?.5:1},e&&{backgroundColor:L.colors.primaryHover},V],accessibilityRole:"button",accessibilityLabel:S,accessibilityState:{disabled:me},"aria-disabled":me,children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[W.footerBtnText,{color:L.colors.onPrimary}],children:S})})]})]}),xe=(0,_react.useMemo)(()=>{if(!r.start||!r.end)return"";const e={start:r.start,end:r.end};return x?x(e):`${e.start.toLocaleDateString()} – ${e.end.toLocaleDateString()}`},[r.start,r.end,x]);return(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[q?null:(0,_jsxRuntime.jsx)(_index4.PickerTrigger,{label:n,placeholder:o,helperText:l,error:c,required:d,disabled:u,size:g,variant:m,clearable:_,onClear:p,value:xe,onPress:()=>H(!0),triggerStyle:f,testID:B}),(0,_jsxRuntime.jsx)(_reactNative.Modal,{visible:I,transparent:!0,statusBarTranslucent:!0,navigationBarTranslucent:!0,animationType:"none",onRequestClose:ie,children:(0,_jsxRuntime.jsx)(_ModalSafeArea.ModalSafeArea,{onInsets:E,children:(0,_jsxRuntime.jsxs)(AnimatedGestureRoot,{collapsable:!1,style:[W.backdrop,{backgroundColor:le}],children:[(0,_jsxRuntime.jsx)(_reactNative.Pressable,{style:_reactNative.StyleSheet.absoluteFill,onPress:ie,accessibilityLabel:"Dismiss"}),(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:[W.sheetWrap,{paddingBottom:Math.max(G.bottom,L.spacing.lg),opacity:oe,transform:[{translateY:_reactNative.Animated.add(ue,ee)}]}],onLayout:e=>{te.current=e.nativeEvent.layout.height},accessibilityViewIsModal:!0,accessibilityRole:"none",children:pe}),(0,_jsxRuntime.jsx)(_ToastProvider.ToastHost,{})]})})})]})});DateRangePicker.displayName="DateRangePicker";const buildStyles=e=>{const t=e.shadows.lg;return _reactNative.StyleSheet.create({backdrop:{..._reactNative.StyleSheet.absoluteFill},sheetWrap:{position:"absolute",left:0,right:0,bottom:0,paddingHorizontal:e.spacing.md,paddingBottom:e.spacing.lg},card:{backgroundColor:e.colors.background.elevated,borderRadius:e.radius.xl,..._corners.smoothCorners,padding:e.spacing.lg,shadowColor:t.shadowColor,shadowOffset:t.shadowOffset,shadowOpacity:t.shadowOpacity,shadowRadius:t.shadowRadius,elevation:t.elevation},grabArea:{marginTop:-e.spacing.lg,paddingTop:e.spacing.sm},handle:{alignSelf:"center",width:36,height:4,borderRadius:e.radius.full,..._corners.smoothCorners,backgroundColor:e.colors.border.secondary,marginBottom:e.spacing.sm},titleRow:{marginBottom:e.spacing.sm},title:{fontSize:e.typography.fontSize.lg,fontWeight:e.typography.fontWeight.semibold,color:e.colors.text.primary},subtitle:{marginTop:e.spacing.xxs,fontSize:e.typography.fontSize.sm,color:e.colors.text.secondary},footer:{flexDirection:"row",justifyContent:"flex-end",alignItems:"center",marginTop:e.spacing.lg,gap:e.spacing.sm},footerBtn:{paddingHorizontal:e.spacing.lg,paddingVertical:e.spacing.sm,borderRadius:e.radius.md,..._corners.smoothCorners,minHeight:e.components.dateRangePicker?.footerButtonMinHeight??40,alignItems:"center",justifyContent:"center"},footerCancel:{backgroundColor:"transparent"},footerConfirm:{},footerBtnPressed:{opacity:.85},footerBtnText:{fontSize:e.typography.fontSize.sm,fontWeight:e.typography.fontWeight.semibold}})};var _default=exports.default=DateRangePicker;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.DateRangePicker=void 0;var _react=require("react"),_reactNative=require("react-native"),_reactNativeGestureHandler=require("react-native-gesture-handler"),_useDragToDismiss=require("../../hooks/useDragToDismiss.js"),_usePresenceMotion=require("../../hooks/usePresenceMotion.js"),_index=require("../../theme/index.js"),_index2=require("../../utils/index.js"),_corners=require("../../utils/corners.js"),_index3=require("../Calendar/index.js"),_calendarDates=require("../Calendar/calendarDates.js"),_ModalSafeArea=require("../ModalSafeArea/ModalSafeArea.js"),_index4=require("../PickerTrigger/index.js"),_ToastProvider=require("../Toast/ToastProvider.js"),_jsxRuntime=require("react/jsx-runtime");const AnimatedGestureRoot=_reactNative.Animated.createAnimatedComponent(_reactNativeGestureHandler.GestureHandlerRootView),transparentOf=e=>{const t=e.match(/^rgba?\(([^)]+)\)$/);if(!t)return"transparent";const[a,r,i]=t[1].split(",").map(e=>e.trim());return`rgba(${a}, ${r}, ${i}, 0)`},formatRangePart=(e,t)=>new Intl.DateTimeFormat(t,{weekday:"short",day:"numeric",month:"short"}).format(e),DateRangePicker=exports.DateRangePicker=(0,_react.forwardRef)((e,t)=>{const{visible:a,value:r,onChange:i,onClose:s,label:n,placeholder:o,helperText:l,error:c,required:d,disabled:u,size:g,variant:m,clearable:_,onClear:p,formatValue:x,triggerStyle:f,minDate:v,maxDate:h,disabledDates:y,markedDates:b,strikeMarkedInRange:R,locale:j="en-IN",weekStartsOn:D=0,title:N="Select Date Range",confirmLabel:S="Confirm",cancelLabel:k="Cancel",maxRange:C,haptic:P,style:T,containerStyle:w,headerLabelStyle:M,navButtonStyle:A,footerButtonStyle:V,testID:B}=e,q=void 0!==a,[O,H]=(0,_react.useState)(!1),I=q?a:O,z=q?B:B?`${B}-calendar`:void 0,L=(0,_index.useTheme)(),$=(0,_usePresenceMotion.usePresenceMotion)(),[G,E]=(0,_ModalSafeArea.useModalInsets)(),W=(0,_react.useMemo)(()=>buildStyles(L),[L]),[F,Y]=(0,_react.useState)(()=>(0,_calendarDates.startOfMonth)(r.start??new Date)),[J,K]=(0,_react.useState)(r.start?(0,_calendarDates.startOfDay)(r.start):null),[Q,U]=(0,_react.useState)(r.end?(0,_calendarDates.startOfDay)(r.end):null),X=(0,_react.useRef)((0,_index.createAnimatedValue)(0)).current,Z=(0,_react.useRef)((0,_index.createAnimatedValue)(0)).current,ee=(0,_react.useRef)((0,_index.createAnimatedValue)(0)).current,te=(0,_react.useRef)(0);(0,_react.useEffect)(()=>{if(r.start){const e=(0,_calendarDates.startOfDay)(r.start);K(e),Y((0,_calendarDates.startOfMonth)(e))}else K(null);r.end?U((0,_calendarDates.startOfDay)(r.end)):U(null)},[r.start,r.end]);const ae=(0,_react.useCallback)(e=>{if(e.end&&C&&(0,_calendarDates.daysBetween)(e.start,e.end)+1>C)return!1!==P&&(0,_index2.triggerHaptic)("notificationWarning"),K(e.end),void U(null);K(e.start),U(e.end??null)},[C,P]),re=(0,_react.useCallback)(()=>{q?s?.():H(!1)},[q,s]),ie=(0,_react.useCallback)(()=>{_reactNative.Animated.parallel([_reactNative.Animated.timing(X,{toValue:0,duration:$.duration("normal"),easing:_reactNative.Easing.bezier(...L.motion.easing.accelerate),useNativeDriver:!1}),_reactNative.Animated.timing(Z,{toValue:0,duration:$.duration("fast"),easing:_reactNative.Easing.bezier(...L.motion.easing.accelerate),useNativeDriver:!0})]).start(()=>{re()})},[X,re,$,Z,L.motion.easing.accelerate]),{handleGesture:se,opacity:ne}=(0,_useDragToDismiss.useDragToDismiss)({drag:ee,travel:()=>te.current||320,onDismiss:ie}),oe=(0,_react.useMemo)(()=>_reactNative.Animated.multiply(Z,ne),[Z,ne]),le=(0,_react.useMemo)(()=>X.interpolate({inputRange:[0,1],outputRange:[transparentOf(L.colors.background.overlay),L.colors.background.overlay]}),[X,L.colors.background.overlay]);(0,_react.useEffect)(()=>{let e;if(I){X.setValue(0),(0,_index.setNativeValue)(Z,0),(0,_index.setNativeValue)(ee,0),(0,_index.setNativeValue)(ne,1);const t=$.reduced?_reactNative.Animated.timing(Z,{toValue:1,duration:$.duration("normal"),useNativeDriver:!0}):_reactNative.Animated.spring(Z,{toValue:1,damping:L.motion.spring.gentle.damping,stiffness:L.motion.spring.gentle.stiffness,mass:L.motion.spring.gentle.mass,useNativeDriver:!0});e=_reactNative.Animated.parallel([_reactNative.Animated.timing(X,{toValue:1,duration:$.duration("normal"),easing:_reactNative.Easing.out(_reactNative.Easing.cubic),useNativeDriver:!1}),t]),e.start()}return()=>e?.stop()},[I,X,$,Z,ee,ne,L.motion]);const ce=(0,_react.useCallback)(()=>{!1!==P&&(0,_index2.triggerHaptic)("selection"),ie()},[ie,P]),de=(0,_react.useCallback)(()=>{J&&Q&&(!1!==P&&(0,_index2.triggerHaptic)("notificationSuccess"),i?.({start:J,end:Q}),ie())},[ie,i,J,Q,P]),ue=Z.interpolate({inputRange:[0,1],outputRange:$.range(320,0)}),ge=(0,_react.useMemo)(()=>J&&Q?`${formatRangePart(J,j)} — ${formatRangePart(Q,j)}`:J?`${formatRangePart(J,j)} — …`:"—",[J,Q,j]),me=!J||!Q,pe=(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[W.card,T,w],ref:t,accessible:!1,testID:z,children:[(0,_jsxRuntime.jsx)(_reactNativeGestureHandler.GestureDetector,{gesture:se,children:(0,_jsxRuntime.jsxs)(_reactNative.View,{style:W.grabArea,children:[(0,_jsxRuntime.jsx)(_reactNative.View,{style:W.handle}),(0,_jsxRuntime.jsxs)(_reactNative.View,{style:W.titleRow,children:[(0,_jsxRuntime.jsx)(_reactNative.Text,{style:W.title,accessibilityRole:"header",children:N}),(0,_jsxRuntime.jsx)(_reactNative.Text,{style:W.subtitle,accessibilityLiveRegion:"polite",children:ge})]})]})}),(0,_jsxRuntime.jsx)(_index3.Calendar,{mode:"range",value:J?{start:J,end:Q??void 0}:null,onChange:ae,month:F,onMonthChange:Y,minDate:v,maxDate:h,disabledDates:y,markedDates:b,strikeMarkedInRange:R,weekStartsOn:D,locale:j,haptic:P,headerLabelStyle:M,navButtonStyle:A,testID:z?`${z}-grid`:void 0}),(0,_jsxRuntime.jsxs)(_reactNative.View,{style:W.footer,children:[(0,_jsxRuntime.jsx)(_reactNative.Pressable,{onPress:ce,style:({pressed:e})=>[W.footerBtn,W.footerCancel,e&&W.footerBtnPressed,V],accessibilityRole:"button",accessibilityLabel:k,children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[W.footerBtnText,{color:L.colors.text.secondary}],children:k})}),(0,_jsxRuntime.jsx)(_reactNative.Pressable,{onPress:de,disabled:me,style:({pressed:e})=>[W.footerBtn,W.footerConfirm,{backgroundColor:L.colors.primary,opacity:me?.5:1},e&&{backgroundColor:L.colors.primaryHover},V],accessibilityRole:"button",accessibilityLabel:S,accessibilityState:{disabled:me},"aria-disabled":me,children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[W.footerBtnText,{color:L.colors.onPrimary}],children:S})})]})]}),xe=(0,_react.useMemo)(()=>{if(!r.start||!r.end)return"";const e={start:r.start,end:r.end};return x?x(e):`${e.start.toLocaleDateString()} – ${e.end.toLocaleDateString()}`},[r.start,r.end,x]);return(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[q?null:(0,_jsxRuntime.jsx)(_index4.PickerTrigger,{label:n,placeholder:o,helperText:l,error:c,required:d,disabled:u,size:g,variant:m,clearable:_,onClear:p,value:xe,onPress:()=>H(!0),triggerStyle:f,testID:B}),(0,_jsxRuntime.jsx)(_reactNative.Modal,{visible:I,transparent:!0,statusBarTranslucent:!0,navigationBarTranslucent:!0,animationType:"none",onRequestClose:ie,children:(0,_jsxRuntime.jsx)(_ModalSafeArea.ModalSafeArea,{onInsets:E,children:(0,_jsxRuntime.jsxs)(AnimatedGestureRoot,{collapsable:!1,style:[W.backdrop,{backgroundColor:le}],children:[(0,_jsxRuntime.jsx)(_reactNative.Pressable,{style:_reactNative.StyleSheet.absoluteFill,onPress:ie,accessibilityLabel:"Dismiss"}),(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:[W.sheetWrap,{paddingBottom:Math.max(G.bottom,L.spacing.lg),opacity:oe,transform:[{translateY:_reactNative.Animated.add(ue,ee)}]}],onLayout:e=>{te.current=e.nativeEvent.layout.height},accessibilityViewIsModal:!0,accessibilityRole:"none",children:pe}),(0,_jsxRuntime.jsx)(_ToastProvider.ToastHost,{})]})})})]})});DateRangePicker.displayName="DateRangePicker";const buildStyles=e=>{const t=e.shadows.lg;return _reactNative.StyleSheet.create({backdrop:{..._reactNative.StyleSheet.absoluteFill},sheetWrap:{position:"absolute",left:0,right:0,bottom:0,paddingHorizontal:e.spacing.md,paddingBottom:e.spacing.lg},card:{backgroundColor:e.colors.background.elevated,borderRadius:e.radius.xl,..._corners.smoothCorners,padding:e.spacing.lg,shadowColor:t.shadowColor,shadowOffset:t.shadowOffset,shadowOpacity:t.shadowOpacity,shadowRadius:t.shadowRadius,elevation:t.elevation},grabArea:{marginTop:-e.spacing.lg,paddingTop:e.spacing.sm},handle:{alignSelf:"center",width:36,height:4,borderRadius:e.radius.pill,..._corners.smoothCorners,backgroundColor:e.colors.border.secondary,marginBottom:e.spacing.sm},titleRow:{marginBottom:e.spacing.sm},title:{fontSize:e.typography.fontSize.lg,fontWeight:e.typography.fontWeight.semibold,color:e.colors.text.primary},subtitle:{marginTop:e.spacing.xxs,fontSize:e.typography.fontSize.sm,color:e.colors.text.secondary},footer:{flexDirection:"row",justifyContent:"flex-end",alignItems:"center",marginTop:e.spacing.lg,gap:e.spacing.sm},footerBtn:{paddingHorizontal:e.spacing.lg,paddingVertical:e.spacing.sm,borderRadius:e.radius.md,..._corners.smoothCorners,minHeight:e.components.dateRangePicker?.footerButtonMinHeight??40,alignItems:"center",justifyContent:"center"},footerCancel:{backgroundColor:"transparent"},footerConfirm:{},footerBtnPressed:{opacity:.85},footerBtnText:{fontSize:e.typography.fontSize.sm,fontWeight:e.typography.fontWeight.semibold}})};var _default=exports.default=DateRangePicker;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Descriptions=void 0;var _react=require("react"),_reactNative=require("react-native"),_index=require("../../theme/index.js"),_Notation=require("../Notation/Notation.js"),_Text=require("../Text/Text.js"),_jsxRuntime=require("react/jsx-runtime");const EMPTY_VALUE="-",rowKey=(e,t)=>e.key??("string"==typeof e.label?`${e.label}-${t}`:`row-${t}`),isEmptyValue=e=>null==e||""===e||Array.isArray(e)&&!e.length,isInlineText=e=>"string"==typeof e||"number"==typeof e||(0,_react.isValidElement)(e)&&e.type===_Notation.Notation||Array.isArray(e)&&e.length>0&&e.every(isInlineText),Descriptions=({items:e,columns:t=1,size:r="md",bordered:i=!1,title:o,variant:l="list",style:a,testID:s})=>{const n=(0,_index.useTheme)(),c=(0,_react.useMemo)(()=>buildStyles(n),[n]),x="sm"===r?n.typography.fontSize.xs:n.typography.fontSize.sm,u="sm"===r?n.typography.fontSize.sm:n.typography.fontSize.base,d="sm"===r?n.spacing.xs:n.spacing.sm,m="summary"===l,y=(0,_react.useMemo)(()=>({fontSize:x,color:n.colors.text.tertiary}),[x,n.colors.text.tertiary]),_=(0,_react.useMemo)(()=>({fontSize:u,color:n.colors.text.secondary}),[u,n.colors.text.secondary]);return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[m?null:{gap:d},a],testID:s,children:[o?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[c.title,{fontSize:n.typography.fontSize.lg,color:n.colors.text.primary}],children:o}):null,e.map((e,r)=>{const o=isEmptyValue(e.value),l=2===t&&!e.full,a=o?n.colors.text.tertiary:(0,_Text.resolveColor)(n,e.tone??"primary"),s=(0,_index.fontFor)(n,e.strong?"semibold":"normal"),p=o||isInlineText(e.value),v=o?"-":"string"==typeof e.value?e.value:(0,_jsxRuntime.jsx)(_Notation.NotationInkContext.Provider,{value:{fontSize:u,color:a},children:e.value});return m?(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[c.summaryRow,{paddingVertical:d,borderBottomColor:n.colors.border.secondary}],children:[(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[c.summaryLabel,{fontSize:u,color:n.colors.text.secondary}],children:(0,_jsxRuntime.jsx)(_Notation.NotationInkContext.Provider,{value:_,children:e.label})}),p?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[c.summaryValue,{fontSize:u,color:a},s],children:v}):(0,_jsxRuntime.jsx)(_reactNative.View,{style:c.summaryValueView,children:e.value})]},rowKey(e,r)):(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[l?c.rowSide:c.rowStack,{paddingVertical:d},i&&r>0?c.bordered:null,i&&r>0?{borderTopColor:n.colors.border.secondary}:null],children:["string"==typeof e.label?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[c.label,{fontSize:x,color:n.colors.text.tertiary},l?c.labelSide:null],children:e.label}):(0,_jsxRuntime.jsx)(_reactNative.View,{style:l?c.labelSide:null,children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[c.label,{fontSize:x,color:n.colors.text.tertiary}],children:(0,_jsxRuntime.jsx)(_Notation.NotationInkContext.Provider,{value:y,children:e.label})})}),p?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[c.value,{fontSize:u,color:a},e.strong?s:null,l?c.valueSide:null],children:v}):(0,_jsxRuntime.jsx)(_reactNative.View,{style:l?c.valueSide:null,children:e.value})]},rowKey(e,r))})]})};exports.Descriptions=Descriptions;const buildStyles=e=>_reactNative.StyleSheet.create({title:{...(0,_index.fontFor)(e,"semibold")},rowStack:{gap:2},rowSide:{flexDirection:"row",alignItems:"flex-start",gap:e.spacing.md},bordered:{borderTopWidth:_reactNative.StyleSheet.hairlineWidth},label:{...(0,_index.fontFor)(e,"semibold")},labelSide:{flex:4},value:{...(0,_index.fontFor)(e,"normal")},valueSide:{flex:6},summaryRow:{flexDirection:"row",alignItems:"center",gap:e.spacing.md,borderBottomWidth:_reactNative.StyleSheet.hairlineWidth},summaryLabel:{flex:1,...(0,_index.fontFor)(e,"normal")},summaryValue:{textAlign:"right",flexShrink:1,maxWidth:"60%"},summaryValueView:{flexShrink:1,maxWidth:"60%",alignItems:"flex-end"}});var _default=exports.default=Descriptions;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Descriptions=void 0;var _react=require("react"),_reactNative=require("react-native"),_index=require("../../theme/index.js"),_Notation=require("../Notation/Notation.js"),_Text=require("../Text/Text.js"),_jsxRuntime=require("react/jsx-runtime");const EMPTY_VALUE="-",rowKey=(e,t)=>e.key??("string"==typeof e.label?`${e.label}-${t}`:`row-${t}`),isEmptyValue=e=>null==e||""===e||Array.isArray(e)&&!e.length,isInlineText=e=>"string"==typeof e||"number"==typeof e||(0,_react.isValidElement)(e)&&e.type===_Notation.Notation||Array.isArray(e)&&e.length>0&&e.every(isInlineText),Descriptions=({items:e,columns:t=1,size:r="md",bordered:i=!1,title:o,variant:l="list",style:a,testID:s})=>{const n=(0,_index.useTheme)(),c=(0,_react.useMemo)(()=>buildStyles(n),[n]),x="sm"===r?n.typography.fontSize.xs:n.typography.fontSize.sm,u="sm"===r?n.typography.fontSize.sm:n.typography.fontSize.base,d="sm"===r?n.spacing.xs:n.spacing.sm,m="summary"===l,y=(0,_react.useMemo)(()=>({fontSize:x,color:n.colors.text.tertiary}),[x,n.colors.text.tertiary]),_=(0,_react.useMemo)(()=>({fontSize:u,color:n.colors.text.secondary}),[u,n.colors.text.secondary]);return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[m?null:{gap:d},a],testID:s,children:[o?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[c.title,{fontSize:n.typography.fontSize.lg,color:n.colors.text.primary}],children:o}):null,e.map((e,r)=>{const o=isEmptyValue(e.value),l=2===t&&!e.full,a=o?n.colors.text.tertiary:(0,_Text.resolveColor)(n,e.tone??"primary"),s=(0,_index.fontFor)(n,e.strong?"semibold":"normal"),p=o||isInlineText(e.value),v=o?"-":"string"==typeof e.value?e.value:(0,_jsxRuntime.jsx)(_Notation.NotationInkContext.Provider,{value:{fontSize:u,color:a},children:e.value});return m?(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[c.summaryRow,{paddingVertical:d,borderBottomColor:n.colors.border.secondary}],children:[(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[c.summaryLabel,{fontSize:u,color:n.colors.text.secondary}],children:(0,_jsxRuntime.jsx)(_Notation.NotationInkContext.Provider,{value:_,children:e.label})}),p?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[c.summaryValue,{fontSize:u,color:a},s],children:v}):(0,_jsxRuntime.jsx)(_reactNative.View,{style:c.summaryValueView,children:e.value})]},rowKey(e,r)):(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[l?c.rowSide:c.rowStack,{paddingVertical:d},i&&r>0?c.bordered:null,i&&r>0?{borderTopColor:n.colors.border.secondary}:null],children:["string"==typeof e.label?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[c.label,{fontSize:x,color:n.colors.text.tertiary},l?c.labelSide:null],children:e.label}):(0,_jsxRuntime.jsx)(_reactNative.View,{style:l?c.labelSide:null,children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[c.label,{fontSize:x,color:n.colors.text.tertiary}],children:(0,_jsxRuntime.jsx)(_Notation.NotationInkContext.Provider,{value:y,children:e.label})})}),p?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[c.value,{fontSize:u,color:a},e.strong?s:null,l?c.valueSide:null],children:v}):(0,_jsxRuntime.jsx)(_reactNative.View,{style:l?c.valueSide:null,children:e.value})]},rowKey(e,r))})]})};exports.Descriptions=Descriptions;const buildStyles=e=>_reactNative.StyleSheet.create({title:{...(0,_index.fontFor)(e,"semibold")},rowStack:{gap:e.spacing.xxs},rowSide:{flexDirection:"row",alignItems:"flex-start",gap:e.spacing.md},bordered:{borderTopWidth:_reactNative.StyleSheet.hairlineWidth},label:{...(0,_index.fontFor)(e,"semibold")},labelSide:{flex:4},value:{...(0,_index.fontFor)(e,"normal")},valueSide:{flex:6},summaryRow:{flexDirection:"row",alignItems:"center",gap:e.spacing.md,borderBottomWidth:_reactNative.StyleSheet.hairlineWidth},summaryLabel:{flex:1,...(0,_index.fontFor)(e,"normal")},summaryValue:{textAlign:"right",flexShrink:1,maxWidth:"60%"},summaryValueView:{flexShrink:1,maxWidth:"60%",alignItems:"flex-end"}});var _default=exports.default=Descriptions;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Dialog=void 0;var _react=require("react"),_reactNative=require("react-native"),_index=require("../../theme/index.js"),_color=require("../../utils/color.js"),_corners=require("../../utils/corners.js"),_hapticUtils=require("../../utils/hapticUtils.js"),_Modal=require("../Modal/Modal.js"),_jsxRuntime=require("react/jsx-runtime");const Dialog=e=>{const{visible:t,onClose:r,title:o,message:i,children:n,icon:a,variant:l="default",actions:s,dismissOnAction:c=!0,accessibilityLabel:d,contentStyle:u,containerStyle:g,titleStyle:p,messageStyle:b,iconWrapperStyle:m,actionsRowStyle:y,actionButtonStyle:x,actionTextStyle:_,haptic:h,testID:f}=e,C=(0,_index.useTheme)(),j=(0,_react.useMemo)(()=>buildStyles(C),[C]),S=(0,_react.useMemo)(()=>discFor(C,l),[C,l]),R=C.components.dialog,v=R?.iconWrapperSize??48,M=R?.iconWrapperBorderRadius??24,w=R?.actionButtonMinHeight??44,B=Boolean(s&&s.length>0),D=(0,_react.useCallback)(e=>{if(e.loading||e.disabled)return;const t=(0,_hapticUtils.resolveHaptic)(h,"selection");t&&(0,_hapticUtils.triggerHaptic)(t),c?(r(),setTimeout(e.onPress,_Modal.MODAL_DISMISS_GRACE_MS)):e.onPress()},[c,r,h]);return(0,_jsxRuntime.jsx)(_Modal.Modal,{visible:t,onRequestClose:r,haptic:h,presentation:"centered",accessibilityLabel:d??o,contentStyle:u,testID:f,children:(0,_jsxRuntime.jsxs)(_reactNative.View,{accessibilityRole:"alert",accessibilityLabel:d??o,style:[j.container,g],children:[a?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[j.iconWrapper,{width:v,height:v,borderRadius:M,..._corners.smoothCorners,backgroundColor:S,marginBottom:C.spacing.md},m],children:a}):null,o?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[j.title,{color:C.colors.text.primary,fontSize:C.typography.fontSize.xl,...(0,_index.fontFor)(C,"semibold"),marginBottom:i||null!=n?C.spacing.sm:C.spacing.md},p],accessibilityRole:"header",children:o}):null,i?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[j.message,{color:C.colors.text.secondary,fontSize:C.typography.fontSize.base,lineHeight:C.typography.fontSize.base*C.typography.lineHeight.normal,marginBottom:null!=n?C.spacing.md:B?C.spacing.lg:0},b],children:i}):null,null!=n?(0,_jsxRuntime.jsx)(_reactNative.View,{style:{marginBottom:B?C.spacing.lg:0},children:n}):null,s&&s.length>0?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[j.actionsRow,y],children:s.map((e,t)=>{const r=e.tone??"primary",o=Boolean(e.disabled),i=actionStyleFor(C,r,o),n=t===s.length-1;return(0,_jsxRuntime.jsx)(_reactNative.Pressable,{onPress:()=>D(e),disabled:e.loading||o,accessibilityRole:"button",accessibilityLabel:e.label,accessibilityState:{busy:e.loading,disabled:Boolean(e.loading)||o},"aria-busy":e.loading,"aria-disabled":Boolean(e.loading)||o,style:({pressed:t})=>[j.actionButton,{minHeight:w,backgroundColor:i.backgroundColor,borderColor:i.borderColor,borderWidth:i.borderWidth,borderRadius:C.radius.md,..._corners.smoothCorners,paddingVertical:C.spacing.md-2,paddingHorizontal:C.spacing.md,marginRight:n?0:C.spacing.sm,opacity:e.loading?.7:t&&!o?.85:1},x],children:e.loading?(0,_jsxRuntime.jsx)(_reactNative.ActivityIndicator,{size:"small",color:i.textColor}):(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[{color:i.textColor,fontSize:C.typography.fontSize.base,...(0,_index.fontFor)(C,"semibold"),textAlign:"center"},_],children:e.label})},`${e.label}-${t}`)})}):null]})})};exports.Dialog=Dialog,Dialog.displayName="Dialog";const SOFT_DISC_OPACITY=.14,discFor=(e,t)=>{const r=e.colors.background.secondary;switch(t){case"success":return(0,_color.tintOf)(e.colors.success,.14,r);case"warning":return(0,_color.tintOf)(e.colors.warning,.14,r);case"error":return(0,_color.tintOf)(e.colors.error,.14,r);case"info":return(0,_color.tintOf)(e.colors.info,.14,r);default:return e.colors.primaryMuted}},actionStyleFor=(e,t,r)=>{if(r)return{backgroundColor:"neutral"===t?"transparent":e.colors.surface.disabled,borderColor:"neutral"===t?e.colors.border.primary:"transparent",borderWidth:"neutral"===t?1:0,textColor:e.colors.text.disabled};switch(t){case"primary":return{backgroundColor:e.colors.primary,borderColor:"transparent",borderWidth:0,textColor:e.colors.onPrimary};case"info":return{backgroundColor:e.colors.info,borderColor:"transparent",borderWidth:0,textColor:e.colors.onInfo};case"error":return{backgroundColor:e.colors.error,borderColor:"transparent",borderWidth:0,textColor:e.colors.onError};default:return{backgroundColor:"transparent",borderColor:e.colors.border.primary,borderWidth:1,textColor:e.colors.text.primary}}},buildStyles=e=>_reactNative.StyleSheet.create({container:{alignItems:"stretch"},iconWrapper:{alignItems:"center",justifyContent:"center",alignSelf:"center"},title:{textAlign:"center"},message:{textAlign:"center"},actionsRow:{flexDirection:"row",justifyContent:"flex-end",alignItems:"stretch"},actionButton:{flex:1,alignItems:"center",justifyContent:"center"}});var _default=exports.default=Dialog;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Dialog=void 0;var _react=require("react"),_reactNative=require("react-native"),_index=require("../../theme/index.js"),_color=require("../../utils/color.js"),_corners=require("../../utils/corners.js"),_hapticUtils=require("../../utils/hapticUtils.js"),_Modal=require("../Modal/Modal.js"),_jsxRuntime=require("react/jsx-runtime");const Dialog=e=>{const{visible:t,onClose:r,title:o,message:i,children:n,icon:a,variant:l="default",actions:s,dismissOnAction:c=!0,accessibilityLabel:d,contentStyle:u,containerStyle:g,titleStyle:b,messageStyle:p,iconWrapperStyle:m,actionsRowStyle:y,actionButtonStyle:x,actionTextStyle:_,haptic:h,testID:f}=e,C=(0,_index.useTheme)(),j=(0,_react.useMemo)(()=>buildStyles(C),[C]),S=(0,_react.useMemo)(()=>discFor(C,l),[C,l]),R=C.components.dialog,v=R?.iconWrapperSize??48,M=R?.actionButtonMinHeight??44,w=Boolean(s&&s.length>0),D=(0,_react.useCallback)(e=>{if(e.loading||e.disabled)return;const t=(0,_hapticUtils.resolveHaptic)(h,"selection");t&&(0,_hapticUtils.triggerHaptic)(t),c?(r(),setTimeout(e.onPress,_Modal.MODAL_DISMISS_GRACE_MS)):e.onPress()},[c,r,h]);return(0,_jsxRuntime.jsx)(_Modal.Modal,{visible:t,onRequestClose:r,haptic:h,presentation:"centered",accessibilityLabel:d??o,contentStyle:u,testID:f,children:(0,_jsxRuntime.jsxs)(_reactNative.View,{accessibilityRole:"alert",accessibilityLabel:d??o,style:[j.container,g],children:[a?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[j.iconWrapper,{width:v,height:v,borderRadius:C.radius.pill,..._corners.smoothCorners,backgroundColor:S,marginBottom:C.spacing.md},m],children:a}):null,o?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[j.title,{color:C.colors.text.primary,fontSize:C.typography.fontSize.xl,...(0,_index.fontFor)(C,"semibold"),marginBottom:i||null!=n?C.spacing.sm:C.spacing.md},b],accessibilityRole:"header",children:o}):null,i?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[j.message,{color:C.colors.text.secondary,fontSize:C.typography.fontSize.base,lineHeight:C.typography.fontSize.base*C.typography.lineHeight.normal,marginBottom:null!=n?C.spacing.md:w?C.spacing.lg:0},p],children:i}):null,null!=n?(0,_jsxRuntime.jsx)(_reactNative.View,{style:{marginBottom:w?C.spacing.lg:0},children:n}):null,s&&s.length>0?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[j.actionsRow,y],children:s.map((e,t)=>{const r=e.tone??"primary",o=Boolean(e.disabled),i=actionStyleFor(C,r,o),n=t===s.length-1;return(0,_jsxRuntime.jsx)(_reactNative.Pressable,{onPress:()=>D(e),disabled:e.loading||o,accessibilityRole:"button",accessibilityLabel:e.label,accessibilityState:{busy:e.loading,disabled:Boolean(e.loading)||o},"aria-busy":e.loading,"aria-disabled":Boolean(e.loading)||o,style:({pressed:t})=>[j.actionButton,{minHeight:M,backgroundColor:i.backgroundColor,borderColor:i.borderColor,borderWidth:i.borderWidth,borderRadius:C.radius.md,..._corners.smoothCorners,paddingVertical:C.spacing.sm,paddingHorizontal:C.spacing.md,marginRight:n?0:C.spacing.sm,opacity:e.loading?.7:t&&!o?.85:1},x],children:e.loading?(0,_jsxRuntime.jsx)(_reactNative.ActivityIndicator,{size:"small",color:i.textColor}):(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[{color:i.textColor,fontSize:C.typography.fontSize.base,...(0,_index.fontFor)(C,"semibold"),textAlign:"center"},_],children:e.label})},`${e.label}-${t}`)})}):null]})})};exports.Dialog=Dialog,Dialog.displayName="Dialog";const SOFT_DISC_OPACITY=.14,discFor=(e,t)=>{const r=e.colors.background.secondary;switch(t){case"success":return(0,_color.tintOf)(e.colors.success,.14,r);case"warning":return(0,_color.tintOf)(e.colors.warning,.14,r);case"error":return(0,_color.tintOf)(e.colors.error,.14,r);case"info":return(0,_color.tintOf)(e.colors.info,.14,r);default:return e.colors.primaryMuted}},actionStyleFor=(e,t,r)=>{if(r)return{backgroundColor:"neutral"===t?"transparent":e.colors.surface.disabled,borderColor:"neutral"===t?e.colors.border.primary:"transparent",borderWidth:"neutral"===t?1:0,textColor:e.colors.text.disabled};switch(t){case"primary":return{backgroundColor:e.colors.primary,borderColor:"transparent",borderWidth:0,textColor:e.colors.onPrimary};case"info":return{backgroundColor:e.colors.info,borderColor:"transparent",borderWidth:0,textColor:e.colors.onInfo};case"error":return{backgroundColor:e.colors.error,borderColor:"transparent",borderWidth:0,textColor:e.colors.onError};default:return{backgroundColor:"transparent",borderColor:e.colors.border.primary,borderWidth:1,textColor:e.colors.text.primary}}},buildStyles=e=>_reactNative.StyleSheet.create({container:{alignItems:"stretch"},iconWrapper:{alignItems:"center",justifyContent:"center",alignSelf:"center"},title:{textAlign:"center"},message:{textAlign:"center"},actionsRow:{flexDirection:"row",justifyContent:"flex-end",alignItems:"stretch"},actionButton:{flex:1,alignItems:"center",justifyContent:"center"}});var _default=exports.default=Dialog;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.EmptyState=void 0;var _react=require("react"),_reactNative=require("react-native"),_usePressAnimation=require("../../hooks/usePressAnimation.js"),_index=require("../../theme/index.js"),_corners=require("../../utils/corners.js"),_hapticUtils=require("../../utils/hapticUtils.js"),_SquircleFill=require("../SquircleFill/SquircleFill.js"),_jsxRuntime=require("react/jsx-runtime");const SIZE_FALLBACK={sm:{iconSize:48,titleFontSize:"lg",descriptionFontSize:"sm",paddingVertical:"lg",titleGap:"md",descriptionGap:"xs"},md:{iconSize:64,titleFontSize:"xl",descriptionFontSize:"base",paddingVertical:"xl",titleGap:"md",descriptionGap:"xs"},lg:{iconSize:80,titleFontSize:"2xl",descriptionFontSize:"base",paddingVertical:"2xl",titleGap:"md",descriptionGap:"xs"}},sizeFor=(e,t)=>{const i={...SIZE_FALLBACK[t],...e.components.emptyState?.[t]??{}};return{iconSize:i.iconSize,titleSize:e.typography.fontSize[i.titleFontSize],descriptionSize:e.typography.fontSize[i.descriptionFontSize],paddingVertical:e.spacing[i.paddingVertical],titleGap:e.spacing[i.titleGap],descriptionGap:e.spacing[i.descriptionGap]}},ActionButton=({action:e,variant:t})=>{const i=(0,_index.useTheme)(),{style:r,pressIn:o,pressOut:n}=(0,_usePressAnimation.usePressAnimation)({enabled:!0}),s=(0,_react.useMemo)(()=>buildActionStyles(i),[i]),a="primary"===t,l=(0,_SquircleFill.useSquircle)(!0,i.radius.md),fillFor=e=>a?e?i.colors.primaryHover:i.colors.primary:e?i.colors.surface.pressed:"transparent";return(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:r,children:(0,_jsxRuntime.jsx)(_reactNative.Pressable,{onPress:()=>{(0,_hapticUtils.triggerHaptic)("selection"),e.onPress()},onPressIn:o,onPressOut:n,accessibilityRole:"button",accessibilityLabel:e.accessibilityLabel??e.label,accessibilityHint:e.accessibilityHint,testID:e.testID,onLayout:l.onLayout,style:({pressed:e})=>[s.button,a?s.buttonPrimary:s.buttonSecondary,e&&!l.active?a?s.buttonPrimaryPressed:s.buttonSecondaryPressed:null,l.active?s.buttonSquircleHost:null],children:({pressed:t})=>(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[l.active&&l.size?(0,_jsxRuntime.jsx)(_SquircleFill.SquircleFill,{width:l.size.width,height:l.size.height,radius:i.radius.md,fill:fillFor(t),stroke:a?void 0:i.colors.border.primary,strokeWidth:a?0:1,outset:a?0:1}):null,(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[s.buttonText,a?s.buttonTextPrimary:s.buttonTextSecondary],numberOfLines:1,children:e.label})]})})})},EmptyState=exports.EmptyState=(0,_react.forwardRef)((e,t)=>{const{icon:i,title:r,description:o,action:n,secondaryAction:s,size:a="md",fill:l=!1,style:c,testID:d}=e,u=(0,_index.useTheme)(),p=(0,_react.useMemo)(()=>sizeFor(u,a),[u,a]),m=(0,_react.useMemo)(()=>buildStyles(u),[u]);return(0,_jsxRuntime.jsxs)(_reactNative.View,{ref:t,accessibilityRole:"summary",testID:d,style:[m.root,{paddingVertical:p.paddingVertical},l?m.fill:null,c],children:[i?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[m.iconCircle,{width:p.iconSize,height:p.iconSize,marginBottom:p.titleGap,borderRadius:p.iconSize/2,..._corners.smoothCorners}],children:i}):null,(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[m.title,{fontSize:p.titleSize,...(0,_index.fontFor)(u,"semibold")}],children:r}),o?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[m.description,{fontSize:p.descriptionSize,marginTop:p.descriptionGap}],children:o}):null,n||s?(0,_jsxRuntime.jsxs)(_reactNative.View,{style:m.actions,children:[n?(0,_jsxRuntime.jsx)(ActionButton,{action:n,variant:"primary"}):null,s?(0,_jsxRuntime.jsx)(ActionButton,{action:s,variant:"secondary"}):null]}):null]})});EmptyState.displayName="EmptyState";const buildStyles=e=>_reactNative.StyleSheet.create({root:{alignItems:"center",justifyContent:"center",paddingHorizontal:e.spacing.lg},fill:{flexGrow:1},iconCircle:{backgroundColor:e.colors.surface.disabled,alignItems:"center",justifyContent:"center"},title:{color:e.colors.text.primary,textAlign:"center"},description:{color:e.colors.text.secondary,textAlign:"center",maxWidth:320,lineHeight:e.typography.fontSize.base*e.typography.lineHeight.normal},actions:{flexDirection:"row",alignItems:"center",gap:e.spacing.sm,marginTop:e.spacing.md+e.spacing.xs}}),buildActionStyles=e=>_reactNative.StyleSheet.create({button:{paddingHorizontal:e.spacing.lg,paddingVertical:e.spacing.sm,minHeight:42,borderRadius:e.radius.md,..._corners.smoothCorners,overflow:"hidden",alignItems:"center",justifyContent:"center",flexDirection:"row"},buttonPrimary:{backgroundColor:e.colors.primary},buttonPrimaryPressed:{backgroundColor:e.colors.primaryHover},buttonSecondary:{backgroundColor:"transparent",borderWidth:1,borderColor:e.colors.border.primary},buttonSecondaryPressed:{backgroundColor:e.colors.surface.pressed},buttonSquircleHost:{backgroundColor:"transparent",borderColor:"transparent",overflow:"visible"},buttonText:{fontSize:e.typography.fontSize.base,...(0,_index.fontFor)(e,"semibold")},buttonTextPrimary:{color:e.colors.onPrimary},buttonTextSecondary:{color:e.colors.text.primary}});var _default=exports.default=EmptyState;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.EmptyState=void 0;var _react=require("react"),_reactNative=require("react-native"),_usePressAnimation=require("../../hooks/usePressAnimation.js"),_index=require("../../theme/index.js"),_corners=require("../../utils/corners.js"),_hapticUtils=require("../../utils/hapticUtils.js"),_SquircleFill=require("../SquircleFill/SquircleFill.js"),_jsxRuntime=require("react/jsx-runtime");const ActionButton=({action:e,variant:t})=>{const r=(0,_index.useTheme)(),{style:i,pressIn:s,pressOut:o}=(0,_usePressAnimation.usePressAnimation)({enabled:!0}),n=(0,_react.useMemo)(()=>buildActionStyles(r),[r]),a="primary"===t,l=(0,_SquircleFill.useSquircle)(!0,r.radius.md),fillFor=e=>a?e?r.colors.primaryHover:r.colors.primary:e?r.colors.surface.pressed:"transparent";return(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:i,children:(0,_jsxRuntime.jsx)(_reactNative.Pressable,{onPress:()=>{(0,_hapticUtils.triggerHaptic)("selection"),e.onPress()},onPressIn:s,onPressOut:o,accessibilityRole:"button",accessibilityLabel:e.accessibilityLabel??e.label,accessibilityHint:e.accessibilityHint,testID:e.testID,onLayout:l.onLayout,style:({pressed:e})=>[n.button,a?n.buttonPrimary:n.buttonSecondary,e&&!l.active?a?n.buttonPrimaryPressed:n.buttonSecondaryPressed:null,l.active?n.buttonSquircleHost:null],children:({pressed:t})=>(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[l.active&&l.size?(0,_jsxRuntime.jsx)(_SquircleFill.SquircleFill,{width:l.size.width,height:l.size.height,radius:r.radius.md,fill:fillFor(t),stroke:a?void 0:r.colors.border.primary,strokeWidth:a?0:1,outset:a?0:1}):null,(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[n.buttonText,a?n.buttonTextPrimary:n.buttonTextSecondary],numberOfLines:1,children:e.label})]})})})},EmptyState=exports.EmptyState=(0,_react.forwardRef)((e,t)=>{const{icon:r,title:i,description:s,action:o,secondaryAction:n,size:a="md",fill:l=!1,style:c,testID:u}=e,d=(0,_index.useTheme)(),m=(0,_react.useMemo)(()=>(0,_index.resolveEmptyStateSize)(d,a),[d,a]),y=(0,_react.useMemo)(()=>buildStyles(d),[d]);return(0,_jsxRuntime.jsxs)(_reactNative.View,{ref:t,accessibilityRole:"summary",testID:u,style:[y.root,{paddingVertical:m.paddingY},l?y.fill:null,c],children:[r?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[y.iconCircle,{width:m.icon,height:m.icon,marginBottom:m.titleGap,borderRadius:d.radius.pill,..._corners.smoothCorners}],children:r}):null,(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[y.title,{fontSize:m.titleText,...(0,_index.fontFor)(d,"semibold")}],children:i}),s?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[y.description,{fontSize:m.descriptionText,marginTop:m.descriptionGap}],children:s}):null,o||n?(0,_jsxRuntime.jsxs)(_reactNative.View,{style:y.actions,children:[o?(0,_jsxRuntime.jsx)(ActionButton,{action:o,variant:"primary"}):null,n?(0,_jsxRuntime.jsx)(ActionButton,{action:n,variant:"secondary"}):null]}):null]})});EmptyState.displayName="EmptyState";const buildStyles=e=>_reactNative.StyleSheet.create({root:{alignItems:"center",justifyContent:"center",paddingHorizontal:e.spacing.lg},fill:{flexGrow:1},iconCircle:{backgroundColor:e.colors.surface.disabled,alignItems:"center",justifyContent:"center"},title:{color:e.colors.text.primary,textAlign:"center"},description:{color:e.colors.text.secondary,textAlign:"center",maxWidth:320,lineHeight:e.typography.fontSize.base*e.typography.lineHeight.normal},actions:{flexDirection:"row",alignItems:"center",gap:e.spacing.sm,marginTop:e.spacing.lg}}),buildActionStyles=e=>_reactNative.StyleSheet.create({button:{paddingHorizontal:e.spacing.lg,paddingVertical:e.spacing.sm,minHeight:42,borderRadius:e.radius.md,..._corners.smoothCorners,overflow:"hidden",alignItems:"center",justifyContent:"center",flexDirection:"row"},buttonPrimary:{backgroundColor:e.colors.primary},buttonPrimaryPressed:{backgroundColor:e.colors.primaryHover},buttonSecondary:{backgroundColor:"transparent",borderWidth:1,borderColor:e.colors.border.primary},buttonSecondaryPressed:{backgroundColor:e.colors.surface.pressed},buttonSquircleHost:{backgroundColor:"transparent",borderColor:"transparent",overflow:"visible"},buttonText:{fontSize:e.typography.fontSize.base,...(0,_index.fontFor)(e,"semibold")},buttonTextPrimary:{color:e.colors.onPrimary},buttonTextSecondary:{color:e.colors.text.primary}});var _default=exports.default=EmptyState;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.hasChoiceDetail=exports.ChoiceText=void 0;var _reactNative=require("react-native"),_index=require("../../theme/index.js"),_Notation=require("../Notation/Notation.js"),_FieldBase=require("./FieldBase.js"),_jsxRuntime=require("react/jsx-runtime");const hasChoiceDetail=(e,t)=>(0,_FieldBase.hasFieldText)(e)||(0,_FieldBase.hasFieldText)(t);exports.hasChoiceDetail=hasChoiceDetail;const ChoiceText=({label:e,description:t,error:i,disabled:o=!1,labelLines:s,descriptionLines:n,style:a,labelStyle:l})=>{const r=(0,_index.useTheme)(),x=o?r.colors.text.disabled:r.colors.text.primary,c=o?r.colors.text.disabled:r.colors.text.secondary,d=r.typography.fontSize.sm,_=(0,_Notation.useNotationInk)(l,r.typography.fontSize.base,x),h=(0,_Notation.useNotationInk)(void 0,d,c),u=(0,_Notation.useNotationInk)(void 0,d,r.colors.field.message);return(0,_FieldBase.hasFieldText)(e)||(0,_FieldBase.hasFieldText)(t)||(0,_FieldBase.hasFieldText)(i)?(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[styles.column,a],children:[(0,_FieldBase.hasFieldText)(e)?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[{color:x,fontSize:r.typography.fontSize.base,...(0,_index.fontFor)(r,"normal")},l],numberOfLines:s,children:(0,_jsxRuntime.jsx)(_Notation.NotationInkContext.Provider,{value:_,children:e})}):null,(0,_FieldBase.hasFieldText)(t)?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:{color:c,fontSize:d,marginTop:r.spacing.xs/2,...(0,_index.fontFor)(r,"normal")},numberOfLines:n,children:(0,_jsxRuntime.jsx)(_Notation.NotationInkContext.Provider,{value:h,children:t})}):null,(0,_FieldBase.hasFieldText)(i)?(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[styles.errorRow,{marginTop:r.spacing.xs,columnGap:r.spacing.xs}],accessibilityLiveRegion:"polite",children:[(0,_jsxRuntime.jsx)(_FieldBase.FieldErrorGlyph,{size:d,color:r.colors.field.message}),(0,_jsxRuntime.jsx)(_reactNative.Text,{style:{flexShrink:1,color:r.colors.field.message,fontSize:d,...(0,_index.fontFor)(r,"normal")},children:(0,_jsxRuntime.jsx)(_Notation.NotationInkContext.Provider,{value:u,children:i})})]}):null]}):null};exports.ChoiceText=ChoiceText;const styles=_reactNative.StyleSheet.create({column:{flexShrink:1},errorRow:{flexDirection:"row",alignItems:"center"}});
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.hasChoiceDetail=exports.ChoiceText=void 0;var _reactNative=require("react-native"),_index=require("../../theme/index.js"),_Notation=require("../Notation/Notation.js"),_FieldBase=require("./FieldBase.js"),_jsxRuntime=require("react/jsx-runtime");const hasChoiceDetail=(e,t)=>(0,_FieldBase.hasFieldText)(e)||(0,_FieldBase.hasFieldText)(t);exports.hasChoiceDetail=hasChoiceDetail;const ChoiceText=({label:e,description:t,error:i,disabled:o=!1,labelLines:s,descriptionLines:n,style:a,labelStyle:l})=>{const r=(0,_index.useTheme)(),x=o?r.colors.text.disabled:r.colors.text.primary,c=o?r.colors.text.disabled:r.colors.text.secondary,d=r.typography.fontSize.sm,_=(0,_Notation.useNotationInk)(l,r.typography.fontSize.base,x),h=(0,_Notation.useNotationInk)(void 0,d,c),u=(0,_Notation.useNotationInk)(void 0,d,r.colors.field.message);return(0,_FieldBase.hasFieldText)(e)||(0,_FieldBase.hasFieldText)(t)||(0,_FieldBase.hasFieldText)(i)?(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[styles.column,a],children:[(0,_FieldBase.hasFieldText)(e)?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[{color:x,fontSize:r.typography.fontSize.base,...(0,_index.fontFor)(r,"normal")},l],numberOfLines:s,children:(0,_jsxRuntime.jsx)(_Notation.NotationInkContext.Provider,{value:_,children:e})}):null,(0,_FieldBase.hasFieldText)(t)?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:{color:c,fontSize:d,marginTop:r.spacing.xxs,...(0,_index.fontFor)(r,"normal")},numberOfLines:n,children:(0,_jsxRuntime.jsx)(_Notation.NotationInkContext.Provider,{value:h,children:t})}):null,(0,_FieldBase.hasFieldText)(i)?(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[styles.errorRow,{marginTop:r.spacing.xs,columnGap:r.spacing.xs}],accessibilityLiveRegion:"polite",children:[(0,_jsxRuntime.jsx)(_FieldBase.FieldErrorGlyph,{size:d,color:r.colors.field.message}),(0,_jsxRuntime.jsx)(_reactNative.Text,{style:{flexShrink:1,color:r.colors.field.message,fontSize:d,...(0,_index.fontFor)(r,"normal")},children:(0,_jsxRuntime.jsx)(_Notation.NotationInkContext.Provider,{value:u,children:i})})]}):null]}):null};exports.ChoiceText=ChoiceText;const styles=_reactNative.StyleSheet.create({column:{flexShrink:1},errorRow:{flexDirection:"row",alignItems:"center"}});
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.resolveVariantColors=exports.resolveFieldTextStyle=exports.resolveFieldSize=exports.pickRepresentativeBorderColor=exports.hasFieldText=exports.fieldTextAsString=exports.default=exports.RequiredPlaceholder=exports.RequiredMark=exports.FieldMessage=exports.FieldLabel=exports.FieldErrorGlyph=exports.FieldBase=void 0;var _react=require("react"),_reactNative=require("react-native"),_index=require("../../theme/index.js"),_ariaState=require("../../utils/ariaState.js"),_corners=require("../../utils/corners.js"),_defaultIcons=require("../AppIcon/defaultIcons.js"),_Notation=require("../Notation/Notation.js"),_SquircleFill=require("../SquircleFill/SquircleFill.js"),_jsxRuntime=require("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},pickRepresentativeBorderColor=e=>{for(const t of["bottom","top","left","right"]){const r=e[t];if(r&&"transparent"!==r)return r}return e.bottom};exports.pickRepresentativeBorderColor=pickRepresentativeBorderColor;const resolveFieldTextStyle=(e,t={})=>{const{disabled:r=!1}=t,o=e.components.field,i=e.colors.field;return{color:r?o?.disabledTextColor??i.textDisabled:o?.textColor??i.text,placeholderColor:o?.placeholderColor??(r?i.placeholderDisabled:i.placeholder),weightStyle:o?.fontWeight?{fontWeight:o.fontWeight}:(0,_index.fontFor)(e,"normal")}};exports.resolveFieldTextStyle=resolveFieldTextStyle;const RequiredMark=()=>{const e=(0,_index.useTheme)(),t=e.components.field;return(0,_jsxRuntime.jsx)(_reactNative.Text,{style:{color:t?.requiredMarkerColor??e.colors.toneText.error},children:` ${t?.requiredMarker??"*"}`})};exports.RequiredMark=RequiredMark;const RequiredPlaceholder=({text:e,color:t,fontSize:r,weightStyle:o,align:i="center",paddingTop:l,textAlign:a})=>(0,_jsxRuntime.jsx)(_reactNative.View,{pointerEvents:"none",style:[_reactNative.StyleSheet.absoluteFill,{justifyContent:"top"===i?"flex-start":"center",paddingTop:l}],children:(0,_jsxRuntime.jsxs)(_reactNative.Text,{accessible:!1,numberOfLines:1,style:{color:t,fontSize:r,...o,includeFontPadding:!1,textAlign:a},children:[e,(0,_jsxRuntime.jsx)(RequiredMark,{})]})});exports.RequiredPlaceholder=RequiredPlaceholder;const FieldErrorGlyph=({size:e,color:t})=>{const r=(0,_index.useTheme)(),o=r.icons?.error??_defaultIcons.defaultIcons.error;return(0,_jsxRuntime.jsx)(_jsxRuntime.Fragment,{children:o({size:e,color:t})})};exports.FieldErrorGlyph=FieldErrorGlyph;const hasFieldText=e=>null!=e&&!1!==e&&!0!==e&&""!==e;exports.hasFieldText=hasFieldText;const fieldTextAsString=e=>"string"==typeof e?e:void 0;exports.fieldTextAsString=fieldTextAsString;const FieldLabel=({children:e,size:t="md",required:r=!1,help:o,color:i,style:l})=>{const a=(0,_index.useTheme)(),n=resolveFieldSize(a,t),s=hasFieldText(o),d=(0,_Notation.useNotationInk)(l,n.labelFontSize,i??a.colors.field.label),c=(0,_jsxRuntime.jsxs)(_reactNative.Text,{style:[familyStyles.label,{color:i??a.colors.field.label,fontSize:n.labelFontSize,...(0,_index.fontFor)(a,"semibold"),marginBottom:s?0:n.labelGap},s?familyStyles.labelShrink:null,l],children:[(0,_jsxRuntime.jsx)(_Notation.NotationInkContext.Provider,{value:d,children:e}),r?(0,_jsxRuntime.jsx)(RequiredMark,{}):null]});return s?(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[familyStyles.labelRow,{marginBottom:n.labelGap}],children:[c,(0,_jsxRuntime.jsx)(_reactNative.View,{style:[familyStyles.help,{marginLeft:a.spacing.xs}],children:o})]}):c};exports.FieldLabel=FieldLabel;const FieldMessage=({text:e,error:t=!1,size:r="md",style:o})=>{const i=(0,_index.useTheme)(),l=resolveFieldSize(i,r),a=t?i.colors.field.message:i.colors.text.secondary,n=(0,_Notation.useNotationInk)(o,l.messageFontSize,a);return hasFieldText(e)?(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[familyStyles.messageRow,{marginTop:l.messageGap,columnGap:i.spacing.xs+2}],accessibilityLiveRegion:t?"polite":"none",children:[t?(0,_jsxRuntime.jsx)(FieldErrorGlyph,{size:l.messageFontSize,color:a}):null,(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[familyStyles.messageText,{color:a,fontSize:l.messageFontSize,...(0,_index.fontFor)(i,"normal")},o],children:(0,_jsxRuntime.jsx)(_Notation.NotationInkContext.Provider,{value:n,children:e})})]}):null};exports.FieldMessage=FieldMessage;const familyStyles=_reactNative.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}}),resolveFieldSize=(e,t)=>{const r=e.components.field?.[t],o=DEFAULT_SIZES[t];return{paddingHorizontal:r?.paddingHorizontal??o.paddingHorizontal,paddingVertical:r?.paddingVertical??o.paddingVertical,minHeight:r?.minHeight??o.minHeight,fontSize:r?.fontSize??o.fontSize,borderRadius:r?.borderRadius??o.borderRadius,iconSize:r?.iconSize??o.iconSize,labelFontSize:r?.labelFontSize??o.labelFontSize,labelGap:r?.labelGap??o.labelGap,messageFontSize:r?.messageFontSize??o.messageFontSize,messageGap:r?.messageGap??o.messageGap}};exports.resolveFieldSize=resolveFieldSize;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}},resolveVariantColors=(e,t,r)=>{const o=e.components.field?.[t],i=e.colors.field;let l,a,n,s,d;"outlined"===t?(l=i.background,a=i.backgroundFocused,n=i.backgroundDisabled,s=i.border,d=e.colors.border.width):"underline"===t?(l="transparent",a=void 0,n="transparent",s={bottom:i.border},d={bottom:e.colors.border.width}):(l=i.background,a=void 0,n=i.backgroundDisabled,s="transparent",d=0);const wrapToIdleShape=e=>"string"==typeof s?e:{bottom:e},c=expandColorSides(r?.borderIdle??o?.borderIdle??s),u=expandColorSides(r?.borderFocused??o?.borderFocused??wrapToIdleShape(i.borderFocused)),b=expandColorSides(r?.borderError??o?.borderError??wrapToIdleShape(i.borderError)),p=expandColorSides(r?.borderDisabled??o?.borderDisabled??s),g=expandWidthSides(r?.borderWidth??o?.borderWidth??d);return{backgroundIdleEmpty:r?.backgroundIdleEmpty??o?.backgroundIdleEmpty??l,backgroundIdleFilled:r?.backgroundIdleFilled??o?.backgroundIdleFilled??r?.backgroundIdleEmpty??o?.backgroundIdleEmpty??l,backgroundFocused:r?.backgroundFocused??o?.backgroundFocused??a,backgroundError:r?.backgroundError??o?.backgroundError??void 0,backgroundDisabled:r?.backgroundDisabled??o?.backgroundDisabled??n,borderIdle:c,borderFocused:u,borderError:b,borderDisabled:p,borderWidth:g,borderFocusedRepresentative:pickRepresentativeBorderColor(u)}};exports.resolveVariantColors=resolveVariantColors;const FieldBase=e=>{const{size:t="md",variant:r,focused:o=!1,disabled:i=!1,error:l=!1,filled:a=!1,leading:n,leadingDivider:s=!1,trailing:d,slotAlign:c="center",slotLineHeight:u,topNotch:b,children:p,onPress:g,pressFeedback:m=!0,minHeight:x,maxHeight:h,width:f,height:S,paddingHorizontal:F,paddingLeft:_,paddingRight:R,paddingVertical:y,borderRadius:v,borderTopLeftRadius:j,borderTopRightRadius:z,borderBottomLeftRadius:k,borderBottomRightRadius:C,borderWidth:T,borderTopWidth:N,borderRightWidth:I,borderBottomWidth:w,borderLeftWidth:q,gap:E,fillOverrides:V,style:L,testID:H,accessibilityRole:D,accessibilityLabel:B,accessibilityState:G,accessibilityHint:W}=e,M=(0,_index.useTheme)(),A=(0,_react.useMemo)(()=>buildStyles(),[]),P=r??M.components.field?.defaultVariant??"outlined",O=resolveFieldSize(M,t),U=(0,_react.useMemo)(()=>resolveVariantColors(M,P,V),[M,P,V]),Z=l?2:o?1:0,$=(0,_react.useRef)((0,_index.createAnimatedValue)(Z)).current;(0,_react.useEffect)(()=>{const e=_reactNative.Animated.timing($,{toValue:Z,duration:M.motion.duration.fast,easing:_reactNative.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=a?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,re=U.borderError,oe={top:N,right:I,bottom:w,left:q},ie={top:oe.top??T??U.borderWidth.top,right:oe.right??T??U.borderWidth.right,bottom:oe.bottom??T??U.borderWidth.bottom,left:oe.left??T??U.borderWidth.left},le={minHeight:S??x??O.minHeight,maxHeight:h,paddingHorizontal:F??O.paddingHorizontal,paddingVertical:y??O.paddingVertical,paddingLeft:_??F??O.paddingHorizontal,paddingRight:R??F??O.paddingHorizontal,backgroundColor:Y,columnGap:E??M.spacing.md,alignItems:"top"===c?"flex-start":"center"},ae="underline"===P,ne=ae?0:v??O.borderRadius,se=ae?{tl:0,tr:0,bl:0,br:0}:{tl:j??ne,tr:z??ne,bl:k??ne,br:C??ne};le.borderTopLeftRadius=se.tl,le.borderTopRightRadius=se.tr,le.borderBottomLeftRadius=se.bl,le.borderBottomRightRadius=se.br,le.borderCurve=_corners.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],re[e]]}),sameOnEverySide=e=>e.top===e.right&&e.top===e.bottom&&e.top===e.left,de=!ae&&se.tl===se.tr&&se.tl===se.bl&&se.tl===se.br&&sameOnEverySide(ie)&&sameOnEverySide(ee)&&sameOnEverySide(te)&&sameOnEverySide(re)&&sameOnEverySide(U.borderDisabled),ce=(0,_SquircleFill.useSquircle)(de,se.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 ue=i?U.borderDisabled.top:sideColor("top"),be=(0,_react.useRef)(Z);be.current=Z,(0,_react.useEffect)(()=>{$.setValue(be.current)},[U,$]),void 0!==f&&(le.width=f),void 0!==S&&(le.height=S);const pe={disabled:i,...G},ge="top"===c,me=ge?{alignSelf:"flex-start",marginTop:Math.max(0,((u??O.iconSize)-O.iconSize)/2)}:null,xe=S??x??O.minHeight,he=(()=>{if(!b)return 0;const e=Math.min(se.tl,xe/2),t=b.left;return e<=0||t>=e?0:Math.ceil(e-Math.sqrt(e*e-(e-t)*(e-t)))})(),fe=b&&ie.top>0?(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{pointerEvents:"none",style:{position:"absolute",top:-ie.top,left:b.left-ie.left,width:b.width,height:ie.top+he,backgroundColor:Y}}):null,renderInner=e=>(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[ce.active&&ce.size?(0,_jsxRuntime.jsx)(_SquircleFill.SquircleFill,{width:ce.size.width,height:ce.size.height,radius:se.tl,fill:e&&!i?M.colors.surface.pressed:Y,stroke:ue,strokeWidth:ie.top,outset:ie.top}):null,fe,null!=n?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[A.slot,me],children:n}):null,null!=n&&s?(0,_jsxRuntime.jsx)(_reactNative.View,{pointerEvents:"none",style:[A.divider,me,{height:O.iconSize,backgroundColor:M.colors.field.border}]}):null,(0,_jsxRuntime.jsx)(_reactNative.View,{style:[A.content,ge?A.contentTop:null],children:p}),null!=d?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[A.slot,me],children:d}):null]}),Se=(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{onLayout:ce.onLayout,style:[A.box,le,L],accessibilityRole:D,accessibilityLabel:B,accessibilityHint:W,accessibilityState:pe,...(0,_ariaState.ariaFromState)(pe),testID:H,children:renderInner(!1)});return g&&!m?(0,_jsxRuntime.jsx)(_reactNative.Pressable,{onPress:g,disabled:i,accessible:!1,children:Se}):g?(0,_jsxRuntime.jsx)(_reactNative.Pressable,{onPress:g,disabled:i,accessibilityRole:D??"button",accessibilityLabel:B,accessibilityHint:W,accessibilityState:pe,...(0,_ariaState.ariaFromState)(pe),testID:H,children:({pressed:e})=>(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{onLayout:ce.onLayout,style:[A.box,le,!e||i||ce.active?null:{backgroundColor:M.colors.surface.pressed},L],children:renderInner(e)})}):Se};exports.FieldBase=FieldBase,FieldBase.displayName="FieldBase";const buildStyles=()=>_reactNative.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"}});var _default=exports.default=FieldBase;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.resolveVariantColors=exports.resolveFieldTextStyle=exports.pickRepresentativeBorderColor=exports.hasFieldText=exports.fieldTextAsString=exports.default=exports.RequiredPlaceholder=exports.RequiredMark=exports.FieldMessage=exports.FieldLabel=exports.FieldErrorGlyph=exports.FieldBase=void 0;var _react=require("react"),_reactNative=require("react-native"),_index=require("../../theme/index.js"),_ariaState=require("../../utils/ariaState.js"),_corners=require("../../utils/corners.js"),_defaultIcons=require("../AppIcon/defaultIcons.js"),_Notation=require("../Notation/Notation.js"),_SquircleFill=require("../SquircleFill/SquircleFill.js"),_jsxRuntime=require("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},pickRepresentativeBorderColor=e=>{for(const t of["bottom","top","left","right"]){const r=e[t];if(r&&"transparent"!==r)return r}return e.bottom};exports.pickRepresentativeBorderColor=pickRepresentativeBorderColor;const resolveFieldTextStyle=(e,t={})=>{const{disabled:r=!1}=t,o=e.components.field,i=e.colors.field;return{color:r?o?.disabledTextColor??i.textDisabled:o?.textColor??i.text,placeholderColor:o?.placeholderColor??(r?i.placeholderDisabled:i.placeholder),weightStyle:o?.fontWeight?{fontWeight:o.fontWeight}:(0,_index.fontFor)(e,"normal")}};exports.resolveFieldTextStyle=resolveFieldTextStyle;const RequiredMark=()=>{const e=(0,_index.useTheme)(),t=e.components.field;return(0,_jsxRuntime.jsx)(_reactNative.Text,{style:{color:t?.requiredMarkerColor??e.colors.toneText.error},children:` ${t?.requiredMarker??"*"}`})};exports.RequiredMark=RequiredMark;const RequiredPlaceholder=({text:e,color:t,fontSize:r,weightStyle:o,align:i="center",paddingTop:l,textAlign:s})=>(0,_jsxRuntime.jsx)(_reactNative.View,{pointerEvents:"none",style:[_reactNative.StyleSheet.absoluteFill,{justifyContent:"top"===i?"flex-start":"center",paddingTop:l}],children:(0,_jsxRuntime.jsxs)(_reactNative.Text,{accessible:!1,numberOfLines:1,style:{color:t,fontSize:r,...o,includeFontPadding:!1,textAlign:s},children:[e,(0,_jsxRuntime.jsx)(RequiredMark,{})]})});exports.RequiredPlaceholder=RequiredPlaceholder;const FieldErrorGlyph=({size:e,color:t})=>{const r=(0,_index.useTheme)(),o=r.icons?.error??_defaultIcons.defaultIcons.error;return(0,_jsxRuntime.jsx)(_jsxRuntime.Fragment,{children:o({size:e,color:t})})};exports.FieldErrorGlyph=FieldErrorGlyph;const hasFieldText=e=>null!=e&&!1!==e&&!0!==e&&""!==e;exports.hasFieldText=hasFieldText;const fieldTextAsString=e=>"string"==typeof e?e:void 0;exports.fieldTextAsString=fieldTextAsString;const FieldLabel=({children:e,size:t="md",required:r=!1,help:o,color:i,style:l})=>{const s=(0,_index.useTheme)(),n=(0,_index.resolveFieldSize)(s,t),a=hasFieldText(o),d=(0,_Notation.useNotationInk)(l,n.labelText,i??s.colors.field.label),c=(0,_jsxRuntime.jsxs)(_reactNative.Text,{style:[familyStyles.label,{color:i??s.colors.field.label,fontSize:n.labelText,...(0,_index.fontFor)(s,"semibold"),marginBottom:a?s.spacing.none:n.labelGap},a?familyStyles.labelShrink:null,l],children:[(0,_jsxRuntime.jsx)(_Notation.NotationInkContext.Provider,{value:d,children:e}),r?(0,_jsxRuntime.jsx)(RequiredMark,{}):null]});return a?(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[familyStyles.labelRow,{marginBottom:n.labelGap}],children:[c,(0,_jsxRuntime.jsx)(_reactNative.View,{style:[familyStyles.help,{marginLeft:s.spacing.xs}],children:o})]}):c};exports.FieldLabel=FieldLabel;const FieldMessage=({text:e,error:t=!1,size:r="md",style:o})=>{const i=(0,_index.useTheme)(),l=(0,_index.resolveFieldSize)(i,r),s=t?i.colors.field.message:i.colors.text.secondary,n=(0,_Notation.useNotationInk)(o,l.messageText,s);return hasFieldText(e)?(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[familyStyles.messageRow,{marginTop:l.messageGap,columnGap:i.spacing.xs}],accessibilityLiveRegion:t?"polite":"none",children:[t?(0,_jsxRuntime.jsx)(FieldErrorGlyph,{size:l.messageText,color:s}):null,(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[familyStyles.messageText,{color:s,fontSize:l.messageText,...(0,_index.fontFor)(i,"normal")},o],children:(0,_jsxRuntime.jsx)(_Notation.NotationInkContext.Provider,{value:n,children:e})})]}):null};exports.FieldMessage=FieldMessage;const familyStyles=_reactNative.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}}),resolveVariantColors=(e,t,r)=>{const o=e.components.field?.[t],i=e.colors.field;let l,s,n,a,d;"outlined"===t?(l=i.background,s=i.backgroundFocused,n=i.backgroundDisabled,a=i.border,d=e.colors.border.width):"underline"===t?(l="transparent",s=void 0,n="transparent",a={bottom:i.border},d={bottom:e.colors.border.width}):(l=i.background,s=void 0,n=i.backgroundDisabled,a="transparent",d=0);const wrapToIdleShape=e=>"string"==typeof a?e:{bottom:e},c=expandColorSides(r?.borderIdle??o?.borderIdle??a),u=expandColorSides(r?.borderFocused??o?.borderFocused??wrapToIdleShape(i.borderFocused)),b=expandColorSides(r?.borderError??o?.borderError??wrapToIdleShape(i.borderError)),p=expandColorSides(r?.borderDisabled??o?.borderDisabled??a),x=expandWidthSides(r?.borderWidth??o?.borderWidth??d);return{backgroundIdleEmpty:r?.backgroundIdleEmpty??o?.backgroundIdleEmpty??l,backgroundIdleFilled:r?.backgroundIdleFilled??o?.backgroundIdleFilled??r?.backgroundIdleEmpty??o?.backgroundIdleEmpty??l,backgroundFocused:r?.backgroundFocused??o?.backgroundFocused??s,backgroundError:r?.backgroundError??o?.backgroundError??void 0,backgroundDisabled:r?.backgroundDisabled??o?.backgroundDisabled??n,borderIdle:c,borderFocused:u,borderError:b,borderDisabled:p,borderWidth:x,borderFocusedRepresentative:pickRepresentativeBorderColor(u)}};exports.resolveVariantColors=resolveVariantColors;const FieldBase=e=>{const{size:t="md",variant:r,focused:o=!1,disabled:i=!1,error:l=!1,filled:s=!1,leading:n,leadingDivider:a=!1,trailing:d,slotAlign:c="center",slotLineHeight:u,topNotch:b,children:p,onPress:x,pressFeedback:g=!0,minHeight:h,maxHeight:m,width:f,height:_,paddingHorizontal:y,paddingLeft:R,paddingRight:v,paddingVertical:F,borderRadius:j,borderTopLeftRadius:S,borderTopRightRadius:k,borderBottomLeftRadius:T,borderBottomRightRadius:C,borderWidth:N,borderTopWidth:I,borderRightWidth:w,borderBottomWidth:q,borderLeftWidth:E,gap:L,fillOverrides:B,style:D,testID:V,accessibilityRole:W,accessibilityLabel:z,accessibilityState:M,accessibilityHint:P}=e,A=(0,_index.useTheme)(),H=(0,_react.useMemo)(()=>buildStyles(),[]),G=r??A.components.field?.defaultVariant??"outlined",O=(0,_index.resolveFieldSize)(A,t),X=(0,_react.useMemo)(()=>resolveVariantColors(A,G,B),[A,G,B]),Y=l?2:o?1:0,$=(0,_react.useRef)((0,_index.createAnimatedValue)(Y)).current;(0,_react.useEffect)(()=>{const e=_reactNative.Animated.timing($,{toValue:Y,duration:A.motion.duration.fast,easing:_reactNative.Easing.bezier(...A.motion.easing.standard),useNativeDriver:!1});return e.start(),()=>e.stop()},[Y,$,A.motion.duration.fast,A.motion.easing.standard]);const J=[0,1,2],K=s?X.backgroundIdleFilled:X.backgroundIdleEmpty,Q=X.backgroundFocused??K,U=X.backgroundError??K,Z=i?X.backgroundDisabled:$.interpolate({inputRange:J,outputRange:[K,Q,U]}),ee=X.borderIdle,te=X.borderFocused,re=X.borderError,oe={top:I,right:w,bottom:q,left:E},ie={top:oe.top??N??X.borderWidth.top,right:oe.right??N??X.borderWidth.right,bottom:oe.bottom??N??X.borderWidth.bottom,left:oe.left??N??X.borderWidth.left},le={minHeight:_??h??O.minHeight,maxHeight:m,paddingHorizontal:y??O.paddingX,paddingVertical:F??O.paddingY,paddingLeft:R??y??O.paddingX,paddingRight:v??y??O.paddingX,backgroundColor:Z,columnGap:L??A.spacing.md,alignItems:"top"===c?"flex-start":"center"},se="underline"===G,ne=se?A.radius.none:j??O.radius,ae=se?{tl:A.radius.none,tr:A.radius.none,bl:A.radius.none,br:A.radius.none}:{tl:S??ne,tr:k??ne,bl:T??ne,br:C??ne};le.borderTopLeftRadius=ae.tl,le.borderTopRightRadius=ae.tr,le.borderBottomLeftRadius=ae.bl,le.borderBottomRightRadius=ae.br,le.borderCurve=_corners.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],re[e]]}),sameOnEverySide=e=>e.top===e.right&&e.top===e.bottom&&e.top===e.left,de=!se&&ae.tl===ae.tr&&ae.tl===ae.bl&&ae.tl===ae.br&&sameOnEverySide(ie)&&sameOnEverySide(ee)&&sameOnEverySide(te)&&sameOnEverySide(re)&&sameOnEverySide(X.borderDisabled),ce=(0,_SquircleFill.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=X.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 ue=i?X.borderDisabled.top:sideColor("top"),be=(0,_react.useRef)(Y);be.current=Y,(0,_react.useEffect)(()=>{$.setValue(be.current)},[X,$]),void 0!==f&&(le.width=f),void 0!==_&&(le.height=_);const pe={disabled:i,...M},xe="top"===c,ge=xe?{alignSelf:"flex-start",marginTop:Math.max(0,((u??O.icon)-O.icon)/2)}:null,he=_??h??O.minHeight,me=(()=>{if(!b)return 0;const e=Math.min(ae.tl,he/2),t=b.left;return e<=0||t>=e?0:Math.ceil(e-Math.sqrt(e*e-(e-t)*(e-t)))})(),fe=b&&ie.top>0?(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{pointerEvents:"none",style:{position:"absolute",top:-ie.top,left:b.left-ie.left,width:b.width,height:ie.top+me,backgroundColor:Z}}):null,renderInner=e=>(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[ce.active&&ce.size?(0,_jsxRuntime.jsx)(_SquircleFill.SquircleFill,{width:ce.size.width,height:ce.size.height,radius:ae.tl,fill:e&&!i?A.colors.surface.pressed:Z,stroke:ue,strokeWidth:ie.top,outset:ie.top}):null,fe,null!=n?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[H.slot,ge],children:n}):null,null!=n&&a?(0,_jsxRuntime.jsx)(_reactNative.View,{pointerEvents:"none",style:[H.divider,ge,{height:O.icon,backgroundColor:A.colors.field.border}]}):null,(0,_jsxRuntime.jsx)(_reactNative.View,{style:[H.content,xe?H.contentTop:null],children:p}),null!=d?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[H.slot,ge],children:d}):null]}),ye=(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{onLayout:ce.onLayout,style:[H.box,le,D],accessibilityRole:W,accessibilityLabel:z,accessibilityHint:P,accessibilityState:pe,...(0,_ariaState.ariaFromState)(pe),testID:V,children:renderInner(!1)});return x&&!g?(0,_jsxRuntime.jsx)(_reactNative.Pressable,{onPress:x,disabled:i,accessible:!1,children:ye}):x?(0,_jsxRuntime.jsx)(_reactNative.Pressable,{onPress:x,disabled:i,accessibilityRole:W??"button",accessibilityLabel:z,accessibilityHint:P,accessibilityState:pe,...(0,_ariaState.ariaFromState)(pe),testID:V,children:({pressed:e})=>(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{onLayout:ce.onLayout,style:[H.box,le,!e||i||ce.active?null:{backgroundColor:A.colors.surface.pressed},D],children:renderInner(e)})}):ye};exports.FieldBase=FieldBase,FieldBase.displayName="FieldBase";const buildStyles=()=>_reactNative.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"}});var _default=exports.default=FieldBase;