@umituz/react-native-design-system 1.5.0 → 1.7.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/lib/index.d.ts +2 -4
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +17 -17
- package/lib/index.js.map +1 -1
- package/lib/presentation/atoms/AtomicButton.d.ts +1 -1
- package/lib/presentation/atoms/AtomicButton.d.ts.map +1 -1
- package/lib/presentation/atoms/AtomicButton.js +1 -1
- package/lib/presentation/atoms/AtomicButton.js.map +1 -1
- package/lib/presentation/atoms/AtomicFormError.js +1 -1
- package/lib/presentation/atoms/AtomicFormError.js.map +1 -1
- package/lib/presentation/atoms/AtomicIcon.d.ts +2 -3
- package/lib/presentation/atoms/AtomicIcon.d.ts.map +1 -1
- package/lib/presentation/atoms/AtomicIcon.js +1 -1
- package/lib/presentation/atoms/AtomicIcon.js.map +1 -1
- package/lib/presentation/atoms/fab/styles/fabStyles.d.ts +1 -1
- package/lib/presentation/atoms/fab/styles/fabStyles.d.ts.map +1 -1
- package/lib/presentation/atoms/index.d.ts +1 -1
- package/lib/presentation/atoms/picker/styles/pickerStyles.d.ts +4 -15
- package/lib/presentation/atoms/picker/styles/pickerStyles.d.ts.map +1 -1
- package/lib/presentation/atoms/picker/styles/pickerStyles.js.map +1 -1
- package/lib/presentation/hooks/useAppDesignTokens.d.ts +6 -27
- package/lib/presentation/hooks/useAppDesignTokens.d.ts.map +1 -1
- package/lib/presentation/hooks/useAppDesignTokens.js +6 -32
- package/lib/presentation/hooks/useAppDesignTokens.js.map +1 -1
- package/lib/presentation/molecules/confirmation-modal/styles/confirmationModalStyles.d.ts +1 -1
- package/lib/presentation/molecules/confirmation-modal/styles/confirmationModalStyles.d.ts.map +1 -1
- package/lib/presentation/organisms/AppHeader.d.ts +3 -2
- package/lib/presentation/organisms/AppHeader.d.ts.map +1 -1
- package/lib/presentation/organisms/AppHeader.js.map +1 -1
- package/package.json +13 -3
- package/src/index.ts +34 -29
- package/src/presentation/atoms/AtomicBadge.tsx +1 -1
- package/src/presentation/atoms/AtomicButton.tsx +2 -2
- package/src/presentation/atoms/AtomicFormError.tsx +1 -1
- package/src/presentation/atoms/AtomicIcon.tsx +3 -4
- package/src/presentation/atoms/fab/styles/fabStyles.ts +1 -1
- package/src/presentation/atoms/picker/styles/pickerStyles.ts +25 -5
- package/src/presentation/hooks/useAppDesignTokens.ts +6 -33
- package/src/presentation/molecules/confirmation-modal/styles/confirmationModalStyles.ts +1 -1
- package/src/presentation/organisms/AppHeader.tsx +3 -2
- package/lib/domains/icons/domain/config/IconLibraryConfig.d.ts +0 -91
- package/lib/domains/icons/domain/config/IconLibraryConfig.d.ts.map +0 -1
- package/lib/domains/icons/domain/config/IconLibraryConfig.js +0 -85
- package/lib/domains/icons/domain/config/IconLibraryConfig.js.map +0 -1
- package/lib/domains/icons/domain/entities/Icon.d.ts +0 -111
- package/lib/domains/icons/domain/entities/Icon.d.ts.map +0 -1
- package/lib/domains/icons/domain/entities/Icon.js +0 -87
- package/lib/domains/icons/domain/entities/Icon.js.map +0 -1
- package/lib/domains/icons/domain/interfaces/IIconAdapter.d.ts +0 -114
- package/lib/domains/icons/domain/interfaces/IIconAdapter.d.ts.map +0 -1
- package/lib/domains/icons/domain/interfaces/IIconAdapter.js +0 -17
- package/lib/domains/icons/domain/interfaces/IIconAdapter.js.map +0 -1
- package/lib/domains/icons/index.d.ts +0 -84
- package/lib/domains/icons/index.d.ts.map +0 -1
- package/lib/domains/icons/index.js +0 -89
- package/lib/domains/icons/index.js.map +0 -1
- package/lib/domains/icons/infrastructure/adapters/LucideAdapter.d.ts +0 -24
- package/lib/domains/icons/infrastructure/adapters/LucideAdapter.d.ts.map +0 -1
- package/lib/domains/icons/infrastructure/adapters/LucideAdapter.js +0 -85
- package/lib/domains/icons/infrastructure/adapters/LucideAdapter.js.map +0 -1
- package/lib/domains/icons/infrastructure/registries/ExpoIconRegistry.d.ts +0 -23
- package/lib/domains/icons/infrastructure/registries/ExpoIconRegistry.d.ts.map +0 -1
- package/lib/domains/icons/infrastructure/registries/ExpoIconRegistry.js +0 -178
- package/lib/domains/icons/infrastructure/registries/ExpoIconRegistry.js.map +0 -1
- package/lib/domains/icons/presentation/components/Icon.d.ts +0 -42
- package/lib/domains/icons/presentation/components/Icon.d.ts.map +0 -1
- package/lib/domains/icons/presentation/components/Icon.js +0 -86
- package/lib/domains/icons/presentation/components/Icon.js.map +0 -1
- package/lib/domains/icons/presentation/hooks/useIconLibrary.d.ts +0 -38
- package/lib/domains/icons/presentation/hooks/useIconLibrary.d.ts.map +0 -1
- package/lib/domains/icons/presentation/hooks/useIconLibrary.js +0 -114
- package/lib/domains/icons/presentation/hooks/useIconLibrary.js.map +0 -1
- package/lib/infrastructure/theme/globalThemeStore.d.ts +0 -42
- package/lib/infrastructure/theme/globalThemeStore.d.ts.map +0 -1
- package/lib/infrastructure/theme/globalThemeStore.js +0 -38
- package/lib/infrastructure/theme/globalThemeStore.js.map +0 -1
- package/lib/presentation/tokens/AppDesignTokens.d.ts +0 -14
- package/lib/presentation/tokens/AppDesignTokens.d.ts.map +0 -1
- package/lib/presentation/tokens/AppDesignTokens.js +0 -23
- package/lib/presentation/tokens/AppDesignTokens.js.map +0 -1
- package/lib/presentation/tokens/core/BaseTokens.d.ts +0 -312
- package/lib/presentation/tokens/core/BaseTokens.d.ts.map +0 -1
- package/lib/presentation/tokens/core/BaseTokens.js +0 -304
- package/lib/presentation/tokens/core/BaseTokens.js.map +0 -1
- package/lib/presentation/tokens/core/ColorPalette.d.ts +0 -216
- package/lib/presentation/tokens/core/ColorPalette.d.ts.map +0 -1
- package/lib/presentation/tokens/core/ColorPalette.js +0 -330
- package/lib/presentation/tokens/core/ColorPalette.js.map +0 -1
- package/lib/presentation/tokens/core/TokenFactory.d.ts +0 -216
- package/lib/presentation/tokens/core/TokenFactory.d.ts.map +0 -1
- package/lib/presentation/tokens/core/TokenFactory.js +0 -86
- package/lib/presentation/tokens/core/TokenFactory.js.map +0 -1
- package/src/domains/icons/domain/config/IconLibraryConfig.ts +0 -93
- package/src/domains/icons/domain/entities/Icon.ts +0 -143
- package/src/domains/icons/domain/interfaces/IIconAdapter.ts +0 -147
- package/src/domains/icons/index.ts +0 -109
- package/src/domains/icons/infrastructure/adapters/LucideAdapter.ts +0 -100
- package/src/domains/icons/infrastructure/registries/ExpoIconRegistry.ts +0 -191
- package/src/domains/icons/presentation/components/Icon.tsx +0 -132
- package/src/domains/icons/presentation/hooks/useIconLibrary.ts +0 -141
- package/src/infrastructure/theme/globalThemeStore.ts +0 -51
- package/src/presentation/tokens/AppDesignTokens.ts +0 -55
- package/src/presentation/tokens/core/BaseTokens.ts +0 -372
- package/src/presentation/tokens/core/ColorPalette.ts +0 -400
- package/src/presentation/tokens/core/TokenFactory.ts +0 -118
package/src/index.ts
CHANGED
|
@@ -225,40 +225,44 @@ export {
|
|
|
225
225
|
// Import from feedback domain: import { FeedbackModal } from '@domains/feedback';
|
|
226
226
|
|
|
227
227
|
// =============================================================================
|
|
228
|
-
// TOKENS -
|
|
228
|
+
// TOKENS - MOVED TO @umituz/react-native-theme
|
|
229
229
|
// =============================================================================
|
|
230
|
+
// All design tokens (BASE_TOKENS, STATIC_TOKENS, spacing, typography, etc.)
|
|
231
|
+
// have been moved to @umituz/react-native-theme package.
|
|
232
|
+
// Import directly from theme package:
|
|
233
|
+
// import { BASE_TOKENS, STATIC_TOKENS, spacing, typography } from '@umituz/react-native-theme';
|
|
234
|
+
// import { useAppDesignTokens, createDesignTokens, lightColors, darkColors } from '@umituz/react-native-theme';
|
|
230
235
|
|
|
236
|
+
// Re-export for backward compatibility (deprecated - use @umituz/react-native-theme directly)
|
|
231
237
|
export {
|
|
232
|
-
// Static tokens (don't change with theme)
|
|
233
|
-
STATIC_TOKENS,
|
|
234
238
|
BASE_TOKENS,
|
|
235
|
-
|
|
236
|
-
|
|
239
|
+
STATIC_TOKENS,
|
|
240
|
+
spacing,
|
|
241
|
+
typography,
|
|
242
|
+
borders,
|
|
243
|
+
iconSizes,
|
|
244
|
+
opacity,
|
|
245
|
+
avatarSizes,
|
|
246
|
+
sizes,
|
|
247
|
+
type Spacing,
|
|
248
|
+
type Typography,
|
|
249
|
+
type Borders,
|
|
250
|
+
type IconSizes,
|
|
251
|
+
type Opacity,
|
|
252
|
+
type AvatarSizes,
|
|
253
|
+
type Sizes,
|
|
254
|
+
type BaseTokens,
|
|
237
255
|
createDesignTokens,
|
|
238
|
-
|
|
239
|
-
// Color utilities
|
|
256
|
+
STATIC_DESIGN_TOKENS,
|
|
240
257
|
withAlpha,
|
|
241
258
|
lightColors,
|
|
242
259
|
darkColors,
|
|
243
260
|
getColorPalette,
|
|
244
|
-
|
|
245
|
-
// Individual base tokens
|
|
246
|
-
spacing,
|
|
247
|
-
typography,
|
|
248
|
-
borders,
|
|
249
|
-
|
|
250
|
-
// Type exports
|
|
251
261
|
type DesignTokens,
|
|
252
262
|
type ThemeMode,
|
|
253
263
|
type ColorPalette,
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
type Borders,
|
|
257
|
-
type BaseTokens,
|
|
258
|
-
} from './presentation/tokens/AppDesignTokens';
|
|
259
|
-
|
|
260
|
-
// Hook for dynamic theme-aware tokens (exported separately to avoid cycle)
|
|
261
|
-
export { useAppDesignTokens } from './presentation/hooks/useAppDesignTokens';
|
|
264
|
+
useAppDesignTokens,
|
|
265
|
+
} from '@umituz/react-native-theme';
|
|
262
266
|
|
|
263
267
|
export {
|
|
264
268
|
useCommonStyles,
|
|
@@ -316,21 +320,22 @@ export {
|
|
|
316
320
|
} from './presentation/utils/responsive';
|
|
317
321
|
|
|
318
322
|
// =============================================================================
|
|
319
|
-
// THEME MANAGEMENT -
|
|
323
|
+
// THEME MANAGEMENT - MOVED TO @umituz/react-native-theme
|
|
320
324
|
// =============================================================================
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
useDesignSystemTheme,
|
|
324
|
-
} from './infrastructure/theme/globalThemeStore';
|
|
325
|
+
// useDesignSystemTheme has been moved to @umituz/react-native-theme package.
|
|
326
|
+
// Import directly: import { useDesignSystemTheme } from '@umituz/react-native-theme';
|
|
325
327
|
|
|
326
328
|
// =============================================================================
|
|
327
|
-
// ICONS DOMAIN -
|
|
329
|
+
// ICONS DOMAIN - MOVED TO @umituz/react-native-icon
|
|
328
330
|
// =============================================================================
|
|
331
|
+
// Icon components have been moved to @umituz/react-native-icon package.
|
|
332
|
+
// Import directly: import { Icon, IconName, IconSize, IconColor } from '@umituz/react-native-icon';
|
|
329
333
|
|
|
334
|
+
// Re-export for backward compatibility (deprecated - use @umituz/react-native-icon directly)
|
|
330
335
|
export {
|
|
331
336
|
Icon,
|
|
332
337
|
type IconProps,
|
|
333
338
|
type IconSize,
|
|
334
339
|
type IconColor,
|
|
335
340
|
type IconName,
|
|
336
|
-
} from '
|
|
341
|
+
} from '@umituz/react-native-icon';
|
|
@@ -18,7 +18,7 @@ import React from 'react';
|
|
|
18
18
|
import { View, StyleSheet, StyleProp, ViewStyle, TextStyle } from 'react-native';
|
|
19
19
|
import { AtomicText } from './AtomicText';
|
|
20
20
|
import { useAppDesignTokens } from '../hooks/useAppDesignTokens';
|
|
21
|
-
import type { DesignTokens } from '
|
|
21
|
+
import type { DesignTokens } from '@umituz/react-native-theme';
|
|
22
22
|
|
|
23
23
|
// =============================================================================
|
|
24
24
|
// TYPE DEFINITIONS
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { StyleSheet, StyleProp, ViewStyle, TextStyle, TouchableOpacity, View } from 'react-native';
|
|
3
3
|
import { AtomicText } from './AtomicText';
|
|
4
|
-
import { Icon } from '
|
|
4
|
+
import { Icon } from '@umituz/react-native-icon';
|
|
5
5
|
import { useAppDesignTokens } from '../hooks/useAppDesignTokens';
|
|
6
|
-
import type { IconName } from '
|
|
6
|
+
import type { IconName } from '@umituz/react-native-icon';
|
|
7
7
|
|
|
8
8
|
export type ButtonVariant = 'primary' | 'secondary' | 'outline' | 'text' | 'danger';
|
|
9
9
|
export type ButtonSize = 'sm' | 'md' | 'lg';
|
|
@@ -18,7 +18,7 @@ import React from 'react';
|
|
|
18
18
|
import { View, StyleSheet, StyleProp, ViewStyle, TextStyle } from 'react-native';
|
|
19
19
|
import { AtomicText } from './AtomicText';
|
|
20
20
|
import { useAppDesignTokens } from '../hooks/useAppDesignTokens';
|
|
21
|
-
import { withAlpha } from '
|
|
21
|
+
import { withAlpha } from '@umituz/react-native-theme';
|
|
22
22
|
|
|
23
23
|
// =============================================================================
|
|
24
24
|
// TYPE DEFINITIONS
|
|
@@ -7,9 +7,8 @@
|
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
9
|
import React from 'react';
|
|
10
|
-
import { Icon } from '
|
|
11
|
-
import type { IconProps, IconSize, IconColor } from '
|
|
12
|
-
import type { LucideIconName } from '../../domains/icons/infrastructure/adapters/LucideAdapter';
|
|
10
|
+
import { Icon } from '@umituz/react-native-icon';
|
|
11
|
+
import type { IconProps, IconSize, IconColor, IconName } from '@umituz/react-native-icon';
|
|
13
12
|
|
|
14
13
|
/**
|
|
15
14
|
* AtomicIcon Component
|
|
@@ -38,4 +37,4 @@ export const AtomicIcon: React.FC<IconProps> = (props) => {
|
|
|
38
37
|
export type AtomicIconProps = IconProps;
|
|
39
38
|
export type AtomicIconSize = IconSize;
|
|
40
39
|
export type AtomicIconColor = IconColor;
|
|
41
|
-
export type AtomicIconName =
|
|
40
|
+
export type AtomicIconName = IconName;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ViewStyle } from 'react-native';
|
|
2
2
|
import { FabVariant, FabSize, FabVariantConfig, FabSizeConfig } from '../types';
|
|
3
|
-
import type { DesignTokens } from '
|
|
3
|
+
import type { DesignTokens } from '@umituz/react-native-theme';
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
6
|
* Material Design 3 FAB size configurations
|
|
@@ -2,8 +2,7 @@ import { ViewStyle, TextStyle } from 'react-native';
|
|
|
2
2
|
import { useAppDesignTokens } from '../../../hooks/useAppDesignTokens';
|
|
3
3
|
import { PickerSize } from '../types';
|
|
4
4
|
import { IOS_HIG, getMinTouchTarget } from '../../../utils/platformConstants';
|
|
5
|
-
|
|
6
|
-
type DesignTokens = ReturnType<typeof useAppDesignTokens>;
|
|
5
|
+
import type { DesignTokens } from '@umituz/react-native-theme';
|
|
7
6
|
|
|
8
7
|
/**
|
|
9
8
|
* Picker container styles with iOS HIG compliance
|
|
@@ -50,7 +49,14 @@ export const getPickerContainerStyles = (tokens: DesignTokens) => ({
|
|
|
50
49
|
},
|
|
51
50
|
});
|
|
52
51
|
|
|
53
|
-
export const getPickerLabelStyles = (tokens: DesignTokens)
|
|
52
|
+
export const getPickerLabelStyles = (tokens: DesignTokens): {
|
|
53
|
+
base: TextStyle;
|
|
54
|
+
size: {
|
|
55
|
+
sm: TextStyle;
|
|
56
|
+
md: TextStyle;
|
|
57
|
+
lg: TextStyle;
|
|
58
|
+
};
|
|
59
|
+
} => ({
|
|
54
60
|
base: {
|
|
55
61
|
marginBottom: tokens.spacing.xs,
|
|
56
62
|
color: tokens.colors.textPrimary,
|
|
@@ -63,7 +69,14 @@ export const getPickerLabelStyles = (tokens: DesignTokens) => ({
|
|
|
63
69
|
},
|
|
64
70
|
});
|
|
65
71
|
|
|
66
|
-
export const getPickerPlaceholderStyles = (tokens: DesignTokens)
|
|
72
|
+
export const getPickerPlaceholderStyles = (tokens: DesignTokens): {
|
|
73
|
+
base: TextStyle;
|
|
74
|
+
size: {
|
|
75
|
+
sm: TextStyle;
|
|
76
|
+
md: TextStyle;
|
|
77
|
+
lg: TextStyle;
|
|
78
|
+
};
|
|
79
|
+
} => ({
|
|
67
80
|
base: {
|
|
68
81
|
color: tokens.colors.textSecondary,
|
|
69
82
|
},
|
|
@@ -74,7 +87,14 @@ export const getPickerPlaceholderStyles = (tokens: DesignTokens) => ({
|
|
|
74
87
|
},
|
|
75
88
|
});
|
|
76
89
|
|
|
77
|
-
export const getPickerValueStyles = (tokens: DesignTokens)
|
|
90
|
+
export const getPickerValueStyles = (tokens: DesignTokens): {
|
|
91
|
+
base: TextStyle;
|
|
92
|
+
size: {
|
|
93
|
+
sm: TextStyle;
|
|
94
|
+
md: TextStyle;
|
|
95
|
+
lg: TextStyle;
|
|
96
|
+
};
|
|
97
|
+
} => ({
|
|
78
98
|
base: {
|
|
79
99
|
flex: 1,
|
|
80
100
|
color: tokens.colors.textPrimary,
|
|
@@ -1,40 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* useAppDesignTokens Hook -
|
|
2
|
+
* useAppDesignTokens Hook - MOVED TO @umituz/react-native-theme
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
* ✅ Returns tokens for current theme (light/dark)
|
|
7
|
-
* ✅ Single source of truth
|
|
4
|
+
* This hook has been moved to @umituz/react-native-theme package.
|
|
5
|
+
* Re-exported here for backward compatibility.
|
|
8
6
|
*
|
|
9
|
-
* @
|
|
7
|
+
* @deprecated Import from @umituz/react-native-theme instead
|
|
10
8
|
* ```typescript
|
|
11
|
-
* import { useAppDesignTokens } from '@umituz/react-native-
|
|
12
|
-
*
|
|
13
|
-
* const MyComponent = () => {
|
|
14
|
-
* const tokens = useAppDesignTokens(); // Automatically uses current theme!
|
|
15
|
-
* return (
|
|
16
|
-
* <View style={{
|
|
17
|
-
* backgroundColor: tokens.colors.primary,
|
|
18
|
-
* padding: tokens.spacing.md
|
|
19
|
-
* }}>
|
|
20
|
-
* <Text style={tokens.typography.bodyLarge}>Hello!</Text>
|
|
21
|
-
* </View>
|
|
22
|
-
* );
|
|
23
|
-
* };
|
|
9
|
+
* import { useAppDesignTokens } from '@umituz/react-native-theme';
|
|
24
10
|
* ```
|
|
25
|
-
*
|
|
26
|
-
* How it works:
|
|
27
|
-
* - Reads themeMode from global store (useDesignSystemTheme)
|
|
28
|
-
* - App's theme store syncs to global store automatically
|
|
29
|
-
* - All components get correct tokens without prop drilling
|
|
30
|
-
* - Change theme once, everything updates!
|
|
31
11
|
*/
|
|
32
12
|
|
|
33
|
-
|
|
34
|
-
import { createDesignTokens, type DesignTokens } from '../tokens/core/TokenFactory';
|
|
35
|
-
import { useDesignSystemTheme } from '../../infrastructure/theme/globalThemeStore';
|
|
36
|
-
|
|
37
|
-
export const useAppDesignTokens = (): DesignTokens => {
|
|
38
|
-
const { themeMode } = useDesignSystemTheme();
|
|
39
|
-
return useMemo(() => createDesignTokens(themeMode), [themeMode]);
|
|
40
|
-
};
|
|
13
|
+
export { useAppDesignTokens } from '@umituz/react-native-theme';
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
|
|
7
7
|
import { ViewStyle } from 'react-native';
|
|
8
8
|
import { ConfirmationModalVariant, ConfirmationModalVariantConfig } from '../types';
|
|
9
|
-
import type { DesignTokens } from '
|
|
9
|
+
import type { DesignTokens } from '@umituz/react-native-theme';
|
|
10
10
|
|
|
11
11
|
/**
|
|
12
12
|
* Get variant configuration (icon and color only)
|
|
@@ -14,6 +14,7 @@ import { useAppDesignTokens } from '../hooks/useAppDesignTokens';
|
|
|
14
14
|
import { AtomicText } from '../atoms/AtomicText';
|
|
15
15
|
import { AtomicButton } from '../atoms/AtomicButton';
|
|
16
16
|
import { AtomicIcon } from '../atoms/AtomicIcon';
|
|
17
|
+
import type { IconName } from '@umituz/react-native-icon';
|
|
17
18
|
|
|
18
19
|
// =============================================================================
|
|
19
20
|
// TYPE DEFINITIONS
|
|
@@ -28,9 +29,9 @@ import { AtomicIcon } from '../atoms/AtomicIcon';
|
|
|
28
29
|
export interface AppHeaderProps {
|
|
29
30
|
title: string;
|
|
30
31
|
subtitle?: string;
|
|
31
|
-
leftIcon?:
|
|
32
|
+
leftIcon?: IconName; // Icon name
|
|
32
33
|
onLeftPress?: () => void;
|
|
33
|
-
rightIcon?:
|
|
34
|
+
rightIcon?: IconName; // Icon name
|
|
34
35
|
onRightPress?: () => void;
|
|
35
36
|
showShadow?: boolean;
|
|
36
37
|
backgroundColor?: string;
|
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Icon Library Configuration
|
|
3
|
-
*
|
|
4
|
-
* 🔧 SINGLE SOURCE OF TRUTH FOR ICON LIBRARY SELECTION
|
|
5
|
-
*
|
|
6
|
-
* To change icon library:
|
|
7
|
-
* 1. Update package.json with new library
|
|
8
|
-
* 2. Change CURRENT_LIBRARY below
|
|
9
|
-
* 3. Create adapter if needed (infrastructure/adapters/)
|
|
10
|
-
* 4. Done! All apps automatically use new library
|
|
11
|
-
*
|
|
12
|
-
* @example
|
|
13
|
-
* // Switch to Material Icons:
|
|
14
|
-
* export const CURRENT_LIBRARY: IconLibraryType = 'material';
|
|
15
|
-
*/
|
|
16
|
-
export type IconLibraryType = 'lucide' | 'material' | 'fontawesome' | 'ionicons';
|
|
17
|
-
/**
|
|
18
|
-
* 🔧 CHANGE THIS TO SWITCH ICON LIBRARY
|
|
19
|
-
*/
|
|
20
|
-
export declare const CURRENT_LIBRARY: IconLibraryType;
|
|
21
|
-
/**
|
|
22
|
-
* Icon Library Configuration
|
|
23
|
-
*/
|
|
24
|
-
export declare const ICON_LIBRARY_CONFIG: {
|
|
25
|
-
/**
|
|
26
|
-
* Current icon library in use
|
|
27
|
-
*/
|
|
28
|
-
readonly library: "lucide";
|
|
29
|
-
/**
|
|
30
|
-
* Default icon size (in pixels)
|
|
31
|
-
*/
|
|
32
|
-
readonly defaultSize: 24;
|
|
33
|
-
/**
|
|
34
|
-
* Default stroke width for outline icons
|
|
35
|
-
*/
|
|
36
|
-
readonly defaultStrokeWidth: 2;
|
|
37
|
-
/**
|
|
38
|
-
* Library metadata
|
|
39
|
-
*/
|
|
40
|
-
readonly libraries: {
|
|
41
|
-
readonly lucide: {
|
|
42
|
-
readonly name: "Lucide";
|
|
43
|
-
readonly package: "lucide-react-native";
|
|
44
|
-
readonly version: "^0.468.0";
|
|
45
|
-
readonly iconCount: 1639;
|
|
46
|
-
readonly type: "outline";
|
|
47
|
-
readonly adapter: "LucideAdapter";
|
|
48
|
-
};
|
|
49
|
-
readonly material: {
|
|
50
|
-
readonly name: "Material Icons";
|
|
51
|
-
readonly package: "@expo/vector-icons";
|
|
52
|
-
readonly version: "^14.0.0";
|
|
53
|
-
readonly iconCount: 2000;
|
|
54
|
-
readonly type: "filled";
|
|
55
|
-
readonly adapter: "MaterialAdapter";
|
|
56
|
-
};
|
|
57
|
-
readonly fontawesome: {
|
|
58
|
-
readonly name: "Font Awesome";
|
|
59
|
-
readonly package: "@expo/vector-icons";
|
|
60
|
-
readonly version: "^14.0.0";
|
|
61
|
-
readonly iconCount: 1500;
|
|
62
|
-
readonly type: "solid";
|
|
63
|
-
readonly adapter: "FontAwesomeAdapter";
|
|
64
|
-
};
|
|
65
|
-
readonly ionicons: {
|
|
66
|
-
readonly name: "Ionicons";
|
|
67
|
-
readonly package: "@expo/vector-icons";
|
|
68
|
-
readonly version: "^14.0.0";
|
|
69
|
-
readonly iconCount: 1300;
|
|
70
|
-
readonly type: "outline";
|
|
71
|
-
readonly adapter: "IoniconsAdapter";
|
|
72
|
-
};
|
|
73
|
-
};
|
|
74
|
-
};
|
|
75
|
-
/**
|
|
76
|
-
* Get current library metadata
|
|
77
|
-
*/
|
|
78
|
-
export declare const getCurrentLibrary: () => {
|
|
79
|
-
readonly name: "Lucide";
|
|
80
|
-
readonly package: "lucide-react-native";
|
|
81
|
-
readonly version: "^0.468.0";
|
|
82
|
-
readonly iconCount: 1639;
|
|
83
|
-
readonly type: "outline";
|
|
84
|
-
readonly adapter: "LucideAdapter";
|
|
85
|
-
};
|
|
86
|
-
/**
|
|
87
|
-
* Type-safe library check
|
|
88
|
-
* Factory uses Lucide icons only
|
|
89
|
-
*/
|
|
90
|
-
export declare const isLucideLibrary: () => boolean;
|
|
91
|
-
//# sourceMappingURL=IconLibraryConfig.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"IconLibraryConfig.d.ts","sourceRoot":"","sources":["../../../../../src/domains/icons/domain/config/IconLibraryConfig.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,UAAU,GAAG,aAAa,GAAG,UAAU,CAAC;AAEjF;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,eAA0B,CAAC;AAEzD;;GAEG;AACH,eAAO,MAAM,mBAAmB;IAC9B;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmCK,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,iBAAiB;;;;;;;CAE7B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,eAAe,eAAa,CAAC"}
|
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Icon Library Configuration
|
|
3
|
-
*
|
|
4
|
-
* 🔧 SINGLE SOURCE OF TRUTH FOR ICON LIBRARY SELECTION
|
|
5
|
-
*
|
|
6
|
-
* To change icon library:
|
|
7
|
-
* 1. Update package.json with new library
|
|
8
|
-
* 2. Change CURRENT_LIBRARY below
|
|
9
|
-
* 3. Create adapter if needed (infrastructure/adapters/)
|
|
10
|
-
* 4. Done! All apps automatically use new library
|
|
11
|
-
*
|
|
12
|
-
* @example
|
|
13
|
-
* // Switch to Material Icons:
|
|
14
|
-
* export const CURRENT_LIBRARY: IconLibraryType = 'material';
|
|
15
|
-
*/
|
|
16
|
-
/**
|
|
17
|
-
* 🔧 CHANGE THIS TO SWITCH ICON LIBRARY
|
|
18
|
-
*/
|
|
19
|
-
export const CURRENT_LIBRARY = 'lucide';
|
|
20
|
-
/**
|
|
21
|
-
* Icon Library Configuration
|
|
22
|
-
*/
|
|
23
|
-
export const ICON_LIBRARY_CONFIG = {
|
|
24
|
-
/**
|
|
25
|
-
* Current icon library in use
|
|
26
|
-
*/
|
|
27
|
-
library: CURRENT_LIBRARY,
|
|
28
|
-
/**
|
|
29
|
-
* Default icon size (in pixels)
|
|
30
|
-
*/
|
|
31
|
-
defaultSize: 24,
|
|
32
|
-
/**
|
|
33
|
-
* Default stroke width for outline icons
|
|
34
|
-
*/
|
|
35
|
-
defaultStrokeWidth: 2,
|
|
36
|
-
/**
|
|
37
|
-
* Library metadata
|
|
38
|
-
*/
|
|
39
|
-
libraries: {
|
|
40
|
-
lucide: {
|
|
41
|
-
name: 'Lucide',
|
|
42
|
-
package: 'lucide-react-native',
|
|
43
|
-
version: '^0.468.0',
|
|
44
|
-
iconCount: 1639,
|
|
45
|
-
type: 'outline',
|
|
46
|
-
adapter: 'LucideAdapter',
|
|
47
|
-
},
|
|
48
|
-
material: {
|
|
49
|
-
name: 'Material Icons',
|
|
50
|
-
package: '@expo/vector-icons',
|
|
51
|
-
version: '^14.0.0',
|
|
52
|
-
iconCount: 2000,
|
|
53
|
-
type: 'filled',
|
|
54
|
-
adapter: 'MaterialAdapter',
|
|
55
|
-
},
|
|
56
|
-
fontawesome: {
|
|
57
|
-
name: 'Font Awesome',
|
|
58
|
-
package: '@expo/vector-icons',
|
|
59
|
-
version: '^14.0.0',
|
|
60
|
-
iconCount: 1500,
|
|
61
|
-
type: 'solid',
|
|
62
|
-
adapter: 'FontAwesomeAdapter',
|
|
63
|
-
},
|
|
64
|
-
ionicons: {
|
|
65
|
-
name: 'Ionicons',
|
|
66
|
-
package: '@expo/vector-icons',
|
|
67
|
-
version: '^14.0.0',
|
|
68
|
-
iconCount: 1300,
|
|
69
|
-
type: 'outline',
|
|
70
|
-
adapter: 'IoniconsAdapter',
|
|
71
|
-
},
|
|
72
|
-
},
|
|
73
|
-
};
|
|
74
|
-
/**
|
|
75
|
-
* Get current library metadata
|
|
76
|
-
*/
|
|
77
|
-
export const getCurrentLibrary = () => {
|
|
78
|
-
return ICON_LIBRARY_CONFIG.libraries[CURRENT_LIBRARY];
|
|
79
|
-
};
|
|
80
|
-
/**
|
|
81
|
-
* Type-safe library check
|
|
82
|
-
* Factory uses Lucide icons only
|
|
83
|
-
*/
|
|
84
|
-
export const isLucideLibrary = () => true;
|
|
85
|
-
//# sourceMappingURL=IconLibraryConfig.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"IconLibraryConfig.js","sourceRoot":"","sources":["../../../../../src/domains/icons/domain/config/IconLibraryConfig.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAoB,QAAQ,CAAC;AAEzD;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC;;OAEG;IACH,OAAO,EAAE,eAAe;IAExB;;OAEG;IACH,WAAW,EAAE,EAAE;IAEf;;OAEG;IACH,kBAAkB,EAAE,CAAC;IAErB;;OAEG;IACH,SAAS,EAAE;QACT,MAAM,EAAE;YACN,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,qBAAqB;YAC9B,OAAO,EAAE,UAAU;YACnB,SAAS,EAAE,IAAI;YACf,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,eAAe;SACzB;QACD,QAAQ,EAAE;YACR,IAAI,EAAE,gBAAgB;YACtB,OAAO,EAAE,oBAAoB;YAC7B,OAAO,EAAE,SAAS;YAClB,SAAS,EAAE,IAAI;YACf,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,iBAAiB;SAC3B;QACD,WAAW,EAAE;YACX,IAAI,EAAE,cAAc;YACpB,OAAO,EAAE,oBAAoB;YAC7B,OAAO,EAAE,SAAS;YAClB,SAAS,EAAE,IAAI;YACf,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,oBAAoB;SAC9B;QACD,QAAQ,EAAE;YACR,IAAI,EAAE,UAAU;YAChB,OAAO,EAAE,oBAAoB;YAC7B,OAAO,EAAE,SAAS;YAClB,SAAS,EAAE,IAAI;YACf,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,iBAAiB;SAC3B;KACF;CACO,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAG,EAAE;IACpC,OAAO,mBAAmB,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;AACxD,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC"}
|
|
@@ -1,111 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Icons Domain - Entities
|
|
3
|
-
*
|
|
4
|
-
* Core icon types and interfaces for the App Factory.
|
|
5
|
-
* Provides unified access to Lucide icons (design-system) + Expo vector icons.
|
|
6
|
-
*
|
|
7
|
-
* @domain icons
|
|
8
|
-
* @layer domain
|
|
9
|
-
*/
|
|
10
|
-
/**
|
|
11
|
-
* Icon library types
|
|
12
|
-
* - lucide: Lucide React Native icons (already in design-system/AtomicIcon)
|
|
13
|
-
* - material: Material Design icons (@expo/vector-icons)
|
|
14
|
-
* - fontawesome: FontAwesome icons (@expo/vector-icons)
|
|
15
|
-
* - ionicons: Ionicons (@expo/vector-icons)
|
|
16
|
-
*/
|
|
17
|
-
export declare enum IconLibrary {
|
|
18
|
-
LUCIDE = "lucide",
|
|
19
|
-
MATERIAL = "material",
|
|
20
|
-
FONTAWESOME = "fontawesome",
|
|
21
|
-
IONICONS = "ionicons"
|
|
22
|
-
}
|
|
23
|
-
/**
|
|
24
|
-
* Icon category for organization
|
|
25
|
-
*/
|
|
26
|
-
export declare enum IconCategory {
|
|
27
|
-
ALL = "all",
|
|
28
|
-
NAVIGATION = "navigation",
|
|
29
|
-
ACTION = "action",
|
|
30
|
-
SOCIAL = "social",
|
|
31
|
-
COMMUNICATION = "communication",
|
|
32
|
-
MEDIA = "media",
|
|
33
|
-
BUSINESS = "business",
|
|
34
|
-
WEATHER = "weather",
|
|
35
|
-
SYMBOLS = "symbols",
|
|
36
|
-
EMOJI = "emoji"
|
|
37
|
-
}
|
|
38
|
-
/**
|
|
39
|
-
* Icon metadata for registry
|
|
40
|
-
*/
|
|
41
|
-
export interface IconMetadata {
|
|
42
|
-
name: string;
|
|
43
|
-
library: IconLibrary;
|
|
44
|
-
category: IconCategory;
|
|
45
|
-
tags: string[];
|
|
46
|
-
searchTerms: string[];
|
|
47
|
-
}
|
|
48
|
-
/**
|
|
49
|
-
* Icon registry interface
|
|
50
|
-
*/
|
|
51
|
-
export interface IIconRegistry {
|
|
52
|
-
/**
|
|
53
|
-
* Get all icons in the library
|
|
54
|
-
*/
|
|
55
|
-
getAllIcons(): IconMetadata[];
|
|
56
|
-
/**
|
|
57
|
-
* Get icons by category
|
|
58
|
-
*/
|
|
59
|
-
getIconsByCategory(category: IconCategory): IconMetadata[];
|
|
60
|
-
/**
|
|
61
|
-
* Search icons by query
|
|
62
|
-
*/
|
|
63
|
-
searchIcons(query: string): IconMetadata[];
|
|
64
|
-
/**
|
|
65
|
-
* Get icon metadata by name
|
|
66
|
-
*/
|
|
67
|
-
getIconMetadata(name: string): IconMetadata | null;
|
|
68
|
-
}
|
|
69
|
-
/**
|
|
70
|
-
* Icon picker configuration
|
|
71
|
-
*/
|
|
72
|
-
export interface IconPickerConfig {
|
|
73
|
-
libraries: IconLibrary[];
|
|
74
|
-
categories: IconCategory[];
|
|
75
|
-
showSearch: boolean;
|
|
76
|
-
multiSelect: boolean;
|
|
77
|
-
maxSelections?: number;
|
|
78
|
-
onSelect: (icons: IconMetadata[]) => void;
|
|
79
|
-
onCancel?: () => void;
|
|
80
|
-
}
|
|
81
|
-
/**
|
|
82
|
-
* Icon constants
|
|
83
|
-
*/
|
|
84
|
-
export declare const ICON_CONSTANTS: {
|
|
85
|
-
readonly DEFAULT_SIZE: 24;
|
|
86
|
-
readonly DEFAULT_COLOR: "onSurface";
|
|
87
|
-
readonly DEFAULT_LIBRARY: IconLibrary.LUCIDE;
|
|
88
|
-
readonly MAX_SEARCH_RESULTS: 50;
|
|
89
|
-
};
|
|
90
|
-
/**
|
|
91
|
-
* Icon utility functions
|
|
92
|
-
*/
|
|
93
|
-
export declare const IconUtils: {
|
|
94
|
-
/**
|
|
95
|
-
* Normalize icon name for search
|
|
96
|
-
*/
|
|
97
|
-
normalizeIconName: (name: string) => string;
|
|
98
|
-
/**
|
|
99
|
-
* Match search query against icon metadata
|
|
100
|
-
*/
|
|
101
|
-
matchesSearch: (icon: IconMetadata, query: string) => boolean;
|
|
102
|
-
/**
|
|
103
|
-
* Filter icons by category
|
|
104
|
-
*/
|
|
105
|
-
filterByCategory: (icons: IconMetadata[], category: IconCategory) => IconMetadata[];
|
|
106
|
-
/**
|
|
107
|
-
* Sort icons alphabetically
|
|
108
|
-
*/
|
|
109
|
-
sortByName: (icons: IconMetadata[]) => IconMetadata[];
|
|
110
|
-
};
|
|
111
|
-
//# sourceMappingURL=Icon.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Icon.d.ts","sourceRoot":"","sources":["../../../../../src/domains/icons/domain/entities/Icon.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH;;;;;;GAMG;AACH,oBAAY,WAAW;IACrB,MAAM,WAAW;IACjB,QAAQ,aAAa;IACrB,WAAW,gBAAgB;IAC3B,QAAQ,aAAa;CACtB;AAED;;GAEG;AACH,oBAAY,YAAY;IACtB,GAAG,QAAQ;IACX,UAAU,eAAe;IACzB,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,aAAa,kBAAkB;IAC/B,KAAK,UAAU;IACf,QAAQ,aAAa;IACrB,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,KAAK,UAAU;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,WAAW,CAAC;IACrB,QAAQ,EAAE,YAAY,CAAC;IACvB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,WAAW,IAAI,YAAY,EAAE,CAAC;IAE9B;;OAEG;IACH,kBAAkB,CAAC,QAAQ,EAAE,YAAY,GAAG,YAAY,EAAE,CAAC;IAE3D;;OAEG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,EAAE,CAAC;IAE3C;;OAEG;IACH,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAAC;CACpD;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,WAAW,EAAE,CAAC;IACzB,UAAU,EAAE,YAAY,EAAE,CAAC;IAC3B,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,CAAC,KAAK,EAAE,YAAY,EAAE,KAAK,IAAI,CAAC;IAC1C,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;CACvB;AAED;;GAEG;AACH,eAAO,MAAM,cAAc;;;;;CAKjB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,SAAS;IACpB;;OAEG;8BACuB,MAAM,KAAG,MAAM;IAIzC;;OAEG;0BACmB,YAAY,SAAS,MAAM,KAAG,OAAO;IAa3D;;OAEG;8BACuB,YAAY,EAAE,YAAY,YAAY,KAAG,YAAY,EAAE;IAOjF;;OAEG;wBACiB,YAAY,EAAE,KAAG,YAAY,EAAE;CAGpD,CAAC"}
|