@almadar/mobile 1.2.6 → 1.4.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 (154) hide show
  1. package/dist/chunk-4GLV4XIP.js +140 -0
  2. package/dist/chunk-4GLV4XIP.js.map +1 -0
  3. package/dist/{chunk-QUFLYKWA.js → chunk-A6AK75GP.js} +43 -554
  4. package/dist/chunk-A6AK75GP.js.map +1 -0
  5. package/dist/chunk-BUN5QD6C.js +525 -0
  6. package/dist/chunk-BUN5QD6C.js.map +1 -0
  7. package/dist/{chunk-PBO6ZN2M.js → chunk-C3USTXJ7.js} +1372 -2255
  8. package/dist/chunk-C3USTXJ7.js.map +1 -0
  9. package/dist/{chunk-5U5Z65ZO.js → chunk-DNC6CO6E.js} +58 -187
  10. package/dist/chunk-DNC6CO6E.js.map +1 -0
  11. package/dist/chunk-I6UYSB5R.js +935 -0
  12. package/dist/chunk-I6UYSB5R.js.map +1 -0
  13. package/dist/{chunk-ETD72PHO.js → chunk-SLYJ52HW.js} +30 -21
  14. package/dist/chunk-SLYJ52HW.js.map +1 -0
  15. package/dist/chunk-UIU7NWN2.js +924 -0
  16. package/dist/chunk-UIU7NWN2.js.map +1 -0
  17. package/dist/{chunk-BFRVXKSP.js → chunk-VNRKHWR7.js} +87 -4
  18. package/dist/chunk-VNRKHWR7.js.map +1 -0
  19. package/dist/{chunk-CA6Z3OTE.js → chunk-WHAG42QJ.js} +1 -1
  20. package/dist/chunk-WHAG42QJ.js.map +1 -0
  21. package/dist/{chunk-GMR5FKKB.js → chunk-XWPR5FXS.js} +2 -2
  22. package/dist/chunk-XWPR5FXS.js.map +1 -0
  23. package/dist/{chunk-MLTSQPVN.js → chunk-YWQRLHTP.js} +2 -2
  24. package/dist/chunk-YWQRLHTP.js.map +1 -0
  25. package/dist/components/atoms/Button.d.ts +3 -2
  26. package/dist/components/atoms/Button.d.ts.map +1 -1
  27. package/dist/components/atoms/Card.d.ts +3 -2
  28. package/dist/components/atoms/Card.d.ts.map +1 -1
  29. package/dist/components/atoms/Checkbox.d.ts +3 -2
  30. package/dist/components/atoms/Checkbox.d.ts.map +1 -1
  31. package/dist/components/atoms/DayCell.d.ts +3 -2
  32. package/dist/components/atoms/DayCell.d.ts.map +1 -1
  33. package/dist/components/atoms/InfiniteScrollSentinel.d.ts +3 -2
  34. package/dist/components/atoms/InfiniteScrollSentinel.d.ts.map +1 -1
  35. package/dist/components/atoms/Radio.d.ts +3 -2
  36. package/dist/components/atoms/Radio.d.ts.map +1 -1
  37. package/dist/components/atoms/RangeSlider.d.ts +3 -2
  38. package/dist/components/atoms/RangeSlider.d.ts.map +1 -1
  39. package/dist/components/atoms/Select.d.ts +3 -2
  40. package/dist/components/atoms/Select.d.ts.map +1 -1
  41. package/dist/components/atoms/Switch.d.ts +3 -2
  42. package/dist/components/atoms/Switch.d.ts.map +1 -1
  43. package/dist/components/atoms/TextHighlight.d.ts +3 -2
  44. package/dist/components/atoms/TextHighlight.d.ts.map +1 -1
  45. package/dist/components/atoms/game/OrbitalGameCanvas.d.ts +25 -0
  46. package/dist/components/atoms/game/OrbitalGameCanvas.d.ts.map +1 -0
  47. package/dist/components/atoms/game/index.d.ts +2 -0
  48. package/dist/components/atoms/game/index.d.ts.map +1 -1
  49. package/dist/components/atoms/index.d.ts +4 -4
  50. package/dist/components/atoms/index.d.ts.map +1 -1
  51. package/dist/components/atoms/index.js +14 -9
  52. package/dist/components/index.d.ts +1 -0
  53. package/dist/components/index.d.ts.map +1 -1
  54. package/dist/components/index.js +47 -20
  55. package/dist/components/molecules/Alert.d.ts +3 -2
  56. package/dist/components/molecules/Alert.d.ts.map +1 -1
  57. package/dist/components/molecules/DataGrid.d.ts +6 -5
  58. package/dist/components/molecules/DataGrid.d.ts.map +1 -1
  59. package/dist/components/molecules/DataList.d.ts +5 -4
  60. package/dist/components/molecules/DataList.d.ts.map +1 -1
  61. package/dist/components/molecules/NumberStepper.d.ts +3 -2
  62. package/dist/components/molecules/NumberStepper.d.ts.map +1 -1
  63. package/dist/components/molecules/PullToRefresh.d.ts +3 -2
  64. package/dist/components/molecules/PullToRefresh.d.ts.map +1 -1
  65. package/dist/components/molecules/RelationSelect.d.ts +3 -2
  66. package/dist/components/molecules/RelationSelect.d.ts.map +1 -1
  67. package/dist/components/molecules/RepeatableFormSection.d.ts +6 -5
  68. package/dist/components/molecules/RepeatableFormSection.d.ts.map +1 -1
  69. package/dist/components/molecules/SortableList.d.ts +2 -1
  70. package/dist/components/molecules/SortableList.d.ts.map +1 -1
  71. package/dist/components/molecules/StarRating.d.ts +3 -2
  72. package/dist/components/molecules/StarRating.d.ts.map +1 -1
  73. package/dist/components/molecules/SwipeableRow.d.ts +3 -2
  74. package/dist/components/molecules/SwipeableRow.d.ts.map +1 -1
  75. package/dist/components/molecules/Toast.d.ts +3 -2
  76. package/dist/components/molecules/Toast.d.ts.map +1 -1
  77. package/dist/components/molecules/index.js +9 -6
  78. package/dist/components/organisms/CardGrid.d.ts +6 -5
  79. package/dist/components/organisms/CardGrid.d.ts.map +1 -1
  80. package/dist/components/organisms/ComponentPatterns.d.ts.map +1 -1
  81. package/dist/components/organisms/ContentRenderer.d.ts.map +1 -1
  82. package/dist/components/organisms/DataTable.d.ts +2 -4
  83. package/dist/components/organisms/DataTable.d.ts.map +1 -1
  84. package/dist/components/organisms/DocumentViewer.d.ts.map +1 -1
  85. package/dist/components/organisms/DrawerSlot.d.ts +5 -4
  86. package/dist/components/organisms/DrawerSlot.d.ts.map +1 -1
  87. package/dist/components/organisms/FormSection.d.ts +8 -1
  88. package/dist/components/organisms/FormSection.d.ts.map +1 -1
  89. package/dist/components/organisms/Header.d.ts +3 -2
  90. package/dist/components/organisms/Header.d.ts.map +1 -1
  91. package/dist/components/organisms/LayoutPatterns.d.ts.map +1 -1
  92. package/dist/components/organisms/MasterDetail.d.ts.map +1 -1
  93. package/dist/components/organisms/MediaGallery.d.ts +2 -1
  94. package/dist/components/organisms/MediaGallery.d.ts.map +1 -1
  95. package/dist/components/organisms/ModalSlot.d.ts +5 -4
  96. package/dist/components/organisms/ModalSlot.d.ts.map +1 -1
  97. package/dist/components/organisms/PageHeader.d.ts +7 -0
  98. package/dist/components/organisms/PageHeader.d.ts.map +1 -1
  99. package/dist/components/organisms/SignaturePad.d.ts.map +1 -1
  100. package/dist/components/organisms/StatCard.d.ts +3 -2
  101. package/dist/components/organisms/StatCard.d.ts.map +1 -1
  102. package/dist/components/organisms/StateMachineView.d.ts.map +1 -1
  103. package/dist/components/organisms/Table.d.ts.map +1 -1
  104. package/dist/components/organisms/ToastSlot.d.ts +6 -5
  105. package/dist/components/organisms/ToastSlot.d.ts.map +1 -1
  106. package/dist/components/organisms/UISlotRenderer.d.ts +2 -1
  107. package/dist/components/organisms/UISlotRenderer.d.ts.map +1 -1
  108. package/dist/components/organisms/book/BookChapterView.d.ts +2 -1
  109. package/dist/components/organisms/book/BookChapterView.d.ts.map +1 -1
  110. package/dist/components/organisms/book/BookCoverPage.d.ts +2 -1
  111. package/dist/components/organisms/book/BookCoverPage.d.ts.map +1 -1
  112. package/dist/components/organisms/book/BookNavBar.d.ts +2 -1
  113. package/dist/components/organisms/book/BookNavBar.d.ts.map +1 -1
  114. package/dist/components/organisms/book/BookTableOfContents.d.ts +2 -1
  115. package/dist/components/organisms/book/BookTableOfContents.d.ts.map +1 -1
  116. package/dist/components/organisms/book/BookViewer.d.ts +2 -1
  117. package/dist/components/organisms/book/BookViewer.d.ts.map +1 -1
  118. package/dist/components/organisms/game/DialogueBox.d.ts.map +1 -1
  119. package/dist/components/organisms/game/InventoryPanel.d.ts.map +1 -1
  120. package/dist/components/organisms/game/physics-sim/SimulationCanvas.d.ts.map +1 -1
  121. package/dist/components/organisms/game/puzzles/sequencer/ActionPalette.d.ts.map +1 -1
  122. package/dist/components/organisms/game/puzzles/sequencer/ActionTile.d.ts.map +1 -1
  123. package/dist/components/organisms/game/puzzles/sequencer/SequenceBar.d.ts.map +1 -1
  124. package/dist/components/organisms/game/puzzles/state-architect/CodeView.d.ts.map +1 -1
  125. package/dist/components/organisms/game/puzzles/state-architect/StateArchitectBoard.d.ts.map +1 -1
  126. package/dist/components/organisms/game/puzzles/state-architect/StateNode.d.ts.map +1 -1
  127. package/dist/components/organisms/game/puzzles/state-architect/TransitionArrow.d.ts.map +1 -1
  128. package/dist/components/organisms/game/puzzles/state-architect/VariablePanel.d.ts.map +1 -1
  129. package/dist/components/organisms/index.d.ts +1 -1
  130. package/dist/components/organisms/index.d.ts.map +1 -1
  131. package/dist/components/organisms/index.js +14 -10
  132. package/dist/components/organisms/layout/DashboardGrid.d.ts +3 -2
  133. package/dist/components/organisms/layout/DashboardGrid.d.ts.map +1 -1
  134. package/dist/components/templates/BattleTemplate.d.ts.map +1 -1
  135. package/dist/components/templates/index.js +26 -0
  136. package/dist/components/templates/index.js.map +1 -0
  137. package/dist/hooks/index.js +1 -1
  138. package/dist/hooks/useTraitState.d.ts +3 -3
  139. package/dist/hooks/useTraitState.d.ts.map +1 -1
  140. package/dist/index.d.ts +1 -0
  141. package/dist/index.d.ts.map +1 -1
  142. package/dist/index.js +43 -910
  143. package/dist/index.js.map +1 -1
  144. package/dist/types/index.d.ts +7 -0
  145. package/dist/types/index.d.ts.map +1 -0
  146. package/package.json +13 -6
  147. package/dist/chunk-5U5Z65ZO.js.map +0 -1
  148. package/dist/chunk-BFRVXKSP.js.map +0 -1
  149. package/dist/chunk-CA6Z3OTE.js.map +0 -1
  150. package/dist/chunk-ETD72PHO.js.map +0 -1
  151. package/dist/chunk-GMR5FKKB.js.map +0 -1
  152. package/dist/chunk-MLTSQPVN.js.map +0 -1
  153. package/dist/chunk-PBO6ZN2M.js.map +0 -1
  154. package/dist/chunk-QUFLYKWA.js.map +0 -1
