@umituz/react-native-design-system 1.5.0 → 1.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (105) hide show
  1. package/lib/index.d.ts +2 -4
  2. package/lib/index.d.ts.map +1 -1
  3. package/lib/index.js +17 -17
  4. package/lib/index.js.map +1 -1
  5. package/lib/presentation/atoms/AtomicButton.d.ts +1 -1
  6. package/lib/presentation/atoms/AtomicButton.d.ts.map +1 -1
  7. package/lib/presentation/atoms/AtomicButton.js +1 -1
  8. package/lib/presentation/atoms/AtomicButton.js.map +1 -1
  9. package/lib/presentation/atoms/AtomicFormError.js +1 -1
  10. package/lib/presentation/atoms/AtomicFormError.js.map +1 -1
  11. package/lib/presentation/atoms/AtomicIcon.d.ts +2 -3
  12. package/lib/presentation/atoms/AtomicIcon.d.ts.map +1 -1
  13. package/lib/presentation/atoms/AtomicIcon.js +1 -1
  14. package/lib/presentation/atoms/AtomicIcon.js.map +1 -1
  15. package/lib/presentation/atoms/fab/styles/fabStyles.d.ts +1 -1
  16. package/lib/presentation/atoms/fab/styles/fabStyles.d.ts.map +1 -1
  17. package/lib/presentation/atoms/index.d.ts +1 -1
  18. package/lib/presentation/atoms/picker/styles/pickerStyles.d.ts +4 -15
  19. package/lib/presentation/atoms/picker/styles/pickerStyles.d.ts.map +1 -1
  20. package/lib/presentation/atoms/picker/styles/pickerStyles.js.map +1 -1
  21. package/lib/presentation/hooks/useAppDesignTokens.d.ts +6 -27
  22. package/lib/presentation/hooks/useAppDesignTokens.d.ts.map +1 -1
  23. package/lib/presentation/hooks/useAppDesignTokens.js +6 -32
  24. package/lib/presentation/hooks/useAppDesignTokens.js.map +1 -1
  25. package/lib/presentation/molecules/confirmation-modal/styles/confirmationModalStyles.d.ts +1 -1
  26. package/lib/presentation/molecules/confirmation-modal/styles/confirmationModalStyles.d.ts.map +1 -1
  27. package/lib/presentation/organisms/AppHeader.d.ts +3 -2
  28. package/lib/presentation/organisms/AppHeader.d.ts.map +1 -1
  29. package/lib/presentation/organisms/AppHeader.js.map +1 -1
  30. package/package.json +13 -3
  31. package/src/index.ts +34 -29
  32. package/src/presentation/atoms/AtomicBadge.tsx +1 -1
  33. package/src/presentation/atoms/AtomicButton.tsx +2 -2
  34. package/src/presentation/atoms/AtomicFormError.tsx +1 -1
  35. package/src/presentation/atoms/AtomicIcon.tsx +3 -4
  36. package/src/presentation/atoms/fab/styles/fabStyles.ts +1 -1
  37. package/src/presentation/atoms/picker/styles/pickerStyles.ts +25 -5
  38. package/src/presentation/hooks/useAppDesignTokens.ts +6 -33
  39. package/src/presentation/molecules/confirmation-modal/styles/confirmationModalStyles.ts +1 -1
  40. package/src/presentation/organisms/AppHeader.tsx +3 -2
  41. package/lib/domains/icons/domain/config/IconLibraryConfig.d.ts +0 -91
  42. package/lib/domains/icons/domain/config/IconLibraryConfig.d.ts.map +0 -1
  43. package/lib/domains/icons/domain/config/IconLibraryConfig.js +0 -85
  44. package/lib/domains/icons/domain/config/IconLibraryConfig.js.map +0 -1
  45. package/lib/domains/icons/domain/entities/Icon.d.ts +0 -111
  46. package/lib/domains/icons/domain/entities/Icon.d.ts.map +0 -1
  47. package/lib/domains/icons/domain/entities/Icon.js +0 -87
  48. package/lib/domains/icons/domain/entities/Icon.js.map +0 -1
  49. package/lib/domains/icons/domain/interfaces/IIconAdapter.d.ts +0 -114
  50. package/lib/domains/icons/domain/interfaces/IIconAdapter.d.ts.map +0 -1
  51. package/lib/domains/icons/domain/interfaces/IIconAdapter.js +0 -17
  52. package/lib/domains/icons/domain/interfaces/IIconAdapter.js.map +0 -1
  53. package/lib/domains/icons/index.d.ts +0 -84
  54. package/lib/domains/icons/index.d.ts.map +0 -1
  55. package/lib/domains/icons/index.js +0 -89
  56. package/lib/domains/icons/index.js.map +0 -1
  57. package/lib/domains/icons/infrastructure/adapters/LucideAdapter.d.ts +0 -24
  58. package/lib/domains/icons/infrastructure/adapters/LucideAdapter.d.ts.map +0 -1
  59. package/lib/domains/icons/infrastructure/adapters/LucideAdapter.js +0 -85
  60. package/lib/domains/icons/infrastructure/adapters/LucideAdapter.js.map +0 -1
  61. package/lib/domains/icons/infrastructure/registries/ExpoIconRegistry.d.ts +0 -23
  62. package/lib/domains/icons/infrastructure/registries/ExpoIconRegistry.d.ts.map +0 -1
  63. package/lib/domains/icons/infrastructure/registries/ExpoIconRegistry.js +0 -178
  64. package/lib/domains/icons/infrastructure/registries/ExpoIconRegistry.js.map +0 -1
  65. package/lib/domains/icons/presentation/components/Icon.d.ts +0 -42
  66. package/lib/domains/icons/presentation/components/Icon.d.ts.map +0 -1
  67. package/lib/domains/icons/presentation/components/Icon.js +0 -86
  68. package/lib/domains/icons/presentation/components/Icon.js.map +0 -1
  69. package/lib/domains/icons/presentation/hooks/useIconLibrary.d.ts +0 -38
  70. package/lib/domains/icons/presentation/hooks/useIconLibrary.d.ts.map +0 -1
  71. package/lib/domains/icons/presentation/hooks/useIconLibrary.js +0 -114
  72. package/lib/domains/icons/presentation/hooks/useIconLibrary.js.map +0 -1
  73. package/lib/infrastructure/theme/globalThemeStore.d.ts +0 -42
  74. package/lib/infrastructure/theme/globalThemeStore.d.ts.map +0 -1
  75. package/lib/infrastructure/theme/globalThemeStore.js +0 -38
  76. package/lib/infrastructure/theme/globalThemeStore.js.map +0 -1
  77. package/lib/presentation/tokens/AppDesignTokens.d.ts +0 -14
  78. package/lib/presentation/tokens/AppDesignTokens.d.ts.map +0 -1
  79. package/lib/presentation/tokens/AppDesignTokens.js +0 -23
  80. package/lib/presentation/tokens/AppDesignTokens.js.map +0 -1
  81. package/lib/presentation/tokens/core/BaseTokens.d.ts +0 -312
  82. package/lib/presentation/tokens/core/BaseTokens.d.ts.map +0 -1
  83. package/lib/presentation/tokens/core/BaseTokens.js +0 -304
  84. package/lib/presentation/tokens/core/BaseTokens.js.map +0 -1
  85. package/lib/presentation/tokens/core/ColorPalette.d.ts +0 -216
  86. package/lib/presentation/tokens/core/ColorPalette.d.ts.map +0 -1
  87. package/lib/presentation/tokens/core/ColorPalette.js +0 -330
  88. package/lib/presentation/tokens/core/ColorPalette.js.map +0 -1
  89. package/lib/presentation/tokens/core/TokenFactory.d.ts +0 -216
  90. package/lib/presentation/tokens/core/TokenFactory.d.ts.map +0 -1
  91. package/lib/presentation/tokens/core/TokenFactory.js +0 -86
  92. package/lib/presentation/tokens/core/TokenFactory.js.map +0 -1
  93. package/src/domains/icons/domain/config/IconLibraryConfig.ts +0 -93
  94. package/src/domains/icons/domain/entities/Icon.ts +0 -143
  95. package/src/domains/icons/domain/interfaces/IIconAdapter.ts +0 -147
  96. package/src/domains/icons/index.ts +0 -109
  97. package/src/domains/icons/infrastructure/adapters/LucideAdapter.ts +0 -100
  98. package/src/domains/icons/infrastructure/registries/ExpoIconRegistry.ts +0 -191
  99. package/src/domains/icons/presentation/components/Icon.tsx +0 -132
  100. package/src/domains/icons/presentation/hooks/useIconLibrary.ts +0 -141
  101. package/src/infrastructure/theme/globalThemeStore.ts +0 -51
  102. package/src/presentation/tokens/AppDesignTokens.ts +0 -55
  103. package/src/presentation/tokens/core/BaseTokens.ts +0 -372
  104. package/src/presentation/tokens/core/ColorPalette.ts +0 -400
  105. 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 - Design Tokens (Refactored with ZERO duplication)
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
- // Token factory
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
- type Spacing,
255
- type Typography,
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 - Global Theme Store
323
+ // THEME MANAGEMENT - MOVED TO @umituz/react-native-theme
320
324
  // =============================================================================
