@fto-consult/expo-ui 6.82.0 → 6.83.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. package/package.json +2 -2
  2. package/src/components/AppBar/utils.js +1 -1
  3. package/src/components/Avatar/Text.js +1 -1
  4. package/src/components/Avatar/index.js +1 -1
  5. package/src/components/BackToTop/index.js +1 -1
  6. package/src/components/Button/index.js +1 -7
  7. package/src/components/Chip/index.js +2 -8
  8. package/src/components/Color/index.js +1 -1
  9. package/src/components/Datagrid/Accordion/Row.js +1 -1
  10. package/src/components/Datagrid/Accordion/index.js +1 -2
  11. package/src/components/Datagrid/Actions/Header.js +3 -1
  12. package/src/components/Datagrid/Actions/index.js +5 -1
  13. package/src/components/Datagrid/Common/Common.js +7 -1
  14. package/src/components/Datagrid/Common/utils.js +1 -1
  15. package/src/components/Dialog/DropdownAlert/index.js +0 -4
  16. package/src/components/Drawer/DrawerItems/_DrawerItem.js +3 -5
  17. package/src/components/Drawer/DrawerItems/index.js +2 -2
  18. package/src/components/Dropdown/index.js +2 -3
  19. package/src/components/ErrorBoundary/ErrorMessage.js +3 -3
  20. package/src/components/Expandable/Item.js +4 -4
  21. package/src/components/Expandable/index.js +2 -4
  22. package/src/components/Fab/GroupComponent.js +8 -12
  23. package/src/components/Filter/BetweenComponent.js +1 -1
  24. package/src/components/Image/index.js +1 -1
  25. package/src/components/Label/index.js +5 -5
  26. package/src/components/Menu/Item.js +3 -6
  27. package/src/components/Menu/Menu.js +2 -3
  28. package/src/components/Modal/index.js +1 -1
  29. package/src/components/Paragraph/index.js +1 -1
  30. package/src/components/PhoneInput/index.js +1 -1
  31. package/src/components/SimpleSelect/index.js +1 -1
  32. package/src/components/Switch/index.js +1 -1
  33. package/src/components/TextField/index.js +1 -1
  34. package/src/screens/Help/openLibraries.js +1 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fto-consult/expo-ui",
3
- "version": "6.82.0",
3
+ "version": "6.83.0",
4
4
  "description": "Bibliothèque de composants UI Expo,react-native",
5
5
  "main": "main",