@@ -377,255 +377,9 @@ var styles5 = StyleSheet5.create({
377
377
  });
378
378
  LoadingState.displayName = "LoadingState";
379
379
 
380
- // src/components/atoms/Input.tsx
381
- import React6 from "react";
382
- import {
383
- TextInput,
384
- StyleSheet as StyleSheet6,
385
- View as View2,
386
- Text as Text3
387
- } from "react-native";
388
- var Input = ({
389
- label,
390
- errorMessage,
391
- helperText,
392
- containerStyle,
393
- style,
394
- isLoading,
395
- error,
396
- changeEvent,
397
- focusEvent,
398
- onChangeText,
399
- onFocus,
400
- onBlur,
401
- ...textInputProps
402
- }) => {
403
- const theme = useTheme();
404
- const eventBus = useEventBus();
405
- const handleChangeText = (text) => {
406
- if (changeEvent) {
407
- eventBus.emit(`UI:${changeEvent}`, { value: text });
408
- }
409
- onChangeText?.(text);
410
- };
411
- const handleFocus = () => {
412
- if (focusEvent) {
413
- eventBus.emit(`UI:${focusEvent}`);
414
- }
415
- onFocus?.({});
416
- };
417
- if (isLoading) {
418
- return /* @__PURE__ */ React6.createElement(View2, { style: [styles6.container, containerStyle] }, label && /* @__PURE__ */ React6.createElement(Text3, { style: [styles6.label, { color: theme.colors.foreground }] }, label), /* @__PURE__ */ React6.createElement(LoadingState, { message: "Loading..." }));
419
- }
420
- const errorText = error?.message || errorMessage;
421
- return /* @__PURE__ */ React6.createElement(View2, { style: [styles6.container, containerStyle] }, label && /* @__PURE__ */ React6.createElement(Text3, { style: [styles6.label, { color: theme.colors.foreground }] }, label), /* @__PURE__ */ React6.createElement(
422
- TextInput,
423
- {
424
- style: [
425
- styles6.input,
426
- {
427
- borderColor: errorText ? theme.colors.error : theme.colors.border,
428
- backgroundColor: theme.colors.card,
429
- color: theme.colors.foreground
430
- },
431
- style
432
- ],
433
- placeholderTextColor: theme.colors["muted-foreground"],
434
- onChangeText: handleChangeText,
435
- onFocus: handleFocus,
436
- onBlur,
437
- ...textInputProps
438
- }
439
- ), errorText ? /* @__PURE__ */ React6.createElement(Text3, { style: [styles6.errorText, { color: theme.colors.error }] }, errorText) : helperText ? /* @__PURE__ */ React6.createElement(Text3, { style: [styles6.helperText, { color: theme.colors["muted-foreground"] }] }, helperText) : null);
440
- };
441
- var styles6 = StyleSheet6.create({
442
- container: {
443
- width: "100%"
444
- },
445
- label: {
446
- fontSize: 14,
447
- fontWeight: "500",
448
- marginBottom: 6
449
- },
450
- input: {
451
- borderWidth: 1,
452
- borderRadius: 8,
453
- paddingHorizontal: 12,
454
- paddingVertical: 10,
455
- fontSize: 16
456
- },
457
- errorText: {
458
- fontSize: 12,
459
- marginTop: 4
460
- },
461
- helperText: {
462
- fontSize: 12,
463
- marginTop: 4
464
- }
465
- });
466
- Input.displayName = "Input";
467
-
468
- // src/components/atoms/Select.tsx
469
- import React7, { useState } from "react";
470
- import {
471
- TouchableOpacity as TouchableOpacity2,
472
- View as View3,
473
- Text as Text4,
474
- StyleSheet as StyleSheet7,
475
- Modal,
476
- FlatList,
477
- SafeAreaView
478
- } from "react-native";
479
- var Select = ({
480
- options,
481
- value,
482
- onChange,
483
- placeholder = "Select...",
484
- disabled = false,
485
- style,
486
- textStyle,
487
- isLoading,
488
- error,
489
- changeEvent,
490
- actionPayload
491
- }) => {
492
- const theme = useTheme();
493
- const eventBus = useEventBus();
494
- const [isOpen, setIsOpen] = useState(false);
495
- const selectedOption = options.find((opt) => opt.value === value);
496
- const handleSelect = (selectedValue) => {
497
- if (changeEvent) {
498
- eventBus.emit(`UI:${changeEvent}`, { ...actionPayload, value: selectedValue });
499
- }
500
- onChange?.(selectedValue);
501
- setIsOpen(false);
502
- };
503
- const handleOpen = () => {
504
- if (!disabled && !isLoading) {
505
- setIsOpen(true);
506
- }
507
- };
508
- if (isLoading) {
509
- return /* @__PURE__ */ React7.createElement(View3, { style: [styles7.container, style] }, /* @__PURE__ */ React7.createElement(LoadingState, { message: "Loading..." }));
510
- }
511
- if (error) {
512
- return /* @__PURE__ */ React7.createElement(View3, { style: [styles7.container, style] }, /* @__PURE__ */ React7.createElement(ErrorState, { message: error.message }));
513
- }
514
- return /* @__PURE__ */ React7.createElement(React7.Fragment, null, /* @__PURE__ */ React7.createElement(
515
- TouchableOpacity2,
516
- {
517
- onPress: handleOpen,
518
- disabled,
519
- activeOpacity: 0.8,
520
- style: [
521
- styles7.button,
522
- {
523
- borderColor: theme.colors.border,
524
- backgroundColor: theme.colors.card,
525
- opacity: disabled ? 0.5 : 1
526
- },
527
- style
528
- ]
529
- },
530
- /* @__PURE__ */ React7.createElement(
531
- Text4,
532
- {
533
- style: [
534
- styles7.buttonText,
535
- {
536
- color: selectedOption ? theme.colors.foreground : theme.colors["muted-foreground"]
537
- },
538
- textStyle
539
- ],
540
- numberOfLines: 1
541
- },
542
- selectedOption?.label || placeholder
543
- ),
544
- /* @__PURE__ */ React7.createElement(Text4, { style: [styles7.chevron, { color: theme.colors["muted-foreground"] }] }, "\u25BC")
545
- ), /* @__PURE__ */ React7.createElement(
546
- Modal,
547
- {
548
- visible: isOpen,
549
- transparent: true,
550
- animationType: "slide",
551
- onRequestClose: () => setIsOpen(false)
552
- },
553
- /* @__PURE__ */ React7.createElement(SafeAreaView, { style: [styles7.modalContainer, { backgroundColor: theme.colors.background }] }, /* @__PURE__ */ React7.createElement(View3, { style: styles7.modalHeader }, /* @__PURE__ */ React7.createElement(TouchableOpacity2, { onPress: () => setIsOpen(false) }, /* @__PURE__ */ React7.createElement(Text4, { style: [styles7.closeButton, { color: theme.colors.primary }] }, "Close"))), /* @__PURE__ */ React7.createElement(
554
- FlatList,
555
- {
556
- data: options,
557
- keyExtractor: (item) => item.value,
558
- renderItem: ({ item }) => /* @__PURE__ */ React7.createElement(
559
- TouchableOpacity2,
560
- {
561
- style: [
562
- styles7.option,
563
- {
564
- backgroundColor: item.value === value ? theme.colors.primary : theme.colors.card,
565
- borderBottomColor: theme.colors.border
566
- }
567
- ],
568
- onPress: () => handleSelect(item.value)
569
- },
570
- /* @__PURE__ */ React7.createElement(
571
- Text4,
572
- {
573
- style: {
574
- color: item.value === value ? theme.colors["primary-foreground"] : theme.colors.foreground
575
- }
576
- },
577
- item.label
578
- )
579
- )
580
- }
581
- ))
582
- ));
583
- };
584
- var styles7 = StyleSheet7.create({
585
- container: {
586
- width: "100%"
587
- },
588
- button: {
589
- flexDirection: "row",
590
- alignItems: "center",
591
- justifyContent: "space-between",
592
- borderWidth: 1,
593
- borderRadius: 8,
594
- paddingHorizontal: 12,
595
- paddingVertical: 10
596
- },
597
- buttonText: {
598
- fontSize: 16,
599
- flex: 1
600
- },
601
- chevron: {
602
- fontSize: 12,
603
- marginLeft: 8
604
- },
605
- modalContainer: {
606
- flex: 1
607
- },
608
- modalHeader: {
609
- flexDirection: "row",
610
- justifyContent: "flex-end",
611
- padding: 16,
612
- borderBottomWidth: 1,
613
- borderBottomColor: "#e2e8f0"
614
- },
615
- closeButton: {
616
- fontSize: 16,
617
- fontWeight: "500"
618
- },
619
- option: {
620
- padding: 16,
621
- borderBottomWidth: 1
622
- }
623
- });
624
- Select.displayName = "Select";
625
-
626
380
  // src/components/atoms/Card.tsx
