@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
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@umituz/react-native-design-system",
|
|
3
|
-
"version": "1.5.
|
|
3
|
+
"version": "1.5.30",
|
|
4
4
|
"description": "Universal design system for React Native apps - Domain-Driven Design architecture with Material Design 3 components",
|
|
5
5
|
"main": "./src/index.ts",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React, { useState } from 'react';
|
|
2
|
-
import { View, TextInput, Pressable, StyleSheet, StyleProp, ViewStyle, TextStyle
|
|
2
|
+
import { View, TextInput, Pressable, StyleSheet, StyleProp, ViewStyle, TextStyle } from 'react-native';
|
|
3
3
|
import { useAppDesignTokens } from '@umituz/react-native-theme';
|
|
4
4
|
import { AtomicIcon } from './AtomicIcon';
|
|
5
5
|
import { AtomicText } from './AtomicText';
|
|
@@ -205,8 +205,8 @@ export const AtomicInput: React.FC<AtomicInputProps> = ({
|
|
|
205
205
|
const textInputStyle: StyleProp<TextStyle> = [
|
|
206
206
|
styles.input,
|
|
207
207
|
{
|
|
208
|
-
fontSize: config.fontSize
|
|
209
|
-
lineHeight:
|
|
208
|
+
fontSize: config.fontSize,
|
|
209
|
+
lineHeight: config.fontSize * 1.2, // Tighter lineHeight to prevent text clipping
|
|
210
210
|
color: getTextColor(),
|
|
211
211
|
paddingVertical: 0, // Remove vertical padding to prevent clipping
|
|
212
212
|
},
|
|
@@ -231,7 +231,7 @@ export const AtomicInput: React.FC<AtomicInputProps> = ({
|
|
|
231
231
|
{leadingIcon && (
|
|
232
232
|
<View style={styles.leadingIcon}>
|
|
233
233
|
<AtomicIcon
|
|
234
|
-
name={
|
|
234
|
+
name={leadingIcon}
|
|
235
235
|
customSize={config.iconSize}
|
|
236
236
|
customColor={iconColor}
|
|
237
237
|
/>
|
|
@@ -250,8 +250,6 @@ export const AtomicInput: React.FC<AtomicInputProps> = ({
|
|
|
250
250
|
autoCorrect={autoCorrect}
|
|
251
251
|
editable={!isDisabled}
|
|
252
252
|
style={textInputStyle}
|
|
253
|
-
textAlignVertical="center"
|
|
254
|
-
{...(Platform.OS === 'android' && { includeFontPadding: false })}
|
|
255
253
|
onBlur={() => {
|
|
256
254
|
setIsFocused(false);
|
|
257
255
|
onBlur?.();
|
|
@@ -283,7 +281,7 @@ export const AtomicInput: React.FC<AtomicInputProps> = ({
|
|
|
283
281
|
disabled={!onTrailingIconPress}
|
|
284
282
|
>
|
|
285
283
|
<AtomicIcon
|
|
286
|
-
name={
|
|
284
|
+
name={trailingIcon}
|
|
287
285
|
customSize={config.iconSize}
|
|
288
286
|
customColor={iconColor}
|
|
289
287
|
/>
|
package/dist/AtomicIcon.d.ts
DELETED
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* AtomicIcon - Atomic Design System Icon Component
|
|
3
|
-
*
|
|
4
|
-
* Wrapper for the universal Icon component from @domains/icons
|
|
5
|
-
* Provides backward compatibility with AtomicIcon naming convention
|
|
6
|
-
* while leveraging the full power of the icons domain architecture.
|
|
7
|
-
*/
|
|
8
|
-
import React from 'react';
|
|
9
|
-
import type { IconProps, IconSize, IconColor, IconName } from '@umituz/react-native-icon';
|
|
10
|
-
/**
|
|
11
|
-
* AtomicIcon Component
|
|
12
|
-
*
|
|
13
|
-
* @example
|
|
14
|
-
* ```tsx
|
|
15
|
-
* import { AtomicIcon } from '@umituz/react-native-design-system';
|
|
16
|
-
*
|
|
17
|
-
* // Basic usage
|
|
18
|
-
* <AtomicIcon name="Settings" size="md" color="primary" />
|
|
19
|
-
*
|
|
20
|
-
* // Custom size and color
|
|
21
|
-
* <AtomicIcon name="Heart" customSize={32} customColor="#FF0000" />
|
|
22
|
-
*
|
|
23
|
-
* // With background
|
|
24
|
-
* <AtomicIcon name="Info" size="lg" withBackground backgroundColor="#667eea" />
|
|
25
|
-
* ```
|
|
26
|
-
*/
|
|
27
|
-
export declare const AtomicIcon: React.FC<IconProps>;
|
|
28
|
-
/**
|
|
29
|
-
* Re-export types with Atomic naming convention
|
|
30
|
-
*/
|
|
31
|
-
export type AtomicIconProps = IconProps;
|
|
32
|
-
export type AtomicIconSize = IconSize;
|
|
33
|
-
export type AtomicIconColor = IconColor;
|
|
34
|
-
export type AtomicIconName = IconName;
|
package/dist/index.d.ts
DELETED
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @umituz/react-native-design-system - Public API
|
|
3
|
-
*
|
|
4
|
-
* Universal UI component library for React Native apps
|
|
5
|
-
* Domain-Driven Design (DDD) Architecture
|
|
6
|
-
*
|
|
7
|
-
* This is the SINGLE SOURCE OF TRUTH for all UI components.
|
|
8
|
-
* ALL imports from the design system MUST go through this file.
|
|
9
|
-
*
|
|
10
|
-
* Architecture:
|
|
11
|
-
* - presentation/atoms: Primitive UI components (AtomicButton, AtomicText, etc.)
|
|
12
|
-
* - presentation/molecules: Composite components (SearchBar, ListItem, etc.)
|
|
13
|
-
* - presentation/organisms: Complex patterns (ScreenLayout, AppHeader, FormContainer)
|
|
14
|
-
* - presentation/tokens: Design tokens (colors, typography, spacing, etc.)
|
|
15
|
-
* - presentation/utils: Utility functions and helpers
|
|
16
|
-
*
|
|
17
|
-
* Usage:
|
|
18
|
-
* import { AtomicButton, AtomicFilter, AtomicTouchable, SearchBar, STATIC_TOKENS } from '@umituz/react-native-design-system';
|
|
19
|
-
*/
|
|
20
|
-
export { AtomicButton, type AtomicButtonProps, type ButtonVariant, type ButtonSize, } from './presentation/atoms/AtomicButton';
|
|
21
|
-
export { AtomicText, type AtomicTextProps, } from './presentation/atoms/AtomicText';
|
|
22
|
-
export { AtomicCard, type AtomicCardProps, type AtomicCardVariant, type AtomicCardPadding, } from './presentation/atoms/AtomicCard';
|
|
23
|
-
export { AtomicInput, type AtomicInputProps, type AtomicInputVariant, type AtomicInputState, type AtomicInputSize, } from './presentation/atoms/AtomicInput';
|
|
24
|
-
export { AtomicNumberInput, type AtomicNumberInputProps, } from './presentation/atoms/AtomicNumberInput';
|
|
25
|
-
export { AtomicSwitch, type AtomicSwitchProps, } from './presentation/atoms/AtomicSwitch';
|
|
26
|
-
export { AtomicIcon, type AtomicIconProps, type AtomicIconSize, type AtomicIconColor, type AtomicIconName, } from './presentation/atoms/AtomicIcon';
|
|
27
|
-
export { AtomicFormError, type AtomicFormErrorProps, } from './presentation/atoms/AtomicFormError';
|
|
28
|
-
export { AtomicDatePicker, type AtomicDatePickerProps, } from './presentation/atoms/AtomicDatePicker';
|
|
29
|
-
export { AtomicPicker, type AtomicPickerProps, type PickerOption, type PickerSize, } from './presentation/atoms/AtomicPicker';
|
|
30
|
-
export { AtomicTextArea, type AtomicTextAreaProps, } from './presentation/atoms/AtomicTextArea';
|
|
31
|
-
export { AtomicBadge, type AtomicBadgeProps, } from './presentation/atoms/AtomicBadge';
|
|
32
|
-
export { AtomicProgress, type AtomicProgressProps, } from './presentation/atoms/AtomicProgress';
|
|
33
|
-
export { AtomicDivider, type AtomicDividerProps, } from './presentation/atoms/AtomicDivider';
|
|
34
|
-
export { AtomicFab, type AtomicFabProps, type FabSize, type FabVariant, getFabVariants, } from './presentation/atoms/AtomicFab';
|
|
35
|
-
export { AtomicFilter, type AtomicFilterProps, type FilterOption, getFilterContainerStyle, getClearAllContainerStyle, getScrollContentContainerStyle, } from './presentation/atoms/AtomicFilter';
|
|
36
|
-
export { AtomicTouchable, type AtomicTouchableProps, type TouchableFeedback, type FeedbackStrength, type HitSlop, TouchablePresets, getOpacityValue, normalizeHitSlop, } from './presentation/atoms/AtomicTouchable';
|
|
37
|
-
export { AtomicSearchBar, type AtomicSearchBarProps, } from './presentation/atoms/AtomicSearchBar';
|
|
38
|
-
export { AtomicSort, type AtomicSortProps, type SortOption, type SortDirection, } from './presentation/atoms/AtomicSort';
|
|
39
|
-
export { FormField, type FormFieldProps, } from './presentation/molecules/FormField';
|
|
40
|
-
export { ListItem, type ListItemProps, } from './presentation/molecules/ListItem';
|
|
41
|
-
export { SearchBar, type SearchBarProps, } from './presentation/molecules/SearchBar';
|
|
42
|
-
export { SectionCard, } from './presentation/molecules/SectionCard';
|
|
43
|
-
export { IconContainer, } from './presentation/molecules/IconContainer';
|
|
44
|
-
export { SectionHeader, } from './presentation/molecules/SectionHeader';
|
|
45
|
-
export { EmptyState, } from './presentation/molecules/EmptyState';
|
|
46
|
-
export { GridContainer, } from './presentation/molecules/GridContainer';
|
|
47
|
-
export { SectionContainer, } from './presentation/molecules/SectionContainer';
|
|
48
|
-
export { ScreenHeader, type ScreenHeaderProps, } from './presentation/molecules/ScreenHeader';
|
|
49
|
-
export { AtomicConfirmationModal, useConfirmationModal, type AtomicConfirmationModalProps, type ConfirmationModalVariant, } from './presentation/molecules/AtomicConfirmationModal';
|
|
50
|
-
export { ScreenLayout, type ScreenLayoutProps, } from './presentation/organisms/ScreenLayout';
|
|
51
|
-
export { AppHeader, type AppHeaderProps, } from './presentation/organisms/AppHeader';
|
|
52
|
-
export { FormContainer, type FormContainerProps, } from './presentation/organisms/FormContainer';
|
|
53
|
-
export { createDesignTokens, STATIC_DESIGN_TOKENS, BASE_TOKENS, STATIC_TOKENS, withAlpha, lightColors, darkColors, getColorPalette, type DesignTokens, type ThemeMode, type ColorPalette, type BaseTokens, type Spacing, type Typography, type Borders, } from '@umituz/react-native-theme';
|
|
54
|
-
export { useAppDesignTokens } from '@umituz/react-native-theme';
|
|
55
|
-
export { useCommonStyles, } from './presentation/tokens/commonStyles';
|
|
56
|
-
export { IOS_HIG, ANDROID_MATERIAL, PLATFORM_CONSTANTS, isValidTouchTarget, getMinTouchTarget, } from './presentation/utils/platformConstants';
|
|
57
|
-
export { useResponsive, useResponsiveSizes, useDeviceType, type UseResponsiveReturn, } from './presentation/hooks/useResponsive';
|
|
58
|
-
export { getScreenDimensions, isSmallPhone, isTablet, getResponsiveLogoSize, getResponsiveInputHeight, getResponsiveHorizontalPadding, getResponsiveBottomPosition, getResponsiveFABPosition, getResponsiveModalMaxHeight, getResponsiveMinModalHeight, getResponsiveIconContainerSize, getResponsiveGridColumns, getResponsiveMaxWidth, getResponsiveFontSize, isLandscape, getKeyboardBehavior, getDeviceType, getMinTouchTargetSize, getSpacingMultiplier, getOnboardingIconMarginTop, getOnboardingIconMarginBottom, getOnboardingTitleMarginBottom, getOnboardingTextPadding, getOnboardingDescriptionMarginTop, DeviceType, } from './presentation/utils/responsive';
|
|
59
|
-
export { useDesignSystemTheme, } from '@umituz/react-native-theme';
|
|
60
|
-
export { Icon, type IconProps, type IconSize, type IconColor, type IconName, } from '@umituz/react-native-icon';
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* AtomicAvatar - Universal Avatar Component
|
|
3
|
-
*
|
|
4
|
-
* Displays user profile images with fallback to initials
|
|
5
|
-
* Theme: {{THEME_NAME}} ({{CATEGORY}} category)
|
|
6
|
-
*
|
|
7
|
-
* Atomic Design Level: ATOM
|
|
8
|
-
* Purpose: User profile image display
|
|
9
|
-
*
|
|
10
|
-
* Usage:
|
|
11
|
-
* - User profile pictures
|
|
12
|
-
* - Contact avatars
|
|
13
|
-
* - Group member avatars
|
|
14
|
-
* - Default user placeholders
|
|
15
|
-
*/
|
|
16
|
-
import React from 'react';
|
|
17
|
-
import { ViewStyle, ImageStyle } from 'react-native';
|
|
18
|
-
export interface AtomicAvatarProps {
|
|
19
|
-
/** Image source (URI or require) */
|
|
20
|
-
source?: {
|
|
21
|
-
uri: string;
|
|
22
|
-
} | number;
|
|
23
|
-
/** User's name for fallback initials */
|
|
24
|
-
name?: string;
|
|
25
|
-
/** Size of the avatar */
|
|
26
|
-
size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'xxl';
|
|
27
|
-
/** Custom size in pixels */
|
|
28
|
-
customSize?: number;
|
|
29
|
-
/** Background color for fallback */
|
|
30
|
-
backgroundColor?: string;
|
|
31
|
-
/** Text color for initials */
|
|
32
|
-
textColor?: string;
|
|
33
|
-
/** Border radius (default: circular) */
|
|
34
|
-
borderRadius?: number;
|
|
35
|
-
/** Border width */
|
|
36
|
-
borderWidth?: number;
|
|
37
|
-
/** Border color */
|
|
38
|
-
borderColor?: string;
|
|
39
|
-
/** Style overrides */
|
|
40
|
-
style?: ViewStyle | ViewStyle[];
|
|
41
|
-
/** Image style overrides */
|
|
42
|
-
imageStyle?: ImageStyle | ImageStyle[];
|
|
43
|
-
/** Test ID for testing */
|
|
44
|
-
testID?: string;
|
|
45
|
-
}
|
|
46
|
-
export declare const AtomicAvatar: React.FC<AtomicAvatarProps>;
|
|
47
|
-
export default AtomicAvatar;
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* AtomicAvatarGroup - Universal Avatar Group Component
|
|
3
|
-
*
|
|
4
|
-
* Displays multiple avatars in a group with overlap and overflow handling
|
|
5
|
-
* Theme: {{THEME_NAME}} ({{CATEGORY}} category)
|
|
6
|
-
*
|
|
7
|
-
* Atomic Design Level: ATOM
|
|
8
|
-
* Purpose: Multiple avatar display with group behavior
|
|
9
|
-
*
|
|
10
|
-
* Usage:
|
|
11
|
-
* - Team member avatars
|
|
12
|
-
* - Group chat participants
|
|
13
|
-
* - Project collaborators
|
|
14
|
-
* - Event attendees
|
|
15
|
-
* - Social connections
|
|
16
|
-
*/
|
|
17
|
-
import React from 'react';
|
|
18
|
-
import { ViewStyle } from 'react-native';
|
|
19
|
-
export interface AvatarData {
|
|
20
|
-
id: string;
|
|
21
|
-
source?: {
|
|
22
|
-
uri: string;
|
|
23
|
-
} | number;
|
|
24
|
-
name?: string;
|
|
25
|
-
backgroundColor?: string;
|
|
26
|
-
textColor?: string;
|
|
27
|
-
}
|
|
28
|
-
export interface AtomicAvatarGroupProps {
|
|
29
|
-
/** Array of avatar data */
|
|
30
|
-
avatars: AvatarData[];
|
|
31
|
-
/** Maximum number of avatars to show */
|
|
32
|
-
maxVisible?: number;
|
|
33
|
-
/** Avatar size */
|
|
34
|
-
size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'xxl';
|
|
35
|
-
/** Custom avatar size */
|
|
36
|
-
customSize?: number;
|
|
37
|
-
/** Spacing between avatars */
|
|
38
|
-
spacing?: number;
|
|
39
|
-
/** Whether to show overflow count */
|
|
40
|
-
showOverflow?: boolean;
|
|
41
|
-
/** Overflow count background color */
|
|
42
|
-
overflowBackgroundColor?: string;
|
|
43
|
-
/** Overflow count text color */
|
|
44
|
-
overflowTextColor?: string;
|
|
45
|
-
/** Avatar border width */
|
|
46
|
-
borderWidth?: number;
|
|
47
|
-
/** Avatar border color */
|
|
48
|
-
borderColor?: string;
|
|
49
|
-
/** Style overrides */
|
|
50
|
-
style?: ViewStyle;
|
|
51
|
-
/** Test ID for testing */
|
|
52
|
-
testID?: string;
|
|
53
|
-
}
|
|
54
|
-
export declare const AtomicAvatarGroup: React.FC<AtomicAvatarGroupProps>;
|
|
55
|
-
export default AtomicAvatarGroup;
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* AtomicBadge - Universal Badge Component
|
|
3
|
-
*
|
|
4
|
-
* Provides consistent badge/notification count display
|
|
5
|
-
* Theme: {{THEME_NAME}} ({{CATEGORY}} category)
|
|
6
|
-
*
|
|
7
|
-
* Atomic Design Level: ATOM
|
|
8
|
-
* Purpose: Display counts, notifications, status indicators
|
|
9
|
-
*
|
|
10
|
-
* Usage:
|
|
11
|
-
* - Notification counts
|
|
12
|
-
* - Cart item counts
|
|
13
|
-
* - Status indicators
|
|
14
|
-
* - Achievement badges
|
|
15
|
-
*/
|
|
16
|
-
import React from 'react';
|
|
17
|
-
import { StyleProp, ViewStyle, TextStyle } from 'react-native';
|
|
18
|
-
export interface AtomicBadgeProps {
|
|
19
|
-
/** Badge content (number, text, or custom element) */
|
|
20
|
-
children: React.ReactNode;
|
|
21
|
-
/** Size variant */
|
|
22
|
-
size?: 'xs' | 'sm' | 'md' | 'lg';
|
|
23
|
-
/** Color variant */
|
|
24
|
-
variant?: 'primary' | 'secondary' | 'success' | 'warning' | 'error' | 'info';
|
|
25
|
-
/** Shape variant */
|
|
26
|
-
shape?: 'circle' | 'rounded' | 'square';
|
|
27
|
-
/** Maximum value to display (e.g., 99+) */
|
|
28
|
-
max?: number;
|
|
29
|
-
/** Show badge even when count is 0 */
|
|
30
|
-
showZero?: boolean;
|
|
31
|
-
/** Container style override */
|
|
32
|
-
style?: StyleProp<ViewStyle>;
|
|
33
|
-
/** Text style override */
|
|
34
|
-
textStyle?: StyleProp<TextStyle>;
|
|
35
|
-
/** Minimum width */
|
|
36
|
-
minWidth?: number;
|
|
37
|
-
/** Maximum width */
|
|
38
|
-
maxWidth?: number;
|
|
39
|
-
}
|
|
40
|
-
export declare const AtomicBadge: React.FC<AtomicBadgeProps>;
|
|
41
|
-
export default AtomicBadge;
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { StyleProp, ViewStyle, TextStyle } from 'react-native';
|
|
3
|
-
import type { IconName } from '@umituz/react-native-icon';
|
|
4
|
-
export type ButtonVariant = 'primary' | 'secondary' | 'outline' | 'text' | 'danger';
|
|
5
|
-
export type ButtonSize = 'sm' | 'md' | 'lg';
|
|
6
|
-
export interface AtomicButtonProps {
|
|
7
|
-
title?: string;
|
|
8
|
-
children?: React.ReactNode;
|
|
9
|
-
onPress: () => void;
|
|
10
|
-
variant?: ButtonVariant;
|
|
11
|
-
size?: ButtonSize;
|
|
12
|
-
disabled?: boolean;
|
|
13
|
-
icon?: IconName;
|
|
14
|
-
fullWidth?: boolean;
|
|
15
|
-
style?: StyleProp<ViewStyle>;
|
|
16
|
-
textStyle?: StyleProp<TextStyle>;
|
|
17
|
-
testID?: string;
|
|
18
|
-
}
|
|
19
|
-
export declare const AtomicButton: React.FC<AtomicButtonProps>;
|
|
20
|
-
export type { AtomicButtonProps as ButtonProps };
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { StyleProp, ViewStyle } from 'react-native';
|
|
3
|
-
export type AtomicCardVariant = 'flat' | 'elevated' | 'outlined';
|
|
4
|
-
export type AtomicCardPadding = 'none' | 'sm' | 'md' | 'lg' | 'xl';
|
|
5
|
-
export interface AtomicCardProps {
|
|
6
|
-
variant?: AtomicCardVariant;
|
|
7
|
-
padding?: AtomicCardPadding;
|
|
8
|
-
onPress?: () => void;
|
|
9
|
-
disabled?: boolean;
|
|
10
|
-
style?: StyleProp<ViewStyle>;
|
|
11
|
-
children?: React.ReactNode;
|
|
12
|
-
testID?: string;
|
|
13
|
-
}
|
|
14
|
-
export declare const AtomicCard: React.FC<AtomicCardProps>;
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* AtomicChip - Universal Chip/Tag Component
|
|
3
|
-
*
|
|
4
|
-
* Displays small tags, labels, or status indicators
|
|
5
|
-
* Theme: {{THEME_NAME}} ({{CATEGORY}} category)
|
|
6
|
-
*
|
|
7
|
-
* Atomic Design Level: ATOM
|
|
8
|
-
* Purpose: Tag and label display
|
|
9
|
-
*
|
|
10
|
-
* Usage:
|
|
11
|
-
* - Category tags
|
|
12
|
-
* - Status indicators
|
|
13
|
-
* - Filter chips
|
|
14
|
-
* - Skill labels
|
|
15
|
-
* - Badge displays
|
|
16
|
-
*/
|
|
17
|
-
import React from 'react';
|
|
18
|
-
import { ViewStyle } from 'react-native';
|
|
19
|
-
export interface AtomicChipProps {
|
|
20
|
-
/** Text content of the chip */
|
|
21
|
-
children: React.ReactNode;
|
|
22
|
-
/** Chip variant */
|
|
23
|
-
variant?: 'filled' | 'outlined' | 'soft';
|
|
24
|
-
/** Chip size */
|
|
25
|
-
size?: 'sm' | 'md' | 'lg';
|
|
26
|
-
/** Chip color theme */
|
|
27
|
-
color?: 'primary' | 'secondary' | 'success' | 'warning' | 'error' | 'info';
|
|
28
|
-
/** Custom background color */
|
|
29
|
-
backgroundColor?: string;
|
|
30
|
-
/** Custom text color */
|
|
31
|
-
textColor?: string;
|
|
32
|
-
/** Custom border color */
|
|
33
|
-
borderColor?: string;
|
|
34
|
-
/** Leading icon */
|
|
35
|
-
leadingIcon?: string;
|
|
36
|
-
/** Trailing icon */
|
|
37
|
-
trailingIcon?: string;
|
|
38
|
-
/** Whether the chip is clickable */
|
|
39
|
-
clickable?: boolean;
|
|
40
|
-
/** Click handler */
|
|
41
|
-
onPress?: () => void;
|
|
42
|
-
/** Whether the chip is selected */
|
|
43
|
-
selected?: boolean;
|
|
44
|
-
/** Whether the chip is disabled */
|
|
45
|
-
disabled?: boolean;
|
|
46
|
-
/** Style overrides */
|
|
47
|
-
style?: ViewStyle;
|
|
48
|
-
/** Test ID for testing */
|
|
49
|
-
testID?: string;
|
|
50
|
-
}
|
|
51
|
-
export declare const AtomicChip: React.FC<AtomicChipProps>;
|
|
52
|
-
export default AtomicChip;
|
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* AtomicDatePicker Component
|
|
3
|
-
*
|
|
4
|
-
* A reusable date picker component that wraps the native date picker
|
|
5
|
-
* with consistent styling and behavior across platforms.
|
|
6
|
-
*
|
|
7
|
-
* Features:
|
|
8
|
-
* - Platform-specific native pickers (iOS wheel, Android dialog)
|
|
9
|
-
* - Consistent styling with design tokens
|
|
10
|
-
* - Locale-aware date/time formatting (native Date methods)
|
|
11
|
-
* - Timezone-aware (respects device timezone)
|
|
12
|
-
* - Automatic language integration (native locale support)
|
|
13
|
-
* - Optional label and error states
|
|
14
|
-
* - Minimum and maximum date constraints
|
|
15
|
-
* - Disabled state support
|
|
16
|
-
* - Theme-aware styling
|
|
17
|
-
* - Proper keyboard avoidance on iOS
|
|
18
|
-
*
|
|
19
|
-
* Usage:
|
|
20
|
-
* ```tsx
|
|
21
|
-
* const [selectedDate, setSelectedDate] = useState(new Date());
|
|
22
|
-
*
|
|
23
|
-
* <AtomicDatePicker
|
|
24
|
-
* value={selectedDate}
|
|
25
|
-
* onChange={setSelectedDate}
|
|
26
|
-
* label="Birth Date"
|
|
27
|
-
* minimumDate={new Date(1900, 0, 1)}
|
|
28
|
-
* maximumDate={new Date()}
|
|
29
|
-
* />
|
|
30
|
-
* ```
|
|
31
|
-
*
|
|
32
|
-
* Platform Behavior:
|
|
33
|
-
* - iOS: Opens modal with spinner wheel, requires "Done" button
|
|
34
|
-
* - Android: Opens native dialog, auto-closes on selection
|
|
35
|
-
*
|
|
36
|
-
* @module AtomicDatePicker
|
|
37
|
-
*/
|
|
38
|
-
import React from 'react';
|
|
39
|
-
/**
|
|
40
|
-
* Props for AtomicDatePicker component
|
|
41
|
-
*/
|
|
42
|
-
export interface AtomicDatePickerProps {
|
|
43
|
-
/** Selected date value */
|
|
44
|
-
value: Date;
|
|
45
|
-
/** Callback when date changes */
|
|
46
|
-
onChange: (date: Date) => void;
|
|
47
|
-
/** Optional label displayed above picker */
|
|
48
|
-
label?: string;
|
|
49
|
-
/** Optional error message displayed below picker */
|
|
50
|
-
error?: string;
|
|
51
|
-
/** Disable picker interaction */
|
|
52
|
-
disabled?: boolean;
|
|
53
|
-
/** Minimum selectable date */
|
|
54
|
-
minimumDate?: Date;
|
|
55
|
-
/** Maximum selectable date */
|
|
56
|
-
maximumDate?: Date;
|
|
57
|
-
/** Picker mode - date, time, or datetime (iOS only) */
|
|
58
|
-
mode?: 'date' | 'time' | 'datetime';
|
|
59
|
-
/** Placeholder text when no value selected */
|
|
60
|
-
placeholder?: string;
|
|
61
|
-
/** Optional test ID for E2E testing */
|
|
62
|
-
testID?: string;
|
|
63
|
-
}
|
|
64
|
-
/**
|
|
65
|
-
* AtomicDatePicker - Universal date/time picker component
|
|
66
|
-
*
|
|
67
|
-
* Wraps @react-native-community/datetimepicker with:
|
|
68
|
-
* - Theme integration
|
|
69
|
-
* - Platform-specific modal handling
|
|
70
|
-
* - Error states
|
|
71
|
-
* - Disabled states
|
|
72
|
-
* - Responsive sizing
|
|
73
|
-
*/
|
|
74
|
-
export declare const AtomicDatePicker: React.FC<AtomicDatePickerProps>;
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* AtomicDivider - Universal Divider Component
|
|
3
|
-
*
|
|
4
|
-
* Displays horizontal or vertical dividers for content separation
|
|
5
|
-
* Theme: {{THEME_NAME}} ({{CATEGORY}} category)
|
|
6
|
-
*
|
|
7
|
-
* Atomic Design Level: ATOM
|
|
8
|
-
* Purpose: Content separation and visual hierarchy
|
|
9
|
-
*
|
|
10
|
-
* Usage:
|
|
11
|
-
* - Section separators
|
|
12
|
-
* - List item dividers
|
|
13
|
-
* - Card separators
|
|
14
|
-
* - Menu dividers
|
|
15
|
-
* - Form field separators
|
|
16
|
-
*/
|
|
17
|
-
import React from 'react';
|
|
18
|
-
import { ViewStyle } from 'react-native';
|
|
19
|
-
export interface AtomicDividerProps {
|
|
20
|
-
/** Divider orientation */
|
|
21
|
-
orientation?: 'horizontal' | 'vertical';
|
|
22
|
-
/** Divider thickness */
|
|
23
|
-
thickness?: 'thin' | 'medium' | 'thick';
|
|
24
|
-
/** Divider color */
|
|
25
|
-
color?: string;
|
|
26
|
-
/** Divider length (for horizontal: width, for vertical: height) */
|
|
27
|
-
length?: number | string;
|
|
28
|
-
/** Margin around the divider */
|
|
29
|
-
margin?: number;
|
|
30
|
-
/** Margin top */
|
|
31
|
-
marginTop?: number;
|
|
32
|
-
/** Margin bottom */
|
|
33
|
-
marginBottom?: number;
|
|
34
|
-
/** Margin left */
|
|
35
|
-
marginLeft?: number;
|
|
36
|
-
/** Margin right */
|
|
37
|
-
marginRight?: number;
|
|
38
|
-
/** Style overrides */
|
|
39
|
-
style?: ViewStyle;
|
|
40
|
-
/** Test ID for testing */
|
|
41
|
-
testID?: string;
|
|
42
|
-
}
|
|
43
|
-
export declare const AtomicDivider: React.FC<AtomicDividerProps>;
|
|
44
|
-
export default AtomicDivider;
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { AtomicFabProps } from './fab/types';
|
|
3
|
-
import { FAB_SIZES, getFabVariants, getFabIconSize, getFabBorder } from './fab/styles/fabStyles';
|
|
4
|
-
export type { FabSize, FabVariant, FabVariantConfig, FabSizeConfig, AtomicFabProps } from './fab/types';
|
|
5
|
-
export { FAB_SIZES, getFabVariants, getFabIconSize, getFabBorder };
|
|
6
|
-
/**
|
|
7
|
-
* AtomicFab - Floating Action Button Component
|
|
8
|
-
*
|
|
9
|
-
* A Material Design 3 compliant FAB component for primary actions.
|
|
10
|
-
* Follows CLAUDE.md standards for responsive positioning.
|
|
11
|
-
*
|
|
12
|
-
* @example
|
|
13
|
-
* ```tsx
|
|
14
|
-
* // IMPORTANT: FAB must be used at screen level, NOT inside ScrollView
|
|
15
|
-
* <ScreenLayout>
|
|
16
|
-
* <ScrollView>
|
|
17
|
-
* {/* Your content *\/}
|
|
18
|
-
* </ScrollView>
|
|
19
|
-
* <AtomicFab
|
|
20
|
-
* icon="add"
|
|
21
|
-
* onPress={handleAddItem}
|
|
22
|
-
* variant="primary"
|
|
23
|
-
* size="md"
|
|
24
|
-
* />
|
|
25
|
-
* </ScreenLayout>
|
|
26
|
-
* ```
|
|
27
|
-
*
|
|
28
|
-
* Features:
|
|
29
|
-
* - Material Design 3 sizes (sm: 40px, md: 56px, lg: 72px)
|
|
30
|
-
* - Three variants: primary, secondary, surface
|
|
31
|
-
* - Responsive positioning (above tab bar, safe area aware)
|
|
32
|
-
* - Disabled state with opacity
|
|
33
|
-
* - Theme-aware colors from design tokens
|
|
34
|
-
* - Border for depth (no shadows per CLAUDE.md)
|
|
35
|
-
*/
|
|
36
|
-
export declare const AtomicFab: React.FC<AtomicFabProps>;
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { AtomicFilterProps } from './filter/types';
|
|
3
|
-
export type { FilterOption, AtomicFilterProps } from './filter/types';
|
|
4
|
-
export { getFilterContainerStyle, getClearAllContainerStyle, getScrollContentContainerStyle, } from './filter/styles/filterStyles';
|
|
5
|
-
/**
|
|
6
|
-
* AtomicFilter - Horizontal Filter Chip Component
|
|
7
|
-
*
|
|
8
|
-
* A Material Design 3 compliant filter component using chip selection.
|
|
9
|
-
* Supports single and multi-select modes with "Clear All" functionality.
|
|
10
|
-
*
|
|
11
|
-
* @example
|
|
12
|
-
* ```tsx
|
|
13
|
-
* const [selectedFilters, setSelectedFilters] = useState<string[]>([]);
|
|
14
|
-
*
|
|
15
|
-
* <AtomicFilter
|
|
16
|
-
* options={[
|
|
17
|
-
* { id: 'active', label: 'Active', icon: 'check-circle' },
|
|
18
|
-
* { id: 'completed', label: 'Completed', icon: 'check' },
|
|
19
|
-
* { id: 'pending', label: 'Pending', icon: 'clock' },
|
|
20
|
-
* ]}
|
|
21
|
-
* selectedIds={selectedFilters}
|
|
22
|
-
* onSelectionChange={setSelectedFilters}
|
|
23
|
-
* multiSelect={true}
|
|
24
|
-
* showClearAll={true}
|
|
25
|
-
* />
|
|
26
|
-
* ```
|
|
27
|
-
*
|
|
28
|
-
* Features:
|
|
29
|
-
* - Horizontal scrollable filter chips
|
|
30
|
-
* - Single/Multi-select modes
|
|
31
|
-
* - Clear all button (when filters active)
|
|
32
|
-
* - Theme-aware colors from design tokens
|
|
33
|
-
* - Icon support per filter option
|
|
34
|
-
* - Fully controlled component
|
|
35
|
-
*/
|
|
36
|
-
export declare const AtomicFilter: React.FC<AtomicFilterProps>;
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* AtomicFormError - Universal Form Error Component
|
|
3
|
-
*
|
|
4
|
-
* Provides consistent error message display for forms
|
|
5
|
-
* Theme: {{THEME_NAME}} ({{CATEGORY}} category)
|
|
6
|
-
*
|
|
7
|
-
* Atomic Design Level: ATOM
|
|
8
|
-
* Purpose: Display validation error messages
|
|
9
|
-
*
|
|
10
|
-
* Usage:
|
|
11
|
-
* - Form field validation errors
|
|
12
|
-
* - Global form error messages
|
|
13
|
-
* - API error display
|
|
14
|
-
* - Input validation feedback
|
|
15
|
-
*/
|
|
16
|
-
import React from 'react';
|
|
17
|
-
import { StyleProp, ViewStyle, TextStyle } from 'react-native';
|
|
18
|
-
export interface AtomicFormErrorProps {
|
|
19
|
-
/** Error message to display */
|
|
20
|
-
message: string | null | undefined;
|
|
21
|
-
/** Error display variant */
|
|
22
|
-
variant?: 'global' | 'field';
|
|
23
|
-
/** Custom container style */
|
|
24
|
-
style?: StyleProp<ViewStyle>;
|
|
25
|
-
/** Custom text style */
|
|
26
|
-
textStyle?: StyleProp<TextStyle>;
|
|
27
|
-
}
|
|
28
|
-
export declare const AtomicFormError: React.FC<AtomicFormErrorProps>;
|
|
29
|
-
export default AtomicFormError;
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* AtomicIcon - Atomic Design System Icon Component
|
|
3
|
-
*
|
|
4
|
-
* Wrapper for the universal Icon component from @domains/icons
|
|
5
|
-
* Provides backward compatibility with AtomicIcon naming convention
|
|
6
|
-
* while leveraging the full power of the icons domain architecture.
|
|
7
|
-
*/
|
|
8
|
-
import React from 'react';
|
|
9
|
-
import type { IconProps, IconSize, IconColor, IconName } from '@umituz/react-native-icon';
|
|
10
|
-
/**
|
|
11
|
-
* AtomicIcon Component
|
|
12
|
-
*
|
|
13
|
-
* @example
|
|
14
|
-
* ```tsx
|
|
15
|
-
* import { AtomicIcon } from '@umituz/react-native-design-system';
|
|
16
|
-
*
|
|
17
|
-
* // Basic usage
|
|
18
|
-
* <AtomicIcon name="Settings" size="md" color="primary" />
|
|
19
|
-
*
|
|
20
|
-
* // Custom size and color
|
|
21
|
-
* <AtomicIcon name="Heart" customSize={32} customColor="#FF0000" />
|
|
22
|
-
*
|
|
23
|
-
* // With background
|
|
24
|
-
* <AtomicIcon name="Info" size="lg" withBackground backgroundColor="#667eea" />
|
|
25
|
-
* ```
|
|
26
|
-
*/
|
|
27
|
-
export declare const AtomicIcon: React.FC<IconProps>;
|
|
28
|
-
/**
|
|
29
|
-
* Re-export types with Atomic naming convention
|
|
30
|
-
*/
|
|
31
|
-
export type AtomicIconProps = IconProps;
|
|
32
|
-
export type AtomicIconSize = IconSize;
|
|
33
|
-
export type AtomicIconColor = IconColor;
|
|
34
|
-
export type AtomicIconName = IconName;
|