aport-tools 4.1.22 → 4.1.24

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/index.esm.js CHANGED
@@ -1,6 +1,6 @@
1
- /*! aport-tools v4.1.22 | ISC */
1
+ /*! aport-tools v4.1.24 | ISC */
2
2
  import React, { createContext, useState, useEffect, useContext, useMemo } from 'react';
3
- import { Appearance, StyleSheet, View, Text as Text$1, Switch, TouchableOpacity, ActivityIndicator, Platform, TextInput } from 'react-native';
3
+ import { Appearance, StyleSheet, View, Text as Text$1, Switch, TextInput, TouchableOpacity, ActivityIndicator, Platform } from 'react-native';
4
4
  import { useAsyncStorage } from '@react-native-async-storage/async-storage';
5
5
 
6
6
  /******************************************************************************
@@ -363,173 +363,62 @@ var styles$6 = StyleSheet.create({
363
363
  }
364
364
  });
365
365
 
366
- // src/components/Button.tsx
367
- /**
368
- * Determines the styles based on the button type and whether it is disabled.
369
- *
370
- * @param type - The type of the button ('submit', 'button', 'cancel').
371
- * @param disabled - Whether the button is disabled.
372
- * @param themeColors - The theme colors.
373
- * @returns The computed style for the button.
374
- */
375
- function typeStyles(type, disabled, themeColors) {
376
- switch (type) {
377
- case 'submit':
378
- return {
379
- backgroundColor: "rgba(".concat(themeColors === null || themeColors === void 0 ? void 0 : themeColors.primary.rgb.r, ", ").concat(themeColors === null || themeColors === void 0 ? void 0 : themeColors.primary.rgb.g, ", ").concat(themeColors === null || themeColors === void 0 ? void 0 : themeColors.primary.rgb.b, ", ").concat(disabled ? 0.5 : 1, ")"),
380
- borderWidth: 2,
381
- borderColor: themeColors === null || themeColors === void 0 ? void 0 : themeColors.primary.hex
382
- };
383
- case 'button':
384
- return {
385
- backgroundColor: themeColors === null || themeColors === void 0 ? void 0 : themeColors.primary.hex,
386
- borderColor: themeColors === null || themeColors === void 0 ? void 0 : themeColors.secondary.hex,
387
- opacity: disabled ? 0.5 : 1,
388
- borderWidth: 2
389
- };
390
- case 'cancel':
391
- return {
392
- backgroundColor: themeColors === null || themeColors === void 0 ? void 0 : themeColors.background.hex,
393
- borderWidth: 0
394
- };
395
- default:
396
- return {};
366
+ // src/forms/FormContext.tsx
367
+ var FormContext = /*#__PURE__*/createContext(undefined);
368
+ var useFormContext = function useFormContext() {
369
+ var context = useContext(FormContext);
370
+ if (!context) {
371
+ throw new Error("useFormContext must be used within a Form");
397
372
  }
398
- }
399
- /**
400
- * Button component that adapts its styles based on the current theme.
401
- * Supports dynamic styling, full-width option, rounded corners, and different types.
402
- *
403
- * @param disabled - If true, the button is disabled and not pressable.
404
- * @param isFullWidth - If true, the button expands to full width of its container.
405
- * @param children - Text content of the button.
406
- * @param onPress - Function to call when the button is pressed.
407
- * @param rounded - If true, the button has rounded corners.
408
- * @param borderRadius - Custom border radius value. Overrides the `rounded` prop if provided.
409
- * @param type - Specifies the button type for styling ('submit', 'button', 'cancel').
410
- */
411
- var Button = function Button(_a) {
412
- var children = _a.children,
413
- _b = _a.disabled,
414
- disabled = _b === void 0 ? false : _b,
415
- _c = _a.type,
416
- type = _c === void 0 ? 'button' : _c,
417
- _d = _a.rounded,
418
- rounded = _d === void 0 ? true : _d,
419
- _e = _a.borderRadius,
420
- borderRadius = _e === void 0 ? 30 : _e,
421
- _f = _a.isFullWidth,
422
- isFullWidth = _f === void 0 ? false : _f,
423
- _g = _a.loading,
424
- loading = _g === void 0 ? false : _g,
425
- onPress = _a.onPress;
426
- var theme = useContext(ThemeContext).theme;
427
- var colors = theme.colors;
428
- var computedStyles = useMemo(function () {
429
- return StyleSheet.flatten([styles$5.button, typeStyles(type, disabled, colors), rounded && {
430
- borderRadius: borderRadius
431
- }, isFullWidth && {
432
- width: '100%'
433
- }, (disabled || loading) && styles$5.disabled]);
434
- }, [type, disabled, loading, rounded, borderRadius, isFullWidth, colors]);
435
- var textColor = useMemo(function () {
436
- return {
437
- color: colors.textButton.hex
438
- };
439
- }, [type, colors]);
440
- return /*#__PURE__*/React.createElement(TouchableOpacity, {
441
- style: computedStyles,
442
- disabled: disabled || loading,
443
- onPress: onPress,
444
- activeOpacity: 0.7
445
- }, loading ? (
446
- /*#__PURE__*/
447
- // Show loading spinner if loading
448
- React.createElement(ActivityIndicator, {
449
- size: "small",
450
- color: colors.textButton.hex
451
- })) : (/*#__PURE__*/React.createElement(Text$1, {
452
- style: textColor
453
- }, Array.isArray(children) ? children.join('').toUpperCase() : children === null || children === void 0 ? void 0 : children.toUpperCase())));
373
+ return context;
454
374
  };
455
- var styles$5 = StyleSheet.create({
456
- button: {
457
- justifyContent: 'center',
458
- alignItems: 'center',
459
- paddingVertical: 10,
460
- paddingHorizontal: 20
461
- },
462
- disabled: {
463
- opacity: 0.6
464
- }
465
- });
466
-
467
- // src/cards/Card.tsx
468
- /**
469
- * Card component that adapts its styles based on the current theme.
470
- * Supports dynamic styling, shadows, and press animations.
471
- *
472
- * @param children - The content to be displayed inside the Card.
473
- * @param style - Additional styles to apply to the Card.
474
- * @param onPress - Function to execute when the Card is pressed.
475
- * @param pressable - Determines if the Card is pressable. Defaults to false.
476
- * @param borderRadius - Border radius of the Card. Defaults to 12.
477
- * @param elevation - Elevation for Android shadow. Overrides default.
478
- * @param shadowProps - Custom shadow properties for iOS. Overrides defaults.
479
- */
480
- var Card = function Card(_a) {
375
+ var Form = function Form(_a) {
481
376
  var children = _a.children,
482
- style = _a.style,
483
- onPress = _a.onPress,
484
- _b = _a.pressable,
485
- pressable = _b === void 0 ? false : _b,
486
- _c = _a.borderRadius,
487
- borderRadius = _c === void 0 ? 12 : _c,
488
- _d = _a.elevation,
489
- elevation = _d === void 0 ? 4 : _d,
490
- _e = _a.shadowProps,
491
- shadowProps = _e === void 0 ? {} : _e;
492
- var theme = useContext(ThemeContext).theme;
493
- var colors = theme.colors;
494
- // Animation state for pressable effect
495
- // Default shadow styles (improved platform-specific handling)
496
- var defaultShadow = Platform.select({
497
- ios: {
498
- shadowColor: (shadowProps === null || shadowProps === void 0 ? void 0 : shadowProps.shadowColor) || colors.text.hex,
499
- // Defaulting to theme text color
500
- shadowOffset: (shadowProps === null || shadowProps === void 0 ? void 0 : shadowProps.shadowOffset) || {
501
- width: 0,
502
- height: 2
503
- },
504
- shadowOpacity: (shadowProps === null || shadowProps === void 0 ? void 0 : shadowProps.shadowOpacity) || 0.1,
505
- shadowRadius: (shadowProps === null || shadowProps === void 0 ? void 0 : shadowProps.shadowRadius) || 4
506
- },
507
- android: {
508
- elevation: elevation // Only applies to Android
377
+ onSubmit = _a.onSubmit;
378
+ var _b = useState({}),
379
+ formValues = _b[0],
380
+ setFormValues = _b[1];
381
+ var _c = useState({}),
382
+ errors = _c[0],
383
+ setErrors = _c[1];
384
+ var setFormValue = function setFormValue(name, value) {
385
+ setFormValues(function (prev) {
386
+ var _a;
387
+ return __assign(__assign({}, prev), (_a = {}, _a[name] = value, _a));
388
+ });
389
+ };
390
+ var handleSubmit = function handleSubmit() {
391
+ return __awaiter(void 0, void 0, void 0, function () {
392
+ var validationErrors;
393
+ return __generator(this, function (_a) {
394
+ switch (_a.label) {
395
+ case 0:
396
+ return [4 /*yield*/, onSubmit(formValues)];
397
+ case 1:
398
+ validationErrors = _a.sent();
399
+ // Set the validation errors in state
400
+ setErrors(validationErrors);
401
+ // Prevent submission if there are any errors
402
+ if (Object.keys(validationErrors).length > 0) {
403
+ return [2 /*return*/]; // Prevent submission
404
+ }
405
+ // If no errors, continue submission process (e.g., calling an API, navigating, etc.)
406
+ console.log('Form submitted successfully:', formValues);
407
+ return [2 /*return*/];
408
+ }
409
+ });
410
+ });
411
+ };
412
+ return /*#__PURE__*/React.createElement(FormContext.Provider, {
413
+ value: {
414
+ formValues: formValues,
415
+ setFormValue: setFormValue,
416
+ errors: errors,
417
+ setErrors: setErrors,
418
+ handleSubmit: handleSubmit
509
419
  }
510
- });
511
- var cardStyles = [styles$4.container, {
512
- borderRadius: borderRadius,
513
- backgroundColor: colors.body.hex
514
- }, defaultShadow,
515
- // Dynamic shadows based on platform
516
- style // External styles
517
- ];
518
- return pressable ? (/*#__PURE__*/React.createElement(TouchableOpacity, {
519
- activeOpacity: 0.8,
520
- onPress: onPress,
521
- style: cardStyles
522
- }, children)) : (/*#__PURE__*/React.createElement(View, {
523
- style: cardStyles
524
- }, children));
420
+ }, children);
525
421
  };
526
- var styles$4 = StyleSheet.create({
527
- container: {
528
- padding: 16,
529
- borderRadius: 12
530
- // Shadows handled dynamically with platform logic
531
- }
532
- });
533
422
 
534
423
  // src/fonts/Text.tsx
535
424
  /**
@@ -595,78 +484,29 @@ StyleSheet.create({
595
484
  // Define any default styles if needed
596
485
  });
597
486
 
598
- // src/forms/FormContext.tsx
599
- var FormContext = /*#__PURE__*/createContext(undefined);
600
- var useFormContext = function useFormContext() {
601
- var context = useContext(FormContext);
602
- if (!context) {
603
- throw new Error("useFormContext must be used within a Form");
604
- }
605
- return context;
606
- };
607
- var Form = function Form(_a) {
608
- var children = _a.children,
609
- onSubmit = _a.onSubmit;
610
- var _b = useState({}),
611
- formValues = _b[0],
612
- setFormValues = _b[1];
613
- var _c = useState({}),
614
- errors = _c[0],
615
- setErrors = _c[1];
616
- var setFormValue = function setFormValue(name, value) {
617
- setFormValues(function (prev) {
618
- var _a;
619
- return __assign(__assign({}, prev), (_a = {}, _a[name] = value, _a));
620
- });
621
- };
622
- var handleSubmit = function handleSubmit() {
623
- return __awaiter(void 0, void 0, void 0, function () {
624
- var validationErrors;
625
- return __generator(this, function (_a) {
626
- switch (_a.label) {
627
- case 0:
628
- return [4 /*yield*/, onSubmit(formValues)];
629
- case 1:
630
- validationErrors = _a.sent();
631
- // Set the validation errors in state
632
- setErrors(validationErrors);
633
- // Prevent submission if there are any errors
634
- if (Object.keys(validationErrors).length > 0) {
635
- return [2 /*return*/]; // Prevent submission
636
- }
637
- return [2 /*return*/];
638
- }
639
- });
640
- });
641
- };
642
- return /*#__PURE__*/React.createElement(FormContext.Provider, {
643
- value: {
644
- formValues: formValues,
645
- setFormValue: setFormValue,
646
- errors: errors,
647
- setErrors: setErrors,
648
- handleSubmit: handleSubmit
649
- }
650
- }, children);
651
- };
652
-
653
487
  // src/forms/ErrorList.tsx
654
488
  var ErrorList = function ErrorList(_a) {
655
489
  var errors = _a.errors;
490
+ var theme = useContext(ThemeContext).theme;
491
+ var colors = theme.colors;
656
492
  return /*#__PURE__*/React.createElement(View, {
657
- style: styles$3.container
493
+ style: styles$5.container
658
494
  }, errors.map(function (error, index) {
659
495
  return /*#__PURE__*/React.createElement(View, {
660
496
  key: index,
661
- style: styles$3.errorItem
497
+ style: styles$5.errorItem
662
498
  }, /*#__PURE__*/React.createElement(Text, {
663
- style: styles$3.bullet
499
+ style: [styles$5.bullet, {
500
+ color: colors.error.hex
501
+ }]
664
502
  }, "\u2022"), /*#__PURE__*/React.createElement(Text, {
665
- style: styles$3.errorText
503
+ style: [styles$5.errorText, {
504
+ color: colors.error.hex
505
+ }]
666
506
  }, error));
667
507
  }));
668
508
  };
669
- var styles$3 = StyleSheet.create({
509
+ var styles$5 = StyleSheet.create({
670
510
  container: {
671
511
  marginTop: 4
672
512
  },
@@ -677,14 +517,10 @@ var styles$3 = StyleSheet.create({
677
517
  },
678
518
  bullet: {
679
519
  marginRight: 4,
680
- color: '#FF5252',
681
- // Should use 'error' color from theme
682
520
  fontSize: 12
683
521
  },
684
522
  errorText: {
685
523
  flex: 1,
686
- color: '#FF5252',
687
- // Should use 'error' color from theme
688
524
  fontSize: 12
689
525
  }
690
526
  });
@@ -705,13 +541,13 @@ var Input = function Input(_a) {
705
541
  setFormValue(name, text);
706
542
  };
707
543
  return /*#__PURE__*/React.createElement(View, {
708
- style: styles$2.container
544
+ style: styles$4.container
709
545
  }, /*#__PURE__*/React.createElement(Text, {
710
- style: [styles$2.label, {
546
+ style: [styles$4.label, {
711
547
  color: colors.text.hex
712
548
  }]
713
549
  }, label), /*#__PURE__*/React.createElement(TextInput, __assign({
714
- style: [styles$2.input, {
550
+ style: [styles$4.input, {
715
551
  backgroundColor: colors.body.hex,
716
552
  borderColor: formErrors[name] ? colors.error.hex : '#CCC',
717
553
  color: colors.text.hex
@@ -724,7 +560,7 @@ var Input = function Input(_a) {
724
560
  errors: formErrors[name]
725
561
  })));
726
562
  };
727
- var styles$2 = StyleSheet.create({
563
+ var styles$4 = StyleSheet.create({
728
564
  container: {
729
565
  marginBottom: 16
730
566
  },
@@ -755,11 +591,11 @@ var TextArea = function TextArea(_a) {
755
591
  setFormValue(name, text);
756
592
  };
757
593
  return /*#__PURE__*/React.createElement(View, {
758
- style: styles$1.container
594
+ style: styles$3.container
759
595
  }, /*#__PURE__*/React.createElement(Text, {
760
- style: styles$1.label
596
+ style: styles$3.label
761
597
  }, label), /*#__PURE__*/React.createElement(TextInput, __assign({
762
- style: [styles$1.textArea, style],
598
+ style: [styles$3.textArea, style],
763
599
  value: formValues[name] || '',
764
600
  onChangeText: handleChange,
765
601
  placeholder: label,
@@ -772,7 +608,7 @@ var TextArea = function TextArea(_a) {
772
608
  errors: formErrors[name]
773
609
  })));
774
610
  };
775
- var styles$1 = StyleSheet.create({
611
+ var styles$3 = StyleSheet.create({
776
612
  container: {
777
613
  marginBottom: 16
778
614
  },
@@ -798,18 +634,196 @@ var styles$1 = StyleSheet.create({
798
634
  var Label = function Label(_a) {
799
635
  var text = _a.text,
800
636
  style = _a.style;
637
+ var theme = useContext(ThemeContext).theme;
638
+ var colors = theme.colors;
801
639
  return /*#__PURE__*/React.createElement(Text, {
802
- style: [styles.label, style]
640
+ style: [styles$2.label, style, {
641
+ color: colors.text.hex
642
+ }]
803
643
  }, text);
804
644
  };
805
- var styles = StyleSheet.create({
645
+ var styles$2 = StyleSheet.create({
806
646
  label: {
807
647
  marginBottom: 4,
808
- color: '#000',
809
- // Should be themed
810
648
  fontWeight: '500'
811
649
  }
812
650
  });
813
651
 
652
+ // src/components/Button.tsx
653
+ /**
654
+ * Determines the styles based on the button type and whether it is disabled.
655
+ *
656
+ * @param type - The type of the button ('submit', 'button', 'cancel').
657
+ * @param disabled - Whether the button is disabled.
658
+ * @param themeColors - The theme colors.
659
+ * @returns The computed style for the button.
660
+ */
661
+ function typeStyles(type, disabled, themeColors) {
662
+ switch (type) {
663
+ case 'submit':
664
+ return {
665
+ backgroundColor: "rgba(".concat(themeColors === null || themeColors === void 0 ? void 0 : themeColors.primary.rgb.r, ", ").concat(themeColors === null || themeColors === void 0 ? void 0 : themeColors.primary.rgb.g, ", ").concat(themeColors === null || themeColors === void 0 ? void 0 : themeColors.primary.rgb.b, ", ").concat(disabled ? 0.5 : 1, ")"),
666
+ borderWidth: 2,
667
+ borderColor: themeColors === null || themeColors === void 0 ? void 0 : themeColors.primary.hex
668
+ };
669
+ case 'button':
670
+ return {
671
+ backgroundColor: themeColors === null || themeColors === void 0 ? void 0 : themeColors.primary.hex,
672
+ borderColor: themeColors === null || themeColors === void 0 ? void 0 : themeColors.secondary.hex,
673
+ opacity: disabled ? 0.5 : 1,
674
+ borderWidth: 2
675
+ };
676
+ case 'cancel':
677
+ return {
678
+ backgroundColor: themeColors === null || themeColors === void 0 ? void 0 : themeColors.background.hex,
679
+ borderWidth: 0
680
+ };
681
+ default:
682
+ return {};
683
+ }
684
+ }
685
+ /**
686
+ * Button component that adapts its styles based on the current theme.
687
+ * Supports dynamic styling, full-width option, rounded corners, and different types.
688
+ *
689
+ * @param disabled - If true, the button is disabled and not pressable.
690
+ * @param isFullWidth - If true, the button expands to full width of its container.
691
+ * @param children - Text content of the button.
692
+ * @param onPress - Function to call when the button is pressed.
693
+ * @param rounded - If true, the button has rounded corners.
694
+ * @param borderRadius - Custom border radius value. Overrides the `rounded` prop if provided.
695
+ * @param type - Specifies the button type for styling ('submit', 'button', 'cancel').
696
+ */
697
+ var Button = function Button(_a) {
698
+ var children = _a.children,
699
+ _b = _a.disabled,
700
+ disabled = _b === void 0 ? false : _b,
701
+ _c = _a.type,
702
+ type = _c === void 0 ? 'button' : _c,
703
+ _d = _a.rounded,
704
+ rounded = _d === void 0 ? true : _d,
705
+ _e = _a.borderRadius,
706
+ borderRadius = _e === void 0 ? 30 : _e,
707
+ _f = _a.isFullWidth,
708
+ isFullWidth = _f === void 0 ? false : _f,
709
+ _g = _a.loading,
710
+ loading = _g === void 0 ? false : _g,
711
+ onPress = _a.onPress;
712
+ var theme = useContext(ThemeContext).theme;
713
+ var colors = theme.colors;
714
+ var handleSubmit = useFormContext().handleSubmit;
715
+ var computedStyles = useMemo(function () {
716
+ return StyleSheet.flatten([styles$1.button, typeStyles(type, disabled, colors), rounded && {
717
+ borderRadius: borderRadius
718
+ }, isFullWidth && {
719
+ width: '100%'
720
+ }, (disabled || loading) && styles$1.disabled]);
721
+ }, [type, disabled, loading, rounded, borderRadius, isFullWidth, colors]);
722
+ var textColor = useMemo(function () {
723
+ return {
724
+ color: colors.textButton.hex
725
+ };
726
+ }, [type, colors]);
727
+ var handlePress = function handlePress() {
728
+ if (type === 'submit') {
729
+ handleSubmit(); // Call the form's submit handler
730
+ } else if (onPress) {
731
+ onPress(); // Call a custom handler if needed
732
+ }
733
+ };
734
+ return /*#__PURE__*/React.createElement(TouchableOpacity, {
735
+ style: computedStyles,
736
+ disabled: disabled || loading,
737
+ onPress: handlePress,
738
+ activeOpacity: 0.7
739
+ }, loading ? (
740
+ /*#__PURE__*/
741
+ // Show loading spinner if loading
742
+ React.createElement(ActivityIndicator, {
743
+ size: "small",
744
+ color: colors.textButton.hex
745
+ })) : (/*#__PURE__*/React.createElement(Text$1, {
746
+ style: textColor
747
+ }, Array.isArray(children) ? children.join('').toUpperCase() : children === null || children === void 0 ? void 0 : children.toUpperCase())));
748
+ };
749
+ var styles$1 = StyleSheet.create({
750
+ button: {
751
+ justifyContent: 'center',
752
+ alignItems: 'center',
753
+ paddingVertical: 10,
754
+ paddingHorizontal: 20
755
+ },
756
+ disabled: {
757
+ opacity: 0.6
758
+ }
759
+ });
760
+
761
+ // src/cards/Card.tsx
762
+ /**
763
+ * Card component that adapts its styles based on the current theme.
764
+ * Supports dynamic styling, shadows, and press animations.
765
+ *
766
+ * @param children - The content to be displayed inside the Card.
767
+ * @param style - Additional styles to apply to the Card.
768
+ * @param onPress - Function to execute when the Card is pressed.
769
+ * @param pressable - Determines if the Card is pressable. Defaults to false.
770
+ * @param borderRadius - Border radius of the Card. Defaults to 12.
771
+ * @param elevation - Elevation for Android shadow. Overrides default.
772
+ * @param shadowProps - Custom shadow properties for iOS. Overrides defaults.
773
+ */
774
+ var Card = function Card(_a) {
775
+ var children = _a.children,
776
+ style = _a.style,
777
+ onPress = _a.onPress,
778
+ _b = _a.pressable,
779
+ pressable = _b === void 0 ? false : _b,
780
+ _c = _a.borderRadius,
781
+ borderRadius = _c === void 0 ? 12 : _c,
782
+ _d = _a.elevation,
783
+ elevation = _d === void 0 ? 4 : _d,
784
+ _e = _a.shadowProps,
785
+ shadowProps = _e === void 0 ? {} : _e;
786
+ var theme = useContext(ThemeContext).theme;
787
+ var colors = theme.colors;
788
+ // Animation state for pressable effect
789
+ // Default shadow styles (improved platform-specific handling)
790
+ var defaultShadow = Platform.select({
791
+ ios: {
792
+ shadowColor: (shadowProps === null || shadowProps === void 0 ? void 0 : shadowProps.shadowColor) || colors.text.hex,
793
+ // Defaulting to theme text color
794
+ shadowOffset: (shadowProps === null || shadowProps === void 0 ? void 0 : shadowProps.shadowOffset) || {
795
+ width: 0,
796
+ height: 2
797
+ },
798
+ shadowOpacity: (shadowProps === null || shadowProps === void 0 ? void 0 : shadowProps.shadowOpacity) || 0.1,
799
+ shadowRadius: (shadowProps === null || shadowProps === void 0 ? void 0 : shadowProps.shadowRadius) || 4
800
+ },
801
+ android: {
802
+ elevation: elevation // Only applies to Android
803
+ }
804
+ });
805
+ var cardStyles = [styles.container, {
806
+ borderRadius: borderRadius,
807
+ backgroundColor: colors.body.hex
808
+ }, defaultShadow,
809
+ // Dynamic shadows based on platform
810
+ style // External styles
811
+ ];
812
+ return pressable ? (/*#__PURE__*/React.createElement(TouchableOpacity, {
813
+ activeOpacity: 0.8,
814
+ onPress: onPress,
815
+ style: cardStyles
816
+ }, children)) : (/*#__PURE__*/React.createElement(View, {
817
+ style: cardStyles
818
+ }, children));
819
+ };
820
+ var styles = StyleSheet.create({
821
+ container: {
822
+ padding: 16,
823
+ borderRadius: 12
824
+ // Shadows handled dynamically with platform logic
825
+ }
826
+ });
827
+
814
828
  export { Button, Card, ErrorList, Form, Input, Label, Text, TextArea, ThemeContext, ThemeProvider, ThemeToggle, useFormContext };
815
829
  //# sourceMappingURL=index.esm.js.map