react-native-atomic-ui 1.0.3 → 1.0.4

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 (46) hide show
  1. package/README.md +322 -34
  2. package/dist/advanced/date-picker/index.d.ts +2 -1
  3. package/dist/advanced/date-picker/index.d.ts.map +1 -1
  4. package/dist/advanced/date-picker/index.js.map +2 -2
  5. package/dist/advanced/date-picker/index.mjs.map +2 -2
  6. package/dist/advanced/file-picker/index.d.ts +9 -2
  7. package/dist/advanced/file-picker/index.d.ts.map +1 -1
  8. package/dist/advanced/file-picker/index.js.map +2 -2
  9. package/dist/advanced/file-picker/index.mjs.map +2 -2
  10. package/dist/advanced/picker/index.d.ts +2 -1
  11. package/dist/advanced/picker/index.d.ts.map +1 -1
  12. package/dist/advanced/picker/index.js.map +2 -2
  13. package/dist/advanced/picker/index.mjs.map +2 -2
  14. package/dist/advanced/rich-text/index.d.ts +3 -2
  15. package/dist/advanced/rich-text/index.d.ts.map +1 -1
  16. package/dist/advanced/rich-text/index.js.map +2 -2
  17. package/dist/advanced/rich-text/index.mjs.map +2 -2
  18. package/dist/{chunk-GSLM4BKO.mjs → chunk-IJBHWAI6.mjs} +109 -67
  19. package/dist/chunk-IJBHWAI6.mjs.map +7 -0
  20. package/dist/components/display/Badge.d.ts.map +1 -1
  21. package/dist/components/display/Badge.js +17 -7
  22. package/dist/components/display/Badge.js.map +1 -1
  23. package/dist/components/display/ProgressBar.d.ts.map +1 -1
  24. package/dist/components/display/ProgressBar.js +17 -7
  25. package/dist/components/display/ProgressBar.js.map +1 -1
  26. package/dist/components/index.js +100 -59
  27. package/dist/components/index.js.map +3 -3
  28. package/dist/components/index.mjs +1 -1
  29. package/dist/components/inputs/CheckBox.d.ts.map +1 -1
  30. package/dist/components/inputs/CheckBox.js +3 -3
  31. package/dist/components/inputs/CheckBox.js.map +1 -1
  32. package/dist/components/inputs/Input.js +4 -1
  33. package/dist/components/inputs/Input.js.map +1 -1
  34. package/dist/components/inputs/RadioButton.d.ts.map +1 -1
  35. package/dist/components/inputs/RadioButton.js +9 -8
  36. package/dist/components/inputs/RadioButton.js.map +1 -1
  37. package/dist/components/layouts/Collapsible.d.ts.map +1 -1
  38. package/dist/components/layouts/Collapsible.js +32 -15
  39. package/dist/components/layouts/Collapsible.js.map +1 -1
  40. package/dist/index.js +100 -59
  41. package/dist/index.js.map +3 -3
  42. package/dist/index.mjs +1 -1
  43. package/dist/types/index.d.ts +27 -16
  44. package/dist/types/index.d.ts.map +1 -1
  45. package/package.json +19 -19
  46. package/dist/chunk-GSLM4BKO.mjs.map +0 -7
@@ -141,7 +141,8 @@ import {
141
141
  Text as RNText,
142
142
  LayoutAnimation,
143
143
  Platform,
144
- UIManager
144
+ UIManager,
145
+ StyleSheet
145
146
  } from "react-native";
