@decodadev02/scoreui 0.1.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 (48) hide show
  1. package/LICENSE +22 -0
  2. package/README.md +28 -0
  3. package/lib/ScoreUIProvider.d.ts +2 -0
  4. package/lib/ScoreUIProvider.js +25 -0
  5. package/lib/ScoreUIProvider.js.map +1 -0
  6. package/lib/components/ScoreBadge.d.ts +5 -0
  7. package/lib/components/ScoreBadge.js +17 -0
  8. package/lib/components/ScoreBadge.js.map +1 -0
  9. package/lib/components/ScoreBottomNav.d.ts +6 -0
  10. package/lib/components/ScoreBottomNav.js +46 -0
  11. package/lib/components/ScoreBottomNav.js.map +1 -0
  12. package/lib/components/ScoreButton.d.ts +9 -0
  13. package/lib/components/ScoreButton.js +32 -0
  14. package/lib/components/ScoreButton.js.map +1 -0
  15. package/lib/components/ScoreCalendar.d.ts +13 -0
  16. package/lib/components/ScoreCalendar.js +70 -0
  17. package/lib/components/ScoreCalendar.js.map +1 -0
  18. package/lib/components/ScoreCheckbox.d.ts +7 -0
  19. package/lib/components/ScoreCheckbox.js +16 -0
  20. package/lib/components/ScoreCheckbox.js.map +1 -0
  21. package/lib/components/ScoreDropdown.d.ts +12 -0
  22. package/lib/components/ScoreDropdown.js +21 -0
  23. package/lib/components/ScoreDropdown.js.map +1 -0
  24. package/lib/components/ScoreGameCard.d.ts +8 -0
  25. package/lib/components/ScoreGameCard.js +23 -0
  26. package/lib/components/ScoreGameCard.js.map +1 -0
  27. package/lib/components/ScoreSkeleton.d.ts +4 -0
  28. package/lib/components/ScoreSkeleton.js +38 -0
  29. package/lib/components/ScoreSkeleton.js.map +1 -0
  30. package/lib/components/ScoreStepper.d.ts +10 -0
  31. package/lib/components/ScoreStepper.js +34 -0
  32. package/lib/components/ScoreStepper.js.map +1 -0
  33. package/lib/components/ScoreSwitch.d.ts +7 -0
  34. package/lib/components/ScoreSwitch.js +16 -0
  35. package/lib/components/ScoreSwitch.js.map +1 -0
  36. package/lib/components/ScoreTextField.d.ts +17 -0
  37. package/lib/components/ScoreTextField.js +11 -0
  38. package/lib/components/ScoreTextField.js.map +1 -0
  39. package/lib/index.d.ts +24 -0
  40. package/lib/index.js +31 -0
  41. package/lib/index.js.map +1 -0
  42. package/lib/theme.d.ts +83 -0
  43. package/lib/theme.js +51 -0
  44. package/lib/theme.js.map +1 -0
  45. package/lib/useReducedMotion.d.ts +1 -0
  46. package/lib/useReducedMotion.js +22 -0
  47. package/lib/useReducedMotion.js.map +1 -0
  48. package/package.json +41 -0
