@webority/mobile-ui 0.96.0 → 0.98.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (92) hide show
  1. package/dist/canvas-kit/kit.js +6747 -6580
  2. package/dist/canvas-kit/manifest.json +19 -1
  3. package/dist/canvas-kit/release.json +6 -6
  4. package/lib/commonjs/canvasKit/index.js +1 -1
  5. package/lib/commonjs/components/AppBar/AppBar.js +1 -1
  6. package/lib/commonjs/components/Avatar/Avatar.js +1 -1
  7. package/lib/commonjs/components/Banner/Banner.js +1 -1
  8. package/lib/commonjs/components/BottomNavigation/BottomNavigation.js +1 -1
  9. package/lib/commonjs/components/Button/Button.js +1 -1
  10. package/lib/commonjs/components/Calendar/Calendar.js +1 -1
  11. package/lib/commonjs/components/Checkbox/Checkbox.js +1 -1
  12. package/lib/commonjs/components/Chip/Chip.js +1 -1
  13. package/lib/commonjs/components/DatePicker/DatePicker.js +1 -1
  14. package/lib/commonjs/components/FilePicker/FilePicker.js +1 -1
  15. package/lib/commonjs/components/IconButton/IconButton.js +1 -1
  16. package/lib/commonjs/components/ImageGallery/ImageGallery.js +1 -1
  17. package/lib/commonjs/components/InlineSelect/InlineSelect.js +1 -1
  18. package/lib/commonjs/components/Input/Input.js +1 -1
  19. package/lib/commonjs/components/KeyboardToolbar/KeyboardToolbar.js +1 -1
  20. package/lib/commonjs/components/OptionSheet/OptionSheet.js +1 -1
  21. package/lib/commonjs/components/PhoneNumberInput/PhoneNumberInput.js +1 -1
  22. package/lib/commonjs/components/Radio/Radio.js +1 -1
  23. package/lib/commonjs/components/Rating/Rating.js +1 -1
  24. package/lib/commonjs/components/RichTextEditor/RichTextEditor.js +1 -1
  25. package/lib/commonjs/components/SearchBar/SearchBar.js +1 -1
  26. package/lib/commonjs/components/SliderField/SliderField.js +1 -1
  27. package/lib/commonjs/components/Stepper/Stepper.js +1 -1
  28. package/lib/commonjs/components/Switch/Switch.js +1 -1
  29. package/lib/commonjs/components/Text/Text.js +1 -1
  30. package/lib/commonjs/components/Toast/Toast.js +1 -1
  31. package/lib/commonjs/index.js +1 -1
  32. package/lib/commonjs/theme/index.js +1 -1
  33. package/lib/module/canvasKit/index.js +1 -1
  34. package/lib/module/components/AppBar/AppBar.js +1 -1
  35. package/lib/module/components/Avatar/Avatar.js +1 -1
  36. package/lib/module/components/Banner/Banner.js +1 -1
  37. package/lib/module/components/BottomNavigation/BottomNavigation.js +1 -1
  38. package/lib/module/components/Button/Button.js +1 -1
  39. package/lib/module/components/Calendar/Calendar.js +1 -1
  40. package/lib/module/components/Checkbox/Checkbox.js +1 -1
  41. package/lib/module/components/Chip/Chip.js +1 -1
  42. package/lib/module/components/DatePicker/DatePicker.js +1 -1
  43. package/lib/module/components/FilePicker/FilePicker.js +1 -1
  44. package/lib/module/components/IconButton/IconButton.js +1 -1
  45. package/lib/module/components/ImageGallery/ImageGallery.js +1 -1
  46. package/lib/module/components/InlineSelect/InlineSelect.js +1 -1
  47. package/lib/module/components/Input/Input.js +1 -1
  48. package/lib/module/components/KeyboardToolbar/KeyboardToolbar.js +1 -1
  49. package/lib/module/components/OptionSheet/OptionSheet.js +1 -1
  50. package/lib/module/components/PhoneNumberInput/PhoneNumberInput.js +1 -1
  51. package/lib/module/components/Radio/Radio.js +1 -1
  52. package/lib/module/components/Rating/Rating.js +1 -1
  53. package/lib/module/components/RichTextEditor/RichTextEditor.js +1 -1
  54. package/lib/module/components/SearchBar/SearchBar.js +1 -1
  55. package/lib/module/components/SliderField/SliderField.js +1 -1
  56. package/lib/module/components/Stepper/Stepper.js +1 -1
  57. package/lib/module/components/Switch/Switch.js +1 -1
  58. package/lib/module/components/Text/Text.js +1 -1
  59. package/lib/module/components/Toast/Toast.js +1 -1
  60. package/lib/module/index.js +1 -1
  61. package/lib/module/theme/index.js +1 -1
  62. package/lib/typescript/commonjs/canvasKit/index.d.ts +20 -3
  63. package/lib/typescript/commonjs/components/AppBar/AppBar.d.ts +1 -0
  64. package/lib/typescript/commonjs/components/Button/Button.meta.d.ts +1 -1
  65. package/lib/typescript/commonjs/components/Card/Card.meta.d.ts +1 -1
  66. package/lib/typescript/commonjs/components/Checkbox/Checkbox.meta.d.ts +1 -1
  67. package/lib/typescript/commonjs/components/DecimalInput/DecimalInput.meta.d.ts +1 -1
  68. package/lib/typescript/commonjs/components/Input/Input.meta.d.ts +1 -1
  69. package/lib/typescript/commonjs/components/Radio/Radio.meta.d.ts +1 -1
  70. package/lib/typescript/commonjs/components/SearchBar/SearchBar.meta.d.ts +1 -1
  71. package/lib/typescript/commonjs/components/Switch/Switch.meta.d.ts +1 -1
  72. package/lib/typescript/commonjs/components/Text/Text.meta.d.ts +1 -1
  73. package/lib/typescript/commonjs/index.d.ts +2 -3
  74. package/lib/typescript/commonjs/theme/index.d.ts +0 -20
  75. package/lib/typescript/module/canvasKit/index.d.ts +20 -3
  76. package/lib/typescript/module/components/AppBar/AppBar.d.ts +1 -0
  77. package/lib/typescript/module/components/Button/Button.meta.d.ts +1 -1
  78. package/lib/typescript/module/components/Card/Card.meta.d.ts +1 -1
  79. package/lib/typescript/module/components/Checkbox/Checkbox.meta.d.ts +1 -1
  80. package/lib/typescript/module/components/DecimalInput/DecimalInput.meta.d.ts +1 -1
  81. package/lib/typescript/module/components/Input/Input.meta.d.ts +1 -1
  82. package/lib/typescript/module/components/Radio/Radio.meta.d.ts +1 -1
  83. package/lib/typescript/module/components/SearchBar/SearchBar.meta.d.ts +1 -1
  84. package/lib/typescript/module/components/Switch/Switch.meta.d.ts +1 -1
  85. package/lib/typescript/module/components/Text/Text.meta.d.ts +1 -1
  86. package/lib/typescript/module/index.d.ts +2 -3
  87. package/lib/typescript/module/theme/index.d.ts +0 -20
  88. package/package.json +6 -6
  89. package/lib/commonjs/initUI.js +0 -1
  90. package/lib/module/initUI.js +0 -1
  91. package/lib/typescript/commonjs/initUI.d.ts +0 -12
  92. package/lib/typescript/module/initUI.d.ts +0 -12
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.SearchBar=void 0;var _react=require("react"),_reactNative=require("react-native"),_useControllableState=require("../../hooks/useControllableState.js"),_useDebounce=require("../../hooks/useDebounce.js"),_index=require("../../theme/index.js"),_announce=require("../../utils/announce.js"),_hapticUtils=require("../../utils/hapticUtils.js"),_mergeRefs=require("../../utils/mergeRefs.js"),_defaultIcons=require("../AppIcon/defaultIcons.js"),_slotIcon=require("../AppIcon/slotIcon.js"),_FieldBase=require("../FieldBase/FieldBase.js"),_useFloatingLabel=require("../FieldBase/useFloatingLabel.js"),_SearchPanel=require("./SearchPanel.js"),_jsxRuntime=require("react/jsx-runtime");const DEFAULT_PANEL_ROWS=8,HOLD_RELEASE_MS=50,SearchBar=exports.SearchBar=(0,_react.forwardRef)((e,t)=>{const{value:a,onChangeText:s,onSubmit:l,onFocus:n,onBlur:c,placeholder:r="Search…",autoFocus:i=!1,disabled:o=!1,onClear:u,leftIcon:d,debounceMs:_,size:b="md",variant:h,borderRadius:p,label:g,labelMode:f="top",labelStyle:S,scopes:x,scope:m,onScopeChange:v,recents:R,recentsTitle:j="Recent searches",maxRecents:C=DEFAULT_PANEL_ROWS,onSelectRecent:y,onRemoveRecent:F,onClearRecents:k,suggestions:B,maxSuggestions:L=DEFAULT_PANEL_ROWS,onSelectSuggestion:I,haptic:q,style:E,inputStyle:P,accessibilityLabel:T,testID:N,...D}=e,z=(0,_index.useTheme)(),w=h??z.settings.components["search-bar"]?.defaultVariant??z.settings.components.field?.defaultVariant??"filled",A="underline"===w,H=(0,_index.resolveFieldSize)(z,b),U=(0,_index.radiusOf)(z,z.components["search-bar"][b].radius),M=(0,_FieldBase.resolveFieldTextStyle)(z,{disabled:o}),O=(0,_react.useRef)(null),V=(0,_react.useMemo)(()=>(0,_mergeRefs.mergeRefs)(O,t),[t]),W=(0,_react.useCallback)(()=>{o||O.current?.focus()},[o]),$=(0,_react.useMemo)(()=>buildStyles(z),[z]),K="string"==typeof a?a:"",[G,J]=(0,_react.useState)(!1),Q=(0,_react.useCallback)(e=>{J(!0),n?.(e)},[n]),X=(0,_react.useCallback)(e=>{J(!1),c?.(e)},[c]),[Y,Z]=(0,_react.useState)(K),ee=(0,_useDebounce.useDebounce)(Y,_??0);(0,_react.useEffect)(()=>{void 0!==_&&K!==Y&&Z(K)},[K,_]);const te=(0,_react.useRef)(K);(0,_react.useEffect)(()=>{void 0!==_&&ee!==te.current&&(te.current=ee,s(ee))},[ee,_,s]);const ae=(0,_react.useCallback)(e=>{void 0===_?s(e):Z(e)},[_,s]),se=(0,_react.useCallback)(()=>{const e=(0,_hapticUtils.resolveHaptic)(q,"selection");e&&(0,_hapticUtils.triggerHaptic)(e),void 0!==_&&(Z(""),te.current=""),s(""),u?.()},[q,_,s,u]),le=(0,_react.useCallback)(()=>{l?.(void 0!==_?Y:K)},[l,_,Y,K]),ne=void 0!==_?Y:K,ce=ne.length>0,[re,ie]=(0,_useControllableState.useControllableState)({value:m,defaultValue:x?.[0]?.value??"",onChange:v}),oe=(0,_react.useCallback)(e=>{ie(e);const t=x?.find(t=>t.value===e)?.label;t&&(0,_announce.announce)(`Searching ${t}`)},[x,ie]),[ue,de]=(0,_react.useState)(!1),be=(0,_react.useRef)(null),he=(0,_react.useCallback)(()=>{be.current&&(clearTimeout(be.current),be.current=null)},[]),pe=(0,_react.useCallback)(()=>{he(),de(!0)},[he]),ge=(0,_react.useCallback)(()=>{he(),be.current=setTimeout(()=>de(!1),50)},[he]);(0,_react.useEffect)(()=>he,[he]);const fe=!o&&(G||ue),Se=(0,_react.useMemo)(()=>(R??[]).slice(0,C),[R,C]),xe=(0,_react.useMemo)(()=>(B??[]).slice(0,L).map(_SearchPanel.normalizeSuggestion),[B,L]),me=fe&&!ce&&Se.length>0,ve=fe&&ce&&xe.length>0,Re=ve?xe.length:0;(0,_react.useEffect)(()=>{Re>0&&(0,_announce.announce)(1===Re?"1 suggestion":`${Re} suggestions`)},[Re]);const je=(0,_react.useCallback)(()=>{const e=(0,_hapticUtils.resolveHaptic)(q,"selection");e&&(0,_hapticUtils.triggerHaptic)(e)},[q]),Ce=(0,_react.useCallback)(e=>{je(),O.current?.blur(),de(!1),y?.(e)},[je,y]),ye=(0,_react.useCallback)(e=>{je(),O.current?.blur(),de(!1),I?.(e)},[je,I]),Fe=(0,_react.useCallback)(e=>{je(),F?.(e),(0,_announce.announce)(`Removed ${e}`),W()},[je,F,W]),ke=(0,_react.useCallback)(()=>{je(),k?.(),(0,_announce.announce)("Recent searches cleared"),W()},[je,k,W]),Be={size:H.icon,color:o?z.colors["text-disabled"]:z.colors["text-subtle"],disabled:o},Le=d?(0,_slotIcon.renderSlotIcon)(d,Be):(z.settings.icons.search??_defaultIcons.defaultIcons.search)(Be),Ie=Boolean(g)&&"float"===f,qe=(0,_useFloatingLabel.useFloatingLabel)({label:g,enabled:Ie,floated:G||ce,variant:w,sizeTokens:H,leadingOffset:H.icon+z.space.md,trailingOffset:ce?H.icon+z.space.md:0,paddingLeft:A?z.space.none:H["padding-x"],color:z.colors["field-label"],style:S}),Ee=ce&&!o?(0,_jsxRuntime.jsx)(_reactNative.Pressable,{onPress:se,hitSlop:8,accessibilityRole:"button",accessibilityLabel:"Clear search",children:(z.settings.icons.close??_defaultIcons.defaultIcons.close)({size:H.icon,color:z.colors["text-muted"]})}):null;return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:E,testID:N,children:[g&&!Ie?(0,_jsxRuntime.jsx)(_FieldBase.FieldLabel,{size:b,style:S,children:g}):null,(0,_jsxRuntime.jsx)(_reactNative.View,{style:$.root,children:(0,_jsxRuntime.jsxs)(_reactNative.View,{style:$.fieldWrap,children:[(0,_jsxRuntime.jsx)(_FieldBase.FieldBase,{size:b,variant:w,focused:G,disabled:o,filled:ce,minHeight:H["min-height"],paddingHorizontal:A?z.space.none:H["padding-x"],borderRadius:p??U,leading:Le,trailing:Ee,topNotch:qe.topNotch,onPress:W,pressFeedback:!1,accessibilityRole:"search",accessibilityLabel:T??r,children:(0,_jsxRuntime.jsx)(_reactNative.TextInput,{ref:V,style:[$.input,{fontSize:H.text,color:M.color,...M.weightStyle},P],value:ne,onChangeText:ae,onSubmitEditing:le,onFocus:Q,onBlur:X,placeholder:!Ie||G||ce?r:void 0,placeholderTextColor:M.placeholderColor,autoFocus:i,editable:!o,returnKeyType:"search",selectionColor:(0,_FieldBase.resolveVariantColors)(z,w).borderFocusedRepresentative,accessibilityLabel:T??r,accessibilityState:{disabled:o},"aria-disabled":o,...D})}),qe.node]})}),x&&x.length>0?(0,_jsxRuntime.jsx)(_SearchPanel.SearchScopeBar,{scopes:x,scope:re||(x[0]?.value??""),disabled:o,haptic:q,onChange:oe}):null,me?(0,_jsxRuntime.jsx)(_SearchPanel.SearchRecents,{recents:Se,title:j,onSelect:Ce,onRemove:F?Fe:void 0,onClear:k?ke:void 0,onHold:pe,onRelease:ge}):null,ve?(0,_jsxRuntime.jsx)(_SearchPanel.SearchSuggestions,{suggestions:xe,query:ne,onSelect:ye,onHold:pe,onRelease:ge}):null]})});SearchBar.displayName="SearchBar";const buildStyles=e=>_reactNative.StyleSheet.create({root:{flexDirection:"row",alignItems:"center",width:"100%",position:"relative",overflow:"visible"},fieldWrap:{flex:1,position:"relative",overflow:"visible"},input:{flex:1,padding:e.space.none,margin:e.space.none,includeFontPadding:!1}});var _default=exports.default=SearchBar;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.SearchBar=void 0;var _react=require("react"),_reactNative=require("react-native"),_useControllableState=require("../../hooks/useControllableState.js"),_useDebounce=require("../../hooks/useDebounce.js"),_index=require("../../theme/index.js"),_announce=require("../../utils/announce.js"),_hapticUtils=require("../../utils/hapticUtils.js"),_hitSlop=require("../../utils/hitSlop.js"),_mergeRefs=require("../../utils/mergeRefs.js"),_defaultIcons=require("../AppIcon/defaultIcons.js"),_slotIcon=require("../AppIcon/slotIcon.js"),_FieldBase=require("../FieldBase/FieldBase.js"),_useFloatingLabel=require("../FieldBase/useFloatingLabel.js"),_SearchPanel=require("./SearchPanel.js"),_jsxRuntime=require("react/jsx-runtime");const DEFAULT_PANEL_ROWS=8,HOLD_RELEASE_MS=50,SearchBar=exports.SearchBar=(0,_react.forwardRef)((e,t)=>{const{value:a,onChangeText:s,onSubmit:l,onFocus:n,onBlur:r,placeholder:c="Search…",autoFocus:i=!1,disabled:o=!1,onClear:u,leftIcon:d,debounceMs:_,size:b="md",variant:h,borderRadius:p,label:g,labelMode:S="top",labelStyle:f,scopes:x,scope:m,onScopeChange:v,recents:R,recentsTitle:j="Recent searches",maxRecents:C=DEFAULT_PANEL_ROWS,onSelectRecent:y,onRemoveRecent:F,onClearRecents:k,suggestions:B,maxSuggestions:L=DEFAULT_PANEL_ROWS,onSelectSuggestion:I,haptic:q,style:E,inputStyle:P,accessibilityLabel:T,testID:N,...D}=e,z=(0,_index.useTheme)(),w=h??z.settings.components["search-bar"]?.defaultVariant??z.settings.components.field?.defaultVariant??"filled",A="underline"===w,H=(0,_index.resolveFieldSize)(z,b),M=(0,_index.radiusOf)(z,z.components["search-bar"][b].radius),U=(0,_FieldBase.resolveFieldTextStyle)(z,{disabled:o}),O=(0,_react.useRef)(null),V=(0,_react.useMemo)(()=>(0,_mergeRefs.mergeRefs)(O,t),[t]),W=(0,_react.useCallback)(()=>{o||O.current?.focus()},[o]),$=(0,_react.useMemo)(()=>buildStyles(z),[z]),K="string"==typeof a?a:"",[G,J]=(0,_react.useState)(!1),Q=(0,_react.useCallback)(e=>{J(!0),n?.(e)},[n]),X=(0,_react.useCallback)(e=>{J(!1),r?.(e)},[r]),[Y,Z]=(0,_react.useState)(K),ee=(0,_useDebounce.useDebounce)(Y,_??0);(0,_react.useEffect)(()=>{void 0!==_&&K!==Y&&Z(K)},[K,_]);const te=(0,_react.useRef)(K);(0,_react.useEffect)(()=>{void 0!==_&&ee!==te.current&&(te.current=ee,s(ee))},[ee,_,s]);const ae=(0,_react.useCallback)(e=>{void 0===_?s(e):Z(e)},[_,s]),se=(0,_react.useCallback)(()=>{const e=(0,_hapticUtils.resolveHaptic)(q,"selection");e&&(0,_hapticUtils.triggerHaptic)(e),void 0!==_&&(Z(""),te.current=""),s(""),u?.()},[q,_,s,u]),le=(0,_react.useCallback)(()=>{l?.(void 0!==_?Y:K)},[l,_,Y,K]),ne=void 0!==_?Y:K,re=ne.length>0,[ce,ie]=(0,_useControllableState.useControllableState)({value:m,defaultValue:x?.[0]?.value??"",onChange:v}),oe=(0,_react.useCallback)(e=>{ie(e);const t=x?.find(t=>t.value===e)?.label;t&&(0,_announce.announce)(`Searching ${t}`)},[x,ie]),[ue,de]=(0,_react.useState)(!1),be=(0,_react.useRef)(null),he=(0,_react.useCallback)(()=>{be.current&&(clearTimeout(be.current),be.current=null)},[]),pe=(0,_react.useCallback)(()=>{he(),de(!0)},[he]),ge=(0,_react.useCallback)(()=>{he(),be.current=setTimeout(()=>de(!1),50)},[he]);(0,_react.useEffect)(()=>he,[he]);const Se=!o&&(G||ue),fe=(0,_react.useMemo)(()=>(R??[]).slice(0,C),[R,C]),xe=(0,_react.useMemo)(()=>(B??[]).slice(0,L).map(_SearchPanel.normalizeSuggestion),[B,L]),me=Se&&!re&&fe.length>0,ve=Se&&re&&xe.length>0,Re=ve?xe.length:0;(0,_react.useEffect)(()=>{Re>0&&(0,_announce.announce)(1===Re?"1 suggestion":`${Re} suggestions`)},[Re]);const je=(0,_react.useCallback)(()=>{const e=(0,_hapticUtils.resolveHaptic)(q,"selection");e&&(0,_hapticUtils.triggerHaptic)(e)},[q]),Ce=(0,_react.useCallback)(e=>{je(),O.current?.blur(),de(!1),y?.(e)},[je,y]),ye=(0,_react.useCallback)(e=>{je(),O.current?.blur(),de(!1),I?.(e)},[je,I]),Fe=(0,_react.useCallback)(e=>{je(),F?.(e),(0,_announce.announce)(`Removed ${e}`),W()},[je,F,W]),ke=(0,_react.useCallback)(()=>{je(),k?.(),(0,_announce.announce)("Recent searches cleared"),W()},[je,k,W]),Be={size:H.icon,color:o?z.colors["text-disabled"]:z.colors["text-subtle"],disabled:o},Le=d?(0,_slotIcon.renderSlotIcon)(d,Be):(z.settings.icons.search??_defaultIcons.defaultIcons.search)(Be),Ie=Boolean(g)&&"float"===S,qe=(0,_useFloatingLabel.useFloatingLabel)({label:g,enabled:Ie,floated:G||re,variant:w,sizeTokens:H,leadingOffset:H.icon+z.space.md,trailingOffset:re?H.icon+z.space.md:0,paddingLeft:A?z.space.none:H["padding-x"],color:z.colors["field-label"],style:f}),Ee=re&&!o?(0,_jsxRuntime.jsx)(_reactNative.Pressable,{onPress:se,hitSlop:8,...(0,_hitSlop.hitSlopMarker)(8),accessibilityRole:"button",accessibilityLabel:"Clear search",children:(z.settings.icons.close??_defaultIcons.defaultIcons.close)({size:H.icon,color:z.colors["text-muted"]})}):null;return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:E,testID:N,children:[g&&!Ie?(0,_jsxRuntime.jsx)(_FieldBase.FieldLabel,{size:b,style:f,children:g}):null,(0,_jsxRuntime.jsx)(_reactNative.View,{style:$.root,children:(0,_jsxRuntime.jsxs)(_reactNative.View,{style:$.fieldWrap,children:[(0,_jsxRuntime.jsx)(_FieldBase.FieldBase,{size:b,variant:w,focused:G,disabled:o,filled:re,minHeight:H["min-height"],paddingHorizontal:A?z.space.none:H["padding-x"],borderRadius:p??M,leading:Le,trailing:Ee,topNotch:qe.topNotch,onPress:W,pressFeedback:!1,accessibilityRole:"search",accessibilityLabel:T??c,children:(0,_jsxRuntime.jsx)(_reactNative.TextInput,{ref:V,style:[$.input,{fontSize:H.text,color:U.color,...U.weightStyle},P],value:ne,onChangeText:ae,onSubmitEditing:le,onFocus:Q,onBlur:X,placeholder:!Ie||G||re?c:void 0,placeholderTextColor:U.placeholderColor,autoFocus:i,editable:!o,returnKeyType:"search",selectionColor:(0,_FieldBase.resolveVariantColors)(z,w).borderFocusedRepresentative,accessibilityLabel:T??c,accessibilityState:{disabled:o},"aria-disabled":o,...D})}),qe.node]})}),x&&x.length>0?(0,_jsxRuntime.jsx)(_SearchPanel.SearchScopeBar,{scopes:x,scope:ce||(x[0]?.value??""),disabled:o,haptic:q,onChange:oe}):null,me?(0,_jsxRuntime.jsx)(_SearchPanel.SearchRecents,{recents:fe,title:j,onSelect:Ce,onRemove:F?Fe:void 0,onClear:k?ke:void 0,onHold:pe,onRelease:ge}):null,ve?(0,_jsxRuntime.jsx)(_SearchPanel.SearchSuggestions,{suggestions:xe,query:ne,onSelect:ye,onHold:pe,onRelease:ge}):null]})});SearchBar.displayName="SearchBar";const buildStyles=e=>_reactNative.StyleSheet.create({root:{flexDirection:"row",alignItems:"center",width:"100%",position:"relative",overflow:"visible"},fieldWrap:{flex:1,position:"relative",overflow:"visible"},input:{flex:1,padding:e.space.none,margin:e.space.none,includeFontPadding:!1}});var _default=exports.default=SearchBar;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.SliderField=void 0;var _react=require("react"),_reactNative=require("react-native"),_index=require("../../hooks/index.js"),_index2=require("../../theme/index.js"),_index3=require("../AppIcon/index.js"),_FieldBase=require("../FieldBase/FieldBase.js"),_index4=require("../IconButton/index.js"),_index5=require("../Slider/index.js"),_valueText=require("../Slider/valueText.js"),_index6=require("../Tooltip/index.js"),_jsxRuntime=require("react/jsx-runtime");const DEFAULT_INPUT_WIDTH=72,defaultFormatValue=e=>String(e),stepDecimals=e=>String(e).split(".")[1]?.length??0,ValueBox=({draft:e,error:t,disabled:i,width:s,accessibilityLabel:l,styles:a,style:n,testID:r})=>{const o=(0,_index2.useTheme)(),d=(0,_index2.resolveFieldSize)(o,"sm"),u=(0,_FieldBase.resolveFieldTextStyle)(o,{disabled:i}),c=(0,_react.useRef)(null),x=(0,_react.useCallback)(()=>{i||c.current?.focus()},[i]);return(0,_jsxRuntime.jsx)(_FieldBase.FieldBase,{size:"sm",focused:e.editing,disabled:i,error:t,filled:!0,width:s,onPress:x,pressFeedback:!1,paddingHorizontal:o.space.sm,gap:o.space.xs,trailing:t?(0,_jsxRuntime.jsx)(_index3.AppIcon,{name:"info-circle",size:d.icon,color:o.colors["danger-text"]}):void 0,style:n,children:(0,_jsxRuntime.jsx)(_reactNative.TextInput,{ref:c,style:[a.boxInput,{color:u.color,fontSize:d.text,...u.weightStyle}],value:e.text,onChangeText:e.onChangeText,onFocus:e.onFocus,onBlur:e.onBlur,onSubmitEditing:e.onBlur,editable:!i,keyboardType:"decimal-pad",returnKeyType:"done",textAlign:"center",selectionColor:o.colors.primary,accessibilityLabel:l,accessibilityState:{disabled:i},"aria-disabled":i,testID:r})})},SliderField=exports.SliderField=(0,_react.forwardRef)((e,t)=>{const{label:i,unit:s,info:l,required:a=!1,helperText:n,error:r,min:o=0,max:d=100,step:u=1,disabled:c=!1,tone:x="primary",size:m,variant:_,haptic:b,showBubble:p=!0,showBounds:j=!0,showInput:h=!1,showStepper:v=!1,startIcon:y,endIcon:f,startLabel:g,endLabel:I,formatValue:S=defaultFormatValue,parseInput:T,animationDuration:R,inputWidth:w=DEFAULT_INPUT_WIDTH,accessibilityLabel:F,style:B,labelStyle:V,boundStyle:z,sliderStyle:D,inputStyle:L,testID:N}=e,q=(0,_index2.useTheme)(),C=(0,_react.useMemo)(()=>buildStyles(q),[q]),$=R??q.motion.duration.fast,A=!0===e.range,P=!0===r||(0,_FieldBase.hasFieldText)(r),W=stepDecimals(u),[M,k]=(0,_index.useControllableState)({value:e.value,defaultValue:e.defaultValue??(A?[o,d]:o),onChange:e.onChange}),[H,U]=A?M:[M,d],E=(0,_valueText.clampValue)(Math.min(H,U),o,d),K=(0,_valueText.clampValue)(Math.max(H,U),o,d),O=(0,_valueText.useValueDraft)({value:E,min:o,max:d,step:u,format:S,parse:T,onChange:e=>k(A?[Math.min(e,K),K]:e)}),G=(0,_valueText.useValueDraft)({value:K,min:o,max:d,step:u,format:S,parse:T,onChange:e=>k([E,Math.max(e,E)])}),stepBy=e=>{const t=(0,_valueText.snapValue)(E+e*u,o,d,u);t!==E&&k(t)},J={color:c?q.colors["text-disabled"]:q.colors["text-muted"],size:(0,_index2.resolveFieldSize)(q,"md").icon,disabled:c},Q=[C.bubbleText,{color:(0,_valueText.sliderToneInk)(q,x),fontWeight:q.weight.semibold}],boundText=e=>(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[C.bound,{color:c?q.colors["text-disabled"]:q.colors["text-muted"]},z],children:e}),X={min:o,max:d,step:u,disabled:c,tone:x,size:m,variant:_,haptic:b,showLabel:!!p&&"always",renderLabel:p?e=>(0,_jsxRuntime.jsx)(_valueText.CountingText,{value:e,format:S,decimals:W,duration:$,style:Q,testID:N&&!A?`${N}-bubble`:void 0}):void 0,accessibilityLabel:F??i,style:D,testID:N?`${N}-slider`:void 0};return(0,_jsxRuntime.jsxs)(_reactNative.View,{ref:t,style:[C.container,B],testID:N,children:[i?(0,_jsxRuntime.jsxs)(_reactNative.View,{style:C.labelRow,children:[(0,_jsxRuntime.jsx)(_FieldBase.FieldLabel,{required:a,style:V,children:i}),s?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[C.unit,{color:q.colors["text-subtle"]}],children:s}):null,l?(0,_jsxRuntime.jsx)(_index6.Tooltip,{content:l,trigger:"press",placement:"top",children:(0,_jsxRuntime.jsx)(_reactNative.Pressable,{accessibilityRole:"button",accessibilityLabel:`About ${i}`,hitSlop:8,style:C.infoButton,children:(0,_jsxRuntime.jsx)(_index3.AppIcon,{name:"info-circle",variant:"bold",size:16,color:q.colors["text-subtle"]})})}):null]}):null,(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[C.row,p?C.rowWithBubble:null],children:[y?(0,_jsxRuntime.jsx)(_reactNative.View,{children:(0,_index3.renderSlotIcon)(y,J)}):null,v&&!A?(0,_jsxRuntime.jsx)(_index4.IconButton,{icon:e=>(0,_jsxRuntime.jsx)(_index3.AppIcon,{name:"minus",size:e.size,color:e.color}),onPress:()=>stepBy(-1),accessibilityLabel:"Decrease",variant:"ghost",tone:"neutral",size:"sm",disabled:c||E<=o,haptic:b,testID:N?`${N}-minus`:void 0}):null,A&&h?(0,_jsxRuntime.jsx)(ValueBox,{draft:O,error:P,disabled:c,width:w,accessibilityLabel:`${i??"Value"} low`,styles:C,style:L,testID:N?`${N}-input-low`:void 0}):j?boundText(g??S(o)):null,(0,_jsxRuntime.jsx)(_reactNative.View,{style:C.sliderWrap,children:A?(0,_jsxRuntime.jsx)(_index5.Slider,{...X,range:!0,value:[E,K],onChange:k}):(0,_jsxRuntime.jsx)(_index5.Slider,{...X,value:E,onChange:k})}),A&&h?(0,_jsxRuntime.jsx)(ValueBox,{draft:G,error:P,disabled:c,width:w,accessibilityLabel:`${i??"Value"} high`,styles:C,style:L,testID:N?`${N}-input-high`:void 0}):j?boundText(I??S(d)):null,v&&!A?(0,_jsxRuntime.jsx)(_index4.IconButton,{icon:e=>(0,_jsxRuntime.jsx)(_index3.AppIcon,{name:"add",size:e.size,color:e.color}),onPress:()=>stepBy(1),accessibilityLabel:"Increase",variant:"ghost",tone:"neutral",size:"sm",disabled:c||E>=d,haptic:b,testID:N?`${N}-plus`:void 0}):null,f?(0,_jsxRuntime.jsx)(_reactNative.View,{children:(0,_index3.renderSlotIcon)(f,J)}):null,!A&&h?(0,_jsxRuntime.jsx)(ValueBox,{draft:O,error:P,disabled:c,width:w,accessibilityLabel:`${i??"Value"} value`,styles:C,style:L,testID:N?`${N}-input`:void 0}):null]}),(0,_jsxRuntime.jsx)(_FieldBase.FieldMessage,{text:P?r:n,error:P})]})});SliderField.displayName="SliderField";const buildStyles=e=>_reactNative.StyleSheet.create({container:{width:"100%"},labelRow:{flexDirection:"row",alignItems:"center",gap:e.space.xs},unit:{fontSize:e.text.xs.size},infoButton:{marginLeft:e.space.xxs},row:{flexDirection:"row",alignItems:"center",gap:e.space.sm},rowWithBubble:{marginTop:e.space.lg},sliderWrap:{flex:1,paddingHorizontal:e.space.sm},bound:{fontSize:e.text.sm.size,fontVariant:["tabular-nums"]},bubbleText:{fontSize:e.text.xs.size,fontVariant:["tabular-nums"]},boxInput:{flex:1,padding:e.space.none,margin:e.space.none,includeFontPadding:!1}});var _default=exports.default=SliderField;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.SliderField=void 0;var _react=require("react"),_reactNative=require("react-native"),_index=require("../../hooks/index.js"),_index2=require("../../theme/index.js"),_hitSlop=require("../../utils/hitSlop.js"),_index3=require("../AppIcon/index.js"),_FieldBase=require("../FieldBase/FieldBase.js"),_index4=require("../IconButton/index.js"),_index5=require("../Slider/index.js"),_valueText=require("../Slider/valueText.js"),_index6=require("../Tooltip/index.js"),_jsxRuntime=require("react/jsx-runtime");const DEFAULT_INPUT_WIDTH=72,defaultFormatValue=e=>String(e),stepDecimals=e=>String(e).split(".")[1]?.length??0,ValueBox=({draft:e,error:t,disabled:i,width:l,accessibilityLabel:s,styles:a,style:n,testID:r})=>{const o=(0,_index2.useTheme)(),d=(0,_index2.resolveFieldSize)(o,"sm"),u=(0,_FieldBase.resolveFieldTextStyle)(o,{disabled:i}),c=(0,_react.useRef)(null),x=(0,_react.useCallback)(()=>{i||c.current?.focus()},[i]);return(0,_jsxRuntime.jsx)(_FieldBase.FieldBase,{size:"sm",focused:e.editing,disabled:i,error:t,filled:!0,width:l,onPress:x,pressFeedback:!1,paddingHorizontal:o.space.sm,gap:o.space.xs,trailing:t?(0,_jsxRuntime.jsx)(_index3.AppIcon,{name:"info-circle",size:d.icon,color:o.colors["danger-text"]}):void 0,style:n,children:(0,_jsxRuntime.jsx)(_reactNative.TextInput,{ref:c,style:[a.boxInput,{color:u.color,fontSize:d.text,...u.weightStyle}],value:e.text,onChangeText:e.onChangeText,onFocus:e.onFocus,onBlur:e.onBlur,onSubmitEditing:e.onBlur,editable:!i,keyboardType:"decimal-pad",returnKeyType:"done",textAlign:"center",selectionColor:o.colors.primary,accessibilityLabel:s,accessibilityState:{disabled:i},"aria-disabled":i,testID:r})})},SliderField=exports.SliderField=(0,_react.forwardRef)((e,t)=>{const{label:i,unit:l,info:s,required:a=!1,helperText:n,error:r,min:o=0,max:d=100,step:u=1,disabled:c=!1,tone:x="primary",size:_,variant:m,haptic:b,showBubble:p=!0,showBounds:h=!0,showInput:j=!1,showStepper:v=!1,startIcon:y,endIcon:f,startLabel:g,endLabel:S,formatValue:I=defaultFormatValue,parseInput:T,animationDuration:R,inputWidth:w=DEFAULT_INPUT_WIDTH,accessibilityLabel:F,style:B,labelStyle:V,boundStyle:z,sliderStyle:D,inputStyle:L,testID:N}=e,q=(0,_index2.useTheme)(),C=(0,_react.useMemo)(()=>buildStyles(q),[q]),$=R??q.motion.duration.fast,A=!0===e.range,M=!0===r||(0,_FieldBase.hasFieldText)(r),P=stepDecimals(u),[W,k]=(0,_index.useControllableState)({value:e.value,defaultValue:e.defaultValue??(A?[o,d]:o),onChange:e.onChange}),[H,U]=A?W:[W,d],E=(0,_valueText.clampValue)(Math.min(H,U),o,d),K=(0,_valueText.clampValue)(Math.max(H,U),o,d),O=(0,_valueText.useValueDraft)({value:E,min:o,max:d,step:u,format:I,parse:T,onChange:e=>k(A?[Math.min(e,K),K]:e)}),G=(0,_valueText.useValueDraft)({value:K,min:o,max:d,step:u,format:I,parse:T,onChange:e=>k([E,Math.max(e,E)])}),stepBy=e=>{const t=(0,_valueText.snapValue)(E+e*u,o,d,u);t!==E&&k(t)},J={color:c?q.colors["text-disabled"]:q.colors["text-muted"],size:(0,_index2.resolveFieldSize)(q,"md").icon,disabled:c},Q=[C.bubbleText,{color:(0,_valueText.sliderToneInk)(q,x),fontWeight:q.weight.semibold}],boundText=e=>(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[C.bound,{color:c?q.colors["text-disabled"]:q.colors["text-muted"]},z],children:e}),X={min:o,max:d,step:u,disabled:c,tone:x,size:_,variant:m,haptic:b,showLabel:!!p&&"always",renderLabel:p?e=>(0,_jsxRuntime.jsx)(_valueText.CountingText,{value:e,format:I,decimals:P,duration:$,style:Q,testID:N&&!A?`${N}-bubble`:void 0}):void 0,accessibilityLabel:F??i,style:D,testID:N?`${N}-slider`:void 0};return(0,_jsxRuntime.jsxs)(_reactNative.View,{ref:t,style:[C.container,B],testID:N,children:[i?(0,_jsxRuntime.jsxs)(_reactNative.View,{style:C.labelRow,children:[(0,_jsxRuntime.jsx)(_FieldBase.FieldLabel,{required:a,style:V,children:i}),l?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[C.unit,{color:q.colors["text-subtle"]}],children:l}):null,s?(0,_jsxRuntime.jsx)(_index6.Tooltip,{content:s,trigger:"press",placement:"top",children:(0,_jsxRuntime.jsx)(_reactNative.Pressable,{accessibilityRole:"button",accessibilityLabel:`About ${i}`,hitSlop:8,...(0,_hitSlop.hitSlopMarker)(8),style:C.infoButton,children:(0,_jsxRuntime.jsx)(_index3.AppIcon,{name:"info-circle",variant:"bold",size:16,color:q.colors["text-subtle"]})})}):null]}):null,(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[C.row,p?C.rowWithBubble:null],children:[y?(0,_jsxRuntime.jsx)(_reactNative.View,{children:(0,_index3.renderSlotIcon)(y,J)}):null,v&&!A?(0,_jsxRuntime.jsx)(_index4.IconButton,{icon:e=>(0,_jsxRuntime.jsx)(_index3.AppIcon,{name:"minus",size:e.size,color:e.color}),onPress:()=>stepBy(-1),accessibilityLabel:"Decrease",variant:"ghost",tone:"neutral",size:"sm",disabled:c||E<=o,haptic:b,testID:N?`${N}-minus`:void 0}):null,A&&j?(0,_jsxRuntime.jsx)(ValueBox,{draft:O,error:M,disabled:c,width:w,accessibilityLabel:`${i??"Value"} low`,styles:C,style:L,testID:N?`${N}-input-low`:void 0}):h?boundText(g??I(o)):null,(0,_jsxRuntime.jsx)(_reactNative.View,{style:C.sliderWrap,children:A?(0,_jsxRuntime.jsx)(_index5.Slider,{...X,range:!0,value:[E,K],onChange:k}):(0,_jsxRuntime.jsx)(_index5.Slider,{...X,value:E,onChange:k})}),A&&j?(0,_jsxRuntime.jsx)(ValueBox,{draft:G,error:M,disabled:c,width:w,accessibilityLabel:`${i??"Value"} high`,styles:C,style:L,testID:N?`${N}-input-high`:void 0}):h?boundText(S??I(d)):null,v&&!A?(0,_jsxRuntime.jsx)(_index4.IconButton,{icon:e=>(0,_jsxRuntime.jsx)(_index3.AppIcon,{name:"add",size:e.size,color:e.color}),onPress:()=>stepBy(1),accessibilityLabel:"Increase",variant:"ghost",tone:"neutral",size:"sm",disabled:c||E>=d,haptic:b,testID:N?`${N}-plus`:void 0}):null,f?(0,_jsxRuntime.jsx)(_reactNative.View,{children:(0,_index3.renderSlotIcon)(f,J)}):null,!A&&j?(0,_jsxRuntime.jsx)(ValueBox,{draft:O,error:M,disabled:c,width:w,accessibilityLabel:`${i??"Value"} value`,styles:C,style:L,testID:N?`${N}-input`:void 0}):null]}),(0,_jsxRuntime.jsx)(_FieldBase.FieldMessage,{text:M?r:n,error:M})]})});SliderField.displayName="SliderField";const buildStyles=e=>_reactNative.StyleSheet.create({container:{width:"100%"},labelRow:{flexDirection:"row",alignItems:"center",gap:e.space.xs},unit:{fontSize:e.text.xs.size},infoButton:{marginLeft:e.space.xxs},row:{flexDirection:"row",alignItems:"center",gap:e.space.sm},rowWithBubble:{marginTop:e.space.lg},sliderWrap:{flex:1,paddingHorizontal:e.space.sm},bound:{fontSize:e.text.sm.size,fontVariant:["tabular-nums"]},bubbleText:{fontSize:e.text.xs.size,fontVariant:["tabular-nums"]},boxInput:{flex:1,padding:e.space.none,margin:e.space.none,includeFontPadding:!1}});var _default=exports.default=SliderField;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Stepper=void 0;var _react=require("react"),_reactNative=require("react-native"),_index=require("../../theme/index.js"),_corners=require("../../utils/corners.js"),_hapticUtils=require("../../utils/hapticUtils.js"),_index2=require("../Skeleton/index.js"),_jsxRuntime=require("react/jsx-runtime");const CIRCLE_SIZE=24,SEGMENT_HEIGHT=4,PULSE_SIZE=32,PULSE_DURATION=1100,toneColorFor=(e,t)=>"success"===t?e.colors.success:e.colors.primary,toneOnColorFor=(e,t)=>"success"===t?e.colors["on-success"]:e.colors["on-primary"],StepCircle=({index:e,step:t,status:i,toneColor:s,upcomingColor:r,upcomingFillColor:n,textOnColor:o,upcomingTextColor:a,interactive:l,canPress:c,totalSteps:u,onPress:d,pulseEnabled:x,circleStyles:m,circleSlotStyle:p})=>{const _="active"===i,h=(0,_index.useTheme)(),v=(0,_react.useRef)((0,_index.createAnimatedValue)(1)).current,y=(0,_react.useRef)((0,_index.createAnimatedValue)(.5)).current;(0,_react.useEffect)(()=>{if(!_||!x)return v.setValue(1),void y.setValue(0);const e=_reactNative.Animated.loop(_reactNative.Animated.parallel([_reactNative.Animated.sequence([_reactNative.Animated.timing(v,{toValue:1.4,duration:1100,easing:_reactNative.Easing.out(_reactNative.Easing.ease),useNativeDriver:!0}),_reactNative.Animated.timing(v,{toValue:1,duration:0,useNativeDriver:!0})]),_reactNative.Animated.sequence([_reactNative.Animated.timing(y,{toValue:0,duration:1100,easing:_reactNative.Easing.out(_reactNative.Easing.ease),useNativeDriver:!0}),_reactNative.Animated.timing(y,{toValue:.5,duration:0,useNativeDriver:!0})])]));return e.start(),()=>e.stop()},[_,v,y,x]);const j="upcoming"===i?n:s,g="upcoming"===i?r:s,b="upcoming"===i?a:o,S="complete"===i,R=`Step ${e+1} of ${u}, ${t.label}, ${i}`,f=(0,_jsxRuntime.jsxs)(_reactNative.View,{style:m.relative,children:[_&&x?(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{pointerEvents:"none",style:[m.pulse,{width:32,height:32,borderRadius:h.radius.pill,..._corners.smoothCorners,backgroundColor:s,opacity:y,transform:[{scale:v}]}]}):null,(0,_jsxRuntime.jsx)(_reactNative.View,{style:[m.circle,{width:24,height:24,borderRadius:h.radius.pill,..._corners.smoothCorners,backgroundColor:j,borderColor:g},p],children:t.icon?t.icon:S?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[m.glyph,{color:b}],children:"✓"}):(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[m.glyph,{color:b}],children:e+1})})]});return l?(0,_jsxRuntime.jsx)(_reactNative.Pressable,{onPress:()=>d(e),disabled:!c,accessibilityRole:"button",accessibilityLabel:R,accessibilityState:{selected:_,disabled:!c},"aria-selected":_,"aria-disabled":!c,hitSlop:8,children:f}):(0,_jsxRuntime.jsx)(_reactNative.View,{accessibilityRole:"text",accessibilityLabel:R,accessibilityState:{selected:_},"aria-selected":_,children:f})},buildCircleStyles=e=>_reactNative.StyleSheet.create({relative:{alignItems:"center",justifyContent:"center"},pulse:{position:"absolute"},circle:{borderWidth:2,alignItems:"center",justifyContent:"center"},glyph:{fontSize:e.text.sm.size,fontWeight:"600",includeFontPadding:!1}}),Stepper=exports.Stepper=(0,_react.forwardRef)((e,t)=>{const{steps:i,activeStep:s,defaultActiveStep:r=0,pressMode:n="none",onStepPress:o,onActiveStepChange:a,variant:l="horizontal",tone:c="primary",formatCaption:u,showCaption:d=!0,loading:x=!1,accessibilityLabel:m,style:p,containerStyle:_,circleStyle:h,labelStyle:v,connectorStyle:y,haptic:j,testID:g}=e,b=(0,_index.useTheme)(),S=b.settings.components.stepper?.pulseAnimation??!1,R=(0,_hapticUtils.resolveHaptic)(j,"selection"),f=(0,_react.useMemo)(()=>buildStyles(b),[b]),w=(0,_react.useMemo)(()=>buildCircleStyles(b),[b]),C=toneColorFor(b,c),N=b.colors.border,V=b.colors.bg,k=b.colors["text-muted"],I=toneOnColorFor(b,c),A=i.length,L="none"!==n,T=void 0!==s,[$,D]=(0,_react.useState)(r),E=T?s:$,P=null==E||E<0?null:E,F=i.map((e,t)=>(e=>null===P?"upcoming":e<P?"complete":e===P?"active":"upcoming")(t)),z=F.filter(e=>"upcoming"!==e).length,O=F.filter(e=>"complete"===e).length,canPressStatus=e=>"back"===n?"complete"===e:L,handleStepPress=e=>{if(!canPressStatus(F[e]))return;R&&(0,_hapticUtils.triggerHaptic)(R),o?.(e);const t="select"===n&&e===P?null:e;T||D(t),a?.(t)},B=(0,_react.useRef)((0,_index.createAnimatedValue)(z)).current,q=(0,_react.useRef)(z);(0,_react.useEffect)(()=>{const e=q.current;if(e===z)return;q.current=z;const t=_reactNative.Animated.timing(B,{toValue:z,duration:b.motion.duration.default*Math.abs(z-e),easing:_reactNative.Easing.linear,useNativeDriver:!1});return t.start(),()=>t.stop()},[z,B,b.motion]);const sliceOf=e=>B.interpolate({inputRange:[e,e+1],outputRange:["0%","100%"],extrapolate:"clamp"}),M=A<=1?"0%":B.interpolate({inputRange:[1,A],outputRange:["0%","100%"],extrapolate:"clamp"}),U=null!==P&&P<A?P:null,H=m??(null!==U?`Progress: step ${U+1} of ${A}`:`Progress: ${O} of ${A} steps done`),[G,W]=(0,_react.useState)(0),Z=A>0&&G>0?G/(2*A):0,J=(0,_jsxRuntime.jsx)(_reactNative.View,{ref:t,style:[f.container,_,p],testID:g,accessibilityRole:"progressbar",accessibilityLabel:H,accessibilityValue:{min:0,max:A,now:z},children:"segmented"===l?(()=>{const e=null!==U?i[U]:void 0,t=d?u?u(U,A,e):null!==U?`Step ${U+1} of ${A}${e?.label?` · ${e.label}`:""}`:`${O} of ${A} done`:"";return(0,_jsxRuntime.jsxs)(_reactNative.View,{children:[d?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[f.sCaption,{color:b.colors["text-muted"],fontSize:b.text.sm.size,marginBottom:b.space.sm},v],numberOfLines:1,children:t}):null,(0,_jsxRuntime.jsx)(_reactNative.View,{style:f.sRow,children:i.map((e,t)=>{const i=F[t],s=`Step ${t+1} of ${A}, ${e.label}, ${i}`,r=(0,_jsxRuntime.jsx)(_reactNative.View,{testID:g?`${g}-segment-${t}`:void 0,style:[f.sTrack,{backgroundColor:N},y],children:(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:[f.sFill,{backgroundColor:C,width:sliceOf(t)}]})});if(L){const n=canPressStatus(i);return(0,_jsxRuntime.jsx)(_reactNative.Pressable,{style:f.sItem,onPress:()=>handleStepPress(t),disabled:!n,accessibilityRole:"button",accessibilityLabel:s,accessibilityState:{selected:"active"===i,disabled:!n},"aria-selected":"active"===i,"aria-disabled":!n,hitSlop:{top:12,bottom:12},children:r},e.key)}return(0,_jsxRuntime.jsx)(_reactNative.View,{style:f.sItem,accessibilityRole:"text",accessibilityLabel:s,accessibilityState:{selected:"active"===i},"aria-selected":"active"===i,children:r},e.key)})})]})})():"vertical"===l?(0,_jsxRuntime.jsx)(_reactNative.View,{style:f.vCol,children:i.map((e,t)=>{const i=F[t],s=t===A-1;return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:f.vRow,children:[(0,_jsxRuntime.jsxs)(_reactNative.View,{style:f.vLeft,children:[(0,_jsxRuntime.jsx)(StepCircle,{index:t,step:e,status:i,toneColor:C,upcomingColor:N,upcomingFillColor:V,onPressColor:C,textOnColor:I,upcomingTextColor:k,interactive:L,canPress:canPressStatus(i),totalSteps:A,onPress:handleStepPress,pulseEnabled:S,circleStyles:w,circleSlotStyle:h}),s?null:(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[f.vConnectorContainer,y],children:[(0,_jsxRuntime.jsx)(_reactNative.View,{style:[f.vConnectorTrack,{backgroundColor:N}]}),(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:[f.vConnectorFill,{backgroundColor:C,height:sliceOf(t+1)}]})]})]}),(0,_jsxRuntime.jsxs)(_reactNative.View,{style:f.vBody,children:[(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[f.vLabel,{color:"upcoming"===i?b.colors["text-subtle"]:b.colors["text-body"],fontSize:b.text.base.size,fontWeight:b.weight.semibold},v],numberOfLines:1,children:e?.label??" "}),e.description?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[f.vDescription,{color:b.colors["text-muted"],fontSize:b.text.sm.size}],numberOfLines:3,children:e.description}):null]})]},e.key)})}):(0,_jsxRuntime.jsxs)(_reactNative.View,{style:f.hRow,onLayout:e=>W(e.nativeEvent.layout.width),children:[(0,_jsxRuntime.jsxs)(_reactNative.View,{pointerEvents:"none",style:[f.hConnectorContainer,{left:Z,right:Z},y],children:[(0,_jsxRuntime.jsx)(_reactNative.View,{style:[f.hConnectorTrack,{backgroundColor:N}]}),(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:[f.hConnectorFill,{backgroundColor:C,width:M}]})]}),i.map((e,t)=>{const i=F[t];return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:f.hStepItem,children:[(0,_jsxRuntime.jsx)(StepCircle,{index:t,step:e,status:i,toneColor:C,upcomingColor:N,upcomingFillColor:V,onPressColor:C,textOnColor:I,upcomingTextColor:k,interactive:L,canPress:canPressStatus(i),totalSteps:A,onPress:handleStepPress,pulseEnabled:S,circleStyles:w,circleSlotStyle:h}),(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[f.hLabel,{color:"upcoming"===i?b.colors["text-subtle"]:b.colors["text-body"],fontSize:b.text.xs.size},v],numberOfLines:1,children:e?.label??" "})]},e.key)})]})});return x?(0,_jsxRuntime.jsx)(StepperSkeleton,{...e}):J});Stepper.displayName="Stepper";const StepperSkeleton=({steps:e,variant:t="horizontal",showCaption:i=!0,containerStyle:s,style:r,testID:n})=>{const o=(0,_index.useTheme)(),a=(0,_react.useMemo)(()=>buildStyles(o),[o]),l=(0,_react.useMemo)(()=>buildSkeletonStyles(o),[o]),c=e.length||3;return"segmented"===t?(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[a.container,s,r],testID:n,accessibilityRole:"progressbar",accessibilityState:{busy:!0},"aria-busy":!0,children:[i?(0,_jsxRuntime.jsx)(_index2.Skeleton,{shape:"text",width:"45%",height:14,style:{marginBottom:o.space.sm}}):null,(0,_jsxRuntime.jsx)(_reactNative.View,{style:a.sRow,children:Array.from({length:c}).map((e,t)=>(0,_jsxRuntime.jsx)(_reactNative.View,{style:a.sItem,children:(0,_jsxRuntime.jsx)(_index2.Skeleton,{width:"100%",height:4,radius:"pill"})},`sk-step-${t}`))})]}):"vertical"===t?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[a.container,s,r],testID:n,accessibilityRole:"progressbar",accessibilityState:{busy:!0},"aria-busy":!0,children:(0,_jsxRuntime.jsx)(_reactNative.View,{style:l.vCol,children:Array.from({length:c}).map((e,t)=>{const i=t===c-1;return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:l.vRow,children:[(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[l.vLeft,{width:32}],children:[(0,_jsxRuntime.jsx)(_index2.Skeleton,{shape:"circle",width:24,height:24}),i?null:(0,_jsxRuntime.jsx)(_index2.Skeleton,{width:2,height:36})]}),(0,_jsxRuntime.jsxs)(_reactNative.View,{style:l.vBody,children:[(0,_jsxRuntime.jsx)(_index2.Skeleton,{shape:"text",width:"55%",height:16,style:{marginBottom:o.space.xs}}),(0,_jsxRuntime.jsx)(_index2.Skeleton,{shape:"text",width:"80%",height:12})]})]},`sk-step-${t}`)})})}):(0,_jsxRuntime.jsx)(_reactNative.View,{style:[a.container,s,r],testID:n,accessibilityRole:"progressbar",accessibilityState:{busy:!0},"aria-busy":!0,children:(0,_jsxRuntime.jsxs)(_reactNative.View,{style:a.hRow,children:[(0,_jsxRuntime.jsx)(_reactNative.View,{pointerEvents:"none",style:[a.hConnectorContainer,{left:50/c+"%",right:50/c+"%"}],children:(0,_jsxRuntime.jsx)(_index2.Skeleton,{width:"100%",height:2,radius:"pill"})}),Array.from({length:c}).map((e,t)=>(0,_jsxRuntime.jsxs)(_reactNative.View,{style:a.hStepItem,children:[(0,_jsxRuntime.jsx)(_index2.Skeleton,{shape:"circle",width:24,height:24}),(0,_jsxRuntime.jsx)(_index2.Skeleton,{shape:"text",width:"80%",height:12,style:{marginTop:o.space.xs}})]},`sk-step-${t}`))]})})};StepperSkeleton.displayName="StepperSkeleton",Stepper.Skeleton=StepperSkeleton;const buildSkeletonStyles=e=>_reactNative.StyleSheet.create({vCol:{flexDirection:"column"},vRow:{flexDirection:"row",alignItems:"flex-start"},vLeft:{alignItems:"center"},vBody:{flex:1,paddingLeft:e.space.md,paddingBottom:e.space.lg}}),buildStyles=e=>_reactNative.StyleSheet.create({container:{width:"100%"},hRow:{flexDirection:"row",alignItems:"flex-start",justifyContent:"space-between",position:"relative"},hConnectorContainer:{position:"absolute",top:11,height:2,flexDirection:"row",alignItems:"center"},hConnectorTrack:{position:"absolute",left:0,right:0,height:2,borderRadius:e.radius.pill,..._corners.smoothCorners},hConnectorFill:{position:"absolute",left:0,height:2,borderRadius:e.radius.pill,..._corners.smoothCorners},hStepItem:{alignItems:"center",flex:1},hLabel:{marginTop:e.space.xs,textAlign:"center"},vCol:{flexDirection:"column"},vRow:{flexDirection:"row",alignItems:"flex-start"},vLeft:{alignItems:"center",alignSelf:"stretch",width:32},vConnectorContainer:{flex:1,width:2,minHeight:32,position:"relative",alignSelf:"center"},vConnectorTrack:{position:"absolute",top:0,bottom:0,width:2,borderRadius:e.radius.pill,..._corners.smoothCorners},vConnectorFill:{position:"absolute",top:0,width:2,borderRadius:e.radius.pill,..._corners.smoothCorners},vBody:{flex:1,paddingLeft:e.space.sm,paddingBottom:e.space.md},vLabel:{marginBottom:e.space.xxs},vDescription:{},sCaption:{includeFontPadding:!1},sRow:{flexDirection:"row",columnGap:e.space.xs},sItem:{flex:1},sTrack:{height:4,borderRadius:e.radius.pill,overflow:"hidden"},sFill:{height:4,borderRadius:e.radius.pill}});var _default=exports.default=Stepper;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Stepper=void 0;var _react=require("react"),_reactNative=require("react-native"),_index=require("../../theme/index.js"),_corners=require("../../utils/corners.js"),_hapticUtils=require("../../utils/hapticUtils.js"),_hitSlop=require("../../utils/hitSlop.js"),_index2=require("../Skeleton/index.js"),_jsxRuntime=require("react/jsx-runtime");const CIRCLE_SIZE=24,SEGMENT_HEIGHT=4,PULSE_SIZE=32,PULSE_DURATION=1100,toneColorFor=(e,t)=>"success"===t?e.colors.success:e.colors.primary,toneOnColorFor=(e,t)=>"success"===t?e.colors["on-success"]:e.colors["on-primary"],StepCircle=({index:e,step:t,status:i,toneColor:s,upcomingColor:r,upcomingFillColor:n,textOnColor:o,upcomingTextColor:l,interactive:a,canPress:c,totalSteps:u,onPress:d,pulseEnabled:p,circleStyles:x,circleSlotStyle:m})=>{const _="active"===i,h=(0,_index.useTheme)(),v=(0,_react.useRef)((0,_index.createAnimatedValue)(1)).current,y=(0,_react.useRef)((0,_index.createAnimatedValue)(.5)).current;(0,_react.useEffect)(()=>{if(!_||!p)return v.setValue(1),void y.setValue(0);const e=_reactNative.Animated.loop(_reactNative.Animated.parallel([_reactNative.Animated.sequence([_reactNative.Animated.timing(v,{toValue:1.4,duration:1100,easing:_reactNative.Easing.out(_reactNative.Easing.ease),useNativeDriver:!0}),_reactNative.Animated.timing(v,{toValue:1,duration:0,useNativeDriver:!0})]),_reactNative.Animated.sequence([_reactNative.Animated.timing(y,{toValue:0,duration:1100,easing:_reactNative.Easing.out(_reactNative.Easing.ease),useNativeDriver:!0}),_reactNative.Animated.timing(y,{toValue:.5,duration:0,useNativeDriver:!0})])]));return e.start(),()=>e.stop()},[_,v,y,p]);const j="upcoming"===i?n:s,g="upcoming"===i?r:s,b="upcoming"===i?l:o,S="complete"===i,R=`Step ${e+1} of ${u}, ${t.label}, ${i}`,f=(0,_jsxRuntime.jsxs)(_reactNative.View,{style:x.relative,children:[_&&p?(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{pointerEvents:"none",style:[x.pulse,{width:32,height:32,borderRadius:h.radius.pill,..._corners.smoothCorners,backgroundColor:s,opacity:y,transform:[{scale:v}]}]}):null,(0,_jsxRuntime.jsx)(_reactNative.View,{style:[x.circle,{width:24,height:24,borderRadius:h.radius.pill,..._corners.smoothCorners,backgroundColor:j,borderColor:g},m],children:t.icon?t.icon:S?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[x.glyph,{color:b}],children:"✓"}):(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[x.glyph,{color:b}],children:e+1})})]});return a?(0,_jsxRuntime.jsx)(_reactNative.Pressable,{onPress:()=>d(e),disabled:!c,accessibilityRole:"button",accessibilityLabel:R,accessibilityState:{selected:_,disabled:!c},"aria-selected":_,"aria-disabled":!c,hitSlop:8,...(0,_hitSlop.hitSlopMarker)(8),children:f}):(0,_jsxRuntime.jsx)(_reactNative.View,{accessibilityRole:"text",accessibilityLabel:R,accessibilityState:{selected:_},"aria-selected":_,children:f})},buildCircleStyles=e=>_reactNative.StyleSheet.create({relative:{alignItems:"center",justifyContent:"center"},pulse:{position:"absolute"},circle:{borderWidth:2,alignItems:"center",justifyContent:"center"},glyph:{fontSize:e.text.sm.size,fontWeight:"600",includeFontPadding:!1}}),Stepper=exports.Stepper=(0,_react.forwardRef)((e,t)=>{const{steps:i,activeStep:s,defaultActiveStep:r=0,pressMode:n="none",onStepPress:o,onActiveStepChange:l,variant:a="horizontal",tone:c="primary",formatCaption:u,showCaption:d=!0,loading:p=!1,accessibilityLabel:x,style:m,containerStyle:_,circleStyle:h,labelStyle:v,connectorStyle:y,haptic:j,testID:g}=e,b=(0,_index.useTheme)(),S=b.settings.components.stepper?.pulseAnimation??!1,R=(0,_hapticUtils.resolveHaptic)(j,"selection"),f=(0,_react.useMemo)(()=>buildStyles(b),[b]),w=(0,_react.useMemo)(()=>buildCircleStyles(b),[b]),C=toneColorFor(b,c),N=b.colors.border,V=b.colors.bg,k=b.colors["text-muted"],I=toneOnColorFor(b,c),A=i.length,L="none"!==n,T=void 0!==s,[$,D]=(0,_react.useState)(r),E=T?s:$,P=null==E||E<0?null:E,F=i.map((e,t)=>(e=>null===P?"upcoming":e<P?"complete":e===P?"active":"upcoming")(t)),z=F.filter(e=>"upcoming"!==e).length,O=F.filter(e=>"complete"===e).length,canPressStatus=e=>"back"===n?"complete"===e:L,handleStepPress=e=>{if(!canPressStatus(F[e]))return;R&&(0,_hapticUtils.triggerHaptic)(R),o?.(e);const t="select"===n&&e===P?null:e;T||D(t),l?.(t)},q=(0,_react.useRef)((0,_index.createAnimatedValue)(z)).current,B=(0,_react.useRef)(z);(0,_react.useEffect)(()=>{const e=B.current;if(e===z)return;B.current=z;const t=_reactNative.Animated.timing(q,{toValue:z,duration:b.motion.duration.default*Math.abs(z-e),easing:_reactNative.Easing.linear,useNativeDriver:!1});return t.start(),()=>t.stop()},[z,q,b.motion]);const sliceOf=e=>q.interpolate({inputRange:[e,e+1],outputRange:["0%","100%"],extrapolate:"clamp"}),M=A<=1?"0%":q.interpolate({inputRange:[1,A],outputRange:["0%","100%"],extrapolate:"clamp"}),U=null!==P&&P<A?P:null,H=x??(null!==U?`Progress: step ${U+1} of ${A}`:`Progress: ${O} of ${A} steps done`),[G,W]=(0,_react.useState)(0),Z=A>0&&G>0?G/(2*A):0,J=(0,_jsxRuntime.jsx)(_reactNative.View,{ref:t,style:[f.container,_,m],testID:g,accessibilityRole:"progressbar",accessibilityLabel:H,accessibilityValue:{min:0,max:A,now:z},children:"segmented"===a?(()=>{const e=null!==U?i[U]:void 0,t=d?u?u(U,A,e):null!==U?`Step ${U+1} of ${A}${e?.label?` · ${e.label}`:""}`:`${O} of ${A} done`:"";return(0,_jsxRuntime.jsxs)(_reactNative.View,{children:[d?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[f.sCaption,{color:b.colors["text-muted"],fontSize:b.text.sm.size,marginBottom:b.space.sm},v],numberOfLines:1,children:t}):null,(0,_jsxRuntime.jsx)(_reactNative.View,{style:f.sRow,children:i.map((e,t)=>{const i=F[t],s=`Step ${t+1} of ${A}, ${e.label}, ${i}`,r=(0,_jsxRuntime.jsx)(_reactNative.View,{testID:g?`${g}-segment-${t}`:void 0,style:[f.sTrack,{backgroundColor:N},y],children:(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:[f.sFill,{backgroundColor:C,width:sliceOf(t)}]})});if(L){const n=canPressStatus(i);return(0,_jsxRuntime.jsx)(_reactNative.Pressable,{style:f.sItem,onPress:()=>handleStepPress(t),disabled:!n,accessibilityRole:"button",accessibilityLabel:s,accessibilityState:{selected:"active"===i,disabled:!n},"aria-selected":"active"===i,"aria-disabled":!n,hitSlop:{top:12,bottom:12},...(0,_hitSlop.hitSlopMarker)({top:12,bottom:12}),children:r},e.key)}return(0,_jsxRuntime.jsx)(_reactNative.View,{style:f.sItem,accessibilityRole:"text",accessibilityLabel:s,accessibilityState:{selected:"active"===i},"aria-selected":"active"===i,children:r},e.key)})})]})})():"vertical"===a?(0,_jsxRuntime.jsx)(_reactNative.View,{style:f.vCol,children:i.map((e,t)=>{const i=F[t],s=t===A-1;return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:f.vRow,children:[(0,_jsxRuntime.jsxs)(_reactNative.View,{style:f.vLeft,children:[(0,_jsxRuntime.jsx)(StepCircle,{index:t,step:e,status:i,toneColor:C,upcomingColor:N,upcomingFillColor:V,onPressColor:C,textOnColor:I,upcomingTextColor:k,interactive:L,canPress:canPressStatus(i),totalSteps:A,onPress:handleStepPress,pulseEnabled:S,circleStyles:w,circleSlotStyle:h}),s?null:(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[f.vConnectorContainer,y],children:[(0,_jsxRuntime.jsx)(_reactNative.View,{style:[f.vConnectorTrack,{backgroundColor:N}]}),(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:[f.vConnectorFill,{backgroundColor:C,height:sliceOf(t+1)}]})]})]}),(0,_jsxRuntime.jsxs)(_reactNative.View,{style:f.vBody,children:[(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[f.vLabel,{color:"upcoming"===i?b.colors["text-subtle"]:b.colors["text-body"],fontSize:b.text.base.size,fontWeight:b.weight.semibold},v],numberOfLines:1,children:e?.label??" "}),e.description?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[f.vDescription,{color:b.colors["text-muted"],fontSize:b.text.sm.size}],numberOfLines:3,children:e.description}):null]})]},e.key)})}):(0,_jsxRuntime.jsxs)(_reactNative.View,{style:f.hRow,onLayout:e=>W(e.nativeEvent.layout.width),children:[(0,_jsxRuntime.jsxs)(_reactNative.View,{pointerEvents:"none",style:[f.hConnectorContainer,{left:Z,right:Z},y],children:[(0,_jsxRuntime.jsx)(_reactNative.View,{style:[f.hConnectorTrack,{backgroundColor:N}]}),(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:[f.hConnectorFill,{backgroundColor:C,width:M}]})]}),i.map((e,t)=>{const i=F[t];return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:f.hStepItem,children:[(0,_jsxRuntime.jsx)(StepCircle,{index:t,step:e,status:i,toneColor:C,upcomingColor:N,upcomingFillColor:V,onPressColor:C,textOnColor:I,upcomingTextColor:k,interactive:L,canPress:canPressStatus(i),totalSteps:A,onPress:handleStepPress,pulseEnabled:S,circleStyles:w,circleSlotStyle:h}),(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[f.hLabel,{color:"upcoming"===i?b.colors["text-subtle"]:b.colors["text-body"],fontSize:b.text.xs.size},v],numberOfLines:1,children:e?.label??" "})]},e.key)})]})});return p?(0,_jsxRuntime.jsx)(StepperSkeleton,{...e}):J});Stepper.displayName="Stepper";const StepperSkeleton=({steps:e,variant:t="horizontal",showCaption:i=!0,containerStyle:s,style:r,testID:n})=>{const o=(0,_index.useTheme)(),l=(0,_react.useMemo)(()=>buildStyles(o),[o]),a=(0,_react.useMemo)(()=>buildSkeletonStyles(o),[o]),c=e.length||3;return"segmented"===t?(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[l.container,s,r],testID:n,accessibilityRole:"progressbar",accessibilityState:{busy:!0},"aria-busy":!0,children:[i?(0,_jsxRuntime.jsx)(_index2.Skeleton,{shape:"text",width:"45%",height:14,style:{marginBottom:o.space.sm}}):null,(0,_jsxRuntime.jsx)(_reactNative.View,{style:l.sRow,children:Array.from({length:c}).map((e,t)=>(0,_jsxRuntime.jsx)(_reactNative.View,{style:l.sItem,children:(0,_jsxRuntime.jsx)(_index2.Skeleton,{width:"100%",height:4,radius:"pill"})},`sk-step-${t}`))})]}):"vertical"===t?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[l.container,s,r],testID:n,accessibilityRole:"progressbar",accessibilityState:{busy:!0},"aria-busy":!0,children:(0,_jsxRuntime.jsx)(_reactNative.View,{style:a.vCol,children:Array.from({length:c}).map((e,t)=>{const i=t===c-1;return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:a.vRow,children:[(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[a.vLeft,{width:32}],children:[(0,_jsxRuntime.jsx)(_index2.Skeleton,{shape:"circle",width:24,height:24}),i?null:(0,_jsxRuntime.jsx)(_index2.Skeleton,{width:2,height:36})]}),(0,_jsxRuntime.jsxs)(_reactNative.View,{style:a.vBody,children:[(0,_jsxRuntime.jsx)(_index2.Skeleton,{shape:"text",width:"55%",height:16,style:{marginBottom:o.space.xs}}),(0,_jsxRuntime.jsx)(_index2.Skeleton,{shape:"text",width:"80%",height:12})]})]},`sk-step-${t}`)})})}):(0,_jsxRuntime.jsx)(_reactNative.View,{style:[l.container,s,r],testID:n,accessibilityRole:"progressbar",accessibilityState:{busy:!0},"aria-busy":!0,children:(0,_jsxRuntime.jsxs)(_reactNative.View,{style:l.hRow,children:[(0,_jsxRuntime.jsx)(_reactNative.View,{pointerEvents:"none",style:[l.hConnectorContainer,{left:50/c+"%",right:50/c+"%"}],children:(0,_jsxRuntime.jsx)(_index2.Skeleton,{width:"100%",height:2,radius:"pill"})}),Array.from({length:c}).map((e,t)=>(0,_jsxRuntime.jsxs)(_reactNative.View,{style:l.hStepItem,children:[(0,_jsxRuntime.jsx)(_index2.Skeleton,{shape:"circle",width:24,height:24}),(0,_jsxRuntime.jsx)(_index2.Skeleton,{shape:"text",width:"80%",height:12,style:{marginTop:o.space.xs}})]},`sk-step-${t}`))]})})};StepperSkeleton.displayName="StepperSkeleton",Stepper.Skeleton=StepperSkeleton;const buildSkeletonStyles=e=>_reactNative.StyleSheet.create({vCol:{flexDirection:"column"},vRow:{flexDirection:"row",alignItems:"flex-start"},vLeft:{alignItems:"center"},vBody:{flex:1,paddingLeft:e.space.md,paddingBottom:e.space.lg}}),buildStyles=e=>_reactNative.StyleSheet.create({container:{width:"100%"},hRow:{flexDirection:"row",alignItems:"flex-start",justifyContent:"space-between",position:"relative"},hConnectorContainer:{position:"absolute",top:11,height:2,flexDirection:"row",alignItems:"center"},hConnectorTrack:{position:"absolute",left:0,right:0,height:2,borderRadius:e.radius.pill,..._corners.smoothCorners},hConnectorFill:{position:"absolute",left:0,height:2,borderRadius:e.radius.pill,..._corners.smoothCorners},hStepItem:{alignItems:"center",flex:1},hLabel:{marginTop:e.space.xs,textAlign:"center"},vCol:{flexDirection:"column"},vRow:{flexDirection:"row",alignItems:"flex-start"},vLeft:{alignItems:"center",alignSelf:"stretch",width:32},vConnectorContainer:{flex:1,width:2,minHeight:32,position:"relative",alignSelf:"center"},vConnectorTrack:{position:"absolute",top:0,bottom:0,width:2,borderRadius:e.radius.pill,..._corners.smoothCorners},vConnectorFill:{position:"absolute",top:0,width:2,borderRadius:e.radius.pill,..._corners.smoothCorners},vBody:{flex:1,paddingLeft:e.space.sm,paddingBottom:e.space.md},vLabel:{marginBottom:e.space.xxs},vDescription:{},sCaption:{includeFontPadding:!1},sRow:{flexDirection:"row",columnGap:e.space.xs},sItem:{flex:1},sTrack:{height:4,borderRadius:e.radius.pill,overflow:"hidden"},sFill:{height:4,borderRadius:e.radius.pill}});var _default=exports.default=Stepper;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Switch=void 0;var _react=require("react"),_reactNative=require("react-native"),_index=require("../../hooks/index.js"),_index2=require("../../theme/index.js"),_corners=require("../../utils/corners.js"),_hapticUtils=require("../../utils/hapticUtils.js"),_ChoiceText=require("../FieldBase/ChoiceText.js"),_FieldBase=require("../FieldBase/FieldBase.js"),_jsxRuntime=require("react/jsx-runtime");const toneColor=(e,t)=>{switch(t){case"success":return e.colors.success;case"warning":return e.colors.warning;case"danger":return e.colors.danger;default:return e.colors.primary}},Switch=exports.Switch=(0,_react.forwardRef)((e,t)=>{const{value:i,defaultValue:s,onChange:r,disabled:a=!1,size:n="md",tone:o="primary",label:c,description:l,error:d,labelLines:u,layout:h="inline",accessibilityLabel:p,haptic:_="selection",bounce:m=!1,style:b,containerStyle:x,trackStyle:f,thumbStyle:g,testID:y,...v}=e,[w,j]=(0,_index.useControllableState)({value:i,defaultValue:s??!1,onChange:r}),R=(0,_index2.useTheme)(),C=(0,_react.useMemo)(()=>(0,_index2.resolveSwitchSize)(R,n),[R,n]),S=R.colors.thumb,N=(0,_react.useMemo)(()=>buildStyles(R),[R]),T="dark"===R.mode?R.colors.neutral:R.colors["surface-disabled"],k=toneColor(R,o),V=(0,_react.useRef)((0,_index2.createAnimatedValue)(w?1:0)).current;(0,_react.useEffect)(()=>{const e=_reactNative.Animated.spring(V,{toValue:w?1:0,damping:R.motion.spring.snappy.damping,stiffness:R.motion.spring.snappy.stiffness,mass:R.motion.spring.snappy.mass,useNativeDriver:!0});return e.start(),()=>e.stop()},[w,V,R.motion.spring.snappy]);const A=(0,_react.useRef)((0,_index2.createAnimatedValue)(w?1:0)).current;(0,_react.useEffect)(()=>{const e=_reactNative.Animated.timing(A,{toValue:w?1:0,duration:R.motion.duration.fast,easing:_reactNative.Easing.out(_reactNative.Easing.ease),useNativeDriver:!1});return e.start(),()=>e.stop()},[w,A,R.motion.duration.fast]);const F=C.padding,D=C["track-width"]-C["thumb-size"]-C.padding,q=V.interpolate({inputRange:[0,1],outputRange:[F,D]}),B=A.interpolate({inputRange:[0,1],outputRange:[T,k]}),L=(0,_react.useRef)((0,_index2.createAnimatedValue)(1)).current,z=(0,_react.useRef)(!0);(0,_react.useEffect)(()=>{if(!m)return;if(z.current)return void(z.current=!1);const e=_reactNative.Animated.sequence([_reactNative.Animated.spring(L,{toValue:1.15,damping:10,stiffness:220,mass:1,useNativeDriver:!0}),_reactNative.Animated.spring(L,{toValue:1,damping:14,stiffness:240,mass:1,useNativeDriver:!0})]);return e.start(),()=>e.stop()},[w,m,L]);const handlePress=e=>{a||(!1!==_&&(0,_hapticUtils.triggerHaptic)(_),j(!w),v.onPressOut?.(e))},E=p??(0,_FieldBase.fieldTextAsString)(c),H=(0,_FieldBase.hasFieldText)(c)||(0,_ChoiceText.hasChoiceDetail)(l,d),P=(!0===d||(0,_FieldBase.hasFieldText)(d))&&!w&&!a,I="row"===h&&H,M=(0,_jsxRuntime.jsxs)(_reactNative.Animated.View,{style:[N.track,{width:C["track-width"],height:C["track-height"],borderRadius:R.radius.pill,..._corners.smoothCorners,backgroundColor:B},f],children:[P?(0,_jsxRuntime.jsx)(_reactNative.View,{pointerEvents:"none",style:[N.errorRing,{borderRadius:R.radius.pill,..._corners.smoothCorners,borderWidth:R.size.border,borderColor:R.colors["field-border-error"]}]}):null,(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:[N.thumb,R.shadow.card,{backgroundColor:S,width:C["thumb-size"],height:C["thumb-size"],borderRadius:R.radius.pill,..._corners.smoothCorners,transform:[{translateX:q},{scale:L}]},g]})]});if(I)return(0,_jsxRuntime.jsxs)(_reactNative.Pressable,{ref:t,onPress:handlePress,disabled:a,accessibilityRole:"switch",accessibilityLabel:E,accessibilityHint:v.accessibilityHint??(0,_FieldBase.fieldTextAsString)(l),accessibilityState:{checked:w,disabled:a},"aria-checked":w,"aria-disabled":a,testID:y,...v,style:({pressed:e})=>[N.row,N.spreadRow,(0,_ChoiceText.hasChoiceDetail)(l,d)?N.rowTop:null,{opacity:a?.55:e?.9:1},x,b],children:[(0,_jsxRuntime.jsx)(_ChoiceText.ChoiceText,{label:c,description:l,error:d,disabled:a,labelLines:u||void 0,descriptionLines:u||void 0,style:N.spreadText}),M]});const U=(0,_jsxRuntime.jsx)(_reactNative.Pressable,{ref:t,onPress:handlePress,disabled:a,accessibilityRole:"switch",accessibilityLabel:E,accessibilityHint:v.accessibilityHint??(0,_FieldBase.fieldTextAsString)(l),accessibilityState:{checked:w,disabled:a},"aria-checked":w,"aria-disabled":a,testID:y,hitSlop:8,...v,style:({pressed:e})=>[{opacity:a?.55:e?.9:1},H?null:b],children:M});return H?(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[N.row,(0,_ChoiceText.hasChoiceDetail)(l,d)?N.rowTop:null,x,b],children:[U,(0,_jsxRuntime.jsx)(_ChoiceText.ChoiceText,{label:c,description:l,error:d,disabled:a,labelLines:u||void 0,descriptionLines:u||void 0,style:N.text})]}):x?(0,_jsxRuntime.jsx)(_reactNative.View,{style:x,children:U}):U});Switch.displayName="Switch";const buildStyles=e=>_reactNative.StyleSheet.create({row:{flexDirection:"row",alignItems:"center"},track:{justifyContent:"center"},thumb:{position:"absolute",top:2},errorRing:{..._reactNative.StyleSheet.absoluteFill},rowTop:{alignItems:"flex-start"},text:{marginLeft:e.space.sm},spreadRow:{minHeight:44,justifyContent:"space-between"},spreadText:{flex:1,marginRight:e.space.md}});var _default=exports.default=Switch;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Switch=void 0;var _react=require("react"),_reactNative=require("react-native"),_index=require("../../hooks/index.js"),_index2=require("../../theme/index.js"),_corners=require("../../utils/corners.js"),_hapticUtils=require("../../utils/hapticUtils.js"),_hitSlop=require("../../utils/hitSlop.js"),_ChoiceText=require("../FieldBase/ChoiceText.js"),_FieldBase=require("../FieldBase/FieldBase.js"),_jsxRuntime=require("react/jsx-runtime");const toneColor=(e,t)=>{switch(t){case"success":return e.colors.success;case"warning":return e.colors.warning;case"danger":return e.colors.danger;default:return e.colors.primary}},Switch=exports.Switch=(0,_react.forwardRef)((e,t)=>{const{value:i,defaultValue:s,onChange:r,disabled:a=!1,size:n="md",tone:o="primary",label:l,description:c,error:d,labelLines:u,layout:h="inline",accessibilityLabel:p,haptic:_="selection",bounce:m=!1,style:b,containerStyle:x,trackStyle:f,thumbStyle:g,testID:y,hitSlop:v,...w}=e,[S,j]=(0,_index.useControllableState)({value:i,defaultValue:s??!1,onChange:r}),R=(0,_index2.useTheme)(),C=(0,_react.useMemo)(()=>(0,_index2.resolveSwitchSize)(R,n),[R,n]),N=R.colors.thumb,T=(0,_react.useMemo)(()=>buildStyles(R),[R]),k="dark"===R.mode?R.colors.neutral:R.colors["surface-disabled"],V=toneColor(R,o),A=v??8,F=(0,_react.useRef)((0,_index2.createAnimatedValue)(S?1:0)).current;(0,_react.useEffect)(()=>{const e=_reactNative.Animated.spring(F,{toValue:S?1:0,damping:R.motion.spring.snappy.damping,stiffness:R.motion.spring.snappy.stiffness,mass:R.motion.spring.snappy.mass,useNativeDriver:!0});return e.start(),()=>e.stop()},[S,F,R.motion.spring.snappy]);const q=(0,_react.useRef)((0,_index2.createAnimatedValue)(S?1:0)).current;(0,_react.useEffect)(()=>{const e=_reactNative.Animated.timing(q,{toValue:S?1:0,duration:R.motion.duration.fast,easing:_reactNative.Easing.out(_reactNative.Easing.ease),useNativeDriver:!1});return e.start(),()=>e.stop()},[S,q,R.motion.duration.fast]);const D=C.padding,B=C["track-width"]-C["thumb-size"]-C.padding,L=F.interpolate({inputRange:[0,1],outputRange:[D,B]}),z=q.interpolate({inputRange:[0,1],outputRange:[k,V]}),E=(0,_react.useRef)((0,_index2.createAnimatedValue)(1)).current,H=(0,_react.useRef)(!0);(0,_react.useEffect)(()=>{if(!m)return;if(H.current)return void(H.current=!1);const e=_reactNative.Animated.sequence([_reactNative.Animated.spring(E,{toValue:1.15,damping:10,stiffness:220,mass:1,useNativeDriver:!0}),_reactNative.Animated.spring(E,{toValue:1,damping:14,stiffness:240,mass:1,useNativeDriver:!0})]);return e.start(),()=>e.stop()},[S,m,E]);const handlePress=e=>{a||(!1!==_&&(0,_hapticUtils.triggerHaptic)(_),j(!S),w.onPressOut?.(e))},P=p??(0,_FieldBase.fieldTextAsString)(l),I=(0,_FieldBase.hasFieldText)(l)||(0,_ChoiceText.hasChoiceDetail)(c,d),M=(!0===d||(0,_FieldBase.hasFieldText)(d))&&!S&&!a,U="row"===h&&I,O=(0,_jsxRuntime.jsxs)(_reactNative.Animated.View,{style:[T.track,{width:C["track-width"],height:C["track-height"],borderRadius:R.radius.pill,..._corners.smoothCorners,backgroundColor:z},f],children:[M?(0,_jsxRuntime.jsx)(_reactNative.View,{pointerEvents:"none",style:[T.errorRing,{borderRadius:R.radius.pill,..._corners.smoothCorners,borderWidth:R.size.border,borderColor:R.colors["field-border-error"]}]}):null,(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:[T.thumb,R.shadow.card,{backgroundColor:N,width:C["thumb-size"],height:C["thumb-size"],borderRadius:R.radius.pill,..._corners.smoothCorners,transform:[{translateX:L},{scale:E}]},g]})]});if(U)return(0,_jsxRuntime.jsxs)(_reactNative.Pressable,{ref:t,onPress:handlePress,disabled:a,accessibilityRole:"switch",accessibilityLabel:P,accessibilityHint:w.accessibilityHint??(0,_FieldBase.fieldTextAsString)(c),accessibilityState:{checked:S,disabled:a},"aria-checked":S,"aria-disabled":a,testID:y,hitSlop:v,...null==v?{}:(0,_hitSlop.hitSlopMarker)(v),...w,style:({pressed:e})=>[T.row,T.spreadRow,(0,_ChoiceText.hasChoiceDetail)(c,d)?T.rowTop:null,{opacity:a?.55:e?.9:1},x,b],children:[(0,_jsxRuntime.jsx)(_ChoiceText.ChoiceText,{label:l,description:c,error:d,disabled:a,labelLines:u||void 0,descriptionLines:u||void 0,style:T.spreadText}),O]});const W=(0,_jsxRuntime.jsx)(_reactNative.Pressable,{ref:t,onPress:handlePress,disabled:a,accessibilityRole:"switch",accessibilityLabel:P,accessibilityHint:w.accessibilityHint??(0,_FieldBase.fieldTextAsString)(c),accessibilityState:{checked:S,disabled:a},"aria-checked":S,"aria-disabled":a,testID:y,hitSlop:A,...(0,_hitSlop.hitSlopMarker)(A),...w,style:({pressed:e})=>[{opacity:a?.55:e?.9:1},I?null:b],children:O});return I?(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[T.row,(0,_ChoiceText.hasChoiceDetail)(c,d)?T.rowTop:null,x,b],children:[W,(0,_jsxRuntime.jsx)(_ChoiceText.ChoiceText,{label:l,description:c,error:d,disabled:a,labelLines:u||void 0,descriptionLines:u||void 0,style:T.text})]}):x?(0,_jsxRuntime.jsx)(_reactNative.View,{style:x,children:W}):W});Switch.displayName="Switch";const buildStyles=e=>_reactNative.StyleSheet.create({row:{flexDirection:"row",alignItems:"center"},track:{justifyContent:"center"},thumb:{position:"absolute",top:2},errorRing:{..._reactNative.StyleSheet.absoluteFill},rowTop:{alignItems:"flex-start"},text:{marginLeft:e.space.sm},spreadRow:{minHeight:44,justifyContent:"space-between"},spreadText:{flex:1,marginRight:e.space.md}});var _default=exports.default=Switch;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.resolveColor=exports.default=exports.Text=void 0;var _react=require("react"),_reactNative=require("react-native"),_index=require("../../theme/index.js"),_warnInvalidValue=require("../../utils/warnInvalidValue.js"),_jsxRuntime=require("react/jsx-runtime");const VARIANTS={display:{size:"4xl",weight:"bold",line:"display",color:"primary",heading:!0,fontFamily:"display"},h1:{size:"3xl",weight:"bold",line:"heading",color:"primary",heading:!0,fontFamily:"display"},h2:{size:"2xl",weight:"semibold",line:"heading",color:"primary",heading:!0,fontFamily:"display"},h3:{size:"xl",weight:"semibold",line:"heading",color:"primary",heading:!0},title:{size:"lg",weight:"semibold",line:"body",color:"primary",fontFamily:"display"},body:{size:"base",weight:"normal",line:"body",color:"primary"},bodySmall:{size:"sm",weight:"normal",line:"body",color:"secondary"},caption:{size:"xs",weight:"normal",line:"body",color:"tertiary"},label:{size:"sm",weight:"medium",line:"body",color:"secondary"},overline:{size:"xs",weight:"semibold",line:"body",color:"secondary",uppercase:!0,letterSpacing:"wide"}},TEXT_ROLE_COLOR={textStrong:"text",primary:"text-body",secondary:"text-muted",tertiary:"text-subtle",inverse:"text-inverse",disabled:"text-disabled",link:"link"},SEMANTIC={success:!0,warning:!0,danger:!0,info:!0},resolveColor=(e,i)=>Object.hasOwn(TEXT_ROLE_COLOR,i)?e.colors[TEXT_ROLE_COLOR[i]]:Object.hasOwn(SEMANTIC,i)?e.colors[`${i}-text`]:i;exports.resolveColor=resolveColor;const Text=exports.Text=(0,_react.forwardRef)((e,i)=>{const{variant:t="body",color:r,weight:o,size:l,align:n,italic:a,underline:s,style:d,children:c,...y}=e,p=(0,_index.useTheme)(),x=Object.hasOwn(VARIANTS,t),g=p.settings.textVariants,u=!x&&g&&Object.hasOwn(g,t)?g[t]:void 0;x||u||(0,_warnInvalidValue.warnInvalidValue)("Text","variant",e.variant,[...Object.keys(VARIANTS),...Object.keys(g??{})]);const m=(0,_react.useMemo)(()=>{if(u){const e="string"==typeof l?l:u.size,i="number"==typeof l?l:p.text[e].size;return{fontSize:i,lineHeight:u.lineHeight??("number"==typeof l?void 0:Math.round(i*p.leading[u.heading?"heading":"body"])),color:void 0!==r?resolveColor(p,r):u.color?p.colors[u.color]:resolveColor(p,"primary"),textAlign:n,textTransform:u.uppercase?"uppercase":void 0,letterSpacing:u.letterSpacing?p["letter-spacing"][u.letterSpacing]:void 0,fontStyle:a||u.italic?"italic":void 0,fontVariant:u.fontVariant,textDecorationLine:s?"underline":void 0,...(0,_index.fontFor)(p,o??u.weight??"normal",u.fontFamily)}}const e=VARIANTS[x?t:"body"],i="number"==typeof l?l:p.text[l??e.size].size;return{fontSize:i,lineHeight:Math.round(i*p.leading[e.line]),color:resolveColor(p,r??e.color),textAlign:n,textTransform:e.uppercase?"uppercase":void 0,letterSpacing:e.letterSpacing?p["letter-spacing"][e.letterSpacing]:void 0,fontStyle:a?"italic":void 0,textDecorationLine:s?"underline":void 0,...(0,_index.fontFor)(p,o??e.weight,e.fontFamily)}},[p,u,x,t,r,o,l,n,a,s]),h=x?VARIANTS[t].heading:u?.heading;return(0,_jsxRuntime.jsx)(_reactNative.Text,{ref:i,style:[m,d],maxFontSizeMultiplier:p.settings.maxFontSizeMultiplier,accessibilityRole:h?"header":y.accessibilityRole,...y,children:c})});Text.displayName="Text";var _default=exports.default=Text;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.resolveColor=exports.default=exports.Text=void 0;var _react=require("react"),_reactNative=require("react-native"),_index=require("../../theme/index.js"),_warnInvalidValue=require("../../utils/warnInvalidValue.js"),_Notation=require("../Notation/Notation.js"),_jsxRuntime=require("react/jsx-runtime");const VARIANTS={display:{size:"4xl",weight:"bold",line:"display",color:"primary",heading:!0,fontFamily:"display"},h1:{size:"3xl",weight:"bold",line:"heading",color:"primary",heading:!0,fontFamily:"display"},h2:{size:"2xl",weight:"semibold",line:"heading",color:"primary",heading:!0,fontFamily:"display"},h3:{size:"xl",weight:"semibold",line:"heading",color:"primary",heading:!0},title:{size:"lg",weight:"semibold",line:"body",color:"primary",fontFamily:"display"},body:{size:"base",weight:"normal",line:"body",color:"primary"},bodySmall:{size:"sm",weight:"normal",line:"body",color:"secondary"},caption:{size:"xs",weight:"normal",line:"body",color:"tertiary"},label:{size:"sm",weight:"medium",line:"body",color:"secondary"},overline:{size:"xs",weight:"semibold",line:"body",color:"secondary",uppercase:!0,letterSpacing:"wide"}},TEXT_ROLE_COLOR={textStrong:"text",primary:"text-body",secondary:"text-muted",tertiary:"text-subtle",inverse:"text-inverse",disabled:"text-disabled",link:"link"},SEMANTIC={success:!0,warning:!0,danger:!0,info:!0},resolveColor=(e,t)=>Object.hasOwn(TEXT_ROLE_COLOR,t)?e.colors[TEXT_ROLE_COLOR[t]]:Object.hasOwn(SEMANTIC,t)?e.colors[`${t}-text`]:t;exports.resolveColor=resolveColor;const Text=exports.Text=(0,_react.forwardRef)((e,t)=>{const{variant:i="body",color:o,weight:r,size:n,align:a,italic:l,underline:s,style:d,children:c,...y}=e,x=(0,_index.useTheme)(),p=Object.hasOwn(VARIANTS,i),g=x.settings.textVariants,u=!p&&g&&Object.hasOwn(g,i)?g[i]:void 0;p||u||(0,_warnInvalidValue.warnInvalidValue)("Text","variant",e.variant,[...Object.keys(VARIANTS),...Object.keys(g??{})]);const m=(0,_react.useMemo)(()=>{if(u){const e="string"==typeof n?n:u.size,t="number"==typeof n?n:x.text[e].size;return{fontSize:t,lineHeight:u.lineHeight??("number"==typeof n?void 0:Math.round(t*x.leading[u.heading?"heading":"body"])),color:void 0!==o?resolveColor(x,o):u.color?x.colors[u.color]:resolveColor(x,"primary"),textAlign:a,textTransform:u.uppercase?"uppercase":void 0,letterSpacing:u.letterSpacing?x["letter-spacing"][u.letterSpacing]:void 0,fontStyle:l||u.italic?"italic":void 0,fontVariant:u.fontVariant,textDecorationLine:s?"underline":void 0,...(0,_index.fontFor)(x,r??u.weight??"normal",u.fontFamily)}}const e=VARIANTS[p?i:"body"],t="number"==typeof n?n:x.text[n??e.size].size;return{fontSize:t,lineHeight:Math.round(t*x.leading[e.line]),color:resolveColor(x,o??e.color),textAlign:a,textTransform:e.uppercase?"uppercase":void 0,letterSpacing:e.letterSpacing?x["letter-spacing"][e.letterSpacing]:void 0,fontStyle:l?"italic":void 0,textDecorationLine:s?"underline":void 0,...(0,_index.fontFor)(x,r??e.weight,e.fontFamily)}},[x,u,p,i,o,r,n,a,l,s]),h=(0,_Notation.useNotationInk)([m,d],x.text.base.size,x.colors["text-body"]),b=p?VARIANTS[i].heading:u?.heading,v="string"==typeof c||"number"==typeof c;return(0,_jsxRuntime.jsx)(_reactNative.Text,{ref:t,style:[m,d],maxFontSizeMultiplier:x.settings.maxFontSizeMultiplier,accessibilityRole:b?"header":y.accessibilityRole,...y,children:v?c:(0,_jsxRuntime.jsx)(_Notation.NotationInkContext.Provider,{value:h,children:c})})});Text.displayName="Text";var _default=exports.default=Text;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Toast=void 0;var _react=require("react"),_reactNative=require("react-native"),_usePresenceMotion=require("../../hooks/usePresenceMotion.js"),_index=require("../../theme/index.js"),_corners=require("../../utils/corners.js"),_jsxRuntime=require("react/jsx-runtime");const SWIPE_DISMISS_THRESHOLD=80,SWIPE_VELOCITY_THRESHOLD=.5,STACK_OFFSET=8,STACK_SCALE_STEP=.04,DEFAULT_AUTO_DISMISS_MS=3e3,WEB_ACTION_MIN_DURATION_MS=8e3,COUNTDOWN_BAR_HEIGHT=3,ACTION_HIT_SLOP={top:10,bottom:10,left:10,right:10},DISMISS_ACTIONS=[{name:"dismiss",label:"Dismiss"}],Toast=({toast:e,index:t,onDismiss:a,shownAt:i,runtime:n})=>{const r=(0,_index.useTheme)(),s=(0,_usePresenceMotion.usePresenceMotion)(),o=s.duration("fast"),c=e.variant??"default",l=e.position??"bottom",u=(0,_react.useMemo)(()=>buildStyles(r),[r]),d=(0,_react.useMemo)(()=>tintFor(r,c),[r,c]),m=(0,_react.useMemo)(()=>inkFor(r,c),[r,c]),_=r.components.toast["icon-circle-size"],p=r.text[r.components.toast["icon-glyph-text"]].size,v=r.components.toast["tint-bar-width"],g=r.settings.components.toast?.defaultDurationMs??3e3,x=r.settings.components.toast?.enableSwipeDismiss??!0,h="top"===l?-120:120,f=(0,_react.useRef)((0,_index.createAnimatedValue)(s.reduced?0:h)).current,N=(0,_react.useRef)((0,_index.createAnimatedValue)(0)).current,b=(0,_react.useRef)((0,_index.createAnimatedValue)(0)).current,A=(0,_react.useRef)(!1),y="top"===l?8*t:8*-t,S=Math.max(1-.04*t,.9),w=(0,_react.useRef)((0,_index.createAnimatedValue)(y)).current;(0,_react.useEffect)(()=>{(0,_index.setNativeValue)(w,y)},[y,w]);const R=(0,_react.useMemo)(()=>_reactNative.Animated.add(f,w),[f,w]),M=void 0!==e.action,T=e.duration??g,V=T>0&&M&&"web"===_reactNative.Platform.OS?Math.max(T,8e3):T,D=V<=0||M&&!0===n?.screenReaderOn,j=!0===e.countdown&&!D,C=(0,_react.useRef)((0,_index.createAnimatedValue)(1)).current,I=(0,_react.useRef)({initialised:!1,timer:null,remaining:0,startedAt:0}),E=(0,_react.useRef)({touch:!1,pan:!1,hover:!1}),P=(0,_react.useRef)(()=>{}),O=(0,_react.useRef)({id:e.id,totalMs:V,shownAt:i,runtime:n,persistent:D,animateBar:!1});O.current={id:e.id,totalMs:V,shownAt:i,runtime:n,persistent:D,animateBar:j&&!s.reduced};const k=(0,_react.useCallback)(()=>{const e=I.current,t=O.current,a=E.current;if(!e.initialised){e.initialised=!0;const a=t.runtime?.readRemaining(t.id),i=void 0===t.shownAt?0:Date.now()-t.shownAt;e.remaining=a??(t.totalMs>0?Math.max(t.totalMs-i,0):0),t.totalMs>0&&e.remaining<t.totalMs&&(0,_index.setNativeValue)(C,e.remaining/t.totalMs)}const i=!(t.persistent||A.current||a.touch||a.pan||a.hover);i&&null===e.timer?(e.startedAt=Date.now(),e.timer=setTimeout(()=>{e.timer=null,e.remaining=0,P.current()},e.remaining),t.animateBar&&_reactNative.Animated.timing(C,{toValue:0,duration:e.remaining,easing:_reactNative.Easing.linear,useNativeDriver:!0}).start()):i||null===e.timer||(clearTimeout(e.timer),e.timer=null,e.remaining=Math.max(e.remaining-(Date.now()-e.startedAt),0),C.stopAnimation())},[C]),dismiss=()=>{if(A.current)return;A.current=!0,k();const t=[_reactNative.Animated.timing(b,{toValue:0,duration:o,easing:_reactNative.Easing.bezier(...r.motion.ease.accelerate),useNativeDriver:!0})];s.reduced||t.push(_reactNative.Animated.timing(f,{toValue:h,duration:r.motion.duration.fast,easing:_reactNative.Easing.bezier(...r.motion.ease.accelerate),useNativeDriver:!0})),_reactNative.Animated.parallel(t).start(()=>a(e.id))};P.current=dismiss,(0,_react.useEffect)(()=>{const e=s.reduced?_reactNative.Animated.timing(b,{toValue:1,duration:o,useNativeDriver:!0}):_reactNative.Animated.parallel([_reactNative.Animated.spring(f,{toValue:0,damping:18,stiffness:180,mass:1,useNativeDriver:!0}),_reactNative.Animated.timing(b,{toValue:1,duration:o,useNativeDriver:!0})]);return e.start(),()=>e.stop()},[]),(0,_react.useEffect)(()=>{k()},[D,k]),(0,_react.useEffect)(()=>()=>{const e=I.current,t=O.current;null!==e.timer&&(clearTimeout(e.timer),e.timer=null,e.remaining=Math.max(e.remaining-(Date.now()-e.startedAt),0)),C.stopAnimation(),e.initialised&&t.totalMs>0&&!A.current&&t.runtime?.writeRemaining(t.id,e.remaining)},[C]);const L=(0,_react.useCallback)((e,t)=>{E.current[e]=t,k()},[k]),H=(0,_react.useCallback)(()=>L("touch",!0),[L]),F=(0,_react.useCallback)(e=>L("touch",(e.nativeEvent.touches?.length??0)>0),[L]),z=(0,_react.useCallback)(()=>L("hover",!0),[L]),B=(0,_react.useCallback)(()=>L("hover",!1),[L]),q=(0,_react.useMemo)(()=>_reactNative.PanResponder.create({onMoveShouldSetPanResponder:(e,t)=>Math.abs(t.dx)>Math.abs(t.dy)&&Math.abs(t.dx)>6,onPanResponderGrant:()=>L("pan",!0),onPanResponderMove:(e,t)=>{(0,_index.setNativeValue)(N,t.dx);const a=1-.7*Math.min(Math.abs(t.dx)/200,1);(0,_index.setNativeValue)(b,a)},onPanResponderTerminate:()=>{if(L("pan",!1),s.reduced)return(0,_index.setNativeValue)(N,0),void _reactNative.Animated.timing(b,{toValue:1,duration:o,useNativeDriver:!0}).start();_reactNative.Animated.parallel([_reactNative.Animated.spring(N,{toValue:0,damping:r.motion.spring.snappy.damping,stiffness:r.motion.spring.snappy.stiffness,mass:r.motion.spring.snappy.mass,useNativeDriver:!0}),_reactNative.Animated.timing(b,{toValue:1,duration:o,useNativeDriver:!0})]).start()},onPanResponderRelease:(t,i)=>{if(Math.abs(i.dx)>80||Math.abs(i.vx)>.5){const t=i.dx>=0?1:-1;A.current=!0,L("pan",!1);const n=[_reactNative.Animated.timing(b,{toValue:0,duration:o,useNativeDriver:!0})];s.reduced||n.push(_reactNative.Animated.timing(N,{toValue:500*t,duration:r.motion.duration.fast,useNativeDriver:!0})),_reactNative.Animated.parallel(n).start(()=>a(e.id))}else L("pan",!1),s.reduced?((0,_index.setNativeValue)(N,0),_reactNative.Animated.timing(b,{toValue:1,duration:o,useNativeDriver:!0}).start()):_reactNative.Animated.parallel([_reactNative.Animated.spring(N,{toValue:0,useNativeDriver:!0}),_reactNative.Animated.spring(b,{toValue:1,useNativeDriver:!0})]).start()}}),[N,b,L,o,s.reduced,r.motion.duration.fast,r.motion.spring.snappy.damping,r.motion.spring.snappy.stiffness,r.motion.spring.snappy.mass,a,e.id]),G={accessibilityActions:DISMISS_ACTIONS,onAccessibilityAction:e=>{"dismiss"===e.nativeEvent.actionName&&dismiss()}},[W,U]=(0,_react.useState)(0),$=(0,_react.useMemo)(()=>C.interpolate({inputRange:[0,1],outputRange:[-W,0]}),[C,W]),K=e.description?`${e.message}. ${e.description}`:e.message,X=e.action&&j?`${e.action.label}, ${Math.ceil(V/1e3)} seconds`:e.action?.label;return(0,_jsxRuntime.jsxs)(_reactNative.Animated.View,{...x?q.panHandlers:{},...M?{}:{accessible:!0,...G},..."web"===_reactNative.Platform.OS?{onPointerEnter:z,onPointerLeave:B}:{},onTouchStart:H,onTouchEnd:F,onTouchCancel:F,accessibilityLabel:K,testID:e.testID,style:[u.container,{backgroundColor:r.colors.surface,borderRadius:r.radius.lg,..._corners.smoothCorners,padding:r.space.md,...r.shadow.elevated,opacity:b,transform:[{translateY:R},{translateX:N},{scale:S}]},e.style,e.containerStyle],children:[v>0?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[u.tintBar,{width:v,backgroundColor:d}]}):null,(0,_jsxRuntime.jsxs)(_reactNative.View,{style:u.row,children:[(()=>{if(e.icon)return e.icon;const t=defaultGlyph(c);return t?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[u.iconCircle,{width:_,height:_,borderRadius:r.radius.pill,..._corners.smoothCorners,backgroundColor:d+"22"},e.iconCircleStyle],children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[u.iconGlyph,{color:m,fontSize:p}],accessible:!1,children:t})}):null})(),(0,_jsxRuntime.jsxs)(_reactNative.View,{style:u.textBlock,children:[(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[u.message,{color:r.colors["text-body"],fontSize:r.text.base.size,...(0,_index.fontFor)(r,"semibold")},e.textStyle,e.messageStyle],numberOfLines:2,children:e.message}),e.description?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[u.description,{color:r.colors["text-muted"],fontSize:r.text.sm.size}],numberOfLines:3,children:e.description}):null]}),e.action?(0,_jsxRuntime.jsx)(_reactNative.Pressable,{accessibilityRole:"button",accessibilityLabel:X,hitSlop:ACTION_HIT_SLOP,...G,onPress:()=>{e.action?.onPress(),dismiss()},style:({pressed:t})=>[u.actionBtn,{backgroundColor:t?r.colors["surface-pressed"]:"transparent"},e.actionButtonStyle],children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:{color:d,fontSize:r.text.sm.size,...(0,_index.fontFor)(r,"semibold")},numberOfLines:1,children:e.action.label})}):null]}),j?(0,_jsxRuntime.jsxs)(_reactNative.View,{pointerEvents:"none",accessibilityElementsHidden:!0,importantForAccessibility:"no-hide-descendants",onLayout:e=>U(e.nativeEvent.layout.width),testID:"toast-countdown",style:[u.countdownTrack,{backgroundColor:d+"22"}],children:[s.reduced?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[u.countdownFill,{backgroundColor:d}]}):null,!s.reduced&&W>0?(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:[u.countdownFill,{backgroundColor:d,transform:[{translateX:$}]}]}):null]}):null]})};exports.Toast=Toast;const tintFor=(e,t)=>{switch(t){case"success":return e.colors.success;case"danger":return e.colors.danger;case"warning":return e.colors.warning;case"info":return e.colors.info;default:return e.colors["text-body"]}},inkFor=(e,t)=>{switch(t){case"success":return e.colors["success-text"];case"danger":return e.colors["danger-text"];case"warning":return e.colors["warning-text"];case"info":return e.colors["info-text"];default:return e.colors["text-body"]}},defaultGlyph=e=>{switch(e){case"success":return"✓";case"danger":return"×";case"warning":return"!";case"info":return"i";default:return""}},buildStyles=e=>_reactNative.StyleSheet.create({container:{overflow:"hidden",marginVertical:e.space.xs},tintBar:{position:"absolute",left:0,top:0,bottom:0},row:{flexDirection:"row",alignItems:"center",paddingLeft:e.space.sm},iconCircle:{alignItems:"center",justifyContent:"center",marginRight:e.space.md},iconGlyph:{fontWeight:"700",lineHeight:19},textBlock:{flex:1,paddingRight:e.space.sm},message:{lineHeight:20},description:{marginTop:e.space.xxs,lineHeight:18},countdownTrack:{position:"absolute",left:0,right:0,bottom:0,height:3,overflow:"hidden"},countdownFill:{position:"absolute",left:0,right:0,top:0,bottom:0},actionBtn:{paddingHorizontal:e.space.sm,paddingVertical:e.space.xs,minHeight:e.components.toast["action-min-height"],borderRadius:e.radius.md,..._corners.smoothCorners,marginLeft:e.space.sm}});var _default=exports.default=Toast;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Toast=void 0;var _react=require("react"),_reactNative=require("react-native"),_usePresenceMotion=require("../../hooks/usePresenceMotion.js"),_index=require("../../theme/index.js"),_corners=require("../../utils/corners.js"),_hitSlop=require("../../utils/hitSlop.js"),_jsxRuntime=require("react/jsx-runtime");const SWIPE_DISMISS_THRESHOLD=80,SWIPE_VELOCITY_THRESHOLD=.5,STACK_OFFSET=8,STACK_SCALE_STEP=.04,DEFAULT_AUTO_DISMISS_MS=3e3,WEB_ACTION_MIN_DURATION_MS=8e3,COUNTDOWN_BAR_HEIGHT=3,ACTION_HIT_SLOP={top:10,bottom:10,left:10,right:10},DISMISS_ACTIONS=[{name:"dismiss",label:"Dismiss"}],Toast=({toast:e,index:t,onDismiss:i,shownAt:a,runtime:n})=>{const r=(0,_index.useTheme)(),s=(0,_usePresenceMotion.usePresenceMotion)(),o=s.duration("fast"),c=e.variant??"default",l=e.position??"bottom",u=(0,_react.useMemo)(()=>buildStyles(r),[r]),d=(0,_react.useMemo)(()=>tintFor(r,c),[r,c]),m=(0,_react.useMemo)(()=>inkFor(r,c),[r,c]),_=r.components.toast["icon-circle-size"],p=r.text[r.components.toast["icon-glyph-text"]].size,v=r.components.toast["tint-bar-width"],g=r.settings.components.toast?.defaultDurationMs??3e3,h=r.settings.components.toast?.enableSwipeDismiss??!0,x="top"===l?-120:120,f=(0,_react.useRef)((0,_index.createAnimatedValue)(s.reduced?0:x)).current,N=(0,_react.useRef)((0,_index.createAnimatedValue)(0)).current,b=(0,_react.useRef)((0,_index.createAnimatedValue)(0)).current,A=(0,_react.useRef)(!1),S="top"===l?8*t:8*-t,y=Math.max(1-.04*t,.9),w=(0,_react.useRef)((0,_index.createAnimatedValue)(S)).current;(0,_react.useEffect)(()=>{(0,_index.setNativeValue)(w,S)},[S,w]);const R=(0,_react.useMemo)(()=>_reactNative.Animated.add(f,w),[f,w]),M=void 0!==e.action,T=e.duration??g,V=T>0&&M&&"web"===_reactNative.Platform.OS?Math.max(T,8e3):T,D=V<=0||M&&!0===n?.screenReaderOn,j=!0===e.countdown&&!D,C=(0,_react.useRef)((0,_index.createAnimatedValue)(1)).current,I=(0,_react.useRef)({initialised:!1,timer:null,remaining:0,startedAt:0}),E=(0,_react.useRef)({touch:!1,pan:!1,hover:!1}),O=(0,_react.useRef)(()=>{}),P=(0,_react.useRef)({id:e.id,totalMs:V,shownAt:a,runtime:n,persistent:D,animateBar:!1});P.current={id:e.id,totalMs:V,shownAt:a,runtime:n,persistent:D,animateBar:j&&!s.reduced};const k=(0,_react.useCallback)(()=>{const e=I.current,t=P.current,i=E.current;if(!e.initialised){e.initialised=!0;const i=t.runtime?.readRemaining(t.id),a=void 0===t.shownAt?0:Date.now()-t.shownAt;e.remaining=i??(t.totalMs>0?Math.max(t.totalMs-a,0):0),t.totalMs>0&&e.remaining<t.totalMs&&(0,_index.setNativeValue)(C,e.remaining/t.totalMs)}const a=!(t.persistent||A.current||i.touch||i.pan||i.hover);a&&null===e.timer?(e.startedAt=Date.now(),e.timer=setTimeout(()=>{e.timer=null,e.remaining=0,O.current()},e.remaining),t.animateBar&&_reactNative.Animated.timing(C,{toValue:0,duration:e.remaining,easing:_reactNative.Easing.linear,useNativeDriver:!0}).start()):a||null===e.timer||(clearTimeout(e.timer),e.timer=null,e.remaining=Math.max(e.remaining-(Date.now()-e.startedAt),0),C.stopAnimation())},[C]),dismiss=()=>{if(A.current)return;A.current=!0,k();const t=[_reactNative.Animated.timing(b,{toValue:0,duration:o,easing:_reactNative.Easing.bezier(...r.motion.ease.accelerate),useNativeDriver:!0})];s.reduced||t.push(_reactNative.Animated.timing(f,{toValue:x,duration:r.motion.duration.fast,easing:_reactNative.Easing.bezier(...r.motion.ease.accelerate),useNativeDriver:!0})),_reactNative.Animated.parallel(t).start(()=>i(e.id))};O.current=dismiss,(0,_react.useEffect)(()=>{const e=s.reduced?_reactNative.Animated.timing(b,{toValue:1,duration:o,useNativeDriver:!0}):_reactNative.Animated.parallel([_reactNative.Animated.spring(f,{toValue:0,damping:18,stiffness:180,mass:1,useNativeDriver:!0}),_reactNative.Animated.timing(b,{toValue:1,duration:o,useNativeDriver:!0})]);return e.start(),()=>e.stop()},[]),(0,_react.useEffect)(()=>{k()},[D,k]),(0,_react.useEffect)(()=>()=>{const e=I.current,t=P.current;null!==e.timer&&(clearTimeout(e.timer),e.timer=null,e.remaining=Math.max(e.remaining-(Date.now()-e.startedAt),0)),C.stopAnimation(),e.initialised&&t.totalMs>0&&!A.current&&t.runtime?.writeRemaining(t.id,e.remaining)},[C]);const L=(0,_react.useCallback)((e,t)=>{E.current[e]=t,k()},[k]),H=(0,_react.useCallback)(()=>L("touch",!0),[L]),F=(0,_react.useCallback)(e=>L("touch",(e.nativeEvent.touches?.length??0)>0),[L]),z=(0,_react.useCallback)(()=>L("hover",!0),[L]),B=(0,_react.useCallback)(()=>L("hover",!1),[L]),q=(0,_react.useMemo)(()=>_reactNative.PanResponder.create({onMoveShouldSetPanResponder:(e,t)=>Math.abs(t.dx)>Math.abs(t.dy)&&Math.abs(t.dx)>6,onPanResponderGrant:()=>L("pan",!0),onPanResponderMove:(e,t)=>{(0,_index.setNativeValue)(N,t.dx);const i=1-.7*Math.min(Math.abs(t.dx)/200,1);(0,_index.setNativeValue)(b,i)},onPanResponderTerminate:()=>{if(L("pan",!1),s.reduced)return(0,_index.setNativeValue)(N,0),void _reactNative.Animated.timing(b,{toValue:1,duration:o,useNativeDriver:!0}).start();_reactNative.Animated.parallel([_reactNative.Animated.spring(N,{toValue:0,damping:r.motion.spring.snappy.damping,stiffness:r.motion.spring.snappy.stiffness,mass:r.motion.spring.snappy.mass,useNativeDriver:!0}),_reactNative.Animated.timing(b,{toValue:1,duration:o,useNativeDriver:!0})]).start()},onPanResponderRelease:(t,a)=>{if(Math.abs(a.dx)>80||Math.abs(a.vx)>.5){const t=a.dx>=0?1:-1;A.current=!0,L("pan",!1);const n=[_reactNative.Animated.timing(b,{toValue:0,duration:o,useNativeDriver:!0})];s.reduced||n.push(_reactNative.Animated.timing(N,{toValue:500*t,duration:r.motion.duration.fast,useNativeDriver:!0})),_reactNative.Animated.parallel(n).start(()=>i(e.id))}else L("pan",!1),s.reduced?((0,_index.setNativeValue)(N,0),_reactNative.Animated.timing(b,{toValue:1,duration:o,useNativeDriver:!0}).start()):_reactNative.Animated.parallel([_reactNative.Animated.spring(N,{toValue:0,useNativeDriver:!0}),_reactNative.Animated.spring(b,{toValue:1,useNativeDriver:!0})]).start()}}),[N,b,L,o,s.reduced,r.motion.duration.fast,r.motion.spring.snappy.damping,r.motion.spring.snappy.stiffness,r.motion.spring.snappy.mass,i,e.id]),G={accessibilityActions:DISMISS_ACTIONS,onAccessibilityAction:e=>{"dismiss"===e.nativeEvent.actionName&&dismiss()}},[W,U]=(0,_react.useState)(0),$=(0,_react.useMemo)(()=>C.interpolate({inputRange:[0,1],outputRange:[-W,0]}),[C,W]),K=e.description?`${e.message}. ${e.description}`:e.message,X=e.action&&j?`${e.action.label}, ${Math.ceil(V/1e3)} seconds`:e.action?.label;return(0,_jsxRuntime.jsxs)(_reactNative.Animated.View,{...h?q.panHandlers:{},...M?{}:{accessible:!0,...G},..."web"===_reactNative.Platform.OS?{onPointerEnter:z,onPointerLeave:B}:{},onTouchStart:H,onTouchEnd:F,onTouchCancel:F,accessibilityLabel:K,testID:e.testID,style:[u.container,{backgroundColor:r.colors.surface,borderRadius:r.radius.lg,..._corners.smoothCorners,padding:r.space.md,...r.shadow.elevated,opacity:b,transform:[{translateY:R},{translateX:N},{scale:y}]},e.style,e.containerStyle],children:[v>0?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[u.tintBar,{width:v,backgroundColor:d}]}):null,(0,_jsxRuntime.jsxs)(_reactNative.View,{style:u.row,children:[(()=>{if(e.icon)return e.icon;const t=defaultGlyph(c);return t?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[u.iconCircle,{width:_,height:_,borderRadius:r.radius.pill,..._corners.smoothCorners,backgroundColor:d+"22"},e.iconCircleStyle],children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[u.iconGlyph,{color:m,fontSize:p}],accessible:!1,children:t})}):null})(),(0,_jsxRuntime.jsxs)(_reactNative.View,{style:u.textBlock,children:[(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[u.message,{color:r.colors["text-body"],fontSize:r.text.base.size,...(0,_index.fontFor)(r,"semibold")},e.textStyle,e.messageStyle],numberOfLines:2,children:e.message}),e.description?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[u.description,{color:r.colors["text-muted"],fontSize:r.text.sm.size}],numberOfLines:3,children:e.description}):null]}),e.action?(0,_jsxRuntime.jsx)(_reactNative.Pressable,{accessibilityRole:"button",accessibilityLabel:X,hitSlop:ACTION_HIT_SLOP,...(0,_hitSlop.hitSlopMarker)(ACTION_HIT_SLOP),...G,onPress:()=>{e.action?.onPress(),dismiss()},style:({pressed:t})=>[u.actionBtn,{backgroundColor:t?r.colors["surface-pressed"]:"transparent"},e.actionButtonStyle],children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:{color:d,fontSize:r.text.sm.size,...(0,_index.fontFor)(r,"semibold")},numberOfLines:1,children:e.action.label})}):null]}),j?(0,_jsxRuntime.jsxs)(_reactNative.View,{pointerEvents:"none",accessibilityElementsHidden:!0,importantForAccessibility:"no-hide-descendants",onLayout:e=>U(e.nativeEvent.layout.width),testID:"toast-countdown",style:[u.countdownTrack,{backgroundColor:d+"22"}],children:[s.reduced?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[u.countdownFill,{backgroundColor:d}]}):null,!s.reduced&&W>0?(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:[u.countdownFill,{backgroundColor:d,transform:[{translateX:$}]}]}):null]}):null]})};exports.Toast=Toast;const tintFor=(e,t)=>{switch(t){case"success":return e.colors.success;case"danger":return e.colors.danger;case"warning":return e.colors.warning;case"info":return e.colors.info;default:return e.colors["text-body"]}},inkFor=(e,t)=>{switch(t){case"success":return e.colors["success-text"];case"danger":return e.colors["danger-text"];case"warning":return e.colors["warning-text"];case"info":return e.colors["info-text"];default:return e.colors["text-body"]}},defaultGlyph=e=>{switch(e){case"success":return"✓";case"danger":return"×";case"warning":return"!";case"info":return"i";default:return""}},buildStyles=e=>_reactNative.StyleSheet.create({container:{overflow:"hidden",marginVertical:e.space.xs},tintBar:{position:"absolute",left:0,top:0,bottom:0},row:{flexDirection:"row",alignItems:"center",paddingLeft:e.space.sm},iconCircle:{alignItems:"center",justifyContent:"center",marginRight:e.space.md},iconGlyph:{fontWeight:"700",lineHeight:19},textBlock:{flex:1,paddingRight:e.space.sm},message:{lineHeight:20},description:{marginTop:e.space.xxs,lineHeight:18},countdownTrack:{position:"absolute",left:0,right:0,bottom:0,height:3,overflow:"hidden"},countdownFill:{position:"absolute",left:0,right:0,top:0,bottom:0},actionBtn:{paddingHorizontal:e.space.sm,paddingVertical:e.space.xs,minHeight:e.components.toast["action-min-height"],borderRadius:e.radius.md,..._corners.smoothCorners,marginLeft:e.space.sm}});var _default=exports.default=Toast;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _exportNames={APP_ICON_SIZES:!0,AppIcon:!0,CURATED_ICON_NAMES:!0,defaultIcons:!0,ICON_NAMES:!0,ICONSAX_SUFFIX:!0,renderSlotIcon:!0,deletePath:!0,Form:!0,getPath:!0,HookFormField:!0,isFieldFilled:!0,rules:!0,setPath:!0,useField:!0,useFieldArray:!0,useForm:!0,useFormCompletion:!0,useFormContext:!0,useHookFormField:!0,useOptionalFormContext:!0,FLICK_TOLERANCE:!0,PRESENCE_REDUCE_MOTION:!0,PRESS_ANIMATION_PRESETS:!0,useControllableState:!0,useDebounce:!0,useFieldChain:!0,useFlickGuard:!0,usePresenceMotion:!0,usePressAnimation:!0,useReducedMotion:!0,useRefreshControl:!0,useScrollDirection:!0,useToggle:!0,initUI:!0,NetworkStatusBanner:!0,COLOR_NAMES:!0,DURATION_NAMES:!0,darkTheme:!0,EASE_NAMES:!0,FONT_NAMES:!0,getColorMode:!0,getTheme:!0,LEADING_NAMES:!0,LETTER_SPACING_NAMES:!0,lightTheme:!0,mergeBrand:!0,RADIUS_NAMES:!0,radiusOf:!0,resetTheme:!0,resolveBadgeSize:!0,resolveButtonSize:!0,resolveCheckboxSize:!0,resolveChipSize:!0,resolveEmptyStateSize:!0,resolveFieldSize:!0,resolveFloatingActionButtonSize:!0,resolveListItemSize:!0,resolveOtpInputSize:!0,resolveRadioSize:!0,resolveSegmentedControlSize:!0,resolveSliderSize:!0,resolveSwitchSize:!0,resolveTabsSize:!0,SHADOW_NAMES:!0,SIZE_NAMES:!0,SPACE_NAMES:!0,setColorMode:!0,setTheme:!0,spaceOf:!0,subscribeTheme:!0,TEXT_NAMES:!0,ThemeProvider:!0,textOf:!0,useTheme:!0,useThemeMode:!0,WEIGHT_NAMES:!0,announce:!0,Breakpoints:!0,configureFeedback:!0,feedback:!0,hapticForIntent:!0,isFeedbackEnabled:!0,isScreenSize:!0,isTablet:!0,Responsive:!0,ScreenDimensions:!0,SQUIRCLE_MIN_RADIUS:!0,SQUIRCLE_SMOOTHING:!0,setHapticImplementation:!0,shadowStyle:!0,smoothCorners:!0,squircleApplies:!0,squircleHostRadius:!0,squirclePath:!0,triggerHaptic:!0,useScreenDimensions:!0,warnUnknownProps:!0};Object.defineProperty(exports,"APP_ICON_SIZES",{enumerable:!0,get:function(){return _index2.APP_ICON_SIZES}}),Object.defineProperty(exports,"AppIcon",{enumerable:!0,get:function(){return _index2.AppIcon}}),Object.defineProperty(exports,"Breakpoints",{enumerable:!0,get:function(){return _index7.Breakpoints}}),Object.defineProperty(exports,"COLOR_NAMES",{enumerable:!0,get:function(){return _index6.COLOR_NAMES}}),Object.defineProperty(exports,"CURATED_ICON_NAMES",{enumerable:!0,get:function(){return _index2.CURATED_ICON_NAMES}}),Object.defineProperty(exports,"DURATION_NAMES",{enumerable:!0,get:function(){return _index6.DURATION_NAMES}}),Object.defineProperty(exports,"EASE_NAMES",{enumerable:!0,get:function(){return _index6.EASE_NAMES}}),Object.defineProperty(exports,"FLICK_TOLERANCE",{enumerable:!0,get:function(){return _index4.FLICK_TOLERANCE}}),Object.defineProperty(exports,"FONT_NAMES",{enumerable:!0,get:function(){return _index6.FONT_NAMES}}),Object.defineProperty(exports,"Form",{enumerable:!0,get:function(){return _index3.Form}}),Object.defineProperty(exports,"HookFormField",{enumerable:!0,get:function(){return _index3.HookFormField}}),Object.defineProperty(exports,"ICONSAX_SUFFIX",{enumerable:!0,get:function(){return _index2.ICONSAX_SUFFIX}}),Object.defineProperty(exports,"ICON_NAMES",{enumerable:!0,get:function(){return _index2.ICON_NAMES}}),Object.defineProperty(exports,"LEADING_NAMES",{enumerable:!0,get:function(){return _index6.LEADING_NAMES}}),Object.defineProperty(exports,"LETTER_SPACING_NAMES",{enumerable:!0,get:function(){return _index6.LETTER_SPACING_NAMES}}),Object.defineProperty(exports,"NetworkStatusBanner",{enumerable:!0,get:function(){return _index5.NetworkStatusBanner}}),Object.defineProperty(exports,"PRESENCE_REDUCE_MOTION",{enumerable:!0,get:function(){return _index4.PRESENCE_REDUCE_MOTION}}),Object.defineProperty(exports,"PRESS_ANIMATION_PRESETS",{enumerable:!0,get:function(){return _index4.PRESS_ANIMATION_PRESETS}}),Object.defineProperty(exports,"RADIUS_NAMES",{enumerable:!0,get:function(){return _index6.RADIUS_NAMES}}),Object.defineProperty(exports,"Responsive",{enumerable:!0,get:function(){return _index7.Responsive}}),Object.defineProperty(exports,"SHADOW_NAMES",{enumerable:!0,get:function(){return _index6.SHADOW_NAMES}}),Object.defineProperty(exports,"SIZE_NAMES",{enumerable:!0,get:function(){return _index6.SIZE_NAMES}}),Object.defineProperty(exports,"SPACE_NAMES",{enumerable:!0,get:function(){return _index6.SPACE_NAMES}}),Object.defineProperty(exports,"SQUIRCLE_MIN_RADIUS",{enumerable:!0,get:function(){return _index7.SQUIRCLE_MIN_RADIUS}}),Object.defineProperty(exports,"SQUIRCLE_SMOOTHING",{enumerable:!0,get:function(){return _index7.SQUIRCLE_SMOOTHING}}),Object.defineProperty(exports,"ScreenDimensions",{enumerable:!0,get:function(){return _index7.ScreenDimensions}}),Object.defineProperty(exports,"TEXT_NAMES",{enumerable:!0,get:function(){return _index6.TEXT_NAMES}}),Object.defineProperty(exports,"ThemeProvider",{enumerable:!0,get:function(){return _index6.ThemeProvider}}),Object.defineProperty(exports,"WEIGHT_NAMES",{enumerable:!0,get:function(){return _index6.WEIGHT_NAMES}}),Object.defineProperty(exports,"announce",{enumerable:!0,get:function(){return _index7.announce}}),Object.defineProperty(exports,"configureFeedback",{enumerable:!0,get:function(){return _index7.configureFeedback}}),Object.defineProperty(exports,"darkTheme",{enumerable:!0,get:function(){return _index6.darkTheme}}),Object.defineProperty(exports,"defaultIcons",{enumerable:!0,get:function(){return _index2.defaultIcons}}),Object.defineProperty(exports,"deletePath",{enumerable:!0,get:function(){return _index3.deletePath}}),Object.defineProperty(exports,"feedback",{enumerable:!0,get:function(){return _index7.feedback}}),Object.defineProperty(exports,"getColorMode",{enumerable:!0,get:function(){return _index6.getColorMode}}),Object.defineProperty(exports,"getPath",{enumerable:!0,get:function(){return _index3.getPath}}),Object.defineProperty(exports,"getTheme",{enumerable:!0,get:function(){return _index6.getTheme}}),Object.defineProperty(exports,"hapticForIntent",{enumerable:!0,get:function(){return _index7.hapticForIntent}}),Object.defineProperty(exports,"initUI",{enumerable:!0,get:function(){return _initUI.initUI}}),Object.defineProperty(exports,"isFeedbackEnabled",{enumerable:!0,get:function(){return _index7.isFeedbackEnabled}}),Object.defineProperty(exports,"isFieldFilled",{enumerable:!0,get:function(){return _index3.isFieldFilled}}),Object.defineProperty(exports,"isScreenSize",{enumerable:!0,get:function(){return _index7.isScreenSize}}),Object.defineProperty(exports,"isTablet",{enumerable:!0,get:function(){return _index7.isTablet}}),Object.defineProperty(exports,"lightTheme",{enumerable:!0,get:function(){return _index6.lightTheme}}),Object.defineProperty(exports,"mergeBrand",{enumerable:!0,get:function(){return _index6.mergeBrand}}),Object.defineProperty(exports,"radiusOf",{enumerable:!0,get:function(){return _index6.radiusOf}}),Object.defineProperty(exports,"renderSlotIcon",{enumerable:!0,get:function(){return _index2.renderSlotIcon}}),Object.defineProperty(exports,"resetTheme",{enumerable:!0,get:function(){return _index6.resetTheme}}),Object.defineProperty(exports,"resolveBadgeSize",{enumerable:!0,get:function(){return _index6.resolveBadgeSize}}),Object.defineProperty(exports,"resolveButtonSize",{enumerable:!0,get:function(){return _index6.resolveButtonSize}}),Object.defineProperty(exports,"resolveCheckboxSize",{enumerable:!0,get:function(){return _index6.resolveCheckboxSize}}),Object.defineProperty(exports,"resolveChipSize",{enumerable:!0,get:function(){return _index6.resolveChipSize}}),Object.defineProperty(exports,"resolveEmptyStateSize",{enumerable:!0,get:function(){return _index6.resolveEmptyStateSize}}),Object.defineProperty(exports,"resolveFieldSize",{enumerable:!0,get:function(){return _index6.resolveFieldSize}}),Object.defineProperty(exports,"resolveFloatingActionButtonSize",{enumerable:!0,get:function(){return _index6.resolveFloatingActionButtonSize}}),Object.defineProperty(exports,"resolveListItemSize",{enumerable:!0,get:function(){return _index6.resolveListItemSize}}),Object.defineProperty(exports,"resolveOtpInputSize",{enumerable:!0,get:function(){return _index6.resolveOtpInputSize}}),Object.defineProperty(exports,"resolveRadioSize",{enumerable:!0,get:function(){return _index6.resolveRadioSize}}),Object.defineProperty(exports,"resolveSegmentedControlSize",{enumerable:!0,get:function(){return _index6.resolveSegmentedControlSize}}),Object.defineProperty(exports,"resolveSliderSize",{enumerable:!0,get:function(){return _index6.resolveSliderSize}}),Object.defineProperty(exports,"resolveSwitchSize",{enumerable:!0,get:function(){return _index6.resolveSwitchSize}}),Object.defineProperty(exports,"resolveTabsSize",{enumerable:!0,get:function(){return _index6.resolveTabsSize}}),Object.defineProperty(exports,"rules",{enumerable:!0,get:function(){return _index3.rules}}),Object.defineProperty(exports,"setColorMode",{enumerable:!0,get:function(){return _index6.setColorMode}}),Object.defineProperty(exports,"setHapticImplementation",{enumerable:!0,get:function(){return _index7.setHapticImplementation}}),Object.defineProperty(exports,"setPath",{enumerable:!0,get:function(){return _index3.setPath}}),Object.defineProperty(exports,"setTheme",{enumerable:!0,get:function(){return _index6.setTheme}}),Object.defineProperty(exports,"shadowStyle",{enumerable:!0,get:function(){return _index7.shadowStyle}}),Object.defineProperty(exports,"smoothCorners",{enumerable:!0,get:function(){return _index7.smoothCorners}}),Object.defineProperty(exports,"spaceOf",{enumerable:!0,get:function(){return _index6.spaceOf}}),Object.defineProperty(exports,"squircleApplies",{enumerable:!0,get:function(){return _index7.squircleApplies}}),Object.defineProperty(exports,"squircleHostRadius",{enumerable:!0,get:function(){return _index7.squircleHostRadius}}),Object.defineProperty(exports,"squirclePath",{enumerable:!0,get:function(){return _index7.squirclePath}}),Object.defineProperty(exports,"subscribeTheme",{enumerable:!0,get:function(){return _index6.subscribeTheme}}),Object.defineProperty(exports,"textOf",{enumerable:!0,get:function(){return _index6.textOf}}),Object.defineProperty(exports,"triggerHaptic",{enumerable:!0,get:function(){return _index7.triggerHaptic}}),Object.defineProperty(exports,"useControllableState",{enumerable:!0,get:function(){return _index4.useControllableState}}),Object.defineProperty(exports,"useDebounce",{enumerable:!0,get:function(){return _index4.useDebounce}}),Object.defineProperty(exports,"useField",{enumerable:!0,get:function(){return _index3.useField}}),Object.defineProperty(exports,"useFieldArray",{enumerable:!0,get:function(){return _index3.useFieldArray}}),Object.defineProperty(exports,"useFieldChain",{enumerable:!0,get:function(){return _index4.useFieldChain}}),Object.defineProperty(exports,"useFlickGuard",{enumerable:!0,get:function(){return _index4.useFlickGuard}}),Object.defineProperty(exports,"useForm",{enumerable:!0,get:function(){return _index3.useForm}}),Object.defineProperty(exports,"useFormCompletion",{enumerable:!0,get:function(){return _index3.useFormCompletion}}),Object.defineProperty(exports,"useFormContext",{enumerable:!0,get:function(){return _index3.useFormContext}}),Object.defineProperty(exports,"useHookFormField",{enumerable:!0,get:function(){return _index3.useHookFormField}}),Object.defineProperty(exports,"useOptionalFormContext",{enumerable:!0,get:function(){return _index3.useOptionalFormContext}}),Object.defineProperty(exports,"usePresenceMotion",{enumerable:!0,get:function(){return _index4.usePresenceMotion}}),Object.defineProperty(exports,"usePressAnimation",{enumerable:!0,get:function(){return _index4.usePressAnimation}}),Object.defineProperty(exports,"useReducedMotion",{enumerable:!0,get:function(){return _index4.useReducedMotion}}),Object.defineProperty(exports,"useRefreshControl",{enumerable:!0,get:function(){return _index4.useRefreshControl}}),Object.defineProperty(exports,"useScreenDimensions",{enumerable:!0,get:function(){return _index7.useScreenDimensions}}),Object.defineProperty(exports,"useScrollDirection",{enumerable:!0,get:function(){return _index4.useScrollDirection}}),Object.defineProperty(exports,"useTheme",{enumerable:!0,get:function(){return _index6.useTheme}}),Object.defineProperty(exports,"useThemeMode",{enumerable:!0,get:function(){return _index6.useThemeMode}}),Object.defineProperty(exports,"useToggle",{enumerable:!0,get:function(){return _index4.useToggle}}),Object.defineProperty(exports,"warnUnknownProps",{enumerable:!0,get:function(){return _index7.warnUnknownProps}});var _index=require("./components/index.js");Object.keys(_index).forEach(function(e){"default"!==e&&"__esModule"!==e&&(Object.prototype.hasOwnProperty.call(_exportNames,e)||e in exports&&exports[e]===_index[e]||Object.defineProperty(exports,e,{enumerable:!0,get:function(){return _index[e]}}))});var _index2=require("./components/AppIcon/index.js"),_index3=require("./form/index.js"),_index4=require("./hooks/index.js"),_initUI=require("./initUI.js"),_index5=require("./network/index.js"),_index6=require("./theme/index.js"),_index7=require("./utils/index.js");
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _exportNames={PHONE_CHROME_INSETS:!0,APP_ICON_SIZES:!0,AppIcon:!0,CURATED_ICON_NAMES:!0,defaultIcons:!0,ICON_NAMES:!0,ICONSAX_SUFFIX:!0,renderSlotIcon:!0,deletePath:!0,Form:!0,getPath:!0,HookFormField:!0,isFieldFilled:!0,rules:!0,setPath:!0,useField:!0,useFieldArray:!0,useForm:!0,useFormCompletion:!0,useFormContext:!0,useHookFormField:!0,useOptionalFormContext:!0,FLICK_TOLERANCE:!0,PRESENCE_REDUCE_MOTION:!0,PRESS_ANIMATION_PRESETS:!0,useControllableState:!0,useDebounce:!0,useFieldChain:!0,useFlickGuard:!0,usePresenceMotion:!0,usePressAnimation:!0,useReducedMotion:!0,useRefreshControl:!0,useScrollDirection:!0,useToggle:!0,NetworkStatusBanner:!0,COLOR_NAMES:!0,DURATION_NAMES:!0,darkTheme:!0,EASE_NAMES:!0,FONT_NAMES:!0,LEADING_NAMES:!0,LETTER_SPACING_NAMES:!0,lightTheme:!0,mergeBrand:!0,RADIUS_NAMES:!0,radiusOf:!0,resolveBadgeSize:!0,resolveButtonSize:!0,resolveCheckboxSize:!0,resolveChipSize:!0,resolveEmptyStateSize:!0,resolveFieldSize:!0,resolveFloatingActionButtonSize:!0,resolveListItemSize:!0,resolveOtpInputSize:!0,resolveRadioSize:!0,resolveSegmentedControlSize:!0,resolveSliderSize:!0,resolveSwitchSize:!0,resolveTabsSize:!0,SHADOW_NAMES:!0,SIZE_NAMES:!0,SPACE_NAMES:!0,spaceOf:!0,TEXT_NAMES:!0,ThemeProvider:!0,textOf:!0,useTheme:!0,useThemeMode:!0,WEIGHT_NAMES:!0,announce:!0,Breakpoints:!0,configureFeedback:!0,feedback:!0,hapticForIntent:!0,isFeedbackEnabled:!0,isScreenSize:!0,isTablet:!0,Responsive:!0,ScreenDimensions:!0,SQUIRCLE_MIN_RADIUS:!0,SQUIRCLE_SMOOTHING:!0,setHapticImplementation:!0,shadowStyle:!0,smoothCorners:!0,squircleApplies:!0,squircleHostRadius:!0,squirclePath:!0,triggerHaptic:!0,useScreenDimensions:!0,warnUnknownProps:!0};Object.defineProperty(exports,"APP_ICON_SIZES",{enumerable:!0,get:function(){return _index3.APP_ICON_SIZES}}),Object.defineProperty(exports,"AppIcon",{enumerable:!0,get:function(){return _index3.AppIcon}}),Object.defineProperty(exports,"Breakpoints",{enumerable:!0,get:function(){return _index8.Breakpoints}}),Object.defineProperty(exports,"COLOR_NAMES",{enumerable:!0,get:function(){return _index7.COLOR_NAMES}}),Object.defineProperty(exports,"CURATED_ICON_NAMES",{enumerable:!0,get:function(){return _index3.CURATED_ICON_NAMES}}),Object.defineProperty(exports,"DURATION_NAMES",{enumerable:!0,get:function(){return _index7.DURATION_NAMES}}),Object.defineProperty(exports,"EASE_NAMES",{enumerable:!0,get:function(){return _index7.EASE_NAMES}}),Object.defineProperty(exports,"FLICK_TOLERANCE",{enumerable:!0,get:function(){return _index5.FLICK_TOLERANCE}}),Object.defineProperty(exports,"FONT_NAMES",{enumerable:!0,get:function(){return _index7.FONT_NAMES}}),Object.defineProperty(exports,"Form",{enumerable:!0,get:function(){return _index4.Form}}),Object.defineProperty(exports,"HookFormField",{enumerable:!0,get:function(){return _index4.HookFormField}}),Object.defineProperty(exports,"ICONSAX_SUFFIX",{enumerable:!0,get:function(){return _index3.ICONSAX_SUFFIX}}),Object.defineProperty(exports,"ICON_NAMES",{enumerable:!0,get:function(){return _index3.ICON_NAMES}}),Object.defineProperty(exports,"LEADING_NAMES",{enumerable:!0,get:function(){return _index7.LEADING_NAMES}}),Object.defineProperty(exports,"LETTER_SPACING_NAMES",{enumerable:!0,get:function(){return _index7.LETTER_SPACING_NAMES}}),Object.defineProperty(exports,"NetworkStatusBanner",{enumerable:!0,get:function(){return _index6.NetworkStatusBanner}}),Object.defineProperty(exports,"PHONE_CHROME_INSETS",{enumerable:!0,get:function(){return _index.PHONE_CHROME_INSETS}}),Object.defineProperty(exports,"PRESENCE_REDUCE_MOTION",{enumerable:!0,get:function(){return _index5.PRESENCE_REDUCE_MOTION}}),Object.defineProperty(exports,"PRESS_ANIMATION_PRESETS",{enumerable:!0,get:function(){return _index5.PRESS_ANIMATION_PRESETS}}),Object.defineProperty(exports,"RADIUS_NAMES",{enumerable:!0,get:function(){return _index7.RADIUS_NAMES}}),Object.defineProperty(exports,"Responsive",{enumerable:!0,get:function(){return _index8.Responsive}}),Object.defineProperty(exports,"SHADOW_NAMES",{enumerable:!0,get:function(){return _index7.SHADOW_NAMES}}),Object.defineProperty(exports,"SIZE_NAMES",{enumerable:!0,get:function(){return _index7.SIZE_NAMES}}),Object.defineProperty(exports,"SPACE_NAMES",{enumerable:!0,get:function(){return _index7.SPACE_NAMES}}),Object.defineProperty(exports,"SQUIRCLE_MIN_RADIUS",{enumerable:!0,get:function(){return _index8.SQUIRCLE_MIN_RADIUS}}),Object.defineProperty(exports,"SQUIRCLE_SMOOTHING",{enumerable:!0,get:function(){return _index8.SQUIRCLE_SMOOTHING}}),Object.defineProperty(exports,"ScreenDimensions",{enumerable:!0,get:function(){return _index8.ScreenDimensions}}),Object.defineProperty(exports,"TEXT_NAMES",{enumerable:!0,get:function(){return _index7.TEXT_NAMES}}),Object.defineProperty(exports,"ThemeProvider",{enumerable:!0,get:function(){return _index7.ThemeProvider}}),Object.defineProperty(exports,"WEIGHT_NAMES",{enumerable:!0,get:function(){return _index7.WEIGHT_NAMES}}),Object.defineProperty(exports,"announce",{enumerable:!0,get:function(){return _index8.announce}}),Object.defineProperty(exports,"configureFeedback",{enumerable:!0,get:function(){return _index8.configureFeedback}}),Object.defineProperty(exports,"darkTheme",{enumerable:!0,get:function(){return _index7.darkTheme}}),Object.defineProperty(exports,"defaultIcons",{enumerable:!0,get:function(){return _index3.defaultIcons}}),Object.defineProperty(exports,"deletePath",{enumerable:!0,get:function(){return _index4.deletePath}}),Object.defineProperty(exports,"feedback",{enumerable:!0,get:function(){return _index8.feedback}}),Object.defineProperty(exports,"getPath",{enumerable:!0,get:function(){return _index4.getPath}}),Object.defineProperty(exports,"hapticForIntent",{enumerable:!0,get:function(){return _index8.hapticForIntent}}),Object.defineProperty(exports,"isFeedbackEnabled",{enumerable:!0,get:function(){return _index8.isFeedbackEnabled}}),Object.defineProperty(exports,"isFieldFilled",{enumerable:!0,get:function(){return _index4.isFieldFilled}}),Object.defineProperty(exports,"isScreenSize",{enumerable:!0,get:function(){return _index8.isScreenSize}}),Object.defineProperty(exports,"isTablet",{enumerable:!0,get:function(){return _index8.isTablet}}),Object.defineProperty(exports,"lightTheme",{enumerable:!0,get:function(){return _index7.lightTheme}}),Object.defineProperty(exports,"mergeBrand",{enumerable:!0,get:function(){return _index7.mergeBrand}}),Object.defineProperty(exports,"radiusOf",{enumerable:!0,get:function(){return _index7.radiusOf}}),Object.defineProperty(exports,"renderSlotIcon",{enumerable:!0,get:function(){return _index3.renderSlotIcon}}),Object.defineProperty(exports,"resolveBadgeSize",{enumerable:!0,get:function(){return _index7.resolveBadgeSize}}),Object.defineProperty(exports,"resolveButtonSize",{enumerable:!0,get:function(){return _index7.resolveButtonSize}}),Object.defineProperty(exports,"resolveCheckboxSize",{enumerable:!0,get:function(){return _index7.resolveCheckboxSize}}),Object.defineProperty(exports,"resolveChipSize",{enumerable:!0,get:function(){return _index7.resolveChipSize}}),Object.defineProperty(exports,"resolveEmptyStateSize",{enumerable:!0,get:function(){return _index7.resolveEmptyStateSize}}),Object.defineProperty(exports,"resolveFieldSize",{enumerable:!0,get:function(){return _index7.resolveFieldSize}}),Object.defineProperty(exports,"resolveFloatingActionButtonSize",{enumerable:!0,get:function(){return _index7.resolveFloatingActionButtonSize}}),Object.defineProperty(exports,"resolveListItemSize",{enumerable:!0,get:function(){return _index7.resolveListItemSize}}),Object.defineProperty(exports,"resolveOtpInputSize",{enumerable:!0,get:function(){return _index7.resolveOtpInputSize}}),Object.defineProperty(exports,"resolveRadioSize",{enumerable:!0,get:function(){return _index7.resolveRadioSize}}),Object.defineProperty(exports,"resolveSegmentedControlSize",{enumerable:!0,get:function(){return _index7.resolveSegmentedControlSize}}),Object.defineProperty(exports,"resolveSliderSize",{enumerable:!0,get:function(){return _index7.resolveSliderSize}}),Object.defineProperty(exports,"resolveSwitchSize",{enumerable:!0,get:function(){return _index7.resolveSwitchSize}}),Object.defineProperty(exports,"resolveTabsSize",{enumerable:!0,get:function(){return _index7.resolveTabsSize}}),Object.defineProperty(exports,"rules",{enumerable:!0,get:function(){return _index4.rules}}),Object.defineProperty(exports,"setHapticImplementation",{enumerable:!0,get:function(){return _index8.setHapticImplementation}}),Object.defineProperty(exports,"setPath",{enumerable:!0,get:function(){return _index4.setPath}}),Object.defineProperty(exports,"shadowStyle",{enumerable:!0,get:function(){return _index8.shadowStyle}}),Object.defineProperty(exports,"smoothCorners",{enumerable:!0,get:function(){return _index8.smoothCorners}}),Object.defineProperty(exports,"spaceOf",{enumerable:!0,get:function(){return _index7.spaceOf}}),Object.defineProperty(exports,"squircleApplies",{enumerable:!0,get:function(){return _index8.squircleApplies}}),Object.defineProperty(exports,"squircleHostRadius",{enumerable:!0,get:function(){return _index8.squircleHostRadius}}),Object.defineProperty(exports,"squirclePath",{enumerable:!0,get:function(){return _index8.squirclePath}}),Object.defineProperty(exports,"textOf",{enumerable:!0,get:function(){return _index7.textOf}}),Object.defineProperty(exports,"triggerHaptic",{enumerable:!0,get:function(){return _index8.triggerHaptic}}),Object.defineProperty(exports,"useControllableState",{enumerable:!0,get:function(){return _index5.useControllableState}}),Object.defineProperty(exports,"useDebounce",{enumerable:!0,get:function(){return _index5.useDebounce}}),Object.defineProperty(exports,"useField",{enumerable:!0,get:function(){return _index4.useField}}),Object.defineProperty(exports,"useFieldArray",{enumerable:!0,get:function(){return _index4.useFieldArray}}),Object.defineProperty(exports,"useFieldChain",{enumerable:!0,get:function(){return _index5.useFieldChain}}),Object.defineProperty(exports,"useFlickGuard",{enumerable:!0,get:function(){return _index5.useFlickGuard}}),Object.defineProperty(exports,"useForm",{enumerable:!0,get:function(){return _index4.useForm}}),Object.defineProperty(exports,"useFormCompletion",{enumerable:!0,get:function(){return _index4.useFormCompletion}}),Object.defineProperty(exports,"useFormContext",{enumerable:!0,get:function(){return _index4.useFormContext}}),Object.defineProperty(exports,"useHookFormField",{enumerable:!0,get:function(){return _index4.useHookFormField}}),Object.defineProperty(exports,"useOptionalFormContext",{enumerable:!0,get:function(){return _index4.useOptionalFormContext}}),Object.defineProperty(exports,"usePresenceMotion",{enumerable:!0,get:function(){return _index5.usePresenceMotion}}),Object.defineProperty(exports,"usePressAnimation",{enumerable:!0,get:function(){return _index5.usePressAnimation}}),Object.defineProperty(exports,"useReducedMotion",{enumerable:!0,get:function(){return _index5.useReducedMotion}}),Object.defineProperty(exports,"useRefreshControl",{enumerable:!0,get:function(){return _index5.useRefreshControl}}),Object.defineProperty(exports,"useScreenDimensions",{enumerable:!0,get:function(){return _index8.useScreenDimensions}}),Object.defineProperty(exports,"useScrollDirection",{enumerable:!0,get:function(){return _index5.useScrollDirection}}),Object.defineProperty(exports,"useTheme",{enumerable:!0,get:function(){return _index7.useTheme}}),Object.defineProperty(exports,"useThemeMode",{enumerable:!0,get:function(){return _index7.useThemeMode}}),Object.defineProperty(exports,"useToggle",{enumerable:!0,get:function(){return _index5.useToggle}}),Object.defineProperty(exports,"warnUnknownProps",{enumerable:!0,get:function(){return _index8.warnUnknownProps}});var _index=require("./canvasKit/index.js"),_index2=require("./components/index.js");Object.keys(_index2).forEach(function(e){"default"!==e&&"__esModule"!==e&&(Object.prototype.hasOwnProperty.call(_exportNames,e)||e in exports&&exports[e]===_index2[e]||Object.defineProperty(exports,e,{enumerable:!0,get:function(){return _index2[e]}}))});var _index3=require("./components/AppIcon/index.js"),_index4=require("./form/index.js"),_index5=require("./hooks/index.js"),_index6=require("./network/index.js"),_index7=require("./theme/index.js"),_index8=require("./utils/index.js");
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"COLOR_NAMES",{enumerable:!0,get:function(){return _tokensGenerated.COLOR_NAMES}}),Object.defineProperty(exports,"DURATION_NAMES",{enumerable:!0,get:function(){return _tokensGenerated.DURATION_NAMES}}),Object.defineProperty(exports,"EASE_NAMES",{enumerable:!0,get:function(){return _tokensGenerated.EASE_NAMES}}),Object.defineProperty(exports,"FONT_NAMES",{enumerable:!0,get:function(){return _tokensGenerated.FONT_NAMES}}),Object.defineProperty(exports,"Gradient",{enumerable:!0,get:function(){return _Gradient.Gradient}}),Object.defineProperty(exports,"LEADING_NAMES",{enumerable:!0,get:function(){return _tokensGenerated.LEADING_NAMES}}),Object.defineProperty(exports,"LETTER_SPACING_NAMES",{enumerable:!0,get:function(){return _tokensGenerated.LETTER_SPACING_NAMES}}),Object.defineProperty(exports,"RADIUS_NAMES",{enumerable:!0,get:function(){return _tokensGenerated.RADIUS_NAMES}}),Object.defineProperty(exports,"SHADOW_NAMES",{enumerable:!0,get:function(){return _tokensGenerated.SHADOW_NAMES}}),Object.defineProperty(exports,"SIZE_NAMES",{enumerable:!0,get:function(){return _tokensGenerated.SIZE_NAMES}}),Object.defineProperty(exports,"SPACE_NAMES",{enumerable:!0,get:function(){return _tokensGenerated.SPACE_NAMES}}),Object.defineProperty(exports,"TEXT_NAMES",{enumerable:!0,get:function(){return _tokensGenerated.TEXT_NAMES}}),Object.defineProperty(exports,"ThemeProvider",{enumerable:!0,get:function(){return _ThemeContext.ThemeProvider}}),Object.defineProperty(exports,"WEIGHT_NAMES",{enumerable:!0,get:function(){return _tokensGenerated.WEIGHT_NAMES}}),Object.defineProperty(exports,"createAnimatedValue",{enumerable:!0,get:function(){return _animatedValue.createAnimatedValue}}),Object.defineProperty(exports,"darkTheme",{enumerable:!0,get:function(){return _tokens.darkTheme}}),Object.defineProperty(exports,"fontFor",{enumerable:!0,get:function(){return _textStyle.fontFor}}),exports.getTheme=exports.getColorMode=void 0,Object.defineProperty(exports,"gradientAngle",{enumerable:!0,get:function(){return _Gradient.gradientAngle}}),Object.defineProperty(exports,"lightTheme",{enumerable:!0,get:function(){return _tokens.lightTheme}}),Object.defineProperty(exports,"mergeBrand",{enumerable:!0,get:function(){return _merge.mergeBrand}}),Object.defineProperty(exports,"radiusOf",{enumerable:!0,get:function(){return _scale.radiusOf}}),exports.resetTheme=void 0,Object.defineProperty(exports,"resolveBadgeSize",{enumerable:!0,get:function(){return _componentSizes.resolveBadgeSize}}),Object.defineProperty(exports,"resolveButtonSize",{enumerable:!0,get:function(){return _componentSizes.resolveButtonSize}}),Object.defineProperty(exports,"resolveCheckboxSize",{enumerable:!0,get:function(){return _componentSizes.resolveCheckboxSize}}),Object.defineProperty(exports,"resolveChipSize",{enumerable:!0,get:function(){return _componentSizes.resolveChipSize}}),Object.defineProperty(exports,"resolveEmptyStateSize",{enumerable:!0,get:function(){return _componentSizes.resolveEmptyStateSize}}),Object.defineProperty(exports,"resolveFieldSize",{enumerable:!0,get:function(){return _componentSizes.resolveFieldSize}}),Object.defineProperty(exports,"resolveFloatingActionButtonSize",{enumerable:!0,get:function(){return _componentSizes.resolveFloatingActionButtonSize}}),Object.defineProperty(exports,"resolveListItemSize",{enumerable:!0,get:function(){return _componentSizes.resolveListItemSize}}),Object.defineProperty(exports,"resolveOtpInputSize",{enumerable:!0,get:function(){return _componentSizes.resolveOtpInputSize}}),Object.defineProperty(exports,"resolveRadioSize",{enumerable:!0,get:function(){return _componentSizes.resolveRadioSize}}),Object.defineProperty(exports,"resolveSegmentedControlSize",{enumerable:!0,get:function(){return _componentSizes.resolveSegmentedControlSize}}),Object.defineProperty(exports,"resolveSliderSize",{enumerable:!0,get:function(){return _componentSizes.resolveSliderSize}}),Object.defineProperty(exports,"resolveSwitchSize",{enumerable:!0,get:function(){return _componentSizes.resolveSwitchSize}}),Object.defineProperty(exports,"resolveTabsSize",{enumerable:!0,get:function(){return _componentSizes.resolveTabsSize}}),exports.setColorMode=void 0,Object.defineProperty(exports,"setNativeValue",{enumerable:!0,get:function(){return _animatedValue.setNativeValue}}),exports.setTheme=void 0,Object.defineProperty(exports,"spaceOf",{enumerable:!0,get:function(){return _scale.spaceOf}}),exports.subscribeTheme=void 0,Object.defineProperty(exports,"textOf",{enumerable:!0,get:function(){return _scale.textOf}}),Object.defineProperty(exports,"toBackgroundImage",{enumerable:!0,get:function(){return _Gradient.toBackgroundImage}}),Object.defineProperty(exports,"useTheme",{enumerable:!0,get:function(){return _ThemeContext.useTheme}}),Object.defineProperty(exports,"useThemeMode",{enumerable:!0,get:function(){return _ThemeContext.useThemeMode}}),Object.defineProperty(exports,"validateComponentTokens",{enumerable:!0,get:function(){return _componentSizes.validateComponentTokens}});var _merge=require("./merge.js"),_tokens=require("./tokens.js"),_animatedValue=require("./animatedValue.js"),_componentSizes=require("./componentSizes.js"),_Gradient=require("./Gradient.js"),_scale=require("./scale.js"),_ThemeContext=require("./ThemeContext.js"),_textStyle=require("./textStyle.js"),_tokensGenerated=require("./tokens.generated.js");let brandGlobal,settingsGlobal,currentMode="light",currentTheme=_tokens.lightTheme;const subscribers=new Set,recompute=()=>{const e="dark"===currentMode?_tokens.darkTheme:_tokens.lightTheme;currentTheme=brandGlobal||settingsGlobal?(0,_merge.mergeBrand)(e,brandGlobal,settingsGlobal):e,subscribers.forEach(e=>e())},setTheme=(e,t)=>{brandGlobal=e,settingsGlobal=t,recompute()};exports.setTheme=setTheme;const setColorMode=e=>{currentMode=e,recompute()};exports.setColorMode=setColorMode;const getColorMode=()=>currentMode;exports.getColorMode=getColorMode;const getTheme=()=>currentTheme;exports.getTheme=getTheme;const resetTheme=()=>{currentMode="light",brandGlobal=void 0,settingsGlobal=void 0,recompute()};exports.resetTheme=resetTheme;const subscribeTheme=e=>(subscribers.add(e),()=>{subscribers.delete(e)});exports.subscribeTheme=subscribeTheme;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"COLOR_NAMES",{enumerable:!0,get:function(){return _tokensGenerated.COLOR_NAMES}}),Object.defineProperty(exports,"DURATION_NAMES",{enumerable:!0,get:function(){return _tokensGenerated.DURATION_NAMES}}),Object.defineProperty(exports,"EASE_NAMES",{enumerable:!0,get:function(){return _tokensGenerated.EASE_NAMES}}),Object.defineProperty(exports,"FONT_NAMES",{enumerable:!0,get:function(){return _tokensGenerated.FONT_NAMES}}),Object.defineProperty(exports,"Gradient",{enumerable:!0,get:function(){return _Gradient.Gradient}}),Object.defineProperty(exports,"LEADING_NAMES",{enumerable:!0,get:function(){return _tokensGenerated.LEADING_NAMES}}),Object.defineProperty(exports,"LETTER_SPACING_NAMES",{enumerable:!0,get:function(){return _tokensGenerated.LETTER_SPACING_NAMES}}),Object.defineProperty(exports,"RADIUS_NAMES",{enumerable:!0,get:function(){return _tokensGenerated.RADIUS_NAMES}}),Object.defineProperty(exports,"SHADOW_NAMES",{enumerable:!0,get:function(){return _tokensGenerated.SHADOW_NAMES}}),Object.defineProperty(exports,"SIZE_NAMES",{enumerable:!0,get:function(){return _tokensGenerated.SIZE_NAMES}}),Object.defineProperty(exports,"SPACE_NAMES",{enumerable:!0,get:function(){return _tokensGenerated.SPACE_NAMES}}),Object.defineProperty(exports,"TEXT_NAMES",{enumerable:!0,get:function(){return _tokensGenerated.TEXT_NAMES}}),Object.defineProperty(exports,"ThemeProvider",{enumerable:!0,get:function(){return _ThemeContext.ThemeProvider}}),Object.defineProperty(exports,"WEIGHT_NAMES",{enumerable:!0,get:function(){return _tokensGenerated.WEIGHT_NAMES}}),Object.defineProperty(exports,"createAnimatedValue",{enumerable:!0,get:function(){return _animatedValue.createAnimatedValue}}),Object.defineProperty(exports,"darkTheme",{enumerable:!0,get:function(){return _tokens.darkTheme}}),Object.defineProperty(exports,"fontFor",{enumerable:!0,get:function(){return _textStyle.fontFor}}),Object.defineProperty(exports,"gradientAngle",{enumerable:!0,get:function(){return _Gradient.gradientAngle}}),Object.defineProperty(exports,"lightTheme",{enumerable:!0,get:function(){return _tokens.lightTheme}}),Object.defineProperty(exports,"mergeBrand",{enumerable:!0,get:function(){return _merge.mergeBrand}}),Object.defineProperty(exports,"radiusOf",{enumerable:!0,get:function(){return _scale.radiusOf}}),Object.defineProperty(exports,"resolveBadgeSize",{enumerable:!0,get:function(){return _componentSizes.resolveBadgeSize}}),Object.defineProperty(exports,"resolveButtonSize",{enumerable:!0,get:function(){return _componentSizes.resolveButtonSize}}),Object.defineProperty(exports,"resolveCheckboxSize",{enumerable:!0,get:function(){return _componentSizes.resolveCheckboxSize}}),Object.defineProperty(exports,"resolveChipSize",{enumerable:!0,get:function(){return _componentSizes.resolveChipSize}}),Object.defineProperty(exports,"resolveEmptyStateSize",{enumerable:!0,get:function(){return _componentSizes.resolveEmptyStateSize}}),Object.defineProperty(exports,"resolveFieldSize",{enumerable:!0,get:function(){return _componentSizes.resolveFieldSize}}),Object.defineProperty(exports,"resolveFloatingActionButtonSize",{enumerable:!0,get:function(){return _componentSizes.resolveFloatingActionButtonSize}}),Object.defineProperty(exports,"resolveListItemSize",{enumerable:!0,get:function(){return _componentSizes.resolveListItemSize}}),Object.defineProperty(exports,"resolveOtpInputSize",{enumerable:!0,get:function(){return _componentSizes.resolveOtpInputSize}}),Object.defineProperty(exports,"resolveRadioSize",{enumerable:!0,get:function(){return _componentSizes.resolveRadioSize}}),Object.defineProperty(exports,"resolveSegmentedControlSize",{enumerable:!0,get:function(){return _componentSizes.resolveSegmentedControlSize}}),Object.defineProperty(exports,"resolveSliderSize",{enumerable:!0,get:function(){return _componentSizes.resolveSliderSize}}),Object.defineProperty(exports,"resolveSwitchSize",{enumerable:!0,get:function(){return _componentSizes.resolveSwitchSize}}),Object.defineProperty(exports,"resolveTabsSize",{enumerable:!0,get:function(){return _componentSizes.resolveTabsSize}}),Object.defineProperty(exports,"setNativeValue",{enumerable:!0,get:function(){return _animatedValue.setNativeValue}}),Object.defineProperty(exports,"spaceOf",{enumerable:!0,get:function(){return _scale.spaceOf}}),Object.defineProperty(exports,"textOf",{enumerable:!0,get:function(){return _scale.textOf}}),Object.defineProperty(exports,"toBackgroundImage",{enumerable:!0,get:function(){return _Gradient.toBackgroundImage}}),Object.defineProperty(exports,"useTheme",{enumerable:!0,get:function(){return _ThemeContext.useTheme}}),Object.defineProperty(exports,"useThemeMode",{enumerable:!0,get:function(){return _ThemeContext.useThemeMode}}),Object.defineProperty(exports,"validateComponentTokens",{enumerable:!0,get:function(){return _componentSizes.validateComponentTokens}});var _animatedValue=require("./animatedValue.js"),_componentSizes=require("./componentSizes.js"),_Gradient=require("./Gradient.js"),_merge=require("./merge.js"),_scale=require("./scale.js"),_ThemeContext=require("./ThemeContext.js"),_textStyle=require("./textStyle.js"),_tokens=require("./tokens.js"),_tokensGenerated=require("./tokens.generated.js");
@@ -1 +1 @@
1
- "use strict";import{createElement}from"react";import{StyleSheet,View}from"react-native";import{useKeyboardState}from"react-native-keyboard-controller";import{darkTheme,lightTheme}from"../theme/index.js";const STATUS_BAR_HEIGHT={Ios:54,Android:24},HOME_AREA_HEIGHT={Ios:34,Android:0},HOME_BAR_WIDTH=134,HOME_BAR_HEIGHT=5,NAV_BAR_HEIGHT=24,NAV_PILL_WIDTH=108,NAV_PILL_HEIGHT=4,KEYBOARD_HEIGHT_IOS=336,KEYBOARD_HEIGHT_ANDROID=300,MARKER={statusBar:"AppStatusBar",homeIndicator:"AppHomeIndicator",navigationBar:"AppNavigationBar",safeArea:"AppSafeArea",keyboardFrame:"AppKeyboardFrame"},wuiMarker=e=>({dataSet:{wui:e}}),paletteFor=e=>"dark"===e?darkTheme:lightTheme,styles=StyleSheet.create({overlayTop:{position:"absolute",top:0,left:0,right:0},overlayBottom:{position:"absolute",bottom:0,left:0,right:0,alignItems:"center",justifyContent:"flex-end"},fill:{flex:1},homeBar:{width:134,height:5},navPill:{width:108,height:4},keyboardPreview:{position:"absolute",bottom:0,left:0,right:0}});export const StatusBar=({os:e,colorMode:o="light"})=>{const t=paletteFor(o);return createElement(View,{...wuiMarker(MARKER.statusBar),accessibilityElementsHidden:!0,importantForAccessibility:"no-hide-descendants",pointerEvents:"none",style:[styles.overlayTop,{height:STATUS_BAR_HEIGHT[e],backgroundColor:t.colors.bg}]})};export const HomeIndicator=({os:e,colorMode:o="light"})=>{const t=paletteFor(o);return createElement(View,{...wuiMarker(MARKER.homeIndicator),accessibilityElementsHidden:!0,importantForAccessibility:"no-hide-descendants",pointerEvents:"none",style:[styles.overlayBottom,{height:HOME_AREA_HEIGHT[e]}]},"Ios"===e?createElement(View,{style:[styles.homeBar,{backgroundColor:t.colors["text-body"],borderRadius:t.radius.pill,marginBottom:t.space.sm}]}):null)};export const NavigationBar=({os:e,colorMode:o="light"})=>{if("Android"!==e)return null;const t=paletteFor(o);return createElement(View,{...wuiMarker(MARKER.navigationBar),accessibilityElementsHidden:!0,importantForAccessibility:"no-hide-descendants",pointerEvents:"none",style:[styles.overlayBottom,{height:24,justifyContent:"center"}]},createElement(View,{style:[styles.navPill,{backgroundColor:t.colors["text-body"],borderRadius:t.radius.pill}]}))};export const SafeArea=({os:e,children:o})=>createElement(View,{...wuiMarker(MARKER.safeArea),style:[styles.fill,{paddingTop:STATUS_BAR_HEIGHT[e],paddingBottom:HOME_AREA_HEIGHT[e]}]},o);const KEYBOARD_PREVIEW_HEIGHT={ios:336,android:300};export const KeyboardFrame=({colorMode:e="light",previewOs:o,children:t})=>{const r=paletteFor(e),a=useKeyboardState(e=>Math.max(0,Math.round(e.height)));return createElement(View,{...wuiMarker(MARKER.keyboardFrame),style:[styles.fill,{paddingBottom:a,backgroundColor:r.colors.bg}]},t,o?createElement(View,{pointerEvents:"none",style:[styles.keyboardPreview,{height:KEYBOARD_PREVIEW_HEIGHT[o],backgroundColor:r.colors.bg}]}):null)};const SOURCE="@webority/mobile-ui",osProp={name:"os",type:"enum",enum:["Ios","Android"],required:!0},colorModeProp={name:"colorMode",type:"enum",enum:["light","dark"],required:!1};export const phoneChromeEntries=[{name:"StatusBar",marker:MARKER.statusBar,acceptsChildren:!1,props:[osProp,colorModeProp],itemsTakeAction:[],takesAction:[],source:SOURCE},{name:"HomeIndicator",marker:MARKER.homeIndicator,acceptsChildren:!1,props:[osProp,colorModeProp],itemsTakeAction:[],takesAction:[],source:SOURCE},{name:"NavigationBar",marker:MARKER.navigationBar,acceptsChildren:!1,props:[osProp,colorModeProp],itemsTakeAction:[],takesAction:[],source:SOURCE},{name:"SafeArea",marker:MARKER.safeArea,acceptsChildren:!0,props:[osProp],itemsTakeAction:[],takesAction:[],source:SOURCE},{name:"KeyboardFrame",marker:MARKER.keyboardFrame,acceptsChildren:!0,props:[colorModeProp],itemsTakeAction:[],takesAction:[],source:SOURCE}];
1
+ "use strict";import{createElement}from"react";import{StyleSheet,Text,View}from"react-native";import{useKeyboardState}from"react-native-keyboard-controller";import{darkTheme,fontFor,lightTheme}from"../theme/index.js";export const PHONE_CHROME_INSETS={Ios:{top:54,bottom:34},Android:{top:24,bottom:0}};const HOME_BAR_WIDTH=134,HOME_BAR_HEIGHT=5,NAV_BAR_HEIGHT=24,NAV_PILL_WIDTH=108,NAV_PILL_HEIGHT=4,KEYBOARD_HEIGHT_IOS=336,KEYBOARD_HEIGHT_ANDROID=300,SIGNAL_MAX=4,SIGNAL_BAR_WIDTH=3,SIGNAL_BAR_HEIGHTS=[4,6,8,10],BATTERY_FULL=100,BATTERY_WIDTH=24,BATTERY_HEIGHT=12,BATTERY_BORDER=1,BATTERY_INSET=1,BATTERY_CAP_WIDTH=2,BATTERY_CAP_HEIGHT=4,MARKER={statusBar:"AppStatusBar",homeIndicator:"AppHomeIndicator",navigationBar:"AppNavigationBar",safeArea:"AppSafeArea",keyboardFrame:"AppKeyboardFrame"},wuiMarker=e=>({dataSet:{wui:e}}),paletteFor=e=>"dark"===e?darkTheme:lightTheme,finiteOrZero=e=>"number"==typeof e&&Number.isFinite(e)?e:0,styles=StyleSheet.create({overlayTop:{position:"absolute",top:0,left:0,right:0},overlayBottom:{position:"absolute",bottom:0,left:0,right:0,alignItems:"center",justifyContent:"flex-end"},fill:{flex:1},homeBar:{width:134,height:5},navPill:{width:108,height:4},keyboardPreview:{position:"absolute",bottom:0,left:0,right:0},statusRow:{flex:1,flexDirection:"row",alignItems:"center",justifyContent:"space-between"},statusGroup:{flexDirection:"row",alignItems:"center"}}),SignalGlyph=({bars:e,theme:t})=>createElement(View,{testID:"status-bar-signal",style:{flexDirection:"row",alignItems:"flex-end",columnGap:t.space.xxs}},SIGNAL_BAR_HEIGHTS.map((o,r)=>createElement(View,{key:r,style:{width:3,height:o,borderRadius:t.space.xxs/2,backgroundColor:r<e?t.colors["text-body"]:t.colors["text-disabled"]}}))),BatteryGlyph=({level:e,theme:t})=>{const o=Math.round(20*e/100);return createElement(View,{testID:"status-bar-battery",style:{flexDirection:"row",alignItems:"center"}},createElement(View,{style:{width:24,height:12,borderWidth:1,borderColor:t.colors["text-muted"],borderRadius:t.radius.sm/2,padding:1}},createElement(View,{testID:"status-bar-battery-fill",style:{height:"100%",width:o,backgroundColor:t.colors["text-body"],borderRadius:t.space.xxs/2}})),createElement(View,{style:{width:2,height:4,marginLeft:1,backgroundColor:t.colors["text-muted"],borderTopRightRadius:t.space.xxs/2,borderBottomRightRadius:t.space.xxs/2}}))};export const StatusBar=({os:e,colorMode:t="light",time:o,signal:r,battery:a})=>{const i=paletteFor(t),s={...wuiMarker(MARKER.statusBar),accessibilityElementsHidden:!0,importantForAccessibility:"no-hide-descendants",pointerEvents:"none",style:[styles.overlayTop,{height:PHONE_CHROME_INSETS[e].top}]};if("string"!=typeof o&&"number"!=typeof r&&"number"!=typeof a)return createElement(View,s);const n="Ios"===e,l="string"==typeof o?createElement(Text,{numberOfLines:1,allowFontScaling:!1,style:{color:i.colors["text-body"],fontSize:n?i.text.base.size:i.text.sm.size,...fontFor(i,n?"semibold":"medium")}},o):createElement(View),c=createElement(View,{style:[styles.statusGroup,{columnGap:i.space.xs}]},"number"==typeof r?createElement(SignalGlyph,{bars:Math.min(4,Math.max(0,Math.round(finiteOrZero(r)))),theme:i}):null,"number"==typeof a?createElement(BatteryGlyph,{level:Math.min(100,Math.max(0,finiteOrZero(a))),theme:i}):null);return createElement(View,s,createElement(View,{style:[styles.statusRow,{paddingHorizontal:n?i.space["2xl"]:i.space.lg}]},l,c))};export const HomeIndicator=({os:e,colorMode:t="light"})=>{const o=paletteFor(t);return createElement(View,{...wuiMarker(MARKER.homeIndicator),accessibilityElementsHidden:!0,importantForAccessibility:"no-hide-descendants",pointerEvents:"none",style:[styles.overlayBottom,{height:PHONE_CHROME_INSETS[e].bottom}]},"Ios"===e?createElement(View,{style:[styles.homeBar,{backgroundColor:o.colors["text-body"],borderRadius:o.radius.pill,marginBottom:o.space.sm}]}):null)};export const NavigationBar=({os:e,colorMode:t="light"})=>{if("Android"!==e)return null;const o=paletteFor(t);return createElement(View,{...wuiMarker(MARKER.navigationBar),accessibilityElementsHidden:!0,importantForAccessibility:"no-hide-descendants",pointerEvents:"none",style:[styles.overlayBottom,{height:24,justifyContent:"center"}]},createElement(View,{style:[styles.navPill,{backgroundColor:o.colors["text-body"],borderRadius:o.radius.pill}]}))};export const SafeArea=({os:e,children:t})=>createElement(View,{...wuiMarker(MARKER.safeArea),style:[styles.fill,{paddingBottom:PHONE_CHROME_INSETS[e].bottom}]},t);const KEYBOARD_PREVIEW_HEIGHT={ios:336,android:300};export const KeyboardFrame=({colorMode:e="light",previewOs:t,children:o})=>{const r=paletteFor(e),a=useKeyboardState(e=>Math.max(0,Math.round(e.height)));return createElement(View,{...wuiMarker(MARKER.keyboardFrame),style:[styles.fill,{paddingBottom:a,backgroundColor:r.colors.bg}]},o,t?createElement(View,{pointerEvents:"none",style:[styles.keyboardPreview,{height:KEYBOARD_PREVIEW_HEIGHT[t],backgroundColor:r.colors.bg}]}):null)};const SOURCE="@webority/mobile-ui",osProp={name:"os",type:"enum",enum:["Ios","Android"],required:!0},colorModeProp={name:"colorMode",type:"enum",enum:["light","dark"],required:!1},timeProp={name:"time",type:"string",required:!1,description:"The clock as shown, such as 9:41."},signalProp={name:"signal",type:"number",required:!1,description:"Signal strength in bars, 0 to 4."},batteryProp={name:"battery",type:"number",required:!1,description:"Battery level in percent, 0 to 100."};export const phoneChromeEntries=[{name:"StatusBar",marker:MARKER.statusBar,acceptsChildren:!1,props:[osProp,colorModeProp,timeProp,signalProp,batteryProp],itemsTakeAction:[],takesAction:[],source:SOURCE},{name:"HomeIndicator",marker:MARKER.homeIndicator,acceptsChildren:!1,props:[osProp,colorModeProp],itemsTakeAction:[],takesAction:[],source:SOURCE},{name:"NavigationBar",marker:MARKER.navigationBar,acceptsChildren:!1,props:[osProp,colorModeProp],itemsTakeAction:[],takesAction:[],source:SOURCE},{name:"SafeArea",marker:MARKER.safeArea,acceptsChildren:!0,props:[osProp],itemsTakeAction:[],takesAction:[],source:SOURCE},{name:"KeyboardFrame",marker:MARKER.keyboardFrame,acceptsChildren:!0,props:[colorModeProp],itemsTakeAction:[],takesAction:[],source:SOURCE}];
@@ -1 +1 @@
1
- "use strict";import{forwardRef,useMemo}from"react";import{Animated,Pressable,StyleSheet,Text,View}from"react-native";import{useSafeAreaInsets}from"react-native-safe-area-context";import{usePressAnimation}from"../../hooks/usePressAnimation.js";import{fontFor,useTheme}from"../../theme/index.js";import{smoothCorners}from"../../utils/corners.js";import{resolveHaptic,triggerHaptic}from"../../utils/hapticUtils.js";import{AppIcon}from"../AppIcon/AppIcon.js";import{Text as ThemedText}from"../Text/Text.js";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";const ACTION_BUTTON_SIZE=44,DOT_OFFSET=10,DOT_SIZE=8,BADGE_OFFSET=4,variantSize=(e,t)=>{switch(t){case"compact":return{height:44,titleSize:e.text.lg.size,titleWeight:"semibold",alignBottom:!1};case"large":return{height:96,titleSize:e.text["2xl"].size,titleWeight:"bold",alignBottom:!0};default:return{height:56,titleSize:e.text.lg.size,titleWeight:"semibold",alignBottom:!1}}},ActionButton=({action:e,side:t,badgeStyle:i,haptic:n,flush:o})=>{const l=useTheme(),{style:s,pressIn:r,pressOut:a}=usePressAnimation({enabled:!0}),c=useMemo(()=>buildActionStyles(l),[l]),d=e.badge,u=void 0!==d&&0!==d,p=void 0!==e.text;return _jsx(Animated.View,{style:s,children:_jsxs(Pressable,{onPress:()=>{const t=resolveHaptic(n,"selection");t&&triggerHaptic(t),e.onPress()},onPressIn:r,onPressOut:a,accessibilityRole:"button",accessibilityLabel:e.accessibilityLabel??e.text,testID:e.testID,android_ripple:{color:l.colors["surface-pressed"],borderless:!p},style:({pressed:e})=>[p?c.textButton:c.actionButton,o?null:"left"===t?c.actionLeft:c.actionRight,e&&!p?c.actionPressed:null,e&&p?c.textPressed:null],children:[p?_jsx(Text,{style:c.actionText,numberOfLines:1,children:e.text}):_jsx(View,{style:c.iconWrap,children:e.icon}),u?_jsx(View,{style:[c.badge,i],pointerEvents:"none",children:_jsx(Text,{style:c.badgeText,numberOfLines:1,children:String(d)})}):null,e.dot?_jsx(View,{testID:e.testID?`${e.testID}-dot`:"appbar-action-dot",style:c.dot,pointerEvents:"none"}):null]})})},COLLAPSE_RANGE=60,LARGE_TITLE_SCALE_END=.71,AppBar=forwardRef((e,t)=>{const{title:i,subtitle:n,titleAlignment:o="left",leftAction:l,rightActions:s,leading:r,trailing:a,onBack:c,gutter:d,titleVariant:u,titleOffset:p,height:m,divider:g,variant:h="default",transparent:x=!1,scrollY:f,style:b,containerStyle:y,titleStyle:S,subtitleStyle:A,badgeStyle:j,haptic:_,testID:w}=e,T=useTheme(),B=useSafeAreaInsets(),I=useMemo(()=>variantSize(T,h),[T,h]),C=useMemo(()=>buildStyles(T),[T]),R="large"===h&&void 0!==f,v=l??(c?{icon:_jsx(AppIcon,{name:"arrow-left",size:24,color:T.colors["text-body"]}),onPress:c,accessibilityLabel:"Back"}:void 0),z=a?void 0:s?.[s.length-1],opticalInset=e=>void 0===e?0:void 0!==e.text?T.space.sm:Math.max(10,0),V=void 0===d?null:{paddingLeft:Math.max(d-opticalInset(v),0),paddingRight:Math.max(d-opticalInset(z),0)},L=void 0!==p,O=Boolean(v)||Boolean(r),P=g??!x,W=StyleSheet.hairlineWidth,D=useMemo(()=>{if(!f)return null;const e={inputRange:[0,60],extrapolate:"clamp"};return{titleScale:f.interpolate({...e,outputRange:[1,.71]}),titleTranslateY:f.interpolate({...e,outputRange:[0,-20]}),titleTranslateX:f.interpolate({...e,outputRange:"center"===o?[0,0]:[0,8]}),subtitleOpacity:f.interpolate({inputRange:[0,30],outputRange:[1,0],extrapolate:"clamp"}),barHeight:f.interpolate({...e,outputRange:[96,56]}),borderOpacity:f.interpolate({...e,outputRange:[0,1]})}},[f,o]),E=R&&D?{transform:[{translateX:D.titleTranslateX},{translateY:D.titleTranslateY},{scale:D.titleScale}]}:null,H=i?u?_jsx(Animated.View,{style:E,children:_jsx(ThemedText,{variant:u,align:"center"===o?"center":"left",accessibilityRole:"header",numberOfLines:1,style:[C.titleVariant,S],children:i})}):_jsx(Animated.Text,{accessibilityRole:"header",style:[C.title,{fontSize:I.titleSize,fontWeight:T.weight[I.titleWeight],textAlign:"center"===o?"center":"left"},E,S],numberOfLines:1,children:i}):null,k=n?_jsx(Animated.Text,{style:[C.subtitle,{textAlign:"center"===o?"center":"left"},R&&D?{opacity:D.subtitleOpacity}:null,A],numberOfLines:1,children:n}):null,M=_jsxs(View,{style:[C.titleColumn,"center"===o?C.titleColumnCenter:null,I.alignBottom?C.titleColumnBottom:null],children:[H,k]}),N=R?Animated.View:View,F=R&&D?{height:Animated.add(D.barHeight,new Animated.Value(B.top))}:{height:(m??I.height)+B.top};return _jsxs(N,{ref:t,testID:w,style:[C.root,{paddingTop:B.top,backgroundColor:x?"transparent":T.colors.surface},F,!R&&P?{borderBottomWidth:W,borderBottomColor:T.colors.border}:null,b,y],children:[R&&D&&P?_jsx(Animated.View,{pointerEvents:"none",style:[C.animatedBorder,{backgroundColor:T.colors.border,opacity:D.borderOpacity}]}):null,_jsxs(View,{style:[C.row,I.alignBottom?C.rowAlignBottom:null,V,{flex:1}],children:[_jsxs(View,{style:[C.sideSlot,L?C.sideSlotCompact:null],children:[v?_jsx(ActionButton,{action:v,side:"left",haptic:_,flush:L}):null,null!=r&&!1!==r?_jsx(View,{style:C.slotNode,children:r}):null]}),_jsx(View,{pointerEvents:"none",style:[C.center,"center"===o?C.centerAligned:C.centerLeft,L?{paddingLeft:O?p:T.space.none,paddingRight:T.space.none}:null],children:M}),_jsxs(View,{style:[C.sideSlot,C.sideSlotRight,L?C.sideSlotCompact:null],children:[s?.map((e,t)=>_jsx(ActionButton,{action:e,side:"right",badgeStyle:j,haptic:_,flush:L},`appbar-right-${t}`)),null!=a&&!1!==a?_jsx(View,{style:C.slotNode,children:a}):null]})]})]})});AppBar.displayName="AppBar";const buildStyles=e=>StyleSheet.create({root:{width:"100%"},row:{flexDirection:"row",alignItems:"center",paddingHorizontal:e.space.xs},rowAlignBottom:{alignItems:"flex-end",paddingBottom:e.space.sm},sideSlot:{flexDirection:"row",alignItems:"center",minWidth:48},sideSlotRight:{justifyContent:"flex-end"},sideSlotCompact:{minWidth:0},slotNode:{flexDirection:"row",alignItems:"center"},center:{flex:1,paddingHorizontal:e.space.xs},centerAligned:{alignItems:"center"},centerLeft:{alignItems:"flex-start"},titleColumn:{flexDirection:"column"},titleColumnCenter:{alignItems:"center"},titleColumnBottom:{justifyContent:"flex-end"},title:{color:e.colors["text-body"]},titleVariant:{includeFontPadding:!1,textAlignVertical:"center"},subtitle:{marginTop:e.space.xxs,color:e.colors["text-subtle"],fontSize:e.text.sm.size,fontWeight:e.weight.normal},animatedBorder:{position:"absolute",left:0,right:0,bottom:0,height:StyleSheet.hairlineWidth}}),buildActionStyles=e=>StyleSheet.create({actionButton:{width:44,height:44,borderRadius:e.radius.pill,...smoothCorners,alignItems:"center",justifyContent:"center"},actionLeft:{marginRight:e.space.xs},actionRight:{marginLeft:e.space.xs},actionPressed:{backgroundColor:e.colors["surface-pressed"]},textButton:{minWidth:44,minHeight:44,paddingHorizontal:e.space.sm,alignItems:"center",justifyContent:"center"},textPressed:{opacity:.6},actionText:{color:e.colors.link,fontSize:e.text.base.size,...fontFor(e,"semibold")},dot:{position:"absolute",top:10,right:10,width:8,height:8,borderRadius:e.radius.pill,backgroundColor:e.colors.danger},iconWrap:{alignItems:"center",justifyContent:"center"},badge:{position:"absolute",top:4,right:4,minWidth:16,height:16,paddingHorizontal:e.space.xs,borderRadius:e.radius.pill,...smoothCorners,backgroundColor:e.colors.danger,alignItems:"center",justifyContent:"center"},badgeText:{color:e.colors["on-danger"],fontSize:e.text.xs.size,fontWeight:e.weight.semibold,lineHeight:13}});export{AppBar};export default AppBar;
1
+ "use strict";import{forwardRef,useMemo}from"react";import{Animated,Pressable,StyleSheet,Text,View}from"react-native";import{useSafeAreaInsets}from"react-native-safe-area-context";import{usePressAnimation}from"../../hooks/usePressAnimation.js";import{fontFor,useTheme}from"../../theme/index.js";import{smoothCorners}from"../../utils/corners.js";import{resolveHaptic,triggerHaptic}from"../../utils/hapticUtils.js";import{AppIcon}from"../AppIcon/AppIcon.js";import{Text as ThemedText}from"../Text/Text.js";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";const ACTION_BUTTON_SIZE=44,DOT_OFFSET=10,DOT_SIZE=8,BADGE_OFFSET=4,variantSize=(e,t)=>{switch(t){case"compact":return{height:44,titleSize:e.text.lg.size,titleWeight:"semibold",alignBottom:!1,subtitleLines:1};case"large":return{height:96,titleSize:e.text["2xl"].size,titleWeight:"bold",alignBottom:!0,subtitleLines:2};default:return{height:56,titleSize:e.text.lg.size,titleWeight:"semibold",alignBottom:!1,subtitleLines:1}}},ActionButton=({action:e,side:t,badgeStyle:i,haptic:n,flush:o})=>{const l=useTheme(),{style:s,pressIn:r,pressOut:a}=usePressAnimation({enabled:!0}),c=useMemo(()=>buildActionStyles(l),[l]),d=e.badge,u=void 0!==d&&0!==d,p=void 0!==e.text;return _jsx(Animated.View,{style:s,children:_jsxs(Pressable,{onPress:()=>{const t=resolveHaptic(n,"selection");t&&triggerHaptic(t),e.onPress()},onPressIn:r,onPressOut:a,accessibilityRole:"button",accessibilityLabel:e.accessibilityLabel??e.text,testID:e.testID,android_ripple:{color:l.colors["surface-pressed"],borderless:!p},style:({pressed:e})=>[p?c.textButton:c.actionButton,o?null:"left"===t?c.actionLeft:c.actionRight,e&&!p?c.actionPressed:null,e&&p?c.textPressed:null],children:[p?_jsx(Text,{style:c.actionText,numberOfLines:1,children:e.text}):_jsx(View,{style:c.iconWrap,children:e.icon}),u?_jsx(View,{style:[c.badge,i],pointerEvents:"none",children:_jsx(Text,{style:c.badgeText,numberOfLines:1,children:String(d)})}):null,e.dot?_jsx(View,{testID:e.testID?`${e.testID}-dot`:"appbar-action-dot",style:c.dot,pointerEvents:"none"}):null]})})},COLLAPSE_RANGE=60,LARGE_TITLE_SCALE_END=.71,AppBar=forwardRef((e,t)=>{const{title:i,subtitle:n,titleAlignment:o="left",leftAction:l,rightActions:s,leading:r,trailing:a,onBack:c,gutter:d,titleVariant:u,titleOffset:p,height:m,divider:g,variant:h="default",transparent:x=!1,scrollY:f,style:b,containerStyle:y,titleStyle:S,subtitleStyle:A,badgeStyle:j,haptic:_,testID:w}=e,T=useTheme(),B=useSafeAreaInsets(),I=useMemo(()=>variantSize(T,h),[T,h]),C=useMemo(()=>buildStyles(T),[T]),R="large"===h&&void 0!==f,L=l??(c?{icon:_jsx(AppIcon,{name:"arrow-left",size:24,color:T.colors["text-body"]}),onPress:c,accessibilityLabel:"Back"}:void 0),v=a?void 0:s?.[s.length-1],opticalInset=e=>void 0===e?0:void 0!==e.text?T.space.sm:Math.max(10,0),z=void 0===d?null:{paddingLeft:Math.max(d-opticalInset(L),0),paddingRight:Math.max(d-opticalInset(v),0)},V=void 0!==p,O=Boolean(L)||Boolean(r),W=g??!x,P=StyleSheet.hairlineWidth,D=useMemo(()=>{if(!f)return null;const e={inputRange:[0,60],extrapolate:"clamp"};return{titleScale:f.interpolate({...e,outputRange:[1,.71]}),titleTranslateY:f.interpolate({...e,outputRange:[0,-20]}),titleTranslateX:f.interpolate({...e,outputRange:"center"===o?[0,0]:[0,8]}),subtitleOpacity:f.interpolate({inputRange:[0,30],outputRange:[1,0],extrapolate:"clamp"}),barHeight:f.interpolate({...e,outputRange:[96,56]}),borderOpacity:f.interpolate({...e,outputRange:[0,1]})}},[f,o]),E=R&&D?{transform:[{translateX:D.titleTranslateX},{translateY:D.titleTranslateY},{scale:D.titleScale}]}:null,H=i?u?_jsx(Animated.View,{style:E,children:_jsx(ThemedText,{variant:u,align:"center"===o?"center":"left",accessibilityRole:"header",numberOfLines:1,style:[C.titleVariant,S],children:i})}):_jsx(Animated.Text,{accessibilityRole:"header",style:[C.title,{fontSize:I.titleSize,fontWeight:T.weight[I.titleWeight],textAlign:"center"===o?"center":"left"},E,S],numberOfLines:1,children:i}):null,k=n?_jsx(Animated.Text,{style:[C.subtitle,{textAlign:"center"===o?"center":"left"},R&&D?{opacity:D.subtitleOpacity}:null,A],numberOfLines:I.subtitleLines,children:n}):null,M=_jsxs(View,{style:[C.titleColumn,"center"===o?C.titleColumnCenter:null,I.alignBottom?C.titleColumnBottom:null],children:[H,k]}),N=R?Animated.View:View,F=R&&D?{height:Animated.add(D.barHeight,new Animated.Value(B.top))}:{height:(m??I.height)+B.top};return _jsxs(N,{ref:t,testID:w,style:[C.root,{paddingTop:B.top,backgroundColor:x?"transparent":T.colors.surface},F,!R&&W?{borderBottomWidth:P,borderBottomColor:T.colors.border}:null,b,y],children:[R&&D&&W?_jsx(Animated.View,{pointerEvents:"none",style:[C.animatedBorder,{backgroundColor:T.colors.border,opacity:D.borderOpacity}]}):null,_jsxs(View,{style:[C.row,I.alignBottom?C.rowAlignBottom:null,z,{flex:1}],children:[_jsxs(View,{style:[C.sideSlot,V?C.sideSlotCompact:null],children:[L?_jsx(ActionButton,{action:L,side:"left",haptic:_,flush:V}):null,null!=r&&!1!==r?_jsx(View,{style:C.slotNode,children:r}):null]}),_jsx(View,{pointerEvents:"none",style:[C.center,"center"===o?C.centerAligned:C.centerLeft,V?{paddingLeft:O?p:T.space.none,paddingRight:T.space.none}:null],children:M}),_jsxs(View,{style:[C.sideSlot,C.sideSlotRight,V?C.sideSlotCompact:null],children:[s?.map((e,t)=>_jsx(ActionButton,{action:e,side:"right",badgeStyle:j,haptic:_,flush:V},`appbar-right-${t}`)),null!=a&&!1!==a?_jsx(View,{style:C.slotNode,children:a}):null]})]})]})});AppBar.displayName="AppBar";const buildStyles=e=>StyleSheet.create({root:{width:"100%"},row:{flexDirection:"row",alignItems:"center",paddingHorizontal:e.space.xs},rowAlignBottom:{alignItems:"flex-end",paddingBottom:e.space.sm},sideSlot:{flexDirection:"row",alignItems:"center",minWidth:48},sideSlotRight:{justifyContent:"flex-end"},sideSlotCompact:{minWidth:0},slotNode:{flexDirection:"row",alignItems:"center"},center:{flex:1,minWidth:0,paddingHorizontal:e.space.xs},centerAligned:{alignItems:"center"},centerLeft:{alignItems:"flex-start"},titleColumn:{flexDirection:"column",maxWidth:"100%"},titleColumnCenter:{alignItems:"center"},titleColumnBottom:{justifyContent:"flex-end"},title:{color:e.colors["text-body"]},titleVariant:{includeFontPadding:!1,textAlignVertical:"center"},subtitle:{marginTop:e.space.xxs,color:e.colors["text-subtle"],fontSize:e.text.sm.size,fontWeight:e.weight.normal},animatedBorder:{position:"absolute",left:0,right:0,bottom:0,height:StyleSheet.hairlineWidth}}),buildActionStyles=e=>StyleSheet.create({actionButton:{width:44,height:44,borderRadius:e.radius.pill,...smoothCorners,alignItems:"center",justifyContent:"center"},actionLeft:{marginRight:e.space.xs},actionRight:{marginLeft:e.space.xs},actionPressed:{backgroundColor:e.colors["surface-pressed"]},textButton:{minWidth:44,minHeight:44,paddingHorizontal:e.space.sm,alignItems:"center",justifyContent:"center"},textPressed:{opacity:.6},actionText:{color:e.colors.link,fontSize:e.text.base.size,...fontFor(e,"semibold")},dot:{position:"absolute",top:10,right:10,width:8,height:8,borderRadius:e.radius.pill,backgroundColor:e.colors.danger},iconWrap:{alignItems:"center",justifyContent:"center"},badge:{position:"absolute",top:4,right:4,minWidth:16,height:16,paddingHorizontal:e.space.xs,borderRadius:e.radius.pill,...smoothCorners,backgroundColor:e.colors.danger,alignItems:"center",justifyContent:"center"},badgeText:{color:e.colors["on-danger"],fontSize:e.text.xs.size,fontWeight:e.weight.semibold,lineHeight:13}});export{AppBar};export default AppBar;
@@ -1 +1 @@
1
- "use strict";import{Image}from"expo-image";import{Children,cloneElement,forwardRef,isValidElement,useEffect,useMemo,useRef,useState}from"react";import{Animated,Easing,Pressable,StyleSheet,Text,View}from"react-native";import{createAnimatedValue,useTheme}from"../../theme/index.js";import{tintOf}from"../../utils/color.js";import{smoothCorners}from"../../utils/corners.js";import{resolveHaptic,triggerHaptic}from"../../utils/hapticUtils.js";import{AppIcon}from"../AppIcon/index.js";import{Skeleton}from"../Skeleton/index.js";import{jsx as _jsx,Fragment as _Fragment,jsxs as _jsxs}from"react/jsx-runtime";const SOFT_FILL_OPACITY=.14,MIN_TOUCH_TARGET=44,PRESSED_OPACITY=.7,INITIALS_MAX_FONT_SCALE=1.2;export const AVATAR_COLORS=["avatar-1","avatar-2","avatar-3","avatar-4","avatar-5","avatar-6","avatar-7","avatar-8"];export const avatarToneColors=(e,t)=>{const soft=(e,t)=>tintOf(e,.14,t);switch(t){case"primary":return{background:soft(e.colors.primary,e.colors["primary-soft"]),color:e.colors["primary-text"]};case"secondary":return{background:e.colors.neutral,color:e.colors["on-neutral"]};case"success":return{background:soft(e.colors.success,e.colors["bg-subtle"]),color:e.colors["success-text"]};case"warning":return{background:soft(e.colors.warning,e.colors["bg-subtle"]),color:e.colors["warning-text"]};case"danger":return{background:soft(e.colors.danger,e.colors["bg-subtle"]),color:e.colors["danger-text"]};case"info":return{background:soft(e.colors.info,e.colors["bg-subtle"]),color:e.colors["info-text"]};default:return{background:e.colors["bg-muted"],color:e.colors["text-body"]}}};const sizeMap={xs:24,sm:32,md:48,lg:64,xl:80},resolveSize=e=>"number"==typeof e?e:sizeMap[e],resolveRadius=(e,t,r)=>{switch(t){case"circle":return r/2;case"rounded":return Math.max(e.radius.sm,Math.round(.22*r));default:return 0}},initialsFromName=e=>{if(!e)return"";const t=e.trim().split(/\s+/u).filter(Boolean);return 0===t.length?"":1===t.length?t[0].charAt(0).toUpperCase():(t[0].charAt(0)+t[1].charAt(0)).toUpperCase()},hashColor=(e,t)=>{if(!e)return t[0];let r=0;for(let t=0;t<e.length;t+=1)r=(r<<5)-r+e.charCodeAt(t),r|=0;return t[Math.abs(r)%t.length]},RING_WIDTH=1.5,isRingStatus=e=>"verified"===e||"pending"===e,statusColor=(e,t)=>{switch(t){case"online":case"verified":return e.colors.success;case"busy":return e.colors.danger;case"away":case"pending":return e.colors.warning;default:return e.colors["text-subtle"]}},Avatar=forwardRef((e,t)=>{const{source:r,ImageComponent:o,name:s,size:a="md",shape:i="circle",status:n=null,statusPosition:l="bottomRight",tone:c,backgroundColor:u,color:d,fontSize:m,loading:h=!1,accessibilityLabel:g,onPress:p,onLongPress:b,haptic:y,hitSlop:f,style:v,textStyle:x,testID:A}=e,C=useTheme(),[S,R]=useState(!1),_=useMemo(()=>resolveSize(a),[a]),I=useMemo(()=>resolveRadius(C,i,_),[C,i,_]),w=C.colors.border,j=C.colors.surface,M=useMemo(()=>initialsFromName(s),[s]),T=useMemo(()=>c?avatarToneColors(C,c):null,[C,c]),k=useMemo(()=>u||(T?.background??C.colors[hashColor(s??"",AVATAR_COLORS)]),[u,T,s,C]),E=d??T?.color??C.colors["on-primary"],L=!!r&&!S,z=m??Math.max(C.text.xs.size,Math.round(.4*_)),G=Math.max(8,Math.round(.25*_)),V=isRingStatus(n),F=_-2*(V?3:0),O=V?resolveRadius(C,i,F):I,N=V?statusColor(C,n):"transparent",W=Math.max(12,Math.round(.32*_)),P=Math.max(10,W-4),D=L?C.colors["bg-muted"]:k,$=A??"avatar",H=s?`${s}'s avatar`:"Avatar",B="verified"===n?", verified":"pending"===n?", pending verification":"",U=g??`${H}${B}`,Y="function"==typeof p||"function"==typeof b,X=g??`${s||H}${B}`,q=Math.max(0,Math.ceil((44-_)/2)),J=[styles.root,{width:_,height:_,borderRadius:I,...smoothCorners,borderWidth:0,borderColor:w,backgroundColor:V?"transparent":D},v],K=_jsxs(_Fragment,{children:[V?_jsx(View,{style:[styles.ring,{borderRadius:I,...smoothCorners,borderWidth:1.5,borderColor:N}],accessible:!1,pointerEvents:"none",testID:`${$}-ring`}):null,_jsx(View,{style:[styles.picture,{width:F,height:F,borderRadius:O,...smoothCorners,borderWidth:0,borderColor:w,backgroundColor:V?D:"transparent"}],children:L?(()=>{const e={width:F,height:F,borderRadius:O,...smoothCorners},onError=()=>R(!0);return o?_jsx(o,{source:r,onError:onError,style:e,contentFit:"cover",resizeMode:"cover",accessibilityIgnoresInvertColors:!0}):_jsx(Image,{source:r,onError:onError,style:e,contentFit:"cover",accessibilityIgnoresInvertColors:!0})})():_jsx(Text,{style:[styles.initials,{color:E,fontSize:z,fontWeight:C.weight.semibold},x],numberOfLines:1,maxFontSizeMultiplier:1.2,children:M??" "})}),"verified"===n?_jsx(View,{style:[styles.status,"topRight"===l?styles.badgeTopRight:styles.badgeBottomRight,{width:W,height:W,borderRadius:W/2,...smoothCorners,backgroundColor:j}],accessible:!1,pointerEvents:"none",testID:`${$}-badge`,children:_jsx(AppIcon,{name:"verify",variant:"bold",size:P,color:N})}):null,n&&!V?_jsx(View,{style:[styles.status,"topRight"===l?styles.statusTopRight:styles.statusBottomRight,{width:G,height:G,borderRadius:G/2,...smoothCorners,backgroundColor:statusColor(C,n),borderWidth:2,borderColor:j}],accessible:!1,pointerEvents:"none"}):null]}),Q=Y?_jsx(Pressable,{ref:t,onPress:p?e=>{const t=resolveHaptic(y,"selection");t&&triggerHaptic(t),p?.(e)}:void 0,onLongPress:b?e=>{const t=resolveHaptic(y,"longPress");t&&triggerHaptic(t),b?.(e)}:void 0,hitSlop:f??q,accessibilityRole:"button",accessibilityLabel:X,testID:A,style:({pressed:e})=>[J,e?styles.pressed:null],children:K}):_jsx(View,{ref:t,style:J,accessible:!0,accessibilityRole:"image",accessibilityLabel:U,testID:A,children:K});return h?_jsx(AvatarSkeleton,{...e}):Q});Avatar.displayName="Avatar";const AvatarSkeleton=({size:e="md",shape:t="circle",style:r})=>{const o=resolveSize(e);return _jsx(Skeleton,{shape:"circle"===t?"circle":"rounded"===t?"rounded":"rect",width:o,height:o,style:r})};AvatarSkeleton.displayName="AvatarSkeleton",Avatar.Skeleton=AvatarSkeleton;const styles=StyleSheet.create({root:{alignItems:"center",justifyContent:"center",overflow:"visible",position:"relative"},pressed:{opacity:.7},initials:{textAlign:"center"},ring:{position:"absolute",top:0,right:0,bottom:0,left:0},picture:{alignItems:"center",justifyContent:"center",overflow:"hidden"},status:{position:"absolute"},badgeTopRight:{top:-2,right:-2,alignItems:"center",justifyContent:"center"},badgeBottomRight:{bottom:-2,right:-2,alignItems:"center",justifyContent:"center"},statusTopRight:{top:0,right:0},statusBottomRight:{bottom:0,right:0}}),SPACING_OFFSET={tight:"lg",normal:"md",loose:"sm"},STAGGER_MS=50,ENTRANCE_DURATION_MS=220,AvatarGroupItem=({delay:e,marginLeft:t,borderColor:r,borderWidth:o,children:s})=>{const a=useTheme(),i=useRef(createAnimatedValue(0)).current;return useEffect(()=>{const t=Animated.timing(i,{toValue:1,duration:220,delay:e,easing:Easing.out(Easing.cubic),useNativeDriver:!0});return t.start(),()=>t.stop()},[e,i]),_jsx(Animated.View,{style:[groupStyles.item,{marginLeft:t,borderRadius:a.radius.pill,borderColor:r,borderWidth:o,opacity:i}],children:s})},AvatarGroup=e=>{const{children:t,max:r=4,size:o="md",spacing:s="normal",overflowVariant:a="count",accessibilityLabel:i,style:n,testID:l}=e,c=useTheme(),u=useMemo(()=>Children.toArray(t).filter(e=>isValidElement(e)),[t]),d=u.length,m=u.slice(0,r),h=Math.max(0,d-r),g=h>0,p=-c.space[SPACING_OFFSET[s]],b=c.colors.surface,y=i??`Group of ${d} ${1===d?"person":"people"}`,f=useMemo(()=>resolveSize(o),[o]),v=Math.max(c.text.xs.size,Math.round(.34*f));return _jsxs(View,{style:[groupStyles.row,n],accessible:!0,accessibilityLabel:y,accessibilityRole:"summary",testID:l,children:[m.map((e,t)=>{const r=e.key??`avatar-${t}`;return _jsx(AvatarGroupItem,{delay:50*t,marginLeft:0===t?0:p,borderColor:b,borderWidth:1.5,children:cloneElement(e,{size:o})},r)}),g?_jsx(AvatarGroupItem,{delay:50*m.length,marginLeft:0===m.length?0:p,borderColor:b,borderWidth:1.5,children:_jsx(View,{style:[groupStyles.overflow,{width:f,height:f,borderRadius:f/2,...smoothCorners,backgroundColor:c.colors["surface-disabled"]}],accessible:!0,accessibilityRole:"text",accessibilityLabel:"count"===a?`${h} more`:"More avatars",children:_jsx(Text,{style:{color:c.colors["text-muted"],fontSize:v,fontWeight:c.weight.semibold},numberOfLines:1,maxFontSizeMultiplier:1.2,children:"count"===a?`+${h}`:"+"})})},"avatar-overflow"):null]})},groupStyles=StyleSheet.create({row:{flexDirection:"row",alignItems:"center"},item:{...smoothCorners},overflow:{alignItems:"center",justifyContent:"center"}}),AvatarWithGroup=Avatar;AvatarWithGroup.Group=AvatarGroup;export{Avatar,AvatarGroup};export default AvatarWithGroup;
1
+ "use strict";import{Image}from"expo-image";import{Children,cloneElement,forwardRef,isValidElement,useEffect,useMemo,useRef,useState}from"react";import{Animated,Easing,Pressable,StyleSheet,Text,View}from"react-native";import{createAnimatedValue,useTheme}from"../../theme/index.js";import{tintOf}from"../../utils/color.js";import{smoothCorners}from"../../utils/corners.js";import{resolveHaptic,triggerHaptic}from"../../utils/hapticUtils.js";import{hitSlopMarker}from"../../utils/hitSlop.js";import{AppIcon}from"../AppIcon/index.js";import{Skeleton}from"../Skeleton/index.js";import{jsx as _jsx,Fragment as _Fragment,jsxs as _jsxs}from"react/jsx-runtime";const SOFT_FILL_OPACITY=.14,MIN_TOUCH_TARGET=44,PRESSED_OPACITY=.7,INITIALS_MAX_FONT_SCALE=1.2;export const AVATAR_COLORS=["avatar-1","avatar-2","avatar-3","avatar-4","avatar-5","avatar-6","avatar-7","avatar-8"];export const avatarToneColors=(e,t)=>{const soft=(e,t)=>tintOf(e,.14,t);switch(t){case"primary":return{background:soft(e.colors.primary,e.colors["primary-soft"]),color:e.colors["primary-text"]};case"secondary":return{background:e.colors.neutral,color:e.colors["on-neutral"]};case"success":return{background:soft(e.colors.success,e.colors["bg-subtle"]),color:e.colors["success-text"]};case"warning":return{background:soft(e.colors.warning,e.colors["bg-subtle"]),color:e.colors["warning-text"]};case"danger":return{background:soft(e.colors.danger,e.colors["bg-subtle"]),color:e.colors["danger-text"]};case"info":return{background:soft(e.colors.info,e.colors["bg-subtle"]),color:e.colors["info-text"]};default:return{background:e.colors["bg-muted"],color:e.colors["text-body"]}}};const sizeMap={xs:24,sm:32,md:48,lg:64,xl:80},resolveSize=e=>"number"==typeof e?e:sizeMap[e],resolveRadius=(e,t,r)=>{switch(t){case"circle":return r/2;case"rounded":return Math.max(e.radius.sm,Math.round(.22*r));default:return 0}},initialsFromName=e=>{if(!e)return"";const t=e.trim().split(/\s+/u).filter(Boolean);return 0===t.length?"":1===t.length?t[0].charAt(0).toUpperCase():(t[0].charAt(0)+t[1].charAt(0)).toUpperCase()},hashColor=(e,t)=>{if(!e)return t[0];let r=0;for(let t=0;t<e.length;t+=1)r=(r<<5)-r+e.charCodeAt(t),r|=0;return t[Math.abs(r)%t.length]},RING_WIDTH=1.5,isRingStatus=e=>"verified"===e||"pending"===e,statusColor=(e,t)=>{switch(t){case"online":case"verified":return e.colors.success;case"busy":return e.colors.danger;case"away":case"pending":return e.colors.warning;default:return e.colors["text-subtle"]}},Avatar=forwardRef((e,t)=>{const{source:r,ImageComponent:o,name:s,size:a="md",shape:i="circle",status:n=null,statusPosition:l="bottomRight",tone:c,backgroundColor:u,color:d,fontSize:m,loading:h=!1,accessibilityLabel:g,onPress:p,onLongPress:b,haptic:f,hitSlop:y,style:v,textStyle:x,testID:A}=e,C=useTheme(),[S,R]=useState(!1),_=useMemo(()=>resolveSize(a),[a]),I=useMemo(()=>resolveRadius(C,i,_),[C,i,_]),w=C.colors.border,j=C.colors.surface,M=useMemo(()=>initialsFromName(s),[s]),T=useMemo(()=>c?avatarToneColors(C,c):null,[C,c]),k=useMemo(()=>u||(T?.background??C.colors[hashColor(s??"",AVATAR_COLORS)]),[u,T,s,C]),E=d??T?.color??C.colors["on-primary"],L=!!r&&!S,z=m??Math.max(C.text.xs.size,Math.round(.4*_)),G=Math.max(8,Math.round(.25*_)),V=isRingStatus(n),F=_-2*(V?3:0),O=V?resolveRadius(C,i,F):I,N=V?statusColor(C,n):"transparent",W=Math.max(12,Math.round(.32*_)),P=Math.max(10,W-4),D=L?C.colors["bg-muted"]:k,$=A??"avatar",H=s?`${s}'s avatar`:"Avatar",B="verified"===n?", verified":"pending"===n?", pending verification":"",U=g??`${H}${B}`,Y="function"==typeof p||"function"==typeof b,X=g??`${s||H}${B}`,q=Math.max(0,Math.ceil((44-_)/2)),J=y??q,K=[styles.root,{width:_,height:_,borderRadius:I,...smoothCorners,borderWidth:0,borderColor:w,backgroundColor:V?"transparent":D},v],Q=_jsxs(_Fragment,{children:[V?_jsx(View,{style:[styles.ring,{borderRadius:I,...smoothCorners,borderWidth:1.5,borderColor:N}],accessible:!1,pointerEvents:"none",testID:`${$}-ring`}):null,_jsx(View,{style:[styles.picture,{width:F,height:F,borderRadius:O,...smoothCorners,borderWidth:0,borderColor:w,backgroundColor:V?D:"transparent"}],children:L?(()=>{const e={width:F,height:F,borderRadius:O,...smoothCorners},onError=()=>R(!0);return o?_jsx(o,{source:r,onError:onError,style:e,contentFit:"cover",resizeMode:"cover",accessibilityIgnoresInvertColors:!0}):_jsx(Image,{source:r,onError:onError,style:e,contentFit:"cover",accessibilityIgnoresInvertColors:!0})})():_jsx(Text,{style:[styles.initials,{color:E,fontSize:z,fontWeight:C.weight.semibold},x],numberOfLines:1,maxFontSizeMultiplier:1.2,children:M??" "})}),"verified"===n?_jsx(View,{style:[styles.status,"topRight"===l?styles.badgeTopRight:styles.badgeBottomRight,{width:W,height:W,borderRadius:W/2,...smoothCorners,backgroundColor:j}],accessible:!1,pointerEvents:"none",testID:`${$}-badge`,children:_jsx(AppIcon,{name:"verify",variant:"bold",size:P,color:N})}):null,n&&!V?_jsx(View,{style:[styles.status,"topRight"===l?styles.statusTopRight:styles.statusBottomRight,{width:G,height:G,borderRadius:G/2,...smoothCorners,backgroundColor:statusColor(C,n),borderWidth:2,borderColor:j}],accessible:!1,pointerEvents:"none"}):null]}),Z=Y?_jsx(Pressable,{ref:t,onPress:p?e=>{const t=resolveHaptic(f,"selection");t&&triggerHaptic(t),p?.(e)}:void 0,onLongPress:b?e=>{const t=resolveHaptic(f,"longPress");t&&triggerHaptic(t),b?.(e)}:void 0,hitSlop:J,...hitSlopMarker(J),accessibilityRole:"button",accessibilityLabel:X,testID:A,style:({pressed:e})=>[K,e?styles.pressed:null],children:Q}):_jsx(View,{ref:t,style:K,accessible:!0,accessibilityRole:"image",accessibilityLabel:U,testID:A,children:Q});return h?_jsx(AvatarSkeleton,{...e}):Z});Avatar.displayName="Avatar";const AvatarSkeleton=({size:e="md",shape:t="circle",style:r})=>{const o=resolveSize(e);return _jsx(Skeleton,{shape:"circle"===t?"circle":"rounded"===t?"rounded":"rect",width:o,height:o,style:r})};AvatarSkeleton.displayName="AvatarSkeleton",Avatar.Skeleton=AvatarSkeleton;const styles=StyleSheet.create({root:{alignItems:"center",justifyContent:"center",overflow:"visible",position:"relative"},pressed:{opacity:.7},initials:{textAlign:"center"},ring:{position:"absolute",top:0,right:0,bottom:0,left:0},picture:{alignItems:"center",justifyContent:"center",overflow:"hidden"},status:{position:"absolute"},badgeTopRight:{top:-2,right:-2,alignItems:"center",justifyContent:"center"},badgeBottomRight:{bottom:-2,right:-2,alignItems:"center",justifyContent:"center"},statusTopRight:{top:0,right:0},statusBottomRight:{bottom:0,right:0}}),SPACING_OFFSET={tight:"lg",normal:"md",loose:"sm"},STAGGER_MS=50,ENTRANCE_DURATION_MS=220,AvatarGroupItem=({delay:e,marginLeft:t,borderColor:r,borderWidth:o,children:s})=>{const a=useTheme(),i=useRef(createAnimatedValue(0)).current;return useEffect(()=>{const t=Animated.timing(i,{toValue:1,duration:220,delay:e,easing:Easing.out(Easing.cubic),useNativeDriver:!0});return t.start(),()=>t.stop()},[e,i]),_jsx(Animated.View,{style:[groupStyles.item,{marginLeft:t,borderRadius:a.radius.pill,borderColor:r,borderWidth:o,opacity:i}],children:s})},AvatarGroup=e=>{const{children:t,max:r=4,size:o="md",spacing:s="normal",overflowVariant:a="count",accessibilityLabel:i,style:n,testID:l}=e,c=useTheme(),u=useMemo(()=>Children.toArray(t).filter(e=>isValidElement(e)),[t]),d=u.length,m=u.slice(0,r),h=Math.max(0,d-r),g=h>0,p=-c.space[SPACING_OFFSET[s]],b=c.colors.surface,f=i??`Group of ${d} ${1===d?"person":"people"}`,y=useMemo(()=>resolveSize(o),[o]),v=Math.max(c.text.xs.size,Math.round(.34*y));return _jsxs(View,{style:[groupStyles.row,n],accessible:!0,accessibilityLabel:f,accessibilityRole:"summary",testID:l,children:[m.map((e,t)=>{const r=e.key??`avatar-${t}`;return _jsx(AvatarGroupItem,{delay:50*t,marginLeft:0===t?0:p,borderColor:b,borderWidth:1.5,children:cloneElement(e,{size:o})},r)}),g?_jsx(AvatarGroupItem,{delay:50*m.length,marginLeft:0===m.length?0:p,borderColor:b,borderWidth:1.5,children:_jsx(View,{style:[groupStyles.overflow,{width:y,height:y,borderRadius:y/2,...smoothCorners,backgroundColor:c.colors["surface-disabled"]}],accessible:!0,accessibilityRole:"text",accessibilityLabel:"count"===a?`${h} more`:"More avatars",children:_jsx(Text,{style:{color:c.colors["text-muted"],fontSize:v,fontWeight:c.weight.semibold},numberOfLines:1,maxFontSizeMultiplier:1.2,children:"count"===a?`+${h}`:"+"})})},"avatar-overflow"):null]})},groupStyles=StyleSheet.create({row:{flexDirection:"row",alignItems:"center"},item:{...smoothCorners},overflow:{alignItems:"center",justifyContent:"center"}}),AvatarWithGroup=Avatar;AvatarWithGroup.Group=AvatarGroup;export{Avatar,AvatarGroup};export default AvatarWithGroup;
@@ -1 +1 @@
1
- "use strict";import{forwardRef,useEffect,useMemo,useRef,useState}from"react";import{Animated,Pressable,StyleSheet,Text,View}from"react-native";import{usePresenceMotion}from"../../hooks/usePresenceMotion.js";import{createAnimatedValue,fontFor,useTheme}from"../../theme/index.js";import{smoothCorners}from"../../utils/corners.js";import{resolveHaptic,triggerHaptic}from"../../utils/hapticUtils.js";import{Skeleton,SkeletonText}from"../Skeleton/index.js";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";const Banner=forwardRef((e,t)=>{const{title:r,message:o,variant:s="info",icon:n,actions:i,dismissible:l=!1,onDismiss:a,haptic:c,visible:d=!0,animateMount:u=!0,loading:m=!1,accessibilityRole:p="alert",accessibilityLabel:g,style:h,containerStyle:x,iconCircleStyle:y,tintBarStyle:b,closeButtonStyle:f,actionButtonStyle:w,testID:j}=e,S=useTheme(),k=usePresenceMotion(),C=useMemo(()=>buildStyles(S),[S]),B=useMemo(()=>tintFor(S,s),[S,s]),[_,R]=k.range(-20,0),V=useRef(createAnimatedValue(u&&d?_:0)).current,v=useRef(createAnimatedValue(u&&d?0:d?1:0)).current,[z,T]=useState(d),H=useRef(!0);if(useEffect(()=>{if(H.current&&(H.current=!1,!u))return;let e;return d?(T(!0),e=Animated.parallel([Animated.timing(V,{toValue:R,duration:S.motion.duration.default,useNativeDriver:!0}),Animated.timing(v,{toValue:1,duration:k.duration("default"),useNativeDriver:!0})]),e.start()):z&&(e=Animated.parallel([Animated.timing(V,{toValue:_,duration:S.motion.duration.fast,useNativeDriver:!0}),Animated.timing(v,{toValue:0,duration:k.duration("fast"),useNativeDriver:!0})]),e.start(()=>{T(!1)})),()=>e?.stop()},[d]),!z)return null;const A=r??" ",D="string"==typeof o?o??" ":"",L="alert"===p?"danger"===s?"assertive":"polite":"none",M=_jsxs(Animated.View,{ref:t,accessibilityRole:p,accessibilityLiveRegion:L,accessibilityLabel:g,testID:j,style:[C.container,{backgroundColor:S.colors["bg-subtle"],borderRadius:S.radius.md,...smoothCorners,padding:S.space.md,opacity:v,transform:[{translateY:V}]},h,x],children:[S.components.banner["tint-bar-width"]>0?_jsx(View,{style:[C.tintBar,{backgroundColor:B.bar},b]}):null,_jsxs(View,{style:C.row,children:[!1===n?null:_jsx(View,n?{style:C.iconWrap,children:n}:{style:[C.iconCircle,{backgroundColor:B.bar+"22"},y],children:_jsx(Text,{style:[C.iconGlyph,{color:B.ink}],accessible:!1,children:B.glyph})}),_jsxs(View,{style:C.textBlock,children:[r||m?_jsx(Text,{style:{color:S.colors["text-body"],fontSize:S.text.base.size,...fontFor(S,"semibold"),lineHeight:20},numberOfLines:2,children:A}):null,"string"==typeof o||m?_jsx(Text,{style:{color:S.colors["text-muted"],fontSize:S.text.sm.size,...fontFor(S,"normal"),lineHeight:18,marginTop:r?S.space.xxs:0},children:D||" "}):_jsx(View,{style:{marginTop:r?S.space.xxs:0},children:o})]}),l?_jsx(Pressable,{accessibilityRole:"button",accessibilityLabel:"Dismiss banner",onPress:()=>{const e=resolveHaptic(c,"selection");e&&triggerHaptic(e),a?.()},hitSlop:8,style:({pressed:e})=>[C.closeBtn,{backgroundColor:e?S.colors["surface-pressed"]:"transparent"},f],children:_jsx(Text,{style:{color:S.colors["text-muted"],fontSize:S.text.lg.size,fontWeight:S.weight.bold,lineHeight:17},accessible:!1,children:"×"})}):null]}),i&&i.length>0?_jsx(View,{style:C.actionsRow,children:i.map((e,t)=>{const r=e.tone??"primary",o=e.variant??"ghost",s="danger"===r?S.colors.danger:"neutral"===r?S.colors["text-muted"]:B.glyphColor,n="danger"===r?S.colors["danger-text"]:"neutral"===r?S.colors["text-muted"]:B.ink,i="danger"===r?S.colors["on-danger"]:"neutral"===r?S.colors["on-neutral-strong"]:B.on,l="solid"===o;return _jsx(Pressable,{accessibilityRole:"button",accessibilityLabel:e.label,onPress:()=>{const t=resolveHaptic(c,"selection");t&&triggerHaptic(t),e.onPress()},style:({pressed:t})=>[C.actionBtn,"md"===e.size&&C.actionBtnMd,"outline"===o&&{borderWidth:1,borderColor:n},{backgroundColor:l?s:t?S.colors["surface-pressed"]:"transparent",opacity:l&&t?.85:1},w],children:_jsx(Text,{style:{color:l?i:n,fontSize:S.text.sm.size,textAlign:"center",...fontFor(S,"semibold")},children:e.label})},`${e.label}-${t}`)})}):null]});return m?_jsx(BannerSkeleton,{...e}):M});Banner.displayName="Banner";const BannerSkeleton=({title:e,actions:t,icon:r,containerStyle:o,style:s})=>{const n=useTheme(),i=!1!==r;return _jsxs(View,{style:[{flexDirection:"row",alignItems:"flex-start",backgroundColor:n.colors.surface,borderRadius:n.radius.md,...smoothCorners,padding:n.space.md,borderWidth:1,borderColor:n.colors.border},o,s],accessibilityRole:"progressbar",accessibilityState:{busy:!0},"aria-busy":!0,children:[i?_jsx(View,{style:{marginRight:n.space.sm},children:_jsx(Skeleton,{shape:"circle",width:32,height:32})}):null,_jsxs(View,{style:{flex:1},children:[void 0!==e?_jsx(Skeleton,{shape:"text",width:"55%",height:16,style:{marginBottom:n.space.xs}}):null,_jsx(SkeletonText,{lines:2,fontSize:n.text.sm.size,lastLineWidth:"70%"}),t&&t.length>0?_jsx(View,{style:{flexDirection:"row",marginTop:n.space.sm},children:t.map((e,t)=>_jsx(Skeleton,{width:72,height:28,shape:"rounded",style:{marginRight:n.space.sm}},`sk-banner-action-${t}`))}):null]})]})};BannerSkeleton.displayName="BannerSkeleton",Banner.Skeleton=BannerSkeleton;const tintFor=(e,t)=>{switch(t){case"success":return{bar:e.colors.success,glyphColor:e.colors.success,ink:e.colors["success-text"],on:e.colors["on-success"],glyph:"✓"};case"warning":return{bar:e.colors.warning,glyphColor:e.colors.warning,ink:e.colors["warning-text"],on:e.colors["on-warning"],glyph:"⚠"};case"danger":return{bar:e.colors.danger,glyphColor:e.colors.danger,ink:e.colors["danger-text"],on:e.colors["on-danger"],glyph:"✗"};case"neutral":return{bar:e.colors["text-subtle"],glyphColor:e.colors["text-muted"],ink:e.colors["text-muted"],on:e.colors["on-neutral-strong"],glyph:"i"};default:return{bar:e.colors.primary,glyphColor:e.colors.primary,ink:e.colors["primary-text"],on:e.colors["on-primary"],glyph:"i"}}},buildStyles=e=>{const t=e.components.banner,r=e.space.sm;return StyleSheet.create({container:{overflow:"hidden",paddingLeft:e.space.md},tintBar:{position:"absolute",left:0,top:0,bottom:0,width:t["tint-bar-width"]},row:{flexDirection:"row",alignItems:"flex-start"},iconWrap:{marginRight:r},iconCircle:{width:28,height:28,borderRadius:e.radius.pill,...smoothCorners,alignItems:"center",justifyContent:"center",marginRight:r},iconGlyph:{fontSize:e.text.base.size,fontWeight:"700",lineHeight:17},textBlock:{flex:1,paddingRight:e.space.xs},closeBtn:{width:28,height:28,borderRadius:e.radius.pill,...smoothCorners,alignItems:"center",justifyContent:"center",marginLeft:e.space.xxs},actionsRow:{flexDirection:"row",flexWrap:"wrap",justifyContent:"flex-end",marginTop:e.space.xs,columnGap:e.space.xs,rowGap:e.space.xs},actionBtn:{paddingHorizontal:e.space.sm,paddingVertical:e.space.xs,borderRadius:e.radius.sm,...smoothCorners,maxWidth:"100%",alignItems:"center",justifyContent:"center"},actionBtnMd:{minHeight:44,paddingHorizontal:e.space.md}})};export{Banner};export default Banner;
1
+ "use strict";import{forwardRef,useEffect,useMemo,useRef,useState}from"react";import{Animated,Pressable,StyleSheet,Text,View}from"react-native";import{usePresenceMotion}from"../../hooks/usePresenceMotion.js";import{createAnimatedValue,fontFor,useTheme}from"../../theme/index.js";import{smoothCorners}from"../../utils/corners.js";import{resolveHaptic,triggerHaptic}from"../../utils/hapticUtils.js";import{hitSlopMarker}from"../../utils/hitSlop.js";import{Skeleton,SkeletonText}from"../Skeleton/index.js";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";const Banner=forwardRef((e,t)=>{const{title:r,message:o,variant:s="info",icon:n,actions:i,dismissible:l=!1,onDismiss:a,haptic:c,visible:d=!0,animateMount:u=!0,loading:m=!1,accessibilityRole:p="alert",accessibilityLabel:g,style:h,containerStyle:x,iconCircleStyle:y,tintBarStyle:b,closeButtonStyle:f,actionButtonStyle:w,testID:j}=e,S=useTheme(),k=usePresenceMotion(),C=useMemo(()=>buildStyles(S),[S]),B=useMemo(()=>tintFor(S,s),[S,s]),[_,R]=k.range(-20,0),V=useRef(createAnimatedValue(u&&d?_:0)).current,v=useRef(createAnimatedValue(u&&d?0:d?1:0)).current,[z,T]=useState(d),H=useRef(!0);if(useEffect(()=>{if(H.current&&(H.current=!1,!u))return;let e;return d?(T(!0),e=Animated.parallel([Animated.timing(V,{toValue:R,duration:S.motion.duration.default,useNativeDriver:!0}),Animated.timing(v,{toValue:1,duration:k.duration("default"),useNativeDriver:!0})]),e.start()):z&&(e=Animated.parallel([Animated.timing(V,{toValue:_,duration:S.motion.duration.fast,useNativeDriver:!0}),Animated.timing(v,{toValue:0,duration:k.duration("fast"),useNativeDriver:!0})]),e.start(()=>{T(!1)})),()=>e?.stop()},[d]),!z)return null;const A=r??" ",D="string"==typeof o?o??" ":"",M="alert"===p?"danger"===s?"assertive":"polite":"none",L=_jsxs(Animated.View,{ref:t,accessibilityRole:p,accessibilityLiveRegion:M,accessibilityLabel:g,testID:j,style:[C.container,{backgroundColor:S.colors["bg-subtle"],borderRadius:S.radius.md,...smoothCorners,padding:S.space.md,opacity:v,transform:[{translateY:V}]},h,x],children:[S.components.banner["tint-bar-width"]>0?_jsx(View,{style:[C.tintBar,{backgroundColor:B.bar},b]}):null,_jsxs(View,{style:C.row,children:[!1===n?null:_jsx(View,n?{style:C.iconWrap,children:n}:{style:[C.iconCircle,{backgroundColor:B.bar+"22"},y],children:_jsx(Text,{style:[C.iconGlyph,{color:B.ink}],accessible:!1,children:B.glyph})}),_jsxs(View,{style:C.textBlock,children:[r||m?_jsx(Text,{style:{color:S.colors["text-body"],fontSize:S.text.base.size,...fontFor(S,"semibold"),lineHeight:20},numberOfLines:2,children:A}):null,"string"==typeof o||m?_jsx(Text,{style:{color:S.colors["text-muted"],fontSize:S.text.sm.size,...fontFor(S,"normal"),lineHeight:18,marginTop:r?S.space.xxs:0},children:D||" "}):_jsx(View,{style:{marginTop:r?S.space.xxs:0},children:o})]}),l?_jsx(Pressable,{accessibilityRole:"button",accessibilityLabel:"Dismiss banner",onPress:()=>{const e=resolveHaptic(c,"selection");e&&triggerHaptic(e),a?.()},hitSlop:8,...hitSlopMarker(8),style:({pressed:e})=>[C.closeBtn,{backgroundColor:e?S.colors["surface-pressed"]:"transparent"},f],children:_jsx(Text,{style:{color:S.colors["text-muted"],fontSize:S.text.lg.size,fontWeight:S.weight.bold,lineHeight:17},accessible:!1,children:"×"})}):null]}),i&&i.length>0?_jsx(View,{style:C.actionsRow,children:i.map((e,t)=>{const r=e.tone??"primary",o=e.variant??"ghost",s="danger"===r?S.colors.danger:"neutral"===r?S.colors["text-muted"]:B.glyphColor,n="danger"===r?S.colors["danger-text"]:"neutral"===r?S.colors["text-muted"]:B.ink,i="danger"===r?S.colors["on-danger"]:"neutral"===r?S.colors["on-neutral-strong"]:B.on,l="solid"===o;return _jsx(Pressable,{accessibilityRole:"button",accessibilityLabel:e.label,onPress:()=>{const t=resolveHaptic(c,"selection");t&&triggerHaptic(t),e.onPress()},style:({pressed:t})=>[C.actionBtn,"md"===e.size&&C.actionBtnMd,"outline"===o&&{borderWidth:1,borderColor:n},{backgroundColor:l?s:t?S.colors["surface-pressed"]:"transparent",opacity:l&&t?.85:1},w],children:_jsx(Text,{style:{color:l?i:n,fontSize:S.text.sm.size,textAlign:"center",...fontFor(S,"semibold")},children:e.label})},`${e.label}-${t}`)})}):null]});return m?_jsx(BannerSkeleton,{...e}):L});Banner.displayName="Banner";const BannerSkeleton=({title:e,actions:t,icon:r,containerStyle:o,style:s})=>{const n=useTheme(),i=!1!==r;return _jsxs(View,{style:[{flexDirection:"row",alignItems:"flex-start",backgroundColor:n.colors.surface,borderRadius:n.radius.md,...smoothCorners,padding:n.space.md,borderWidth:1,borderColor:n.colors.border},o,s],accessibilityRole:"progressbar",accessibilityState:{busy:!0},"aria-busy":!0,children:[i?_jsx(View,{style:{marginRight:n.space.sm},children:_jsx(Skeleton,{shape:"circle",width:32,height:32})}):null,_jsxs(View,{style:{flex:1},children:[void 0!==e?_jsx(Skeleton,{shape:"text",width:"55%",height:16,style:{marginBottom:n.space.xs}}):null,_jsx(SkeletonText,{lines:2,fontSize:n.text.sm.size,lastLineWidth:"70%"}),t&&t.length>0?_jsx(View,{style:{flexDirection:"row",marginTop:n.space.sm},children:t.map((e,t)=>_jsx(Skeleton,{width:72,height:28,shape:"rounded",style:{marginRight:n.space.sm}},`sk-banner-action-${t}`))}):null]})]})};BannerSkeleton.displayName="BannerSkeleton",Banner.Skeleton=BannerSkeleton;const tintFor=(e,t)=>{switch(t){case"success":return{bar:e.colors.success,glyphColor:e.colors.success,ink:e.colors["success-text"],on:e.colors["on-success"],glyph:"✓"};case"warning":return{bar:e.colors.warning,glyphColor:e.colors.warning,ink:e.colors["warning-text"],on:e.colors["on-warning"],glyph:"⚠"};case"danger":return{bar:e.colors.danger,glyphColor:e.colors.danger,ink:e.colors["danger-text"],on:e.colors["on-danger"],glyph:"✗"};case"neutral":return{bar:e.colors["text-subtle"],glyphColor:e.colors["text-muted"],ink:e.colors["text-muted"],on:e.colors["on-neutral-strong"],glyph:"i"};default:return{bar:e.colors.primary,glyphColor:e.colors.primary,ink:e.colors["primary-text"],on:e.colors["on-primary"],glyph:"i"}}},buildStyles=e=>{const t=e.components.banner,r=e.space.sm;return StyleSheet.create({container:{overflow:"hidden",paddingLeft:e.space.md},tintBar:{position:"absolute",left:0,top:0,bottom:0,width:t["tint-bar-width"]},row:{flexDirection:"row",alignItems:"flex-start"},iconWrap:{marginRight:r},iconCircle:{width:28,height:28,borderRadius:e.radius.pill,...smoothCorners,alignItems:"center",justifyContent:"center",marginRight:r},iconGlyph:{fontSize:e.text.base.size,fontWeight:"700",lineHeight:17},textBlock:{flex:1,paddingRight:e.space.xs},closeBtn:{width:28,height:28,borderRadius:e.radius.pill,...smoothCorners,alignItems:"center",justifyContent:"center",marginLeft:e.space.xxs},actionsRow:{flexDirection:"row",flexWrap:"wrap",justifyContent:"flex-end",marginTop:e.space.xs,columnGap:e.space.xs,rowGap:e.space.xs},actionBtn:{paddingHorizontal:e.space.sm,paddingVertical:e.space.xs,borderRadius:e.radius.sm,...smoothCorners,maxWidth:"100%",alignItems:"center",justifyContent:"center"},actionBtnMd:{minHeight:44,paddingHorizontal:e.space.md}})};export{Banner};export default Banner;