146
147
  if (Platform.OS === "android" && UIManager.setLayoutAnimationEnabledExperimental) {
147
148
  UIManager.setLayoutAnimationEnabledExperimental(true);
@@ -163,11 +164,10 @@ function Collapsible({
163
164
  View2,
164
165
  {
165
166
  style: [
167
+ styles.wrapper,
166
168
  {
167
- borderWidth: 1,
168
169
  borderColor: theme.colors.border,
169
- borderRadius: theme.borderRadius.md,
170
- overflow: "hidden"
170
+ borderRadius: theme.borderRadius.md
171
171
  },
172
172
  style
173
173
  ],
@@ -178,29 +178,47 @@ function Collapsible({
178
178
  {
179
179
  activeOpacity: 0.7,
180
180
  onPress: toggleExpanded,
181
- style: {
182
- flexDirection: "row",
183
- justifyContent: "space-between",
184
- alignItems: "center",
185
- padding: theme.spacing.md,
186
- backgroundColor: theme.colors.surface
187
- }
181
+ style: [
182
+ styles.header,
183
+ {
184
+ padding: theme.spacing.md,
185
+ backgroundColor: theme.colors.surface
186
+ }
187
+ ]
188
188
  },
189
- /* @__PURE__ */ React2.createElement(RNText, { style: [theme.typography.body1, { color: theme.colors.text, fontWeight: "600" }] }, title),
189
+ /* @__PURE__ */ React2.createElement(RNText, { style: [theme.typography.body1, styles.headerText, { color: theme.colors.text }] }, title),
190
190
  /* @__PURE__ */ React2.createElement(RNText, { style: [theme.typography.h3, { color: theme.colors.textSecondary }] }, expanded ? "\u2212" : "+")
191
191
  ),
192
192
  expanded && /* @__PURE__ */ React2.createElement(
193
193
  View2,
194
194
  {
195
- style: {
196
- padding: theme.spacing.md,
197
- backgroundColor: theme.colors.background
198
- }
195
+ style: [
196
+ styles.content,
197
+ {
198
+ padding: theme.spacing.md,
199
+ backgroundColor: theme.colors.background
200
+ }
201
+ ]
199
202
  },
200
203
  children
201
204
  )
202
205
  );
203
206
  }
207
+ var styles = StyleSheet.create({
208
+ wrapper: {
209
+ borderWidth: 1,
210
+ overflow: "hidden"
211
+ },
212
+ header: {
213
+ flexDirection: "row",
214
+ justifyContent: "space-between",
215
+ alignItems: "center"
216
+ },
217
+ headerText: {
218
+ fontWeight: "600"
219
+ },
220
+ content: {}
221
+ });
204
222
 
205
223
  // src/components/typography/Text.tsx
206
224
  import React3 from "react";
@@ -266,7 +284,7 @@ function Overline(props) {
266
284
 
267
285
  // src/components/inputs/Button.tsx
268
286
  import React4 from "react";
269
- import { TouchableOpacity as TouchableOpacity2, View as View3, StyleSheet, ActivityIndicator } from "react-native";
287
+ import { TouchableOpacity as TouchableOpacity2, View as View3, StyleSheet as StyleSheet2, ActivityIndicator } from "react-native";
270
288
  function Button({
271
289
  label,
272
290
  onPress,
@@ -333,7 +351,7 @@ function Button({
333
351
  }
334
352
  };
335
353
  const buttonStyle = [
336
- styles.button,
354
+ styles2.button,
337
355
  {
338
356
  ...getVariantStyle(),
339
357
  ...getSizeStyle(),
@@ -351,18 +369,18 @@ function Button({
351
369
  disabled: disabled || loading,
352
370
  testID
353
371
  },
354
- /* @__PURE__ */ React4.createElement(View3, { style: styles.content }, loading ? /* @__PURE__ */ React4.createElement(ActivityIndicator, { color: textColor, size: size === "small" ? "small" : "large" }) : /* @__PURE__ */ React4.createElement(React4.Fragment, null, icon && /* @__PURE__ */ React4.createElement(View3, { style: styles.icon }, icon), /* @__PURE__ */ React4.createElement(
372
+ /* @__PURE__ */ React4.createElement(View3, { style: styles2.content }, loading ? /* @__PURE__ */ React4.createElement(ActivityIndicator, { color: textColor, size: size === "small" ? "small" : "large" }) : /* @__PURE__ */ React4.createElement(React4.Fragment, null, icon && /* @__PURE__ */ React4.createElement(View3, { style: styles2.icon }, icon), /* @__PURE__ */ React4.createElement(
355
373
  Text,
356
374
  {
357
375
  variant: size === "small" ? "body3" : "body1",
358
376
  color: textColor,
359
- style: styles.label
377
+ style: styles2.label
360
378
  },
361
379
  label
362
380
  )))
363
381
  );
364
382
  }
365
- var styles = StyleSheet.create({
383
+ var styles2 = StyleSheet2.create({
366
384
  button: {
367
385
  justifyContent: "center",
368
386
  alignItems: "center",
@@ -383,7 +401,7 @@ var styles = StyleSheet.create({
383
401
 
384
402
  // src/components/inputs/Input.tsx
385
403
  import React5 from "react";
386
- import { TextInput, View as View4, Text as RNText3, StyleSheet as StyleSheet2 } from "react-native";
404
+ import { TextInput, View as View4, Text as RNText3, StyleSheet as StyleSheet3 } from "react-native";
387
405
  function Input({
388
406
  value,
389
407
  onChangeText,
@@ -399,7 +417,7 @@ function Input({
399
417
  testID
400
418
  }) {
401
419
  const { theme } = useTheme();
402
- return /* @__PURE__ */ React5.createElement(View4, { style: [styles2.container, style] }, label && /* @__PURE__ */ React5.createElement(
420
+ return /* @__PURE__ */ React5.createElement(View4, { style: [styles3.container, style] }, label && /* @__PURE__ */ React5.createElement(
403
421
  RNText3,
404
422
  {
405
423
  style: [
@@ -426,8 +444,8 @@ function Input({
426
444
  testID,
427
445
  style: [
428
446
  theme.typography.body1,
447
+ styles3.input,
429
448
  {
430
- borderWidth: 1,
431
449
  borderColor: error ? theme.colors.error : theme.colors.border,
432
450
  borderRadius: theme.borderRadius.sm,
433
451
  padding: theme.spacing.md,
@@ -448,15 +466,18 @@ function Input({
448
466
  error
449
467
  ));
450
468
  }
451
- var styles2 = StyleSheet2.create({
469
+ var styles3 = StyleSheet3.create({
452
470
  container: {
453
471
  width: "100%"
472
+ },
473
+ input: {
474
+ borderWidth: 1
454
475
  }
455
476
  });
456
477
 
457
478
  // src/components/inputs/CheckBox.tsx
458
479
  import React6 from "react";
459
- import { TouchableOpacity as TouchableOpacity3, View as View5, Text as RNText4, StyleSheet as StyleSheet3 } from "react-native";
480
+ import { TouchableOpacity as TouchableOpacity3, View as View5, Text as RNText4, StyleSheet as StyleSheet4 } from "react-native";
460
481
  function CheckBox({
461
482
  value,
462
483
  onValueChange,
@@ -472,25 +493,22 @@ function CheckBox({
472
493
  activeOpacity: 0.7,
473
494
  onPress: () => !disabled && onValueChange(!value),
474
495
  disabled,
475
- style: [styles3.container, style],
496
+ style: [styles4.container, style],
476
497
  testID
477
498
  },
478
499
  /* @__PURE__ */ React6.createElement(
479
500
  View5,
480
501
  {
481
502
  style: [
482
- styles3.checkbox,
503
+ styles4.checkbox,
483
504
  {
484
- borderWidth: 2,
485
505
  borderColor: disabled ? theme.colors.disabled : value ? theme.colors.primary : theme.colors.border,
486
506
  backgroundColor: disabled ? theme.colors.disabled : value ? theme.colors.primary : "transparent",
487
- borderRadius: theme.borderRadius.xs,
488
- width: 24,
489
- height: 24
507
+ borderRadius: theme.borderRadius.xs
490
508
  }
491
509
  ]
492
510
  },
493
- value && /* @__PURE__ */ React6.createElement(RNText4, { style: [styles3.checkmark, { color: theme.colors.white }] }, "\u2713")
511
+ value && /* @__PURE__ */ React6.createElement(RNText4, { style: [styles4.checkmark, { color: theme.colors.white }] }, "\u2713")
494
512
  ),
495
513
  label && /* @__PURE__ */ React6.createElement(
496
514
  RNText4,
@@ -507,14 +525,17 @@ function CheckBox({
507
525
  )
508
526
  );
509
527
  }
510
- var styles3 = StyleSheet3.create({
528
+ var styles4 = StyleSheet4.create({
511
529
  container: {
512
530
  flexDirection: "row",
513
531
  alignItems: "center"
514
532
  },
515
533
  checkbox: {
516
534
  justifyContent: "center",
517
- alignItems: "center"
535
+ alignItems: "center",
536
+ borderWidth: 2,
537
+ width: 24,
538
+ height: 24
518
539
  },
519
540
  checkmark: {
520
541
  fontSize: 16,
@@ -524,7 +545,7 @@ var styles3 = StyleSheet3.create({
524
545
 
525
546
  // src/components/inputs/RadioButton.tsx
526
547
  import React7 from "react";
527
- import { TouchableOpacity as TouchableOpacity4, View as View6, Text as RNText5, StyleSheet as StyleSheet4 } from "react-native";
548
+ import { TouchableOpacity as TouchableOpacity4, View as View6, Text as RNText5, StyleSheet as StyleSheet5 } from "react-native";
528
549
  function RadioButton({
529
550
  value,
530
551
  selected,
@@ -542,20 +563,16 @@ function RadioButton({
542
563
  activeOpacity: 0.7,
543
564
  onPress: () => !disabled && onSelect(value),
544
565
  disabled,
545
- style: [styles4.container, style],
566
+ style: [styles5.container, style],
546
567
  testID
547
568
  },
548
569
  /* @__PURE__ */ React7.createElement(
549
570
  View6,
550
571
  {
551
572
  style: [
552
- styles4.radio,
573
+ styles5.radio,
553
574
  {
554
- borderWidth: 2,
555
- borderColor: disabled ? theme.colors.disabled : isSelected ? theme.colors.primary : theme.colors.border,
556
- width: 24,
557
- height: 24,
558
- borderRadius: 12
575
+ borderColor: disabled ? theme.colors.disabled : isSelected ? theme.colors.primary : theme.colors.border
559
576
  }
560
577
  ]
561
578
  },
@@ -563,12 +580,9 @@ function RadioButton({
563
580
  View6,
564
581
  {
565
582
  style: [
566
- styles4.radioInner,
583
+ styles5.radioInner,
567
584
  {
568
- backgroundColor: disabled ? theme.colors.disabled : theme.colors.primary,
569
- width: 12,
570
- height: 12,
571
- borderRadius: 6
585
+ backgroundColor: disabled ? theme.colors.disabled : theme.colors.primary
572
586
  }
573
587
  ]
574
588
  }
@@ -589,16 +603,24 @@ function RadioButton({
589
603
  )
590
604
  );
591
605
  }
592
- var styles4 = StyleSheet4.create({
606
+ var styles5 = StyleSheet5.create({
593
607
  container: {
594
608
  flexDirection: "row",
595
609
  alignItems: "center"
596
610
  },
597
611
  radio: {
598
612
  justifyContent: "center",
599
- alignItems: "center"
613
+ alignItems: "center",
614
+ borderWidth: 2,
615
+ width: 24,
616
+ height: 24,
617
+ borderRadius: 12
600
618
  },
601
- radioInner: {}
619
+ radioInner: {
620
+ width: 12,
621
+ height: 12,
622
+ borderRadius: 6
623
+ }
602
624
  });
603
625
 
604
626
  // src/components/inputs/Switch.tsx
@@ -626,7 +648,7 @@ function Switch({ value, onValueChange, disabled = false, style, testID }) {
626
648
 
627
649
  // src/components/display/ProgressBar.tsx
628
650
  import React9 from "react";
629
- import { View as View7 } from "react-native";
651
+ import { View as View7, StyleSheet as StyleSheet6 } from "react-native";
630
652
  function ProgressBar({
631
653
  progress,
632
654
  height = 8,
@@ -642,11 +664,11 @@ function ProgressBar({
642
664
  View7,
643
665
  {
644
666
  style: [
667
+ styles6.track,
645
668
  {
646
669
  height,
647
670
  backgroundColor: backgroundColor || theme.colors.border,
648
- borderRadius: theme.borderRadius[borderRadius],
649
- overflow: "hidden"
671
+ borderRadius: theme.borderRadius[borderRadius]
650
672
  },
651
673
  style
652
674
  ],
@@ -655,19 +677,29 @@ function ProgressBar({
655
677
  /* @__PURE__ */ React9.createElement(
656
678
  View7,
657
679
  {
658
- style: {
659
- height: "100%",
660
- width: `${clampedProgress * 100}%`,
661
- backgroundColor: color || theme.colors.primary
662
- }
680
+ style: [
681
+ styles6.fill,
682
+ {
683
+ width: `${clampedProgress * 100}%`,
684
+ backgroundColor: color || theme.colors.primary
685
+ }
686
+ ]
663
687
  }
664
688
  )
665
689
  );
666
690
  }
691
+ var styles6 = StyleSheet6.create({
692
+ track: {
693
+ overflow: "hidden"
694
+ },
695
+ fill: {
696
+ height: "100%"
697
+ }
698
+ });
667
699
 
668
700
  // src/components/display/Badge.tsx
669
701
  import React10 from "react";
670
- import { View as View8, Text as RNText6 } from "react-native";
702
+ import { View as View8, Text as RNText6, StyleSheet as StyleSheet7 } from "react-native";
671
703
  function Badge({
672
704
  children,
673
705
  variant = "primary",
@@ -705,10 +737,10 @@ function Badge({
705
737
  View8,
706
738
  {
707
739
  style: [
740
+ styles7.badge,
708
741
  {
709
742
  backgroundColor: variantColors[variant],
710
743
  borderRadius: theme.borderRadius.full,
711
- alignSelf: "flex-start",
712
744
  ...sizeStyles[size]
713
745
  },
714
746
  style
@@ -718,16 +750,26 @@ function Badge({
718
750
  /* @__PURE__ */ React10.createElement(
719
751
  RNText6,
720
752
  {
721
- style: {
722
- color: theme.colors.white,
723
- fontSize: sizeStyles[size].fontSize,
724
- fontWeight: "600"
725
- }
753
+ style: [
754
+ styles7.text,
755
+ {
756
+ color: theme.colors.white,
757
+ fontSize: sizeStyles[size].fontSize
758
+ }
759
+ ]
726
760
  },
727
761
  children
728
762
  )
729
763
  );
730
764
  }
765
+ var styles7 = StyleSheet7.create({
766
+ badge: {
767
+ alignSelf: "flex-start"
768
+ },
769
+ text: {
770
+ fontWeight: "600"
771
+ }
772
+ });
731
773
 
732
774
  // src/components/display/Divider.tsx
733
775
  import React11 from "react";
@@ -786,4 +828,4 @@ export {
786
828
  Badge,
787
829
  Divider
788
830
  };
789
- //# sourceMappingURL=chunk-GSLM4BKO.mjs.map
831
+ //# sourceMappingURL=chunk-IJBHWAI6.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/components/layouts/Box.tsx", "../src/components/layouts/Collapsible.tsx", "../src/components/typography/Text.tsx", "../src/components/inputs/Button.tsx", "../src/components/inputs/Input.tsx", "../src/components/inputs/CheckBox.tsx", "../src/components/inputs/RadioButton.tsx", "../src/components/inputs/Switch.tsx", "../src/components/display/ProgressBar.tsx", "../src/components/display/Badge.tsx", "../src/components/display/Divider.tsx"],
4
+ "sourcesContent": ["import React from 'react';\nimport { View, ViewProps } from 'react-native';\nimport { useTheme } from '@theme/index';\nimport type { BoxProps } from '../../types/index';\n\n/**\n * Box - Base layout component with flexbox support\n * Serves as the foundation for building custom layouts\n */\nexport function Box({\n children,\n flex,\n flexDirection,\n alignItems,\n justifyContent,\n flexWrap,\n padding,\n paddingHorizontal,\n paddingVertical,\n margin,\n marginHorizontal,\n marginVertical,\n gap,\n backgroundColor,\n borderRadius,\n width,\n height,\n style,\n testID,\n}: BoxProps) {\n const { theme } = useTheme();\n\n const boxStyle: ViewProps['style'] = [\n flex !== undefined && { flex },\n flexDirection && { flexDirection },\n alignItems && { alignItems },\n justifyContent && { justifyContent },\n flexWrap && { flexWrap },\n width !== undefined && { width },\n height !== undefined && { height },\n padding && { padding: theme.spacing[padding] },\n paddingHorizontal && { paddingHorizontal: theme.spacing[paddingHorizontal] },\n paddingVertical && { paddingVertical: theme.spacing[paddingVertical] },\n margin && { margin: theme.spacing[margin] },\n marginHorizontal && { marginHorizontal: theme.spacing[marginHorizontal] },\n marginVertical && { marginVertical: theme.spacing[marginVertical] },\n gap && { gap: theme.spacing[gap] },\n backgroundColor && { backgroundColor },\n borderRadius && { borderRadius: theme.borderRadius[borderRadius] },\n style,\n ];\n\n return (\n <View style={boxStyle} testID={testID}>\n {children}\n </View>\n );\n}\n\n/**\n * Row - Horizontal flex container\n * Equivalent to flexDirection: 'row'\n */\nexport function Row({\n children,\n flex,\n alignItems = 'center',\n justifyContent,\n flexWrap,\n padding,\n paddingHorizontal,\n paddingVertical,\n margin,\n marginHorizontal,\n marginVertical,\n gap,\n backgroundColor,\n borderRadius,\n width,\n height,\n style,\n testID,\n}: BoxProps) {\n const { theme } = useTheme();\n\n const rowStyle: ViewProps['style'] = [\n { flexDirection: 'row' },\n flex !== undefined && { flex },\n alignItems && { alignItems },\n justifyContent && { justifyContent },\n flexWrap && { flexWrap },\n width !== undefined && { width },\n height !== undefined && { height },\n padding && { padding: theme.spacing[padding] },\n paddingHorizontal && { paddingHorizontal: theme.spacing[paddingHorizontal] },\n paddingVertical && { paddingVertical: theme.spacing[paddingVertical] },\n margin && { margin: theme.spacing[margin] },\n marginHorizontal && { marginHorizontal: theme.spacing[marginHorizontal] },\n marginVertical && { marginVertical: theme.spacing[marginVertical] },\n gap && { gap: theme.spacing[gap] },\n backgroundColor && { backgroundColor },\n borderRadius && { borderRadius: theme.borderRadius[borderRadius] },\n style,\n ];\n\n return (\n <View style={rowStyle} testID={testID}>\n {children}\n </View>\n );\n}\n\n/**\n * Column - Vertical flex container\n * Equivalent to flexDirection: 'column'\n */\nexport function Column({\n children,\n flex,\n alignItems,\n justifyContent,\n flexWrap,\n padding,\n paddingHorizontal,\n paddingVertical,\n margin,\n marginHorizontal,\n marginVertical,\n gap,\n backgroundColor,\n borderRadius,\n width,\n height,\n style,\n testID,\n}: BoxProps) {\n const { theme } = useTheme();\n\n const columnStyle: ViewProps['style'] = [\n { flexDirection: 'column' },\n flex !== undefined && { flex },\n alignItems && { alignItems },\n justifyContent && { justifyContent },\n flexWrap && { flexWrap },\n width !== undefined && { width },\n height !== undefined && { height },\n padding && { padding: theme.spacing[padding] },\n paddingHorizontal && { paddingHorizontal: theme.spacing[paddingHorizontal] },\n paddingVertical && { paddingVertical: theme.spacing[paddingVertical] },\n margin && { margin: theme.spacing[margin] },\n marginHorizontal && { marginHorizontal: theme.spacing[marginHorizontal] },\n marginVertical && { marginVertical: theme.spacing[marginVertical] },\n gap && { gap: theme.spacing[gap] },\n backgroundColor && { backgroundColor },\n borderRadius && { borderRadius: theme.borderRadius[borderRadius] },\n style,\n ];\n\n return (\n <View style={columnStyle} testID={testID}>\n {children}\n </View>\n );\n}\n", "import React, { useState } from 'react';\nimport {\n TouchableOpacity,\n View,\n Text as RNText,\n LayoutAnimation,\n Platform,\n UIManager,\n StyleSheet,\n} from 'react-native';\nimport { useTheme } from '../../theme/index';\nimport type { CollapsibleProps } from '../../types/index';\n\n// Enable LayoutAnimation on Android\nif (Platform.OS === 'android' && UIManager.setLayoutAnimationEnabledExperimental) {\n UIManager.setLayoutAnimationEnabledExperimental(true);\n}\n\n/**\n * Collapsible component for expandable/collapsible sections\n */\nexport function Collapsible({\n title,\n children,\n initiallyExpanded = false,\n style,\n testID,\n}: CollapsibleProps) {\n const { theme } = useTheme();\n const [expanded, setExpanded] = useState(initiallyExpanded);\n\n const toggleExpanded = () => {\n LayoutAnimation.configureNext(LayoutAnimation.Presets.easeInEaseOut);\n setExpanded(!expanded);\n };\n\n return (\n <View\n style={[\n styles.wrapper,\n {\n borderColor: theme.colors.border,\n borderRadius: theme.borderRadius.md,\n },\n style,\n ]}\n testID={testID}\n >\n <TouchableOpacity\n activeOpacity={0.7}\n onPress={toggleExpanded}\n style={[\n styles.header,\n {\n padding: theme.spacing.md,\n backgroundColor: theme.colors.surface,\n },\n ]}\n >\n <RNText style={[theme.typography.body1, styles.headerText, { color: theme.colors.text }]}>\n {title}\n </RNText>\n <RNText style={[theme.typography.h3, { color: theme.colors.textSecondary }]}>\n {expanded ? '\u2212' : '+'}\n </RNText>\n </TouchableOpacity>\n {expanded && (\n <View\n style={[\n styles.content,\n {\n padding: theme.spacing.md,\n backgroundColor: theme.colors.background,\n },\n ]}\n >\n {children}\n </View>\n )}\n </View>\n );\n}\n\nconst styles = StyleSheet.create({\n wrapper: {\n borderWidth: 1,\n overflow: 'hidden',\n },\n header: {\n flexDirection: 'row',\n justifyContent: 'space-between',\n alignItems: 'center',\n },\n headerText: {\n fontWeight: '600',\n },\n content: {},\n});\n", "import React from 'react';\nimport { Text as RNText, TextProps as RNTextProps } from 'react-native';\nimport { useTheme } from '@theme/index';\nimport type { TextProps } from '../../types/index';\n\n/**\n * Base Text component with theme support\n */\nexport function Text({ children, variant = 'body1', color, textAlign, style, testID }: TextProps) {\n const { theme } = useTheme();\n\n const textStyle: RNTextProps['style'] = [\n theme.typography[variant],\n { color: color || theme.colors.text },\n textAlign && { textAlign },\n style,\n ];\n\n return (\n <RNText style={textStyle} testID={testID}>\n {children}\n </RNText>\n );\n}\n\n/**\n * Typography components - Convenience components for common sizes\n */\n\nexport function H1(props: TextProps) {\n return <Text {...props} variant={'h1'} />;\n}\n\nexport function H2(props: TextProps) {\n return <Text {...props} variant={'h2'} />;\n}\n\nexport function H3(props: TextProps) {\n return <Text {...props} variant={'h3'} />;\n}\n\nexport function H4(props: TextProps) {\n return <Text {...props} variant={'h4'} />;\n}\n\nexport function H5(props: TextProps) {\n return <Text {...props} variant={'h5'} />;\n}\n\nexport function H6(props: TextProps) {\n return <Text {...props} variant={'h6'} />;\n}\n\nexport function Body1(props: TextProps) {\n return <Text {...props} variant={'body1'} />;\n}\n\nexport function Body2(props: TextProps) {\n return <Text {...props} variant={'body2'} />;\n}\n\nexport function Body3(props: TextProps) {\n return <Text {...props} variant={'body3'} />;\n}\n\nexport function Body4(props: TextProps) {\n return <Text {...props} variant={'body4'} />;\n}\n\nexport function Body5(props: TextProps) {\n return <Text {...props} variant={'body5'} />;\n}\n\nexport function Body6(props: TextProps) {\n return <Text {...props} variant={'body6'} />;\n}\n\nexport function SubTitle1(props: TextProps) {\n return <Text {...props} variant={'subtitle1'} />;\n}\n\nexport function SubTitle2(props: TextProps) {\n return <Text {...props} variant={'subtitle2'} />;\n}\n\nexport function Caption(props: TextProps) {\n return <Text {...props} variant={'caption'} />;\n}\n\nexport function Overline(props: TextProps) {\n return <Text {...props} variant={'overline'} />;\n}\n", "import React from 'react';\nimport { TouchableOpacity, View, StyleSheet, ActivityIndicator } from 'react-native';\nimport { useTheme } from '@theme/index';\nimport type { ButtonProps } from '../../types/index';\nimport { Text } from '../typography/Text';\n\n/**\n * Button component with multiple variants and sizes\n */\nexport function Button({\n label,\n onPress,\n variant = 'primary',\n size = 'medium',\n disabled = false,\n loading = false,\n icon,\n style,\n testID,\n}: ButtonProps) {\n const { theme } = useTheme();\n\n // Get variant colors\n const getVariantStyle = () => {\n switch (variant) {\n case 'primary':\n return {\n backgroundColor: theme.colors.primary,\n borderColor: theme.colors.primary,\n };\n case 'secondary':\n return {\n backgroundColor: theme.colors.secondary,\n borderColor: theme.colors.secondary,\n };\n case 'danger':\n return {\n backgroundColor: theme.colors.error,\n borderColor: theme.colors.error,\n };\n case 'ghost':\n return {\n backgroundColor: 'transparent',\n borderColor: theme.colors.primary,\n borderWidth: 1,\n };\n default:\n return {\n backgroundColor: theme.colors.primary,\n borderColor: theme.colors.primary,\n };\n }\n };\n\n // Get size dimensions\n const getSizeStyle = () => {\n switch (size) {\n case 'small':\n return {\n paddingHorizontal: theme.spacing.md,\n paddingVertical: theme.spacing.sm,\n minHeight: 32,\n };\n case 'large':\n return {\n paddingHorizontal: theme.spacing.lg,\n paddingVertical: theme.spacing.md,\n minHeight: 56,\n };\n case 'medium':\n default:\n return {\n paddingHorizontal: theme.spacing.lg,\n paddingVertical: theme.spacing.md,\n minHeight: 48,\n };\n }\n };\n\n const buttonStyle = [\n styles.button,\n {\n ...getVariantStyle(),\n ...getSizeStyle(),\n borderRadius: theme.borderRadius.md,\n opacity: disabled || loading ? 0.5 : 1,\n },\n style,\n ];\n\n const textColor = variant === 'ghost' ? theme.colors.primary : theme.colors.white;\n\n return (\n <TouchableOpacity\n style={buttonStyle}\n onPress={onPress}\n disabled={disabled || loading}\n testID={testID}\n >\n <View style={styles.content}>\n {loading ? (\n <ActivityIndicator color={textColor} size={size === 'small' ? 'small' : 'large'} />\n ) : (\n <>\n {icon && <View style={styles.icon}>{icon}</View>}\n <Text\n variant={size === 'small' ? 'body3' : 'body1'}\n color={textColor}\n style={styles.label}\n >\n {label}\n </Text>\n </>\n )}\n </View>\n </TouchableOpacity>\n );\n}\n\nconst styles = StyleSheet.create({\n button: {\n justifyContent: 'center',\n alignItems: 'center',\n flexDirection: 'row',\n },\n content: {\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'center',\n },\n icon: {\n marginRight: 8,\n },\n label: {\n fontWeight: '600',\n },\n});\n", "import React from 'react';\nimport { TextInput, View, Text as RNText, StyleSheet } from 'react-native';\nimport { useTheme } from '../../theme/index';\nimport type { InputProps } from '../../types/index';\n\n/**\n * Input component with theme support\n */\nexport function Input({\n value,\n onChangeText,\n placeholder,\n label,\n error,\n editable = true,\n secureTextEntry = false,\n keyboardType = 'default',\n multiline = false,\n numberOfLines = 1,\n style,\n testID,\n}: InputProps) {\n const { theme } = useTheme();\n\n return (\n <View style={[styles.container, style]}>\n {label && (\n <RNText\n style={[\n theme.typography.body2,\n {\n color: error ? theme.colors.error : theme.colors.textSecondary,\n marginBottom: theme.spacing.xs,\n },\n ]}\n >\n {label}\n </RNText>\n )}\n <TextInput\n value={value}\n onChangeText={onChangeText}\n placeholder={placeholder}\n placeholderTextColor={theme.colors.textTertiary}\n editable={editable}\n secureTextEntry={secureTextEntry}\n keyboardType={keyboardType}\n multiline={multiline}\n numberOfLines={multiline ? numberOfLines : 1}\n testID={testID}\n style={[\n theme.typography.body1,\n styles.input,\n {\n borderColor: error ? theme.colors.error : theme.colors.border,\n borderRadius: theme.borderRadius.sm,\n padding: theme.spacing.md,\n color: theme.colors.text,\n backgroundColor: editable ? theme.colors.surface : theme.colors.disabled,\n minHeight: multiline ? numberOfLines * 24 + theme.spacing.md * 2 : undefined,\n },\n ]}\n />\n {error && (\n <RNText\n style={[\n theme.typography.caption,\n { color: theme.colors.error, marginTop: theme.spacing.xs },\n ]}\n >\n {error}\n </RNText>\n )}\n </View>\n );\n}\n\nconst styles = StyleSheet.create({\n container: {\n width: '100%',\n },\n input: {\n borderWidth: 1,\n },\n});\n", "import React from 'react';\nimport { TouchableOpacity, View, Text as RNText, StyleSheet } from 'react-native';\nimport { useTheme } from '../../theme/index';\nimport type { CheckBoxProps } from '../../types/index';\n\n/**\n * CheckBox component with theme support\n */\nexport function CheckBox({\n value,\n onValueChange,\n label,\n disabled = false,\n style,\n testID,\n}: CheckBoxProps) {\n const { theme } = useTheme();\n\n return (\n <TouchableOpacity\n activeOpacity={0.7}\n onPress={() => !disabled && onValueChange(!value)}\n disabled={disabled}\n style={[styles.container, style]}\n testID={testID}\n >\n <View\n style={[\n styles.checkbox,\n {\n borderColor: disabled\n ? theme.colors.disabled\n : value\n ? theme.colors.primary\n : theme.colors.border,\n backgroundColor: disabled\n ? theme.colors.disabled\n : value\n ? theme.colors.primary\n : 'transparent',\n borderRadius: theme.borderRadius.xs,\n },\n ]}\n >\n {value && <RNText style={[styles.checkmark, { color: theme.colors.white }]}>\u2713</RNText>}\n </View>\n {label && (\n <RNText\n style={[\n theme.typography.body1,\n {\n color: disabled ? theme.colors.textTertiary : theme.colors.text,\n marginLeft: theme.spacing.sm,\n },\n ]}\n >\n {label}\n </RNText>\n )}\n </TouchableOpacity>\n );\n}\n\nconst styles = StyleSheet.create({\n container: {\n flexDirection: 'row',\n alignItems: 'center',\n },\n checkbox: {\n justifyContent: 'center',\n alignItems: 'center',\n borderWidth: 2,\n width: 24,\n height: 24,\n },\n checkmark: {\n fontSize: 16,\n fontWeight: 'bold',\n },\n});\n", "import React from 'react';\nimport { TouchableOpacity, View, Text as RNText, StyleSheet } from 'react-native';\nimport { useTheme } from '../../theme/index';\nimport type { RadioButtonProps } from '../../types/index';\n\n/**\n * RadioButton component with theme support\n */\nexport function RadioButton({\n value,\n selected,\n onSelect,\n label,\n disabled = false,\n style,\n testID,\n}: RadioButtonProps) {\n const { theme } = useTheme();\n const isSelected = value === selected;\n\n return (\n <TouchableOpacity\n activeOpacity={0.7}\n onPress={() => !disabled && onSelect(value)}\n disabled={disabled}\n style={[styles.container, style]}\n testID={testID}\n >\n <View\n style={[\n styles.radio,\n {\n borderColor: disabled\n ? theme.colors.disabled\n : isSelected\n ? theme.colors.primary\n : theme.colors.border,\n },\n ]}\n >\n {isSelected && (\n <View\n style={[\n styles.radioInner,\n {\n backgroundColor: disabled ? theme.colors.disabled : theme.colors.primary,\n },\n ]}\n />\n )}\n </View>\n {label && (\n <RNText\n style={[\n theme.typography.body1,\n {\n color: disabled ? theme.colors.textTertiary : theme.colors.text,\n marginLeft: theme.spacing.sm,\n },\n ]}\n >\n {label}\n </RNText>\n )}\n </TouchableOpacity>\n );\n}\n\nconst styles = StyleSheet.create({\n container: {\n flexDirection: 'row',\n alignItems: 'center',\n },\n radio: {\n justifyContent: 'center',\n alignItems: 'center',\n borderWidth: 2,\n width: 24,\n height: 24,\n borderRadius: 12,\n },\n radioInner: {\n width: 12,\n height: 12,\n borderRadius: 6,\n },\n});\n", "import React from 'react';\nimport { Switch as RNSwitch } from 'react-native';\nimport { useTheme } from '../../theme/index';\nimport type { SwitchProps } from '../../types/index';\n\n/**\n * Switch component with theme support\n */\nexport function Switch({ value, onValueChange, disabled = false, style, testID }: SwitchProps) {\n const { theme } = useTheme();\n\n return (\n <RNSwitch\n value={value}\n onValueChange={onValueChange}\n disabled={disabled}\n trackColor={{\n false: theme.colors.border,\n true: theme.colors.primary,\n }}\n thumbColor={theme.colors.white}\n ios_backgroundColor={theme.colors.border}\n style={style}\n testID={testID}\n />\n );\n}\n", "import React from 'react';\nimport { View, StyleSheet } from 'react-native';\nimport { useTheme } from '../../theme/index';\nimport type { ProgressBarProps } from '../../types/index';\n\n/**\n * ProgressBar component with theme support\n */\nexport function ProgressBar({\n progress,\n height = 8,\n color,\n backgroundColor,\n borderRadius = 'full',\n style,\n testID,\n}: ProgressBarProps) {\n const { theme } = useTheme();\n\n // Clamp progress between 0 and 1\n const clampedProgress = Math.max(0, Math.min(1, progress));\n\n return (\n <View\n style={[\n styles.track,\n {\n height,\n backgroundColor: backgroundColor || theme.colors.border,\n borderRadius: theme.borderRadius[borderRadius],\n },\n style,\n ]}\n testID={testID}\n >\n <View\n style={[\n styles.fill,\n {\n width: `${clampedProgress * 100}%`,\n backgroundColor: color || theme.colors.primary,\n },\n ]}\n />\n </View>\n );\n}\n\nconst styles = StyleSheet.create({\n track: {\n overflow: 'hidden',\n },\n fill: {\n height: '100%',\n },\n});\n", "import React from 'react';\nimport { View, Text as RNText, StyleSheet } from 'react-native';\nimport { useTheme } from '../../theme/index';\nimport type { BadgeProps } from '../../types/index';\n\n/**\n * Badge component for status indicators\n */\nexport function Badge({\n children,\n variant = 'primary',\n size = 'medium',\n style,\n testID,\n}: BadgeProps) {\n const { theme } = useTheme();\n\n const variantColors = {\n primary: theme.colors.primary,\n secondary: theme.colors.secondary,\n success: theme.colors.success,\n error: theme.colors.error,\n warning: theme.colors.warning,\n info: theme.colors.info,\n };\n\n const sizeStyles = {\n small: {\n paddingHorizontal: theme.spacing.xs,\n paddingVertical: theme.spacing.xs / 2,\n fontSize: 10,\n },\n medium: {\n paddingHorizontal: theme.spacing.sm,\n paddingVertical: theme.spacing.xs,\n fontSize: 12,\n },\n large: {\n paddingHorizontal: theme.spacing.md,\n paddingVertical: theme.spacing.sm,\n fontSize: 14,\n },\n };\n\n return (\n <View\n style={[\n styles.badge,\n {\n backgroundColor: variantColors[variant],\n borderRadius: theme.borderRadius.full,\n ...sizeStyles[size],\n },\n style,\n ]}\n testID={testID}\n >\n <RNText\n style={[\n styles.text,\n {\n color: theme.colors.white,\n fontSize: sizeStyles[size].fontSize,\n },\n ]}\n >\n {children}\n </RNText>\n </View>\n );\n}\n\nconst styles = StyleSheet.create({\n badge: {\n alignSelf: 'flex-start',\n },\n text: {\n fontWeight: '600',\n },\n});\n", "import React from 'react';\nimport { View } from 'react-native';\nimport { useTheme } from '../../theme/index';\nimport type { DividerProps } from '../../types/index';\n\n/**\n * Divider component for visual separation\n */\nexport function Divider({\n orientation = 'horizontal',\n thickness = 1,\n color,\n style,\n testID,\n}: DividerProps) {\n const { theme } = useTheme();\n\n return (\n <View\n style={[\n {\n backgroundColor: color || theme.colors.border,\n ...(orientation === 'horizontal'\n ? { height: thickness, width: '100%' }\n : { width: thickness, height: '100%' }),\n },\n style,\n ]}\n testID={testID}\n />\n );\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["React", "View", "React", "View", "React", "RNText", "React", "RNText", "React", "TouchableOpacity", "View", "StyleSheet", "styles", "React", "TouchableOpacity", "View", "StyleSheet", "React", "View", "RNText", "StyleSheet", "React", "View", "styles", "RNText", "StyleSheet", "React", "TouchableOpacity", "View", "RNText", "StyleSheet", "React", "TouchableOpacity", "styles", "View", "RNText", "StyleSheet", "React", "TouchableOpacity", "View", "RNText", "StyleSheet", "React", "TouchableOpacity", "styles", "View", "RNText", "StyleSheet", "React", "React", "React", "View", "StyleSheet", "React", "View", "styles", "StyleSheet", "React", "View", "RNText", "StyleSheet", "React", "View", "styles", "RNText", "StyleSheet", "React", "View", "React", "View"]
7
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"Badge.d.ts","sourceRoot":"","sources":["../../../src/components/display/Badge.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD;;GAEG;AACH,wBAAgB,KAAK,CAAC,EACpB,QAAQ,EACR,OAAmB,EACnB,IAAe,EACf,KAAK,EACL,MAAM,GACP,EAAE,UAAU,qBAsDZ"}
1
+ {"version":3,"file":"Badge.d.ts","sourceRoot":"","sources":["../../../src/components/display/Badge.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD;;GAEG;AACH,wBAAgB,KAAK,CAAC,EACpB,QAAQ,EACR,OAAmB,EACnB,IAAe,EACf,KAAK,EACL,MAAM,GACP,EAAE,UAAU,qBAwDZ"}
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { View, Text as RNText } from 'react-native';
2
+ import { View, Text as RNText, StyleSheet } from 'react-native';
3
3
  import { useTheme } from '../../theme/index';
4
4
  /**
5
5
  * Badge component for status indicators
@@ -32,21 +32,31 @@ export function Badge({ children, variant = 'primary', size = 'medium', style, t
32
32
  },
33
33
  };
34
34
  return (<View style={[
35
+ styles.badge,
35
36
  {
36
37
  backgroundColor: variantColors[variant],
37
38
  borderRadius: theme.borderRadius.full,
38
- alignSelf: 'flex-start',
39
39
  ...sizeStyles[size],
40
40
  },
41
41
  style,
42
42
  ]} testID={testID}>
43
- <RNText style={{
44
- color: theme.colors.white,
45
- fontSize: sizeStyles[size].fontSize,
46
- fontWeight: '600',
47
- }}>
43
+ <RNText style={[
44
+ styles.text,
45
+ {
46
+ color: theme.colors.white,
47
+ fontSize: sizeStyles[size].fontSize,
48
+ },
49
+ ]}>
48
50
  {children}
49
51
  </RNText>
50
52
  </View>);
51
53
  }
54
+ const styles = StyleSheet.create({
55
+ badge: {
56
+ alignSelf: 'flex-start',
57
+ },
58
+ text: {
59
+ fontWeight: '600',
60
+ },
61
+ });
52
62
  //# sourceMappingURL=Badge.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Badge.js","sourceRoot":"","sources":["../../../src/components/display/Badge.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,IAAI,EAAE,IAAI,IAAI,MAAM,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAG7C;;GAEG;AACH,MAAM,UAAU,KAAK,CAAC,EACpB,QAAQ,EACR,OAAO,GAAG,SAAS,EACnB,IAAI,GAAG,QAAQ,EACf,KAAK,EACL,MAAM,GACK;IACX,MAAM,EAAE,KAAK,EAAE,GAAG,QAAQ,EAAE,CAAC;IAE7B,MAAM,aAAa,GAAG;QACpB,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO;QAC7B,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,SAAS;QACjC,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO;QAC7B,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK;QACzB,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO;QAC7B,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI;KACxB,CAAC;IAEF,MAAM,UAAU,GAAG;QACjB,KAAK,EAAE;YACL,iBAAiB,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;YACnC,eAAe,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC;YACrC,QAAQ,EAAE,EAAE;SACb;QACD,MAAM,EAAE;YACN,iBAAiB,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;YACnC,eAAe,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;YACjC,QAAQ,EAAE,EAAE;SACb;QACD,KAAK,EAAE;YACL,iBAAiB,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;YACnC,eAAe,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;YACjC,QAAQ,EAAE,EAAE;SACb;KACF,CAAC;IAEF,OAAO,CACL,CAAC,IAAI,CACH,KAAK,CAAC,CAAC;YACL;gBACE,eAAe,EAAE,aAAa,CAAC,OAAO,CAAC;gBACvC,YAAY,EAAE,KAAK,CAAC,YAAY,CAAC,IAAI;gBACrC,SAAS,EAAE,YAAY;gBACvB,GAAG,UAAU,CAAC,IAAI,CAAC;aACpB;YACD,KAAK;SACN,CAAC,CACF,MAAM,CAAC,CAAC,MAAM,CAAC,CAEf;MAAA,CAAC,MAAM,CACL,KAAK,CAAC,CAAC;YACL,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK;YACzB,QAAQ,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,QAAQ;YACnC,UAAU,EAAE,KAAK;SAClB,CAAC,CAEF;QAAA,CAAC,QAAQ,CACX;MAAA,EAAE,MAAM,CACV;IAAA,EAAE,IAAI,CAAC,CACR,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"Badge.js","sourceRoot":"","sources":["../../../src/components/display/Badge.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,IAAI,EAAE,IAAI,IAAI,MAAM,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAG7C;;GAEG;AACH,MAAM,UAAU,KAAK,CAAC,EACpB,QAAQ,EACR,OAAO,GAAG,SAAS,EACnB,IAAI,GAAG,QAAQ,EACf,KAAK,EACL,MAAM,GACK;IACX,MAAM,EAAE,KAAK,EAAE,GAAG,QAAQ,EAAE,CAAC;IAE7B,MAAM,aAAa,GAAG;QACpB,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO;QAC7B,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,SAAS;QACjC,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO;QAC7B,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK;QACzB,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO;QAC7B,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI;KACxB,CAAC;IAEF,MAAM,UAAU,GAAG;QACjB,KAAK,EAAE;YACL,iBAAiB,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;YACnC,eAAe,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC;YACrC,QAAQ,EAAE,EAAE;SACb;QACD,MAAM,EAAE;YACN,iBAAiB,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;YACnC,eAAe,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;YACjC,QAAQ,EAAE,EAAE;SACb;QACD,KAAK,EAAE;YACL,iBAAiB,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;YACnC,eAAe,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;YACjC,QAAQ,EAAE,EAAE;SACb;KACF,CAAC;IAEF,OAAO,CACL,CAAC,IAAI,CACH,KAAK,CAAC,CAAC;YACL,MAAM,CAAC,KAAK;YACZ;gBACE,eAAe,EAAE,aAAa,CAAC,OAAO,CAAC;gBACvC,YAAY,EAAE,KAAK,CAAC,YAAY,CAAC,IAAI;gBACrC,GAAG,UAAU,CAAC,IAAI,CAAC;aACpB;YACD,KAAK;SACN,CAAC,CACF,MAAM,CAAC,CAAC,MAAM,CAAC,CAEf;MAAA,CAAC,MAAM,CACL,KAAK,CAAC,CAAC;YACL,MAAM,CAAC,IAAI;YACX;gBACE,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK;gBACzB,QAAQ,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,QAAQ;aACpC;SACF,CAAC,CAEF;QAAA,CAAC,QAAQ,CACX;MAAA,EAAE,MAAM,CACV;IAAA,EAAE,IAAI,CAAC,CACR,CAAC;AACJ,CAAC;AAED,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;IAC/B,KAAK,EAAE;QACL,SAAS,EAAE,YAAY;KACxB;IACD,IAAI,EAAE;QACJ,UAAU,EAAE,KAAK;KAClB;CACF,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ProgressBar.d.ts","sourceRoot":"","sources":["../../../src/components/display/ProgressBar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAE1D;;GAEG;AACH,wBAAgB,WAAW,CAAC,EAC1B,QAAQ,EACR,MAAU,EACV,KAAK,EACL,eAAe,EACf,YAAqB,EACrB,KAAK,EACL,MAAM,GACP,EAAE,gBAAgB,qBA4BlB"}
1
+ {"version":3,"file":"ProgressBar.d.ts","sourceRoot":"","sources":["../../../src/components/display/ProgressBar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAE1D;;GAEG;AACH,wBAAgB,WAAW,CAAC,EAC1B,QAAQ,EACR,MAAU,EACV,KAAK,EACL,eAAe,EACf,YAAqB,EACrB,KAAK,EACL,MAAM,GACP,EAAE,gBAAgB,qBA8BlB"}
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { View } from 'react-native';
2
+ import { View, StyleSheet } from 'react-native';
3
3
  import { useTheme } from '../../theme/index';
4
4
  /**
5
5
  * ProgressBar component with theme support
@@ -9,19 +9,29 @@ export function ProgressBar({ progress, height = 8, color, backgroundColor, bord
9
9
  // Clamp progress between 0 and 1
10
10
  const clampedProgress = Math.max(0, Math.min(1, progress));
11
11
  return (<View style={[
12
+ styles.track,
12
13
  {
13
14
  height,
14
15
  backgroundColor: backgroundColor || theme.colors.border,
15
16
  borderRadius: theme.borderRadius[borderRadius],
16
- overflow: 'hidden',
17
17
  },
18
18
  style,
19
19
  ]} testID={testID}>
20
- <View style={{
21
- height: '100%',
22
- width: `${clampedProgress * 100}%`,
23
- backgroundColor: color || theme.colors.primary,
24
- }}/>
20
+ <View style={[
21
+ styles.fill,
22
+ {
23
+ width: `${clampedProgress * 100}%`,
24
+ backgroundColor: color || theme.colors.primary,
25
+ },
26
+ ]}/>
25
27
  </View>);
26
28
  }
29
+ const styles = StyleSheet.create({
30
+ track: {
31
+ overflow: 'hidden',
32
+ },
33
+ fill: {
34
+ height: '100%',
35
+ },
36
+ });
27
37
  //# sourceMappingURL=ProgressBar.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ProgressBar.js","sourceRoot":"","sources":["../../../src/components/display/ProgressBar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAG7C;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,EAC1B,QAAQ,EACR,MAAM,GAAG,CAAC,EACV,KAAK,EACL,eAAe,EACf,YAAY,GAAG,MAAM,EACrB,KAAK,EACL,MAAM,GACW;IACjB,MAAM,EAAE,KAAK,EAAE,GAAG,QAAQ,EAAE,CAAC;IAE7B,iCAAiC;IACjC,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;IAE3D,OAAO,CACL,CAAC,IAAI,CACH,KAAK,CAAC,CAAC;YACL;gBACE,MAAM;gBACN,eAAe,EAAE,eAAe,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM;gBACvD,YAAY,EAAE,KAAK,CAAC,YAAY,CAAC,YAAY,CAAC;gBAC9C,QAAQ,EAAE,QAAQ;aACnB;YACD,KAAK;SACN,CAAC,CACF,MAAM,CAAC,CAAC,MAAM,CAAC,CAEf;MAAA,CAAC,IAAI,CACH,KAAK,CAAC,CAAC;YACL,MAAM,EAAE,MAAM;YACd,KAAK,EAAE,GAAG,eAAe,GAAG,GAAG,GAAG;YAClC,eAAe,EAAE,KAAK,IAAI,KAAK,CAAC,MAAM,CAAC,OAAO;SAC/C,CAAC,EAEN;IAAA,EAAE,IAAI,CAAC,CACR,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"ProgressBar.js","sourceRoot":"","sources":["../../../src/components/display/ProgressBar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAG7C;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,EAC1B,QAAQ,EACR,MAAM,GAAG,CAAC,EACV,KAAK,EACL,eAAe,EACf,YAAY,GAAG,MAAM,EACrB,KAAK,EACL,MAAM,GACW;IACjB,MAAM,EAAE,KAAK,EAAE,GAAG,QAAQ,EAAE,CAAC;IAE7B,iCAAiC;IACjC,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;IAE3D,OAAO,CACL,CAAC,IAAI,CACH,KAAK,CAAC,CAAC;YACL,MAAM,CAAC,KAAK;YACZ;gBACE,MAAM;gBACN,eAAe,EAAE,eAAe,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM;gBACvD,YAAY,EAAE,KAAK,CAAC,YAAY,CAAC,YAAY,CAAC;aAC/C;YACD,KAAK;SACN,CAAC,CACF,MAAM,CAAC,CAAC,MAAM,CAAC,CAEf;MAAA,CAAC,IAAI,CACH,KAAK,CAAC,CAAC;YACL,MAAM,CAAC,IAAI;YACX;gBACE,KAAK,EAAE,GAAG,eAAe,GAAG,GAAG,GAAG;gBAClC,eAAe,EAAE,KAAK,IAAI,KAAK,CAAC,MAAM,CAAC,OAAO;aAC/C;SACF,CAAC,EAEN;IAAA,EAAE,IAAI,CAAC,CACR,CAAC;AACJ,CAAC;AAED,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;IAC/B,KAAK,EAAE;QACL,QAAQ,EAAE,QAAQ;KACnB;IACD,IAAI,EAAE;QACJ,MAAM,EAAE,MAAM;KACf;CACF,CAAC,CAAC"}