package/LICENSE ADDED
@@ -0,0 +1,22 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2015-present 650 Industries, Inc. (aka Expo)
4
+ Copyright (c) 2026 MarianellaGL
5
+
6
+ Permission is hereby granted, free of charge, to any person obtaining a copy
7
+ of this software and associated documentation files (the "Software"), to deal
8
+ in the Software without restriction, including without limitation the rights
9
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+ copies of the Software, and to permit persons to whom the Software is
11
+ furnished to do so, subject to the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be included in all
14
+ copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,28 @@
1
+ # @decodadev02/scoreui
2
+
3
+ Componentes de Tablescore para aplicaciones Expo y React Native con React Native Paper.
4
+
5
+ ## Instalación
6
+
7
+ En una aplicación Expo SDK 57:
8
+
9
+ ```bash
10
+ pnpm add @decodadev02/scoreui react-native-paper @expo/vector-icons
11
+ pnpm expo install expo-font
12
+ ```
13
+
14
+ ## Uso
15
+
16
+ ```tsx
17
+ import { ScoreButton, ScoreUIProvider } from '@decodadev02/scoreui';
18
+
19
+ export default function App() {
20
+ return (
21
+ <ScoreUIProvider>
22
+ <ScoreButton label="Nueva partida" onPress={() => {}} />
23
+ </ScoreUIProvider>
24
+ );
25
+ }
26
+ ```
27
+
28
+ Incluye tokens, tema, botón, badge, inputs, checkbox, switch, dropdown, tarjeta de partida, control de puntos, navegación inferior, skeleton y calendario. El catálogo y las stories están en el [repositorio](https://github.com/MarianellaGL/scoreUI).
@@ -0,0 +1,2 @@
1
+ import type { PropsWithChildren } from 'react';
2
+ export declare function ScoreUIProvider({ children }: PropsWithChildren): import("react").JSX.Element;
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ScoreUIProvider = ScoreUIProvider;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const react_native_1 = require("react-native");
6
+ const react_native_paper_1 = require("react-native-paper");
7
+ const expo_font_1 = require("expo-font");
8
+ const inter_1 = require("@expo-google-fonts/inter");
9
+ const cinzel_1 = require("@expo-google-fonts/cinzel");
10
+ const cinzel_decorative_1 = require("@expo-google-fonts/cinzel-decorative");
11
+ const theme_1 = require("./theme");
12
+ function ScoreUIProvider({ children }) {
13
+ const [loaded, error] = (0, expo_font_1.useFonts)({
14
+ Inter_400Regular: inter_1.Inter_400Regular,
15
+ Inter_500Medium: inter_1.Inter_500Medium,
16
+ Inter_600SemiBold: inter_1.Inter_600SemiBold,
17
+ Cinzel_700Bold: cinzel_1.Cinzel_700Bold,
18
+ CinzelDecorative_700Bold: cinzel_decorative_1.CinzelDecorative_700Bold,
19
+ });
20
+ if (!loaded && !error) {
21
+ return (0, jsx_runtime_1.jsx)(react_native_1.View, { style: { flex: 1, backgroundColor: theme_1.tokens.color.canvas } });
22
+ }
23
+ return (0, jsx_runtime_1.jsx)(react_native_paper_1.PaperProvider, { theme: theme_1.scoreUITheme, children: children });
24
+ }
25
+ //# sourceMappingURL=ScoreUIProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ScoreUIProvider.js","sourceRoot":"","sources":["../../src/ScoreUIProvider.tsx"],"names":[],"mappings":";;AAUA,0CAcC;;AAvBD,+CAAoC;AACpC,2DAAmD;AACnD,yCAAqC;AACrC,oDAAgG;AAChG,sDAA2D;AAC3D,4EAAgF;AAEhF,mCAA+C;AAE/C,SAAgB,eAAe,CAAC,EAAE,QAAQ,EAAqB;IAC7D,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,IAAA,oBAAQ,EAAC;QAC/B,gBAAgB,EAAhB,wBAAgB;QAChB,eAAe,EAAf,uBAAe;QACf,iBAAiB,EAAjB,yBAAiB;QACjB,cAAc,EAAd,uBAAc;QACd,wBAAwB,EAAxB,4CAAwB;KACzB,CAAC,CAAC;IAEH,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;QACtB,OAAO,uBAAC,mBAAI,IAAC,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,eAAe,EAAE,cAAM,CAAC,KAAK,CAAC,MAAM,EAAE,GAAI,CAAC;IAC5E,CAAC;IAED,OAAO,uBAAC,kCAAa,IAAC,KAAK,EAAE,oBAAY,YAAG,QAAQ,GAAiB,CAAC;AACxE,CAAC"}
@@ -0,0 +1,5 @@
1
+ export type ScoreBadgeProps = {
2
+ label: string;
3
+ tone?: 'success' | 'warning' | 'neutral';
4
+ };
5
+ export declare function ScoreBadge({ label, tone }: ScoreBadgeProps): import("react").JSX.Element;
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ScoreBadge = ScoreBadge;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const react_native_1 = require("react-native");
6
+ const react_native_paper_1 = require("react-native-paper");
7
+ const theme_1 = require("../theme");
8
+ function ScoreBadge({ label, tone = 'neutral' }) {
9
+ const backgroundColor = tone === 'success' ? theme_1.tokens.color.successSoft : tone === 'warning' ? theme_1.tokens.color.warningSoft : theme_1.tokens.color.elevated;
10
+ const color = tone === 'success' ? theme_1.tokens.color.success : tone === 'warning' ? theme_1.tokens.color.warning : theme_1.tokens.color.gold;
11
+ return ((0, jsx_runtime_1.jsx)(react_native_1.View, { style: [styles.badge, { backgroundColor }], children: (0, jsx_runtime_1.jsx)(react_native_paper_1.Text, { style: [styles.label, { color }], children: label }) }));
12
+ }
13
+ const styles = react_native_1.StyleSheet.create({
14
+ badge: { alignSelf: 'flex-start', borderRadius: 99, paddingHorizontal: 12, paddingVertical: 7 },
15
+ label: { fontFamily: theme_1.tokens.font.semibold, fontSize: 12 },
16
+ });
17
+ //# sourceMappingURL=ScoreBadge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ScoreBadge.js","sourceRoot":"","sources":["../../../src/components/ScoreBadge.tsx"],"names":[],"mappings":";;AAUA,gCAQC;;AAlBD,+CAAgD;AAChD,2DAA0C;AAE1C,oCAAkC;AAOlC,SAAgB,UAAU,CAAC,EAAE,KAAK,EAAE,IAAI,GAAG,SAAS,EAAmB;IACrE,MAAM,eAAe,GAAG,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,cAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,cAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,cAAM,CAAC,KAAK,CAAC,QAAQ,CAAC;IAC9I,MAAM,KAAK,GAAG,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,cAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,cAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,cAAM,CAAC,KAAK,CAAC,IAAI,CAAC;IACxH,OAAO,CACL,uBAAC,mBAAI,IAAC,KAAK,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,eAAe,EAAE,CAAC,YAC9C,uBAAC,yBAAI,IAAC,KAAK,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,YAAG,KAAK,GAAQ,GACjD,CACR,CAAC;AACJ,CAAC;AAED,MAAM,MAAM,GAAG,yBAAU,CAAC,MAAM,CAAC;IAC/B,KAAK,EAAE,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,EAAE,EAAE,iBAAiB,EAAE,EAAE,EAAE,eAAe,EAAE,CAAC,EAAE;IAC/F,KAAK,EAAE,EAAE,UAAU,EAAE,cAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE;CAC1D,CAAC,CAAC"}
@@ -0,0 +1,6 @@
1
+ export type ScoreTab = 'home' | 'history' | 'new-game' | 'score' | 'profile';
2
+ export type ScoreBottomNavProps = {
3
+ active: ScoreTab;
4
+ onSelect?: (tab: ScoreTab) => void;
5
+ };
6
+ export declare function ScoreBottomNav({ active, onSelect }: ScoreBottomNavProps): import("react").JSX.Element;
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ScoreBottomNav = ScoreBottomNav;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const react_1 = require("react");
6
+ const vector_icons_1 = require("@expo/vector-icons");
7
+ const react_native_1 = require("react-native");
8
+ const react_native_paper_1 = require("react-native-paper");
9
+ const theme_1 = require("../theme");
10
+ const useReducedMotion_1 = require("../useReducedMotion");
11
+ const items = [
12
+ { key: 'home', label: 'Inicio', icon: 'home-outline' },
13
+ { key: 'history', label: 'Historial', icon: 'history' },
14
+ { key: 'new-game', label: 'Nueva partida', icon: 'plus' },
15
+ { key: 'score', label: 'Puntuar', icon: 'file-document-edit-outline' },
16
+ { key: 'profile', label: 'Perfil', icon: 'account-outline' },
17
+ ];
18
+ function TabItem({ item, selected, onSelect, reducedMotion }) {
19
+ const [scale] = (0, react_1.useState)(() => new react_native_1.Animated.Value(selected ? 1.07 : 1));
20
+ const center = item.key === 'new-game';
21
+ const tint = selected ? theme_1.tokens.color.gold : theme_1.tokens.color.secondaryText;
22
+ (0, react_1.useEffect)(() => {
23
+ if (reducedMotion) {
24
+ scale.setValue(1);
25
+ return;
26
+ }
27
+ react_native_1.Animated.spring(scale, { toValue: selected ? 1.07 : 1, speed: 22, bounciness: 3, useNativeDriver: true }).start();
28
+ }, [reducedMotion, scale, selected]);
29
+ return ((0, jsx_runtime_1.jsxs)(react_native_1.Pressable, { accessibilityRole: "tab", accessibilityState: { selected }, accessibilityLabel: item.label, onPress: () => onSelect?.(item.key), style: [styles.item, center && styles.centerItem], children: [(0, jsx_runtime_1.jsx)(react_native_1.Animated.View, { style: { transform: [{ scale }] }, children: center ? ((0, jsx_runtime_1.jsxs)(react_native_1.View, { style: styles.die, children: [(0, jsx_runtime_1.jsx)(react_native_1.View, { style: styles.pipLeft }), (0, jsx_runtime_1.jsx)(react_native_1.View, { style: styles.pipRight }), (0, jsx_runtime_1.jsx)(react_native_1.View, { style: styles.pipBottomLeft }), (0, jsx_runtime_1.jsx)(react_native_1.View, { style: styles.pipBottomRight }), (0, jsx_runtime_1.jsx)(vector_icons_1.MaterialCommunityIcons, { name: "plus", color: theme_1.tokens.color.primaryText, size: 25 })] })) : (0, jsx_runtime_1.jsx)(vector_icons_1.MaterialCommunityIcons, { name: item.icon, color: tint, size: 24 }) }), (0, jsx_runtime_1.jsx)(react_native_paper_1.Text, { numberOfLines: 1, style: [styles.label, { color: center ? theme_1.tokens.color.primaryText : tint }], children: item.label })] }));
30
+ }
31
+ function ScoreBottomNav({ active, onSelect }) {
32
+ const reducedMotion = (0, useReducedMotion_1.useReducedMotion)();
33
+ return ((0, jsx_runtime_1.jsx)(react_native_1.View, { style: styles.nav, children: items.map((item) => (0, jsx_runtime_1.jsx)(TabItem, { item: item, selected: item.key === active, onSelect: onSelect, reducedMotion: reducedMotion }, item.key)) }));
34
+ }
35
+ const styles = react_native_1.StyleSheet.create({
36
+ nav: { minHeight: 96, backgroundColor: theme_1.tokens.color.canvas, borderTopColor: theme_1.tokens.color.border, borderTopWidth: 1, flexDirection: 'row', alignItems: 'center', justifyContent: 'space-around', paddingHorizontal: 4 },
37
+ item: { minWidth: 58, minHeight: 72, flex: 1, alignItems: 'center', justifyContent: 'center', gap: 5 },
38
+ centerItem: { flex: 1.4 },
39
+ label: { fontFamily: theme_1.tokens.font.medium, fontSize: 12, letterSpacing: 0.4, textAlign: 'center' },
40
+ die: { width: 44, height: 44, borderRadius: 10, backgroundColor: theme_1.tokens.color.redDark, alignItems: 'center', justifyContent: 'center', marginTop: -10 },
41
+ pipLeft: { position: 'absolute', width: 3, height: 3, borderRadius: 2, backgroundColor: theme_1.tokens.color.primaryText, left: 6, top: 6 },
42
+ pipRight: { position: 'absolute', width: 3, height: 3, borderRadius: 2, backgroundColor: theme_1.tokens.color.primaryText, right: 6, top: 6 },
43
+ pipBottomLeft: { position: 'absolute', width: 3, height: 3, borderRadius: 2, backgroundColor: theme_1.tokens.color.primaryText, left: 6, bottom: 6 },
44
+ pipBottomRight: { position: 'absolute', width: 3, height: 3, borderRadius: 2, backgroundColor: theme_1.tokens.color.primaryText, right: 6, bottom: 6 },
45
+ });
46
+ //# sourceMappingURL=ScoreBottomNav.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ScoreBottomNav.js","sourceRoot":"","sources":["../../../src/components/ScoreBottomNav.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ export type ScoreButtonProps = {
2
+ label: string;
3
+ variant?: 'primary' | 'secondary' | 'danger';
4
+ disabled?: boolean;
5
+ loading?: boolean;
6
+ icon?: string;
7
+ onPress?: () => void;
8
+ };
9
+ export declare function ScoreButton({ label, variant, disabled, loading, icon, onPress, }: ScoreButtonProps): import("react").JSX.Element;
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ScoreButton = ScoreButton;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const react_1 = require("react");
6
+ const react_native_1 = require("react-native");
7
+ const react_native_paper_1 = require("react-native-paper");
8
+ const theme_1 = require("../theme");
9
+ const useReducedMotion_1 = require("../useReducedMotion");
10
+ function ScoreButton({ label, variant = 'primary', disabled = false, loading = false, icon, onPress, }) {
11
+ const outlined = variant === 'secondary';
12
+ const [scale] = (0, react_1.useState)(() => new react_native_1.Animated.Value(1));
13
+ const reducedMotion = (0, useReducedMotion_1.useReducedMotion)();
14
+ function animatePress(toValue) {
15
+ if (reducedMotion || disabled)
16
+ return;
17
+ react_native_1.Animated.spring(scale, {
18
+ toValue,
19
+ speed: 28,
20
+ bounciness: 2,
21
+ useNativeDriver: true,
22
+ }).start();
23
+ }
24
+ return ((0, jsx_runtime_1.jsx)(react_native_1.Animated.View, { style: { transform: [{ scale }] }, children: (0, jsx_runtime_1.jsx)(react_native_paper_1.Button, { mode: outlined ? 'outlined' : 'contained', icon: icon, disabled: disabled, loading: loading, onPress: onPress, onPressIn: () => animatePress(0.97), onPressOut: () => animatePress(1), buttonColor: variant === 'danger' ? theme_1.tokens.color.redDark : theme_1.tokens.color.red, textColor: outlined ? theme_1.tokens.color.gold : theme_1.tokens.color.canvas, style: [styles.button, outlined && styles.outlined], contentStyle: styles.content, labelStyle: styles.label, children: label }) }));
25
+ }
26
+ const styles = react_native_1.StyleSheet.create({
27
+ button: { borderRadius: theme_1.tokens.radius.small },
28
+ outlined: { borderColor: theme_1.tokens.color.gold },
29
+ content: { minHeight: 52 },
30
+ label: { fontFamily: theme_1.tokens.font.semibold, fontSize: 14, marginVertical: 0 },
31
+ });
32
+ //# sourceMappingURL=ScoreButton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ScoreButton.js","sourceRoot":"","sources":["../../../src/components/ScoreButton.tsx"],"names":[],"mappings":";;AAgBA,kCA0CC;;AA1DD,iCAAiC;AACjC,+CAAoD;AACpD,2DAA4C;AAE5C,oCAAkC;AAClC,0DAAuD;AAWvD,SAAgB,WAAW,CAAC,EAC1B,KAAK,EACL,OAAO,GAAG,SAAS,EACnB,QAAQ,GAAG,KAAK,EAChB,OAAO,GAAG,KAAK,EACf,IAAI,EACJ,OAAO,GACU;IACjB,MAAM,QAAQ,GAAG,OAAO,KAAK,WAAW,CAAC;IACzC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAA,gBAAQ,EAAC,GAAG,EAAE,CAAC,IAAI,uBAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACtD,MAAM,aAAa,GAAG,IAAA,mCAAgB,GAAE,CAAC;IAEzC,SAAS,YAAY,CAAC,OAAe;QACnC,IAAI,aAAa,IAAI,QAAQ;YAAE,OAAO;QACtC,uBAAQ,CAAC,MAAM,CAAC,KAAK,EAAE;YACrB,OAAO;YACP,KAAK,EAAE,EAAE;YACT,UAAU,EAAE,CAAC;YACb,eAAe,EAAE,IAAI;SACtB,CAAC,CAAC,KAAK,EAAE,CAAC;IACb,CAAC;IAED,OAAO,CACL,uBAAC,uBAAQ,CAAC,IAAI,IAAC,KAAK,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,YAChD,uBAAC,2BAAM,IACL,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,EACzC,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,EACnC,UAAU,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,EACjC,WAAW,EAAE,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,cAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,cAAM,CAAC,KAAK,CAAC,GAAG,EAC3E,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,cAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,cAAM,CAAC,KAAK,CAAC,MAAM,EAC7D,KAAK,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,EACnD,YAAY,EAAE,MAAM,CAAC,OAAO,EAC5B,UAAU,EAAE,MAAM,CAAC,KAAK,YAEvB,KAAK,GACC,GACO,CACjB,CAAC;AACJ,CAAC;AAED,MAAM,MAAM,GAAG,yBAAU,CAAC,MAAM,CAAC;IAC/B,MAAM,EAAE,EAAE,YAAY,EAAE,cAAM,CAAC,MAAM,CAAC,KAAK,EAAE;IAC7C,QAAQ,EAAE,EAAE,WAAW,EAAE,cAAM,CAAC,KAAK,CAAC,IAAI,EAAE;IAC5C,OAAO,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE;IAC1B,KAAK,EAAE,EAAE,UAAU,EAAE,cAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,cAAc,EAAE,CAAC,EAAE;CAC7E,CAAC,CAAC"}
@@ -0,0 +1,13 @@
1
+ export type ScoreCalendarProps = {
2
+ selectedDate?: string | null;
3
+ onSelect?: (date: string) => void;
4
+ initialMonth?: string;
5
+ onMonthChange?: (month: string) => void;
6
+ minDate?: string;
7
+ maxDate?: string;
8
+ markedDates?: string[];
9
+ firstDayOfWeek?: 0 | 1;
10
+ locale?: string;
11
+ accentColor?: string;
12
+ };
13
+ export declare function ScoreCalendar({ selectedDate, onSelect, initialMonth, onMonthChange, minDate, maxDate, markedDates, firstDayOfWeek, locale, accentColor, }: ScoreCalendarProps): import("react").JSX.Element;
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ScoreCalendar = ScoreCalendar;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const react_1 = require("react");
6
+ const vector_icons_1 = require("@expo/vector-icons");
7
+ const react_native_1 = require("react-native");
8
+ const react_native_paper_1 = require("react-native-paper");
9
+ const theme_1 = require("../theme");
10
+ const two = (value) => String(value).padStart(2, '0');
11
+ const keyOf = (year, month, day) => `${year}-${two(month + 1)}-${two(day)}`;
12
+ const monthKey = (year, month) => `${year}-${two(month + 1)}`;
13
+ function readMonth(input) {
14
+ if (input && /^\d{4}-\d{2}/.test(input)) {
15
+ const year = Number(input.slice(0, 4));
16
+ const month = Number(input.slice(5, 7)) - 1;
17
+ if (month >= 0 && month < 12)
18
+ return { year, month };
19
+ }
20
+ const now = new Date();
21
+ return { year: now.getFullYear(), month: now.getMonth() };
22
+ }
23
+ function ScoreCalendar({ selectedDate = null, onSelect, initialMonth, onMonthChange, minDate, maxDate, markedDates = [], firstDayOfWeek = 1, locale = 'es-AR', accentColor = theme_1.tokens.color.gold, }) {
24
+ const [visible, setVisible] = (0, react_1.useState)(() => readMonth(initialMonth ?? selectedDate));
25
+ const first = new Date(Date.UTC(visible.year, visible.month, 1)).getUTCDay();
26
+ const offset = (first - firstDayOfWeek + 7) % 7;
27
+ const count = new Date(Date.UTC(visible.year, visible.month + 1, 0)).getUTCDate();
28
+ const cells = Array.from({ length: Math.ceil((offset + count) / 7) * 7 }, (_, index) => {
29
+ const day = index - offset + 1;
30
+ return day > 0 && day <= count ? day : null;
31
+ });
32
+ const title = new Intl.DateTimeFormat(locale, { month: 'long', year: 'numeric', timeZone: 'UTC' }).format(new Date(Date.UTC(visible.year, visible.month, 1)));
33
+ const weekdays = Array.from({ length: 7 }, (_, index) => {
34
+ const sundayBased = (index + firstDayOfWeek) % 7;
35
+ return new Intl.DateTimeFormat(locale, { weekday: 'short', timeZone: 'UTC' }).format(new Date(Date.UTC(2024, 0, 7 + sundayBased)));
36
+ });
37
+ const today = new Date();
38
+ const todayKey = keyOf(today.getFullYear(), today.getMonth(), today.getDate());
39
+ const marks = new Set(markedDates);
40
+ function moveMonth(delta) {
41
+ const next = new Date(Date.UTC(visible.year, visible.month + delta, 1));
42
+ const month = { year: next.getUTCFullYear(), month: next.getUTCMonth() };
43
+ setVisible(month);
44
+ onMonthChange?.(monthKey(month.year, month.month));
45
+ }
46
+ return ((0, jsx_runtime_1.jsxs)(react_native_1.View, { style: styles.calendar, children: [(0, jsx_runtime_1.jsxs)(react_native_1.View, { style: styles.header, children: [(0, jsx_runtime_1.jsx)(react_native_paper_1.Text, { style: styles.title, children: title }), (0, jsx_runtime_1.jsxs)(react_native_1.View, { style: styles.monthButtons, children: [(0, jsx_runtime_1.jsx)(react_native_1.Pressable, { accessibilityRole: "button", accessibilityLabel: "Mes anterior", onPress: () => moveMonth(-1), style: styles.monthButton, children: (0, jsx_runtime_1.jsx)(vector_icons_1.MaterialCommunityIcons, { name: "chevron-left", size: 24, color: theme_1.tokens.color.primaryText }) }), (0, jsx_runtime_1.jsx)(react_native_1.Pressable, { accessibilityRole: "button", accessibilityLabel: "Mes siguiente", onPress: () => moveMonth(1), style: styles.monthButton, children: (0, jsx_runtime_1.jsx)(vector_icons_1.MaterialCommunityIcons, { name: "chevron-right", size: 24, color: theme_1.tokens.color.primaryText }) })] })] }), (0, jsx_runtime_1.jsxs)(react_native_1.View, { style: styles.grid, children: [weekdays.map((name, index) => (0, jsx_runtime_1.jsx)(react_native_1.View, { style: styles.cell, children: (0, jsx_runtime_1.jsx)(react_native_paper_1.Text, { style: styles.weekday, children: name }) }, `weekday-${index}`)), cells.map((day, index) => {
47
+ if (day === null)
48
+ return (0, jsx_runtime_1.jsx)(react_native_1.View, { style: styles.cell }, `blank-${index}`);
49
+ const date = keyOf(visible.year, visible.month, day);
50
+ const selected = selectedDate === date;
51
+ const disabled = (minDate !== undefined && date < minDate) || (maxDate !== undefined && date > maxDate);
52
+ return (0, jsx_runtime_1.jsx)(react_native_1.View, { style: styles.cell, children: (0, jsx_runtime_1.jsxs)(react_native_1.Pressable, { accessibilityRole: "button", accessibilityLabel: new Intl.DateTimeFormat(locale, { dateStyle: 'full', timeZone: 'UTC' }).format(new Date(Date.UTC(visible.year, visible.month, day))), accessibilityState: { selected, disabled }, disabled: disabled, hitSlop: 4, onPress: () => onSelect?.(date), style: [styles.day, date === todayKey && !selected && { borderColor: accentColor, borderWidth: 1 }, selected && { backgroundColor: accentColor }], children: [(0, jsx_runtime_1.jsx)(react_native_paper_1.Text, { style: [styles.dayText, disabled && styles.disabledText, selected && styles.selectedText], children: day }), marks.has(date) && (0, jsx_runtime_1.jsx)(react_native_1.View, { style: [styles.mark, { backgroundColor: selected ? theme_1.tokens.color.canvas : accentColor }] })] }) }, date);
53
+ })] })] }));
54
+ }
55
+ const styles = react_native_1.StyleSheet.create({
56
+ calendar: { backgroundColor: theme_1.tokens.color.surface, borderRadius: theme_1.tokens.radius.large, padding: 16, gap: 14 },
57
+ header: { flexDirection: 'row', alignItems: 'center', justifyContent: 'space-between' },
58
+ title: { color: theme_1.tokens.color.primaryText, fontFamily: theme_1.tokens.font.heading, fontSize: 20, textTransform: 'capitalize' },
59
+ monthButtons: { flexDirection: 'row', gap: 4 },
60
+ monthButton: { width: 44, height: 44, alignItems: 'center', justifyContent: 'center' },
61
+ grid: { flexDirection: 'row', flexWrap: 'wrap' },
62
+ cell: { width: '14.2857%', height: 48, alignItems: 'center', justifyContent: 'center' },
63
+ weekday: { color: theme_1.tokens.color.secondaryText, fontFamily: theme_1.tokens.font.semibold, fontSize: 12, textTransform: 'uppercase' },
64
+ day: { width: '100%', maxWidth: 44, aspectRatio: 1, borderRadius: 22, alignItems: 'center', justifyContent: 'center' },
65
+ dayText: { color: theme_1.tokens.color.primaryText, fontFamily: theme_1.tokens.font.medium, fontSize: 14 },
66
+ disabledText: { color: theme_1.tokens.color.border },
67
+ selectedText: { color: theme_1.tokens.color.canvas, fontFamily: theme_1.tokens.font.semibold },
68
+ mark: { position: 'absolute', bottom: 5, width: 4, height: 4, borderRadius: 2 },
69
+ });
70
+ //# sourceMappingURL=ScoreCalendar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ScoreCalendar.js","sourceRoot":"","sources":["../../../src/components/ScoreCalendar.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export type ScoreCheckboxProps = {
2
+ label: string;
3
+ checked: boolean;
4
+ onChange?: (checked: boolean) => void;
5
+ disabled?: boolean;
6
+ };
7
+ export declare function ScoreCheckbox({ label, checked, onChange, disabled }: ScoreCheckboxProps): import("react").JSX.Element;
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ScoreCheckbox = ScoreCheckbox;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const react_native_1 = require("react-native");
6
+ const react_native_paper_1 = require("react-native-paper");
7
+ const theme_1 = require("../theme");
8
+ function ScoreCheckbox({ label, checked, onChange, disabled = false }) {
9
+ return ((0, jsx_runtime_1.jsxs)(react_native_1.View, { style: styles.row, children: [(0, jsx_runtime_1.jsx)(react_native_paper_1.Checkbox, { status: checked ? 'checked' : 'unchecked', onPress: () => onChange?.(!checked), disabled: disabled, color: theme_1.tokens.color.gold, uncheckedColor: theme_1.tokens.color.secondaryText }), (0, jsx_runtime_1.jsx)(react_native_paper_1.Text, { style: [styles.label, disabled && styles.disabled], onPress: () => !disabled && onChange?.(!checked), children: label })] }));
10
+ }
11
+ const styles = react_native_1.StyleSheet.create({
12
+ row: { minHeight: 48, flexDirection: 'row', alignItems: 'center' },
13
+ label: { color: theme_1.tokens.color.primaryText, fontFamily: theme_1.tokens.font.body, flex: 1 },
14
+ disabled: { opacity: 0.45 },
15
+ });
16
+ //# sourceMappingURL=ScoreCheckbox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ScoreCheckbox.js","sourceRoot":"","sources":["../../../src/components/ScoreCheckbox.tsx"],"names":[],"mappings":";;AAYA,sCAaC;;AAzBD,+CAAgD;AAChD,2DAAoD;AAEpD,oCAAkC;AASlC,SAAgB,aAAa,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,GAAG,KAAK,EAAsB;IAC9F,OAAO,CACL,wBAAC,mBAAI,IAAC,KAAK,EAAE,MAAM,CAAC,GAAG,aACrB,uBAAC,6BAAQ,IACP,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,EACzC,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,EACnC,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,cAAM,CAAC,KAAK,CAAC,IAAI,EACxB,cAAc,EAAE,cAAM,CAAC,KAAK,CAAC,aAAa,GAC1C,EACF,uBAAC,yBAAI,IAAC,KAAK,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,QAAQ,IAAI,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,YAAG,KAAK,GAAQ,IACrH,CACR,CAAC;AACJ,CAAC;AAED,MAAM,MAAM,GAAG,yBAAU,CAAC,MAAM,CAAC;IAC/B,GAAG,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE;IAClE,KAAK,EAAE,EAAE,KAAK,EAAE,cAAM,CAAC,KAAK,CAAC,WAAW,EAAE,UAAU,EAAE,cAAM,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE;IACjF,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;CAC5B,CAAC,CAAC"}
@@ -0,0 +1,12 @@
1
+ export type ScoreDropdownOption = {
2
+ label: string;
3
+ value: string;
4
+ };
5
+ export type ScoreDropdownProps = {
6
+ label: string;
7
+ value: string;
8
+ options: ScoreDropdownOption[];
9
+ onChange?: (value: string) => void;
10
+ disabled?: boolean;
11
+ };
12
+ export declare function ScoreDropdown({ label, value, options, onChange, disabled }: ScoreDropdownProps): import("react").JSX.Element;
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ScoreDropdown = ScoreDropdown;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const react_1 = require("react");
6
+ const react_native_1 = require("react-native");
7
+ const react_native_paper_1 = require("react-native-paper");
8
+ const theme_1 = require("../theme");
9
+ function ScoreDropdown({ label, value, options, onChange, disabled = false }) {
10
+ const [open, setOpen] = (0, react_1.useState)(false);
11
+ const selected = options.find((option) => option.value === value)?.label ?? 'Seleccionar';
12
+ return ((0, jsx_runtime_1.jsxs)(react_native_1.View, { style: styles.root, children: [(0, jsx_runtime_1.jsx)(react_native_paper_1.Text, { style: styles.label, children: label }), (0, jsx_runtime_1.jsx)(react_native_paper_1.Menu, { visible: open, onDismiss: () => setOpen(false), contentStyle: styles.menu, anchor: (0, jsx_runtime_1.jsx)(react_native_paper_1.Button, { mode: "outlined", disabled: disabled, onPress: () => setOpen(true), icon: "chevron-down", textColor: theme_1.tokens.color.primaryText, style: styles.button, contentStyle: styles.buttonContent, children: selected }), children: options.map((option) => (0, jsx_runtime_1.jsx)(react_native_paper_1.Menu.Item, { title: option.label, onPress: () => { onChange?.(option.value); setOpen(false); } }, option.value)) })] }));
13
+ }
14
+ const styles = react_native_1.StyleSheet.create({
15
+ root: { gap: 8 },
16
+ label: { color: theme_1.tokens.color.primaryText, fontFamily: theme_1.tokens.font.semibold, fontSize: 14 },
17
+ menu: { backgroundColor: theme_1.tokens.color.elevated },
18
+ button: { borderColor: theme_1.tokens.color.border, borderRadius: theme_1.tokens.radius.small, backgroundColor: theme_1.tokens.color.surface },
19
+ buttonContent: { minHeight: 52, justifyContent: 'space-between', flexDirection: 'row-reverse' },
20
+ });
21
+ //# sourceMappingURL=ScoreDropdown.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ScoreDropdown.js","sourceRoot":"","sources":["../../../src/components/ScoreDropdown.tsx"],"names":[],"mappings":";;AAeA,sCAgBC;;AA/BD,iCAAiC;AACjC,+CAAgD;AAChD,2DAAwD;AAExD,oCAAkC;AAWlC,SAAgB,aAAa,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,GAAG,KAAK,EAAsB;IACrG,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAC;IACxC,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,KAAK,KAAK,CAAC,EAAE,KAAK,IAAI,aAAa,CAAC;IAC1F,OAAO,CACL,wBAAC,mBAAI,IAAC,KAAK,EAAE,MAAM,CAAC,IAAI,aACtB,uBAAC,yBAAI,IAAC,KAAK,EAAE,MAAM,CAAC,KAAK,YAAG,KAAK,GAAQ,EACzC,uBAAC,yBAAI,IACH,OAAO,EAAE,IAAI,EACb,SAAS,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,EAC/B,YAAY,EAAE,MAAM,CAAC,IAAI,EACzB,MAAM,EAAE,uBAAC,2BAAM,IAAC,IAAI,EAAC,UAAU,EAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAC,cAAc,EAAC,SAAS,EAAE,cAAM,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,CAAC,aAAa,YAAG,QAAQ,GAAU,YAEvN,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,uBAAC,yBAAI,CAAC,IAAI,IAAoB,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAA/F,MAAM,CAAC,KAAK,CAAuF,CAAC,GACxI,IACF,CACR,CAAC;AACJ,CAAC;AAED,MAAM,MAAM,GAAG,yBAAU,CAAC,MAAM,CAAC;IAC/B,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE;IAChB,KAAK,EAAE,EAAE,KAAK,EAAE,cAAM,CAAC,KAAK,CAAC,WAAW,EAAE,UAAU,EAAE,cAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE;IAC1F,IAAI,EAAE,EAAE,eAAe,EAAE,cAAM,CAAC,KAAK,CAAC,QAAQ,EAAE;IAChD,MAAM,EAAE,EAAE,WAAW,EAAE,cAAM,CAAC,KAAK,CAAC,MAAM,EAAE,YAAY,EAAE,cAAM,CAAC,MAAM,CAAC,KAAK,EAAE,eAAe,EAAE,cAAM,CAAC,KAAK,CAAC,OAAO,EAAE;IACtH,aAAa,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,cAAc,EAAE,eAAe,EAAE,aAAa,EAAE,aAAa,EAAE;CAChG,CAAC,CAAC"}
@@ -0,0 +1,8 @@
1
+ export type ScoreGameCardProps = {
2
+ title: string;
3
+ detail: string;
4
+ score: number;
5
+ label?: string;
6
+ featured?: boolean;
7
+ };
8
+ export declare function ScoreGameCard({ title, detail, score, label, featured }: ScoreGameCardProps): import("react").JSX.Element;
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ScoreGameCard = ScoreGameCard;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const react_native_1 = require("react-native");
6
+ const react_native_paper_1 = require("react-native-paper");
7
+ const theme_1 = require("../theme");
8
+ function ScoreGameCard({ title, detail, score, label = 'PARTIDA EN CURSO', featured = false }) {
9
+ return ((0, jsx_runtime_1.jsx)(react_native_paper_1.Card, { style: [styles.card, featured && styles.featured], mode: "contained", children: (0, jsx_runtime_1.jsxs)(react_native_paper_1.Card.Content, { style: styles.content, children: [(0, jsx_runtime_1.jsx)(react_native_paper_1.Text, { style: styles.eyebrow, children: label }), (0, jsx_runtime_1.jsx)(react_native_paper_1.Text, { style: styles.title, children: title }), (0, jsx_runtime_1.jsx)(react_native_paper_1.Text, { style: styles.detail, children: detail }), (0, jsx_runtime_1.jsx)(react_native_1.View, { style: styles.divider }), (0, jsx_runtime_1.jsxs)(react_native_1.View, { style: styles.footer, children: [(0, jsx_runtime_1.jsx)(react_native_paper_1.Text, { style: styles.scoreLabel, children: "PUNTAJE" }), (0, jsx_runtime_1.jsx)(react_native_paper_1.Text, { style: styles.score, children: score })] })] }) }));
10
+ }
11
+ const styles = react_native_1.StyleSheet.create({
12
+ card: { backgroundColor: theme_1.tokens.color.surface, borderRadius: theme_1.tokens.radius.large },
13
+ featured: { borderColor: theme_1.tokens.color.gold, borderWidth: 1 },
14
+ content: { gap: 12, padding: 24 },
15
+ eyebrow: { color: theme_1.tokens.color.gold, fontFamily: theme_1.tokens.font.medium, fontSize: 12 },
16
+ title: { color: theme_1.tokens.color.primaryText, fontFamily: theme_1.tokens.font.heading, fontSize: 25, textTransform: 'uppercase' },
17
+ detail: { color: theme_1.tokens.color.secondaryText, fontFamily: theme_1.tokens.font.body, fontSize: 14 },
18
+ divider: { backgroundColor: theme_1.tokens.color.border, height: 1, marginTop: 3 },
19
+ footer: { alignItems: 'center', flexDirection: 'row', justifyContent: 'space-between' },
20
+ scoreLabel: { color: theme_1.tokens.color.secondaryText, fontFamily: theme_1.tokens.font.medium, fontSize: 12 },
21
+ score: { color: theme_1.tokens.color.gold, fontFamily: theme_1.tokens.font.heading, fontSize: 30 },
22
+ });
23
+ //# sourceMappingURL=ScoreGameCard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ScoreGameCard.js","sourceRoot":"","sources":["../../../src/components/ScoreGameCard.tsx"],"names":[],"mappings":";;AAaA,sCAeC;;AA5BD,+CAAgD;AAChD,2DAAgD;AAEhD,oCAAkC;AAUlC,SAAgB,aAAa,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,kBAAkB,EAAE,QAAQ,GAAG,KAAK,EAAsB;IACtH,OAAO,CACL,uBAAC,yBAAI,IAAC,KAAK,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAC,WAAW,YACvE,wBAAC,yBAAI,CAAC,OAAO,IAAC,KAAK,EAAE,MAAM,CAAC,OAAO,aACjC,uBAAC,yBAAI,IAAC,KAAK,EAAE,MAAM,CAAC,OAAO,YAAG,KAAK,GAAQ,EAC3C,uBAAC,yBAAI,IAAC,KAAK,EAAE,MAAM,CAAC,KAAK,YAAG,KAAK,GAAQ,EACzC,uBAAC,yBAAI,IAAC,KAAK,EAAE,MAAM,CAAC,MAAM,YAAG,MAAM,GAAQ,EAC3C,uBAAC,mBAAI,IAAC,KAAK,EAAE,MAAM,CAAC,OAAO,GAAI,EAC/B,wBAAC,mBAAI,IAAC,KAAK,EAAE,MAAM,CAAC,MAAM,aACxB,uBAAC,yBAAI,IAAC,KAAK,EAAE,MAAM,CAAC,UAAU,wBAAgB,EAC9C,uBAAC,yBAAI,IAAC,KAAK,EAAE,MAAM,CAAC,KAAK,YAAG,KAAK,GAAQ,IACpC,IACM,GACV,CACR,CAAC;AACJ,CAAC;AAED,MAAM,MAAM,GAAG,yBAAU,CAAC,MAAM,CAAC;IAC/B,IAAI,EAAE,EAAE,eAAe,EAAE,cAAM,CAAC,KAAK,CAAC,OAAO,EAAE,YAAY,EAAE,cAAM,CAAC,MAAM,CAAC,KAAK,EAAE;IAClF,QAAQ,EAAE,EAAE,WAAW,EAAE,cAAM,CAAC,KAAK,CAAC,IAAI,EAAE,WAAW,EAAE,CAAC,EAAE;IAC5D,OAAO,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;IACjC,OAAO,EAAE,EAAE,KAAK,EAAE,cAAM,CAAC,KAAK,CAAC,IAAI,EAAE,UAAU,EAAE,cAAM,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE;IACnF,KAAK,EAAE,EAAE,KAAK,EAAE,cAAM,CAAC,KAAK,CAAC,WAAW,EAAE,UAAU,EAAE,cAAM,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,aAAa,EAAE,WAAW,EAAE;IACrH,MAAM,EAAE,EAAE,KAAK,EAAE,cAAM,CAAC,KAAK,CAAC,aAAa,EAAE,UAAU,EAAE,cAAM,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE;IACzF,OAAO,EAAE,EAAE,eAAe,EAAE,cAAM,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE;IAC1E,MAAM,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE;IACvF,UAAU,EAAE,EAAE,KAAK,EAAE,cAAM,CAAC,KAAK,CAAC,aAAa,EAAE,UAAU,EAAE,cAAM,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE;IAC/F,KAAK,EAAE,EAAE,KAAK,EAAE,cAAM,CAAC,KAAK,CAAC,IAAI,EAAE,UAAU,EAAE,cAAM,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE;CACnF,CAAC,CAAC"}
@@ -0,0 +1,4 @@
1
+ export type ScoreSkeletonProps = {
2
+ variant?: 'text' | 'list' | 'card';
3
+ };
4
+ export declare function ScoreSkeleton({ variant }: ScoreSkeletonProps): import("react").JSX.Element;
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ScoreSkeleton = ScoreSkeleton;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const react_1 = require("react");
6
+ const react_native_1 = require("react-native");
7
+ const theme_1 = require("../theme");
8
+ const useReducedMotion_1 = require("../useReducedMotion");
9
+ function ScoreSkeleton({ variant = 'text' }) {
10
+ const [opacity] = (0, react_1.useState)(() => new react_native_1.Animated.Value(1));
11
+ const reducedMotion = (0, useReducedMotion_1.useReducedMotion)();
12
+ (0, react_1.useEffect)(() => {
13
+ if (reducedMotion) {
14
+ opacity.setValue(1);
15
+ return;
16
+ }
17
+ const pulse = react_native_1.Animated.loop(react_native_1.Animated.sequence([
18
+ react_native_1.Animated.timing(opacity, { toValue: 0.5, duration: 700, useNativeDriver: true }),
19
+ react_native_1.Animated.timing(opacity, { toValue: 1, duration: 700, useNativeDriver: true }),
20
+ ]));
21
+ pulse.start();
22
+ return () => pulse.stop();
23
+ }, [opacity, reducedMotion]);
24
+ if (variant === 'text')
25
+ return (0, jsx_runtime_1.jsx)(react_native_1.Animated.View, { accessibilityLabel: "Cargando", style: [styles.bar, { width: '72%', opacity }] });
26
+ if (variant === 'list')
27
+ return (0, jsx_runtime_1.jsx)(react_native_1.View, { accessibilityLabel: "Cargando lista", style: styles.list, children: [0, 1, 2].map((item) => (0, jsx_runtime_1.jsxs)(react_native_1.View, { style: styles.row, children: [(0, jsx_runtime_1.jsx)(react_native_1.Animated.View, { style: [styles.circle, { opacity }] }), (0, jsx_runtime_1.jsxs)(react_native_1.View, { style: styles.lines, children: [(0, jsx_runtime_1.jsx)(react_native_1.Animated.View, { style: [styles.bar, { width: '80%', opacity }] }), (0, jsx_runtime_1.jsx)(react_native_1.Animated.View, { style: [styles.bar, { width: '55%', opacity }] })] })] }, item)) });
28
+ return (0, jsx_runtime_1.jsxs)(react_native_1.View, { accessibilityLabel: "Cargando tarjeta", style: styles.card, children: [(0, jsx_runtime_1.jsx)(react_native_1.Animated.View, { style: [styles.bar, { width: '35%', opacity }] }), (0, jsx_runtime_1.jsx)(react_native_1.Animated.View, { style: [styles.bar, { width: '75%', height: 28, opacity }] }), (0, jsx_runtime_1.jsx)(react_native_1.Animated.View, { style: [styles.bar, { width: '95%', opacity }] }), (0, jsx_runtime_1.jsx)(react_native_1.Animated.View, { style: [styles.bar, { width: '50%', opacity }] })] });
29
+ }
30
+ const styles = react_native_1.StyleSheet.create({
31
+ bar: { backgroundColor: theme_1.tokens.color.elevated, height: 16, borderRadius: 8 },
32
+ list: { backgroundColor: theme_1.tokens.color.surface, padding: 16, borderRadius: theme_1.tokens.radius.medium, gap: 18 },
33
+ row: { flexDirection: 'row', gap: 12, alignItems: 'center' },
34
+ circle: { backgroundColor: theme_1.tokens.color.elevated, width: 42, height: 42, borderRadius: 21 },
35
+ lines: { flex: 1, gap: 9 },
36
+ card: { backgroundColor: theme_1.tokens.color.surface, padding: 24, borderRadius: theme_1.tokens.radius.large, gap: 17 },
37
+ });
38
+ //# sourceMappingURL=ScoreSkeleton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ScoreSkeleton.js","sourceRoot":"","sources":["../../../src/components/ScoreSkeleton.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ export type ScoreStepperProps = {
2
+ player: string;
3
+ detail?: string;
4
+ value: number;
5
+ onChange?: (value: number) => void;
6
+ min?: number;
7
+ max?: number;
8
+ disabled?: boolean;
9
+ };
10
+ export declare function ScoreStepper({ player, detail, value, onChange, min, max, disabled }: ScoreStepperProps): import("react").JSX.Element;
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ScoreStepper = ScoreStepper;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const react_1 = require("react");
6
+ const react_native_1 = require("react-native");
7
+ const react_native_paper_1 = require("react-native-paper");
8
+ const theme_1 = require("../theme");
9
+ const useReducedMotion_1 = require("../useReducedMotion");
10
+ function ScoreStepper({ player, detail, value, onChange, min = 0, max = 999, disabled = false }) {
11
+ const adjust = (delta) => onChange?.(Math.max(min, Math.min(max, value + delta)));
12
+ const [scale] = (0, react_1.useState)(() => new react_native_1.Animated.Value(1));
13
+ const previous = (0, react_1.useRef)(value);
14
+ const reducedMotion = (0, useReducedMotion_1.useReducedMotion)();
15
+ (0, react_1.useEffect)(() => {
16
+ if (previous.current !== value && !reducedMotion) {
17
+ scale.setValue(1.16);
18
+ react_native_1.Animated.spring(scale, { toValue: 1, speed: 24, bounciness: 4, useNativeDriver: true }).start();
19
+ }
20
+ previous.current = value;
21
+ }, [value, reducedMotion, scale]);
22
+ return ((0, jsx_runtime_1.jsxs)(react_native_1.View, { style: [styles.row, disabled && styles.disabled], children: [(0, jsx_runtime_1.jsxs)(react_native_1.View, { style: styles.person, children: [(0, jsx_runtime_1.jsx)(react_native_paper_1.Text, { style: styles.name, children: player }), detail && (0, jsx_runtime_1.jsx)(react_native_paper_1.Text, { style: styles.detail, children: detail })] }), (0, jsx_runtime_1.jsx)(react_native_1.Pressable, { accessibilityRole: "button", accessibilityLabel: `Restar un punto a ${player}`, disabled: disabled || value <= min, onPress: () => adjust(-1), style: styles.control, children: (0, jsx_runtime_1.jsx)(react_native_paper_1.Text, { style: styles.symbol, children: "\u2212" }) }), (0, jsx_runtime_1.jsx)(react_native_1.Animated.View, { style: { transform: [{ scale }] }, children: (0, jsx_runtime_1.jsx)(react_native_paper_1.Text, { accessibilityLabel: `${value} puntos`, style: styles.value, children: value }) }), (0, jsx_runtime_1.jsx)(react_native_1.Pressable, { accessibilityRole: "button", accessibilityLabel: `Sumar un punto a ${player}`, disabled: disabled || value >= max, onPress: () => adjust(1), style: styles.control, children: (0, jsx_runtime_1.jsx)(react_native_paper_1.Text, { style: styles.symbol, children: "+" }) })] }));
23
+ }
24
+ const styles = react_native_1.StyleSheet.create({
25
+ row: { minHeight: 88, backgroundColor: theme_1.tokens.color.surface, borderRadius: theme_1.tokens.radius.medium, paddingHorizontal: 14, flexDirection: 'row', alignItems: 'center', gap: 6 },
26
+ disabled: { opacity: 0.45 },
27
+ person: { flex: 1, gap: 4 },
28
+ name: { color: theme_1.tokens.color.primaryText, fontFamily: theme_1.tokens.font.semibold, fontSize: 14 },
29
+ detail: { color: theme_1.tokens.color.secondaryText, fontFamily: theme_1.tokens.font.body, fontSize: 12 },
30
+ control: { width: 44, height: 44, borderRadius: 22, backgroundColor: theme_1.tokens.color.elevated, alignItems: 'center', justifyContent: 'center' },
31
+ symbol: { color: theme_1.tokens.color.gold, fontFamily: theme_1.tokens.font.medium, fontSize: 24 },
32
+ value: { color: theme_1.tokens.color.primaryText, fontFamily: theme_1.tokens.font.semibold, minWidth: 30, textAlign: 'center' },
33
+ });
34
+ //# sourceMappingURL=ScoreStepper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ScoreStepper.js","sourceRoot":"","sources":["../../../src/components/ScoreStepper.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export type ScoreSwitchProps = {
2
+ label: string;
3
+ value: boolean;
4
+ onChange?: (value: boolean) => void;
5
+ disabled?: boolean;
6
+ };
7
+ export declare function ScoreSwitch({ label, value, onChange, disabled }: ScoreSwitchProps): import("react").JSX.Element;
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ScoreSwitch = ScoreSwitch;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const react_native_1 = require("react-native");
6
+ const react_native_paper_1 = require("react-native-paper");
7
+ const theme_1 = require("../theme");
8
+ function ScoreSwitch({ label, value, onChange, disabled = false }) {
9
+ return ((0, jsx_runtime_1.jsxs)(react_native_1.View, { style: styles.row, children: [(0, jsx_runtime_1.jsx)(react_native_paper_1.Text, { style: [styles.label, disabled && styles.disabled], children: label }), (0, jsx_runtime_1.jsx)(react_native_paper_1.Switch, { value: value, onValueChange: onChange, disabled: disabled, color: theme_1.tokens.color.red })] }));
10
+ }
11
+ const styles = react_native_1.StyleSheet.create({
12
+ row: { minHeight: 56, flexDirection: 'row', alignItems: 'center', justifyContent: 'space-between' },
13
+ label: { color: theme_1.tokens.color.primaryText, fontFamily: theme_1.tokens.font.body, flex: 1 },
14
+ disabled: { opacity: 0.45 },
15
+ });
16
+ //# sourceMappingURL=ScoreSwitch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ScoreSwitch.js","sourceRoot":"","sources":["../../../src/components/ScoreSwitch.tsx"],"names":[],"mappings":";;AAYA,kCAOC;;AAnBD,+CAAgD;AAChD,2DAAkD;AAElD,oCAAkC;AASlC,SAAgB,WAAW,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,GAAG,KAAK,EAAoB;IACxF,OAAO,CACL,wBAAC,mBAAI,IAAC,KAAK,EAAE,MAAM,CAAC,GAAG,aACrB,uBAAC,yBAAI,IAAC,KAAK,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,YAAG,KAAK,GAAQ,EACxE,uBAAC,2BAAM,IAAC,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,cAAM,CAAC,KAAK,CAAC,GAAG,GAAI,IACzF,CACR,CAAC;AACJ,CAAC;AAED,MAAM,MAAM,GAAG,yBAAU,CAAC,MAAM,CAAC;IAC/B,GAAG,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,eAAe,EAAE;IACnG,KAAK,EAAE,EAAE,KAAK,EAAE,cAAM,CAAC,KAAK,CAAC,WAAW,EAAE,UAAU,EAAE,cAAM,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE;IACjF,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;CAC5B,CAAC,CAAC"}
@@ -0,0 +1,17 @@
1
+ import { TextInput } from 'react-native-paper';
2
+ export type ScoreTextFieldProps = {
3
+ mode?: 'outlined';
4
+ label: string;
5
+ value: string;
6
+ onChangeText?: (text: string) => void;
7
+ placeholder?: string;
8
+ helperText?: string;
9
+ errorText?: string;
10
+ disabled?: boolean;
11
+ keyboardType?: React.ComponentProps<typeof TextInput>['keyboardType'];
12
+ autoCapitalize?: React.ComponentProps<typeof TextInput>['autoCapitalize'];
13
+ returnKeyType?: React.ComponentProps<typeof TextInput>['returnKeyType'];
14
+ onSubmitEditing?: React.ComponentProps<typeof TextInput>['onSubmitEditing'];
15
+ style?: React.ComponentProps<typeof TextInput>['style'];
16
+ };
17
+ export declare function ScoreTextField({ label, value, onChangeText, placeholder, helperText, errorText, disabled, keyboardType, autoCapitalize, returnKeyType, onSubmitEditing, style }: ScoreTextFieldProps): import("react").JSX.Element;
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ScoreTextField = ScoreTextField;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const react_native_1 = require("react-native");
6
+ const react_native_paper_1 = require("react-native-paper");
7
+ const theme_1 = require("../theme");
8
+ function ScoreTextField({ label, value, onChangeText, placeholder, helperText, errorText, disabled, keyboardType, autoCapitalize, returnKeyType, onSubmitEditing, style }) {
9
+ return ((0, jsx_runtime_1.jsxs)(react_native_1.View, { children: [(0, jsx_runtime_1.jsx)(react_native_paper_1.TextInput, { mode: "outlined", label: label, value: value, onChangeText: onChangeText, placeholder: placeholder, disabled: disabled, keyboardType: keyboardType, autoCapitalize: autoCapitalize, returnKeyType: returnKeyType, onSubmitEditing: onSubmitEditing, error: Boolean(errorText), textColor: theme_1.tokens.color.primaryText, outlineColor: theme_1.tokens.color.border, activeOutlineColor: theme_1.tokens.color.gold, style: [{ backgroundColor: theme_1.tokens.color.surface }, style] }), (errorText || helperText) && (0, jsx_runtime_1.jsx)(react_native_paper_1.HelperText, { type: errorText ? 'error' : 'info', visible: true, children: errorText || helperText })] }));
10
+ }
11
+ //# sourceMappingURL=ScoreTextField.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ScoreTextField.js","sourceRoot":"","sources":["../../../src/components/ScoreTextField.tsx"],"names":[],"mappings":";;AAqBA,wCAuBC;;AA5CD,+CAAoC;AACpC,2DAA2D;AAE3D,oCAAkC;AAkBlC,SAAgB,cAAc,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,eAAe,EAAE,KAAK,EAAuB;IACnM,OAAO,CACL,wBAAC,mBAAI,eACH,uBAAC,8BAAS,IACR,IAAI,EAAC,UAAU,EACf,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,KAAK,EACZ,YAAY,EAAE,YAAY,EAC1B,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,QAAQ,EAClB,YAAY,EAAE,YAAY,EAC1B,cAAc,EAAE,cAAc,EAC9B,aAAa,EAAE,aAAa,EAC5B,eAAe,EAAE,eAAe,EAChC,KAAK,EAAE,OAAO,CAAC,SAAS,CAAC,EACzB,SAAS,EAAE,cAAM,CAAC,KAAK,CAAC,WAAW,EACnC,YAAY,EAAE,cAAM,CAAC,KAAK,CAAC,MAAM,EACjC,kBAAkB,EAAE,cAAM,CAAC,KAAK,CAAC,IAAI,EACrC,KAAK,EAAE,CAAC,EAAE,eAAe,EAAE,cAAM,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,KAAK,CAAC,GACzD,EACD,CAAC,SAAS,IAAI,UAAU,CAAC,IAAI,uBAAC,+BAAU,IAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,EAAE,OAAO,kBAAE,SAAS,IAAI,UAAU,GAAc,IACvH,CACR,CAAC;AACJ,CAAC"}
package/lib/index.d.ts ADDED
@@ -0,0 +1,24 @@
1
+ export { ScoreUIProvider } from './ScoreUIProvider';
2
+ export { scoreUITheme, tokens } from './theme';
3
+ export { ScoreButton } from './components/ScoreButton';
4
+ export type { ScoreButtonProps } from './components/ScoreButton';
5
+ export { ScoreBadge } from './components/ScoreBadge';
6
+ export type { ScoreBadgeProps } from './components/ScoreBadge';
7
+ export { ScoreTextField } from './components/ScoreTextField';
8
+ export type { ScoreTextFieldProps } from './components/ScoreTextField';
9
+ export { ScoreGameCard } from './components/ScoreGameCard';
10
+ export type { ScoreGameCardProps } from './components/ScoreGameCard';
11
+ export { ScoreStepper } from './components/ScoreStepper';
12
+ export type { ScoreStepperProps } from './components/ScoreStepper';
13
+ export { ScoreBottomNav } from './components/ScoreBottomNav';
14
+ export type { ScoreBottomNavProps, ScoreTab } from './components/ScoreBottomNav';
15
+ export { ScoreCheckbox } from './components/ScoreCheckbox';
16
+ export type { ScoreCheckboxProps } from './components/ScoreCheckbox';
17
+ export { ScoreSwitch } from './components/ScoreSwitch';
18
+ export type { ScoreSwitchProps } from './components/ScoreSwitch';
19
+ export { ScoreDropdown } from './components/ScoreDropdown';
20
+ export type { ScoreDropdownProps, ScoreDropdownOption } from './components/ScoreDropdown';
21
+ export { ScoreSkeleton } from './components/ScoreSkeleton';
22
+ export type { ScoreSkeletonProps } from './components/ScoreSkeleton';
23
+ export { ScoreCalendar } from './components/ScoreCalendar';
24
+ export type { ScoreCalendarProps } from './components/ScoreCalendar';
package/lib/index.js ADDED
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ScoreCalendar = exports.ScoreSkeleton = exports.ScoreDropdown = exports.ScoreSwitch = exports.ScoreCheckbox = exports.ScoreBottomNav = exports.ScoreStepper = exports.ScoreGameCard = exports.ScoreTextField = exports.ScoreBadge = exports.ScoreButton = exports.tokens = exports.scoreUITheme = exports.ScoreUIProvider = void 0;
4
+ var ScoreUIProvider_1 = require("./ScoreUIProvider");
5
+ Object.defineProperty(exports, "ScoreUIProvider", { enumerable: true, get: function () { return ScoreUIProvider_1.ScoreUIProvider; } });
6
+ var theme_1 = require("./theme");
7
+ Object.defineProperty(exports, "scoreUITheme", { enumerable: true, get: function () { return theme_1.scoreUITheme; } });
8
+ Object.defineProperty(exports, "tokens", { enumerable: true, get: function () { return theme_1.tokens; } });
9
+ var ScoreButton_1 = require("./components/ScoreButton");
10
+ Object.defineProperty(exports, "ScoreButton", { enumerable: true, get: function () { return ScoreButton_1.ScoreButton; } });
11
+ var ScoreBadge_1 = require("./components/ScoreBadge");
12
+ Object.defineProperty(exports, "ScoreBadge", { enumerable: true, get: function () { return ScoreBadge_1.ScoreBadge; } });
13
+ var ScoreTextField_1 = require("./components/ScoreTextField");
14
+ Object.defineProperty(exports, "ScoreTextField", { enumerable: true, get: function () { return ScoreTextField_1.ScoreTextField; } });
15
+ var ScoreGameCard_1 = require("./components/ScoreGameCard");
16
+ Object.defineProperty(exports, "ScoreGameCard", { enumerable: true, get: function () { return ScoreGameCard_1.ScoreGameCard; } });
17
+ var ScoreStepper_1 = require("./components/ScoreStepper");
18
+ Object.defineProperty(exports, "ScoreStepper", { enumerable: true, get: function () { return ScoreStepper_1.ScoreStepper; } });
19
+ var ScoreBottomNav_1 = require("./components/ScoreBottomNav");
20
+ Object.defineProperty(exports, "ScoreBottomNav", { enumerable: true, get: function () { return ScoreBottomNav_1.ScoreBottomNav; } });
21
+ var ScoreCheckbox_1 = require("./components/ScoreCheckbox");
22
+ Object.defineProperty(exports, "ScoreCheckbox", { enumerable: true, get: function () { return ScoreCheckbox_1.ScoreCheckbox; } });
23
+ var ScoreSwitch_1 = require("./components/ScoreSwitch");
24
+ Object.defineProperty(exports, "ScoreSwitch", { enumerable: true, get: function () { return ScoreSwitch_1.ScoreSwitch; } });
25
+ var ScoreDropdown_1 = require("./components/ScoreDropdown");
26
+ Object.defineProperty(exports, "ScoreDropdown", { enumerable: true, get: function () { return ScoreDropdown_1.ScoreDropdown; } });
27
+ var ScoreSkeleton_1 = require("./components/ScoreSkeleton");
28
+ Object.defineProperty(exports, "ScoreSkeleton", { enumerable: true, get: function () { return ScoreSkeleton_1.ScoreSkeleton; } });
29
+ var ScoreCalendar_1 = require("./components/ScoreCalendar");
30
+ Object.defineProperty(exports, "ScoreCalendar", { enumerable: true, get: function () { return ScoreCalendar_1.ScoreCalendar; } });
31
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA,qDAAoD;AAA3C,kHAAA,eAAe,OAAA;AACxB,iCAA+C;AAAtC,qGAAA,YAAY,OAAA;AAAE,+FAAA,MAAM,OAAA;AAC7B,wDAAuD;AAA9C,0GAAA,WAAW,OAAA;AAEpB,sDAAqD;AAA5C,wGAAA,UAAU,OAAA;AAEnB,8DAA6D;AAApD,gHAAA,cAAc,OAAA;AAEvB,4DAA2D;AAAlD,8GAAA,aAAa,OAAA;AAEtB,0DAAyD;AAAhD,4GAAA,YAAY,OAAA;AAErB,8DAA6D;AAApD,gHAAA,cAAc,OAAA;AAEvB,4DAA2D;AAAlD,8GAAA,aAAa,OAAA;AAEtB,wDAAuD;AAA9C,0GAAA,WAAW,OAAA;AAEpB,4DAA2D;AAAlD,8GAAA,aAAa,OAAA;AAEtB,4DAA2D;AAAlD,8GAAA,aAAa,OAAA;AAEtB,4DAA2D;AAAlD,8GAAA,aAAa,OAAA"}
package/lib/theme.d.ts ADDED
@@ -0,0 +1,83 @@
1
+ export declare const tokens: {
2
+ readonly color: {
3
+ readonly canvas: "#100D19";
4
+ readonly surface: "#231928";
5
+ readonly elevated: "#322233";
6
+ readonly primaryText: "#FFF4E1";
7
+ readonly secondaryText: "#BCAFB9";
8
+ readonly gold: "#FFD47A";
9
+ readonly red: "#F4511E";
10
+ readonly redDark: "#B5253C";
11
+ readonly border: "#65464C";
12
+ readonly success: "#65D88B";
13
+ readonly successSoft: "#1B402D";
14
+ readonly warning: "#FF6F66";
15
+ readonly warningSoft: "#562026";
16
+ };
17
+ readonly radius: {
18
+ readonly small: 8;
19
+ readonly medium: 14;
20
+ readonly large: 18;
21
+ };
22
+ readonly space: {
23
+ readonly xs: 4;
24
+ readonly sm: 8;
25
+ readonly md: 16;
26
+ readonly lg: 24;
27
+ readonly xl: 32;
28
+ };
29
+ readonly font: {
30
+ readonly body: "Inter_400Regular";
31
+ readonly medium: "Inter_500Medium";
32
+ readonly semibold: "Inter_600SemiBold";
33
+ readonly heading: "Cinzel_700Bold";
34
+ readonly brand: "CinzelDecorative_700Bold";
35
+ };
36
+ };
37
+ export declare const scoreUITheme: {
38
+ roundness: 14;
39
+ colors: {
40
+ primary: "#F4511E";
41
+ onPrimary: "#100D19";
42
+ primaryContainer: "#B5253C";
43
+ onPrimaryContainer: "#FFF4E1";
44
+ secondary: "#FFD47A";
45
+ onSecondary: "#100D19";
46
+ background: "#100D19";
47
+ surface: "#231928";
48
+ surfaceVariant: "#322233";
49
+ onSurface: "#FFF4E1";
50
+ onSurfaceVariant: "#BCAFB9";
51
+ outline: "#65464C";
52
+ error: "#FF6F66";
53
+ secondaryContainer: string;
54
+ tertiary: string;
55
+ tertiaryContainer: string;
56
+ surfaceDisabled: string;
57
+ errorContainer: string;
58
+ onSecondaryContainer: string;
59
+ onTertiary: string;
60
+ onTertiaryContainer: string;
61
+ onSurfaceDisabled: string;
62
+ onError: string;
63
+ onErrorContainer: string;
64
+ onBackground: string;
65
+ outlineVariant: string;
66
+ inverseSurface: string;
67
+ inverseOnSurface: string;
68
+ inversePrimary: string;
69
+ shadow: string;
70
+ scrim: string;
71
+ backdrop: string;
72
+ elevation: import("react-native-paper/lib/typescript/types").MD3ElevationColors;
73
+ };
74
+ dark: boolean;
75
+ mode?: "adaptive" | "exact";
76
+ animation: {
77
+ scale: number;
78
+ defaultAnimationDuration?: number;
79
+ };
80
+ version: 3;
81
+ isV3: true;
82
+ fonts: import("react-native-paper/lib/typescript/types").MD3Typescale;
83
+ };
package/lib/theme.js ADDED
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.scoreUITheme = exports.tokens = void 0;
4
+ const react_native_paper_1 = require("react-native-paper");
5
+ exports.tokens = {
6
+ color: {
7
+ canvas: '#100D19',
8
+ surface: '#231928',
9
+ elevated: '#322233',
10
+ primaryText: '#FFF4E1',
11
+ secondaryText: '#BCAFB9',
12
+ gold: '#FFD47A',
13
+ red: '#F4511E',
14
+ redDark: '#B5253C',
15
+ border: '#65464C',
16
+ success: '#65D88B',
17
+ successSoft: '#1B402D',
18
+ warning: '#FF6F66',
19
+ warningSoft: '#562026',
20
+ },
21
+ radius: { small: 8, medium: 14, large: 18 },
22
+ space: { xs: 4, sm: 8, md: 16, lg: 24, xl: 32 },
23
+ font: {
24
+ body: 'Inter_400Regular',
25
+ medium: 'Inter_500Medium',
26
+ semibold: 'Inter_600SemiBold',
27
+ heading: 'Cinzel_700Bold',
28
+ brand: 'CinzelDecorative_700Bold',
29
+ },
30
+ };
31
+ exports.scoreUITheme = {
32
+ ...react_native_paper_1.MD3DarkTheme,
33
+ roundness: exports.tokens.radius.medium,
34
+ colors: {
35
+ ...react_native_paper_1.MD3DarkTheme.colors,
36
+ primary: exports.tokens.color.red,
37
+ onPrimary: exports.tokens.color.canvas,
38
+ primaryContainer: exports.tokens.color.redDark,
39
+ onPrimaryContainer: exports.tokens.color.primaryText,
40
+ secondary: exports.tokens.color.gold,
41
+ onSecondary: exports.tokens.color.canvas,
42
+ background: exports.tokens.color.canvas,
43
+ surface: exports.tokens.color.surface,
44
+ surfaceVariant: exports.tokens.color.elevated,
45
+ onSurface: exports.tokens.color.primaryText,
46
+ onSurfaceVariant: exports.tokens.color.secondaryText,
47
+ outline: exports.tokens.color.border,
48
+ error: exports.tokens.color.warning,
49
+ },
50
+ };
51
+ //# sourceMappingURL=theme.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme.js","sourceRoot":"","sources":["../../src/theme.ts"],"names":[],"mappings":";;;AAAA,2DAAkD;AAErC,QAAA,MAAM,GAAG;IACpB,KAAK,EAAE;QACL,MAAM,EAAE,SAAS;QACjB,OAAO,EAAE,SAAS;QAClB,QAAQ,EAAE,SAAS;QACnB,WAAW,EAAE,SAAS;QACtB,aAAa,EAAE,SAAS;QACxB,IAAI,EAAE,SAAS;QACf,GAAG,EAAE,SAAS;QACd,OAAO,EAAE,SAAS;QAClB,MAAM,EAAE,SAAS;QACjB,OAAO,EAAE,SAAS;QAClB,WAAW,EAAE,SAAS;QACtB,OAAO,EAAE,SAAS;QAClB,WAAW,EAAE,SAAS;KACvB;IACD,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;IAC3C,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;IAC/C,IAAI,EAAE;QACJ,IAAI,EAAE,kBAAkB;QACxB,MAAM,EAAE,iBAAiB;QACzB,QAAQ,EAAE,mBAAmB;QAC7B,OAAO,EAAE,gBAAgB;QACzB,KAAK,EAAE,0BAA0B;KAClC;CACO,CAAC;AAEE,QAAA,YAAY,GAAG;IAC1B,GAAG,iCAAY;IACf,SAAS,EAAE,cAAM,CAAC,MAAM,CAAC,MAAM;IAC/B,MAAM,EAAE;QACN,GAAG,iCAAY,CAAC,MAAM;QACtB,OAAO,EAAE,cAAM,CAAC,KAAK,CAAC,GAAG;QACzB,SAAS,EAAE,cAAM,CAAC,KAAK,CAAC,MAAM;QAC9B,gBAAgB,EAAE,cAAM,CAAC,KAAK,CAAC,OAAO;QACtC,kBAAkB,EAAE,cAAM,CAAC,KAAK,CAAC,WAAW;QAC5C,SAAS,EAAE,cAAM,CAAC,KAAK,CAAC,IAAI;QAC5B,WAAW,EAAE,cAAM,CAAC,KAAK,CAAC,MAAM;QAChC,UAAU,EAAE,cAAM,CAAC,KAAK,CAAC,MAAM;QAC/B,OAAO,EAAE,cAAM,CAAC,KAAK,CAAC,OAAO;QAC7B,cAAc,EAAE,cAAM,CAAC,KAAK,CAAC,QAAQ;QACrC,SAAS,EAAE,cAAM,CAAC,KAAK,CAAC,WAAW;QACnC,gBAAgB,EAAE,cAAM,CAAC,KAAK,CAAC,aAAa;QAC5C,OAAO,EAAE,cAAM,CAAC,KAAK,CAAC,MAAM;QAC5B,KAAK,EAAE,cAAM,CAAC,KAAK,CAAC,OAAO;KAC5B;CACF,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function useReducedMotion(): boolean;
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useReducedMotion = useReducedMotion;
4
+ const react_1 = require("react");
5
+ const react_native_1 = require("react-native");
6
+ function useReducedMotion() {
7
+ const [reduced, setReduced] = (0, react_1.useState)(false);
8
+ (0, react_1.useEffect)(() => {
9
+ let mounted = true;
10
+ react_native_1.AccessibilityInfo.isReduceMotionEnabled().then((value) => {
11
+ if (mounted)
12
+ setReduced(value);
13
+ }).catch(() => undefined);
14
+ const subscription = react_native_1.AccessibilityInfo.addEventListener('reduceMotionChanged', setReduced);
15
+ return () => {
16
+ mounted = false;
17
+ subscription.remove();
18
+ };
19
+ }, []);
20
+ return reduced;
21
+ }
22
+ //# sourceMappingURL=useReducedMotion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useReducedMotion.js","sourceRoot":"","sources":["../../src/useReducedMotion.ts"],"names":[],"mappings":";;AAGA,4CAgBC;AAnBD,iCAA4C;AAC5C,+CAAiD;AAEjD,SAAgB,gBAAgB;IAC9B,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAC;IAE9C,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,IAAI,OAAO,GAAG,IAAI,CAAC;QACnB,gCAAiB,CAAC,qBAAqB,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;YACvD,IAAI,OAAO;gBAAE,UAAU,CAAC,KAAK,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QAC1B,MAAM,YAAY,GAAG,gCAAiB,CAAC,gBAAgB,CAAC,qBAAqB,EAAE,UAAU,CAAC,CAAC;QAC3F,OAAO,GAAG,EAAE;YACV,OAAO,GAAG,KAAK,CAAC;YAChB,YAAY,CAAC,MAAM,EAAE,CAAC;QACxB,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,OAAO,CAAC;AACjB,CAAC"}
package/package.json ADDED
@@ -0,0 +1,41 @@
1
+ {
2
+ "name": "@decodadev02/scoreui",
3
+ "version": "0.1.0",
4
+ "description": "Componentes móviles de Tablescore para React Native y Expo",
5
+ "license": "MIT",
6
+ "main": "./lib/index.js",
7
+ "types": "./lib/index.d.ts",
8
+ "react-native": "./lib/index.js",
9
+ "files": [
10
+ "lib",
11
+ "README.md"
12
+ ],
13
+ "keywords": [
14
+ "react-native",
15
+ "expo",
16
+ "react-native-paper",
17
+ "design-system",
18
+ "tablescore"
19
+ ],
20
+ "repository": {
21
+ "type": "git",
22
+ "url": "https://github.com/MarianellaGL/scoreUI.git"
23
+ },
24
+ "publishConfig": {
25
+ "access": "public"
26
+ },
27
+ "dependencies": {
28
+ "@expo-google-fonts/cinzel": "^0.4.2",
29
+ "@expo-google-fonts/cinzel-decorative": "^0.4.1",
30
+ "@expo-google-fonts/inter": "^0.4.2"
31
+ },
32
+ "peerDependencies": {
33
+ "@expo/vector-icons": "^15.1.1",
34
+ "expo": "~57.0.0",
35
+ "expo-font": "~57.0.0",
36
+ "react": "^19.2.0",
37
+ "react-native": "^0.86.0",
38
+ "react-native-paper": "^5.15.0"
39
+ },
40
+ "sideEffects": false
41
+ }