321
-
322
- export {
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 - Universal Icon System
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 './domains/icons/presentation/components/Icon';
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 '../tokens/AppDesignTokens';
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 '../../domains/icons/presentation/components/Icon';
4
+ import { Icon } from '@umituz/react-native-icon';
5
5
  import { useAppDesignTokens } from '../hooks/useAppDesignTokens';
6
- import type { IconName } from '../../domains/icons/domain/interfaces/IIconAdapter';
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 '../tokens/AppDesignTokens';
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 '../../domains/icons/presentation/components/Icon';
11
- import type { IconProps, IconSize, IconColor } from '../../domains/icons/domain/interfaces/IIconAdapter';
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 = LucideIconName;
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 '../../../tokens/AppDesignTokens';
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 - Theme-Aware Design Tokens
2
+ * useAppDesignTokens Hook - MOVED TO @umituz/react-native-theme
3
3
  *
4
- * Automatically reads theme from global store
5
- * No parameters needed - fully automatic!
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
- * @example Usage (fully automatic theme-aware)
7
+ * @deprecated Import from @umituz/react-native-theme instead
10
8
  * ```typescript
11
- * import { useAppDesignTokens } from '@umituz/react-native-design-system';
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
- import { useMemo } from 'react';
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 '../../../tokens/AppDesignTokens';
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?: string; // MaterialIcons name
32
+ leftIcon?: IconName; // Icon name
32
33
  onLeftPress?: () => void;
33
- rightIcon?: string; // MaterialIcons name
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"}