@sincpro/mobile-ui 2.0.1 → 3.0.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.
- package/README.md +7 -2
- package/dist/Actions/Actions.Button.d.ts +2 -1
- package/dist/Actions/Actions.Button.js +31 -37
- package/dist/Actions/Actions.Dock.d.ts +6 -6
- package/dist/Actions/Actions.Dock.js +14 -72
- package/dist/Actions/Actions.FAB.d.ts +2 -1
- package/dist/Actions/Actions.FilterButton.js +1 -1
- package/dist/Actions/Actions.IconButton.d.ts +3 -4
- package/dist/Actions/Actions.IconButton.js +2 -2
- package/dist/Dialog/Confirmation.context.d.ts +5 -14
- package/dist/Dialog/Confirmation.context.js +11 -51
- package/dist/Dialog/Dialog.ActionSheet.d.ts +8 -7
- package/dist/Dialog/Dialog.ActionSheet.js +45 -19
- package/dist/Dialog/Dialog.Confirmation.d.ts +14 -11
- package/dist/Dialog/Dialog.Confirmation.js +38 -14
- package/dist/Dialog/Dialog.EditValue.d.ts +21 -16
- package/dist/Dialog/Dialog.EditValue.js +73 -14
- package/dist/Dialog/Dialog.Sheet.d.ts +8 -24
- package/dist/Dialog/Dialog.Sheet.js +15 -60
- package/dist/Dialog/index.d.ts +14 -14
- package/dist/Dialog/index.js +5 -3
- package/dist/Dialog/requestConfirmation.d.ts +3 -0
- package/dist/Dialog/requestConfirmation.js +13 -0
- package/dist/Display/Display.Accordion.js +1 -1
- package/dist/Display/Display.Avatar.d.ts +6 -6
- package/dist/Display/Display.Avatar.js +2 -2
- package/dist/Display/Display.Badge.js +4 -4
- package/dist/Display/Display.Card.js +5 -2
- package/dist/Display/Display.Carousel.js +1 -1
- package/dist/Display/Display.CircleButton.d.ts +3 -8
- package/dist/Display/Display.CircleButton.js +2 -2
- package/dist/Display/Display.CopyableText.js +1 -5
- package/dist/Display/Display.Date.d.ts +3 -2
- package/dist/Display/Display.Date.js +3 -3
- package/dist/Display/Display.GradientSurface.d.ts +52 -9
- package/dist/Display/Display.GradientSurface.js +9 -14
- package/dist/Display/Display.Icon.d.ts +7 -11
- package/dist/Display/Display.Icon.js +15 -30
- package/dist/Display/Display.Image.d.ts +2 -1
- package/dist/Display/Display.Image.js +1 -1
- package/dist/Display/Display.KeyValue.js +1 -1
- package/dist/Display/Display.ListItem.js +1 -1
- package/dist/Display/Display.MenuButton.js +4 -4
- package/dist/Display/Display.MenuCard.d.ts +3 -8
- package/dist/Display/Display.MenuCard.js +2 -2
- package/dist/Display/Display.MenuGrid.d.ts +2 -7
- package/dist/Display/Display.MenuGrid.js +1 -1
- package/dist/Display/Display.Monetary.d.ts +2 -6
- package/dist/Display/Display.Monetary.js +2 -2
- package/dist/Display/Display.PriceTag.js +1 -1
- package/dist/Display/Display.Rating.js +1 -1
- package/dist/Display/Display.SearchHistory.d.ts +2 -1
- package/dist/Display/Display.SearchHistory.js +1 -1
- package/dist/Display/Display.StatCard.d.ts +2 -1
- package/dist/Display/Display.StatCard.js +1 -1
- package/dist/Display/Display.StoryViewer.js +10 -6
- package/dist/Display/Display.SwipeableRow.d.ts +2 -1
- package/dist/Display/Display.Timeline.js +1 -1
- package/dist/Display/icon-map.d.ts +344 -0
- package/dist/Display/icon-map.js +86 -0
- package/dist/Display/index.d.ts +2 -0
- package/dist/Display/index.js +1 -0
- package/dist/Feedback/Feedback.Banner.js +13 -12
- package/dist/Feedback/Feedback.Empty.js +1 -1
- package/dist/Feedback/Feedback.EmptyState.d.ts +2 -1
- package/dist/Feedback/Feedback.EmptyState.js +1 -1
- package/dist/Feedback/Feedback.Error.js +1 -1
- package/dist/Feedback/Feedback.PermissionCard.d.ts +2 -1
- package/dist/Feedback/Feedback.PermissionCard.js +2 -2
- package/dist/Feedback/Toast.context.js +3 -3
- package/dist/Form/Form.ControlledDropdown.d.ts +5 -11
- package/dist/Form/Form.ControlledDropdown.js +5 -2
- package/dist/Form/Form.DatePicker.d.ts +5 -9
- package/dist/Form/Form.DatePicker.js +116 -21
- package/dist/Form/Form.Dropdown.d.ts +11 -16
- package/dist/Form/Form.Dropdown.js +54 -90
- package/dist/Form/Form.FractionalQuantityInput.js +4 -11
- package/dist/Form/Form.Input.d.ts +3 -3
- package/dist/Form/Form.KeyboardForm.d.ts +2 -2
- package/dist/Form/Form.KeyboardForm.js +2 -2
- package/dist/Form/Form.KeyboardToolbar.d.ts +2 -1
- package/dist/Form/Form.KeyboardToolbar.js +3 -7
- package/dist/Form/Form.PasswordInput.js +1 -1
- package/dist/Form/Form.QuantitySelector.js +1 -1
- package/dist/Form/Form.Select.d.ts +12 -8
- package/dist/Form/Form.Select.js +64 -31
- package/dist/Form/Form.Slider.d.ts +4 -7
- package/dist/Form/Form.Slider.js +11 -10
- package/dist/Form/Form.Switch.js +2 -1
- package/dist/Form/index.d.ts +6 -14
- package/dist/Form/index.js +0 -11
- package/dist/Navigation/Navigation.AppBar.d.ts +2 -1
- package/dist/Navigation/Navigation.AppBar.js +2 -2
- package/dist/Navigation/Navigation.BottomNav.d.ts +4 -8
- package/dist/Navigation/Navigation.BottomNav.js +2 -2
- package/dist/Navigation/Navigation.CollapsingHeader.js +3 -2
- package/dist/Navigation/Navigation.Menu.d.ts +16 -11
- package/dist/Navigation/Navigation.Menu.js +97 -42
- package/dist/Navigation/Navigation.Search.js +2 -2
- package/dist/Navigation/Navigation.SearchBar.js +3 -4
- package/dist/Navigation/Navigation.SegmentedControl.d.ts +7 -25
- package/dist/Navigation/Navigation.SegmentedControl.js +18 -39
- package/dist/Navigation/Navigation.Steps.js +1 -1
- package/dist/Navigation/Navigation.Tabs.d.ts +2 -1
- package/dist/Navigation/index.d.ts +0 -6
- package/dist/Navigation/index.js +0 -8
- package/dist/Typography/Typography.SelectableText.js +3 -7
- package/dist/Typography/Typography.Text.d.ts +1 -6
- package/dist/Typography/Typography.Text.js +3 -6
- package/dist/index.d.ts +1 -4
- package/dist/index.js +1 -4
- package/dist/layouts/AuthContainer.d.ts +4 -2
- package/dist/layouts/AuthContainer.js +3 -4
- package/dist/layouts/Container.d.ts +0 -4
- package/dist/layouts/Container.js +3 -4
- package/dist/layouts/ScrollContainer.d.ts +7 -3
- package/dist/layouts/ScrollContainer.js +5 -4
- package/dist/primitives/BaseButton.d.ts +2 -1
- package/dist/theme/build.js +0 -4
- package/dist/theme/css-vars.js +0 -4
- package/dist/theme/dark.js +2 -6
- package/dist/theme/default.js +1 -5
- package/dist/theme/index.d.ts +1 -1
- package/dist/theme/index.js +1 -1
- package/dist/theme/types.d.ts +0 -11
- package/dist/theme/typography.d.ts +8 -7
- package/dist/theme/typography.js +25 -4
- package/dist/utils/timezone.d.ts +0 -5
- package/dist/views/AuthFormView.d.ts +3 -1
- package/dist/views/AuthFormView.js +2 -2
- package/dist/views/FormViewV2.d.ts +6 -13
- package/dist/views/FormViewV2.js +29 -25
- package/dist/views/ListViewV2.context.d.ts +5 -5
- package/dist/views/ListViewV2.d.ts +23 -18
- package/dist/views/ListViewV2.js +45 -48
- package/dist/views/types/IListView.d.ts +5 -4
- package/dist/views/types/IListView.js +18 -15
- package/dist/widgets/CollectionOptions.d.ts +2 -2
- package/dist/widgets/CollectionOptions.js +92 -65
- package/dist/widgets/FilterBar.js +1 -1
- package/dist/widgets/PromoModal.js +10 -4
- package/dist/widgets/QuickActions.d.ts +2 -7
- package/dist/widgets/QuickActions.js +1 -1
- package/dist/widgets/ReorderableList.js +3 -3
- package/dist/widgets/TimeZoneSelectorModal.d.ts +1 -6
- package/dist/widgets/TimeZoneSelectorModal.js +17 -12
- package/dist/widgets/index.d.ts +0 -11
- package/dist/widgets/index.js +0 -7
- package/package.json +35 -38
- package/tailwind.preset.js +0 -4
- package/dist/Dialog/BottomSheet/BottomSheet.Root.d.ts +0 -324
- package/dist/Dialog/BottomSheet/BottomSheet.Root.js +0 -373
- package/dist/Dialog/BottomSheet/index.d.ts +0 -1
- package/dist/Dialog/BottomSheet/index.js +0 -1
- package/dist/Dialog/Dialog.NativeSheet.d.ts +0 -10
- package/dist/Dialog/Dialog.NativeSheet.js +0 -21
- package/dist/Form/Form.Button.d.ts +0 -3
- package/dist/Form/Form.Button.js +0 -1
- package/dist/Form/Form.FAB.d.ts +0 -3
- package/dist/Form/Form.FAB.js +0 -1
- package/dist/Form/Form.FilterButton.d.ts +0 -3
- package/dist/Form/Form.FilterButton.js +0 -1
- package/dist/Form/Form.IconButton.d.ts +0 -3
- package/dist/Form/Form.IconButton.js +0 -1
- package/dist/Form/Form.SearchBar.d.ts +0 -13
- package/dist/Form/Form.SearchBar.js +0 -26
- package/dist/Navigation/Navigation.Header.d.ts +0 -16
- package/dist/Navigation/Navigation.Header.js +0 -17
- package/dist/Navigation/Navigation.HeaderToolbar.d.ts +0 -15
- package/dist/Navigation/Navigation.HeaderToolbar.js +0 -18
- package/dist/Navigation/Navigation.TabIcon.d.ts +0 -18
- package/dist/Navigation/Navigation.TabIcon.js +0 -12
- package/dist/Navigation/Navigation.TabItem.d.ts +0 -19
- package/dist/Navigation/Navigation.TabItem.js +0 -13
- package/dist/icons/OdooIcon.d.ts +0 -11
- package/dist/icons/OdooIcon.js +0 -11
- package/dist/icons/PrinterIcon.d.ts +0 -9
- package/dist/icons/PrinterIcon.js +0 -9
- package/dist/layouts/TabNavigatorLayout.d.ts +0 -26
- package/dist/layouts/TabNavigatorLayout.js +0 -60
- package/dist/utils/icon.d.ts +0 -1
- package/dist/utils/icon.js +0 -1
- package/dist/widgets/CircleButton.d.ts +0 -3
- package/dist/widgets/CircleButton.js +0 -1
- package/dist/widgets/GeoPermissionCard.d.ts +0 -13
- package/dist/widgets/GeoPermissionCard.js +0 -24
- package/dist/widgets/HomeHeader.d.ts +0 -15
- package/dist/widgets/HomeHeader.js +0 -13
- package/dist/widgets/MenuCard.d.ts +0 -3
- package/dist/widgets/MenuCard.js +0 -1
- package/dist/widgets/MenuGrid.d.ts +0 -5
- package/dist/widgets/MenuGrid.js +0 -1
- package/dist/widgets/MenuSection.d.ts +0 -3
- package/dist/widgets/MenuSection.js +0 -1
- package/dist/widgets/ScreenHeader.d.ts +0 -25
- package/dist/widgets/ScreenHeader.js +0 -32
- package/dist/widgets/TimeZoneSelector.d.ts +0 -12
- package/dist/widgets/TimeZoneSelector.js +0 -24
|
@@ -4,7 +4,7 @@ import SearchSuggestions from "./Navigation.SearchSuggestions.js";
|
|
|
4
4
|
import Pressable from "../primitives/Pressable.js";
|
|
5
5
|
import { useTheme } from "../theme/index.js";
|
|
6
6
|
import { cn } from "../theme/tw.js";
|
|
7
|
-
import {
|
|
7
|
+
import { appliedTextStyle } from "../theme/typography.js";
|
|
8
8
|
import { Typography } from "../Typography/index.js";
|
|
9
9
|
import { useState } from "react";
|
|
10
10
|
import { Keyboard, TextInput, View } from "react-native";
|
|
@@ -21,8 +21,7 @@ function SearchBar({ value, onChangeText, placeholder = "Buscar", onSubmit, onCl
|
|
|
21
21
|
borderWidth: 1,
|
|
22
22
|
borderColor: focused ? theme.border.focus : "transparent",
|
|
23
23
|
}, children: [_jsx(View, { accessibilityElementsHidden: true, importantForAccessibility: "no-hide-descendants", children: _jsx(Icon, { color: focused ? theme.border.focus : theme.icon.tertiary, name: "search", size: 18 }) }), editable ? (_jsx(TextInput, { accessibilityLabel: accessibilityLabel ?? placeholder, autoFocus: autoFocus, className: "flex-1 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", selectionColor: theme.primary, style: {
|
|
24
|
-
...
|
|
25
|
-
fontFamily: resolveTextFontFamily("bodyReadable"),
|
|
24
|
+
...appliedTextStyle("bodyReadable"),
|
|
26
25
|
minHeight: 48,
|
|
27
26
|
paddingVertical: 8,
|
|
28
27
|
}, testID: testID ? `${testID}-input` : undefined, underlineColorAndroid: "transparent", value: value })) : (_jsx(Typography.Text, { className: "flex-1 text-text-tertiary", variant: "bodyReadable", children: value || placeholder })), editable && value.length > 0 ? (_jsx(Pressable, { accessibilityLabel: clearAccessibilityLabel, hitSlop: 8, onPress: () => {
|
|
@@ -33,7 +32,7 @@ function SearchBar({ value, onChangeText, placeholder = "Buscar", onSubmit, onCl
|
|
|
33
32
|
minWidth: 48,
|
|
34
33
|
alignItems: "center",
|
|
35
34
|
justifyContent: "center",
|
|
36
|
-
}, children: _jsx(Icon, { color: theme.icon.tertiary, name: "
|
|
35
|
+
}, children: _jsx(Icon, { color: theme.icon.tertiary, name: "dismiss", size: 18 }) })) : null] }));
|
|
37
36
|
if (!editable && onPress) {
|
|
38
37
|
return (_jsx(Pressable, { accessibilityLabel: accessibilityLabel ?? placeholder, accessibilityRole: "search", onPress: onPress, style: { minHeight: 48, minWidth: 48 }, testID: testID, children: body }));
|
|
39
38
|
}
|
|
@@ -1,38 +1,20 @@
|
|
|
1
|
-
import { Typography } from "../Typography/index.js";
|
|
2
|
-
import { ComponentType } from "react";
|
|
3
1
|
import { type StyleProp, type ViewStyle } from "react-native";
|
|
4
|
-
export
|
|
2
|
+
export type SegmentedOption<T extends string> = {
|
|
5
3
|
label: string;
|
|
6
4
|
value: T;
|
|
7
|
-
/** Ionicon name rendered above (or before) the label. */
|
|
8
|
-
icon?: string;
|
|
9
|
-
/** Custom icon component — takes precedence over `icon`. */
|
|
10
|
-
customIcon?: ComponentType<{
|
|
11
|
-
size?: number;
|
|
12
|
-
color?: string;
|
|
13
|
-
}>;
|
|
14
5
|
disabled?: boolean;
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
export interface SegmentedControlProps<T extends string> {
|
|
19
|
-
options: SegmentedOption<T>[];
|
|
6
|
+
};
|
|
7
|
+
export type SegmentedControlProps<T extends string> = {
|
|
8
|
+
options: readonly SegmentedOption<T>[];
|
|
20
9
|
value: T;
|
|
21
10
|
onChange: (value: T) => void;
|
|
22
|
-
/**
|
|
23
|
-
* Icon layout when options have icons:
|
|
24
|
-
* - `"top"` (default) — icon stacked above the label (taller pill).
|
|
25
|
-
* - `"left"` — icon inline left of the label (compact, single-line).
|
|
26
|
-
*/
|
|
27
|
-
iconLayout?: "top" | "left";
|
|
28
11
|
disabled?: boolean;
|
|
12
|
+
readOnly?: boolean;
|
|
29
13
|
accessibilityLabel?: string;
|
|
30
14
|
style?: StyleProp<ViewStyle>;
|
|
31
|
-
optionStyle?: StyleProp<ViewStyle>;
|
|
32
|
-
labelTextProps?: Partial<React.ComponentProps<typeof Typography.Text>>;
|
|
33
15
|
className?: string;
|
|
34
16
|
testID?: string;
|
|
35
|
-
}
|
|
36
|
-
declare function SegmentedControl<T extends string>({ options, value, onChange,
|
|
17
|
+
};
|
|
18
|
+
declare function SegmentedControl<T extends string>({ options, value, onChange, disabled, readOnly, accessibilityLabel, style, className, testID, }: SegmentedControlProps<T>): import("react").JSX.Element;
|
|
37
19
|
export default SegmentedControl;
|
|
38
20
|
export { SegmentedControl };
|
|
@@ -1,45 +1,24 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "nativewind/jsx-runtime";
|
|
2
|
-
import
|
|
3
|
-
import { useTheme } from "../theme/index.js";
|
|
4
|
-
import { cn } from "../theme/tw.js";
|
|
2
|
+
import NativeSegmentedControl from "@expo/ui/community/segmented-control";
|
|
3
|
+
import { relativeLuminance, useTheme } from "../theme/index.js";
|
|
5
4
|
import { Typography } from "../Typography/index.js";
|
|
6
|
-
import {
|
|
7
|
-
function SegmentedControl({ options, value, onChange,
|
|
5
|
+
import { View } from "react-native";
|
|
6
|
+
function SegmentedControl({ options, value, onChange, disabled = false, readOnly = false, accessibilityLabel, style, className, testID, }) {
|
|
8
7
|
const theme = useTheme();
|
|
9
|
-
const
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
gap: hasIcon ? 4 : 0,
|
|
24
|
-
paddingVertical: 8,
|
|
25
|
-
paddingHorizontal: 4,
|
|
26
|
-
borderRadius: 8,
|
|
27
|
-
...(selected ? { backgroundColor: theme.bg.card, ...theme.shadow.sm } : undefined),
|
|
28
|
-
opacity: isDisabled ? 0.5 : 1,
|
|
29
|
-
};
|
|
30
|
-
return (_jsxs(TouchableOpacity, { accessibilityHint: option.accessibilityHint, accessibilityLabel: option.accessibilityLabel ?? option.label, accessibilityRole: "tab", accessibilityState: isDisabled ? { selected, disabled: true } : { selected }, activeOpacity: 0.7, disabled: isDisabled || undefined, hitSlop: 0, onPress: () => {
|
|
31
|
-
if (!isDisabled)
|
|
32
|
-
onChange(option.value);
|
|
33
|
-
}, style: optionStyle ? [baseStyle, optionStyle] : baseStyle, children: [hasIcon ? (_jsx(Icon, { color: iconColor, customIcon: option.customIcon, name: option.icon, size: 16, type: option.customIcon ? "custom" : "ionicons" })) : null, _jsx(Typography.Text, { ...labelTextProps, semibold: labelTextProps?.semibold ?? selected, style: [
|
|
34
|
-
{
|
|
35
|
-
color: iconColor,
|
|
36
|
-
fontSize: 14,
|
|
37
|
-
textAlign: "center",
|
|
38
|
-
flexShrink: 1,
|
|
39
|
-
},
|
|
40
|
-
labelTextProps?.style,
|
|
41
|
-
], variant: labelTextProps?.variant ?? "caption", children: option.label })] }, option.value));
|
|
42
|
-
}) }));
|
|
8
|
+
const groups = [];
|
|
9
|
+
for (const option of options) {
|
|
10
|
+
const blocked = disabled || readOnly || !!option.disabled;
|
|
11
|
+
const group = groups.at(-1);
|
|
12
|
+
if (group?.disabled === blocked)
|
|
13
|
+
group.options.push(option);
|
|
14
|
+
else
|
|
15
|
+
groups.push({ disabled: blocked, options: [option] });
|
|
16
|
+
}
|
|
17
|
+
return (_jsxs(View, { className: className, style: style, testID: testID, children: [accessibilityLabel ? (_jsx(Typography.Text, { className: "pb-1 text-text-primary", variant: "bodySmall", children: accessibilityLabel })) : null, _jsx(View, { style: { flexDirection: "row", gap: 4, minHeight: 48 }, children: groups.map((group, groupIndex) => (_jsx(View, { style: { flex: group.options.length }, children: _jsx(NativeSegmentedControl, { accessibilityLabel: accessibilityLabel, appearance: relativeLuminance(theme.bg.card) < 0.179 ? "dark" : "light", enabled: !group.disabled, onChange: ({ nativeEvent }) => {
|
|
18
|
+
const option = group.options[nativeEvent.selectedSegmentIndex];
|
|
19
|
+
if (option && !group.disabled)
|
|
20
|
+
onChange(option.value);
|
|
21
|
+
}, selectedIndex: group.options.findIndex((option) => option.value === value), style: { minHeight: 48 }, testID: testID ? `${testID}-segments-${groupIndex}` : undefined, tintColor: theme.primary, values: group.options.map((option) => option.label) }) }, group.options[0].value))) })] }));
|
|
43
22
|
}
|
|
44
23
|
export default SegmentedControl;
|
|
45
24
|
export { SegmentedControl };
|
|
@@ -11,7 +11,7 @@ function Steps({ steps, current, className, testID }) {
|
|
|
11
11
|
const circleColor = done || active ? theme.primary : theme.bg.muted;
|
|
12
12
|
const textColor = done || active ? theme.text.inverse : theme.text.tertiary;
|
|
13
13
|
const isLast = index === steps.length - 1;
|
|
14
|
-
return (_jsxs(View, { className: "flex-1 items-center", children: [_jsxs(View, { className: "flex-row items-center w-full", children: [_jsx(View, { className: "flex-1 h-0.5", style: { backgroundColor: "transparent" } }), _jsx(View, { className: "w-7 h-7 rounded-full items-center justify-center", style: { backgroundColor: circleColor }, children: done ? (_jsx(Icon, { color: theme.text.inverse, name: "
|
|
14
|
+
return (_jsxs(View, { className: "flex-1 items-center", children: [_jsxs(View, { className: "flex-row items-center w-full", children: [_jsx(View, { className: "flex-1 h-0.5", style: { backgroundColor: "transparent" } }), _jsx(View, { className: "w-7 h-7 rounded-full items-center justify-center", style: { backgroundColor: circleColor }, children: done ? (_jsx(Icon, { color: theme.text.inverse, name: "check", size: 16 })) : (_jsx(Typography.Text, { style: { color: textColor }, variant: "bodySmall", children: index + 1 })) }), _jsx(View, { className: "flex-1 h-0.5", style: { backgroundColor: isLast ? "transparent" : theme.border.default } })] }), _jsx(Typography.Text, { className: "mt-1 text-center", numberOfLines: 1, style: { color: active ? theme.text.accent : theme.text.tertiary }, variant: "caption", children: label })] }, label));
|
|
15
15
|
}) }));
|
|
16
16
|
}
|
|
17
17
|
export default Steps;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { IconName } from "../Display/index.js";
|
|
1
2
|
import { type ReactNode } from "react";
|
|
2
3
|
type TabsVariant = "underline" | "filled";
|
|
3
4
|
export interface TabsProps {
|
|
@@ -16,7 +17,7 @@ declare function TabsList({ children, className }: {
|
|
|
16
17
|
export interface TabsTriggerProps {
|
|
17
18
|
value: string;
|
|
18
19
|
children: ReactNode;
|
|
19
|
-
icon?:
|
|
20
|
+
icon?: IconName;
|
|
20
21
|
iconLayout?: "top" | "left";
|
|
21
22
|
}
|
|
22
23
|
declare function TabsTrigger({ value, children, icon, iconLayout }: TabsTriggerProps): import("react").JSX.Element;
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import BottomNav from "./Navigation.BottomNav.js";
|
|
2
2
|
import CollapsingHeader from "./Navigation.CollapsingHeader.js";
|
|
3
3
|
import FloatingBar from "./Navigation.FloatingBar.js";
|
|
4
|
-
import HeaderToolbar from "./Navigation.HeaderToolbar.js";
|
|
5
4
|
import Menu from "./Navigation.Menu.js";
|
|
6
5
|
import { MenuSection } from "./Navigation.MenuSection.js";
|
|
7
6
|
import RowItem from "./Navigation.RowItem.js";
|
|
@@ -9,7 +8,6 @@ import SearchBar from "./Navigation.SearchBar.js";
|
|
|
9
8
|
import SearchSuggestions from "./Navigation.SearchSuggestions.js";
|
|
10
9
|
import SegmentedControl from "./Navigation.SegmentedControl.js";
|
|
11
10
|
import Steps from "./Navigation.Steps.js";
|
|
12
|
-
import TabIcon from "./Navigation.TabIcon.js";
|
|
13
11
|
export type { AppBarBackground } from "./Navigation.AppBar.js";
|
|
14
12
|
export type { MenuSectionProps } from "./Navigation.MenuSection.js";
|
|
15
13
|
export type { SearchFilterSheetProps, SearchFiltersProps, SearchRootProps, } from "./Navigation.Search.js";
|
|
@@ -32,10 +30,6 @@ export declare const Navigation: {
|
|
|
32
30
|
Suggestions: (props: import("./Navigation.SearchSuggestions.js").SearchSuggestionsProps) => import("react").JSX.Element;
|
|
33
31
|
};
|
|
34
32
|
SearchSuggestions: typeof SearchSuggestions;
|
|
35
|
-
Header: ({ title, logo, logoSource, backButton, handleBackButton, className, }: import("./Navigation.Header.js").HeaderProps) => import("react").JSX.Element;
|
|
36
|
-
HeaderToolbar: typeof HeaderToolbar;
|
|
37
|
-
TabItem: import("react").FC<import("./Navigation.TabItem.js").TabIconProps>;
|
|
38
|
-
TabIcon: typeof TabIcon;
|
|
39
33
|
RowItem: typeof RowItem;
|
|
40
34
|
SegmentedControl: typeof SegmentedControl;
|
|
41
35
|
Tabs: (({ value, defaultValue, onValueChange, variant, className, children, }: import("./Navigation.Tabs.js").TabsProps) => import("react").JSX.Element) & {
|
package/dist/Navigation/index.js
CHANGED
|
@@ -2,8 +2,6 @@ import AppBar from "./Navigation.AppBar.js";
|
|
|
2
2
|
import BottomNav from "./Navigation.BottomNav.js";
|
|
3
3
|
import CollapsingHeader from "./Navigation.CollapsingHeader.js";
|
|
4
4
|
import FloatingBar from "./Navigation.FloatingBar.js";
|
|
5
|
-
import Header from "./Navigation.Header.js";
|
|
6
|
-
import HeaderToolbar from "./Navigation.HeaderToolbar.js";
|
|
7
5
|
import Menu from "./Navigation.Menu.js";
|
|
8
6
|
import { MenuSection } from "./Navigation.MenuSection.js";
|
|
9
7
|
import RowItem from "./Navigation.RowItem.js";
|
|
@@ -12,8 +10,6 @@ import SearchBar from "./Navigation.SearchBar.js";
|
|
|
12
10
|
import SearchSuggestions from "./Navigation.SearchSuggestions.js";
|
|
13
11
|
import SegmentedControl from "./Navigation.SegmentedControl.js";
|
|
14
12
|
import Steps from "./Navigation.Steps.js";
|
|
15
|
-
import TabIcon from "./Navigation.TabIcon.js";
|
|
16
|
-
import TabItem from "./Navigation.TabItem.js";
|
|
17
13
|
import Tabs from "./Navigation.Tabs.js";
|
|
18
14
|
export const Navigation = {
|
|
19
15
|
AppBar,
|
|
@@ -23,10 +19,6 @@ export const Navigation = {
|
|
|
23
19
|
SearchBar,
|
|
24
20
|
Search,
|
|
25
21
|
SearchSuggestions,
|
|
26
|
-
Header,
|
|
27
|
-
HeaderToolbar,
|
|
28
|
-
TabItem,
|
|
29
|
-
TabIcon,
|
|
30
22
|
RowItem,
|
|
31
23
|
SegmentedControl,
|
|
32
24
|
Tabs,
|
|
@@ -1,15 +1,11 @@
|
|
|
1
1
|
import { jsx as _jsx } from "nativewind/jsx-runtime";
|
|
2
2
|
import { cn } from "../theme/tw.js";
|
|
3
|
-
import {
|
|
3
|
+
import { appliedTextStyle } from "../theme/typography.js";
|
|
4
4
|
import { TextInput } from "react-native";
|
|
5
5
|
function SelectableText({ value, variant = "body", semibold = false, className, style, ...props }) {
|
|
6
6
|
return (_jsx(TextInput, { ...props, className: cn("text-text-primary", className), editable: false, multiline: true, readOnly: true, scrollEnabled: false, showSoftInputOnFocus: false, style: [
|
|
7
|
-
|
|
8
|
-
{
|
|
9
|
-
fontFamily: resolveTextFontFamily(variant, false, semibold),
|
|
10
|
-
padding: 0,
|
|
11
|
-
textAlignVertical: "top",
|
|
12
|
-
},
|
|
7
|
+
appliedTextStyle(variant, false, semibold),
|
|
8
|
+
{ padding: 0, textAlignVertical: "top" },
|
|
13
9
|
style,
|
|
14
10
|
], underlineColorAndroid: "transparent", value: value }));
|
|
15
11
|
}
|
|
@@ -7,14 +7,9 @@ import { type TextProps } from "react-native";
|
|
|
7
7
|
* Uses NativeWind className for: spacing, colors, transforms, alignment
|
|
8
8
|
* Uses style prop for: typography variants (fontFamily, fontSize, lineHeight)
|
|
9
9
|
*
|
|
10
|
-
* Reason: Custom fonts (Montserrat) not in Tailwind, complex typography system
|
|
11
|
-
*
|
|
12
|
-
* @deprecated color prop - Use className instead: e.g. className="text-text-primary" or className="text-text-accent"
|
|
13
10
|
*/
|
|
14
11
|
interface AppTextProps extends TextProps {
|
|
15
12
|
variant?: keyof typeof typographyVariants;
|
|
16
|
-
/** @deprecated Use className="text-{color}" instead */
|
|
17
|
-
color?: string;
|
|
18
13
|
bold?: boolean;
|
|
19
14
|
semibold?: boolean;
|
|
20
15
|
italic?: boolean;
|
|
@@ -23,6 +18,6 @@ interface AppTextProps extends TextProps {
|
|
|
23
18
|
transform?: "none" | "uppercase" | "lowercase" | "capitalize";
|
|
24
19
|
className?: string;
|
|
25
20
|
}
|
|
26
|
-
declare function AppText({ variant,
|
|
21
|
+
declare function AppText({ variant, bold, italic, underline, align, transform, semibold, style, className, children, ...props }: AppTextProps): React.JSX.Element;
|
|
27
22
|
export default AppText;
|
|
28
23
|
export { AppText };
|
|
@@ -1,14 +1,11 @@
|
|
|
1
1
|
import { jsx as _jsx } from "nativewind/jsx-runtime";
|
|
2
2
|
import { cn } from "../theme/tw.js";
|
|
3
|
-
import {
|
|
3
|
+
import { appliedTextStyle } from "../theme/typography.js";
|
|
4
4
|
import { StyleSheet, Text } from "react-native";
|
|
5
|
-
function AppText({ variant = "body",
|
|
6
|
-
const baseStyle = Typography.variants[variant];
|
|
5
|
+
function AppText({ variant = "body", bold = false, italic = false, underline = false, align = "left", transform = "none", semibold = false, style, className, children, ...props }) {
|
|
7
6
|
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
7
|
const textStyle = {
|
|
9
|
-
...
|
|
10
|
-
...(color ? { color } : {}),
|
|
11
|
-
fontFamily: resolveTextFontFamily(variant, bold, semibold),
|
|
8
|
+
...appliedTextStyle(variant, bold, semibold),
|
|
12
9
|
...StyleSheet.flatten(style),
|
|
13
10
|
};
|
|
14
11
|
return (_jsx(Text, { className: textClassName, style: textStyle, ...props, children: children }));
|
package/dist/index.d.ts
CHANGED
|
@@ -8,17 +8,14 @@ export { Typography } from "./Typography/index.js";
|
|
|
8
8
|
export { Box, Row, Stack } from "./primitives/index.js";
|
|
9
9
|
export { type BrandingConfig, getBrandingLogo, getBrandingMesh, getBrandingMeshSize, setBranding, } from "./branding.js";
|
|
10
10
|
export { cn, tv, type VariantProps } from "./theme/tw.js";
|
|
11
|
-
export { fontFamilies, fontSizes, fontWeights, letterSpacing, lineHeights, typographyVariants, } from "./theme/typography.js";
|
|
11
|
+
export { appliedTextStyle, fontFamilies, fontSizes, fontWeights, letterSpacing, lineHeights, typographyVariants, } from "./theme/typography.js";
|
|
12
12
|
export { BottomInsetContext } from "./layouts/BottomInset.js";
|
|
13
13
|
export { default as Container } from "./layouts/Container.js";
|
|
14
14
|
export { default as GradientContainer } from "./layouts/GradientContainer.js";
|
|
15
15
|
export { default as PlainLayout } from "./layouts/PlainLayout.js";
|
|
16
16
|
export { default as ScrollContainer } from "./layouts/ScrollContainer.js";
|
|
17
|
-
export { default as TabNavigatorLayout } from "./layouts/TabNavigatorLayout.js";
|
|
18
17
|
export { default as AppSplashView } from "./views/AppSplashView.js";
|
|
19
18
|
export { default as AuthFormView } from "./views/AuthFormView.js";
|
|
20
19
|
export { default as FormViewV2 } from "./views/FormViewV2.js";
|
|
21
20
|
export { default as ListViewV2 } from "./views/ListViewV2.js";
|
|
22
21
|
export { default as JSONViewer } from "./widgets/JSONViewer.js";
|
|
23
|
-
export { default as ScreenHeader } from "./widgets/ScreenHeader.js";
|
|
24
|
-
export * from "./widgets/ScreenHeader.js";
|
package/dist/index.js
CHANGED
|
@@ -13,14 +13,13 @@ export { Box, Row, Stack } from "./primitives/index.js";
|
|
|
13
13
|
export { getBrandingLogo, getBrandingMesh, getBrandingMeshSize, setBranding, } from "./branding.js";
|
|
14
14
|
// Theme
|
|
15
15
|
export { cn, tv } from "./theme/tw.js";
|
|
16
|
-
export { fontFamilies, fontSizes, fontWeights, letterSpacing, lineHeights, typographyVariants, } from "./theme/typography.js";
|
|
16
|
+
export { appliedTextStyle, fontFamilies, fontSizes, fontWeights, letterSpacing, lineHeights, typographyVariants, } from "./theme/typography.js";
|
|
17
17
|
// Layouts
|
|
18
18
|
export { BottomInsetContext } from "./layouts/BottomInset.js";
|
|
19
19
|
export { default as Container } from "./layouts/Container.js";
|
|
20
20
|
export { default as GradientContainer } from "./layouts/GradientContainer.js";
|
|
21
21
|
export { default as PlainLayout } from "./layouts/PlainLayout.js";
|
|
22
22
|
export { default as ScrollContainer } from "./layouts/ScrollContainer.js";
|
|
23
|
-
export { default as TabNavigatorLayout } from "./layouts/TabNavigatorLayout.js";
|
|
24
23
|
// Views
|
|
25
24
|
export { default as AppSplashView } from "./views/AppSplashView.js";
|
|
26
25
|
export { default as AuthFormView } from "./views/AuthFormView.js";
|
|
@@ -28,5 +27,3 @@ export { default as FormViewV2 } from "./views/FormViewV2.js";
|
|
|
28
27
|
export { default as ListViewV2 } from "./views/ListViewV2.js";
|
|
29
28
|
// Widgets
|
|
30
29
|
export { default as JSONViewer } from "./widgets/JSONViewer.js";
|
|
31
|
-
export { default as ScreenHeader } from "./widgets/ScreenHeader.js";
|
|
32
|
-
export * from "./widgets/ScreenHeader.js";
|
|
@@ -1,18 +1,20 @@
|
|
|
1
1
|
import { type KeyboardFormProps } from "../Form/Form.KeyboardForm.js";
|
|
2
2
|
import type { AppBarBackground } from "../Navigation/Navigation.AppBar.js";
|
|
3
3
|
import { ReactNode } from "react";
|
|
4
|
+
import { type Edge } from "react-native-safe-area-context";
|
|
4
5
|
interface AuthContainerProps {
|
|
5
6
|
header: ReactNode;
|
|
6
7
|
children: ReactNode;
|
|
7
8
|
onBackPress?: () => void;
|
|
8
9
|
className?: string;
|
|
10
|
+
edges?: Edge[];
|
|
9
11
|
keyboardToolbar?: boolean;
|
|
10
12
|
keyboardFormProps?: Omit<KeyboardFormProps, "children" | "toolbar">;
|
|
11
|
-
/** Gradient + optional texture surface for the header area. Defaults to the `
|
|
13
|
+
/** Gradient + optional texture surface for the header area. Defaults to the `brand`
|
|
12
14
|
* preset. Set `background.pattern` to opt-in a texture (`dots` / `grid` /
|
|
13
15
|
* `diagonals`); compose `<Display.Pattern kind="mesh" />` outside if you want the
|
|
14
16
|
* brand symbol. */
|
|
15
17
|
background?: AppBarBackground;
|
|
16
18
|
}
|
|
17
|
-
declare function AuthContainer({ header, children, onBackPress, background, className, keyboardToolbar, keyboardFormProps, }: AuthContainerProps): import("react").JSX.Element;
|
|
19
|
+
declare function AuthContainer({ header, children, onBackPress, background, className, edges, keyboardToolbar, keyboardFormProps, }: AuthContainerProps): import("react").JSX.Element;
|
|
18
20
|
export default AuthContainer;
|
|
@@ -5,11 +5,10 @@ import { Pattern } from "../Display/Display.Pattern.js";
|
|
|
5
5
|
import KeyboardForm from "../Form/Form.KeyboardForm.js";
|
|
6
6
|
import { useTheme } from "../theme/index.js";
|
|
7
7
|
import { cn } from "../theme/tw.js";
|
|
8
|
-
import { Keyboard, TouchableOpacity, TouchableWithoutFeedback,
|
|
8
|
+
import { Keyboard, TouchableOpacity, TouchableWithoutFeedback, View } from "react-native";
|
|
9
9
|
import { SafeAreaView } from "react-native-safe-area-context";
|
|
10
|
-
function AuthContainer({ header, children, onBackPress, background, className, keyboardToolbar =
|
|
11
|
-
const { height: screenHeight } = useWindowDimensions();
|
|
10
|
+
function AuthContainer({ header, children, onBackPress, background, className, edges = ["top", "bottom", "left", "right"], keyboardToolbar = true, keyboardFormProps, }) {
|
|
12
11
|
const theme = useTheme();
|
|
13
|
-
return (_jsxs(GradientSurface, { className: cn("flex-1", className), colors: background?.colors, end: background?.end ?? (background?.colors ? { x: 0, y: 1 } : undefined), preset: background?.surface ?? "
|
|
12
|
+
return (_jsxs(GradientSurface, { className: cn("flex-1", className), colors: background?.colors, end: background?.end ?? (background?.colors ? { x: 0, y: 1 } : undefined), preset: background?.surface ?? "brand", radius: "none", start: background?.start ?? (background?.colors ? { x: 0, y: 0 } : undefined), style: { flex: 1 }, children: [background?.pattern ? (_jsx(Pattern, { color: background.patternColor ?? "#FFFFFF", kind: background.pattern, opacity: background.patternOpacity ?? 0.18 })) : null, _jsx(SafeAreaView, { className: "flex-1", edges: edges, children: _jsxs(View, { className: "flex-1", children: [_jsx(TouchableWithoutFeedback, { onPress: Keyboard.dismiss, children: _jsxs(View, { className: "justify-center items-center relative", style: { height: "30%" }, children: [onBackPress && (_jsx(TouchableOpacity, { className: "absolute top-4 left-4 p-2 z-[1]", onPress: onBackPress, children: _jsx(Display.Icon, { color: background?.textColor ?? theme.text.inverse, name: "back", size: 24 }) })), header] }) }), _jsx(View, { className: "flex-1 bg-bg-card rounded-t-3xl shadow-lg", children: _jsx(KeyboardForm, { bottomOffset: keyboardToolbar ? undefined : 50, bounces: false, className: "flex-1", contentContainerClassName: "flex-grow pb-10", keyboardShouldPersistTaps: "handled", showsVerticalScrollIndicator: false, ...keyboardFormProps, toolbar: keyboardToolbar, children: _jsx(View, { className: "p-4", children: children }) }) })] }) })] }));
|
|
14
13
|
}
|
|
15
14
|
export default AuthContainer;
|
|
@@ -4,10 +4,6 @@ import { Edge } from "react-native-safe-area-context";
|
|
|
4
4
|
type ContainerProps = {
|
|
5
5
|
children: ReactNode;
|
|
6
6
|
style?: ViewStyle;
|
|
7
|
-
/** @deprecated Ignored under edge-to-edge (SDK 54+): the status bar is always translucent. */
|
|
8
|
-
statusBarColor?: string;
|
|
9
|
-
barStyle?: "light-content" | "dark-content";
|
|
10
|
-
statusBarHidden?: boolean;
|
|
11
7
|
edges?: Edge[];
|
|
12
8
|
className?: string;
|
|
13
9
|
};
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import { jsx as _jsx
|
|
1
|
+
import { jsx as _jsx } from "nativewind/jsx-runtime";
|
|
2
2
|
import { cn } from "../theme/tw.js";
|
|
3
|
-
import { StatusBar } from "react-native";
|
|
4
3
|
import { SafeAreaView } from "react-native-safe-area-context";
|
|
5
|
-
const Container = ({ children, style,
|
|
6
|
-
return (
|
|
4
|
+
const Container = ({ children, style, edges = ["left", "right"], className, }) => {
|
|
5
|
+
return (_jsx(SafeAreaView, { className: cn("flex-1 bg-bg-page", className), edges: edges, style: style, children: children }));
|
|
7
6
|
};
|
|
8
7
|
export default Container;
|
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
import React, { ReactNode } from "react";
|
|
2
|
-
type
|
|
2
|
+
import { type StyleProp, type ViewStyle } from "react-native";
|
|
3
|
+
import { type KeyboardAwareScrollViewProps } from "react-native-keyboard-controller";
|
|
4
|
+
import { type Edge } from "react-native-safe-area-context";
|
|
5
|
+
type ScrollContainerProps = Omit<KeyboardAwareScrollViewProps, "children"> & {
|
|
3
6
|
children: ReactNode;
|
|
4
|
-
contentContainerStyle?:
|
|
7
|
+
contentContainerStyle?: StyleProp<ViewStyle>;
|
|
5
8
|
className?: string;
|
|
9
|
+
edges?: Edge[];
|
|
6
10
|
};
|
|
7
|
-
declare function ScrollContainer({ children, contentContainerStyle, className, }: ScrollContainerProps): React.JSX.Element;
|
|
11
|
+
declare function ScrollContainer({ children, contentContainerStyle, className, edges, bottomOffset, style, ...props }: ScrollContainerProps): React.JSX.Element;
|
|
8
12
|
export default ScrollContainer;
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { jsx as _jsx
|
|
1
|
+
import { jsx as _jsx } from "nativewind/jsx-runtime";
|
|
2
2
|
import { cn } from "../theme/tw.js";
|
|
3
|
-
import {
|
|
3
|
+
import { View } from "react-native";
|
|
4
|
+
import { KeyboardAwareScrollView, } from "react-native-keyboard-controller";
|
|
4
5
|
import { SafeAreaView } from "react-native-safe-area-context";
|
|
5
|
-
function ScrollContainer({ children, contentContainerStyle = {}, className, }) {
|
|
6
|
-
return (
|
|
6
|
+
function ScrollContainer({ children, contentContainerStyle = {}, className, edges = ["left", "right"], bottomOffset = 72, style, ...props }) {
|
|
7
|
+
return (_jsx(SafeAreaView, { className: cn("flex-1 bg-bg-card", className), edges: edges, children: _jsx(KeyboardAwareScrollView, { bottomOffset: bottomOffset, contentContainerStyle: [{ flexGrow: 1, padding: 16 }, contentContainerStyle], contentInsetAdjustmentBehavior: "automatic", keyboardShouldPersistTaps: "handled", showsVerticalScrollIndicator: false, style: [{ flex: 1 }, style], ...props, children: _jsx(View, { className: "flex-1", children: children }) }) }));
|
|
7
8
|
}
|
|
8
9
|
export default ScrollContainer;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { IconName } from "../Display/index.js";
|
|
1
2
|
import { type VariantProps } from "../theme/tw.js";
|
|
2
3
|
import type React from "react";
|
|
3
4
|
import { FC } from "react";
|
|
@@ -135,7 +136,7 @@ export interface BaseButtonProps extends VariantProps<typeof button>, Accessibil
|
|
|
135
136
|
}
|
|
136
137
|
export declare const BaseButton: FC<BaseButtonProps>;
|
|
137
138
|
export interface BaseButtonIconProps extends VariantProps<typeof buttonIcon>, AccessibilityProps {
|
|
138
|
-
icon:
|
|
139
|
+
icon: IconName;
|
|
139
140
|
onPress?: () => void;
|
|
140
141
|
loading?: boolean;
|
|
141
142
|
disabled?: boolean;
|
package/dist/theme/build.js
CHANGED
|
@@ -88,10 +88,6 @@ export function buildThemeFromBrand(opts) {
|
|
|
88
88
|
warning: WARNING,
|
|
89
89
|
danger: DANGER,
|
|
90
90
|
info: INFO,
|
|
91
|
-
successLight: successC.container,
|
|
92
|
-
warningLight: warningC.container,
|
|
93
|
-
dangerLight: dangerC.container,
|
|
94
|
-
infoLight: infoC.container,
|
|
95
91
|
container: {
|
|
96
92
|
primary: primaryC.container,
|
|
97
93
|
onPrimary: primaryC.onContainer,
|
package/dist/theme/css-vars.js
CHANGED
|
@@ -59,10 +59,6 @@ export function themeToVars(t) {
|
|
|
59
59
|
"--warning": rgb(t.warning),
|
|
60
60
|
"--danger": rgb(t.danger),
|
|
61
61
|
"--info": rgb(t.info),
|
|
62
|
-
"--success-light": rgb(t.successLight),
|
|
63
|
-
"--warning-light": rgb(t.warningLight),
|
|
64
|
-
"--danger-light": rgb(t.dangerLight),
|
|
65
|
-
"--info-light": rgb(t.infoLight),
|
|
66
62
|
"--container-primary": rgb(t.container.primary),
|
|
67
63
|
"--container-on-primary": rgb(t.container.onPrimary),
|
|
68
64
|
"--container-secondary": rgb(t.container.secondary),
|
package/dist/theme/dark.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { containerPair } from "./color.js";
|
|
2
2
|
import { resolveOnColor } from "./contrast.js";
|
|
3
|
-
/**
|
|
3
|
+
/** Brand dark palette for iOS and Android, measured on #181614. */
|
|
4
4
|
const PRIMARY = "#8FA9E8";
|
|
5
5
|
const SECONDARY = "#B0C3F1";
|
|
6
6
|
const ACCENT = "#C89B3C";
|
|
@@ -33,7 +33,7 @@ export const DEFAULT_DARK_THEME = {
|
|
|
33
33
|
muted: "#302C28",
|
|
34
34
|
accent: primaryC.container,
|
|
35
35
|
hover: "#2A2622",
|
|
36
|
-
disabled: "#
|
|
36
|
+
disabled: "#3A342F",
|
|
37
37
|
inverse: "#FAF9F7",
|
|
38
38
|
containerLowest: "#141210",
|
|
39
39
|
container: "#221F1C",
|
|
@@ -70,10 +70,6 @@ export const DEFAULT_DARK_THEME = {
|
|
|
70
70
|
warning: WARNING,
|
|
71
71
|
danger: DANGER,
|
|
72
72
|
info: INFO,
|
|
73
|
-
successLight: successC.container,
|
|
74
|
-
warningLight: warningC.container,
|
|
75
|
-
dangerLight: dangerC.container,
|
|
76
|
-
infoLight: infoC.container,
|
|
77
73
|
container: {
|
|
78
74
|
primary: primaryC.container,
|
|
79
75
|
onPrimary: primaryC.onContainer,
|
package/dist/theme/default.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { containerPair } from "./color.js";
|
|
2
2
|
import { resolveOnColor } from "./contrast.js";
|
|
3
|
-
/**
|
|
3
|
+
/** Brand light palette for iOS and Android. Gold is a fill, never a border or a label. */
|
|
4
4
|
const PRIMARY = "#2A4A85";
|
|
5
5
|
const SECONDARY = "#1C3765";
|
|
6
6
|
const ACCENT = "#C89B3C";
|
|
@@ -70,10 +70,6 @@ export const DEFAULT_THEME = {
|
|
|
70
70
|
warning: WARNING,
|
|
71
71
|
danger: DANGER,
|
|
72
72
|
info: INFO,
|
|
73
|
-
successLight: successC.container,
|
|
74
|
-
warningLight: warningC.container,
|
|
75
|
-
dangerLight: dangerC.container,
|
|
76
|
-
infoLight: infoC.container,
|
|
77
73
|
container: {
|
|
78
74
|
primary: primaryC.container,
|
|
79
75
|
onPrimary: primaryC.onContainer,
|
package/dist/theme/index.d.ts
CHANGED
|
@@ -9,6 +9,6 @@ export { DEFAULT_THEME } from "./default.js";
|
|
|
9
9
|
export { type DeepPartial, defineTheme, extendTheme, mergeTheme, } from "./define.js";
|
|
10
10
|
export { theme } from "./theme.js";
|
|
11
11
|
export type { PatternMode, ShadowStyle, ThemeTokens } from "./types.js";
|
|
12
|
-
export { configureFonts, fontFamilies, type FontRole, resetFonts, useAppFonts, variantFontRole, } from "./typography.js";
|
|
12
|
+
export { appliedTextStyle, configureFonts, fontFamilies, type FontRole, resetFonts, useAppFonts, variantFontRole, } from "./typography.js";
|
|
13
13
|
export { useTheme } from "./useTheme.js";
|
|
14
14
|
export { validateTheme } from "./validate.js";
|
package/dist/theme/index.js
CHANGED
|
@@ -8,6 +8,6 @@ export { DEFAULT_DARK_THEME } from "./dark.js";
|
|
|
8
8
|
export { DEFAULT_THEME } from "./default.js";
|
|
9
9
|
export { defineTheme, extendTheme, mergeTheme, } from "./define.js";
|
|
10
10
|
export { theme } from "./theme.js";
|
|
11
|
-
export { configureFonts, fontFamilies, resetFonts, useAppFonts, variantFontRole, } from "./typography.js";
|
|
11
|
+
export { appliedTextStyle, configureFonts, fontFamilies, resetFonts, useAppFonts, variantFontRole, } from "./typography.js";
|
|
12
12
|
export { useTheme } from "./useTheme.js";
|
|
13
13
|
export { validateTheme } from "./validate.js";
|
package/dist/theme/types.d.ts
CHANGED
|
@@ -84,17 +84,6 @@ export interface ThemeTokens {
|
|
|
84
84
|
warning: string;
|
|
85
85
|
danger: string;
|
|
86
86
|
info: string;
|
|
87
|
-
/**
|
|
88
|
-
* @deprecated Prefer `container.success`. Kept for NativeWind `bg-success-light`
|
|
89
|
-
* back-compat; defaults stay in sync with container fills.
|
|
90
|
-
*/
|
|
91
|
-
successLight: string;
|
|
92
|
-
/** @deprecated Prefer `container.warning`. */
|
|
93
|
-
warningLight: string;
|
|
94
|
-
/** @deprecated Prefer `container.danger`. */
|
|
95
|
-
dangerLight: string;
|
|
96
|
-
/** @deprecated Prefer `container.info`. */
|
|
97
|
-
infoLight: string;
|
|
98
87
|
/**
|
|
99
88
|
* Soft tonal fills + on-colors — badges, chips, tonal CTAs, selected rows.
|
|
100
89
|
* Prefer these over saturated `success` + white for body-sized labels.
|