@sincpro/mobile-ui 0.3.0 → 0.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Dialog/BottomSheet/BottomSheet.Root.d.ts +2 -2
- package/dist/Dialog/BottomSheet/BottomSheet.Root.js +2 -2
- package/dist/Dialog/Dialog.Confirmation.js +5 -1
- package/dist/Dialog/Dialog.EditValue.js +1 -1
- package/dist/Display/Display.GradientSurface.d.ts +116 -0
- package/dist/Display/Display.GradientSurface.js +62 -0
- package/dist/Display/Display.KeyValue.js +1 -1
- package/dist/Display/Display.ListItem.d.ts +5 -1
- package/dist/Display/Display.ListItem.js +6 -2
- package/dist/Display/Display.Monetary.js +1 -1
- package/dist/Display/Display.Pattern.d.ts +26 -0
- package/dist/Display/Display.Pattern.js +27 -0
- package/dist/Display/Display.PriceTag.js +3 -3
- package/dist/Display/Display.Stat.js +1 -1
- package/dist/Display/Display.StatCard.js +1 -1
- package/dist/Display/index.d.ts +4 -0
- package/dist/Display/index.js +4 -0
- package/dist/Feedback/Feedback.DomainSplashScreen.js +3 -2
- package/dist/Feedback/Feedback.Loading.d.ts +6 -0
- package/dist/Feedback/Feedback.Loading.js +7 -1
- package/dist/Feedback/Feedback.Spinner.js +2 -1
- package/dist/Feedback/Feedback.Splash.d.ts +7 -1
- package/dist/Feedback/Feedback.Splash.js +11 -2
- package/dist/Feedback/Toast.context.d.ts +8 -1
- package/dist/Feedback/Toast.context.js +25 -23
- package/dist/Form/Form.Button.d.ts +4 -4
- package/dist/Form/Form.Button.js +19 -19
- package/dist/Form/Form.Checkbox.js +1 -1
- package/dist/Form/Form.Input.js +1 -1
- package/dist/Form/Form.InputField.js +1 -1
- package/dist/Form/Form.Switch.js +1 -1
- package/dist/Navigation/Navigation.AppBar.d.ts +18 -2
- package/dist/Navigation/Navigation.AppBar.js +48 -9
- package/dist/Navigation/Navigation.BottomNav.d.ts +33 -5
- package/dist/Navigation/Navigation.BottomNav.js +90 -17
- package/dist/Navigation/Navigation.SearchBar.js +7 -1
- package/dist/Navigation/Navigation.TabIcon.d.ts +4 -0
- package/dist/Navigation/Navigation.TabIcon.js +4 -0
- package/dist/Navigation/Navigation.TabItem.d.ts +5 -0
- package/dist/Navigation/Navigation.TabItem.js +5 -0
- package/dist/Navigation/index.d.ts +2 -2
- package/dist/Typography/Typography.Text.d.ts +1 -1
- package/dist/Typography/Typography.Text.js +16 -6
- package/dist/icons/OdooIcon.d.ts +5 -0
- package/dist/icons/OdooIcon.js +5 -0
- package/dist/icons/PrinterIcon.d.ts +5 -0
- package/dist/icons/PrinterIcon.js +5 -0
- package/dist/layouts/AuthContainer.js +2 -2
- package/dist/theme/dark.d.ts +3 -3
- package/dist/theme/dark.js +54 -53
- package/dist/theme/default.js +1 -0
- package/dist/theme/index.d.ts +1 -0
- package/dist/theme/index.js +1 -0
- package/dist/theme/types.d.ts +1 -0
- package/dist/theme/typography.d.ts +117 -60
- package/dist/theme/typography.js +115 -29
- package/dist/utils/timezone.d.ts +5 -0
- package/dist/views/FormViewV2.d.ts +2 -1
- package/dist/views/FormViewV2.js +8 -4
- package/dist/views/ListViewV2.context.d.ts +5 -1
- package/dist/views/ListViewV2.context.js +3 -1
- package/dist/views/ListViewV2.d.ts +7 -2
- package/dist/views/ListViewV2.js +18 -20
- package/dist/widgets/GeoPermissionCard.d.ts +5 -0
- package/dist/widgets/GeoPermissionCard.js +8 -3
- package/dist/widgets/JSONViewer.js +3 -6
- package/dist/widgets/TimeZoneSelector.d.ts +5 -0
- package/dist/widgets/TimeZoneSelector.js +6 -1
- package/dist/widgets/TimeZoneSelectorModal.d.ts +5 -0
- package/dist/widgets/TimeZoneSelectorModal.js +8 -3
- package/package.json +12 -7
|
@@ -4,13 +4,19 @@ import Pressable from "../primitives/Pressable";
|
|
|
4
4
|
import { theme } from "../theme";
|
|
5
5
|
import { cn } from "../theme/tw";
|
|
6
6
|
import { Typography } from "../Typography";
|
|
7
|
+
import { useState } from "react";
|
|
7
8
|
import { TextInput, View } from "react-native";
|
|
8
9
|
/**
|
|
9
10
|
* **Pill** search bar (rounded-full), 2026 style (merge of Material 3 + iOS 26).
|
|
10
11
|
* Use `editable={false}` + `onPress` for a trigger that navigates to the search screen.
|
|
11
12
|
*/
|
|
12
13
|
function SearchBar({ value, onChangeText, placeholder = "Buscar", onSubmit, onClear, autoFocus, editable = true, onPress, className, testID, }) {
|
|
13
|
-
const
|
|
14
|
+
const [focused, setFocused] = useState(false);
|
|
15
|
+
const body = (_jsxs(View, { className: cn("flex-row items-center gap-2 rounded-full px-4", focused ? "bg-bg-card" : "bg-bg-muted", className), style: {
|
|
16
|
+
height: 44,
|
|
17
|
+
borderWidth: 1,
|
|
18
|
+
borderColor: focused ? theme.border.focus : "transparent",
|
|
19
|
+
}, children: [_jsx(Icon, { color: focused ? theme.border.focus : theme.icon.tertiary, name: "search", size: 18 }), editable ? (_jsx(TextInput, { autoFocus: autoFocus, className: "flex-1 text-sm text-text-primary", onBlur: () => setFocused(false), onChangeText: onChangeText, onFocus: () => setFocused(true), onSubmitEditing: (e) => onSubmit?.(e.nativeEvent.text), placeholder: placeholder, placeholderTextColor: theme.text.tertiary, returnKeyType: "search", value: value })) : (_jsx(Typography.Text, { className: "flex-1 text-text-tertiary text-sm", numberOfLines: 1, children: value || placeholder })), editable && value.length > 0 ? (_jsx(Pressable, { accessibilityLabel: "Limpiar", hitSlop: 8, onPress: () => {
|
|
14
20
|
onChangeText("");
|
|
15
21
|
onClear?.();
|
|
16
22
|
}, children: _jsx(Icon, { color: theme.icon.tertiary, name: "close-circle", size: 18 }) })) : null] }));
|
|
@@ -10,5 +10,9 @@ interface TabIconProps {
|
|
|
10
10
|
name?: any;
|
|
11
11
|
className?: string;
|
|
12
12
|
}
|
|
13
|
+
/**
|
|
14
|
+
* @deprecated Orphan tab-bar icon piece (unused). Use `Navigation.BottomNav` (single source
|
|
15
|
+
* of truth for the bottom tab bar). Kept for backwards compatibility; removed in the next major.
|
|
16
|
+
*/
|
|
13
17
|
declare function TabIcon({ focused, size, customIcon, type, name, className, }: TabIconProps): import("react").JSX.Element;
|
|
14
18
|
export default TabIcon;
|
|
@@ -3,6 +3,10 @@ import { Display } from "../Display";
|
|
|
3
3
|
import { cn } from "../theme/tw";
|
|
4
4
|
import { View } from "react-native";
|
|
5
5
|
const Icon = Display.Icon;
|
|
6
|
+
/**
|
|
7
|
+
* @deprecated Orphan tab-bar icon piece (unused). Use `Navigation.BottomNav` (single source
|
|
8
|
+
* of truth for the bottom tab bar). Kept for backwards compatibility; removed in the next major.
|
|
9
|
+
*/
|
|
6
10
|
function TabIcon({ focused, size = 24, customIcon, type = "custom", name, className, }) {
|
|
7
11
|
return (_jsx(View, { className: cn("justify-center items-center h-9 w-14 rounded-2xl", focused && "bg-primary shadow-sm", className), children: _jsx(Icon, { className: focused ? "text-white" : "text-text-secondary", customIcon: customIcon, name: name, size: size, type: type }) }));
|
|
8
12
|
}
|
|
@@ -10,5 +10,10 @@ export interface TabIconProps {
|
|
|
10
10
|
name?: any;
|
|
11
11
|
className?: string;
|
|
12
12
|
}
|
|
13
|
+
/**
|
|
14
|
+
* @deprecated Orphan tab-bar icon piece (unused). The bottom tab bar is now the single
|
|
15
|
+
* `Navigation.BottomNav` (configurable shape/indicator/labels/FAB). Kept for backwards
|
|
16
|
+
* compatibility; removed in the next major.
|
|
17
|
+
*/
|
|
13
18
|
declare const TabIcon: FC<TabIconProps>;
|
|
14
19
|
export default TabIcon;
|
|
@@ -2,6 +2,11 @@ import { jsx as _jsx } from "nativewind/jsx-runtime";
|
|
|
2
2
|
import { Display } from "../Display";
|
|
3
3
|
import { cn } from "../theme/tw";
|
|
4
4
|
import { View } from "react-native";
|
|
5
|
+
/**
|
|
6
|
+
* @deprecated Orphan tab-bar icon piece (unused). The bottom tab bar is now the single
|
|
7
|
+
* `Navigation.BottomNav` (configurable shape/indicator/labels/FAB). Kept for backwards
|
|
8
|
+
* compatibility; removed in the next major.
|
|
9
|
+
*/
|
|
5
10
|
const TabIcon = ({ focused, size = 24, customIcon, type = "custom", name, className, }) => {
|
|
6
11
|
return (_jsx(View, { className: cn("justify-center items-center w-12 h-12 rounded-full", focused ? "bg-primary shadow-md" : "bg-transparent", className), children: _jsx(Display.Icon, { color: focused ? "#FFFFFF" : "#6B7280", customIcon: customIcon, name: name, size: size, type: type }) }));
|
|
7
12
|
};
|
|
@@ -9,8 +9,8 @@ import SegmentedControl from "../Navigation/Navigation.SegmentedControl";
|
|
|
9
9
|
import Steps from "../Navigation/Navigation.Steps";
|
|
10
10
|
import TabIcon from "../Navigation/Navigation.TabIcon";
|
|
11
11
|
export declare const Navigation: {
|
|
12
|
-
AppBar: (({ title, subtitle, onBack, leading, actions, subheader, variant, border, safeArea, className, testID, }: import("../Navigation/Navigation.AppBar").AppBarProps) => import("react").JSX.Element) & {
|
|
13
|
-
Action: ({ icon, onPress, badge, accessibilityLabel, tone, testID, }: import("../Navigation/Navigation.AppBar").AppBarActionProps) => import("react").JSX.Element;
|
|
12
|
+
AppBar: (({ title, subtitle, onBack, leading, actions, subheader, variant, tone, accentBar, backVariant, border, safeArea, className, testID, }: import("../Navigation/Navigation.AppBar").AppBarProps) => import("react").JSX.Element) & {
|
|
13
|
+
Action: ({ icon, onPress, badge, accessibilityLabel, tone, onDark, bare, testID, }: import("../Navigation/Navigation.AppBar").AppBarActionProps) => import("react").JSX.Element;
|
|
14
14
|
};
|
|
15
15
|
BottomNav: typeof BottomNav;
|
|
16
16
|
CollapsingHeader: typeof CollapsingHeader;
|
|
@@ -9,7 +9,7 @@ import { type TextProps } from "react-native";
|
|
|
9
9
|
*
|
|
10
10
|
* Reason: Custom fonts (Montserrat) not in Tailwind, complex typography system
|
|
11
11
|
*
|
|
12
|
-
* @deprecated color prop - Use className instead: className="text-primary" or className="text-
|
|
12
|
+
* @deprecated color prop - Use className instead: className="text-primary" or className="text-text-secondary"
|
|
13
13
|
*/
|
|
14
14
|
interface AppTextProps extends TextProps {
|
|
15
15
|
variant?: keyof typeof typographyVariants;
|
|
@@ -1,18 +1,28 @@
|
|
|
1
1
|
import { jsx as _jsx } from "nativewind/jsx-runtime";
|
|
2
2
|
import { cn } from "../theme/tw";
|
|
3
|
-
import { fontFamilies, Typography, } from "../theme/typography";
|
|
3
|
+
import { fontFamilies, Typography, variantFontRole, } from "../theme/typography";
|
|
4
4
|
import { Text } from "react-native";
|
|
5
5
|
function AppText({ variant = "body", color, bold = false, italic = false, underline = false, align = "left", transform = "none", semibold = false, style, className, children, ...props }) {
|
|
6
6
|
const baseStyle = Typography.variants[variant];
|
|
7
7
|
const textClassName = cn("text-text-primary", align === "center" && "text-center", align === "right" && "text-right", align === "justify" && "text-justify", transform === "uppercase" && "uppercase", transform === "lowercase" && "lowercase", transform === "capitalize" && "capitalize", underline && "underline", italic && "italic", className);
|
|
8
|
+
// Resolve the family LIVE from the configurable registry by the variant's role, so
|
|
9
|
+
// `configureFonts(...)` (app/Storybook) takes effect. Falls back to the variant's baked
|
|
10
|
+
// family if a role is somehow missing.
|
|
11
|
+
const variantFamily = fontFamilies[variantFontRole[variant]] ?? baseStyle.fontFamily;
|
|
12
|
+
// `bold`/`semibold` map to the Inter weights — but NOT when the active family is a branded
|
|
13
|
+
// face (a configured title face, or Fira Code mono): those carry their own weight, so
|
|
14
|
+
// forcing Inter would erase the typeface. Keep the variant's family for those.
|
|
15
|
+
const isBrandedFace = typeof variantFamily === "string" && !variantFamily.startsWith("Inter_");
|
|
8
16
|
const textStyle = {
|
|
9
17
|
...baseStyle,
|
|
10
18
|
...(color ? { color } : {}),
|
|
11
|
-
fontFamily:
|
|
12
|
-
?
|
|
13
|
-
:
|
|
14
|
-
? fontFamilies.
|
|
15
|
-
:
|
|
19
|
+
fontFamily: isBrandedFace
|
|
20
|
+
? variantFamily
|
|
21
|
+
: bold
|
|
22
|
+
? fontFamilies.extraBold
|
|
23
|
+
: semibold
|
|
24
|
+
? fontFamilies.semiBold
|
|
25
|
+
: variantFamily,
|
|
16
26
|
...(Array.isArray(style) ? Object.assign({}, ...style) : style),
|
|
17
27
|
};
|
|
18
28
|
return (_jsx(Text, { className: textClassName, style: textStyle, ...props, children: children }));
|
package/dist/icons/OdooIcon.d.ts
CHANGED
|
@@ -2,5 +2,10 @@ interface OdooIconProps {
|
|
|
2
2
|
size?: number;
|
|
3
3
|
color?: string;
|
|
4
4
|
}
|
|
5
|
+
/**
|
|
6
|
+
* @deprecated Brand-coupled (Odoo logo); relocated to the Odoo integration package. Import
|
|
7
|
+
* from `@sincpro/mobile-odoo/ui/components/atoms` instead. Kept here for backwards
|
|
8
|
+
* compatibility and removed in the next major.
|
|
9
|
+
*/
|
|
5
10
|
declare function OdooIcon({ size, color }: OdooIconProps): import("react").JSX.Element;
|
|
6
11
|
export default OdooIcon;
|
package/dist/icons/OdooIcon.js
CHANGED
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "nativewind/jsx-runtime";
|
|
2
2
|
import Svg, { Path } from "react-native-svg";
|
|
3
|
+
/**
|
|
4
|
+
* @deprecated Brand-coupled (Odoo logo); relocated to the Odoo integration package. Import
|
|
5
|
+
* from `@sincpro/mobile-odoo/ui/components/atoms` instead. Kept here for backwards
|
|
6
|
+
* compatibility and removed in the next major.
|
|
7
|
+
*/
|
|
3
8
|
function OdooIcon({ size = 100, color = "#ffffff" }) {
|
|
4
9
|
return (_jsxs(Svg, { fill: "none", height: size, viewBox: "0 0 919 495", width: size, children: [_jsx(Path, { d: "M695,346a75,75,0,1,1,75-75A75,75,0,0,1,695,346Zm0-31a44,44,0,1,0-44-44A44,44,0,0,0,695,315ZM538,346a75,75,0,1,1,75-75A75,75,0,0,1,538,346Zm0-31a44,44,0,1,0-44-44A44,44,0,0,0,538,315Zm-82-45c0,41.9-33.6,76-75,76s-75-34-75-75.9S336.5,196,381,196c16.4,0,31.6,3.5,44,12.6V165.1c0-8.3,7.3-15.1,15.5-15.1s15.5,6.8,15.5,15.1Zm-75,45a44,44,0,1,0-44-44A44,44,0,0,0,381,315Z", fill: color }), _jsx(Path, { d: "M224,346a75,75,0,1,1,75-75A75,75,0,0,1,224,346Zm0-31a44,44,0,1,0-44-44A44,44,0,0,0,224,315Z", fill: color })] }));
|
|
5
10
|
}
|
|
@@ -1,4 +1,9 @@
|
|
|
1
1
|
import { CustomIconProps } from "../icons/props";
|
|
2
2
|
import React from "react";
|
|
3
|
+
/**
|
|
4
|
+
* @deprecated Device-coupled (printer hardware); relocated to the core. Import from
|
|
5
|
+
* `@sincpro/mobile/ui/components/atoms` instead. Kept here for backwards compatibility
|
|
6
|
+
* and removed in the next major.
|
|
7
|
+
*/
|
|
3
8
|
declare const PrinterIcon: React.FC<CustomIconProps>;
|
|
4
9
|
export default PrinterIcon;
|
|
@@ -1,4 +1,9 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "nativewind/jsx-runtime";
|
|
2
2
|
import Svg, { Path, Rect } from "react-native-svg";
|
|
3
|
+
/**
|
|
4
|
+
* @deprecated Device-coupled (printer hardware); relocated to the core. Import from
|
|
5
|
+
* `@sincpro/mobile/ui/components/atoms` instead. Kept here for backwards compatibility
|
|
6
|
+
* and removed in the next major.
|
|
7
|
+
*/
|
|
3
8
|
const PrinterIcon = ({ size = 24, color = "#000000" }) => (_jsxs(Svg, { fill: "none", height: size, viewBox: "0 0 24 24", width: size, children: [_jsx(Path, { d: "M6 9V2H18V9", stroke: color, strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: "2" }), _jsx(Rect, { height: "8", rx: "1", stroke: color, strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: "2", width: "16", x: "4", y: "9" }), _jsx(Path, { d: "M6 18H4C3.44772 18 3 17.5523 3 17V10C3 9.44772 3.44772 9 4 9H20C20.5523 9 21 9.44772 21 10V17C21 17.5523 20.5523 18 20 18H18", stroke: color, strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: "2" }), _jsx(Rect, { height: "6", stroke: color, strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: "2", width: "12", x: "6", y: "14" })] }));
|
|
4
9
|
export default PrinterIcon;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "nativewind/jsx-runtime";
|
|
2
2
|
import { Display } from "../Display";
|
|
3
|
-
import
|
|
3
|
+
import GradientSurface from "../Display/Display.GradientSurface";
|
|
4
4
|
import { theme } from "../theme";
|
|
5
5
|
import { cn } from "../theme/tw";
|
|
6
6
|
import { Dimensions, Keyboard, TouchableOpacity, TouchableWithoutFeedback, View, } from "react-native";
|
|
@@ -8,6 +8,6 @@ import { KeyboardAwareScrollView } from "react-native-keyboard-controller";
|
|
|
8
8
|
import { SafeAreaView } from "react-native-safe-area-context";
|
|
9
9
|
function AuthContainer({ header, children, onBackPress, className }) {
|
|
10
10
|
const screenHeight = Dimensions.get("window").height;
|
|
11
|
-
return (_jsx(
|
|
11
|
+
return (_jsx(GradientSurface, { className: cn("flex-1", className), preset: "night-green", radius: "none", style: { flex: 1 }, children: _jsx(SafeAreaView, { className: "flex-1", edges: ["top"], children: _jsxs(View, { className: "flex-1", children: [_jsx(TouchableWithoutFeedback, { onPress: Keyboard.dismiss, children: _jsxs(View, { className: "justify-center items-center relative", style: { height: screenHeight * 0.3 }, children: [onBackPress && (_jsx(TouchableOpacity, { className: "absolute top-4 left-4 p-2 z-[1]", onPress: onBackPress, children: _jsx(Display.Icon, { color: theme.text.inverse, name: "arrow-back", size: 24, type: "ionicons" }) })), header] }) }), _jsx(View, { className: "flex-1 bg-bg-card rounded-t-3xl shadow-lg", style: { minHeight: screenHeight * 0.7 }, children: _jsx(KeyboardAwareScrollView, { bottomOffset: 50, bounces: false, className: "flex-1", contentContainerClassName: "flex-grow pb-10", keyboardShouldPersistTaps: "handled", showsVerticalScrollIndicator: false, children: _jsx(View, { className: "p-4", children: children }) }) })] }) }) }));
|
|
12
12
|
}
|
|
13
13
|
export default AuthContainer;
|
package/dist/theme/dark.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { ThemeTokens } from "../theme/types";
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
3
|
+
* SINCPRO brand-dark theme.
|
|
4
|
+
* Identity: black (#0B0B0B) surfaces + neon-green (#00F58C) as primary CTA / accent.
|
|
5
|
+
* Border/text tones shift to near-black warm neutrals (not blue-slate).
|
|
6
6
|
*/
|
|
7
7
|
export declare const DEFAULT_DARK_THEME: ThemeTokens;
|
package/dist/theme/dark.js
CHANGED
|
@@ -1,84 +1,85 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
*
|
|
2
|
+
* SINCPRO brand-dark theme.
|
|
3
|
+
* Identity: black (#0B0B0B) surfaces + neon-green (#00F58C) as primary CTA / accent.
|
|
4
|
+
* Border/text tones shift to near-black warm neutrals (not blue-slate).
|
|
5
5
|
*/
|
|
6
6
|
export const DEFAULT_DARK_THEME = {
|
|
7
7
|
name: "dark",
|
|
8
|
-
primary: "#
|
|
9
|
-
secondary: "#
|
|
10
|
-
accent: "#
|
|
8
|
+
primary: "#00F58C", // verde neón → primary action in dark (border, link, focus indicator)
|
|
9
|
+
secondary: "#6B6963",
|
|
10
|
+
accent: "#00F58C",
|
|
11
11
|
bg: {
|
|
12
|
-
page: "#
|
|
13
|
-
card: "#
|
|
14
|
-
popover: "#
|
|
15
|
-
muted: "#
|
|
16
|
-
accent: "#
|
|
17
|
-
hover: "#
|
|
18
|
-
disabled: "#
|
|
12
|
+
page: "#0B0B0B",
|
|
13
|
+
card: "#161616",
|
|
14
|
+
popover: "#161616",
|
|
15
|
+
muted: "#1E1E1E",
|
|
16
|
+
accent: "#0D2B1F", // dark-green tint for selected/active rows
|
|
17
|
+
hover: "#262626",
|
|
18
|
+
disabled: "#161616",
|
|
19
|
+
inverse: "#0B0B0B",
|
|
19
20
|
},
|
|
20
21
|
text: {
|
|
21
|
-
primary: "#
|
|
22
|
-
secondary: "#
|
|
23
|
-
tertiary: "#
|
|
24
|
-
muted: "#
|
|
25
|
-
accent: "#
|
|
26
|
-
inverse: "#
|
|
27
|
-
disabled: "#
|
|
28
|
-
onPrimary: "#
|
|
29
|
-
onSecondary: "#
|
|
30
|
-
onAccent: "#
|
|
22
|
+
primary: "#FFFFFF",
|
|
23
|
+
secondary: "#B0B0B0",
|
|
24
|
+
tertiary: "#7D7D7D",
|
|
25
|
+
muted: "#9D9D9D",
|
|
26
|
+
accent: "#00F58C",
|
|
27
|
+
inverse: "#0B0B0B",
|
|
28
|
+
disabled: "#4A4A4A",
|
|
29
|
+
onPrimary: "#06170E", // texto sobre verde neón: oscuro para contraste
|
|
30
|
+
onSecondary: "#0B0B0B",
|
|
31
|
+
onAccent: "#06170E",
|
|
31
32
|
onDanger: "#FFFFFF",
|
|
32
33
|
onSuccess: "#FFFFFF",
|
|
33
34
|
},
|
|
34
35
|
icon: {
|
|
35
|
-
primary: "#
|
|
36
|
-
secondary: "#
|
|
37
|
-
tertiary: "#
|
|
38
|
-
inverse: "#
|
|
39
|
-
disabled: "#
|
|
36
|
+
primary: "#FFFFFF",
|
|
37
|
+
secondary: "#9A9A9A",
|
|
38
|
+
tertiary: "#7D7D7D",
|
|
39
|
+
inverse: "#0B0B0B",
|
|
40
|
+
disabled: "#4A4A4A",
|
|
40
41
|
},
|
|
41
42
|
border: {
|
|
42
|
-
default: "#
|
|
43
|
-
light: "#
|
|
44
|
-
strong: "#
|
|
45
|
-
focus: "#
|
|
43
|
+
default: "#262626",
|
|
44
|
+
light: "#1E1E1E",
|
|
45
|
+
strong: "#3A3A3A",
|
|
46
|
+
focus: "#00F58C",
|
|
46
47
|
},
|
|
47
|
-
success: "#
|
|
48
|
-
warning: "#
|
|
49
|
-
danger: "#
|
|
50
|
-
info: "#
|
|
51
|
-
successLight: "#
|
|
52
|
-
warningLight: "#
|
|
53
|
-
dangerLight: "#
|
|
54
|
-
infoLight: "#
|
|
55
|
-
ring: "#
|
|
56
|
-
input: "#
|
|
48
|
+
success: "#00C357",
|
|
49
|
+
warning: "#FFB020",
|
|
50
|
+
danger: "#FF4D1F",
|
|
51
|
+
info: "#5B8DEF",
|
|
52
|
+
successLight: "#0D2B1A",
|
|
53
|
+
warningLight: "#2B1E04",
|
|
54
|
+
dangerLight: "#2B0A04",
|
|
55
|
+
infoLight: "#0A143B",
|
|
56
|
+
ring: "#00F58C",
|
|
57
|
+
input: "#262626",
|
|
57
58
|
gradient: {
|
|
58
|
-
primary: ["#
|
|
59
|
-
accent: ["#
|
|
59
|
+
primary: ["#22E584", "#00F58C"], // verde gradient → primary btn en dark = CTA verde
|
|
60
|
+
accent: ["#22E584", "#00F58C"],
|
|
60
61
|
},
|
|
61
62
|
shadow: {
|
|
62
63
|
sm: {
|
|
63
64
|
shadowColor: "#000000",
|
|
64
65
|
shadowOffset: { width: 0, height: 1 },
|
|
65
|
-
shadowOpacity: 0.
|
|
66
|
-
shadowRadius:
|
|
67
|
-
elevation:
|
|
66
|
+
shadowOpacity: 0.4,
|
|
67
|
+
shadowRadius: 3,
|
|
68
|
+
elevation: 2,
|
|
68
69
|
},
|
|
69
70
|
md: {
|
|
70
71
|
shadowColor: "#000000",
|
|
71
72
|
shadowOffset: { width: 0, height: 4 },
|
|
72
|
-
shadowOpacity: 0.
|
|
73
|
-
shadowRadius:
|
|
74
|
-
elevation:
|
|
73
|
+
shadowOpacity: 0.55,
|
|
74
|
+
shadowRadius: 8,
|
|
75
|
+
elevation: 4,
|
|
75
76
|
},
|
|
76
77
|
lg: {
|
|
77
78
|
shadowColor: "#000000",
|
|
78
79
|
shadowOffset: { width: 0, height: 10 },
|
|
79
|
-
shadowOpacity: 0.
|
|
80
|
-
shadowRadius:
|
|
81
|
-
elevation:
|
|
80
|
+
shadowOpacity: 0.65,
|
|
81
|
+
shadowRadius: 18,
|
|
82
|
+
elevation: 7,
|
|
82
83
|
},
|
|
83
84
|
},
|
|
84
85
|
};
|
package/dist/theme/default.js
CHANGED
package/dist/theme/index.d.ts
CHANGED
|
@@ -6,4 +6,5 @@ export { DEFAULT_THEME } from "../theme/default";
|
|
|
6
6
|
export { type DeepPartial, defineTheme, extendTheme, mergeTheme, } from "../theme/define";
|
|
7
7
|
export { theme } from "../theme/theme";
|
|
8
8
|
export type { ShadowStyle, ThemeTokens } from "../theme/types";
|
|
9
|
+
export { configureFonts, fontFamilies, type FontRole, resetFonts, useAppFonts, variantFontRole, } from "../theme/typography";
|
|
9
10
|
export { useTheme } from "../theme/useTheme";
|
package/dist/theme/index.js
CHANGED
|
@@ -5,4 +5,5 @@ export { DEFAULT_DARK_THEME } from "../theme/dark";
|
|
|
5
5
|
export { DEFAULT_THEME } from "../theme/default";
|
|
6
6
|
export { defineTheme, extendTheme, mergeTheme, } from "../theme/define";
|
|
7
7
|
export { theme } from "../theme/theme";
|
|
8
|
+
export { configureFonts, fontFamilies, resetFonts, useAppFonts, variantFontRole, } from "../theme/typography";
|
|
8
9
|
export { useTheme } from "../theme/useTheme";
|