@umituz/react-native-design-system 1.5.28 → 1.5.30
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/package.json +1 -1
- package/src/presentation/atoms/AtomicInput.tsx +5 -7
- package/dist/AtomicIcon.d.ts +0 -34
- package/dist/index.d.ts +0 -60
- package/dist/presentation/atoms/AtomicAvatar.d.ts +0 -47
- package/dist/presentation/atoms/AtomicAvatarGroup.d.ts +0 -55
- package/dist/presentation/atoms/AtomicBadge.d.ts +0 -41
- package/dist/presentation/atoms/AtomicButton.d.ts +0 -20
- package/dist/presentation/atoms/AtomicCard.d.ts +0 -14
- package/dist/presentation/atoms/AtomicChip.d.ts +0 -52
- package/dist/presentation/atoms/AtomicDatePicker.d.ts +0 -74
- package/dist/presentation/atoms/AtomicDivider.d.ts +0 -44
- package/dist/presentation/atoms/AtomicFab.d.ts +0 -36
- package/dist/presentation/atoms/AtomicFilter.d.ts +0 -36
- package/dist/presentation/atoms/AtomicFormError.d.ts +0 -29
- package/dist/presentation/atoms/AtomicIcon.d.ts +0 -34
- package/dist/presentation/atoms/AtomicImage.d.ts +0 -39
- package/dist/presentation/atoms/AtomicInput.d.ts +0 -70
- package/dist/presentation/atoms/AtomicNumberInput.d.ts +0 -68
- package/dist/presentation/atoms/AtomicPicker.d.ts +0 -51
- package/dist/presentation/atoms/AtomicProgress.d.ts +0 -43
- package/dist/presentation/atoms/AtomicSearchBar.d.ts +0 -18
- package/dist/presentation/atoms/AtomicSort.d.ts +0 -71
- package/dist/presentation/atoms/AtomicSwitch.d.ts +0 -42
- package/dist/presentation/atoms/AtomicText.d.ts +0 -33
- package/dist/presentation/atoms/AtomicTextArea.d.ts +0 -84
- package/dist/presentation/atoms/AtomicTouchable.d.ts +0 -76
- package/dist/presentation/atoms/fab/styles/fabStyles.d.ts +0 -22
- package/dist/presentation/atoms/fab/types/index.d.ts +0 -70
- package/dist/presentation/atoms/filter/styles/filterStyles.d.ts +0 -14
- package/dist/presentation/atoms/filter/types/index.d.ts +0 -75
- package/dist/presentation/atoms/index.d.ts +0 -272
- package/dist/presentation/atoms/picker/styles/pickerStyles.d.ts +0 -84
- package/dist/presentation/atoms/picker/types/index.d.ts +0 -37
- package/dist/presentation/atoms/touchable/styles/touchableStyles.d.ts +0 -30
- package/dist/presentation/atoms/touchable/types/index.d.ts +0 -133
- package/dist/presentation/hooks/useResponsive.d.ts +0 -79
- package/dist/presentation/molecules/AtomicConfirmationModal.d.ts +0 -72
- package/dist/presentation/molecules/EmptyState.d.ts +0 -40
- package/dist/presentation/molecules/FormField.d.ts +0 -21
- package/dist/presentation/molecules/GridContainer.d.ts +0 -39
- package/dist/presentation/molecules/IconContainer.d.ts +0 -28
- package/dist/presentation/molecules/ListItem.d.ts +0 -4
- package/dist/presentation/molecules/ScreenHeader.d.ts +0 -54
- package/dist/presentation/molecules/SearchBar.d.ts +0 -17
- package/dist/presentation/molecules/SectionCard.d.ts +0 -24
- package/dist/presentation/molecules/SectionContainer.d.ts +0 -32
- package/dist/presentation/molecules/SectionHeader.d.ts +0 -36
- package/dist/presentation/molecules/confirmation-modal/styles/confirmationModalStyles.d.ts +0 -49
- package/dist/presentation/molecules/confirmation-modal/types/index.d.ts +0 -85
- package/dist/presentation/molecules/listitem/styles/listItemStyles.d.ts +0 -11
- package/dist/presentation/molecules/listitem/types/index.d.ts +0 -16
- package/dist/presentation/organisms/AppHeader.d.ts +0 -30
- package/dist/presentation/organisms/FormContainer.d.ts +0 -75
- package/dist/presentation/organisms/ScreenLayout.d.ts +0 -83
- package/dist/presentation/tokens/commonStyles.d.ts +0 -121
- package/dist/presentation/utils/platformConstants.d.ts +0 -99
- package/dist/presentation/utils/responsive.d.ts +0 -217
|
@@ -1,133 +0,0 @@
|
|
|
1
|
-
import { StyleProp, ViewStyle, GestureResponderEvent } from 'react-native';
|
|
2
|
-
/**
|
|
3
|
-
* Touchable feedback variant
|
|
4
|
-
* - opacity: iOS-style opacity feedback (default)
|
|
5
|
-
* - highlight: Android-style highlight feedback
|
|
6
|
-
* - ripple: Material Design ripple effect (Android only)
|
|
7
|
-
* - none: No visual feedback
|
|
8
|
-
*/
|
|
9
|
-
export type TouchableFeedback = 'opacity' | 'highlight' | 'ripple' | 'none';
|
|
10
|
-
/**
|
|
11
|
-
* Feedback strength for visual feedback
|
|
12
|
-
* - subtle: Light feedback (0.8 opacity)
|
|
13
|
-
* - normal: Standard feedback (0.6 opacity)
|
|
14
|
-
* - strong: Strong feedback (0.4 opacity)
|
|
15
|
-
*/
|
|
16
|
-
export type FeedbackStrength = 'subtle' | 'normal' | 'strong';
|
|
17
|
-
/**
|
|
18
|
-
* Hit slop configuration
|
|
19
|
-
* Extends the touchable area beyond the component's bounds
|
|
20
|
-
*/
|
|
21
|
-
export interface HitSlop {
|
|
22
|
-
top?: number;
|
|
23
|
-
bottom?: number;
|
|
24
|
-
left?: number;
|
|
25
|
-
right?: number;
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* AtomicTouchable component props
|
|
29
|
-
*
|
|
30
|
-
* A unified touchable wrapper with consistent behavior across platforms.
|
|
31
|
-
* Uses React Native's Pressable API for modern, accessible touch handling.
|
|
32
|
-
*
|
|
33
|
-
* @example
|
|
34
|
-
* ```tsx
|
|
35
|
-
* <AtomicTouchable
|
|
36
|
-
* onPress={handlePress}
|
|
37
|
-
* feedback="opacity"
|
|
38
|
-
* strength="normal"
|
|
39
|
-
* disabled={isDisabled}
|
|
40
|
-
* hitSlop={{ top: 8, bottom: 8, left: 8, right: 8 }}
|
|
41
|
-
* style={styles.touchable}
|
|
42
|
-
* >
|
|
43
|
-
* <AtomicText>Press Me</AtomicText>
|
|
44
|
-
* </AtomicTouchable>
|
|
45
|
-
* ```
|
|
46
|
-
*/
|
|
47
|
-
export interface AtomicTouchableProps {
|
|
48
|
-
/**
|
|
49
|
-
* Content to render inside the touchable
|
|
50
|
-
*/
|
|
51
|
-
children: React.ReactNode;
|
|
52
|
-
/**
|
|
53
|
-
* Callback fired when the touchable is pressed
|
|
54
|
-
*/
|
|
55
|
-
onPress?: (event: GestureResponderEvent) => void;
|
|
56
|
-
/**
|
|
57
|
-
* Callback fired when press starts (finger down)
|
|
58
|
-
*/
|
|
59
|
-
onPressIn?: (event: GestureResponderEvent) => void;
|
|
60
|
-
/**
|
|
61
|
-
* Callback fired when press ends (finger up)
|
|
62
|
-
*/
|
|
63
|
-
onPressOut?: (event: GestureResponderEvent) => void;
|
|
64
|
-
/**
|
|
65
|
-
* Callback fired on long press (500ms default)
|
|
66
|
-
*/
|
|
67
|
-
onLongPress?: (event: GestureResponderEvent) => void;
|
|
68
|
-
/**
|
|
69
|
-
* Feedback variant
|
|
70
|
-
* @default 'opacity'
|
|
71
|
-
*/
|
|
72
|
-
feedback?: TouchableFeedback;
|
|
73
|
-
/**
|
|
74
|
-
* Feedback strength
|
|
75
|
-
* @default 'normal'
|
|
76
|
-
*/
|
|
77
|
-
strength?: FeedbackStrength;
|
|
78
|
-
/**
|
|
79
|
-
* Disable the touchable
|
|
80
|
-
* @default false
|
|
81
|
-
*/
|
|
82
|
-
disabled?: boolean;
|
|
83
|
-
/**
|
|
84
|
-
* Hit slop - extends touchable area
|
|
85
|
-
* Useful for small touch targets
|
|
86
|
-
* @default undefined
|
|
87
|
-
*/
|
|
88
|
-
hitSlop?: HitSlop | number;
|
|
89
|
-
/**
|
|
90
|
-
* Custom style for the touchable container
|
|
91
|
-
*/
|
|
92
|
-
style?: StyleProp<ViewStyle>;
|
|
93
|
-
/**
|
|
94
|
-
* Style applied when pressed
|
|
95
|
-
*/
|
|
96
|
-
pressedStyle?: StyleProp<ViewStyle>;
|
|
97
|
-
/**
|
|
98
|
-
* Style applied when disabled
|
|
99
|
-
*/
|
|
100
|
-
disabledStyle?: StyleProp<ViewStyle>;
|
|
101
|
-
/**
|
|
102
|
-
* Accessibility label for screen readers
|
|
103
|
-
*/
|
|
104
|
-
accessibilityLabel?: string;
|
|
105
|
-
/**
|
|
106
|
-
* Accessibility hint for screen readers
|
|
107
|
-
*/
|
|
108
|
-
accessibilityHint?: string;
|
|
109
|
-
/**
|
|
110
|
-
* Accessibility role
|
|
111
|
-
* @default 'button'
|
|
112
|
-
*/
|
|
113
|
-
accessibilityRole?: 'button' | 'link' | 'none';
|
|
114
|
-
/**
|
|
115
|
-
* Test ID for E2E testing
|
|
116
|
-
*/
|
|
117
|
-
testID?: string;
|
|
118
|
-
/**
|
|
119
|
-
* Delay before onLongPress is triggered (ms)
|
|
120
|
-
* @default 500
|
|
121
|
-
*/
|
|
122
|
-
delayLongPress?: number;
|
|
123
|
-
/**
|
|
124
|
-
* Ripple color (Android only, for 'ripple' feedback)
|
|
125
|
-
* @default theme primary color with alpha
|
|
126
|
-
*/
|
|
127
|
-
rippleColor?: string;
|
|
128
|
-
/**
|
|
129
|
-
* Border radius for ripple effect (Android only)
|
|
130
|
-
* @default 0
|
|
131
|
-
*/
|
|
132
|
-
rippleRadius?: number;
|
|
133
|
-
}
|
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* useResponsive Hook
|
|
3
|
-
*
|
|
4
|
-
* React Hook for accessing responsive utilities with real-time dimension updates
|
|
5
|
-
* and safe area insets integration.
|
|
6
|
-
*
|
|
7
|
-
* Usage:
|
|
8
|
-
* ```tsx
|
|
9
|
-
* const { logoSize, inputHeight, fabPosition, isSmallDevice } = useResponsive();
|
|
10
|
-
* ```
|
|
11
|
-
*/
|
|
12
|
-
import { DeviceType } from '../utils/responsive';
|
|
13
|
-
export interface UseResponsiveReturn {
|
|
14
|
-
width: number;
|
|
15
|
-
height: number;
|
|
16
|
-
isSmallDevice: boolean;
|
|
17
|
-
isTabletDevice: boolean;
|
|
18
|
-
isLandscapeMode: boolean;
|
|
19
|
-
deviceType: DeviceType;
|
|
20
|
-
insets: {
|
|
21
|
-
top: number;
|
|
22
|
-
bottom: number;
|
|
23
|
-
left: number;
|
|
24
|
-
right: number;
|
|
25
|
-
};
|
|
26
|
-
logoSize: number;
|
|
27
|
-
inputHeight: number;
|
|
28
|
-
iconContainerSize: number;
|
|
29
|
-
maxContentWidth: number;
|
|
30
|
-
minTouchTarget: number;
|
|
31
|
-
horizontalPadding: number;
|
|
32
|
-
bottomPosition: number;
|
|
33
|
-
fabPosition: {
|
|
34
|
-
bottom: number;
|
|
35
|
-
right: number;
|
|
36
|
-
};
|
|
37
|
-
modalMaxHeight: string;
|
|
38
|
-
modalMinHeight: number;
|
|
39
|
-
gridColumns: number;
|
|
40
|
-
spacingMultiplier: number;
|
|
41
|
-
onboardingIconMarginTop: number;
|
|
42
|
-
onboardingIconMarginBottom: number;
|
|
43
|
-
onboardingIconSize: number;
|
|
44
|
-
onboardingTitleMarginBottom: number;
|
|
45
|
-
onboardingTextPadding: number;
|
|
46
|
-
onboardingDescriptionMarginTop: number;
|
|
47
|
-
formBottomPadding: number;
|
|
48
|
-
inputIconSize: number;
|
|
49
|
-
formContentWidth: number | undefined;
|
|
50
|
-
formElementSpacing: number;
|
|
51
|
-
getLogoSize: (baseSize?: number) => number;
|
|
52
|
-
getInputHeight: (baseHeight?: number) => number;
|
|
53
|
-
getIconSize: (baseSize?: number) => number;
|
|
54
|
-
getMaxWidth: (baseWidth?: number) => number;
|
|
55
|
-
getFontSize: (baseFontSize: number) => number;
|
|
56
|
-
getGridCols: (mobile?: number, tablet?: number) => number;
|
|
57
|
-
}
|
|
58
|
-
/**
|
|
59
|
-
* Hook for responsive design utilities
|
|
60
|
-
* Automatically updates when screen dimensions or orientation changes
|
|
61
|
-
*/
|
|
62
|
-
export declare const useResponsive: () => UseResponsiveReturn;
|
|
63
|
-
/**
|
|
64
|
-
* Shorthand hook for just responsive sizes
|
|
65
|
-
*/
|
|
66
|
-
export declare const useResponsiveSizes: () => {
|
|
67
|
-
logoSize: number;
|
|
68
|
-
inputHeight: number;
|
|
69
|
-
iconContainerSize: number;
|
|
70
|
-
maxContentWidth: number;
|
|
71
|
-
};
|
|
72
|
-
/**
|
|
73
|
-
* Shorthand hook for just device type checks
|
|
74
|
-
*/
|
|
75
|
-
export declare const useDeviceType: () => {
|
|
76
|
-
isSmallDevice: boolean;
|
|
77
|
-
isTabletDevice: boolean;
|
|
78
|
-
deviceType: DeviceType;
|
|
79
|
-
};
|
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* AtomicConfirmationModal - Universal Confirmation Dialog
|
|
3
|
-
*
|
|
4
|
-
* A reusable confirmation modal for destructive and important actions.
|
|
5
|
-
* Follows Material Design 3 dialog patterns and accessibility guidelines.
|
|
6
|
-
*
|
|
7
|
-
* Features:
|
|
8
|
-
* - Multiple variants (default, destructive, warning, success)
|
|
9
|
-
* - Configurable text and icons
|
|
10
|
-
* - Backdrop dismissal
|
|
11
|
-
* - Full keyboard and screen reader support
|
|
12
|
-
* - Theme-aware styling
|
|
13
|
-
*
|
|
14
|
-
* @example
|
|
15
|
-
* ```tsx
|
|
16
|
-
* // Destructive confirmation (delete)
|
|
17
|
-
* <AtomicConfirmationModal
|
|
18
|
-
* visible={showDeleteModal}
|
|
19
|
-
* variant="destructive"
|
|
20
|
-
* title="Delete Item?"
|
|
21
|
-
* message="This action cannot be undone. All data will be permanently deleted."
|
|
22
|
-
* confirmText="Delete"
|
|
23
|
-
* cancelText="Cancel"
|
|
24
|
-
* onConfirm={handleDelete}
|
|
25
|
-
* onCancel={() => setShowDeleteModal(false)}
|
|
26
|
-
* />
|
|
27
|
-
*
|
|
28
|
-
* // Generic confirmation
|
|
29
|
-
* <AtomicConfirmationModal
|
|
30
|
-
* visible={showConfirmModal}
|
|
31
|
-
* variant="default"
|
|
32
|
-
* title="Confirm Action"
|
|
33
|
-
* message="Are you sure you want to proceed?"
|
|
34
|
-
* onConfirm={handleConfirm}
|
|
35
|
-
* onCancel={() => setShowConfirmModal(false)}
|
|
36
|
-
* />
|
|
37
|
-
* ```
|
|
38
|
-
*/
|
|
39
|
-
import React from 'react';
|
|
40
|
-
import { AtomicConfirmationModalProps, ConfirmationModalVariant } from './confirmation-modal/types';
|
|
41
|
-
export type { AtomicConfirmationModalProps };
|
|
42
|
-
export type { ConfirmationModalVariant };
|
|
43
|
-
export declare const AtomicConfirmationModal: React.FC<AtomicConfirmationModalProps>;
|
|
44
|
-
/**
|
|
45
|
-
* Hook for managing confirmation modal state
|
|
46
|
-
*
|
|
47
|
-
* @example
|
|
48
|
-
* ```tsx
|
|
49
|
-
* const { showConfirmation, confirmationProps } = useConfirmationModal({
|
|
50
|
-
* title: 'Delete Item?',
|
|
51
|
-
* message: 'This cannot be undone',
|
|
52
|
-
* variant: 'destructive',
|
|
53
|
-
* onConfirm: handleDelete,
|
|
54
|
-
* });
|
|
55
|
-
*
|
|
56
|
-
* // In JSX
|
|
57
|
-
* <AtomicConfirmationModal {...confirmationProps} />
|
|
58
|
-
* <Button onPress={showConfirmation}>Delete</Button>
|
|
59
|
-
* ```
|
|
60
|
-
*/
|
|
61
|
-
export declare const useConfirmationModal: (config: {
|
|
62
|
-
title: string;
|
|
63
|
-
message: string;
|
|
64
|
-
variant?: ConfirmationModalVariant;
|
|
65
|
-
confirmText: string;
|
|
66
|
-
cancelText: string;
|
|
67
|
-
onConfirm: () => void;
|
|
68
|
-
}) => {
|
|
69
|
-
showConfirmation: () => any;
|
|
70
|
-
hideConfirmation: () => any;
|
|
71
|
-
confirmationProps: AtomicConfirmationModalProps;
|
|
72
|
-
};
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* EmptyState Molecule - Universal Empty State Display
|
|
3
|
-
*
|
|
4
|
-
* Displays icon, title, and subtitle for empty data scenarios
|
|
5
|
-
* Theme: {{THEME_NAME}} ({{CATEGORY}} category)
|
|
6
|
-
*
|
|
7
|
-
* Atomic Design Level: MOLECULE
|
|
8
|
-
* Composition: Icon + AtomicText + Layout
|
|
9
|
-
*
|
|
10
|
-
* Usage:
|
|
11
|
-
* - Empty lists
|
|
12
|
-
* - Empty grids
|
|
13
|
-
* - No search results
|
|
14
|
-
* - No data states
|
|
15
|
-
*/
|
|
16
|
-
import React from 'react';
|
|
17
|
-
import { ViewStyle, TextStyle } from 'react-native';
|
|
18
|
-
export interface EmptyStateProps {
|
|
19
|
-
/** Material icon name */
|
|
20
|
-
icon: string;
|
|
21
|
-
/** Icon size (default: xl) */
|
|
22
|
-
iconSize?: 'sm' | 'md' | 'lg' | 'xl' | 'xxl';
|
|
23
|
-
/** Main heading text */
|
|
24
|
-
title: string;
|
|
25
|
-
/** Descriptive subtitle text */
|
|
26
|
-
subtitle?: string;
|
|
27
|
-
/** Custom icon color (default: textTertiary) */
|
|
28
|
-
iconColor?: string;
|
|
29
|
-
/** Custom title color (default: textPrimary) */
|
|
30
|
-
titleColor?: string;
|
|
31
|
-
/** Custom subtitle color (default: textSecondary) */
|
|
32
|
-
subtitleColor?: string;
|
|
33
|
-
/** Container style override */
|
|
34
|
-
style?: ViewStyle;
|
|
35
|
-
/** Title style override */
|
|
36
|
-
titleStyle?: TextStyle;
|
|
37
|
-
/** Subtitle style override */
|
|
38
|
-
subtitleStyle?: TextStyle;
|
|
39
|
-
}
|
|
40
|
-
export declare const EmptyState: React.FC<EmptyStateProps>;
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* FormField Molecule - Complete Form Input with Label and Error
|
|
3
|
-
*
|
|
4
|
-
* Combines AtomicText (label/error) + AtomicInput (field)
|
|
5
|
-
* Theme: {{THEME_NAME}} ({{CATEGORY}} category)
|
|
6
|
-
*
|
|
7
|
-
* Atomic Design Level: MOLECULE
|
|
8
|
-
* Composition: AtomicText + AtomicInput
|
|
9
|
-
*/
|
|
10
|
-
import React from 'react';
|
|
11
|
-
import { ViewStyle } from 'react-native';
|
|
12
|
-
import { AtomicInputProps } from '../atoms/AtomicInput';
|
|
13
|
-
export interface FormFieldProps extends Omit<AtomicInputProps, 'state' | 'label'> {
|
|
14
|
-
label?: string;
|
|
15
|
-
error?: string;
|
|
16
|
-
helperText?: string;
|
|
17
|
-
required?: boolean;
|
|
18
|
-
containerStyle?: ViewStyle;
|
|
19
|
-
style?: ViewStyle;
|
|
20
|
-
}
|
|
21
|
-
export declare const FormField: React.FC<FormFieldProps>;
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* GridContainer Molecule - Responsive Grid Layout
|
|
3
|
-
*
|
|
4
|
-
* Provides flexible grid layout with configurable columns and gap
|
|
5
|
-
* Theme: {{THEME_NAME}} ({{CATEGORY}} category)
|
|
6
|
-
*
|
|
7
|
-
* Atomic Design Level: MOLECULE
|
|
8
|
-
* Composition: View + Responsive Layout
|
|
9
|
-
*
|
|
10
|
-
* Usage:
|
|
11
|
-
* - Stats grids (2 columns)
|
|
12
|
-
* - Action grids (2 columns)
|
|
13
|
-
* - Product grids (2-3 columns)
|
|
14
|
-
* - Gallery grids (3-4 columns)
|
|
15
|
-
*/
|
|
16
|
-
import React from 'react';
|
|
17
|
-
import { ViewStyle } from 'react-native';
|
|
18
|
-
export interface GridContainerProps {
|
|
19
|
-
/** Number of columns (default: 2) */
|
|
20
|
-
columns?: 2 | 3 | 4;
|
|
21
|
-
/** Gap between items in pixels (default: 8) */
|
|
22
|
-
gap?: number;
|
|
23
|
-
/** Container style override */
|
|
24
|
-
style?: ViewStyle;
|
|
25
|
-
/** Grid items to render */
|
|
26
|
-
children: React.ReactNode;
|
|
27
|
-
}
|
|
28
|
-
export interface GridItemProps {
|
|
29
|
-
/** Item content */
|
|
30
|
-
children: React.ReactNode;
|
|
31
|
-
/** Item style override */
|
|
32
|
-
style?: ViewStyle;
|
|
33
|
-
}
|
|
34
|
-
declare const GridContainerComponent: React.FC<GridContainerProps>;
|
|
35
|
-
export declare const GridItem: React.FC<GridItemProps>;
|
|
36
|
-
export declare const GridContainer: typeof GridContainerComponent & {
|
|
37
|
-
Item: typeof GridItem;
|
|
38
|
-
};
|
|
39
|
-
export {};
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* IconContainer Molecule Component
|
|
3
|
-
*
|
|
4
|
-
* Standardized icon container with consistent sizing and styling.
|
|
5
|
-
* Used throughout app for icon displays in lists, cards, and settings.
|
|
6
|
-
*
|
|
7
|
-
* Features:
|
|
8
|
-
* - Consistent sizing system
|
|
9
|
-
* - Optional background circle
|
|
10
|
-
* - Optional gradient background
|
|
11
|
-
* - Theme-aware colors
|
|
12
|
-
* - Accessibility support
|
|
13
|
-
*
|
|
14
|
-
* Atomic Design: Molecule (View + Icon)
|
|
15
|
-
*/
|
|
16
|
-
import React from 'react';
|
|
17
|
-
interface IconContainerProps {
|
|
18
|
-
icon: React.ReactNode;
|
|
19
|
-
size?: 'sm' | 'md' | 'lg' | 'xl';
|
|
20
|
-
backgroundColor?: string;
|
|
21
|
-
gradient?: string[];
|
|
22
|
-
withBorder?: boolean;
|
|
23
|
-
borderColor?: string;
|
|
24
|
-
style?: object;
|
|
25
|
-
testID?: string;
|
|
26
|
-
}
|
|
27
|
-
export declare const IconContainer: React.FC<IconContainerProps>;
|
|
28
|
-
export {};
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ScreenHeader Component - {{APP_NAME}}
|
|
3
|
-
*
|
|
4
|
-
* Reusable screen header with consistent back button placement
|
|
5
|
-
* Theme: {{THEME_NAME}} ({{CATEGORY}} category)
|
|
6
|
-
*
|
|
7
|
-
* Features:
|
|
8
|
-
* - Top-left back button (arrow-back icon)
|
|
9
|
-
* - Centered title text
|
|
10
|
-
* - Optional right action button
|
|
11
|
-
* - Consistent spacing and layout
|
|
12
|
-
* - Works with all 100+ generated apps
|
|
13
|
-
*
|
|
14
|
-
* CRITICAL: Back button MUST ALWAYS be top-left (never bottom, never center)
|
|
15
|
-
*/
|
|
16
|
-
import React from 'react';
|
|
17
|
-
import { ViewStyle } from 'react-native';
|
|
18
|
-
export interface ScreenHeaderProps {
|
|
19
|
-
/** Screen title (centered) */
|
|
20
|
-
title: string;
|
|
21
|
-
/** Optional right action button */
|
|
22
|
-
rightAction?: React.ReactNode;
|
|
23
|
-
/** Custom back button action (default: navigation.goBack()) */
|
|
24
|
-
onBackPress?: () => void;
|
|
25
|
-
/** Hide back button (rare cases only) */
|
|
26
|
-
hideBackButton?: boolean;
|
|
27
|
-
/** Additional header style */
|
|
28
|
-
style?: ViewStyle;
|
|
29
|
-
/** Test ID for E2E testing */
|
|
30
|
-
testID?: string;
|
|
31
|
-
}
|
|
32
|
-
/**
|
|
33
|
-
* ScreenHeader Component
|
|
34
|
-
*
|
|
35
|
-
* @example
|
|
36
|
-
* // Basic usage (most common)
|
|
37
|
-
* <ScreenHeader title="Settings" />
|
|
38
|
-
*
|
|
39
|
-
* @example
|
|
40
|
-
* // With right action
|
|
41
|
-
* <ScreenHeader
|
|
42
|
-
* title="Edit Profile"
|
|
43
|
-
* rightAction={<TouchableOpacity onPress={handleSave}><Text>Save</Text></TouchableOpacity>}
|
|
44
|
-
* />
|
|
45
|
-
*
|
|
46
|
-
* @example
|
|
47
|
-
* // Custom back action
|
|
48
|
-
* <ScreenHeader
|
|
49
|
-
* title="Unsaved Changes"
|
|
50
|
-
* onBackPress={handleUnsavedChanges}
|
|
51
|
-
* />
|
|
52
|
-
*/
|
|
53
|
-
export declare const ScreenHeader: React.FC<ScreenHeaderProps>;
|
|
54
|
-
export default ScreenHeader;
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* SearchBar Molecule - Search Input with Icon and Clear Button
|
|
3
|
-
*
|
|
4
|
-
* Combines AtomicInput + AtomicIcon + AtomicButton
|
|
5
|
-
* Theme: {{THEME_NAME}} ({{CATEGORY}} category)
|
|
6
|
-
*
|
|
7
|
-
* Atomic Design Level: MOLECULE
|
|
8
|
-
* Composition: AtomicInput + AtomicIcon + TouchableOpacity
|
|
9
|
-
*/
|
|
10
|
-
import React from 'react';
|
|
11
|
-
import { ViewStyle } from 'react-native';
|
|
12
|
-
import { AtomicInputProps } from '../atoms/AtomicInput';
|
|
13
|
-
export interface SearchBarProps extends Omit<AtomicInputProps, 'leftIcon' | 'rightIcon'> {
|
|
14
|
-
onClear?: () => void;
|
|
15
|
-
containerStyle?: ViewStyle;
|
|
16
|
-
}
|
|
17
|
-
export declare const SearchBar: React.FC<SearchBarProps>;
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* SectionCard Molecule Component
|
|
3
|
-
*
|
|
4
|
-
* Reusable section card with title and content area.
|
|
5
|
-
* Used throughout settings screens for consistent grouping.
|
|
6
|
-
*
|
|
7
|
-
* Features:
|
|
8
|
-
* - Automatic theme-aware styling
|
|
9
|
-
* - Uppercase section titles with proper spacing
|
|
10
|
-
* - Built on AtomicCard for consistency
|
|
11
|
-
* - Flexible content area
|
|
12
|
-
*
|
|
13
|
-
* Atomic Design: Molecule (Card + Text)
|
|
14
|
-
*/
|
|
15
|
-
import React from 'react';
|
|
16
|
-
interface SectionCardProps {
|
|
17
|
-
title: string;
|
|
18
|
-
children: React.ReactNode;
|
|
19
|
-
style?: object;
|
|
20
|
-
contentStyle?: object;
|
|
21
|
-
testID?: string;
|
|
22
|
-
}
|
|
23
|
-
export declare const SectionCard: React.FC<SectionCardProps>;
|
|
24
|
-
export {};
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* SectionContainer Molecule - Universal Section Wrapper
|
|
3
|
-
*
|
|
4
|
-
* Provides consistent section layout with optional title
|
|
5
|
-
* Theme: {{THEME_NAME}} ({{CATEGORY}} category)
|
|
6
|
-
*
|
|
7
|
-
* Atomic Design Level: MOLECULE
|
|
8
|
-
* Composition: View + AtomicText + Layout
|
|
9
|
-
*
|
|
10
|
-
* Usage:
|
|
11
|
-
* - Home screen sections
|
|
12
|
-
* - Dashboard sections
|
|
13
|
-
* - Settings groups
|
|
14
|
-
* - Content sections
|
|
15
|
-
*/
|
|
16
|
-
import React from 'react';
|
|
17
|
-
import { ViewStyle, TextStyle } from 'react-native';
|
|
18
|
-
export interface SectionContainerProps {
|
|
19
|
-
/** Section title (optional) */
|
|
20
|
-
title?: string;
|
|
21
|
-
/** Section title color (default: textPrimary) */
|
|
22
|
-
titleColor?: string;
|
|
23
|
-
/** Section title style override */
|
|
24
|
-
titleStyle?: TextStyle;
|
|
25
|
-
/** Container style override */
|
|
26
|
-
style?: ViewStyle;
|
|
27
|
-
/** Content to render inside section */
|
|
28
|
-
children: React.ReactNode;
|
|
29
|
-
/** Right action element (e.g., "See All" link) */
|
|
30
|
-
rightAction?: React.ReactNode;
|
|
31
|
-
}
|
|
32
|
-
export declare const SectionContainer: React.FC<SectionContainerProps>;
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* SectionHeader Molecule - Universal Section Header
|
|
3
|
-
*
|
|
4
|
-
* Displays section title with optional subtitle
|
|
5
|
-
* Theme: {{THEME_NAME}} ({{CATEGORY}} category)
|
|
6
|
-
*
|
|
7
|
-
* Atomic Design Level: MOLECULE
|
|
8
|
-
* Composition: AtomicText + Layout
|
|
9
|
-
*
|
|
10
|
-
* Usage:
|
|
11
|
-
* - List headers
|
|
12
|
-
* - Grid headers
|
|
13
|
-
* - Section dividers
|
|
14
|
-
* - Screen headers
|
|
15
|
-
*/
|
|
16
|
-
import React from 'react';
|
|
17
|
-
import { ViewStyle, TextStyle } from 'react-native';
|
|
18
|
-
export interface SectionHeaderProps {
|
|
19
|
-
/** Main heading text */
|
|
20
|
-
title: string;
|
|
21
|
-
/** Optional subtitle text */
|
|
22
|
-
subtitle?: string;
|
|
23
|
-
/** Custom title color (default: textPrimary) */
|
|
24
|
-
titleColor?: string;
|
|
25
|
-
/** Custom subtitle color (default: textSecondary) */
|
|
26
|
-
subtitleColor?: string;
|
|
27
|
-
/** Container style override */
|
|
28
|
-
style?: ViewStyle;
|
|
29
|
-
/** Title style override */
|
|
30
|
-
titleStyle?: TextStyle;
|
|
31
|
-
/** Subtitle style override */
|
|
32
|
-
subtitleStyle?: TextStyle;
|
|
33
|
-
/** Right action element (e.g., button, icon) */
|
|
34
|
-
rightAction?: React.ReactNode;
|
|
35
|
-
}
|
|
36
|
-
export declare const SectionHeader: React.FC<SectionHeaderProps>;
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* AtomicConfirmationModal Style Utilities
|
|
3
|
-
*
|
|
4
|
-
* Styling functions for confirmation modal component
|
|
5
|
-
*/
|
|
6
|
-
import { ViewStyle } from 'react-native';
|
|
7
|
-
import { ConfirmationModalVariant, ConfirmationModalVariantConfig } from '../types';
|
|
8
|
-
import type { DesignTokens } from '@umituz/react-native-theme';
|
|
9
|
-
/**
|
|
10
|
-
* Get variant configuration (icon and color only)
|
|
11
|
-
* Note: Confirm text is handled in component with translations
|
|
12
|
-
*/
|
|
13
|
-
export declare const getVariantConfig: (variant: ConfirmationModalVariant, tokens: DesignTokens) => Omit<ConfirmationModalVariantConfig, "confirmText">;
|
|
14
|
-
/**
|
|
15
|
-
* Get modal overlay style
|
|
16
|
-
*/
|
|
17
|
-
export declare const getModalOverlayStyle: (tokens: DesignTokens) => ViewStyle;
|
|
18
|
-
/**
|
|
19
|
-
* Get backdrop style (invisible layer for dismissing)
|
|
20
|
-
*/
|
|
21
|
-
export declare const getBackdropStyle: () => ViewStyle;
|
|
22
|
-
/**
|
|
23
|
-
* Get modal container style
|
|
24
|
-
*/
|
|
25
|
-
export declare const getModalContainerStyle: (tokens: DesignTokens) => ViewStyle;
|
|
26
|
-
/**
|
|
27
|
-
* Get icon container style
|
|
28
|
-
*/
|
|
29
|
-
export declare const getIconContainerStyle: (tokens: DesignTokens) => ViewStyle;
|
|
30
|
-
/**
|
|
31
|
-
* Get title container style
|
|
32
|
-
*/
|
|
33
|
-
export declare const getTitleContainerStyle: (tokens: DesignTokens) => ViewStyle;
|
|
34
|
-
/**
|
|
35
|
-
* Get message container style
|
|
36
|
-
*/
|
|
37
|
-
export declare const getMessageContainerStyle: (tokens: DesignTokens) => ViewStyle;
|
|
38
|
-
/**
|
|
39
|
-
* Get button container style
|
|
40
|
-
*/
|
|
41
|
-
export declare const getButtonContainerStyle: (tokens: DesignTokens) => ViewStyle;
|
|
42
|
-
/**
|
|
43
|
-
* Get button style
|
|
44
|
-
*/
|
|
45
|
-
export declare const getButtonStyle: () => ViewStyle;
|
|
46
|
-
/**
|
|
47
|
-
* Get confirm button variant based on modal variant
|
|
48
|
-
*/
|
|
49
|
-
export declare const getConfirmButtonVariant: (variant: ConfirmationModalVariant) => "primary" | "secondary" | "tertiary" | "outline" | "ghost";
|