@webority/mobile-ui 0.96.0 → 0.99.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.
- package/dist/canvas-kit/kit.js +6773 -6594
- package/dist/canvas-kit/manifest.json +20 -2
- package/dist/canvas-kit/release.json +6 -6
- package/lib/commonjs/canvasKit/index.js +1 -1
- package/lib/commonjs/components/AppBar/AppBar.js +1 -1
- package/lib/commonjs/components/Avatar/Avatar.js +1 -1
- package/lib/commonjs/components/Banner/Banner.js +1 -1
- package/lib/commonjs/components/BottomNavigation/BottomNavigation.js +1 -1
- package/lib/commonjs/components/Button/Button.js +1 -1
- package/lib/commonjs/components/Calendar/Calendar.js +1 -1
- package/lib/commonjs/components/Checkbox/Checkbox.js +1 -1
- package/lib/commonjs/components/Chip/Chip.js +1 -1
- package/lib/commonjs/components/DatePicker/DatePicker.js +1 -1
- package/lib/commonjs/components/FilePicker/FilePicker.js +1 -1
- package/lib/commonjs/components/IconButton/IconButton.js +1 -1
- package/lib/commonjs/components/ImageGallery/ImageGallery.js +1 -1
- package/lib/commonjs/components/InlineSelect/InlineSelect.js +1 -1
- package/lib/commonjs/components/Input/Input.js +1 -1
- package/lib/commonjs/components/KeyboardToolbar/KeyboardToolbar.js +1 -1
- package/lib/commonjs/components/MessageList/MessageList.js +1 -1
- package/lib/commonjs/components/Modal/Modal.js +1 -1
- package/lib/commonjs/components/OTPInput/OTPInput.js +1 -1
- package/lib/commonjs/components/OptionSheet/OptionSheet.js +1 -1
- package/lib/commonjs/components/PhoneNumberInput/PhoneNumberInput.js +1 -1
- package/lib/commonjs/components/Radio/Radio.js +1 -1
- package/lib/commonjs/components/Rating/Rating.js +1 -1
- package/lib/commonjs/components/RichTextEditor/RichTextEditor.js +1 -1
- package/lib/commonjs/components/SearchBar/SearchBar.js +1 -1
- package/lib/commonjs/components/SliderField/SliderField.js +1 -1
- package/lib/commonjs/components/Stepper/Stepper.js +1 -1
- package/lib/commonjs/components/Swipeable/Swipeable.js +1 -1
- package/lib/commonjs/components/Switch/Switch.js +1 -1
- package/lib/commonjs/components/Text/Text.js +1 -1
- package/lib/commonjs/components/Toast/Toast.js +1 -1
- package/lib/commonjs/form/path.js +1 -1
- package/lib/commonjs/index.js +1 -1
- package/lib/commonjs/theme/index.js +1 -1
- package/lib/commonjs/utils/announce.js +1 -1
- package/lib/module/canvasKit/index.js +1 -1
- package/lib/module/components/AppBar/AppBar.js +1 -1
- package/lib/module/components/Avatar/Avatar.js +1 -1
- package/lib/module/components/Banner/Banner.js +1 -1
- package/lib/module/components/BottomNavigation/BottomNavigation.js +1 -1
- package/lib/module/components/Button/Button.js +1 -1
- package/lib/module/components/Calendar/Calendar.js +1 -1
- package/lib/module/components/Checkbox/Checkbox.js +1 -1
- package/lib/module/components/Chip/Chip.js +1 -1
- package/lib/module/components/DatePicker/DatePicker.js +1 -1
- package/lib/module/components/FilePicker/FilePicker.js +1 -1
- package/lib/module/components/IconButton/IconButton.js +1 -1
- package/lib/module/components/ImageGallery/ImageGallery.js +1 -1
- package/lib/module/components/InlineSelect/InlineSelect.js +1 -1
- package/lib/module/components/Input/Input.js +1 -1
- package/lib/module/components/KeyboardToolbar/KeyboardToolbar.js +1 -1
- package/lib/module/components/MessageList/MessageList.js +1 -1
- package/lib/module/components/Modal/Modal.js +1 -1
- package/lib/module/components/OTPInput/OTPInput.js +1 -1
- package/lib/module/components/OptionSheet/OptionSheet.js +1 -1
- package/lib/module/components/PhoneNumberInput/PhoneNumberInput.js +1 -1
- package/lib/module/components/Radio/Radio.js +1 -1
- package/lib/module/components/Rating/Rating.js +1 -1
- package/lib/module/components/RichTextEditor/RichTextEditor.js +1 -1
- package/lib/module/components/SearchBar/SearchBar.js +1 -1
- package/lib/module/components/SliderField/SliderField.js +1 -1
- package/lib/module/components/Stepper/Stepper.js +1 -1
- package/lib/module/components/Swipeable/Swipeable.js +1 -1
- package/lib/module/components/Switch/Switch.js +1 -1
- package/lib/module/components/Text/Text.js +1 -1
- package/lib/module/components/Toast/Toast.js +1 -1
- package/lib/module/form/path.js +1 -1
- package/lib/module/index.js +1 -1
- package/lib/module/theme/index.js +1 -1
- package/lib/module/utils/announce.js +1 -1
- package/lib/typescript/commonjs/canvasKit/index.d.ts +20 -3
- package/lib/typescript/commonjs/components/AppBar/AppBar.d.ts +1 -0
- package/lib/typescript/commonjs/components/Button/Button.meta.d.ts +1 -1
- package/lib/typescript/commonjs/components/Card/Card.meta.d.ts +1 -1
- package/lib/typescript/commonjs/components/Checkbox/Checkbox.meta.d.ts +1 -1
- package/lib/typescript/commonjs/components/DecimalInput/DecimalInput.meta.d.ts +1 -1
- package/lib/typescript/commonjs/components/Input/Input.meta.d.ts +1 -1
- package/lib/typescript/commonjs/components/Radio/Radio.meta.d.ts +1 -1
- package/lib/typescript/commonjs/components/SearchBar/SearchBar.meta.d.ts +1 -1
- package/lib/typescript/commonjs/components/Switch/Switch.meta.d.ts +1 -1
- package/lib/typescript/commonjs/components/Text/Text.meta.d.ts +1 -1
- package/lib/typescript/commonjs/index.d.ts +2 -3
- package/lib/typescript/commonjs/theme/index.d.ts +0 -20
- package/lib/typescript/module/canvasKit/index.d.ts +20 -3
- package/lib/typescript/module/components/AppBar/AppBar.d.ts +1 -0
- package/lib/typescript/module/components/Button/Button.meta.d.ts +1 -1
- package/lib/typescript/module/components/Card/Card.meta.d.ts +1 -1
- package/lib/typescript/module/components/Checkbox/Checkbox.meta.d.ts +1 -1
- package/lib/typescript/module/components/DecimalInput/DecimalInput.meta.d.ts +1 -1
- package/lib/typescript/module/components/Input/Input.meta.d.ts +1 -1
- package/lib/typescript/module/components/Radio/Radio.meta.d.ts +1 -1
- package/lib/typescript/module/components/SearchBar/SearchBar.meta.d.ts +1 -1
- package/lib/typescript/module/components/Switch/Switch.meta.d.ts +1 -1
- package/lib/typescript/module/components/Text/Text.meta.d.ts +1 -1
- package/lib/typescript/module/index.d.ts +2 -3
- package/lib/typescript/module/theme/index.d.ts +0 -20
- package/package.json +7 -7
- package/lib/commonjs/initUI.js +0 -1
- package/lib/module/initUI.js +0 -1
- package/lib/typescript/commonjs/initUI.d.ts +0 -12
- package/lib/typescript/module/initUI.d.ts +0 -12
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"kind": "WeborityPhone",
|
|
3
3
|
"library": {
|
|
4
4
|
"name": "@webority/mobile-ui",
|
|
5
|
-
"version": "0.
|
|
5
|
+
"version": "0.99.0"
|
|
6
6
|
},
|
|
7
7
|
"rendererProtocolVersion": 8,
|
|
8
8
|
"platform": "Phone",
|
|
@@ -16413,6 +16413,24 @@
|
|
|
16413
16413
|
"dark"
|
|
16414
16414
|
],
|
|
16415
16415
|
"required": false
|
|
16416
|
+
},
|
|
16417
|
+
{
|
|
16418
|
+
"name": "time",
|
|
16419
|
+
"type": "string",
|
|
16420
|
+
"required": false,
|
|
16421
|
+
"description": "The clock as shown, such as 9:41."
|
|
16422
|
+
},
|
|
16423
|
+
{
|
|
16424
|
+
"name": "signal",
|
|
16425
|
+
"type": "number",
|
|
16426
|
+
"required": false,
|
|
16427
|
+
"description": "Signal strength in bars, 0 to 4."
|
|
16428
|
+
},
|
|
16429
|
+
{
|
|
16430
|
+
"name": "battery",
|
|
16431
|
+
"type": "number",
|
|
16432
|
+
"required": false,
|
|
16433
|
+
"description": "Battery level in percent, 0 to 100."
|
|
16416
16434
|
}
|
|
16417
16435
|
],
|
|
16418
16436
|
"itemsTakeAction": [],
|
|
@@ -19491,7 +19509,7 @@
|
|
|
19491
19509
|
"primary-hover": "Primary fill while a control is hovered or pressed.",
|
|
19492
19510
|
"primary-pressed": "Primary fill while a control is pressed.",
|
|
19493
19511
|
"primary-soft": "Soft primary tint behind selected and highlighted rows.",
|
|
19494
|
-
"primary-text": "Primary as text and small glyphs on a page
|
|
19512
|
+
"primary-text": "Primary as text and small glyphs on a page.",
|
|
19495
19513
|
"primary-wash": "Faint translucent primary wash over a surface.",
|
|
19496
19514
|
"primary-wash-strong": "Stronger translucent primary wash over a surface.",
|
|
19497
19515
|
"scrim": "Dim behind page-level backdrops such as drawers, modals and the shell.",
|
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "webority-phone",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.99.0",
|
|
4
4
|
"platform": "Phone",
|
|
5
5
|
"kitModuleVersion": 2,
|
|
6
6
|
"rendererProtocolVersion": 8,
|
|
7
7
|
"library": {
|
|
8
8
|
"name": "@webority/mobile-ui",
|
|
9
|
-
"version": "0.
|
|
9
|
+
"version": "0.99.0"
|
|
10
10
|
},
|
|
11
11
|
"files": {
|
|
12
12
|
"manifest.json": {
|
|
13
|
-
"sha256": "
|
|
14
|
-
"bytes":
|
|
13
|
+
"sha256": "16aa3d358f20a0378f904bcebbba3091435b1dc6a731e40e322891527e2e12de",
|
|
14
|
+
"bytes": 613045
|
|
15
15
|
},
|
|
16
16
|
"kit.js": {
|
|
17
|
-
"sha256": "
|
|
18
|
-
"bytes":
|
|
17
|
+
"sha256": "94880a369ac08e87375eb27b52748e02b02b753e2d43338a1931c8e437c6c06b",
|
|
18
|
+
"bytes": 5916304
|
|
19
19
|
},
|
|
20
20
|
"kit.css": {
|
|
21
21
|
"sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.phoneChromeEntries=exports.StatusBar=exports.SafeArea=exports.NavigationBar=exports.KeyboardFrame=exports.HomeIndicator=void 0;var _react=require("react"),_reactNative=require("react-native"),_reactNativeKeyboardController=require("react-native-keyboard-controller"),_index=require("../theme/index.js");const
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.phoneChromeEntries=exports.StatusBar=exports.SafeArea=exports.PHONE_CHROME_INSETS=exports.NavigationBar=exports.KeyboardFrame=exports.HomeIndicator=void 0;var _react=require("react"),_reactNative=require("react-native"),_reactNativeKeyboardController=require("react-native-keyboard-controller"),_index=require("../theme/index.js");const PHONE_CHROME_INSETS=exports.PHONE_CHROME_INSETS={Ios:{top:54,bottom:34},Android:{top:24,bottom: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,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?_index.darkTheme:_index.lightTheme,finiteOrZero=e=>"number"==typeof e&&Number.isFinite(e)?e:0,styles=_reactNative.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})=>(0,_react.createElement)(_reactNative.View,{testID:"status-bar-signal",style:{flexDirection:"row",alignItems:"flex-end",columnGap:t.space.xxs}},SIGNAL_BAR_HEIGHTS.map((r,a)=>(0,_react.createElement)(_reactNative.View,{key:a,style:{width:3,height:r,borderRadius:t.space.xxs/2,backgroundColor:a<e?t.colors["text-body"]:t.colors["text-disabled"]}}))),BatteryGlyph=({level:e,theme:t})=>{const r=Math.round(20*e/100);return(0,_react.createElement)(_reactNative.View,{testID:"status-bar-battery",style:{flexDirection:"row",alignItems:"center"}},(0,_react.createElement)(_reactNative.View,{style:{width:24,height:12,borderWidth:1,borderColor:t.colors["text-muted"],borderRadius:t.radius.sm/2,padding:1}},(0,_react.createElement)(_reactNative.View,{testID:"status-bar-battery-fill",style:{height:"100%",width:r,backgroundColor:t.colors["text-body"],borderRadius:t.space.xxs/2}})),(0,_react.createElement)(_reactNative.View,{style:{width:2,height:4,marginLeft:1,backgroundColor:t.colors["text-muted"],borderTopRightRadius:t.space.xxs/2,borderBottomRightRadius:t.space.xxs/2}}))},StatusBar=({os:e,colorMode:t="light",time:r,signal:a,battery:o})=>{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 r&&"number"!=typeof a&&"number"!=typeof o)return(0,_react.createElement)(_reactNative.View,s);const n="Ios"===e,l="string"==typeof r?(0,_react.createElement)(_reactNative.Text,{numberOfLines:1,allowFontScaling:!1,style:{color:i.colors["text-body"],fontSize:n?i.text.base.size:i.text.sm.size,...(0,_index.fontFor)(i,n?"semibold":"medium")}},r):(0,_react.createElement)(_reactNative.View),c=(0,_react.createElement)(_reactNative.View,{style:[styles.statusGroup,{columnGap:i.space.xs}]},"number"==typeof a?(0,_react.createElement)(SignalGlyph,{bars:Math.min(4,Math.max(0,Math.round(finiteOrZero(a)))),theme:i}):null,"number"==typeof o?(0,_react.createElement)(BatteryGlyph,{level:Math.min(100,Math.max(0,finiteOrZero(o))),theme:i}):null);return(0,_react.createElement)(_reactNative.View,s,(0,_react.createElement)(_reactNative.View,{style:[styles.statusRow,{paddingHorizontal:n?i.space["2xl"]:i.space.lg}]},l,c))};exports.StatusBar=StatusBar;const HomeIndicator=({os:e,colorMode:t="light"})=>{const r=paletteFor(t);return(0,_react.createElement)(_reactNative.View,{...wuiMarker(MARKER.homeIndicator),accessibilityElementsHidden:!0,importantForAccessibility:"no-hide-descendants",pointerEvents:"none",style:[styles.overlayBottom,{height:PHONE_CHROME_INSETS[e].bottom}]},"Ios"===e?(0,_react.createElement)(_reactNative.View,{style:[styles.homeBar,{backgroundColor:r.colors["text-body"],borderRadius:r.radius.pill,marginBottom:r.space.sm}]}):null)};exports.HomeIndicator=HomeIndicator;const NavigationBar=({os:e,colorMode:t="light"})=>{if("Android"!==e)return null;const r=paletteFor(t);return(0,_react.createElement)(_reactNative.View,{...wuiMarker(MARKER.navigationBar),accessibilityElementsHidden:!0,importantForAccessibility:"no-hide-descendants",pointerEvents:"none",style:[styles.overlayBottom,{height:24,justifyContent:"center"}]},(0,_react.createElement)(_reactNative.View,{style:[styles.navPill,{backgroundColor:r.colors["text-body"],borderRadius:r.radius.pill}]}))};exports.NavigationBar=NavigationBar;const SafeArea=({os:e,children:t})=>(0,_react.createElement)(_reactNative.View,{...wuiMarker(MARKER.safeArea),style:[styles.fill,{paddingBottom:PHONE_CHROME_INSETS[e].bottom}]},t);exports.SafeArea=SafeArea;const KEYBOARD_PREVIEW_HEIGHT={ios:336,android:300},KeyboardFrame=({colorMode:e="light",previewOs:t,children:r})=>{const a=paletteFor(e),o=(0,_reactNativeKeyboardController.useKeyboardState)(e=>Math.max(0,Math.round(e.height)));return(0,_react.createElement)(_reactNative.View,{...wuiMarker(MARKER.keyboardFrame),style:[styles.fill,{paddingBottom:o,backgroundColor:a.colors.bg}]},r,t?(0,_react.createElement)(_reactNative.View,{pointerEvents:"none",style:[styles.keyboardPreview,{height:KEYBOARD_PREVIEW_HEIGHT[t],backgroundColor:a.colors.bg}]}):null)};exports.KeyboardFrame=KeyboardFrame;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."},phoneChromeEntries=exports.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";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.AppBar=void 0;var _react=require("react"),_reactNative=require("react-native"),_reactNativeSafeAreaContext=require("react-native-safe-area-context"),_usePressAnimation=require("../../hooks/usePressAnimation.js"),_index=require("../../theme/index.js"),_corners=require("../../utils/corners.js"),_hapticUtils=require("../../utils/hapticUtils.js"),_AppIcon=require("../AppIcon/AppIcon.js"),_Text=require("../Text/Text.js"),_jsxRuntime=require("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:r})=>{const a=(0,_index.useTheme)(),{style:
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.AppBar=void 0;var _react=require("react"),_reactNative=require("react-native"),_reactNativeSafeAreaContext=require("react-native-safe-area-context"),_usePressAnimation=require("../../hooks/usePressAnimation.js"),_index=require("../../theme/index.js"),_corners=require("../../utils/corners.js"),_hapticUtils=require("../../utils/hapticUtils.js"),_AppIcon=require("../AppIcon/AppIcon.js"),_Text=require("../Text/Text.js"),_jsxRuntime=require("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:r})=>{const a=(0,_index.useTheme)(),{style:s,pressIn:l,pressOut:o}=(0,_usePressAnimation.usePressAnimation)({enabled:!0}),c=(0,_react.useMemo)(()=>buildActionStyles(a),[a]),d=e.badge,u=void 0!==d&&0!==d,p=void 0!==e.text;return(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:s,children:(0,_jsxRuntime.jsxs)(_reactNative.Pressable,{onPress:()=>{const t=(0,_hapticUtils.resolveHaptic)(n,"selection");t&&(0,_hapticUtils.triggerHaptic)(t),e.onPress()},onPressIn:l,onPressOut:o,accessibilityRole:"button",accessibilityLabel:e.accessibilityLabel??e.text,testID:e.testID,android_ripple:{color:a.colors["surface-pressed"],borderless:!p},style:({pressed:e})=>[p?c.textButton:c.actionButton,r?null:"left"===t?c.actionLeft:c.actionRight,e&&!p?c.actionPressed:null,e&&p?c.textPressed:null],children:[p?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:c.actionText,numberOfLines:1,children:e.text}):(0,_jsxRuntime.jsx)(_reactNative.View,{style:c.iconWrap,children:e.icon}),u?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[c.badge,i],pointerEvents:"none",children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:c.badgeText,numberOfLines:1,children:String(d)})}):null,e.dot?(0,_jsxRuntime.jsx)(_reactNative.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=exports.AppBar=(0,_react.forwardRef)((e,t)=>{const{title:i,subtitle:n,titleAlignment:r="left",leftAction:a,rightActions:s,leading:l,trailing:o,onBack:c,gutter:d,titleVariant:u,titleOffset:p,height:x,divider:m,variant:g="default",transparent:h=!1,scrollY:_,style:b,containerStyle:f,titleStyle:j,subtitleStyle:y,badgeStyle:v,haptic:R,testID:S}=e,A=(0,_index.useTheme)(),N=(0,_reactNativeSafeAreaContext.useSafeAreaInsets)(),B=(0,_react.useMemo)(()=>variantSize(A,g),[A,g]),w=(0,_react.useMemo)(()=>buildStyles(A),[A]),C="large"===g&&void 0!==_,I=a??(c?{icon:(0,_jsxRuntime.jsx)(_AppIcon.AppIcon,{name:"arrow-left",size:24,color:A.colors["text-body"]}),onPress:c,accessibilityLabel:"Back"}:void 0),T=o?void 0:s?.[s.length-1],opticalInset=e=>void 0===e?0:void 0!==e.text?A.space.sm:Math.max(10,0),L=void 0===d?null:{paddingLeft:Math.max(d-opticalInset(I),0),paddingRight:Math.max(d-opticalInset(T),0)},z=void 0!==p,O=Boolean(I)||Boolean(l),V=m??!h,W=_reactNative.StyleSheet.hairlineWidth,P=(0,_react.useMemo)(()=>{if(!_)return null;const e={inputRange:[0,60],extrapolate:"clamp"};return{titleScale:_.interpolate({...e,outputRange:[1,.71]}),titleTranslateY:_.interpolate({...e,outputRange:[0,-20]}),titleTranslateX:_.interpolate({...e,outputRange:"center"===r?[0,0]:[0,8]}),subtitleOpacity:_.interpolate({inputRange:[0,30],outputRange:[1,0],extrapolate:"clamp"}),barHeight:_.interpolate({...e,outputRange:[96,56]}),borderOpacity:_.interpolate({...e,outputRange:[0,1]})}},[_,r]),D=C&&P?{transform:[{translateX:P.titleTranslateX},{translateY:P.titleTranslateY},{scale:P.titleScale}]}:null,E=i?u?(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:D,children:(0,_jsxRuntime.jsx)(_Text.Text,{variant:u,align:"center"===r?"center":"left",accessibilityRole:"header",numberOfLines:1,style:[w.titleVariant,j],children:i})}):(0,_jsxRuntime.jsx)(_reactNative.Animated.Text,{accessibilityRole:"header",style:[w.title,{fontSize:B.titleSize,fontWeight:A.weight[B.titleWeight],textAlign:"center"===r?"center":"left"},D,j],numberOfLines:1,children:i}):null,q=n?(0,_jsxRuntime.jsx)(_reactNative.Animated.Text,{style:[w.subtitle,{textAlign:"center"===r?"center":"left"},C&&P?{opacity:P.subtitleOpacity}:null,y],numberOfLines:B.subtitleLines,children:n}):null,H=(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[w.titleColumn,"center"===r?w.titleColumnCenter:null,B.alignBottom?w.titleColumnBottom:null],children:[E,q]}),k=C?_reactNative.Animated.View:_reactNative.View,M=C&&P?{height:_reactNative.Animated.add(P.barHeight,new _reactNative.Animated.Value(N.top))}:{height:(x??B.height)+N.top};return(0,_jsxRuntime.jsxs)(k,{ref:t,testID:S,style:[w.root,{paddingTop:N.top,backgroundColor:h?"transparent":A.colors.surface},M,!C&&V?{borderBottomWidth:W,borderBottomColor:A.colors.border}:null,b,f],children:[C&&P&&V?(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{pointerEvents:"none",style:[w.animatedBorder,{backgroundColor:A.colors.border,opacity:P.borderOpacity}]}):null,(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[w.row,B.alignBottom?w.rowAlignBottom:null,L,{flex:1}],children:[(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[w.sideSlot,z?w.sideSlotCompact:null],children:[I?(0,_jsxRuntime.jsx)(ActionButton,{action:I,side:"left",haptic:R,flush:z}):null,null!=l&&!1!==l?(0,_jsxRuntime.jsx)(_reactNative.View,{style:w.slotNode,children:l}):null]}),(0,_jsxRuntime.jsx)(_reactNative.View,{pointerEvents:"none",style:[w.center,"center"===r?w.centerAligned:w.centerLeft,z?{paddingLeft:O?p:A.space.none,paddingRight:A.space.none}:null],children:H}),(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[w.sideSlot,w.sideSlotRight,z?w.sideSlotCompact:null],children:[s?.map((e,t)=>(0,_jsxRuntime.jsx)(ActionButton,{action:e,side:"right",badgeStyle:v,haptic:R,flush:z},`appbar-right-${t}`)),null!=o&&!1!==o?(0,_jsxRuntime.jsx)(_reactNative.View,{style:w.slotNode,children:o}):null]})]})]})});AppBar.displayName="AppBar";const buildStyles=e=>_reactNative.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:_reactNative.StyleSheet.hairlineWidth}}),buildActionStyles=e=>_reactNative.StyleSheet.create({actionButton:{width:44,height:44,borderRadius:e.radius.pill,..._corners.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,...(0,_index.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,..._corners.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}});var _default=exports.default=AppBar;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.avatarToneColors=exports.AvatarGroup=exports.Avatar=exports.AVATAR_COLORS=void 0;var _expoImage=require("expo-image"),_react=require("react"),_reactNative=require("react-native"),_index=require("../../theme/index.js"),_color=require("../../utils/color.js"),_corners=require("../../utils/corners.js"),_hapticUtils=require("../../utils/hapticUtils.js"),_index2=require("../AppIcon/index.js"),_index3=require("../Skeleton/index.js"),_jsxRuntime=require("react/jsx-runtime");const SOFT_FILL_OPACITY=.14,MIN_TOUCH_TARGET=44,PRESSED_OPACITY=.7,INITIALS_MAX_FONT_SCALE=1.2,AVATAR_COLORS=exports.AVATAR_COLORS=["avatar-1","avatar-2","avatar-3","avatar-4","avatar-5","avatar-6","avatar-7","avatar-8"],avatarToneColors=(e,t)=>{const soft=(e,t)=>(0,_color.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"]}}};exports.avatarToneColors=avatarToneColors;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=exports.Avatar=(0,_react.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:h,loading:m=!1,accessibilityLabel:g,onPress:p,onLongPress:
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.avatarToneColors=exports.AvatarGroup=exports.Avatar=exports.AVATAR_COLORS=void 0;var _expoImage=require("expo-image"),_react=require("react"),_reactNative=require("react-native"),_index=require("../../theme/index.js"),_color=require("../../utils/color.js"),_corners=require("../../utils/corners.js"),_hapticUtils=require("../../utils/hapticUtils.js"),_hitSlop=require("../../utils/hitSlop.js"),_index2=require("../AppIcon/index.js"),_index3=require("../Skeleton/index.js"),_jsxRuntime=require("react/jsx-runtime");const SOFT_FILL_OPACITY=.14,MIN_TOUCH_TARGET=44,PRESSED_OPACITY=.7,INITIALS_MAX_FONT_SCALE=1.2,AVATAR_COLORS=exports.AVATAR_COLORS=["avatar-1","avatar-2","avatar-3","avatar-4","avatar-5","avatar-6","avatar-7","avatar-8"],avatarToneColors=(e,t)=>{const soft=(e,t)=>(0,_color.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"]}}};exports.avatarToneColors=avatarToneColors;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=exports.Avatar=(0,_react.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:h,loading:m=!1,accessibilityLabel:g,onPress:p,onLongPress:_,haptic:v,hitSlop:b,style:x,textStyle:y,testID:R}=e,f=(0,_index.useTheme)(),[A,C]=(0,_react.useState)(!1),j=(0,_react.useMemo)(()=>resolveSize(a),[a]),S=(0,_react.useMemo)(()=>resolveRadius(f,i,j),[f,i,j]),I=f.colors.border,w=f.colors.surface,M=(0,_react.useMemo)(()=>initialsFromName(s),[s]),T=(0,_react.useMemo)(()=>c?avatarToneColors(f,c):null,[f,c]),N=(0,_react.useMemo)(()=>u||(T?.background??f.colors[hashColor(s??"",AVATAR_COLORS)]),[u,T,s,f]),k=d??T?.color??f.colors["on-primary"],L=!!r&&!A,O=h??Math.max(f.text.xs.size,Math.round(.4*j)),z=Math.max(8,Math.round(.25*j)),E=isRingStatus(n),G=j-2*(E?3:0),V=E?resolveRadius(f,i,G):S,F=E?statusColor(f,n):"transparent",W=Math.max(12,Math.round(.32*j)),P=Math.max(10,W-4),D=L?f.colors["bg-muted"]:N,$=R??"avatar",q=s?`${s}'s avatar`:"Avatar",U="verified"===n?", verified":"pending"===n?", pending verification":"",H=g??`${q}${U}`,B="function"==typeof p||"function"==typeof _,Y=g??`${s||q}${U}`,X=Math.max(0,Math.ceil((44-j)/2)),J=b??X,K=[styles.root,{width:j,height:j,borderRadius:S,..._corners.smoothCorners,borderWidth:0,borderColor:I,backgroundColor:E?"transparent":D},x],Q=(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[E?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[styles.ring,{borderRadius:S,..._corners.smoothCorners,borderWidth:1.5,borderColor:F}],accessible:!1,pointerEvents:"none",testID:`${$}-ring`}):null,(0,_jsxRuntime.jsx)(_reactNative.View,{style:[styles.picture,{width:G,height:G,borderRadius:V,..._corners.smoothCorners,borderWidth:0,borderColor:I,backgroundColor:E?D:"transparent"}],children:L?(()=>{const e={width:G,height:G,borderRadius:V,..._corners.smoothCorners},onError=()=>C(!0);return o?(0,_jsxRuntime.jsx)(o,{source:r,onError:onError,style:e,contentFit:"cover",resizeMode:"cover",accessibilityIgnoresInvertColors:!0}):(0,_jsxRuntime.jsx)(_expoImage.Image,{source:r,onError:onError,style:e,contentFit:"cover",accessibilityIgnoresInvertColors:!0})})():(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[styles.initials,{color:k,fontSize:O,fontWeight:f.weight.semibold},y],numberOfLines:1,maxFontSizeMultiplier:1.2,children:M??" "})}),"verified"===n?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[styles.status,"topRight"===l?styles.badgeTopRight:styles.badgeBottomRight,{width:W,height:W,borderRadius:W/2,..._corners.smoothCorners,backgroundColor:w}],accessible:!1,pointerEvents:"none",testID:`${$}-badge`,children:(0,_jsxRuntime.jsx)(_index2.AppIcon,{name:"verify",variant:"bold",size:P,color:F})}):null,n&&!E?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[styles.status,"topRight"===l?styles.statusTopRight:styles.statusBottomRight,{width:z,height:z,borderRadius:z/2,..._corners.smoothCorners,backgroundColor:statusColor(f,n),borderWidth:2,borderColor:w}],accessible:!1,pointerEvents:"none"}):null]}),Z=B?(0,_jsxRuntime.jsx)(_reactNative.Pressable,{ref:t,onPress:p?e=>{const t=(0,_hapticUtils.resolveHaptic)(v,"selection");t&&(0,_hapticUtils.triggerHaptic)(t),p?.(e)}:void 0,onLongPress:_?e=>{const t=(0,_hapticUtils.resolveHaptic)(v,"longPress");t&&(0,_hapticUtils.triggerHaptic)(t),_?.(e)}:void 0,hitSlop:J,...(0,_hitSlop.hitSlopMarker)(J),accessibilityRole:"button",accessibilityLabel:Y,testID:R,style:({pressed:e})=>[K,e?styles.pressed:null],children:Q}):(0,_jsxRuntime.jsx)(_reactNative.View,{ref:t,style:K,accessible:!0,accessibilityRole:"image",accessibilityLabel:H,testID:R,children:Q});return m?(0,_jsxRuntime.jsx)(AvatarSkeleton,{...e}):Z});Avatar.displayName="Avatar";const AvatarSkeleton=({size:e="md",shape:t="circle",style:r})=>{const o=resolveSize(e),s="circle"===t?"circle":"rounded"===t?"rounded":"rect";return(0,_jsxRuntime.jsx)(_index3.Skeleton,{shape:s,width:o,height:o,style:r})};AvatarSkeleton.displayName="AvatarSkeleton",Avatar.Skeleton=AvatarSkeleton;const styles=_reactNative.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=(0,_index.useTheme)(),i=(0,_react.useRef)((0,_index.createAnimatedValue)(0)).current;return(0,_react.useEffect)(()=>{const t=_reactNative.Animated.timing(i,{toValue:1,duration:220,delay:e,easing:_reactNative.Easing.out(_reactNative.Easing.cubic),useNativeDriver:!0});return t.start(),()=>t.stop()},[e,i]),(0,_jsxRuntime.jsx)(_reactNative.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=(0,_index.useTheme)(),u=(0,_react.useMemo)(()=>_react.Children.toArray(t).filter(e=>(0,_react.isValidElement)(e)),[t]),d=u.length,h=u.slice(0,r),m=Math.max(0,d-r),g=m>0,p=-c.space[SPACING_OFFSET[s]],_=c.colors.surface,v=i??`Group of ${d} ${1===d?"person":"people"}`,b=(0,_react.useMemo)(()=>resolveSize(o),[o]),x=Math.max(c.text.xs.size,Math.round(.34*b));return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[groupStyles.row,n],accessible:!0,accessibilityLabel:v,accessibilityRole:"summary",testID:l,children:[h.map((e,t)=>{const r=e.key??`avatar-${t}`,s=(0,_react.cloneElement)(e,{size:o});return(0,_jsxRuntime.jsx)(AvatarGroupItem,{delay:50*t,marginLeft:0===t?0:p,borderColor:_,borderWidth:1.5,children:s},r)}),g?(0,_jsxRuntime.jsx)(AvatarGroupItem,{delay:50*h.length,marginLeft:0===h.length?0:p,borderColor:_,borderWidth:1.5,children:(0,_jsxRuntime.jsx)(_reactNative.View,{style:[groupStyles.overflow,{width:b,height:b,borderRadius:b/2,..._corners.smoothCorners,backgroundColor:c.colors["surface-disabled"]}],accessible:!0,accessibilityRole:"text",accessibilityLabel:"count"===a?`${m} more`:"More avatars",children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:{color:c.colors["text-muted"],fontSize:x,fontWeight:c.weight.semibold},numberOfLines:1,maxFontSizeMultiplier:1.2,children:"count"===a?`+${m}`:"+"})})},"avatar-overflow"):null]})};exports.AvatarGroup=AvatarGroup;const groupStyles=_reactNative.StyleSheet.create({row:{flexDirection:"row",alignItems:"center"},item:{..._corners.smoothCorners},overflow:{alignItems:"center",justifyContent:"center"}}),AvatarWithGroup=Avatar;AvatarWithGroup.Group=AvatarGroup;var _default=exports.default=AvatarWithGroup;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Banner=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"),_hapticUtils=require("../../utils/hapticUtils.js"),_index2=require("../Skeleton/index.js"),_jsxRuntime=require("react/jsx-runtime");const Banner=exports.Banner=(0,_react.forwardRef)((e,t)=>{const{title:r,message:i,variant:n="info",icon:s,actions:o,dismissible:a=!1,onDismiss:l,haptic:c,visible:d=!0,animateMount:u=!0,loading:x=!1,accessibilityRole:m="alert",accessibilityLabel:p,style:g,containerStyle:h,iconCircleStyle:_,tintBarStyle:y,closeButtonStyle:b,actionButtonStyle:j,testID:f}=e,v=(0,_index.useTheme)(),R=(0,_usePresenceMotion.usePresenceMotion)(),w=(0,_react.useMemo)(()=>buildStyles(v),[v]),
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Banner=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"),_hapticUtils=require("../../utils/hapticUtils.js"),_hitSlop=require("../../utils/hitSlop.js"),_index2=require("../Skeleton/index.js"),_jsxRuntime=require("react/jsx-runtime");const Banner=exports.Banner=(0,_react.forwardRef)((e,t)=>{const{title:r,message:i,variant:n="info",icon:s,actions:o,dismissible:a=!1,onDismiss:l,haptic:c,visible:d=!0,animateMount:u=!0,loading:x=!1,accessibilityRole:m="alert",accessibilityLabel:p,style:g,containerStyle:h,iconCircleStyle:_,tintBarStyle:y,closeButtonStyle:b,actionButtonStyle:j,testID:f}=e,v=(0,_index.useTheme)(),R=(0,_usePresenceMotion.usePresenceMotion)(),w=(0,_react.useMemo)(()=>buildStyles(v),[v]),S=(0,_react.useMemo)(()=>tintFor(v,n),[v,n]),[N,k]=R.range(-20,0),B=(0,_react.useRef)((0,_index.createAnimatedValue)(u&&d?N:0)).current,C=(0,_react.useRef)((0,_index.createAnimatedValue)(u&&d?0:d?1:0)).current,[V,z]=(0,_react.useState)(d),D=(0,_react.useRef)(!0);if((0,_react.useEffect)(()=>{if(D.current&&(D.current=!1,!u))return;let e;return d?(z(!0),e=_reactNative.Animated.parallel([_reactNative.Animated.timing(B,{toValue:k,duration:v.motion.duration.default,useNativeDriver:!0}),_reactNative.Animated.timing(C,{toValue:1,duration:R.duration("default"),useNativeDriver:!0})]),e.start()):V&&(e=_reactNative.Animated.parallel([_reactNative.Animated.timing(B,{toValue:N,duration:v.motion.duration.fast,useNativeDriver:!0}),_reactNative.Animated.timing(C,{toValue:0,duration:R.duration("fast"),useNativeDriver:!0})]),e.start(()=>{z(!1)})),()=>e?.stop()},[d]),!V)return null;const T=r??" ",H="string"==typeof i?i??" ":"",M="alert"===m?"danger"===n?"assertive":"polite":"none",A=(0,_jsxRuntime.jsxs)(_reactNative.Animated.View,{ref:t,accessibilityRole:m,accessibilityLiveRegion:M,accessibilityLabel:p,testID:f,style:[w.container,{backgroundColor:v.colors["bg-subtle"],borderRadius:v.radius.md,..._corners.smoothCorners,padding:v.space.md,opacity:C,transform:[{translateY:B}]},g,h],children:[v.components.banner["tint-bar-width"]>0?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[w.tintBar,{backgroundColor:S.bar},y]}):null,(0,_jsxRuntime.jsxs)(_reactNative.View,{style:w.row,children:[!1===s?null:s?(0,_jsxRuntime.jsx)(_reactNative.View,{style:w.iconWrap,children:s}):(0,_jsxRuntime.jsx)(_reactNative.View,{style:[w.iconCircle,{backgroundColor:`${S.bar}22`},_],children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[w.iconGlyph,{color:S.ink}],accessible:!1,children:S.glyph})}),(0,_jsxRuntime.jsxs)(_reactNative.View,{style:w.textBlock,children:[r||x?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:{color:v.colors["text-body"],fontSize:v.text.base.size,...(0,_index.fontFor)(v,"semibold"),lineHeight:20},numberOfLines:2,children:T}):null,"string"==typeof i||x?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:{color:v.colors["text-muted"],fontSize:v.text.sm.size,...(0,_index.fontFor)(v,"normal"),lineHeight:18,marginTop:r?v.space.xxs:0},children:H||" "}):(0,_jsxRuntime.jsx)(_reactNative.View,{style:{marginTop:r?v.space.xxs:0},children:i})]}),a?(0,_jsxRuntime.jsx)(_reactNative.Pressable,{accessibilityRole:"button",accessibilityLabel:"Dismiss banner",onPress:()=>{const e=(0,_hapticUtils.resolveHaptic)(c,"selection");e&&(0,_hapticUtils.triggerHaptic)(e),l?.()},hitSlop:8,...(0,_hitSlop.hitSlopMarker)(8),style:({pressed:e})=>[w.closeBtn,{backgroundColor:e?v.colors["surface-pressed"]:"transparent"},b],children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:{color:v.colors["text-muted"],fontSize:v.text.lg.size,fontWeight:v.weight.bold,lineHeight:17},accessible:!1,children:"×"})}):null]}),o&&o.length>0?(0,_jsxRuntime.jsx)(_reactNative.View,{style:w.actionsRow,children:o.map((e,t)=>{const r=e.tone??"primary",i=e.variant??"ghost",n="danger"===r?v.colors.danger:"neutral"===r?v.colors["text-muted"]:S.glyphColor,s="danger"===r?v.colors["danger-text"]:"neutral"===r?v.colors["text-muted"]:S.ink,o="danger"===r?v.colors["on-danger"]:"neutral"===r?v.colors["on-neutral-strong"]:S.on,a="solid"===i;return(0,_jsxRuntime.jsx)(_reactNative.Pressable,{accessibilityRole:"button",accessibilityLabel:e.label,onPress:()=>{const t=(0,_hapticUtils.resolveHaptic)(c,"selection");t&&(0,_hapticUtils.triggerHaptic)(t),e.onPress()},style:({pressed:t})=>[w.actionBtn,"md"===e.size&&w.actionBtnMd,"outline"===i&&{borderWidth:1,borderColor:s},{backgroundColor:a?n:t?v.colors["surface-pressed"]:"transparent",opacity:a&&t?.85:1},j],children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:{color:a?o:s,fontSize:v.text.sm.size,textAlign:"center",...(0,_index.fontFor)(v,"semibold")},children:e.label})},`${e.label}-${t}`)})}):null]});return x?(0,_jsxRuntime.jsx)(BannerSkeleton,{...e}):A});Banner.displayName="Banner";const BannerSkeleton=({title:e,actions:t,icon:r,containerStyle:i,style:n})=>{const s=(0,_index.useTheme)(),o=!1!==r;return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[{flexDirection:"row",alignItems:"flex-start",backgroundColor:s.colors.surface,borderRadius:s.radius.md,..._corners.smoothCorners,padding:s.space.md,borderWidth:1,borderColor:s.colors.border},i,n],accessibilityRole:"progressbar",accessibilityState:{busy:!0},"aria-busy":!0,children:[o?(0,_jsxRuntime.jsx)(_reactNative.View,{style:{marginRight:s.space.sm},children:(0,_jsxRuntime.jsx)(_index2.Skeleton,{shape:"circle",width:32,height:32})}):null,(0,_jsxRuntime.jsxs)(_reactNative.View,{style:{flex:1},children:[void 0!==e?(0,_jsxRuntime.jsx)(_index2.Skeleton,{shape:"text",width:"55%",height:16,style:{marginBottom:s.space.xs}}):null,(0,_jsxRuntime.jsx)(_index2.SkeletonText,{lines:2,fontSize:s.text.sm.size,lastLineWidth:"70%"}),t&&t.length>0?(0,_jsxRuntime.jsx)(_reactNative.View,{style:{flexDirection:"row",marginTop:s.space.sm},children:t.map((e,t)=>(0,_jsxRuntime.jsx)(_index2.Skeleton,{width:72,height:28,shape:"rounded",style:{marginRight:s.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 _reactNative.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,..._corners.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,..._corners.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,..._corners.smoothCorners,maxWidth:"100%",alignItems:"center",justifyContent:"center"},actionBtnMd:{minHeight:44,paddingHorizontal:e.space.md}})};var _default=exports.default=Banner;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.BottomNavigation=void 0;var cache,_react=_interopRequireWildcard(require("react")),_reactNative=require("react-native"),_reactNativeSafeAreaContext=require("react-native-safe-area-context"),_useReducedMotion=require("../../hooks/useReducedMotion.js"),_index=require("../../theme/index.js"),_index2=require("../../utils/index.js"),_corners=require("../../utils/corners.js"),_shadows=require("../../utils/shadows.js"),_index3=require("../AppIcon/index.js"),_useScreenReaderEnabled=require("./useScreenReaderEnabled.js"),_jsxRuntime=require("react/jsx-runtime");function _interopRequireWildcard(e,t){if(!t&&e&&e.__esModule)return e;var i,a,n=Object.defineProperty,r={__proto__:null,default:e};if(Object(e)!==e)return r;if(cache||"function"!=typeof WeakMap||(cache=new WeakMap),cache){if(cache.has(e))return cache.get(e);cache.set(e,r)}for(a in e)"default"!==a&&{}.hasOwnProperty.call(e,a)&&((i=n&&Object.getOwnPropertyDescriptor(e,a))&&(i.get||i.set)?n(r,a,i):r[a]=e[a]);return r}const DEFAULT_ICON_SIZE=18,DEFAULT_LABEL_MAX_FONT_SCALE=1.2,ICON_WRAP_AIR=4,PILL_AIR=8,DEFAULT_PILL_MAX_WIDTH=64,TILE_MAX_WIDTH=96,DEFAULT_UNDERLINE_HEIGHT=3,DEFAULT_BUBBLE_SIZE=48,DEFAULT_BUBBLE_LIFT=14,DEFAULT_CENTER_SIZE=48,DEFAULT_CENTER_ICON_SIZE=24,CENTER_KEY="__webority_center_action__",EXPANDED_FLEX=1.5,SOLID_INACTIVE_OPACITY=.7,TILE_INSET=2,formatBadge=e=>null==e||!1===e?null:!0===e||"·"===e?{text:"",isDot:!0}:"number"==typeof e?e<=0?null:{text:e>99?"99+":String(e),isDot:!1}:"string"==typeof e?0===e.length?null:{text:e,isDot:!1}:null,badgeAccessibilitySuffix=e=>null==e||!1===e?"":"number"==typeof e?e>0?`, ${e} unread`:"":!0===e||"·"===e?", new updates":"string"==typeof e&&e.length>0?`, ${e}`:"",BottomNavigation=exports.BottomNavigation=(0,_react.forwardRef)((e,t)=>{const{tabs:i,centerAction:a,activeTab:n,onChange:r,haptic:o="selection",showLabels:s=!0,variant:l="pill",indicatorPosition:c="bottom",radius:d,indicatorRadius:u="auto",elevation:p,iconSize:h,marginHorizontal:m,marginVertical:_,paddingHorizontal:g,paddingVertical:x,border:b,minimizeOnScroll:f=!1,scrollDirection:y="idle",accessory:v,style:R,indicatorStyle:j,labelStyle:N,labelMaxFontScale:w,testID:S}=e,E=(0,_index.useTheme)(),I=(0,_reactNativeSafeAreaContext.useSafeAreaInsets)(),A=(0,_react.useMemo)(()=>buildStyles(E),[E]),C=h??18,L=C+4+8,T=E.space.lg,D=E.space.lg,M=E.radius.xl,V=(0,_useReducedMotion.useReducedMotion)(),k=(0,_useScreenReaderEnabled.useScreenReaderEnabled)(f),[z,B]=_react.default.useState(null);(0,_react.useEffect)(()=>{null!==z&&z!==y&&B(null)},[z,y]);const P=f&&!k&&"down"===y&&null===z,[W,F]=_react.default.useState(P);(0,_react.useEffect)(()=>{W!==P&&(V||"web"===_reactNative.Platform.OS||_reactNative.LayoutAnimation.configureNext(_reactNative.LayoutAnimation.Presets.easeInEaseOut),F(P))},[W,P,V]);const H="function"==typeof v?v({minimized:W}):v,O=null!=H&&!1!==H,q=W&&O,[U,$]=_react.default.useState(0),X=O&&!q?U+E.space.xs:0,Z="tile"===l,Y="floating"===l||Z,K="bubble"===l,G="expand"===l,J="solid"===l,Q="pill"===l||Y||J,ee=Math.max(0,i.findIndex(e=>e.key===n)),[te,ie]=_react.default.useState(0),[ae,ne]=_react.default.useState(0),re=a?Math.ceil(i.length/2):i.length,oe=i.length+(a?1:0),[se,le]=_react.default.useState({width:0,height:0}),ce=a?.size??48,de=void 0!==a?.gap,ue=Math.max(0,a?.gap??0),pe=de?(se.width||ce)+2*ue:0,he=de?i.length>0?Math.max(0,te-pe)/i.length:0:oe>0?te/oe:0,me=de?pe:he,ge=(0,_react.useRef)((0,_index.createAnimatedValue)(ee)).current,xe=(0,_react.useRef)({}),be=(0,_react.useRef)({});i.forEach(e=>{xe.current[e.key]||(xe.current[e.key]=new _reactNative.Animated.Value(1)),be.current[e.key]||(be.current[e.key]=(0,_index.createAnimatedValue)(e.key===n?1:0))});const fe=he>0?Z?Math.min(he-4,96):Math.min(he-T,64):0,ye=he>0?(he-fe)/2:0,ve=he>0?(he-48)/2:0,hasLabel=e=>s&&!W&&!1!==e.showLabel&&e.label.trim().length>0,Re=i[ee],je=Re&&!hasLabel(Re)&&ae>0?ae/2:E.space.xs+(C+4)/2,Ne=je-14-24,we=Math.max(0,ae-4),Se=Z?2:je-L/2,Ee=(0,_react.useRef)(ee);(0,_react.useEffect)(()=>{if(Ee.current===ee)return;Ee.current=ee;const e=_reactNative.Animated.spring(ge,{toValue:ee,tension:120,friction:14,useNativeDriver:!0});return e.start(),()=>e.stop()},[ee,ge]);const Ie=Math.max(1,i.length-1),Ae=(0,_react.useMemo)(()=>{const e=[],t=[];for(let i=0;i<=Ie;i++)e.push(i),t.push(i<re?i*he:i*he+me);return ge.interpolate({inputRange:e,outputRange:t})},[ge,Ie,re,he,me]),Ce=i.map(e=>e.key).join(" "),Le=K||G;(0,_react.useEffect)(()=>{const e=Ce.split(" ").flatMap(e=>{const t=e===n?1:0,i=be.current[e];return i?Le?[_reactNative.Animated.spring(i,{toValue:t,tension:140,friction:13,useNativeDriver:!1})]:(i.setValue(t),[]):[]});if(0===e.length)return;const t=_reactNative.Animated.parallel(e);return t.start(),()=>t.stop()},[n,Ce,Le]);const popIcon=e=>{_reactNative.Animated.sequence([_reactNative.Animated.timing(e,{toValue:1.15,duration:120,useNativeDriver:!0}),_reactNative.Animated.spring(e,{toValue:1,tension:200,friction:8,useNativeDriver:!0})]).start()},Te=(0,_react.useRef)(new _reactNative.Animated.Value(1)).current,{colors:De}=E,Me=J?De.primary:De.surface,Ve=J?De["on-primary"]:De.primary,ke=J?De["on-primary"]:Z?De["text-body"]:De["text-subtle"],ze=J?De["on-primary"]:De["primary-soft"],Be=J?De.primary:K?De["on-primary"]:Ve,Pe=m??D,We=_??(Y?D:0),Fe=We>0,He=x??E.space.sm,Oe=g??(Y?E.space.sm:E.space.xs),qe=Fe?He:Math.max(He,I.bottom),Ue=Fe?Math.max(We,I.bottom>0?I.bottom+E.space.sm:0):0,$e="pill"===d,Xe=Y?ae+X+2*He+2*_reactNative.StyleSheet.hairlineWidth:ae+X+He+qe,Ze=$e?ae>0?Xe/2:E.radius.pill:d??(Z?E.radius.pill:Y?M:E.radius.none),Ye=void 0!==d,activeBgRadius=(e,t)=>"number"==typeof u?Math.max(0,Math.min(u,e/2)):"auto"===u&&Ye?Math.min(Ze,e/2):t,Ke="underline"===l?Math.max(Oe,$e&&0===ae?0:Ze):Oe,Ge=p??"none",Je="none"===Ge?void 0:E.shadow[Ge],Qe=void 0===Je?null:(0,_shadows.supportsBoxShadow)()?{boxShadow:(0,_shadows.toBoxShadow)(Je)}:Je,et=b?_reactNative.StyleSheet.hairlineWidth:0,tt=J?De.primary:De.border,it=a?.lift??0,at=He+et+X,nt=a&&ae>0?Math.max(0,(se.height||ce)/2+it-ae/2-at):0,rt=a?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[A.centerCell,de?{flex:0,marginHorizontal:ue}:null],pointerEvents:"box-none",children:(0,_jsxRuntime.jsxs)(_reactNative.Pressable,{onPress:()=>{if(!a)return;const e=a.haptic??o;!1!==e&&(0,_index2.triggerHaptic)(e),popIcon(Te),a.onPress()},onLayout:e=>{const{width:t,height:i}=e.nativeEvent.layout;le(e=>e.width===t&&e.height===i?e:{width:t,height:i})},accessibilityRole:"button",accessibilityLabel:a.label,hitSlop:{top:6,bottom:6,left:6,right:6},style:({pressed:e})=>[A.centerPressable,{top:-it},e?{opacity:.85}:null],testID:a.testID??(S?`${S}-center`:void 0),children:[a.content?(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:{transform:[{scale:Te}]},children:a.content}):(0,_jsxRuntime.jsx)(_reactNative.View,{style:[A.centerCircle,{width:ce,height:ce,borderRadius:E.radius.pill,..._corners.smoothCorners,backgroundColor:a.color??De.primary}],children:(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:{transform:[{scale:Te}]},children:(0,_index3.renderSlotIcon)(a.icon??"add",{color:a.iconColor??De["on-primary"],size:a.iconSize??24,disabled:!1})})}),(ot=a,s&&!W&&ot.label.trim().length>0?(0,_jsxRuntime.jsx)(_reactNative.Text,{numberOfLines:1,maxFontSizeMultiplier:w??E.settings.maxFontSizeMultiplier??1.2,style:[A.label,{color:ke,opacity:J?.7:1},N],children:a.label}):null)]})},CENTER_KEY):null;var ot;const st=O?(0,_jsxRuntime.jsx)(_reactNative.View,{style:q?A.accessoryInline:A.accessoryStacked,onLayout:e=>$(e.nativeEvent.layout.height),testID:S?`${S}-accessory`:void 0,children:H}):null,lt=(0,_jsxRuntime.jsxs)(_reactNative.View,{style:q?[A.tabRow,A.tabRowInline]:A.tabRow,onLayout:e=>{const{width:t,height:i}=e.nativeEvent.layout;ie(t),ne(i)},children:[Q&&fe>0&&(!Z||we>0)?(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{pointerEvents:"none",style:[A.pill,{width:fe,height:Z?we:L,left:ye,top:Se,backgroundColor:ze,borderRadius:Z?activeBgRadius(we,we/2):activeBgRadius(L,E.radius.pill),..._corners.smoothCorners,transform:[{translateX:Ae}]},j]}):null,K&&he>0?(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{pointerEvents:"none",style:[A.bubble,E.shadow.elevated,{width:48,height:48,borderRadius:E.radius.pill,..._corners.smoothCorners,left:ve,top:Ne,backgroundColor:De.primary,borderColor:De.surface,transform:[{translateX:Ae}]},j]}):null,(ct=i.map(e=>{const t=e.key===n,i=t?Ve:ke,a=t?Be:ke,s="string"==typeof e.icon?{name:e.icon,variant:"bold"}:e.icon,l=t?e.activeIcon??s:e.icon,c=xe.current[e.key],d=be.current[e.key],u=formatBadge(e.badge??null),p=badgeAccessibilitySuffix(e.badge??null),h=J&&!t?.7:1,m=K&&t||J?De.primary:De.surface,_=hasLabel(e),g=_&&(!G||t),x=(0,_jsxRuntime.jsxs)(_reactNative.Animated.View,{style:[A.iconWrap,{width:C+4,height:C+4,opacity:h,transform:[{scale:c}]}],children:[(0,_index3.renderSlotIcon)(l,{color:a,size:C,focused:t,disabled:!1}),u?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[u.isDot?A.badgeDot:A.badgePill,{backgroundColor:De.danger,borderColor:m}],children:u.isDot?null:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[A.badgeText,{color:De["on-danger"]}],numberOfLines:1,children:u.text})}):null]}),b=K?(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:{top:d.interpolate({inputRange:[0,1],outputRange:[0,-14]})},children:x}):x,f=g?(0,_jsxRuntime.jsx)(_reactNative.Animated.Text,{numberOfLines:1,maxFontSizeMultiplier:w??E.settings.maxFontSizeMultiplier??1.2,style:[A.label,G?A.labelInline:null,{color:i,opacity:G?d:h,fontWeight:t?E.weight.semibold:E.weight.normal},N],children:e.label}):null,v=(0,_jsxRuntime.jsx)(_reactNative.Pressable,{onPress:()=>(e=>{W&&B(y),e.key!==n&&!1!==o&&(0,_index2.triggerHaptic)(o);const t=xe.current[e.key];t&&popIcon(t),r(e.key)})(e),accessibilityRole:"tab",accessibilityState:{selected:t},"aria-selected":t,accessibilityLabel:`${e.label}${p}`,accessibilityHint:`Switches to ${e.label}`,hitSlop:{top:6,bottom:6,left:6,right:6},style:({pressed:e})=>[A.tab,Z?A.tabTile:null,e?{opacity:.85}:null],testID:S?`${S}-tab-${e.key}`:void 0,children:G?(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[A.expandPill,{height:L,paddingHorizontal:t&&_?E.space.md:Math.max(0,(L-(C+4))/2)}],children:[(0,_jsxRuntime.jsx)(_reactNative.View,{pointerEvents:"none",style:[A.expandFill,{borderRadius:activeBgRadius(L,L/2),..._corners.smoothCorners,backgroundColor:t?De["primary-soft"]:"transparent"},t?j:null]}),b,f]}):(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[b,f]})},e.key);return G?(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:{flex:d.interpolate({inputRange:[0,1],outputRange:[1,_?1.5:1]})},children:v},e.key):v}),rt?[...ct.slice(0,re),rt,...ct.slice(re)]:ct),"underline"===l&&he>0?(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{pointerEvents:"none",style:[A.underline,"top"===c?A.underlineTop:A.underlineBottom,"top"===c?{top:-He-X}:{bottom:-He},{width:he,height:3,backgroundColor:De.primary,transform:[{translateX:Ae}]},j]}):null]});var ct;return(0,_jsxRuntime.jsx)(_reactNative.View,{ref:t,testID:S,accessibilityRole:"tablist",style:[A.outer,{paddingHorizontal:Pe,paddingTop:Math.max(We,nt),paddingBottom:Ue},R],children:(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[Y?A.floatingBar:A.dockedBar,q?A.barInline:null,Qe,{backgroundColor:Me,borderColor:tt,borderRadius:Ze,..._corners.smoothCorners},Y?{borderWidth:et,paddingHorizontal:Oe,paddingVertical:He}:{borderTopWidth:et,borderBottomWidth:et,borderLeftWidth:et,borderRightWidth:et,paddingHorizontal:Ke,paddingTop:He,paddingBottom:qe}],children:[st,lt]})})});BottomNavigation.displayName="BottomNavigation";const buildStyles=e=>_reactNative.StyleSheet.create({outer:{backgroundColor:"transparent"},dockedBar:{paddingHorizontal:e.space.xs},floatingBar:{paddingVertical:e.space.sm,paddingHorizontal:e.space.sm},tabRow:{flexDirection:"row",alignItems:"stretch",position:"relative"},tabRowInline:{flex:1},barInline:{flexDirection:"row",alignItems:"center"},accessoryStacked:{marginBottom:e.space.xs},accessoryInline:{flexShrink:0,marginRight:e.space.xs},tab:{flex:1,minHeight:44,alignItems:"center",justifyContent:"center",paddingVertical:e.space.xs,gap:e.space.xs},tabTile:{paddingVertical:e.space.sm,gap:e.space.xxs},centerCell:{flex:1,minHeight:44,alignItems:"center",justifyContent:"center"},centerPressable:{alignItems:"center",maxWidth:"100%",gap:e.space.xs},centerCircle:{alignItems:"center",justifyContent:"center"},iconWrap:{alignItems:"center",justifyContent:"center",position:"relative"},label:{fontSize:e.text.xs.size,lineHeight:e.text.xs.size*e.leading.heading,textAlign:"center",includeFontPadding:!1},labelInline:{fontSize:e.text.sm.size,lineHeight:e.text.sm.size*e.leading.heading,flexShrink:1,includeFontPadding:!1},expandPill:{flexDirection:"row",alignItems:"center",justifyContent:"center",gap:e.space.xs},expandFill:{position:"absolute",top:0,right:0,bottom:0,left:0,overflow:"hidden"},pill:{position:"absolute",left:0},bubble:{position:"absolute",left:0,borderWidth:3},underline:{position:"absolute",left:0,height:3},underlineBottom:{borderTopLeftRadius:e.radius.none,borderTopRightRadius:e.radius.none,..._corners.smoothCorners},underlineTop:{borderBottomLeftRadius:e.radius.none,borderBottomRightRadius:e.radius.none,..._corners.smoothCorners},badgePill:{position:"absolute",top:-4,right:-8,minWidth:18,height:18,borderRadius:e.radius.pill,..._corners.smoothCorners,paddingHorizontal:e.space.xs,paddingVertical:e.space.xxs,alignItems:"center",justifyContent:"center",borderWidth:1.5},badgeDot:{position:"absolute",top:-2,right:-2,width:10,height:10,borderRadius:e.radius.pill,..._corners.smoothCorners,borderWidth:1.5},badgeText:{fontSize:e.text.xs.size,fontWeight:"700",lineHeight:13,textAlign:"center",includeFontPadding:!1}});var _default=exports.default=BottomNavigation;
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.BottomNavigation=void 0;var cache,_react=_interopRequireWildcard(require("react")),_reactNative=require("react-native"),_reactNativeSafeAreaContext=require("react-native-safe-area-context"),_useReducedMotion=require("../../hooks/useReducedMotion.js"),_index=require("../../theme/index.js"),_index2=require("../../utils/index.js"),_corners=require("../../utils/corners.js"),_hitSlop=require("../../utils/hitSlop.js"),_shadows=require("../../utils/shadows.js"),_index3=require("../AppIcon/index.js"),_useScreenReaderEnabled=require("./useScreenReaderEnabled.js"),_jsxRuntime=require("react/jsx-runtime");function _interopRequireWildcard(e,t){if(!t&&e&&e.__esModule)return e;var i,a,r=Object.defineProperty,n={__proto__:null,default:e};if(Object(e)!==e)return n;if(cache||"function"!=typeof WeakMap||(cache=new WeakMap),cache){if(cache.has(e))return cache.get(e);cache.set(e,n)}for(a in e)"default"!==a&&{}.hasOwnProperty.call(e,a)&&((i=r&&Object.getOwnPropertyDescriptor(e,a))&&(i.get||i.set)?r(n,a,i):n[a]=e[a]);return n}const DEFAULT_ICON_SIZE=18,DEFAULT_LABEL_MAX_FONT_SCALE=1.2,ICON_WRAP_AIR=4,PILL_AIR=8,DEFAULT_PILL_MAX_WIDTH=64,TILE_MAX_WIDTH=96,DEFAULT_UNDERLINE_HEIGHT=3,DEFAULT_BUBBLE_SIZE=48,DEFAULT_BUBBLE_LIFT=14,DEFAULT_CENTER_SIZE=48,DEFAULT_CENTER_ICON_SIZE=24,CENTER_KEY="__webority_center_action__",EXPANDED_FLEX=1.5,SOLID_INACTIVE_OPACITY=.7,TILE_INSET=2,formatBadge=e=>null==e||!1===e?null:!0===e||"·"===e?{text:"",isDot:!0}:"number"==typeof e?e<=0?null:{text:e>99?"99+":String(e),isDot:!1}:"string"==typeof e?0===e.length?null:{text:e,isDot:!1}:null,badgeAccessibilitySuffix=e=>null==e||!1===e?"":"number"==typeof e?e>0?`, ${e} unread`:"":!0===e||"·"===e?", new updates":"string"==typeof e&&e.length>0?`, ${e}`:"",BottomNavigation=exports.BottomNavigation=(0,_react.forwardRef)((e,t)=>{const{tabs:i,centerAction:a,activeTab:r,onChange:n,haptic:o="selection",showLabels:s=!0,variant:l="pill",indicatorPosition:c="bottom",radius:d,indicatorRadius:u="auto",elevation:p,iconSize:h,marginHorizontal:m,marginVertical:_,paddingHorizontal:g,paddingVertical:x,border:b,minimizeOnScroll:f=!1,scrollDirection:y="idle",accessory:v,style:R,indicatorStyle:j,labelStyle:N,labelMaxFontScale:S,testID:w}=e,E=(0,_index.useTheme)(),I=(0,_reactNativeSafeAreaContext.useSafeAreaInsets)(),A=(0,_react.useMemo)(()=>buildStyles(E),[E]),C=h??18,L=C+4+8,M=E.space.lg,T=E.space.lg,D=E.radius.xl,k=(0,_useReducedMotion.useReducedMotion)(),V=(0,_useScreenReaderEnabled.useScreenReaderEnabled)(f),[z,B]=_react.default.useState(null);(0,_react.useEffect)(()=>{null!==z&&z!==y&&B(null)},[z,y]);const P=f&&!V&&"down"===y&&null===z,[W,F]=_react.default.useState(P);(0,_react.useEffect)(()=>{W!==P&&(k||"web"===_reactNative.Platform.OS||_reactNative.LayoutAnimation.configureNext(_reactNative.LayoutAnimation.Presets.easeInEaseOut),F(P))},[W,P,k]);const H="function"==typeof v?v({minimized:W}):v,O=null!=H&&!1!==H,q=W&&O,[U,$]=_react.default.useState(0),X=O&&!q?U+E.space.xs:0,Z="tile"===l,Y="floating"===l||Z,K="bubble"===l,G="expand"===l,J="solid"===l,Q="pill"===l||Y||J,ee=Math.max(0,i.findIndex(e=>e.key===r)),[te,ie]=_react.default.useState(0),[ae,re]=_react.default.useState(0),ne=a?Math.ceil(i.length/2):i.length,oe=i.length+(a?1:0),[se,le]=_react.default.useState({width:0,height:0}),ce=a?.size??48,de=void 0!==a?.gap,ue=Math.max(0,a?.gap??0),pe=de?(se.width||ce)+2*ue:0,he=de?i.length>0?Math.max(0,te-pe)/i.length:0:oe>0?te/oe:0,me=de?pe:he,ge=(0,_react.useRef)((0,_index.createAnimatedValue)(ee)).current,xe=(0,_react.useRef)({}),be=(0,_react.useRef)({});i.forEach(e=>{xe.current[e.key]||(xe.current[e.key]=new _reactNative.Animated.Value(1)),be.current[e.key]||(be.current[e.key]=(0,_index.createAnimatedValue)(e.key===r?1:0))});const fe=he>0?Z?Math.min(he-4,96):Math.min(he-M,64):0,ye=he>0?(he-fe)/2:0,ve=he>0?(he-48)/2:0,hasLabel=e=>s&&!W&&!1!==e.showLabel&&e.label.trim().length>0,Re=i[ee],je=Re&&!hasLabel(Re)&&ae>0?ae/2:E.space.xs+(C+4)/2,Ne=je-14-24,Se=Math.max(0,ae-4),we=Z?2:je-L/2,Ee=(0,_react.useRef)(ee);(0,_react.useEffect)(()=>{if(Ee.current===ee)return;Ee.current=ee;const e=_reactNative.Animated.spring(ge,{toValue:ee,tension:120,friction:14,useNativeDriver:!0});return e.start(),()=>e.stop()},[ee,ge]);const Ie=Math.max(1,i.length-1),Ae=(0,_react.useMemo)(()=>{const e=[],t=[];for(let i=0;i<=Ie;i++)e.push(i),t.push(i<ne?i*he:i*he+me);return ge.interpolate({inputRange:e,outputRange:t})},[ge,Ie,ne,he,me]),Ce=i.map(e=>e.key).join(" "),Le=K||G;(0,_react.useEffect)(()=>{const e=Ce.split(" ").flatMap(e=>{const t=e===r?1:0,i=be.current[e];return i?Le?[_reactNative.Animated.spring(i,{toValue:t,tension:140,friction:13,useNativeDriver:!1})]:(i.setValue(t),[]):[]});if(0===e.length)return;const t=_reactNative.Animated.parallel(e);return t.start(),()=>t.stop()},[r,Ce,Le]);const popIcon=e=>{_reactNative.Animated.sequence([_reactNative.Animated.timing(e,{toValue:1.15,duration:120,useNativeDriver:!0}),_reactNative.Animated.spring(e,{toValue:1,tension:200,friction:8,useNativeDriver:!0})]).start()},Me=(0,_react.useRef)(new _reactNative.Animated.Value(1)).current,{colors:Te}=E,De=J?Te.primary:Te.surface,ke=J?Te["on-primary"]:Te.primary,Ve=J?Te["on-primary"]:Z?Te["text-body"]:Te["text-subtle"],ze=J?Te["on-primary"]:Te["primary-soft"],Be=J?Te.primary:K?Te["on-primary"]:ke,Pe=m??T,We=_??(Y?T:0),Fe=We>0,He=x??E.space.sm,Oe=g??(Y?E.space.sm:E.space.xs),qe=Fe?He:Math.max(He,I.bottom),Ue=Fe?Math.max(We,I.bottom>0?I.bottom+E.space.sm:0):0,$e="pill"===d,Xe=Y?ae+X+2*He+2*_reactNative.StyleSheet.hairlineWidth:ae+X+He+qe,Ze=$e?ae>0?Xe/2:E.radius.pill:d??(Z?E.radius.pill:Y?D:E.radius.none),Ye=void 0!==d,activeBgRadius=(e,t)=>"number"==typeof u?Math.max(0,Math.min(u,e/2)):"auto"===u&&Ye?Math.min(Ze,e/2):t,Ke="underline"===l?Math.max(Oe,$e&&0===ae?0:Ze):Oe,Ge=p??"none",Je="none"===Ge?void 0:E.shadow[Ge],Qe=void 0===Je?null:(0,_shadows.supportsBoxShadow)()?{boxShadow:(0,_shadows.toBoxShadow)(Je)}:Je,et=b?_reactNative.StyleSheet.hairlineWidth:0,tt=J?Te.primary:Te.border,it=a?.lift??0,at=He+et+X,rt=a&&ae>0?Math.max(0,(se.height||ce)/2+it-ae/2-at):0,nt=a?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[A.centerCell,de?{flex:0,marginHorizontal:ue}:null],pointerEvents:"box-none",children:(0,_jsxRuntime.jsxs)(_reactNative.Pressable,{onPress:()=>{if(!a)return;const e=a.haptic??o;!1!==e&&(0,_index2.triggerHaptic)(e),popIcon(Me),a.onPress()},onLayout:e=>{const{width:t,height:i}=e.nativeEvent.layout;le(e=>e.width===t&&e.height===i?e:{width:t,height:i})},accessibilityRole:"button",accessibilityLabel:a.label,hitSlop:{top:6,bottom:6,left:6,right:6},...(0,_hitSlop.hitSlopMarker)({top:6,bottom:6,left:6,right:6}),style:({pressed:e})=>[A.centerPressable,{top:-it},e?{opacity:.85}:null],testID:a.testID??(w?`${w}-center`:void 0),children:[a.content?(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:{transform:[{scale:Me}]},children:a.content}):(0,_jsxRuntime.jsx)(_reactNative.View,{style:[A.centerCircle,{width:ce,height:ce,borderRadius:E.radius.pill,..._corners.smoothCorners,backgroundColor:a.color??Te.primary}],children:(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:{transform:[{scale:Me}]},children:(0,_index3.renderSlotIcon)(a.icon??"add",{color:a.iconColor??Te["on-primary"],size:a.iconSize??24,disabled:!1})})}),(ot=a,s&&!W&&ot.label.trim().length>0?(0,_jsxRuntime.jsx)(_reactNative.Text,{numberOfLines:1,maxFontSizeMultiplier:S??E.settings.maxFontSizeMultiplier??1.2,style:[A.label,{color:Ve,opacity:J?.7:1},N],children:a.label}):null)]})},CENTER_KEY):null;var ot;const st=O?(0,_jsxRuntime.jsx)(_reactNative.View,{style:q?A.accessoryInline:A.accessoryStacked,onLayout:e=>$(e.nativeEvent.layout.height),testID:w?`${w}-accessory`:void 0,children:H}):null,lt=(0,_jsxRuntime.jsxs)(_reactNative.View,{style:q?[A.tabRow,A.tabRowInline]:A.tabRow,onLayout:e=>{const{width:t,height:i}=e.nativeEvent.layout;ie(t),re(i)},children:[Q&&fe>0&&(!Z||Se>0)?(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{pointerEvents:"none",style:[A.pill,{width:fe,height:Z?Se:L,left:ye,top:we,backgroundColor:ze,borderRadius:Z?activeBgRadius(Se,Se/2):activeBgRadius(L,E.radius.pill),..._corners.smoothCorners,transform:[{translateX:Ae}]},j]}):null,K&&he>0?(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{pointerEvents:"none",style:[A.bubble,E.shadow.elevated,{width:48,height:48,borderRadius:E.radius.pill,..._corners.smoothCorners,left:ve,top:Ne,backgroundColor:Te.primary,borderColor:Te.surface,transform:[{translateX:Ae}]},j]}):null,(ct=i.map(e=>{const t=e.key===r,i=t?ke:Ve,a=t?Be:Ve,s="string"==typeof e.icon?{name:e.icon,variant:"bold"}:e.icon,l=t?e.activeIcon??s:e.icon,c=xe.current[e.key],d=be.current[e.key],u=formatBadge(e.badge??null),p=badgeAccessibilitySuffix(e.badge??null),h=J&&!t?.7:1,m=K&&t||J?Te.primary:Te.surface,_=hasLabel(e),g=_&&(!G||t),x=(0,_jsxRuntime.jsxs)(_reactNative.Animated.View,{style:[A.iconWrap,{width:C+4,height:C+4,opacity:h,transform:[{scale:c}]}],children:[(0,_index3.renderSlotIcon)(l,{color:a,size:C,focused:t,disabled:!1}),u?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[u.isDot?A.badgeDot:A.badgePill,{backgroundColor:Te.danger,borderColor:m}],children:u.isDot?null:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[A.badgeText,{color:Te["on-danger"]}],numberOfLines:1,children:u.text})}):null]}),b=K?(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:{top:d.interpolate({inputRange:[0,1],outputRange:[0,-14]})},children:x}):x,f=g?(0,_jsxRuntime.jsx)(_reactNative.Animated.Text,{numberOfLines:1,maxFontSizeMultiplier:S??E.settings.maxFontSizeMultiplier??1.2,style:[A.label,G?A.labelInline:null,{color:i,opacity:G?d:h,fontWeight:t?E.weight.semibold:E.weight.normal},N],children:e.label}):null,v=(0,_jsxRuntime.jsx)(_reactNative.Pressable,{onPress:()=>(e=>{W&&B(y),e.key!==r&&!1!==o&&(0,_index2.triggerHaptic)(o);const t=xe.current[e.key];t&&popIcon(t),n(e.key)})(e),accessibilityRole:"tab",accessibilityState:{selected:t},"aria-selected":t,accessibilityLabel:`${e.label}${p}`,accessibilityHint:`Switches to ${e.label}`,hitSlop:{top:6,bottom:6,left:6,right:6},...(0,_hitSlop.hitSlopMarker)({top:6,bottom:6,left:6,right:6}),style:({pressed:e})=>[A.tab,Z?A.tabTile:null,e?{opacity:.85}:null],testID:w?`${w}-tab-${e.key}`:void 0,children:G?(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[A.expandPill,{height:L,paddingHorizontal:t&&_?E.space.md:Math.max(0,(L-(C+4))/2)}],children:[(0,_jsxRuntime.jsx)(_reactNative.View,{pointerEvents:"none",style:[A.expandFill,{borderRadius:activeBgRadius(L,L/2),..._corners.smoothCorners,backgroundColor:t?Te["primary-soft"]:"transparent"},t?j:null]}),b,f]}):(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[b,f]})},e.key);return G?(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:{flex:d.interpolate({inputRange:[0,1],outputRange:[1,_?1.5:1]})},children:v},e.key):v}),nt?[...ct.slice(0,ne),nt,...ct.slice(ne)]:ct),"underline"===l&&he>0?(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{pointerEvents:"none",style:[A.underline,"top"===c?A.underlineTop:A.underlineBottom,"top"===c?{top:-He-X}:{bottom:-He},{width:he,height:3,backgroundColor:Te.primary,transform:[{translateX:Ae}]},j]}):null]});var ct;return(0,_jsxRuntime.jsx)(_reactNative.View,{ref:t,testID:w,accessibilityRole:"tablist",style:[A.outer,{paddingHorizontal:Pe,paddingTop:Math.max(We,rt),paddingBottom:Ue},R],children:(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[Y?A.floatingBar:A.dockedBar,q?A.barInline:null,Qe,{backgroundColor:De,borderColor:tt,borderRadius:Ze,..._corners.smoothCorners},Y?{borderWidth:et,paddingHorizontal:Oe,paddingVertical:He}:{borderTopWidth:et,borderBottomWidth:et,borderLeftWidth:et,borderRightWidth:et,paddingHorizontal:Ke,paddingTop:He,paddingBottom:qe}],children:[st,lt]})})});BottomNavigation.displayName="BottomNavigation";const buildStyles=e=>_reactNative.StyleSheet.create({outer:{backgroundColor:"transparent"},dockedBar:{paddingHorizontal:e.space.xs},floatingBar:{paddingVertical:e.space.sm,paddingHorizontal:e.space.sm},tabRow:{flexDirection:"row",alignItems:"stretch",position:"relative"},tabRowInline:{flex:1},barInline:{flexDirection:"row",alignItems:"center"},accessoryStacked:{marginBottom:e.space.xs},accessoryInline:{flexShrink:0,marginRight:e.space.xs},tab:{flex:1,minHeight:44,alignItems:"center",justifyContent:"center",paddingVertical:e.space.xs,gap:e.space.xs},tabTile:{paddingVertical:e.space.sm,gap:e.space.xxs},centerCell:{flex:1,minHeight:44,alignItems:"center",justifyContent:"center"},centerPressable:{alignItems:"center",maxWidth:"100%",gap:e.space.xs},centerCircle:{alignItems:"center",justifyContent:"center"},iconWrap:{alignItems:"center",justifyContent:"center",position:"relative"},label:{fontSize:e.text.xs.size,lineHeight:e.text.xs.size*e.leading.heading,textAlign:"center",includeFontPadding:!1},labelInline:{fontSize:e.text.sm.size,lineHeight:e.text.sm.size*e.leading.heading,flexShrink:1,includeFontPadding:!1},expandPill:{flexDirection:"row",alignItems:"center",justifyContent:"center",gap:e.space.xs},expandFill:{position:"absolute",top:0,right:0,bottom:0,left:0,overflow:"hidden"},pill:{position:"absolute",left:0},bubble:{position:"absolute",left:0,borderWidth:3},underline:{position:"absolute",left:0,height:3},underlineBottom:{borderTopLeftRadius:e.radius.none,borderTopRightRadius:e.radius.none,..._corners.smoothCorners},underlineTop:{borderBottomLeftRadius:e.radius.none,borderBottomRightRadius:e.radius.none,..._corners.smoothCorners},badgePill:{position:"absolute",top:-4,right:-8,minWidth:18,height:18,borderRadius:e.radius.pill,..._corners.smoothCorners,paddingHorizontal:e.space.xs,paddingVertical:e.space.xxs,alignItems:"center",justifyContent:"center",borderWidth:1.5},badgeDot:{position:"absolute",top:-2,right:-2,width:10,height:10,borderRadius:e.radius.pill,..._corners.smoothCorners,borderWidth:1.5},badgeText:{fontSize:e.text.xs.size,fontWeight:"700",lineHeight:13,textAlign:"center",includeFontPadding:!1}});var _default=exports.default=BottomNavigation;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Button=void 0;var cache,_react=_interopRequireWildcard(require("react")),_reactNative=require("react-native"),_useFlickGuard=require("../../hooks/useFlickGuard.js"),_usePressAnimation=require("../../hooks/usePressAnimation.js"),_index=require("../../theme/index.js"),_animatedValue=require("../../theme/animatedValue.js"),_ariaState=require("../../utils/ariaState.js"),_color=require("../../utils/color.js"),_corners=require("../../utils/corners.js"),_hapticUtils=require("../../utils/hapticUtils.js"),_hitSlop=require("../../utils/hitSlop.js"),_slotIcon=require("../AppIcon/slotIcon.js"),_index2=require("../Spinner/index.js"),_SquircleFill=require("../SquircleFill/SquircleFill.js"),_jsxRuntime=require("react/jsx-runtime");function _interopRequireWildcard(e,t){if(!t&&e&&e.__esModule)return e;var r,o,s=Object.defineProperty,i={__proto__:null,default:e};if(Object(e)!==e)return i;if(cache||"function"!=typeof WeakMap||(cache=new WeakMap),cache){if(cache.has(e))return cache.get(e);cache.set(e,i)}for(o in e)"default"!==o&&{}.hasOwnProperty.call(e,o)&&((r=s&&Object.getOwnPropertyDescriptor(e,o))&&(r.get||r.set)?s(i,o,r):i[o]=e[o]);return i}const Button=exports.Button=(0,_react.forwardRef)((e,t)=>{const{title:r,children:o,variant:s="solid",tone:i="primary",size:n="md",loading:
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Button=void 0;var cache,_react=_interopRequireWildcard(require("react")),_reactNative=require("react-native"),_useFlickGuard=require("../../hooks/useFlickGuard.js"),_usePressAnimation=require("../../hooks/usePressAnimation.js"),_index=require("../../theme/index.js"),_animatedValue=require("../../theme/animatedValue.js"),_ariaState=require("../../utils/ariaState.js"),_color=require("../../utils/color.js"),_corners=require("../../utils/corners.js"),_hapticUtils=require("../../utils/hapticUtils.js"),_hitSlop=require("../../utils/hitSlop.js"),_slotIcon=require("../AppIcon/slotIcon.js"),_index2=require("../Spinner/index.js"),_SquircleFill=require("../SquircleFill/SquircleFill.js"),_jsxRuntime=require("react/jsx-runtime");function _interopRequireWildcard(e,t){if(!t&&e&&e.__esModule)return e;var r,o,s=Object.defineProperty,i={__proto__:null,default:e};if(Object(e)!==e)return i;if(cache||"function"!=typeof WeakMap||(cache=new WeakMap),cache){if(cache.has(e))return cache.get(e);cache.set(e,i)}for(o in e)"default"!==o&&{}.hasOwnProperty.call(e,o)&&((r=s&&Object.getOwnPropertyDescriptor(e,o))&&(r.get||r.set)?s(i,o,r):i[o]=e[o]);return i}const Button=exports.Button=(0,_react.forwardRef)((e,t)=>{const{title:r,children:o,variant:s="solid",tone:i="primary",size:n="md",loading:l=!1,disabled:a=!1,fullWidth:c=!1,leftIcon:d,rightIcon:u,iconVariant:b,leftIconBadge:g=!1,haptic:_,rounded:h=!1,gradient:p,style:f,containerStyle:x,textStyle:m,pressAnimation:y,onPress:j,accessibilityLabel:v,accessibilityHint:S,accessibilityState:C,testID:I,onLayout:k,...R}=e;if(__DEV__&&hasTextChild(o))throw new Error('[@webority/mobile-ui] Button was given its label as text children. Pass it as `title` (<Button title="Save" />): text children draw a blank button with no accessible name.');const w=(0,_index.useTheme)(),F=!a&&!l,T={...C,disabled:!F,busy:l},N="link"===s,q=y??(!N&&"scale"),L=(0,_usePressAnimation.usePressAnimation)({preset:q||"scale",enabled:!1!==q&&F}),O=(0,_useFlickGuard.useFlickGuard)(),P=(0,_react.useMemo)(()=>buildStyles(w),[w]),W=(0,_react.useMemo)(()=>(0,_index.resolveButtonSize)(w,n),[w,n]),V=(0,_react.useMemo)(()=>toneFor(w,i),[w,i]),A=(0,_react.useMemo)(()=>variantFor(w,s,V,a),[w,s,V,a]),B=(0,_react.useMemo)(()=>!p||a||"solid"!==s?null:"string"==typeof p?w.settings.gradients[p]??null:p,[p,a,s,w.settings.gradients]),z=_reactNative.StyleSheet.flatten(f)?.borderRadius,D=N?0:"number"==typeof z?z:h?w.radius.pill:W.radius,M=(0,_SquircleFill.useSquircle)(!B&&"link"!==s,D,k),E=(0,_react.useRef)((0,_animatedValue.createAnimatedValue)(0)).current,[H,U]=(0,_react.useState)(0),[G,K]=(0,_react.useState)(null),X=N?e=>U(e.nativeEvent.layout.width):void 0,Y=v??r,J="outline"===s||"ghost"===s,Q=!J&&!N,Z={color:A.textColor,size:W.icon,disabled:a},$=g&&!N&&Boolean(d),ee=w.space.xs,te=W["min-height"]-2*ee-2*A.borderWidth,re={color:A.badgeInk,size:W["badge-icon"],disabled:a},oe=l?(0,_jsxRuntime.jsx)(_index2.Spinner,{variant:"circular",size:"sm",color:$?A.badgeInk:A.textColor,accessibilityLabel:"Loading"}):d?(0,_slotIcon.renderSlotIcon)(d,$?re:Z,b):null,se=(0,_jsxRuntime.jsxs)(_reactNative.View,{style:P.contentRow,children:[$?(0,_jsxRuntime.jsx)(_reactNative.View,{testID:"button-icon-badge",style:[P.iconLeft,P.iconBadge,{width:te,height:te,borderRadius:te/2,backgroundColor:A.badgeFill}],children:oe}):oe?(0,_jsxRuntime.jsx)(_reactNative.View,{style:P.iconLeft,children:oe}):null,r?(0,_jsxRuntime.jsxs)(_reactNative.View,{onLayout:X,children:[(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[P.label,{color:A.textColor,fontSize:W.text,...(0,_index.fontFor)(w,"semibold")},m],numberOfLines:1,children:r}),N?(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{pointerEvents:"none",testID:"button-link-underline",style:[P.linkUnderline,{backgroundColor:A.textColor,transform:[{translateX:E.interpolate({inputRange:[0,1],outputRange:[-H/2,0]})},{scaleX:E.interpolate({inputRange:[0,1],outputRange:[0,1]})}]}]}):null]}):o,u?(0,_jsxRuntime.jsx)(_reactNative.View,{style:P.iconRight,children:(0,_slotIcon.renderSlotIcon)(u,Z,b)}):null]}),ie=N?null===G?LINK_HIT_SLOP:Math.max(LINK_HIT_SLOP,touchSlopFor(G)):touchSlopFor(W["min-height"]),ne={top:ie,bottom:ie,left:N?LINK_HIT_SLOP:0,right:N?LINK_HIT_SLOP:0};return(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:[L.style,c?P.fullWidth:null,x],children:(0,_jsxRuntime.jsx)(_reactNative.Pressable,{ref:t,onPress:e=>{F&&!O.isFlick(e)&&(L.press(),_&&(0,_hapticUtils.triggerHaptic)(_),j?.(e))},onPressIn:e=>{O.onPressIn(e),L.pressIn(),N&&F&&(E.stopAnimation(),E.setValue(0),_reactNative.Animated.timing(E,{toValue:1,duration:w.motion.duration.slower,easing:_reactNative.Easing.bezier(...w.motion.ease.decelerate),useNativeDriver:!0}).start())},onPressOut:()=>{L.pressOut()},disabled:!F,hitSlop:ne,...(0,_hitSlop.hitSlopMarker)(ne),accessibilityRole:"button",accessibilityLabel:Y,accessibilityHint:S,accessibilityState:T,...(0,_ariaState.ariaFromState)(T),testID:I,onLayout:e=>{M.onLayout(e),N&&K(e.nativeEvent.layout.height)},style:({pressed:e})=>[P.base,{paddingHorizontal:N?0:W["padding-x"],paddingVertical:N?0:$?ee:W["padding-y"],paddingLeft:$?ee:void 0,minHeight:N?void 0:W["min-height"],borderRadius:D,..._corners.smoothCorners,backgroundColor:B||M.active?"transparent":A.backgroundColor,borderWidth:A.borderWidth,borderColor:M.active?"transparent":A.borderColor,opacity:l?.55:1,overflow:M.active||N?"visible":"hidden"},e&&J&&!M.active?{backgroundColor:w.colors["surface-pressed"]}:null,c?P.fullWidth:null,f],...R,"aria-disabled":!F,"aria-busy":l,children:({pressed:e})=>(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[M.active&&M.size?(0,_jsxRuntime.jsx)(_SquircleFill.SquircleFill,{width:M.size.width,height:M.size.height,radius:D,fill:e&&J?w.colors["surface-pressed"]:A.backgroundColor,stroke:A.borderColor,strokeWidth:A.borderWidth,outset:A.borderWidth}):null,B?(0,_jsxRuntime.jsx)(_index.Gradient,{gradient:B,style:[_reactNative.StyleSheet.absoluteFill,{borderRadius:D,..._corners.smoothCorners}]}):null,e&&Q?M.active&&M.size?(0,_jsxRuntime.jsx)(_SquircleFill.SquircleFill,{width:M.size.width,height:M.size.height,radius:D,fill:A.pressedTint,outset:A.borderWidth,testID:"button-pressed"}):(0,_jsxRuntime.jsx)(_reactNative.View,{pointerEvents:"none",style:[P.pressedOverlay,{borderRadius:D,backgroundColor:A.pressedTint,..._corners.smoothCorners}],testID:"button-pressed"}):null,se]})})})});Button.displayName="Button";const hasTextChild=e=>_react.default.Children.toArray(e).some(e=>"string"==typeof e||"number"==typeof e),SOFT_FILL_OPACITY=.14,toneFor=(e,t)=>{switch(t){case"primary":return{base:e.colors.primary,outline:e.colors.primary,on:e.colors["on-primary"],fg:e.colors["primary-text"],soft:(0,_color.tintOf)(e.colors.primary,.14,e.colors["primary-soft"])};case"secondary":return{base:e.colors.neutral,outline:e.colors.border,on:e.colors["on-neutral"],fg:e.colors["on-neutral"],soft:e.colors.neutral};case"success":return{base:e.colors.success,outline:e.colors.success,on:e.colors["on-success"],fg:e.colors["success-text"],soft:(0,_color.tintOf)(e.colors.success,.14,e.colors["bg-subtle"])};case"warning":return{base:e.colors.warning,outline:e.colors.warning,on:e.colors["on-warning"],fg:e.colors["warning-text"],soft:(0,_color.tintOf)(e.colors.warning,.14,e.colors["bg-subtle"])};case"danger":return{base:e.colors.danger,outline:e.colors.danger,on:e.colors["on-danger"],fg:e.colors["danger-text"],soft:(0,_color.tintOf)(e.colors.danger,.14,e.colors["bg-subtle"])};default:return{base:e.colors["bg-muted"],outline:e.colors.border,on:e.colors["text-body"],fg:e.colors["text-body"],soft:e.colors["bg-subtle"]}}},BUTTON_BORDER_WIDTH=1,MIN_TOUCH_TARGET=44,LINK_HIT_SLOP=8,touchSlopFor=e=>Math.max(0,Math.ceil((44-e)/2)),variantFor=(e,t,r,o)=>{const s=o?e.colors["text-disabled"]:r.fg,i={badgeFill:e.colors["surface-disabled"],badgeInk:e.colors["text-disabled"]},n=o?i:{badgeFill:r.on,badgeInk:r.base},l=o?i:{badgeFill:r.base,badgeInk:r.on};switch(t){case"solid":return{backgroundColor:o?e.colors["surface-disabled"]:r.base,borderColor:"transparent",borderWidth:1,textColor:o?e.colors["text-disabled"]:r.on,pressedTint:e.colors["surface-pressed"],...n};case"soft":return{backgroundColor:o?e.colors["surface-disabled"]:r.soft,borderColor:"transparent",borderWidth:1,textColor:s,pressedTint:e.colors["surface-pressed"],...l};case"outline":return{backgroundColor:"transparent",borderColor:o?e.colors.border:r.outline,borderWidth:1,textColor:s,pressedTint:e.colors["surface-pressed"],...l};case"ghost":return{backgroundColor:"transparent",borderColor:"transparent",borderWidth:1,textColor:s,pressedTint:e.colors["surface-pressed"],...l};case"link":return{backgroundColor:"transparent",borderColor:"transparent",borderWidth:0,textColor:o?e.colors["text-disabled"]:e.colors.link,pressedTint:e.colors["surface-pressed"],...l};case"glass":return{backgroundColor:e.colors["glass-fill"],borderColor:e.colors["glass-border"],borderWidth:1,textColor:o?e.colors["text-disabled"]:e.colors["on-glass"],pressedTint:_color.ACCENT_PRESSED_TINT,badgeFill:e.colors["glass-badge"],badgeInk:o?e.colors["text-disabled"]:r.base};default:return{backgroundColor:r.base,borderColor:"transparent",borderWidth:1,textColor:r.on,pressedTint:e.colors["surface-pressed"],...n}}},buildStyles=e=>_reactNative.StyleSheet.create({pressedOverlay:{position:"absolute",top:0,right:0,bottom:0,left:0},base:{alignItems:"center",justifyContent:"center",flexDirection:"row",overflow:"hidden"},contentRow:{flexDirection:"row",alignItems:"center",justifyContent:"center"},label:{textAlign:"center",includeFontPadding:!1,textAlignVertical:"center"},linkUnderline:{height:1.5,marginTop:1},iconLeft:{marginRight:e.space.sm},iconBadge:{alignItems:"center",justifyContent:"center"},iconRight:{marginLeft:e.space.sm},fullWidth:{alignSelf:"stretch"}});var _default=exports.default=Button;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Calendar=void 0;var _react=require("react"),_reactNative=require("react-native"),_index=require("../../hooks/index.js"),_index2=require("../../theme/index.js"),_index3=require("../../utils/index.js"),_CalendarDay=require("./CalendarDay.js"),_calendarDates=require("./calendarDates.js"),_calendarStyles=require("./calendarStyles.js"),_jsxRuntime=require("react/jsx-runtime");const DEFAULT_TONE={holiday:"danger",event:"primary",pending:"warning"},MAX_DOTS=3,DAY_TEXT_MAX_SCALE=1.5,toneColor=(e,t)=>{switch(t){case"success":return e.colors.success;case"warning":return e.colors.warning;case"danger":return e.colors.danger;case"info":return e.colors.info;case"primary":return e.colors.primary;default:return e.colors["text-muted"]}},toneInk=(e,t)=>"neutral"===t?e.colors["text-muted"]:e.colors[`${t}-text`],Calendar=exports.Calendar=(0,_react.forwardRef)((e,t)=>{const{mode:a="single",value:r,onChange:
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Calendar=void 0;var _react=require("react"),_reactNative=require("react-native"),_index=require("../../hooks/index.js"),_index2=require("../../theme/index.js"),_index3=require("../../utils/index.js"),_hitSlop=require("../../utils/hitSlop.js"),_CalendarDay=require("./CalendarDay.js"),_calendarDates=require("./calendarDates.js"),_calendarStyles=require("./calendarStyles.js"),_jsxRuntime=require("react/jsx-runtime");const DEFAULT_TONE={holiday:"danger",event:"primary",pending:"warning"},MAX_DOTS=3,DAY_TEXT_MAX_SCALE=1.5,toneColor=(e,t)=>{switch(t){case"success":return e.colors.success;case"warning":return e.colors.warning;case"danger":return e.colors.danger;case"info":return e.colors.info;case"primary":return e.colors.primary;default:return e.colors["text-muted"]}},toneInk=(e,t)=>"neutral"===t?e.colors["text-muted"]:e.colors[`${t}-text`],Calendar=exports.Calendar=(0,_react.forwardRef)((e,t)=>{const{mode:a="single",value:r,onChange:i,month:n,onMonthChange:s,minDate:l,maxDate:o,disabledDates:c,weekStartsOn:d=0,locale:u="en-IN",markedDates:_,strikeMarkedInRange:m=!1,cellSize:h,haptic:y,accessibilityLabel:x,style:g,headerLabelStyle:p,navButtonStyle:v,testID:D}=e,b=(0,_index2.useTheme)(),f=(0,_index.usePresenceMotion)(),M=(0,_react.useMemo)(()=>(0,_calendarStyles.buildCalendarStyles)(b),[b]),[N,j]=(0,_index.useControllableState)({value:n?(0,_calendarDates.startOfMonth)(n):void 0,defaultValue:(0,_calendarDates.startOfMonth)(r?.start??new Date),onChange:s}),S=12*N.getFullYear()+N.getMonth(),k=r?.start?(0,_calendarDates.startOfDay)(r.start):null,w="range"===a&&r?.end?(0,_calendarDates.startOfDay)(r.end):null,T=k?.getTime()??null,R=w?.getTime()??null,C=(0,_calendarDates.toIso)(new Date),I=l?(0,_calendarDates.startOfDay)(l).getTime():null,L=o?(0,_calendarDates.startOfDay)(o).getTime():null,A=(0,_react.useMemo)(()=>new Set((c??[]).map(e=>(0,_calendarDates.toIso)(e))),[c]),E=(0,_react.useCallback)(e=>null!==I&&e.getTime()<I||null!==L&&e.getTime()>L||A.has((0,_calendarDates.toIso)(e)),[I,L,A]),V=(0,_react.useMemo)(()=>{const e=new Map;for(const t of _??[]){const a=(0,_calendarDates.toIso)(t.date);let r=e.get(a);r||(r={dots:[],holiday:!1,spoken:[]},e.set(a,r));const i=t.tone??DEFAULT_TONE[t.kind],n=toneColor(b,i);r.dots.length<3&&r.dots.push({key:`${t.kind}-${r.dots.length}`,color:n}),"holiday"===t.kind&&(r.holiday=!0,r.holidayInk??=toneInk(b,i)),t.label&&r.spoken.push(t.label),r.spoken.push(t.kind)}return e},[_,b]),O=(0,_react.useMemo)(()=>(0,_calendarDates.buildMonthMatrix)(new Date(Math.floor(S/12),S%12,1),d),[S,d]),F=(0,_react.useMemo)(()=>(0,_calendarDates.weekdayLabels)(u,d),[u,d]),q=(0,_react.useMemo)(()=>new Intl.DateTimeFormat(u,{month:"long",year:"numeric"}),[u]),P=(0,_react.useMemo)(()=>new Intl.DateTimeFormat(u,{weekday:"short",day:"numeric",month:"long"}),[u]),z=q.format(N),B=null===I||(0,_calendarDates.startOfMonth)(new Date(I)).getTime()<N.getTime(),H=null===L||(0,_calendarDates.startOfMonth)(new Date(L)).getTime()>N.getTime(),X=(0,_react.useRef)((0,_index2.createAnimatedValue)(0)).current,$=(0,_react.useRef)((0,_index2.createAnimatedValue)(1)).current,Z=(0,_react.useRef)(null);(0,_react.useEffect)(()=>()=>Z.current?.stop(),[]);const U=(0,_react.useCallback)(e=>{!1!==y&&(0,_index3.triggerHaptic)("impactLight");const t=b.motion.duration.fast,a=b.motion.duration.fast,[r]=f.range(32*-e,0),[i]=f.range(32*e,0),n=f.reduced?f.duration("fast"):t,s=f.reduced?f.duration("fast"):a;Z.current?.stop(),Z.current=_reactNative.Animated.sequence([_reactNative.Animated.parallel([_reactNative.Animated.timing(X,{toValue:r,duration:t,easing:_reactNative.Easing.out(_reactNative.Easing.quad),useNativeDriver:!0}),_reactNative.Animated.timing($,{toValue:0,duration:n,useNativeDriver:!0})]),_reactNative.Animated.timing(X,{toValue:i,duration:0,useNativeDriver:!0}),_reactNative.Animated.parallel([_reactNative.Animated.timing(X,{toValue:0,duration:a,easing:_reactNative.Easing.out(_reactNative.Easing.cubic),useNativeDriver:!0}),_reactNative.Animated.timing($,{toValue:1,duration:s,useNativeDriver:!0})])]),Z.current.start();const l=(0,_calendarDates.addMonths)(N,e);j(l),_reactNative.AccessibilityInfo.announceForAccessibility(q.format(l))},[y,N,$,q,X,f,j,b]),Y=(0,_react.useCallback)(()=>U(-1),[U]),G=(0,_react.useCallback)(()=>U(1),[U]),pressDay=e=>{if(E(e.date))return;const t=(0,_index3.resolveHaptic)(y,"selection");t&&(0,_index3.triggerHaptic)(t);const r=e.date;"single"===a||!k||w||r.getTime()<k.getTime()?i({start:r}):i({start:k,end:r}),e.inMonth||j((0,_calendarDates.startOfMonth)(r))},W=(0,_react.useRef)(pressDay);(0,_react.useLayoutEffect)(()=>{W.current=pressDay});const J=(0,_react.useCallback)(e=>W.current(e),[]),K=void 0===h?void 0:Math.max(h,_calendarStyles.MIN_CELL_SIZE),Q=(0,_react.useMemo)(()=>void 0===K?{flex:1}:{width:K},[K]),ee=(0,_react.useMemo)(()=>void 0===K?{flex:1,aspectRatio:1,minHeight:_calendarStyles.MIN_CELL_SIZE}:{width:K,height:K},[K]),te=Math.max(b.space.sm,(_calendarStyles.MIN_CELL_SIZE-_calendarStyles.NAV_BUTTON_SIZE)/2),ae=Math.min(b.settings.maxFontSizeMultiplier??1.5,1.5),re=[];for(let e=0;e<_calendarDates.GRID_CELLS;e+=7)re.push(O.slice(e,e+7));return(0,_jsxRuntime.jsxs)(_reactNative.View,{ref:t,style:[M.root,g],testID:D,children:[(0,_jsxRuntime.jsxs)(_reactNative.View,{style:M.headerRow,children:[(0,_jsxRuntime.jsx)(_reactNative.Pressable,{onPress:Y,disabled:!B,style:({pressed:e})=>[M.navBtn,e&&M.navBtnPressed,!B&&M.navBtnDisabled,v],accessibilityRole:"button",accessibilityLabel:"Previous month",accessibilityState:{disabled:!B},"aria-disabled":!B,hitSlop:te,...(0,_hitSlop.hitSlopMarker)(te),children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:M.navText,maxFontSizeMultiplier:ae,children:"‹"})}),(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:[M.headerLabelWrap,{opacity:$,transform:[{translateX:X}]},p],children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:M.headerLabel,accessibilityRole:"header",accessibilityLabel:x?`${x}, ${z}`:void 0,maxFontSizeMultiplier:b.settings.maxFontSizeMultiplier,children:z})}),(0,_jsxRuntime.jsx)(_reactNative.Pressable,{onPress:G,disabled:!H,style:({pressed:e})=>[M.navBtn,e&&M.navBtnPressed,!H&&M.navBtnDisabled,v],accessibilityRole:"button",accessibilityLabel:"Next month",accessibilityState:{disabled:!H},"aria-disabled":!H,hitSlop:te,...(0,_hitSlop.hitSlopMarker)(te),children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:M.navText,maxFontSizeMultiplier:ae,children:"›"})})]}),(0,_jsxRuntime.jsx)(_reactNative.View,{style:M.weekdayRow,accessibilityElementsHidden:!0,importantForAccessibility:"no-hide-descendants",children:F.map(({weekday:e,label:t})=>(0,_jsxRuntime.jsx)(_reactNative.View,{style:[M.weekdayCell,Q],children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:M.weekdayText,maxFontSizeMultiplier:ae,children:t})},e))}),(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:{opacity:$,transform:[{translateX:X}]},children:re.map(e=>(0,_jsxRuntime.jsx)(_reactNative.View,{style:M.gridRow,children:e.map(e=>{const t=e.date.getTime(),r=null!==T&&t===T,i=null!==R&&t===R,n=null!==T&&null!==R&&t>=T&&t<=R,s=n&&!r&&!i,l=e.iso===C,o=V.get(e.iso),c=m&&n&&!0===o?.holiday,d=[P.format(e.date),...o?.spoken??[]];return l&&d.push("today"),"range"===a&&(r&&i?d.push("start and end of your range"):r?d.push("start of your range"):i?d.push("end of your range"):s&&d.push("in your range")),c&&d.push("not counted"),(0,_jsxRuntime.jsx)(_CalendarDay.CalendarDay,{cell:e,accessibilityLabel:d.join(", "),disabled:E(e.date),edge:r||i,mid:s,barLeft:n&&(i||s)&&!(r&&i),barRight:n&&(r||s)&&!(r&&i),today:l,struck:c,dots:o?.dots,inkColor:o?.holidayInk,cellStyle:ee,styles:M,maxFontSizeMultiplier:ae,onPressDay:J},e.iso)})},e[0].iso))})]})});Calendar.displayName="Calendar";var _default=exports.default=Calendar;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Checkbox=void 0;var cache,_react=require("react"),_reactNative=require("react-native"),_reactNativeSvg=_interopRequireWildcard(require("react-native-svg")),_index=require("../../hooks/index.js"),_index2=require("../../theme/index.js"),_corners=require("../../utils/corners.js"),_hapticUtils=require("../../utils/hapticUtils.js"),_ChoiceText=require("../FieldBase/ChoiceText.js"),_FieldBase=require("../FieldBase/FieldBase.js"),_jsxRuntime=require("react/jsx-runtime");function _interopRequireWildcard(e,t){if(!t&&e&&e.__esModule)return e;var r,i,s=Object.defineProperty,a={__proto__:null,default:e};if(Object(e)!==e)return a;if(cache||"function"!=typeof WeakMap||(cache=new WeakMap),cache){if(cache.has(e))return cache.get(e);cache.set(e,a)}for(i in e)"default"!==i&&{}.hasOwnProperty.call(e,i)&&((r=s&&Object.getOwnPropertyDescriptor(e,i))&&(r.get||r.set)?s(a,i,r):a[i]=e[i]);return a}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}},toneOnColor=(e,t)=>{switch(t){case"success":return e.colors["on-success"];case"warning":return e.colors["on-warning"];case"danger":return e.colors["on-danger"];default:return e.colors["on-primary"]}},Checkbox=exports.Checkbox=(0,_react.forwardRef)((e,t)=>{const{checked:r,defaultChecked:i,onChange:s,indeterminate:a=!1,disabled:o=!1,label:n,description:
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Checkbox=void 0;var cache,_react=require("react"),_reactNative=require("react-native"),_reactNativeSvg=_interopRequireWildcard(require("react-native-svg")),_index=require("../../hooks/index.js"),_index2=require("../../theme/index.js"),_corners=require("../../utils/corners.js"),_hapticUtils=require("../../utils/hapticUtils.js"),_hitSlop=require("../../utils/hitSlop.js"),_ChoiceText=require("../FieldBase/ChoiceText.js"),_FieldBase=require("../FieldBase/FieldBase.js"),_jsxRuntime=require("react/jsx-runtime");function _interopRequireWildcard(e,t){if(!t&&e&&e.__esModule)return e;var r,i,s=Object.defineProperty,a={__proto__:null,default:e};if(Object(e)!==e)return a;if(cache||"function"!=typeof WeakMap||(cache=new WeakMap),cache){if(cache.has(e))return cache.get(e);cache.set(e,a)}for(i in e)"default"!==i&&{}.hasOwnProperty.call(e,i)&&((r=s&&Object.getOwnPropertyDescriptor(e,i))&&(r.get||r.set)?s(a,i,r):a[i]=e[i]);return a}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}},toneOnColor=(e,t)=>{switch(t){case"success":return e.colors["on-success"];case"warning":return e.colors["on-warning"];case"danger":return e.colors["on-danger"];default:return e.colors["on-primary"]}},Checkbox=exports.Checkbox=(0,_react.forwardRef)((e,t)=>{const{checked:r,defaultChecked:i,onChange:s,indeterminate:a=!1,disabled:o=!1,label:n,description:l,error:c,help:d,labelLines:u,size:h="md",tone:p="primary",accessibilityLabel:x,haptic:_,style:b,boxStyle:m,indeterminateBarStyle:f,containerStyle:g,labelStyle:y,testID:j,hitSlop:v,...w}=e,[C,k]=(0,_index.useControllableState)({value:r,defaultValue:i??!1,onChange:s}),S=(0,_index2.useTheme)(),R=(0,_react.useMemo)(()=>buildStyles(S),[S]),{"box-size":T}=(0,_react.useMemo)(()=>(0,_index2.resolveCheckboxSize)(S,h),[S,h]),N=S.size.border,q=(0,_index2.spaceOf)(S,S.components.checkbox["label-gap"]),F=toneColor(S,p),M=v??6,B=C||a,L=(0,_react.useRef)((0,_index2.createAnimatedValue)(B?1:0)).current;(0,_react.useEffect)(()=>{const e=_reactNative.Animated.spring(L,{toValue:B?1:0,damping:S.motion.spring.snappy.damping,stiffness:S.motion.spring.snappy.stiffness,mass:S.motion.spring.snappy.mass,useNativeDriver:!0});return e.start(),()=>e.stop()},[B,L,S.motion.spring.snappy]);const O=L.interpolate({inputRange:[0,1],outputRange:[0,1]}),D=x??(0,_FieldBase.fieldTextAsString)(n),P=!0===c||(0,_FieldBase.hasFieldText)(c),V=B?F:o?S.colors.border:P?S.colors["field-border-error"]:S.colors.border,W=B?F:o?S.colors["surface-disabled"]:"transparent",I=o&&!B?S.colors["text-disabled"]:toneOnColor(S,p),A=Math.round(.72*T),z=Math.round(.55*T),H=Math.max(2,Math.round(.12*T)),U=(0,_jsxRuntime.jsxs)(_reactNative.Pressable,{ref:t,onPress:e=>{if(o)return;const t=(0,_hapticUtils.resolveHaptic)(_,"selection");t&&(0,_hapticUtils.triggerHaptic)(t),k(!C),w.onPressOut?.(e)},disabled:o,accessibilityRole:"checkbox",accessibilityLabel:D,accessibilityHint:w.accessibilityHint??(0,_FieldBase.fieldTextAsString)(l),accessibilityState:{checked:a?"mixed":C,disabled:o},"aria-checked":a?"mixed":C,"aria-disabled":o,testID:j,hitSlop:M,...(0,_hitSlop.hitSlopMarker)(M),...w,style:({pressed:e})=>[R.row,(0,_ChoiceText.hasChoiceDetail)(l,c)?R.rowTop:null,(0,_FieldBase.hasFieldText)(d)?R.rowShrink:null,{opacity:o?.55:e?.85:1},g,b],children:[(0,_jsxRuntime.jsx)(_reactNative.View,{style:[R.box,{width:T,height:T,borderWidth:N,borderRadius:S.radius.sm,..._corners.smoothCorners,borderColor:V,backgroundColor:W},m],children:(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:[R.glyphWrap,{opacity:L,transform:[{scale:O}]}],children:a?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[{width:z,height:H,borderRadius:S.radius.pill,..._corners.smoothCorners,backgroundColor:I},f]}):(0,_jsxRuntime.jsx)(_reactNativeSvg.default,{width:A,height:A,viewBox:"0 0 24 24",children:(0,_jsxRuntime.jsx)(_reactNativeSvg.Path,{d:"M5 12.5l4.5 4.5L19 7.5",stroke:I,strokeWidth:3,strokeLinecap:"round",strokeLinejoin:"round",fill:"none"})})})}),(0,_jsxRuntime.jsx)(_ChoiceText.ChoiceText,{label:n,description:l,error:c,disabled:o,labelLines:u||void 0,descriptionLines:u||void 0,style:{marginLeft:q},labelStyle:y})]});return(0,_FieldBase.hasFieldText)(d)?(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[R.helpRow,(0,_ChoiceText.hasChoiceDetail)(l,c)?R.rowTop:null],children:[U,(0,_jsxRuntime.jsx)(_reactNative.View,{style:[R.help,{marginLeft:S.space.xs}],children:d})]}):U});Checkbox.displayName="Checkbox";const buildStyles=e=>_reactNative.StyleSheet.create({row:{flexDirection:"row",alignItems:"center"},rowTop:{alignItems:"flex-start"},rowShrink:{flexShrink:1},helpRow:{flexDirection:"row",alignItems:"center"},help:{flexShrink:0},box:{alignItems:"center",justifyContent:"center"},glyphWrap:{alignItems:"center",justifyContent:"center"}});var _default=exports.default=Checkbox;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Chip=void 0;var _react=require("react"),_reactNative=require("react-native"),_usePressAnimation=require("../../hooks/usePressAnimation.js"),_index=require("../../theme/index.js"),_color=require("../../utils/color.js"),_corners=require("../../utils/corners.js"),_hapticUtils=require("../../utils/hapticUtils.js"),_slotIcon=require("../AppIcon/slotIcon.js"),_index2=require("../Skeleton/index.js"),_jsxRuntime=require("react/jsx-runtime");const toneFor=(e,r)=>{switch(r){case"primary":return{base:e.colors["primary-soft"],on:e.colors.primary,ink:e.colors["primary-text"],border:e.colors.primary,selectedBg:e.colors["primary-soft"],selectedOn:e.colors.primary,selectedInk:e.colors["primary-text"],selectedBorder:e.colors.primary};case"success":return{base:e.colors["bg-muted"],on:e.colors.success,ink:e.colors["success-text"],border:e.colors.success,selectedBg:e.colors["primary-soft"],selectedOn:e.colors.primary,selectedInk:e.colors["primary-text"],selectedBorder:e.colors.primary};case"warning":return{base:e.colors["bg-muted"],on:e.colors.warning,ink:e.colors["warning-text"],border:e.colors.warning,selectedBg:e.colors["primary-soft"],selectedOn:e.colors.primary,selectedInk:e.colors["primary-text"],selectedBorder:e.colors.primary};case"danger":return{base:e.colors["bg-muted"],on:e.colors.danger,ink:e.colors["danger-text"],border:e.colors.danger,selectedBg:e.colors["primary-soft"],selectedOn:e.colors.primary,selectedInk:e.colors["primary-text"],selectedBorder:e.colors.primary};case"info":return{base:e.colors["bg-muted"],on:e.colors.info,ink:e.colors["info-text"],border:e.colors.info,selectedBg:e.colors["primary-soft"],selectedOn:e.colors.primary,selectedInk:e.colors["primary-text"],selectedBorder:e.colors.primary};default:return{base:e.colors["bg-muted"],on:e.colors["text-body"],ink:e.colors["text-body"],border:e.colors.border,selectedBg:e.colors["primary-soft"],selectedOn:e.colors.primary,selectedInk:e.colors["primary-text"],selectedBorder:e.colors.primary}}},SOFT_FILL_OPACITY=.14,SOFT_SELECTED_FILL_OPACITY=.24,hasChipCount=e=>null!=e&&""!==e,Chip=exports.Chip=(0,_react.forwardRef)((e,r)=>{const{label:t,count:s,selected:o=!1,selectionMode:i="single",onPress:l,onClose:n,leftIcon:c,iconVariant:a,variant:d="filled",tone:u="neutral",size:p="md",disabled:m=!1,loading:
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Chip=void 0;var _react=require("react"),_reactNative=require("react-native"),_usePressAnimation=require("../../hooks/usePressAnimation.js"),_index=require("../../theme/index.js"),_color=require("../../utils/color.js"),_corners=require("../../utils/corners.js"),_hapticUtils=require("../../utils/hapticUtils.js"),_hitSlop=require("../../utils/hitSlop.js"),_slotIcon=require("../AppIcon/slotIcon.js"),_index2=require("../Skeleton/index.js"),_jsxRuntime=require("react/jsx-runtime");const toneFor=(e,r)=>{switch(r){case"primary":return{base:e.colors["primary-soft"],on:e.colors.primary,ink:e.colors["primary-text"],border:e.colors.primary,selectedBg:e.colors["primary-soft"],selectedOn:e.colors.primary,selectedInk:e.colors["primary-text"],selectedBorder:e.colors.primary};case"success":return{base:e.colors["bg-muted"],on:e.colors.success,ink:e.colors["success-text"],border:e.colors.success,selectedBg:e.colors["primary-soft"],selectedOn:e.colors.primary,selectedInk:e.colors["primary-text"],selectedBorder:e.colors.primary};case"warning":return{base:e.colors["bg-muted"],on:e.colors.warning,ink:e.colors["warning-text"],border:e.colors.warning,selectedBg:e.colors["primary-soft"],selectedOn:e.colors.primary,selectedInk:e.colors["primary-text"],selectedBorder:e.colors.primary};case"danger":return{base:e.colors["bg-muted"],on:e.colors.danger,ink:e.colors["danger-text"],border:e.colors.danger,selectedBg:e.colors["primary-soft"],selectedOn:e.colors.primary,selectedInk:e.colors["primary-text"],selectedBorder:e.colors.primary};case"info":return{base:e.colors["bg-muted"],on:e.colors.info,ink:e.colors["info-text"],border:e.colors.info,selectedBg:e.colors["primary-soft"],selectedOn:e.colors.primary,selectedInk:e.colors["primary-text"],selectedBorder:e.colors.primary};default:return{base:e.colors["bg-muted"],on:e.colors["text-body"],ink:e.colors["text-body"],border:e.colors.border,selectedBg:e.colors["primary-soft"],selectedOn:e.colors.primary,selectedInk:e.colors["primary-text"],selectedBorder:e.colors.primary}}},SOFT_FILL_OPACITY=.14,SOFT_SELECTED_FILL_OPACITY=.24,hasChipCount=e=>null!=e&&""!==e,Chip=exports.Chip=(0,_react.forwardRef)((e,r)=>{const{label:t,count:s,selected:o=!1,selectionMode:i="single",onPress:l,onClose:n,leftIcon:c,iconVariant:a,variant:d="filled",tone:u="neutral",size:p="md",disabled:m=!1,loading:h=!1,accessibilityLabel:x,haptic:b,style:y,textStyle:_,containerStyle:g,countStyle:f,closeButtonStyle:S,closeIconStyle:j,testID:C}=e,k=(0,_index.useTheme)(),v=!!l&&!m,I="radio"===i,R=!!l&&(!m||I),w=hasChipCount(s),{style:O,pressIn:z,pressOut:B}=(0,_usePressAnimation.usePressAnimation)({enabled:v}),L=(0,_react.useMemo)(()=>toneFor(k,u),[k,u]),P=(0,_react.useMemo)(()=>(0,_index.resolveChipSize)(k,p),[k,p]),N=Math.max(0,Math.ceil((44-P["min-height"])/2)),M=I?{top:N,bottom:N}:void 0,q="filled"===d,F="soft"===d,T=(()=>{if(F){const e=o?L.selectedOn:L.on,r=o?.24:.14;return(0,_color.tintOf)(e,r,o?L.selectedBg:L.base)}return o?q?L.selectedBg:"transparent":q?L.base:"transparent"})(),A=F?"transparent":o?L.selectedBorder:q?"transparent":L.border,V=m?k.colors["text-disabled"]:o?F?k.colors["text-body"]:L.selectedInk:L.ink,D=q||F?0:k.size.border,handlePress=()=>{if(!v)return;const e=(0,_hapticUtils.resolveHaptic)(b,"selection");e&&(0,_hapticUtils.triggerHaptic)(e),l?.()},H=x??(w?`${t}, ${s}`:t),U=(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.row,children:[c?(0,_jsxRuntime.jsx)(_reactNative.View,{style:{marginRight:P.gap},children:(0,_slotIcon.renderSlotIcon)(c,{color:V,size:P.icon,disabled:m},a)}):null,(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[styles.label,{color:V,fontSize:P.text,...(0,_index.fontFor)(k,"medium")},_],numberOfLines:1,children:t??" "}),w?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[styles.count,{color:V,fontSize:Math.min(k.text.xs.size,P.text),marginLeft:k.space.xs,...(0,_index.fontFor)(k,"normal")},f],numberOfLines:1,children:s}):null,n?(0,_jsxRuntime.jsx)(_reactNative.Pressable,{onPress:()=>{m||(!1!==b&&(0,_hapticUtils.triggerHaptic)("impactLight"),n?.())},disabled:m,accessibilityRole:"button",accessibilityLabel:`Remove ${t}`,accessibilityState:{disabled:m},"aria-disabled":m,hitSlop:6,...(0,_hitSlop.hitSlopMarker)(6),style:({pressed:e})=>[styles.close,{width:P["close-size"],height:P["close-size"],borderRadius:P["close-size"]/2,..._corners.smoothCorners,marginLeft:P.gap,backgroundColor:e?k.colors["surface-pressed"]:k.colors["surface-hover"]},S],children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[{color:V,fontSize:P["close-text"],...(0,_index.fontFor)(k,"bold"),lineHeight:P["close-text"]+2},j],maxFontSizeMultiplier:1,children:"×"})}):null]}),E={paddingHorizontal:P["padding-x"],paddingVertical:P["padding-y"],minHeight:P["min-height"],borderRadius:k.radius.pill,..._corners.smoothCorners,overflow:"hidden",backgroundColor:T,borderWidth:D,borderColor:A,opacity:m?.55:1};let $;return $=R?(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:[O,{alignSelf:"flex-start",borderRadius:k.radius.pill,..._corners.smoothCorners,overflow:"hidden"}],children:(0,_jsxRuntime.jsx)(_reactNative.Pressable,{ref:r,onPress:handlePress,onPressIn:z,onPressOut:B,disabled:!v,accessibilityRole:I?"radio":"multiple"===i?"checkbox":"button",accessibilityLabel:H,accessibilityState:I||"multiple"===i?{checked:o,disabled:m}:{selected:o,disabled:m},"aria-checked":I||"multiple"===i?o:void 0,"aria-selected":I||"multiple"===i?void 0:o,"aria-disabled":m,hitSlop:M,...M?(0,_hitSlop.hitSlopMarker)(M):{},android_ripple:{color:k.colors["surface-pressed"],borderless:!1},testID:C,style:({pressed:e})=>[styles.base,E,e&&"outlined"===d?{backgroundColor:k.colors["surface-pressed"]}:null,g,y],children:U})}):(0,_jsxRuntime.jsx)(_reactNative.View,{ref:r,style:[styles.base,E,g,y],accessible:!0,accessibilityRole:"text",accessibilityLabel:H,accessibilityState:{selected:o,disabled:m},"aria-selected":o,"aria-disabled":m,testID:C,children:U}),h?(0,_jsxRuntime.jsx)(ChipSkeleton,{...e}):$});Chip.displayName="Chip";const ChipSkeleton=({label:e,count:r,size:t="md",leftIcon:s,onClose:o,style:i,containerStyle:l})=>{const n=(0,_index.useTheme)(),c=(0,_index.resolveChipSize)(n,t),a=Math.max(40,Math.min(120,7*(e??"").length)),d=c["min-height"],u=d/2,p=a+2*c["padding-x"]+(hasChipCount(r)?c.gap/2+7*String(r).length:0)+(void 0!==s?c.gap+14:0)+(void 0!==o?c.gap+c["close-size"]:0);return(0,_jsxRuntime.jsx)(_index2.Skeleton,{width:p,height:d,radius:u,style:[{alignSelf:"flex-start"},l,i]})};ChipSkeleton.displayName="ChipSkeleton",Chip.Skeleton=ChipSkeleton;const styles=_reactNative.StyleSheet.create({base:{alignSelf:"flex-start",flexDirection:"row",alignItems:"center",justifyContent:"center"},row:{flexDirection:"row",alignItems:"center"},label:{flexShrink:1,textAlign:"center"},count:{flexShrink:0,fontVariant:["tabular-nums"]},close:{alignItems:"center",justifyContent:"center"}});var _default=exports.default=Chip;
|