6
6
  "scripts": {
@@ -71,7 +71,7 @@
71
71
  "@expo/html-elements": "^0.5.1",
72
72
  "@expo/vector-icons": "^13.0.0",
73
73
  "@faker-js/faker": "^8.0.2",
74
- "@fto-consult/common": "^3.65.11",
74
+ "@fto-consult/common": "^3.65.12",
75
75
  "@pchmn/expo-material3-theme": "^1.3.1",
76
76
  "@react-native-async-storage/async-storage": "1.18.2",
77
77
  "@react-native-community/datetimepicker": "7.2.0",
@@ -33,7 +33,7 @@ const renderAction = ({action,isAlert,actionProps,opts,isAppBarAction,isAppBarAc
33
33
  let {Component,isFormAction,...rest} = action;
34
34
  actionProps = defaultObj(actionProps);
35
35
  rest = Object.assign({},rest);
36
- rest.accessibilityLabel = defaultStr(rest.accessibilityLabel,rest.title,rest.text,rest.label,rest.children);
36
+ rest["aria-label"] = defaultStr(rest["aria-label"],rest.title,rest.text,rest.label,rest.children);
37
37
  const {color} = getThemeColors();
38
38
 
39
39
  rest.style = {...defaultObj(StyleSheet.flatten(actionProps.style)),elevation:0,...defaultObj(StyleSheet.flatten(rest.style))};
@@ -46,7 +46,7 @@ const AvatarTextComponent = (props) => {
46
46
  const onPress = typeof customOnPress =='function' ? customOnPress : undefined;
47
47
  const C = onPress? Pressable : View;
48
48
  return (
49
- <C testID={testID+"_Container"} pointerEvents={onPress?"auto":'none'} {...containerProps} style={[styles.container,style,containerProps.style,textContainerStyle,{borderRadius:size/2}]}>
49
+ <C testID={testID+"_Container"} {...containerProps} style={[{pointerEvents:onPress?"auto":'none'},styles.container,style,containerProps.style,textContainerStyle,{borderRadius:size/2}]}>
50
50
  { <Text
51
51
  testID={testID}
52
52
  style={[{
@@ -40,7 +40,7 @@ const AvatarComponent = React.forwardRef((props,ref)=>{
40
40
  handleOnPress = true;
41
41
  } else if(label){
42
42
  cProps.label = label;
43
- cProps.pointerEvents = "none";
43
+ cProps.style = [cProps.style,{pointerEvents:"none"}];
44
44
  cProps.labelStyle = StyleSheet.flatten(cProps.labelStyle) || {};
45
45
  Component = Text;
46
46
  }
@@ -58,7 +58,7 @@ const BackToTopComponent = React.forwardRef((props,ref)=>{
58
58
  },[])
59
59
  return !visible ? null : <Fab
60
60
  {...rest}
61
- accessibilityLabel = {defaultStr(rest.accessibilityLabel,'Retour en haut')}
61
+ aria-label = {defaultStr(rest["aria-label"],'Retour en haut')}
62
62
  onPress = {(e)=>{
63
63
  React.stopEventPropagation(e);
64
64
  if(onPress){
@@ -31,7 +31,6 @@ const ButtonComponent = React.forwardRef((prs,ref) => {
31
31
  isCancelButton,
32
32
  error,
33
33
  upperCase = true,
34
- accessibilityLabel,
35
34
  onPress,
36
35
  iconPosition,
37
36
  iconBefore,
@@ -239,7 +238,6 @@ const ButtonComponent = React.forwardRef((prs,ref) => {
239
238
  onLongPress={onLongPress}
240
239
  onPressIn={handlePressIn}
241
240
  onPressOut={handlePressOut}
242
- accessibilityLabel={accessibilityLabel}
243
241
  // @ts-expect-error We keep old a11y props for backwards compat with old RN versions
244
242
  accessibilityTraits={disabled ? ['button', 'disabled'] : 'button'}
245
243
  accessibilityComponentType="button"
@@ -289,7 +287,7 @@ const ButtonComponent = React.forwardRef((prs,ref) => {
289
287
  />
290
288
  ) : null}
291
289
  <Label
292
- selectable={false}
290
+ userSelect={false}
293
291
  numberOfLines={1}
294
292
  testID = {testID+"_Label"}
295
293
  {...labelProps}
@@ -420,10 +418,6 @@ ButtonComponent.propTypes = {
420
418
  * Make the label text upperCased. Note that this won't work if you pass React elements as children.
421
419
  */
422
420
  upperCase:PropTypes.bool,
423
- /**
424
- * Accessibility label for the button. This is read by the screen reader when the user taps the button.
425
- */
426
- accessibilityLabel:PropTypes.string,
427
421
  /**
428
422
  * Function to execute on press.
429
423
  */
@@ -21,7 +21,6 @@ const ChipComponent = React.forwardRef(({
21
21
  avatar,
22
22
  selected = false,
23
23
  disabled = false,
24
- accessibilityLabel,
25
24
  closeIconAccessibilityLabel = 'Close',
26
25
  onPress,
27
26
  onLongPress,
@@ -127,7 +126,6 @@ const ChipComponent = React.forwardRef(({
127
126
  onPressOut={handlePressOut}
128
127
  underlayColor={underlayColor}
129
128
  disabled={disabled}
130
- accessibilityLabel={accessibilityLabel}
131
129
  // @ts-expect-error We keep old a11y props for backwards compat with old RN versions
132
130
  accessibilityTraits={accessibilityTraits}
133
131
  accessibilityComponentType="button"
@@ -172,11 +170,11 @@ const ChipComponent = React.forwardRef(({
172
170
  </View>
173
171
  ) : null}
174
172
  <Text
175
- selectable={false}
176
173
  numberOfLines={1}
177
174
  testID={testID+"_Text"}
178
175
  {...labelProps}
179
176
  style={StyleSheet.flatten([
177
+ {userSelect:"none"},
180
178
  styles.text,
181
179
  {
182
180
  ...theme.fonts.regular,
@@ -201,7 +199,7 @@ const ChipComponent = React.forwardRef(({
201
199
  accessibilityTraits="button"
202
200
  accessibilityComponentType="button"
203
201
  //role="button"
204
- accessibilityLabel={closeIconAccessibilityLabel}
202
+ aria-label={closeIconAccessibilityLabel}
205
203
  testID={testID+"_CloseButtonRipple"}
206
204
  >
207
205
  <View testID={testID+"_ContentContainer"} style={[styles.icon, styles.closeIcon]}>
@@ -313,10 +311,6 @@ ChipComponent.propTypes = {
313
311
  * Whether the chip is disabled. A disabled chip is greyed out and `onPress` is not called on touch.
314
312
  */
315
313
  disabled: PropTypes.bool,
316
- /**
317
- * Accessibility label for the chip. This is read by the screen reader when the user taps the chip.
318
- */
319
- accessibilityLabel: PropTypes.string,
320
314
  /**
321
315
  * Accessibility label for the close icon. This is read by the screen reader when the user taps the close icon.
322
316
  */
@@ -72,7 +72,7 @@ const ColorPickerComponent = React.forwardRef ((props,ref)=>{
72
72
  //role="button"
73
73
  disabled = {!isEditable}
74
74
  pointerEvents = {pointerEvents}
75
- accessibilityLabel={defaultStr(label,text)}
75
+ aria-label={defaultStr(label,text)}
76
76
  style = {[styles.container,containerProp]}
77
77
  onPress={openPicker}
78
78
  rippleColor={rippleColor}
@@ -146,7 +146,7 @@ const DatagridAccordionRow = React.forwardRef((props,ref)=>{
146
146
  {title}
147
147
  {description}
148
148
  </View>
149
- {right && React.isValidElement(right,true) ? <Label testID={testID+"_Right"} primary selectable {...rightProps} style={[styles.right,styles.label,rStyles.lineHeight,rightProps.style]}>
149
+ {right && React.isValidElement(right,true) ? <Label testID={testID+"_Right"} primary {...rightProps} style={[{userSelect:selectable?"all":"none"},styles.right,styles.label,rStyles.lineHeight,rightProps.style]}>
150
150
  {right}
151
151
  </Label> : null}
152
152
  </View>
@@ -364,12 +364,11 @@ const DatagridFactory = (Factory)=>{
364
364
  const labelStyle = Object.assign({},StyleSheet.flatten(titleProps.style));
365
365
  const titleColor = Colors.isValid(labelStyle.color)? labelStyle.color : Colors.isValid(titleProps.color)? titleProps.color : Colors.setAlpha(theme.colors.text,0.87);
366
366
  this.accordionTitleProps = {
367
- selectable: true,
368
367
  ellipsizeMode: EllipsizeMode.tail,
369
368
  numberOfLines : 1,
370
369
  ...titleProps,
371
370
  color: titleColor,
372
- style : [styles.title,rStyles.lineHeight,titleProps.style]
371
+ style : [styles.title,{userSelect:"all"},rStyles.lineHeight,titleProps.style]
373
372
  }
374
373
  filter = defaultFunc(filter,x=>true);
375
374
  const showFooters = this.canShowFooters();
@@ -12,7 +12,7 @@ const selectedTitle ='#f50057';
12
12
 
13
13
  export const getSelectedBackgroundColor = x=> theme.isDark()?theme.colors.surface : selectedBackgroundColor;
14
14
 
15
- export default function DatagridActionsHeaderComponent({title,selected,testID,children,style,pointerEvents,...props}) {
15
+ export default function DatagridActionsHeaderComponent({title,leftActions,selected,testID,children,style,pointerEvents,...props}) {
16
16
  title = React.isValidElement(title,true)? title : "";
17
17
  const bStyle = selected && theme.isDark()? {
18
18
  borderBottomColor : theme.colors.divider,
@@ -26,6 +26,7 @@ export default function DatagridActionsHeaderComponent({title,selected,testID,ch
26
26
  {title ? <Label testID={testID+"Label"} style={[styles.title,selected?[styles.selectedTitle,{color:!theme.isDark()?selectedTitle:theme.colors.primaryOnSurface}]:undefined]}>
27
27
  {title}
28
28
  </Label> : null}
29
+ {React.isValidElement(leftActions) ? leftActions : null}
29
30
  {React.isValidElement(children) && <View testID={testID+"_Content"} style={[styles.children,styles.row]}>
30
31
  {children}
31
32
  </View>}
@@ -38,6 +39,7 @@ const styles = StyleSheet.create({
38
39
  flexDirection : 'row',
39
40
  justifyContent:'space-between',
40
41
  alignItems : 'center',
42
+ flexWrap : "wrap",
41
43
  },
42
44
  container : {
43
45
  paddingVertical : 0,
@@ -13,8 +13,9 @@ import { useWindowDimensions } from "react-native";
13
13
  import {useDatagrid,useGetSelectedRowsCount} from "../hooks";
14
14
  export default function DatagridActions ({actions,title,actionProps,...props}){
15
15
  const {context} = useDatagrid();
16
- const forceRender = React.useForceRender();
16
+ const actionsProps = defaultObj(context?.props?.actionsProps);
17
17
  const selectedRowsCount = useGetSelectedRowsCount();
18
+ const leftActions = context?.props?.leftActions;
18
19
  useWindowDimensions();
19
20
  const selected = selectedRowsCount>0;
20
21
  actions = selected ? context?.renderSelectedRowsActions.call(context,{}) : actions;
@@ -56,8 +57,11 @@ export default function DatagridActions ({actions,title,actionProps,...props}){
56
57
  }
57
58
  });
58
59
  return <Header
60
+ {...actionsProps}
59
61
  {...props}
62
+ style = {[actionsProps.style,props.style]}
60
63
  title = {contextualTitle}
64
+ leftActions = {leftActions}
61
65
  selected = {selected}
62
66
  >
63
67
  {children || <Label style={{padding:15}}>ACTIONS</Label>}
@@ -1,4 +1,4 @@
1
- import theme from "$theme";
1
+ import theme,{ StyleProps} from '$theme';
2
2
  import APP from "$capp";
3
3
  import {isMobileOrTabletMedia} from "$cplatform/dimensions";
4
4
  import PropTypes from "prop-types";
@@ -4096,6 +4096,12 @@ CommonDatagridComponent.propTypes = {
4096
4096
  baseId : PropTypes.string,
4097
4097
  mobile: PropTypes.bool,
4098
4098
  tablet: PropTypes.bool,
4099
+ /*** les props des actions du datagrid */
4100
+ actionsProps : PropTypes.shape({
4101
+ ///style : les styles
4102
+ style : StyleProps,
4103
+ testID : PropTypes.string,///le test id
4104
+ }),
4099
4105
  ///pour l'affichage où non des filtres
4100
4106
  toggleFilters : PropTypes.bool,
4101
4107
  desktop: PropTypes.bool,
@@ -175,7 +175,7 @@ export const renderRowCell = (arg)=>{
175
175
  return React.getTextContent(_render);
176
176
  }
177
177
  if((typeof _render ==='string' || typeof _render =='number')){
178
- _render = <Label selectable>{_render}</Label>
178
+ _render = <Label userSelect>{_render}</Label>
179
179
  }
180
180
  _render = React.isValidElement(_render)|| Array.isArray(_render)?_render:null;
181
181
  return {render:_render,style,extra,key};
@@ -111,7 +111,6 @@ export default class DropdownAlert extends Component {
111
111
  renderTitle: PropTypes.func,
112
112
  renderMessage: PropTypes.func,
113
113
  testID: PropTypes.string,
114
- accessibilityLabel: PropTypes.string,
115
114
  accessible: PropTypes.bool,
116
115
  titleTextProps: PropTypes.object,
117
116
  messageTextProps: PropTypes.object,
@@ -199,7 +198,6 @@ export default class DropdownAlert extends Component {
199
198
  renderTitle: undefined,
200
199
  renderMessage: undefined,
201
200
  testID: undefined,
202
- accessibilityLabel: undefined,
203
201
  accessible: false,
204
202
  titleTextProps: undefined,
205
203
  messageTextProps: undefined,
@@ -607,7 +605,6 @@ export default class DropdownAlert extends Component {
607
605
  zIndex,
608
606
  wrapperStyle,
609
607
  tapToCloseEnabled,
610
- accessibilityLabel,
611
608
  testID:customTestId,
612
609
  accessible,
613
610
  contentContainerStyle,
@@ -669,7 +666,6 @@ export default class DropdownAlert extends Component {
669
666
  disabled={!tapToCloseEnabled}
670
667
  onLayout={(event) => this._onLayoutEvent(event)}
671
668
  testID={testID}
672
- accessibilityLabel={accessibilityLabel}
673
669
  accessible={accessible}>
674
670
  <View style={style} testID={testID+"_ContentContainer"}>
675
671
  <View testID={testID+"_ContentWrapper"} style={[contentContainerStyle]}
@@ -14,7 +14,7 @@ import PropTypes from "prop-types";
14
14
  * update by @borisFouomene. for usage, @see : https://callstack.github.io/react-native-paper/drawer-item.html
15
15
  */
16
16
  const DrawerItem = ({icon,iconProps,borderRadius,color,minimized,contentContainerProps,labelProps,contentProps,label,text,
17
- active,style,onPress,accessibilityLabel,isExpandable,right,divider, dividerProps,
17
+ active,style,onPress,isExpandable,right,divider, dividerProps,
18
18
  testID,
19
19
  left,
20
20
  title,
@@ -46,11 +46,10 @@ const DrawerItem = ({icon,iconProps,borderRadius,color,minimized,contentContaine
46
46
  left = React.isValidElement(left)? left : null;
47
47
 
48
48
  borderRadius = typeof borderRadius =='number'? borderRadius : 18;
49
- accessibilityLabel = defaultStr(accessibilityLabel);
50
49
  const labelContent = React.useStableMemo(()=>{
51
50
  const lProps = {
52
51
  testID:testID+"_DrawerItemLabel",
53
- selectable:false,
52
+ userSelect:false,
54
53
  numberOfLines:1,
55
54
  ...labelProps,
56
55
  style : [{
@@ -85,7 +84,6 @@ const DrawerItem = ({icon,iconProps,borderRadius,color,minimized,contentContaine
85
84
  accessibilityTraits={active ? ['button', 'selected'] : 'button'}
86
85
  //accessibilityComponentType="button"
87
86
  accessibilityState={{ selected: active }}
88
- accessibilityLabel={accessibilityLabel}
89
87
  >
90
88
  <View {...contentContainerProps} style={[styles.contentContainer,contentContainerProps.style]} testID={testID+"_DrawerItemContentContainer"}>
91
89
  <View {...contentProps} style={[styles.content,contentProps.style]} testID={testID+"_DrawerItemContent"}>
@@ -94,7 +92,7 @@ const DrawerItem = ({icon,iconProps,borderRadius,color,minimized,contentContaine
94
92
  <Icon testID={testID+"_DrawerItemIcon"} icon={icon} {...iconProps}
95
93
  style={[iconProps.style,styles.icon,!minimized?{
96
94
  alignItems : 'flex-start'
97
- }:{alignItems:isExpandable?'flex-end':'center'}]} tooltip={minimized?defaultStr(title,label,accessibilityLabel):""}
95
+ }:{alignItems:isExpandable?'flex-end':'center'}]} tooltip={minimized?defaultStr(title,label):""}
98
96
  position={minimized?'top':"right"}
99
97
  size={minimized ?MINIMIZED_ICON_SIZE : ICON_SIZE} onPress={minimized?onPress:undefined} color={contentColor} />
100
98
  ) : null}
@@ -122,8 +122,8 @@ DrawerItemsComponent.propTypes = {
122
122
 
123
123
  const getDefaultProps = function(item){
124
124
  if(!isObj(item)) return null;
125
- item.label = defaultVal(item.label,item.text,item.accessibilityLabel);
126
- item.accessibilityLabel = defaultVal(item.accessibilityLabel,item.tooltip,item.label);
125
+ item.label = defaultVal(item.label,item.text,item["aria-label"]);
126
+ item["aria-label"] = defaultVal(item["aria-label"],item.tooltip,item.label);
127
127
  item.title = defaultVal(item.title,item.label);
128
128
  return item;
129
129
  }
@@ -677,7 +677,6 @@ class DropdownComponent extends AppComponent {
677
677
  helperText,
678
678
  error,
679
679
  onChange,
680
- accessibilityLabel,
681
680
  onMount,
682
681
  filter,
683
682
  onUnmount,
@@ -890,7 +889,7 @@ class DropdownComponent extends AppComponent {
890
889
  disabled = {disabled}
891
890
  onLayout={bindResizeEvents === false ? undefined : this.onLayout.bind(this)}
892
891
  style = {{pointerEvents}}
893
- accessibilityLabel={defaultStr(accessibilityLabel,label,text)}
892
+ aria-label={defaultStr(dropdownProps["aria-label"],label,text)}
894
893
  testID = {testID}
895
894
  >
896
895
  <View {...dropdownProps} {...contentContainerProps} style={[contentContainerProps.style,{pointerEvents},flattenStyle]}
@@ -1282,7 +1281,7 @@ DropdownComponent.propTypes = {
1282
1281
  placeholder : PropTypes.string,
1283
1282
  inputProps : PropTypes.object,
1284
1283
  selectedColor:PropTypes.string,
1285
- accessibilityLabel : PropTypes.string,
1284
+ "aria-label" : PropTypes.string,
1286
1285
  compare : PropTypes.func,
1287
1286
  temProps : PropTypes.object,
1288
1287
  itemLabel : PropTypes.string,//le nom du champ à utiliser pour le rendu du libelé la méthode appelée pour retourne le libelé de l'item
@@ -27,12 +27,12 @@ const ErrorMessage = React.forwardRef(function(props,ref){
27
27
  const pointerEvents = 'auto';
28
28
  const {width,height} = useWindowDimensions();
29
29
  return <Portal>
30
- <View ref={ref} testID={`${testID}_ErrorMessageContainer`} pointerEvents={pointerEvents} style={[styles.container,isWeb()?{position:'fixed'}:null,{backgroundColor:theme.colors.surface,width,height}]}>
31
- <View style={styles.content} testID={`${testID}_ErrorMessageContentContainer`} pointerEvents={pointerEvents}>
30
+ <View ref={ref} testID={`${testID}_ErrorMessageContainer`} style={[{pointerEvents},styles.container,isWeb()?{position:'fixed'}:null,{backgroundColor:theme.colors.surface,width,height}]}>
31
+ <View style={[styles.content,{pointerEvents}]} testID={`${testID}_ErrorMessageContentContainer`}>
32
32
  <Label style={styles.title}>Oops!</Label>
33
33
  <Label style={styles.subtitle}>{'Une erreur est survenue'}</Label>
34
34
  <Label style={styles.error}>{error.toString()}</Label>
35
- <Button mode="contained" pointerEvents={pointerEvents} iconProps={{marginVertical:0,paddingVertical:0}} icon='home-variant' style={{backgroundColor:theme.colors.primary,marginHorizontal:10}} labelStyle={{color:theme.colors.primaryLabel}} onPress={goToHome}>
35
+ <Button mode="contained" iconProps={{marginVertical:0,pointerEvents,paddingVertical:0}} icon='home-variant' style={{backgroundColor:theme.colors.primary,marginHorizontal:10}} labelStyle={{color:theme.colors.primaryLabel}} onPress={goToHome}>
36
36
  Retour à l'accueil
37
37
  </Button>
38
38
  <Expandable title="Plus de détail sur l'erreur">
@@ -37,14 +37,14 @@ const ExpandableItem = ({left,right,title,description,
37
37
  testID = defaultStr(testID,"RN_ExpandableItemComponent")
38
38
  const renderDescription = (descriptionColor,description) => {
39
39
  return typeof description === 'function' ? (description({
40
- selectable: false,
40
+ userSelect: false,
41
41
  ellipsizeMode: descriptionEllipsizeMode,
42
42
  color: descriptionColor,
43
43
  fontSize: styles.description.fontSize,
44
44
  })
45
45
  ) : (
46
46
  <Label
47
- selectable={false}
47
+ userSelect={false}
48
48
  numberOfLines={descriptionNumberOfLines}
49
49
  ellipsizeMode={descriptionEllipsizeMode}
50
50
  testID = {testID+"_Description"}
@@ -66,14 +66,14 @@ const ExpandableItem = ({left,right,title,description,
66
66
 
67
67
  return typeof title === 'function' ? (
68
68
  title({
69
- selectable: false,
69
+ userSelect: false,
70
70
  ellipsizeMode: titleEllipsizeMode,
71
71
  color: titleColor,
72
72
  fontSize: styles.title.fontSize,
73
73
  })
74
74
  ) : (
75
75
  <Label
76
- selectable={false}
76
+ userSelect={false}
77
77
  ellipsizeMode={titleEllipsizeMode}
78
78
  numberOfLines={titleNumberOfLines}
79
79
  testID = {testID+'_Title'}
@@ -25,7 +25,6 @@ const ExpandableComponent = React.forwardRef(({
25
25
  onPress,
26
26
  onLongPress,
27
27
  expanded: expandedProp,
28
- accessibilityLabel,
29
28
  expandedIcon,
30
29
  expandIconProps,
31
30
  unexpandedIcon,
@@ -115,7 +114,6 @@ const ExpandableComponent = React.forwardRef(({
115
114
  onPress={handlePressAction}
116
115
  onLongPress={onLongPress}
117
116
  accessibilityState={{ expanded: isExpanded }}
118
- accessibilityLabel={accessibilityLabel}
119
117
  testID={testID+"_Container"}
120
118
  >
121
119
  <View testID={testID+'_ContentContainer'} {...contentContainerProps} style={[styles.row,theme.styles.cursorPointer,contentContainerProps.style]} pointerEvents1="none">
@@ -127,7 +125,7 @@ const ExpandableComponent = React.forwardRef(({
127
125
  : null}
128
126
  <View testID={testID+'_Center'} {...centerProps} style={[styles.item, styles.content,styles.center,centerProps.style]}>
129
127
  {isNonNullString(title)? <Label
130
- selectable={false}
128
+ userSelect={false}
131
129
  numberOfLines={titleNumberOfLines}
132
130
  {...titleProps}
133
131
  >
@@ -136,7 +134,7 @@ const ExpandableComponent = React.forwardRef(({
136
134
  {isNonNullString(description) ? (
137
135
  <Label
138
136
  testID={testID+'_Description'}
139
- selectable={false}
137
+ userSelect={false}
140
138
  numberOfLines={descriptionNumberOfLines}
141
139
  {...descriptionProps}
142
140
  style={[
@@ -21,7 +21,6 @@ const FABGroup = ({
21
21
  icon,
22
22
  open,
23
23
  onPress,
24
- accessibilityLabel,
25
24
  label,
26
25
  style,
27
26
  screenName,
@@ -170,7 +169,6 @@ const FABGroup = ({
170
169
  label = {label}
171
170
  icon={icon}
172
171
  color={colorProp}
173
- accessibilityLabel={accessibilityLabel}
174
172
  // @ts-expect-error We keep old a11y props for backwards compat with old RN versions
175
173
  accessibilityTraits="button"
176
174
  accessibilityComponentType="button"
@@ -202,7 +200,6 @@ FABGroup.propTypes = {
202
200
  * An action item should contain the following properties:
203
201
  * - `icon`: icon to display (required)
204
202
  * - `label`: optional label text
205
- * - `accessibilityLabel`: accessibility label for the action, uses label by default if specified
206
203
  * - `color`: custom icon color of the action item
207
204
  * - `labelTextColor`: custom label text color of the action item
208
205
  * - `style`: pass additional styles for the fab item, for example, `backgroundColor`
@@ -215,7 +212,6 @@ FABGroup.propTypes = {
215
212
  label: PropTypes.string,
216
213
  color: PropTypes.string,
217
214
  labelTextColor: PropTypes.string,
218
- accessibilityLabel: PropTypes.string,
219
215
  style: StylePropTypes,
220
216
  labelStyle: StylePropTypes,
221
217
  small: PropTypes.bool,
@@ -230,7 +226,7 @@ FABGroup.propTypes = {
230
226
  /**
231
227
  * Accessibility label for the FAB. This is read by the screen reader when the user taps the FAB.
232
228
  */
233
- accessibilityLabel: PropTypes.string,
229
+ "aria-label" : PropTypes.string,
234
230
  /**
235
231
  * Custom color for the `FAB`.
236
232
  */
@@ -272,7 +268,7 @@ FABGroup.propTypes = {
272
268
  }
273
269
 
274
270
 
275
- const _FabItem = function({children,label,disabled:customDisabled,pointerEvents,open,close,testID:customTestID,labelStyle,accessibilityLabel,icon,backgroundColor,scale,opacity,color,style,small,onPress}){
271
+ const _FabItem = function({children,label,disabled:customDisabled,pointerEvents,open,close,testID:customTestID,labelStyle,icon,backgroundColor,scale,opacity,color,style,small,onPress,...rest}){
276
272
  const disabled = typeof customDisabled =='boolean'? customDisabled : false;
277
273
  const testID = defaultStr(customTestID,"RN_FabItemComponent")
278
274
  style = StyleSheet.flatten(style) || {};
@@ -303,9 +299,9 @@ const _FabItem = function({children,label,disabled:customDisabled,pointerEvents,
303
299
  ]
304
300
  }
305
301
  onPress={_onPress}
306
- accessibilityLabel={
307
- accessibilityLabel !== 'undefined'
308
- ? accessibilityLabel
302
+ aria-label ={
303
+ rest["aria-label"] !== 'undefined'
304
+ ? rest["aria-label"]
309
305
  : label
310
306
  }
311
307
  accessibilityTraits="button"
@@ -337,9 +333,9 @@ const _FabItem = function({children,label,disabled:customDisabled,pointerEvents,
337
333
  ]
338
334
  }
339
335
  onPress={_onPress}
340
- accessibilityLabel={
341
- typeof accessibilityLabel !== 'undefined'
342
- ? accessibilityLabel
336
+ aria-label={
337
+ typeof rest["aria-label"] !== 'undefined'
338
+ ? rest["aria-label"]
343
339
  : label
344
340
  }
345
341
  // @ts-expect-error We keep old a11y props for backwards compat with old RN versions
@@ -7,7 +7,7 @@ import {defaultObj} from "$cutils";
7
7
 
8
8
  const FilterBetweenComponent = React.forwardRef(({inputProps,contentContainerProps,...props},ref)=>{
9
9
  contentContainerProps = defaultObj(contentContainerProps);
10
- contentContainerProps.pointerEvents = "auto";
10
+ contentContainerProps.style = [{pointerEvents: "auto"},contentContainerProps.style];
11
11
  return <TextField
12
12
  ref = {ref}
13
13
  {...props}
@@ -257,7 +257,7 @@ export default function ImageComponent(props){
257
257
  {...menuProps}
258
258
  disabled = {isDisabled}
259
259
  anchor = {(props)=>{
260
- return <View accessibilityLabel = {_label} testID={testID+"_Container"} {...containerProps} style={[label?styles.align:null,containerProps.style,{pointerEvents:disabled|| readOnly? "none":"auto"},label?styles.container:null]}>
260
+ return <View aria-label={_label} testID={testID+"_Container"} {...containerProps} style={[label?styles.align:null,containerProps.style,{pointerEvents:disabled|| readOnly? "none":"auto"},label?styles.container:null]}>
261
261
  {<Label testID={testID+"_Label"} {...labelProps} disabled={disabled} style={[styles.label,labelProps.style]}>{label}</Label>}
262
262
  {<Avatar
263
263
  resizeMethod = {"auto"}
@@ -10,7 +10,7 @@ const defaultSelectable = canTextBeSelectable();
10
10
 
11
11
  export const EllipsizeMode = {'head':'head','middle':'middle', 'tail':'tail' , 'clip':'clip'}
12
12
 
13
- const LabelComponent = React.forwardRef(({ children,selectable,role,color,upperCase,fontSize,testID,wrap,id,wrapText,error,underlined,splitText,secondary,primary,bold,textBold,disabled,text,style,...rest},ref)=> {
13
+ const LabelComponent = React.forwardRef(({ children,userSelect,role,color,upperCase,fontSize,testID,wrap,id,wrapText,error,underlined,splitText,secondary,primary,bold,textBold,disabled,text,style,...rest},ref)=> {
14
14
  children = defaultVal(children,text);
15
15
  let isText = false;
16
16
  if(!React.isValidElement(children) && Array.isArray(children) && children.length){
@@ -58,8 +58,8 @@ const LabelComponent = React.forwardRef(({ children,selectable,role,color,upperC
58
58
  if(disabled){
59
59
  r1.pointerEvents = "none";
60
60
  }
61
- selectable = selectable === false || defaultSelectable === false ? false : true;
62
- r2.userSelect = !selectable?"none":"all";
61
+ userSelect = userSelect === false || defaultSelectable === false ? false : true;
62
+ r2.userSelect = !userSelect?"none":"all";
63
63
  if(isNonNullString(children) || isText || typeof children ==='number'){
64
64
  if(!isText){
65
65
  children +="";
@@ -70,7 +70,7 @@ const LabelComponent = React.forwardRef(({ children,selectable,role,color,upperC
70
70
  if(fontSize){
71
71
  r1.fontSize = fontSize;
72
72
  }
73
- if(selectable){
73
+ if(userSelect){
74
74
  r2.userSelect = "text";
75
75
  }
76
76
  return (<Text allowFontScaling = {true} ref = {ref}
@@ -117,7 +117,7 @@ LabelComponentExported.propTypes = {
117
117
  error : PropTypes.bool,///si le label est liée à une text field sur laquelle il y a erreur
118
118
  secondary : PropTypes.bool,
119
119
  color : PropTypes.string,
120
- selectable : PropTypes.bool, //si le texte est sélectionnable
120
+ userSelect : PropTypes.bool, //si le texte est sélectionnable
121
121
  underlined : PropTypes.bool,//si le style underlined sera appliqué au label
122
122
  splitText : PropTypes.bool,///si le texte lorsqu'il est long sera splité,
123
123
  /*useSelect : PropTypes.oneOfType([
@@ -34,7 +34,6 @@ const MenuItemComponent = React.forwardRef(({
34
34
  secondary,
35
35
  iconProps,
36
36
  isBottomSheetItem,
37
- accessibilityLabel,
38
37
  right,
39
38
  labelProps,
40
39
  contentContainerProps,
@@ -79,14 +78,12 @@ const MenuItemComponent = React.forwardRef(({
79
78
  {...defaultObj(rest)}
80
79
  tooltip = {defaultVal(rest.tooltip,title,label,text)}
81
80
  Component = {TouchableRipple}
82
- style={[styles.container, style,maxWidthStyle,disabledStyle]}
81
+ style={[styles.container,{pointerEvents}, style,maxWidthStyle,disabledStyle]}
83
82
  onPress={onPress}
84
83
  disabled={disabled}
85
84
  testID={testID}
86
- accessibilityLabel={accessibilityLabel}
87
85
  role="menuitem"
88
86
  accessibilityState={{ disabled }}
89
- pointerEvents = {pointerEvents}
90
87
  >
91
88
  <View style={[styles.row]} ref={ref} testID={testID+"_ContentContainer"}>
92
89
  {icon ? (
@@ -111,7 +108,7 @@ const MenuItemComponent = React.forwardRef(({
111
108
  >
112
109
  <Label
113
110
  testID={testID+"_Label"}
114
- selectable={false}
111
+ userSelect={false}
115
112
  numberOfLines={1}
116
113
  splitText
117
114
  {...labelProps}
@@ -218,7 +215,7 @@ MenuItemComponent.propTypes = {
218
215
  /**
219
216
  * Accessibility label for the Touchable. This is read by the screen reader when the user taps the component.
220
217
  */
221
- accessibilityLabel : PropTypes.string,
218
+ "aria-label" : PropTypes.string,
222
219
  };
223
220
 
224
221
 
@@ -473,7 +473,7 @@ class _Menu extends AppComponent {
473
473
  <Portal>
474
474
  {rendered ? <TouchableWithoutFeedback
475
475
  testID={testID+"_Menu_TouchableWithoutFeedBack"}
476
- accessibilityLabel={overlayAccessibilityLabel}
476
+ aria-label={overlayAccessibilityLabel}
477
477
  //role="button"
478
478
  onPress={onDismiss}
479
479
  style = {[hiddenStyle]}
@@ -487,8 +487,7 @@ class _Menu extends AppComponent {
487
487
  }}
488
488
  collapsable={false}
489
489
  accessibilityViewIsModal={visible}
490
- style={[styles.wrapper, positionStyle, style,hiddenStyle]}
491
- pointerEvents={visible ? 'box-none' : 'none'}
490
+ style={[styles.wrapper, positionStyle, style,hiddenStyle,{pointerEvents:visible ? 'box-none' : 'none'}]}
492
491
  onAccessibilityEscape={onDismiss}
493
492
  >
494
493
  {rendered?<Animated.View style={{ transform: positionTransforms }} testID={testID+"_Animated"}>
@@ -120,7 +120,7 @@ const ModalComponent = React.forwardRef((props,ref)=>{
120
120
  animationPosition = {animationPosition}
121
121
  >
122
122
  <TouchableWithoutFeedback
123
- accessibilityLabel={overlayAccessibilityLabel}
123
+ aria-label={overlayAccessibilityLabel}
124
124
  //role="button"
125
125
  disabled={!dismissable}
126
126
  onPress={dismissable ? hideModal : undefined}
@@ -15,7 +15,7 @@ function ParagraphComponent({splitText,...props}){
15
15
  restProps.ellipsizeMode = defaultStr(props.ellipsizeMode,'tail');
16
16
  }
17
17
  return <Paragraph
18
- selectable = {defaultSelectable}
18
+ userSelect = {defaultSelectable}
19
19
  {...props}
20
20
  {...restProps}
21
21
  />
@@ -157,7 +157,7 @@ export default function PhoneInputComponent(props){
157
157
  helperText = {helperText}
158
158
  contentContainerProps = {contentContainerProps}
159
159
  label = {label}
160
- accessibilityLabel = {defaultStr(label,text)}
160
+ aria-label = {defaultStr(label,text)}
161
161
  formatValue = {false}
162
162
  disabled = {props.disabled}
163
163
  pointerEvents = {pointerEvents}
@@ -285,7 +285,7 @@ const SimpleSelect = React.forwardRef((props,ref)=>{
285
285
  {...anchorContainerProps}
286
286
  onPress={show}
287
287
  disabled = {!isEditable}
288
- accessibilityLabel={defaultStr(label,text)}
288
+ aria-label={defaultStr(label,text)}
289
289
  rippleColor={undefined}
290
290
  onLayout={onLayout}
291
291
  style = {[{pointerEvents},anchorContainerProps.style]}
@@ -115,7 +115,7 @@ const SwitchComponent = React.forwardRef((props,ref)=>{
115
115
  return <Tooltip
116
116
  {...p}
117
117
  tooltip={tooltip}
118
- accessibilityLabel={label}
118
+ aria-label={label}
119
119
  role="switch"
120
120
  disabled = {!isEditable}
121
121
  pointerEvents = {pointerEvents}
@@ -464,7 +464,7 @@ const TextFieldComponent = React.forwardRef((componentProps,inputRef)=>{
464
464
  {...iconProps}
465
465
  disabled = {!isEditable}
466
466
  forceTextInputFocus={false}
467
- accessibilityLabel ={!secureTextEntry?"Cliquez pour masquer le contenu":"Cliquez pour afficher le contenu"}
467
+ aria-label ={!secureTextEntry?"Cliquez pour masquer le contenu":"Cliquez pour afficher le contenu"}
468
468
  icon={secureTextEntry?'eye-off':'eye'}
469
469
  onPress={()=>{
470
470
  setSecureTextEntry(!secureTextEntry);
@@ -1 +1 @@
1
- module.exports = {"@fto-consult/expo-ui":{"name":"@fto-consult/expo-ui","version":"6.81.2","repository":{"type":"git","url":"git+https://github.com/borispipo/expo-ui.git"},"homepage":"https://github.com/borispipo/expo-ui#readme"},"@babel/plugin-proposal-export-namespace-from":{"version":"7.18.9","url":"https://babel.dev/docs/en/next/babel-plugin-proposal-export-namespace-from","license":"MIT"},"@emotion/native":{"version":"11.11.0","url":"https://emotion.sh","license":"MIT"},"@emotion/react":{"version":"11.11.1","url":"https://github.com/emotion-js/emotion/tree/main/packages/react","license":"MIT"},"@expo/html-elements":{"version":"0.5.1","url":"https://github.com/expo/expo/tree/main/packages/html-elements","license":"MIT"},"@expo/metro-config":{"version":"0.10.7","url":"https://github.com/expo/expo.git","license":"MIT"},"@expo/vector-icons":{"version":"13.0.0","url":"https://expo.github.io/vector-icons","license":"MIT"},"@expo/webpack-config":{"version":"19.0.0","url":"https://github.com/expo/expo-cli.git","license":"MIT"},"@faker-js/faker":{"version":"8.0.2","url":"https://github.com/faker-js/faker.git","license":"MIT"},"@fto-consult/common":{"version":"3.65.10","url":"https://github.com/borispipo/common#readme","license":"ISC"},"@pchmn/expo-material3-theme":{"version":"1.3.1","url":"https://github.com/pchmn/expo-material3-theme#readme","license":"MIT"},"@react-native-async-storage/async-storage":{"version":"1.18.2","url":"https://github.com/react-native-async-storage/async-storage#readme","license":"MIT"},"@react-native-community/datetimepicker":{"version":"7.2.0","url":"https://github.com/react-native-community/datetimepicker#readme","license":"MIT"},"@react-native-community/netinfo":{"version":"9.3.10","url":"https://github.com/react-native-netinfo/react-native-netinfo#readme","license":"MIT"},"@react-native/assets-registry":{"version":"0.72.0","url":"git@github.com:facebook/react-native.git","license":"MIT"},"@react-navigation/native":{"version":"6.1.9","url":"https://reactnavigation.org","license":"MIT"},"@react-navigation/native-stack":{"version":"6.9.17","url":"https://github.com/software-mansion/react-native-screens#readme","license":"MIT"},"@react-navigation/stack":{"version":"6.3.20","url":"https://reactnavigation.org/docs/stack-navigator/","license":"MIT"},"@shopify/flash-list":{"version":"1.4.3","url":"https://shopify.github.io/flash-list/","license":"MIT"},"apexcharts":{"version":"3.44.0","url":"https://apexcharts.com","license":"MIT"},"babel-plugin-inline-dotenv":{"version":"1.7.0","url":"https://github.com/brysgo/babel-plugin-inline-dotenv#readme","license":"ISC"},"babel-plugin-module-resolver":{"version":"5.0.0","url":"https://github.com/tleunen/babel-plugin-module-resolver.git","license":"MIT"},"expo":{"version":"49.0.20","url":"https://github.com/expo/expo/tree/main/packages/expo","license":"MIT"},"expo-camera":{"version":"13.4.4","url":"https://docs.expo.dev/versions/latest/sdk/camera/","license":"MIT"},"expo-clipboard":{"version":"4.3.1","url":"https://docs.expo.dev/versions/latest/sdk/clipboard","license":"MIT"},"expo-font":{"version":"11.4.0","url":"https://docs.expo.dev/versions/latest/sdk/font/","license":"MIT"},"expo-image-picker":{"version":"14.3.2","url":"https://docs.expo.dev/versions/latest/sdk/imagepicker/","license":"MIT"},"expo-linking":{"version":"5.0.2","url":"https://docs.expo.dev/versions/latest/sdk/linking","license":"MIT"},"expo-sharing":{"version":"11.5.0","url":"https://docs.expo.dev/versions/latest/sdk/sharing/","license":"MIT"},"expo-sqlite":{"version":"11.3.3","url":"https://docs.expo.dev/versions/latest/sdk/sqlite/","license":"MIT"},"expo-status-bar":{"version":"1.6.0","url":"https://docs.expo.dev/versions/latest/sdk/status-bar/","license":"MIT"},"expo-system-ui":{"version":"2.4.0","url":"https://docs.expo.dev/versions/latest/sdk/system-ui","license":"MIT"},"expo-web-browser":{"version":"12.3.2","url":"https://docs.expo.dev/versions/latest/sdk/webbrowser/","license":"MIT"},"file-saver":{"version":"2.0.5","url":"https://github.com/eligrey/FileSaver.js#readme","license":"MIT"},"fs-extra":{"version":"11.1.1","url":"https://github.com/jprichardson/node-fs-extra","license":"MIT"},"google-libphonenumber":{"version":"3.2.33","url":"https://ruimarinho.github.io/google-libphonenumber/","license":"(MIT AND Apache-2.0)"},"htmlparser2-without-node-native":{"version":"3.9.2","url":"git://github.com/fb55/htmlparser2.git","license":"MIT"},"is-plain-obj":{"version":"4.1.0","license":"MIT"},"js-base64":{"version":"3.7.5","license":"BSD-3-Clause"},"pdfmake":{"version":"0.2.8","url":"http://pdfmake.org","license":"MIT"},"process":{"version":"0.11.10","url":"git://github.com/shtylman/node-process.git","license":"MIT"},"prop-types":{"version":"15.8.1","url":"https://facebook.github.io/react/","license":"MIT"},"react":{"version":"18.2.0","url":"https://reactjs.org/","license":"MIT"},"react-content-loader":{"version":"6.2.1","url":"https://github.com/danilowoz/react-content-loader","license":"MIT"},"react-dom":{"version":"18.2.0","url":"https://reactjs.org/","license":"MIT"},"react-native":{"version":"0.72.6","license":"MIT"},"react-native-big-list":{"version":"1.6.1","url":"https://marcocesarato.github.io/react-native-big-list-docs/","license":"GPL-3.0-or-later"},"react-native-blob-util":{"version":"0.18.6","url":"https://github.com/RonRadtke/react-native-blob-util","license":"MIT"},"react-native-get-random-values":{"version":"1.9.0","license":"MIT"},"react-native-iphone-x-helper":{"version":"1.3.1","url":"https://github.com/ptelad/react-native-iphone-x-helper#readme","license":"MIT"},"react-native-mime-types":{"version":"2.4.0","license":"MIT"},"react-native-paper":{"version":"5.11.1","url":"https://callstack.github.io/react-native-paper","license":"MIT"},"react-native-paper-dates":{"version":"0.20.4","url":"https://github.com/web-ridge/react-native-paper-dates#readme","license":"MIT"},"react-native-reanimated":{"version":"3.3.0","url":"https://github.com/software-mansion/react-native-reanimated#readme","license":"MIT"},"react-native-safe-area-context":{"version":"4.6.3","url":"https://github.com/th3rdwave/react-native-safe-area-context#readme","license":"MIT"},"react-native-screens":{"version":"3.22.1","url":"https://github.com/software-mansion/react-native-screens#readme","license":"MIT"},"react-native-svg":{"version":"13.9.0","url":"https://github.com/react-native-community/react-native-svg","license":"MIT"},"react-native-web":{"version":"0.19.9","url":"git://github.com/necolas/react-native-web.git","license":"MIT"},"react-native-webview":{"version":"13.2.2","url":"https://github.com/react-native-webview/react-native-webview#readme","license":"MIT"},"react-virtuoso":{"version":"4.6.2","url":"https://virtuoso.dev/","license":"MIT"},"sharp-cli":{"version":"2.1.0","url":"https://github.com/vseventer/sharp-cli","license":"MIT"},"tippy.js":{"version":"6.3.7","url":"https://atomiks.github.io/tippyjs/","license":"MIT"},"websql":{"version":"2.0.3","url":"git://github.com/nolanlawson/node-websql.git","license":"Apache-2.0"},"xlsx":{"version":"0.18.5","url":"https://sheetjs.com/","license":"Apache-2.0"}};
1
+ module.exports = {"@fto-consult/expo-ui":{"name":"@fto-consult/expo-ui","version":"6.83.0","repository":{"type":"git","url":"git+https://github.com/borispipo/expo-ui.git"},"homepage":"https://github.com/borispipo/expo-ui#readme"},"@babel/plugin-proposal-export-namespace-from":{"version":"7.18.9","url":"https://babel.dev/docs/en/next/babel-plugin-proposal-export-namespace-from","license":"MIT"},"@emotion/native":{"version":"11.11.0","url":"https://emotion.sh","license":"MIT"},"@emotion/react":{"version":"11.11.1","url":"https://github.com/emotion-js/emotion/tree/main/packages/react","license":"MIT"},"@expo/html-elements":{"version":"0.5.1","url":"https://github.com/expo/expo/tree/main/packages/html-elements","license":"MIT"},"@expo/metro-config":{"version":"0.10.7","url":"https://github.com/expo/expo.git","license":"MIT"},"@expo/vector-icons":{"version":"13.0.0","url":"https://expo.github.io/vector-icons","license":"MIT"},"@expo/webpack-config":{"version":"19.0.0","url":"https://github.com/expo/expo-cli.git","license":"MIT"},"@faker-js/faker":{"version":"8.0.2","url":"https://github.com/faker-js/faker.git","license":"MIT"},"@fto-consult/common":{"version":"3.65.12","url":"https://github.com/borispipo/common#readme","license":"ISC"},"@pchmn/expo-material3-theme":{"version":"1.3.1","url":"https://github.com/pchmn/expo-material3-theme#readme","license":"MIT"},"@react-native-async-storage/async-storage":{"version":"1.18.2","url":"https://github.com/react-native-async-storage/async-storage#readme","license":"MIT"},"@react-native-community/datetimepicker":{"version":"7.2.0","url":"https://github.com/react-native-community/datetimepicker#readme","license":"MIT"},"@react-native-community/netinfo":{"version":"9.3.10","url":"https://github.com/react-native-netinfo/react-native-netinfo#readme","license":"MIT"},"@react-native/assets-registry":{"version":"0.72.0","url":"git@github.com:facebook/react-native.git","license":"MIT"},"@react-navigation/native":{"version":"6.1.9","url":"https://reactnavigation.org","license":"MIT"},"@react-navigation/native-stack":{"version":"6.9.17","url":"https://github.com/software-mansion/react-native-screens#readme","license":"MIT"},"@react-navigation/stack":{"version":"6.3.20","url":"https://reactnavigation.org/docs/stack-navigator/","license":"MIT"},"@shopify/flash-list":{"version":"1.4.3","url":"https://shopify.github.io/flash-list/","license":"MIT"},"apexcharts":{"version":"3.44.0","url":"https://apexcharts.com","license":"MIT"},"babel-plugin-inline-dotenv":{"version":"1.7.0","url":"https://github.com/brysgo/babel-plugin-inline-dotenv#readme","license":"ISC"},"babel-plugin-module-resolver":{"version":"5.0.0","url":"https://github.com/tleunen/babel-plugin-module-resolver.git","license":"MIT"},"expo":{"version":"49.0.20","url":"https://github.com/expo/expo/tree/main/packages/expo","license":"MIT"},"expo-camera":{"version":"13.4.4","url":"https://docs.expo.dev/versions/latest/sdk/camera/","license":"MIT"},"expo-clipboard":{"version":"4.3.1","url":"https://docs.expo.dev/versions/latest/sdk/clipboard","license":"MIT"},"expo-font":{"version":"11.4.0","url":"https://docs.expo.dev/versions/latest/sdk/font/","license":"MIT"},"expo-image-picker":{"version":"14.3.2","url":"https://docs.expo.dev/versions/latest/sdk/imagepicker/","license":"MIT"},"expo-linking":{"version":"5.0.2","url":"https://docs.expo.dev/versions/latest/sdk/linking","license":"MIT"},"expo-sharing":{"version":"11.5.0","url":"https://docs.expo.dev/versions/latest/sdk/sharing/","license":"MIT"},"expo-sqlite":{"version":"11.3.3","url":"https://docs.expo.dev/versions/latest/sdk/sqlite/","license":"MIT"},"expo-status-bar":{"version":"1.6.0","url":"https://docs.expo.dev/versions/latest/sdk/status-bar/","license":"MIT"},"expo-system-ui":{"version":"2.4.0","url":"https://docs.expo.dev/versions/latest/sdk/system-ui","license":"MIT"},"expo-web-browser":{"version":"12.3.2","url":"https://docs.expo.dev/versions/latest/sdk/webbrowser/","license":"MIT"},"file-saver":{"version":"2.0.5","url":"https://github.com/eligrey/FileSaver.js#readme","license":"MIT"},"fs-extra":{"version":"11.1.1","url":"https://github.com/jprichardson/node-fs-extra","license":"MIT"},"google-libphonenumber":{"version":"3.2.33","url":"https://ruimarinho.github.io/google-libphonenumber/","license":"(MIT AND Apache-2.0)"},"htmlparser2-without-node-native":{"version":"3.9.2","url":"git://github.com/fb55/htmlparser2.git","license":"MIT"},"is-plain-obj":{"version":"4.1.0","license":"MIT"},"js-base64":{"version":"3.7.5","license":"BSD-3-Clause"},"pdfmake":{"version":"0.2.8","url":"http://pdfmake.org","license":"MIT"},"process":{"version":"0.11.10","url":"git://github.com/shtylman/node-process.git","license":"MIT"},"prop-types":{"version":"15.8.1","url":"https://facebook.github.io/react/","license":"MIT"},"react":{"version":"18.2.0","url":"https://reactjs.org/","license":"MIT"},"react-content-loader":{"version":"6.2.1","url":"https://github.com/danilowoz/react-content-loader","license":"MIT"},"react-dom":{"version":"18.2.0","url":"https://reactjs.org/","license":"MIT"},"react-native":{"version":"0.72.6","license":"MIT"},"react-native-big-list":{"version":"1.6.1","url":"https://marcocesarato.github.io/react-native-big-list-docs/","license":"GPL-3.0-or-later"},"react-native-blob-util":{"version":"0.18.6","url":"https://github.com/RonRadtke/react-native-blob-util","license":"MIT"},"react-native-get-random-values":{"version":"1.9.0","license":"MIT"},"react-native-iphone-x-helper":{"version":"1.3.1","url":"https://github.com/ptelad/react-native-iphone-x-helper#readme","license":"MIT"},"react-native-mime-types":{"version":"2.4.0","license":"MIT"},"react-native-paper":{"version":"5.11.1","url":"https://callstack.github.io/react-native-paper","license":"MIT"},"react-native-paper-dates":{"version":"0.20.4","url":"https://github.com/web-ridge/react-native-paper-dates#readme","license":"MIT"},"react-native-reanimated":{"version":"3.3.0","url":"https://github.com/software-mansion/react-native-reanimated#readme","license":"MIT"},"react-native-safe-area-context":{"version":"4.6.3","url":"https://github.com/th3rdwave/react-native-safe-area-context#readme","license":"MIT"},"react-native-screens":{"version":"3.22.1","url":"https://github.com/software-mansion/react-native-screens#readme","license":"MIT"},"react-native-svg":{"version":"13.9.0","url":"https://github.com/react-native-community/react-native-svg","license":"MIT"},"react-native-web":{"version":"0.19.9","url":"git://github.com/necolas/react-native-web.git","license":"MIT"},"react-native-webview":{"version":"13.2.2","url":"https://github.com/react-native-webview/react-native-webview#readme","license":"MIT"},"react-virtuoso":{"version":"4.6.2","url":"https://virtuoso.dev/","license":"MIT"},"sharp-cli":{"version":"2.1.0","url":"https://github.com/vseventer/sharp-cli","license":"MIT"},"tippy.js":{"version":"6.3.7","url":"https://atomiks.github.io/tippyjs/","license":"MIT"},"websql":{"version":"2.0.3","url":"git://github.com/nolanlawson/node-websql.git","license":"Apache-2.0"},"xlsx":{"version":"0.18.5","url":"https://sheetjs.com/","license":"Apache-2.0"}};