aport-tools 4.2.11 → 4.2.13
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/forms/InputCheck.d.ts +16 -0
- package/dist/forms/index.d.ts +1 -0
- package/dist/index.esm.js +212 -107
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +211 -105
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
@@ -0,0 +1,16 @@
|
|
1
|
+
import React from "react";
|
2
|
+
interface InputCheckProps {
|
3
|
+
name: string;
|
4
|
+
options: {
|
5
|
+
id: string;
|
6
|
+
label: string;
|
7
|
+
icon?: string;
|
8
|
+
}[];
|
9
|
+
multi?: boolean;
|
10
|
+
max?: number;
|
11
|
+
rowAmount?: number;
|
12
|
+
iconPosition?: "row" | "column";
|
13
|
+
disabled?: boolean;
|
14
|
+
}
|
15
|
+
declare const InputCheck: React.FC<InputCheckProps>;
|
16
|
+
export default InputCheck;
|
package/dist/forms/index.d.ts
CHANGED
@@ -4,4 +4,5 @@ export { default as TextArea } from './TextArea';
|
|
4
4
|
export { default as Label } from './Label';
|
5
5
|
export { default as ErrorList } from './ErrorList';
|
6
6
|
export { InputList } from './InputList';
|
7
|
+
export { default as InputCheck } from './InputCheck';
|
7
8
|
export { default as InputAttach } from './InputAttach';
|
package/dist/index.esm.js
CHANGED
@@ -1,6 +1,6 @@
|
|
1
|
-
/*! aport-tools v4.2.
|
1
|
+
/*! aport-tools v4.2.13 | ISC */
|
2
2
|
import React, { useContext, useState, createContext, useCallback, useMemo } from 'react';
|
3
|
-
import { StyleSheet, Text as Text$1, View, TextInput, TouchableOpacity, Modal, Pressable, FlatList, Keyboard, Image, Alert, ActivityIndicator
|
3
|
+
import { StyleSheet, Text as Text$1, View, TextInput, TouchableOpacity, Modal, Pressable, FlatList, Keyboard, Platform, Image, Alert, ActivityIndicator } from 'react-native';
|
4
4
|
import { ThemeContext } from 'aport-themes';
|
5
5
|
import * as ImagePicker from 'expo-image-picker';
|
6
6
|
|
@@ -231,23 +231,23 @@ var ErrorList = function ErrorList(_a) {
|
|
231
231
|
var theme = useContext(ThemeContext).theme;
|
232
232
|
var colors = theme.colors;
|
233
233
|
return /*#__PURE__*/React.createElement(View, {
|
234
|
-
style: styles$
|
234
|
+
style: styles$8.container
|
235
235
|
}, errors.map(function (error, index) {
|
236
236
|
return /*#__PURE__*/React.createElement(View, {
|
237
237
|
key: index,
|
238
|
-
style: styles$
|
238
|
+
style: styles$8.errorItem
|
239
239
|
}, /*#__PURE__*/React.createElement(Text, {
|
240
|
-
style: [styles$
|
240
|
+
style: [styles$8.bullet, {
|
241
241
|
color: colors.error.hex
|
242
242
|
}]
|
243
243
|
}, "\u2022"), /*#__PURE__*/React.createElement(Text, {
|
244
|
-
style: [styles$
|
244
|
+
style: [styles$8.errorText, {
|
245
245
|
color: colors.error.hex
|
246
246
|
}]
|
247
247
|
}, error));
|
248
248
|
}));
|
249
249
|
};
|
250
|
-
var styles$
|
250
|
+
var styles$8 = StyleSheet.create({
|
251
251
|
container: {
|
252
252
|
marginTop: 4
|
253
253
|
},
|
@@ -325,13 +325,13 @@ var Input = function Input(_a) {
|
|
325
325
|
setFormValue(name, formattedText);
|
326
326
|
};
|
327
327
|
return /*#__PURE__*/React.createElement(View, {
|
328
|
-
style: styles$
|
328
|
+
style: styles$7.container
|
329
329
|
}, /*#__PURE__*/React.createElement(Text, {
|
330
|
-
style: [styles$
|
330
|
+
style: [styles$7.label, {
|
331
331
|
color: colors.text.hex
|
332
332
|
}]
|
333
333
|
}, label), /*#__PURE__*/React.createElement(TextInput, __assign({
|
334
|
-
style: [styles$
|
334
|
+
style: [styles$7.input, {
|
335
335
|
backgroundColor: colors.body.hex,
|
336
336
|
borderColor: formErrors[name] ? colors.error.hex : "#CCC",
|
337
337
|
color: colors.text.hex
|
@@ -344,7 +344,7 @@ var Input = function Input(_a) {
|
|
344
344
|
errors: formErrors[name]
|
345
345
|
})));
|
346
346
|
};
|
347
|
-
var styles$
|
347
|
+
var styles$7 = StyleSheet.create({
|
348
348
|
container: {
|
349
349
|
marginBottom: 16
|
350
350
|
},
|
@@ -377,13 +377,13 @@ var TextArea = function TextArea(_a) {
|
|
377
377
|
setFormValue(name, text);
|
378
378
|
};
|
379
379
|
return /*#__PURE__*/React.createElement(View, {
|
380
|
-
style: styles$
|
380
|
+
style: styles$6.container
|
381
381
|
}, /*#__PURE__*/React.createElement(Text, {
|
382
|
-
style: [styles$
|
382
|
+
style: [styles$6.label, {
|
383
383
|
color: colors.text.hex
|
384
384
|
}]
|
385
385
|
}, label), /*#__PURE__*/React.createElement(TextInput, __assign({
|
386
|
-
style: [styles$
|
386
|
+
style: [styles$6.textArea, style, {
|
387
387
|
backgroundColor: colors.body.hex,
|
388
388
|
color: colors.text.hex,
|
389
389
|
borderColor: colors.placeHolder.hex
|
@@ -400,7 +400,7 @@ var TextArea = function TextArea(_a) {
|
|
400
400
|
errors: formErrors[name]
|
401
401
|
})));
|
402
402
|
};
|
403
|
-
var styles$
|
403
|
+
var styles$6 = StyleSheet.create({
|
404
404
|
container: {
|
405
405
|
marginBottom: 16
|
406
406
|
},
|
@@ -423,12 +423,12 @@ var Label = function Label(_a) {
|
|
423
423
|
var theme = useContext(ThemeContext).theme;
|
424
424
|
var colors = theme.colors;
|
425
425
|
return /*#__PURE__*/React.createElement(Text, {
|
426
|
-
style: [styles$
|
426
|
+
style: [styles$5.label, style, {
|
427
427
|
color: colors.text.hex
|
428
428
|
}]
|
429
429
|
}, text);
|
430
430
|
};
|
431
|
-
var styles$
|
431
|
+
var styles$5 = StyleSheet.create({
|
432
432
|
label: {
|
433
433
|
marginBottom: 4,
|
434
434
|
fontWeight: '500'
|
@@ -541,14 +541,14 @@ var InputList = function InputList(_a) {
|
|
541
541
|
});
|
542
542
|
};
|
543
543
|
return /*#__PURE__*/React.createElement(View, {
|
544
|
-
style: [styles$
|
544
|
+
style: [styles$4.container, style]
|
545
545
|
}, /*#__PURE__*/React.createElement(Text$1, {
|
546
546
|
style: {
|
547
547
|
color: colors.text.hex,
|
548
548
|
marginBottom: 4
|
549
549
|
}
|
550
550
|
}, name), /*#__PURE__*/React.createElement(TouchableOpacity, {
|
551
|
-
style: styles$
|
551
|
+
style: styles$4.inputContainer,
|
552
552
|
onPress: toggleDropdown,
|
553
553
|
disabled: disabled
|
554
554
|
}, /*#__PURE__*/React.createElement(Text$1, {
|
@@ -560,10 +560,10 @@ var InputList = function InputList(_a) {
|
|
560
560
|
transparent: true,
|
561
561
|
animationType: "fade"
|
562
562
|
}, /*#__PURE__*/React.createElement(Pressable, {
|
563
|
-
style: styles$
|
563
|
+
style: styles$4.overlay,
|
564
564
|
onPress: handleCloseDropdown
|
565
565
|
}), /*#__PURE__*/React.createElement(View, {
|
566
|
-
style: [styles$
|
566
|
+
style: [styles$4.dropdownContainer, {
|
567
567
|
backgroundColor: colors.body.hex
|
568
568
|
}]
|
569
569
|
}, /*#__PURE__*/React.createElement(FlatList, {
|
@@ -581,7 +581,7 @@ var InputList = function InputList(_a) {
|
|
581
581
|
onPress: function onPress() {
|
582
582
|
return handleSelectOption(item);
|
583
583
|
},
|
584
|
-
style: [styles$
|
584
|
+
style: [styles$4.optionItem, isSelected ? {
|
585
585
|
backgroundColor: colors.primary.hex
|
586
586
|
} : {}, isDisabled ? {
|
587
587
|
backgroundColor: colors.placeHolder.hex
|
@@ -592,18 +592,18 @@ var InputList = function InputList(_a) {
|
|
592
592
|
color: colors.body.hex
|
593
593
|
} : {
|
594
594
|
color: colors.text.hex
|
595
|
-
}, isDisabled ? styles$
|
595
|
+
}, isDisabled ? styles$4.disabledText : {}]
|
596
596
|
}, item.label));
|
597
597
|
},
|
598
598
|
ItemSeparatorComponent: function ItemSeparatorComponent() {
|
599
599
|
return separator ? /*#__PURE__*/React.createElement(View, {
|
600
|
-
style: styles$
|
600
|
+
style: styles$4.separator
|
601
601
|
}) : null;
|
602
602
|
},
|
603
603
|
scrollEnabled: !closeOnScroll
|
604
604
|
}))));
|
605
605
|
};
|
606
|
-
var styles$
|
606
|
+
var styles$4 = StyleSheet.create({
|
607
607
|
container: {},
|
608
608
|
inputContainer: {
|
609
609
|
padding: 12,
|
@@ -639,6 +639,178 @@ var styles$3 = StyleSheet.create({
|
|
639
639
|
}
|
640
640
|
});
|
641
641
|
|
642
|
+
// src/cards/Card.tsx
|
643
|
+
/**
|
644
|
+
* Card component that adapts its styles based on the current theme.
|
645
|
+
* Supports dynamic styling, shadows, and press animations.
|
646
|
+
*
|
647
|
+
* @param children - The content to be displayed inside the Card.
|
648
|
+
* @param style - Additional styles to apply to the Card.
|
649
|
+
* @param onPress - Function to execute when the Card is pressed.
|
650
|
+
* @param pressable - Determines if the Card is pressable. Defaults to false.
|
651
|
+
* @param borderRadius - Border radius of the Card. Defaults to 12.
|
652
|
+
* @param elevation - Elevation for Android shadow. Overrides default.
|
653
|
+
* @param shadowProps - Custom shadow properties for iOS. Overrides defaults.
|
654
|
+
*/
|
655
|
+
var Card = function Card(_a) {
|
656
|
+
var children = _a.children,
|
657
|
+
style = _a.style,
|
658
|
+
onPress = _a.onPress,
|
659
|
+
_b = _a.pressable,
|
660
|
+
pressable = _b === void 0 ? false : _b,
|
661
|
+
_c = _a.borderRadius,
|
662
|
+
borderRadius = _c === void 0 ? 12 : _c,
|
663
|
+
_d = _a.elevation,
|
664
|
+
elevation = _d === void 0 ? 4 : _d,
|
665
|
+
_e = _a.shadowProps,
|
666
|
+
shadowProps = _e === void 0 ? {} : _e;
|
667
|
+
var theme = useContext(ThemeContext).theme;
|
668
|
+
var colors = theme.colors;
|
669
|
+
// Animation state for pressable effect
|
670
|
+
// Default shadow styles (improved platform-specific handling)
|
671
|
+
var defaultShadow = Platform.select({
|
672
|
+
ios: {
|
673
|
+
shadowColor: (shadowProps === null || shadowProps === void 0 ? void 0 : shadowProps.shadowColor) || colors.text.hex,
|
674
|
+
// Defaulting to theme text color
|
675
|
+
shadowOffset: (shadowProps === null || shadowProps === void 0 ? void 0 : shadowProps.shadowOffset) || {
|
676
|
+
width: 0,
|
677
|
+
height: 2
|
678
|
+
},
|
679
|
+
shadowOpacity: (shadowProps === null || shadowProps === void 0 ? void 0 : shadowProps.shadowOpacity) || 0.1,
|
680
|
+
shadowRadius: (shadowProps === null || shadowProps === void 0 ? void 0 : shadowProps.shadowRadius) || 4
|
681
|
+
},
|
682
|
+
android: {
|
683
|
+
elevation: elevation // Only applies to Android
|
684
|
+
}
|
685
|
+
});
|
686
|
+
var cardStyles = [styles$3.container, {
|
687
|
+
borderRadius: borderRadius,
|
688
|
+
backgroundColor: colors.background.hex
|
689
|
+
}, defaultShadow,
|
690
|
+
// Dynamic shadows based on platform
|
691
|
+
style // External styles
|
692
|
+
];
|
693
|
+
return pressable ? (/*#__PURE__*/React.createElement(TouchableOpacity, {
|
694
|
+
activeOpacity: 0.8,
|
695
|
+
onPress: onPress,
|
696
|
+
style: cardStyles
|
697
|
+
}, children)) : (/*#__PURE__*/React.createElement(View, {
|
698
|
+
style: cardStyles
|
699
|
+
}, children));
|
700
|
+
};
|
701
|
+
var styles$3 = StyleSheet.create({
|
702
|
+
container: {
|
703
|
+
padding: 16,
|
704
|
+
borderRadius: 12
|
705
|
+
// Shadows handled dynamically with platform logic
|
706
|
+
}
|
707
|
+
});
|
708
|
+
|
709
|
+
var InputCheck = function InputCheck(_a) {
|
710
|
+
var name = _a.name,
|
711
|
+
options = _a.options,
|
712
|
+
_b = _a.multi,
|
713
|
+
multi = _b === void 0 ? false : _b,
|
714
|
+
max = _a.max,
|
715
|
+
_c = _a.rowAmount,
|
716
|
+
rowAmount = _c === void 0 ? 3 : _c,
|
717
|
+
_d = _a.iconPosition,
|
718
|
+
iconPosition = _d === void 0 ? "row" : _d,
|
719
|
+
_e = _a.disabled,
|
720
|
+
disabled = _e === void 0 ? false : _e;
|
721
|
+
var _f = useFormContext(),
|
722
|
+
formValues = _f.formValues,
|
723
|
+
setFormValue = _f.setFormValue;
|
724
|
+
var _g = useState(formValues[name] || []),
|
725
|
+
selectedValues = _g[0],
|
726
|
+
setSelectedValues = _g[1];
|
727
|
+
var theme = useContext(ThemeContext).theme;
|
728
|
+
var colors = theme.colors;
|
729
|
+
var handleSelect = function handleSelect(id) {
|
730
|
+
if (disabled) return;
|
731
|
+
var updatedSelection;
|
732
|
+
if (multi) {
|
733
|
+
if (selectedValues.includes(id)) {
|
734
|
+
updatedSelection = selectedValues.filter(function (value) {
|
735
|
+
return value !== id;
|
736
|
+
});
|
737
|
+
} else {
|
738
|
+
if (max && selectedValues.length >= max) return; // Prevent selection beyond max
|
739
|
+
updatedSelection = __spreadArray(__spreadArray([], selectedValues, true), [id], false);
|
740
|
+
}
|
741
|
+
} else {
|
742
|
+
updatedSelection = [id];
|
743
|
+
}
|
744
|
+
setSelectedValues(updatedSelection);
|
745
|
+
setFormValue(name, updatedSelection);
|
746
|
+
};
|
747
|
+
var renderItem = function renderItem(_a) {
|
748
|
+
var item = _a.item;
|
749
|
+
var isSelected = selectedValues.includes(item.id);
|
750
|
+
return /*#__PURE__*/React.createElement(Card, {
|
751
|
+
pressable: true,
|
752
|
+
onPress: function onPress() {
|
753
|
+
return handleSelect(item.id);
|
754
|
+
},
|
755
|
+
style: [styles$2.card, isSelected && {
|
756
|
+
backgroundColor: colors.primary.hex
|
757
|
+
},
|
758
|
+
// Replace with colors.primary.hex if available
|
759
|
+
disabled && styles$2.cardDisabled]
|
760
|
+
}, item.icon && (/*#__PURE__*/React.createElement(Image, {
|
761
|
+
source: {
|
762
|
+
uri: item.icon
|
763
|
+
},
|
764
|
+
style: [styles$2.icon, iconPosition === "column" && styles$2.iconColumn]
|
765
|
+
})), /*#__PURE__*/React.createElement(Text, {
|
766
|
+
style: [styles$2.label, {
|
767
|
+
color: isSelected ? colors.textButton.hex : colors.text.hex
|
768
|
+
} // Replace with colors.textButton.hex
|
769
|
+
]
|
770
|
+
}, item.label));
|
771
|
+
};
|
772
|
+
return /*#__PURE__*/React.createElement(FlatList, {
|
773
|
+
data: options,
|
774
|
+
renderItem: renderItem,
|
775
|
+
keyExtractor: function keyExtractor(item) {
|
776
|
+
return item.id;
|
777
|
+
},
|
778
|
+
numColumns: rowAmount,
|
779
|
+
columnWrapperStyle: rowAmount > 1 ? styles$2.row : undefined,
|
780
|
+
scrollEnabled: false
|
781
|
+
});
|
782
|
+
};
|
783
|
+
var styles$2 = StyleSheet.create({
|
784
|
+
card: {
|
785
|
+
flex: 1,
|
786
|
+
margin: 5,
|
787
|
+
padding: 10,
|
788
|
+
borderWidth: 1,
|
789
|
+
borderColor: "#ccc",
|
790
|
+
borderRadius: 8,
|
791
|
+
alignItems: "center",
|
792
|
+
justifyContent: "center"
|
793
|
+
},
|
794
|
+
cardDisabled: {
|
795
|
+
opacity: 0.5
|
796
|
+
},
|
797
|
+
icon: {
|
798
|
+
width: 40,
|
799
|
+
height: 40,
|
800
|
+
marginBottom: 5
|
801
|
+
},
|
802
|
+
iconColumn: {
|
803
|
+
marginBottom: 10
|
804
|
+
},
|
805
|
+
label: {
|
806
|
+
fontSize: 14,
|
807
|
+
textAlign: "center"
|
808
|
+
},
|
809
|
+
row: {
|
810
|
+
justifyContent: "space-between"
|
811
|
+
}
|
812
|
+
});
|
813
|
+
|
642
814
|
// src/components/InputAttach.tsx
|
643
815
|
var InputAttach = function InputAttach(_a) {
|
644
816
|
var name = _a.name,
|
@@ -720,49 +892,49 @@ var InputAttach = function InputAttach(_a) {
|
|
720
892
|
setFormValue(name, updatedFiles); // Update form context
|
721
893
|
};
|
722
894
|
return /*#__PURE__*/React.createElement(View, {
|
723
|
-
style: styles$
|
895
|
+
style: styles$1.container
|
724
896
|
}, /*#__PURE__*/React.createElement(Text, {
|
725
|
-
style: [styles$
|
897
|
+
style: [styles$1.label, {
|
726
898
|
color: colors.text.hex
|
727
899
|
}]
|
728
900
|
}, placeholder), /*#__PURE__*/React.createElement(View, {
|
729
|
-
style: styles$
|
901
|
+
style: styles$1.fileContainer
|
730
902
|
}, selectedFiles.map(function (file, index) {
|
731
903
|
return /*#__PURE__*/React.createElement(View, {
|
732
904
|
key: index,
|
733
|
-
style: styles$
|
905
|
+
style: styles$1.fileItem
|
734
906
|
}, /*#__PURE__*/React.createElement(Image, {
|
735
907
|
source: {
|
736
908
|
uri: file.uri
|
737
909
|
},
|
738
|
-
style: styles$
|
910
|
+
style: styles$1.imagePreview
|
739
911
|
}), /*#__PURE__*/React.createElement(TouchableOpacity, {
|
740
912
|
onPress: function onPress() {
|
741
913
|
return removeFile(index);
|
742
914
|
},
|
743
|
-
style: [styles$
|
915
|
+
style: [styles$1.removeButton, {
|
744
916
|
backgroundColor: colors.error.hex
|
745
917
|
}]
|
746
918
|
}, /*#__PURE__*/React.createElement(Text, {
|
747
|
-
style: styles$
|
919
|
+
style: styles$1.removeButtonText
|
748
920
|
}, "X")));
|
749
921
|
}), selectedFiles.length < amount && (/*#__PURE__*/React.createElement(TouchableOpacity, {
|
750
922
|
onPress: pickImage,
|
751
|
-
style: [styles$
|
923
|
+
style: [styles$1.addButton, {
|
752
924
|
backgroundColor: colors.body.hex
|
753
925
|
}],
|
754
926
|
disabled: disabled
|
755
927
|
}, /*#__PURE__*/React.createElement(Text, {
|
756
|
-
style: [styles$
|
928
|
+
style: [styles$1.addButtonText, {
|
757
929
|
color: colors.placeHolder.hex
|
758
930
|
}]
|
759
931
|
}, "+")))), errors[name] && /*#__PURE__*/React.createElement(Text, {
|
760
|
-
style: [styles$
|
932
|
+
style: [styles$1.error, {
|
761
933
|
color: colors.error.hex
|
762
934
|
}]
|
763
935
|
}, errors[name].join(", ")));
|
764
936
|
};
|
765
|
-
var styles$
|
937
|
+
var styles$1 = StyleSheet.create({
|
766
938
|
container: {
|
767
939
|
marginVertical: 10
|
768
940
|
},
|
@@ -878,11 +1050,11 @@ var Button = function Button(_a) {
|
|
878
1050
|
var colors = theme.colors;
|
879
1051
|
var handleSubmit = useFormContext().handleSubmit;
|
880
1052
|
var computedStyles = useMemo(function () {
|
881
|
-
return StyleSheet.flatten([styles
|
1053
|
+
return StyleSheet.flatten([styles.button, typeStyles(type, disabled, colors), rounded && {
|
882
1054
|
borderRadius: borderRadius
|
883
1055
|
}, isFullWidth && {
|
884
1056
|
width: '100%'
|
885
|
-
}, (disabled || loading) && styles
|
1057
|
+
}, (disabled || loading) && styles.disabled]);
|
886
1058
|
}, [type, disabled, loading, rounded, borderRadius, isFullWidth, colors]);
|
887
1059
|
var textColor = useMemo(function () {
|
888
1060
|
return type === "cancel" ? {
|
@@ -913,7 +1085,7 @@ var Button = function Button(_a) {
|
|
913
1085
|
style: textColor
|
914
1086
|
}, Array.isArray(children) ? children.join('').toUpperCase() : children === null || children === void 0 ? void 0 : children.toUpperCase())));
|
915
1087
|
};
|
916
|
-
var styles
|
1088
|
+
var styles = StyleSheet.create({
|
917
1089
|
button: {
|
918
1090
|
justifyContent: 'center',
|
919
1091
|
alignItems: 'center',
|
@@ -925,72 +1097,5 @@ var styles$1 = StyleSheet.create({
|
|
925
1097
|
}
|
926
1098
|
});
|
927
1099
|
|
928
|
-
|
929
|
-
/**
|
930
|
-
* Card component that adapts its styles based on the current theme.
|
931
|
-
* Supports dynamic styling, shadows, and press animations.
|
932
|
-
*
|
933
|
-
* @param children - The content to be displayed inside the Card.
|
934
|
-
* @param style - Additional styles to apply to the Card.
|
935
|
-
* @param onPress - Function to execute when the Card is pressed.
|
936
|
-
* @param pressable - Determines if the Card is pressable. Defaults to false.
|
937
|
-
* @param borderRadius - Border radius of the Card. Defaults to 12.
|
938
|
-
* @param elevation - Elevation for Android shadow. Overrides default.
|
939
|
-
* @param shadowProps - Custom shadow properties for iOS. Overrides defaults.
|
940
|
-
*/
|
941
|
-
var Card = function Card(_a) {
|
942
|
-
var children = _a.children,
|
943
|
-
style = _a.style,
|
944
|
-
onPress = _a.onPress,
|
945
|
-
_b = _a.pressable,
|
946
|
-
pressable = _b === void 0 ? false : _b,
|
947
|
-
_c = _a.borderRadius,
|
948
|
-
borderRadius = _c === void 0 ? 12 : _c,
|
949
|
-
_d = _a.elevation,
|
950
|
-
elevation = _d === void 0 ? 4 : _d,
|
951
|
-
_e = _a.shadowProps,
|
952
|
-
shadowProps = _e === void 0 ? {} : _e;
|
953
|
-
var theme = useContext(ThemeContext).theme;
|
954
|
-
var colors = theme.colors;
|
955
|
-
// Animation state for pressable effect
|
956
|
-
// Default shadow styles (improved platform-specific handling)
|
957
|
-
var defaultShadow = Platform.select({
|
958
|
-
ios: {
|
959
|
-
shadowColor: (shadowProps === null || shadowProps === void 0 ? void 0 : shadowProps.shadowColor) || colors.text.hex,
|
960
|
-
// Defaulting to theme text color
|
961
|
-
shadowOffset: (shadowProps === null || shadowProps === void 0 ? void 0 : shadowProps.shadowOffset) || {
|
962
|
-
width: 0,
|
963
|
-
height: 2
|
964
|
-
},
|
965
|
-
shadowOpacity: (shadowProps === null || shadowProps === void 0 ? void 0 : shadowProps.shadowOpacity) || 0.1,
|
966
|
-
shadowRadius: (shadowProps === null || shadowProps === void 0 ? void 0 : shadowProps.shadowRadius) || 4
|
967
|
-
},
|
968
|
-
android: {
|
969
|
-
elevation: elevation // Only applies to Android
|
970
|
-
}
|
971
|
-
});
|
972
|
-
var cardStyles = [styles.container, {
|
973
|
-
borderRadius: borderRadius,
|
974
|
-
backgroundColor: colors.background.hex
|
975
|
-
}, defaultShadow,
|
976
|
-
// Dynamic shadows based on platform
|
977
|
-
style // External styles
|
978
|
-
];
|
979
|
-
return pressable ? (/*#__PURE__*/React.createElement(TouchableOpacity, {
|
980
|
-
activeOpacity: 0.8,
|
981
|
-
onPress: onPress,
|
982
|
-
style: cardStyles
|
983
|
-
}, children)) : (/*#__PURE__*/React.createElement(View, {
|
984
|
-
style: cardStyles
|
985
|
-
}, children));
|
986
|
-
};
|
987
|
-
var styles = StyleSheet.create({
|
988
|
-
container: {
|
989
|
-
padding: 16,
|
990
|
-
borderRadius: 12
|
991
|
-
// Shadows handled dynamically with platform logic
|
992
|
-
}
|
993
|
-
});
|
994
|
-
|
995
|
-
export { Button, Card, ErrorList, Form, Input, InputAttach, InputList, Label, Text, TextArea, useFormContext };
|
1100
|
+
export { Button, Card, ErrorList, Form, Input, InputAttach, InputCheck, InputList, Label, Text, TextArea, useFormContext };
|
996
1101
|
//# sourceMappingURL=index.esm.js.map
|