627
- import React8 from "react";
628
- import { View as View4, StyleSheet as StyleSheet8, TouchableOpacity as TouchableOpacity3 } from "react-native";
381
+ import React6 from "react";
382
+ import { View as View2, StyleSheet as StyleSheet6, TouchableOpacity as TouchableOpacity2 } from "react-native";
629
383
  var Card = ({
630
384
  children,
631
385
  onPress,
@@ -646,10 +400,10 @@ var Card = ({
646
400
  onPress?.();
647
401
  };
648
402
  if (isLoading) {
649
- return /* @__PURE__ */ React8.createElement(View4, { style: [styles8.card, style] }, /* @__PURE__ */ React8.createElement(LoadingState, null));
403
+ return /* @__PURE__ */ React6.createElement(View2, { style: [styles6.card, style] }, /* @__PURE__ */ React6.createElement(LoadingState, null));
650
404
  }
651
405
  if (error) {
652
- return /* @__PURE__ */ React8.createElement(View4, { style: [styles8.card, style] }, /* @__PURE__ */ React8.createElement(ErrorState, { message: error.message }));
406
+ return /* @__PURE__ */ React6.createElement(View2, { style: [styles6.card, style] }, /* @__PURE__ */ React6.createElement(ErrorState, { message: error.message }));
653
407
  }
654
408
  const paddingStyles = {
655
409
  none: { padding: 0 },
@@ -674,7 +428,7 @@ var Card = ({
674
428
  }
675
429
  };
676
430
  const cardStyles = [
677
- styles8.card,
431
+ styles6.card,
678
432
  variantStyles[variant],
679
433
  paddingStyles[padding]
680
434
  ];
@@ -683,281 +437,22 @@ var Card = ({
683
437
  } else if (style) {
684
438
  cardStyles.push(style);
685
439
  }
686
- const content = /* @__PURE__ */ React8.createElement(View4, { style: cardStyles }, children);
440
+ const content = /* @__PURE__ */ React6.createElement(View2, { style: cardStyles }, children);
687
441
  if (onPress || action) {
688
- return /* @__PURE__ */ React8.createElement(TouchableOpacity3, { onPress: handlePress, activeOpacity: 0.9 }, content);
442
+ return /* @__PURE__ */ React6.createElement(TouchableOpacity2, { onPress: handlePress, activeOpacity: 0.9 }, content);
689
443
  }
690
444
  return content;
691
445
  };
692
- var styles8 = StyleSheet8.create({
446
+ var styles6 = StyleSheet6.create({
693
447
  card: {
694
448
  borderRadius: 12
695
449
  }
696
450
  });
697
451
  Card.displayName = "Card";
698
452
 
699
- // src/components/atoms/Badge.tsx
700
- import React9 from "react";
701
- import { View as View5, Text as Text5, StyleSheet as StyleSheet9 } from "react-native";
702
- var Badge = ({
703
- children,
704
- variant = "default",
705
- size = "md",
706
- style,
707
- isLoading,
708
- error
709
- }) => {
710
- const theme = useTheme();
711
- if (isLoading) {
712
- return /* @__PURE__ */ React9.createElement(View5, { style: [styles9.badge, style] }, /* @__PURE__ */ React9.createElement(LoadingState, { message: "Loading..." }));
713
- }
714
- if (error) {
715
- return /* @__PURE__ */ React9.createElement(View5, { style: [styles9.badge, style] }, /* @__PURE__ */ React9.createElement(ErrorState, { message: error.message }));
716
- }
717
- const variantStyles = {
718
- default: {
719
- container: {
720
- backgroundColor: theme.colors.secondary
721
- },
722
- text: {
723
- color: theme.colors["secondary-foreground"]
724
- }
725
- },
726
- primary: {
727
- container: {
728
- backgroundColor: theme.colors.primary
729
- },
730
- text: {
731
- color: theme.colors["primary-foreground"]
732
- }
733
- },
734
- secondary: {
735
- container: {
736
- backgroundColor: theme.colors["secondary-hover"]
737
- },
738
- text: {
739
- color: theme.colors["secondary-foreground"]
740
- }
741
- },
742
- success: {
743
- container: {
744
- backgroundColor: theme.colors.success
745
- },
746
- text: {
747
- color: theme.colors["success-foreground"]
748
- }
749
- },
750
- warning: {
751
- container: {
752
- backgroundColor: theme.colors.warning
753
- },
754
- text: {
755
- color: theme.colors["warning-foreground"]
756
- }
757
- },
758
- error: {
759
- container: {
760
- backgroundColor: theme.colors.error
761
- },
762
- text: {
763
- color: theme.colors["error-foreground"]
764
- }
765
- }
766
- };
767
- const sizeStyles = {
768
- sm: {
769
- container: {
770
- paddingHorizontal: theme.spacing[2],
771
- paddingVertical: 2,
772
- borderRadius: theme.borderRadius.full
773
- },
774
- text: {
775
- fontSize: theme.typography.sizes.xs
776
- }
777
- },
778
- md: {
779
- container: {
780
- paddingHorizontal: theme.spacing[3],
781
- paddingVertical: theme.spacing[1],
782
- borderRadius: theme.borderRadius.full
783
- },
784
- text: {
785
- fontSize: theme.typography.sizes.sm
786
- }
787
- }
788
- };
789
- const variantStyle = variantStyles[variant];
790
- const sizeStyle = sizeStyles[size];
791
- return /* @__PURE__ */ React9.createElement(View5, { style: [styles9.badge, variantStyle.container, sizeStyle.container, style] }, /* @__PURE__ */ React9.createElement(Text5, { style: [styles9.text, variantStyle.text, sizeStyle.text] }, children));
792
- };
793
- var styles9 = StyleSheet9.create({
794
- badge: {
795
- alignSelf: "flex-start"
796
- },
797
- text: {
798
- fontWeight: "500"
799
- }
800
- });
801
- Badge.displayName = "Badge";
802
-
803
- // src/components/atoms/Icon.tsx
804
- import React10 from "react";
805
- import { View as View6, Text as Text6, StyleSheet as StyleSheet10 } from "react-native";
806
- var iconMap = {
807
- home: "\u{1F3E0}",
808
- user: "\u{1F464}",
809
- settings: "\u2699\uFE0F",
810
- "arrow-right": "\u2192",
811
- "arrow-left": "\u2190",
812
- check: "\u2713",
813
- x: "\u2715",
814
- plus: "+",
815
- minus: "\u2212",
816
- search: "\u{1F50D}",
817
- menu: "\u2630",
818
- "more-vertical": "\u22EE",
819
- "chevron-right": "\u203A",
820
- "chevron-left": "\u2039",
821
- "chevron-down": "\u2304",
822
- "chevron-up": "\u2303"
823
- };
824
- var Icon = ({
825
- name,
826
- size = 24,
827
- color = "#374151",
828
- style
829
- }) => {
830
- return /* @__PURE__ */ React10.createElement(View6, { style: [styles10.container, { width: size, height: size }, style] }, /* @__PURE__ */ React10.createElement(Text6, { style: [
831
- styles10.icon,
832
- { fontSize: size * 0.7, color, lineHeight: size }
833
- ] }, iconMap[name] || "?"));
834
- };
835
- var styles10 = StyleSheet10.create({
836
- container: {
837
- alignItems: "center",
838
- justifyContent: "center"
839
- },
840
- icon: {
841
- textAlign: "center"
842
- }
843
- });
844
- Icon.displayName = "Icon";
845
-
846
- // src/components/atoms/ProgressBar.tsx
847
- import React11 from "react";
848
- import { View as View7, StyleSheet as StyleSheet11, Text as Text7 } from "react-native";
849
- var ProgressBar = ({
850
- progress,
851
- showLabel = false,
852
- size = "md",
853
- style,
854
- trackStyle,
855
- fillStyle,
856
- isLoading,
857
- error
858
- }) => {
859
- const theme = useTheme();
860
- const clampedProgress = Math.max(0, Math.min(100, progress));
861
- if (isLoading) {
862
- return /* @__PURE__ */ React11.createElement(View7, { style: [styles11.container, style] }, /* @__PURE__ */ React11.createElement(LoadingState, { message: "Loading..." }));
863
- }
864
- if (error) {
865
- return /* @__PURE__ */ React11.createElement(View7, { style: [styles11.container, style] }, /* @__PURE__ */ React11.createElement(ErrorState, { message: error.message }));
866
- }
867
- const heightMap = {
868
- sm: 4,
869
- md: 8,
870
- lg: 12
871
- };
872
- const height = heightMap[size];
873
- return /* @__PURE__ */ React11.createElement(View7, { style: [styles11.container, style] }, /* @__PURE__ */ React11.createElement(
874
- View7,
875
- {
876
- style: [
877
- styles11.track,
878
- {
879
- height,
880
- backgroundColor: theme.colors.muted,
881
- borderRadius: height / 2
882
- },
883
- trackStyle
884
- ]
885
- },
886
- /* @__PURE__ */ React11.createElement(
887
- View7,
888
- {
889
- style: [
890
- styles11.fill,
891
- {
892
- width: `${clampedProgress}%`,
893
- height: "100%",
894
- backgroundColor: theme.colors.primary,
895
- borderRadius: height / 2
896
- },
897
- fillStyle
898
- ]
899
- }
900
- )
901
- ), showLabel && /* @__PURE__ */ React11.createElement(Text7, { style: [styles11.label, { color: theme.colors.foreground }] }, Math.round(clampedProgress), "%"));
902
- };
903
- var styles11 = StyleSheet11.create({
904
- container: {
905
- width: "100%"
906
- },
907
- track: {
908
- width: "100%",
909
- overflow: "hidden"
910
- },
911
- fill: {
912
- // Animated fill
913
- },
914
- label: {
915
- marginTop: 4,
916
- fontSize: 12,
917
- fontWeight: "500",
918
- textAlign: "right"
919
- }
920
- });
921
- ProgressBar.displayName = "ProgressBar";
922
-
923
- // src/components/atoms/Divider.tsx
924
- import React12 from "react";
925
- import { View as View8, StyleSheet as StyleSheet12 } from "react-native";
926
- var Divider = ({
927
- orientation = "horizontal",
928
- thickness = 1,
929
- style
930
- }) => {
931
- const theme = useTheme();
932
- return /* @__PURE__ */ React12.createElement(
933
- View8,
934
- {
935
- style: [
936
- orientation === "horizontal" ? styles12.horizontal : styles12.vertical,
937
- {
938
- backgroundColor: theme.colors.border,
939
- ...orientation === "horizontal" ? { height: thickness } : { width: thickness }
940
- },
941
- style
942
- ]
943
- }
944
- );
945
- };
946
- var styles12 = StyleSheet12.create({
947
- horizontal: {
948
- width: "100%",
949
- marginVertical: 8
950
- },
951
- vertical: {
952
- height: "100%",
953
- marginHorizontal: 8
954
- }
955
- });
956
- Divider.displayName = "Divider";
957
-
958
453
  // src/components/atoms/game/HealthBar.tsx
959
- import React13 from "react";
960
- import { View as View9, Text as Text8, StyleSheet as StyleSheet13 } from "react-native";
454
+ import React7 from "react";
455
+ import { View as View3, Text as Text3, StyleSheet as StyleSheet7 } from "react-native";
961
456
  var sizeMap = {
962
457
  sm: { heart: 16, bar: 8, text: 12 },
963
458
  md: { heart: 24, bar: 12, text: 16 },
@@ -968,8 +463,8 @@ var HeartIcon = ({
968
463
  size,
969
464
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
970
465
  color
971
- }) => /* @__PURE__ */ React13.createElement(
972
- View9,
466
+ }) => /* @__PURE__ */ React7.createElement(
467
+ View3,
973
468
  {
974
469
  style: {
975
470
  width: size,
@@ -978,8 +473,8 @@ var HeartIcon = ({
978
473
  alignItems: "center"
979
474
  }
980
475
  },
981
- /* @__PURE__ */ React13.createElement(
982
- Text8,
476
+ /* @__PURE__ */ React7.createElement(
477
+ Text3,
983
478
  {
984
479
  style: {
985
480
  fontSize: size * 0.8,
@@ -1001,15 +496,15 @@ var HealthBar = ({
1001
496
  const sizes = sizeMap[size];
1002
497
  const percentage = Math.max(0, Math.min(100, current / max * 100));
1003
498
  if (format === "hearts") {
1004
- return /* @__PURE__ */ React13.createElement(View9, { style: [styles13.heartsContainer, style] }, Array.from({ length: max }).map((_, i) => /* @__PURE__ */ React13.createElement(
1005
- View9,
499
+ return /* @__PURE__ */ React7.createElement(View3, { style: [styles7.heartsContainer, style] }, Array.from({ length: max }).map((_, i) => /* @__PURE__ */ React7.createElement(
500
+ View3,
1006
501
  {
1007
502
  key: i,
1008
503
  style: [
1009
- animated && styles13.animatedHeart
504
+ animated && styles7.animatedHeart
1010
505
  ]
1011
506
  },
1012
- /* @__PURE__ */ React13.createElement(
507
+ /* @__PURE__ */ React7.createElement(
1013
508
  HeartIcon,
1014
509
  {
1015
510
  filled: i < current,
@@ -1021,11 +516,11 @@ var HealthBar = ({
1021
516
  }
1022
517
  if (format === "bar") {
1023
518
  const barColor = percentage > 66 ? "#22c55e" : percentage > 33 ? "#eab308" : "#ef4444";
1024
- return /* @__PURE__ */ React13.createElement(
1025
- View9,
519
+ return /* @__PURE__ */ React7.createElement(
520
+ View3,
1026
521
  {
1027
522
  style: [
1028
- styles13.barContainer,
523
+ styles7.barContainer,
1029
524
  {
1030
525
  height: sizes.bar,
1031
526
  backgroundColor: theme.colors.muted
@@ -1033,26 +528,26 @@ var HealthBar = ({
1033
528
  style
1034
529
  ]
1035
530
  },
1036
- /* @__PURE__ */ React13.createElement(
1037
- View9,
531
+ /* @__PURE__ */ React7.createElement(
532
+ View3,
1038
533
  {
1039
534
  style: [
1040
- styles13.barFill,
535
+ styles7.barFill,
1041
536
  {
1042
537
  width: `${percentage}%`,
1043
538
  backgroundColor: barColor
1044
539
  },
1045
- animated && styles13.animatedBar
540
+ animated && styles7.animatedBar
1046
541
  ]
1047
542
  }
1048
543
  )
1049
544
  );
1050
545
  }
1051
- return /* @__PURE__ */ React13.createElement(
1052
- Text8,
546
+ return /* @__PURE__ */ React7.createElement(
547
+ Text3,
1053
548
  {
1054
549
  style: [
1055
- styles13.numericText,
550
+ styles7.numericText,
1056
551
  {
1057
552
  fontSize: sizes.text,
1058
553
  color: theme.colors.foreground
@@ -1065,7 +560,7 @@ var HealthBar = ({
1065
560
  max
1066
561
  );
1067
562
  };
1068
- var styles13 = StyleSheet13.create({
563
+ var styles7 = StyleSheet7.create({
1069
564
  heartsContainer: {
1070
565
  flexDirection: "row",
1071
566
  alignItems: "center",
@@ -1094,8 +589,8 @@ var styles13 = StyleSheet13.create({
1094
589
  HealthBar.displayName = "HealthBar";
1095
590
 
1096
591
  // src/components/atoms/game/ScoreDisplay.tsx
1097
- import React14, { useState as useState2, useEffect } from "react";
1098
- import { View as View10, Text as Text9, StyleSheet as StyleSheet14 } from "react-native";
592
+ import React8, { useState, useEffect } from "react";
593
+ import { View as View4, Text as Text4, StyleSheet as StyleSheet8 } from "react-native";
1099
594
  var sizeMap2 = {
1100
595
  sm: { fontSize: 14 },
1101
596
  md: { fontSize: 18 },
@@ -1112,8 +607,8 @@ var ScoreDisplay = ({
1112
607
  locale = "en-US"
1113
608
  }) => {
1114
609
  const theme = useTheme();
1115
- const [displayValue, setDisplayValue] = useState2(value);
1116
- const [isAnimating, setIsAnimating] = useState2(false);
610
+ const [displayValue, setDisplayValue] = useState(value);
611
+ const [isAnimating, setIsAnimating] = useState(false);
1117
612
  const sizeConfig = sizeMap2[size] ?? sizeMap2.md;
1118
613
  useEffect(() => {
1119
614
  if (!animated || displayValue === value) {
@@ -1139,20 +634,20 @@ var ScoreDisplay = ({
1139
634
  return () => clearInterval(timer);
1140
635
  }, [value, animated]);
1141
636
  const formattedValue = new Intl.NumberFormat(locale).format(displayValue);
1142
- return /* @__PURE__ */ React14.createElement(
1143
- View10,
637
+ return /* @__PURE__ */ React8.createElement(
638
+ View4,
1144
639
  {
1145
640
  style: [
1146
- styles14.container,
641
+ styles8.container,
1147
642
  {
1148
643
  opacity: isAnimating ? 0.7 : 1
1149
644
  },
1150
645
  style
1151
646
  ]
1152
647
  },
1153
- icon && /* @__PURE__ */ React14.createElement(Text9, { style: { fontSize: sizeConfig.fontSize, marginRight: 8 } }, icon),
1154
- label && /* @__PURE__ */ React14.createElement(
1155
- Text9,
648
+ icon && /* @__PURE__ */ React8.createElement(Text4, { style: { fontSize: sizeConfig.fontSize, marginRight: 8 } }, icon),
649
+ label && /* @__PURE__ */ React8.createElement(
650
+ Text4,
1156
651
  {
1157
652
  style: {
1158
653
  fontSize: sizeConfig.fontSize,
@@ -1162,8 +657,8 @@ var ScoreDisplay = ({
1162
657
  },
1163
658
  label
1164
659
  ),
1165
- /* @__PURE__ */ React14.createElement(
1166
- Text9,
660
+ /* @__PURE__ */ React8.createElement(
661
+ Text4,
1167
662
  {
1168
663
  style: {
1169
664
  fontSize: sizeConfig.fontSize,
@@ -1176,7 +671,7 @@ var ScoreDisplay = ({
1176
671
  )
1177
672
  );
1178
673
  };
1179
- var styles14 = StyleSheet14.create({
674
+ var styles8 = StyleSheet8.create({
1180
675
  container: {
1181
676
  flexDirection: "row",
1182
677
  alignItems: "center"
@@ -1192,14 +687,8 @@ export {
1192
687
  VStack,
1193
688
  HStack,
1194
689
  Box,
1195
- Input,
1196
- Select,
1197
690
  Card,
1198
- Badge,
1199
- Icon,
1200
- ProgressBar,
1201
- Divider,
1202
691
  HealthBar,
1203
692
  ScoreDisplay
1204
693
  };
1205
- //# sourceMappingURL=chunk-QUFLYKWA.js.map
694
+ //# sourceMappingURL=chunk-A6AK75GP.js.map