@umituz/react-native-design-system 1.4.3 → 1.5.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.
- package/README.md +0 -1
- package/lib/index.d.ts +4 -5
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +14 -17
- package/lib/index.js.map +1 -1
- package/lib/presentation/atoms/AtomicAvatar.js +1 -1
- package/lib/presentation/atoms/AtomicAvatar.js.map +1 -1
- package/lib/presentation/atoms/AtomicAvatarGroup.js +1 -1
- package/lib/presentation/atoms/AtomicAvatarGroup.js.map +1 -1
- package/lib/presentation/atoms/AtomicBadge.js +1 -1
- package/lib/presentation/atoms/AtomicBadge.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 +2 -2
- package/lib/presentation/atoms/AtomicButton.js.map +1 -1
- package/lib/presentation/atoms/AtomicCard.js +1 -1
- package/lib/presentation/atoms/AtomicCard.js.map +1 -1
- package/lib/presentation/atoms/AtomicChip.js +1 -1
- package/lib/presentation/atoms/AtomicChip.js.map +1 -1
- package/lib/presentation/atoms/AtomicDatePicker.js +1 -1
- package/lib/presentation/atoms/AtomicDatePicker.js.map +1 -1
- package/lib/presentation/atoms/AtomicDivider.js +1 -1
- package/lib/presentation/atoms/AtomicDivider.js.map +1 -1
- package/lib/presentation/atoms/AtomicFab.js +1 -1
- package/lib/presentation/atoms/AtomicFab.js.map +1 -1
- package/lib/presentation/atoms/AtomicFilter.js +1 -1
- package/lib/presentation/atoms/AtomicFilter.js.map +1 -1
- package/lib/presentation/atoms/AtomicFormError.js +2 -2
- 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/AtomicImage.js +1 -1
- package/lib/presentation/atoms/AtomicImage.js.map +1 -1
- package/lib/presentation/atoms/AtomicInput.js +1 -1
- package/lib/presentation/atoms/AtomicInput.js.map +1 -1
- package/lib/presentation/atoms/AtomicPicker.js +1 -1
- package/lib/presentation/atoms/AtomicPicker.js.map +1 -1
- package/lib/presentation/atoms/AtomicProgress.js +1 -1
- package/lib/presentation/atoms/AtomicProgress.js.map +1 -1
- package/lib/presentation/atoms/AtomicSearchBar.js +1 -1
- package/lib/presentation/atoms/AtomicSearchBar.js.map +1 -1
- package/lib/presentation/atoms/AtomicSort.js +1 -1
- package/lib/presentation/atoms/AtomicSort.js.map +1 -1
- package/lib/presentation/atoms/AtomicSwitch.js +1 -1
- package/lib/presentation/atoms/AtomicSwitch.js.map +1 -1
- package/lib/presentation/atoms/AtomicText.d.ts +21 -1
- package/lib/presentation/atoms/AtomicText.d.ts.map +1 -1
- package/lib/presentation/atoms/AtomicText.js +31 -10
- package/lib/presentation/atoms/AtomicText.js.map +1 -1
- package/lib/presentation/atoms/AtomicTextArea.js +1 -1
- package/lib/presentation/atoms/AtomicTextArea.js.map +1 -1
- package/lib/presentation/atoms/AtomicTouchable.js +1 -1
- package/lib/presentation/atoms/AtomicTouchable.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/input/styles/inputStyles.d.ts +1 -1
- package/lib/presentation/atoms/input/styles/inputStyles.d.ts.map +1 -1
- package/lib/presentation/atoms/picker/styles/pickerStyles.d.ts +12 -23
- 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/molecules/AtomicConfirmationModal.d.ts +2 -2
- package/lib/presentation/molecules/AtomicConfirmationModal.d.ts.map +1 -1
- package/lib/presentation/molecules/AtomicConfirmationModal.js +3 -22
- package/lib/presentation/molecules/AtomicConfirmationModal.js.map +1 -1
- package/lib/presentation/molecules/EmptyState.js +1 -1
- package/lib/presentation/molecules/EmptyState.js.map +1 -1
- package/lib/presentation/molecules/FormField.js +1 -1
- package/lib/presentation/molecules/FormField.js.map +1 -1
- package/lib/presentation/molecules/IconContainer.js +1 -1
- package/lib/presentation/molecules/IconContainer.js.map +1 -1
- package/lib/presentation/molecules/ListItem.js +1 -1
- package/lib/presentation/molecules/ListItem.js.map +1 -1
- package/lib/presentation/molecules/ScreenHeader.js +1 -1
- package/lib/presentation/molecules/ScreenHeader.js.map +1 -1
- package/lib/presentation/molecules/SearchBar.js +1 -1
- package/lib/presentation/molecules/SearchBar.js.map +1 -1
- package/lib/presentation/molecules/SectionCard.js +1 -1
- package/lib/presentation/molecules/SectionCard.js.map +1 -1
- package/lib/presentation/molecules/SectionContainer.js +1 -1
- package/lib/presentation/molecules/SectionContainer.js.map +1 -1
- package/lib/presentation/molecules/SectionHeader.js +1 -1
- package/lib/presentation/molecules/SectionHeader.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/molecules/confirmation-modal/types/index.d.ts +4 -6
- package/lib/presentation/molecules/confirmation-modal/types/index.d.ts.map +1 -1
- package/lib/presentation/molecules/index.d.ts +0 -1
- package/lib/presentation/molecules/index.d.ts.map +1 -1
- package/lib/presentation/molecules/index.js +0 -1
- package/lib/presentation/molecules/index.js.map +1 -1
- package/lib/presentation/molecules/listitem/styles/listItemStyles.d.ts +1 -1
- package/lib/presentation/molecules/listitem/styles/listItemStyles.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 +1 -1
- package/lib/presentation/organisms/AppHeader.js.map +1 -1
- package/lib/presentation/organisms/FormContainer.js +1 -1
- package/lib/presentation/organisms/FormContainer.js.map +1 -1
- package/lib/presentation/organisms/ScreenLayout.js +1 -1
- package/lib/presentation/organisms/ScreenLayout.js.map +1 -1
- package/lib/presentation/tokens/commonStyles.d.ts +1 -1
- package/lib/presentation/tokens/commonStyles.js +2 -2
- package/lib/presentation/tokens/commonStyles.js.map +1 -1
- package/package.json +2 -6
- package/src/index.ts +17 -26
- package/src/presentation/atoms/AtomicAvatar.tsx +1 -1
- package/src/presentation/atoms/AtomicAvatarGroup.tsx +1 -1
- package/src/presentation/atoms/AtomicBadge.tsx +2 -2
- package/src/presentation/atoms/AtomicButton.tsx +3 -3
- package/src/presentation/atoms/AtomicCard.tsx +1 -1
- package/src/presentation/atoms/AtomicChip.tsx +1 -1
- package/src/presentation/atoms/AtomicDatePicker.tsx +1 -1
- package/src/presentation/atoms/AtomicDivider.tsx +1 -1
- package/src/presentation/atoms/AtomicFab.tsx +1 -1
- package/src/presentation/atoms/AtomicFilter.tsx +1 -1
- package/src/presentation/atoms/AtomicFormError.tsx +2 -2
- package/src/presentation/atoms/AtomicIcon.tsx +3 -4
- package/src/presentation/atoms/AtomicImage.tsx +1 -1
- package/src/presentation/atoms/AtomicInput.tsx +1 -1
- package/src/presentation/atoms/AtomicPicker.tsx +1 -1
- package/src/presentation/atoms/AtomicProgress.tsx +1 -1
- package/src/presentation/atoms/AtomicSearchBar.tsx +1 -1
- package/src/presentation/atoms/AtomicSort.tsx +1 -1
- package/src/presentation/atoms/AtomicSwitch.tsx +1 -1
- package/src/presentation/atoms/AtomicText.tsx +80 -14
- package/src/presentation/atoms/AtomicTextArea.tsx +1 -1
- package/src/presentation/atoms/AtomicTouchable.tsx +2 -2
- package/src/presentation/atoms/fab/styles/fabStyles.ts +1 -1
- package/src/presentation/atoms/input/styles/inputStyles.ts +1 -1
- package/src/presentation/atoms/picker/styles/pickerStyles.ts +13 -6
- package/src/presentation/molecules/AtomicConfirmationModal.tsx +5 -26
- package/src/presentation/molecules/EmptyState.tsx +1 -1
- package/src/presentation/molecules/FormField.tsx +1 -1
- package/src/presentation/molecules/IconContainer.tsx +1 -1
- package/src/presentation/molecules/ListItem.tsx +1 -1
- package/src/presentation/molecules/ScreenHeader.tsx +1 -1
- package/src/presentation/molecules/SearchBar.tsx +1 -1
- package/src/presentation/molecules/SectionCard.tsx +1 -1
- package/src/presentation/molecules/SectionContainer.tsx +1 -1
- package/src/presentation/molecules/SectionHeader.tsx +1 -1
- package/src/presentation/molecules/confirmation-modal/styles/confirmationModalStyles.ts +1 -1
- package/src/presentation/molecules/confirmation-modal/types/index.ts +4 -6
- package/src/presentation/molecules/index.ts +0 -1
- package/src/presentation/molecules/listitem/styles/listItemStyles.ts +1 -1
- package/src/presentation/organisms/AppHeader.tsx +4 -3
- package/src/presentation/organisms/FormContainer.tsx +1 -1
- package/src/presentation/organisms/ScreenLayout.tsx +1 -1
- package/src/presentation/tokens/commonStyles.ts +2 -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/hooks/useAppDesignTokens.d.ts +0 -34
- package/lib/presentation/hooks/useAppDesignTokens.d.ts.map +0 -1
- package/lib/presentation/hooks/useAppDesignTokens.js +0 -39
- package/lib/presentation/hooks/useAppDesignTokens.js.map +0 -1
- package/lib/presentation/molecules/LanguageSwitcher.d.ts +0 -10
- package/lib/presentation/molecules/LanguageSwitcher.d.ts.map +0 -1
- package/lib/presentation/molecules/LanguageSwitcher.js +0 -24
- package/lib/presentation/molecules/LanguageSwitcher.js.map +0 -1
- package/lib/presentation/molecules/languageswitcher/config/languageSwitcherConfig.d.ts +0 -11
- package/lib/presentation/molecules/languageswitcher/config/languageSwitcherConfig.d.ts.map +0 -1
- package/lib/presentation/molecules/languageswitcher/config/languageSwitcherConfig.js +0 -6
- package/lib/presentation/molecules/languageswitcher/config/languageSwitcherConfig.js.map +0 -1
- package/lib/presentation/molecules/languageswitcher/hooks/useLanguageNavigation.d.ts +0 -5
- package/lib/presentation/molecules/languageswitcher/hooks/useLanguageNavigation.d.ts.map +0 -1
- package/lib/presentation/molecules/languageswitcher/hooks/useLanguageNavigation.js +0 -14
- package/lib/presentation/molecules/languageswitcher/hooks/useLanguageNavigation.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 -307
- 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/hooks/useAppDesignTokens.ts +0 -40
- package/src/presentation/molecules/LanguageSwitcher.tsx +0 -42
- package/src/presentation/molecules/languageswitcher/config/languageSwitcherConfig.ts +0 -5
- package/src/presentation/molecules/languageswitcher/hooks/useLanguageNavigation.ts +0 -16
- package/src/presentation/tokens/AppDesignTokens.ts +0 -55
- package/src/presentation/tokens/core/BaseTokens.ts +0 -376
- package/src/presentation/tokens/core/ColorPalette.ts +0 -400
- package/src/presentation/tokens/core/TokenFactory.ts +0 -118
|
@@ -19,7 +19,7 @@ import { View, StyleSheet, TouchableOpacity, ViewStyle } from 'react-native';
|
|
|
19
19
|
import { useNavigation } from '@react-navigation/native';
|
|
20
20
|
import { AtomicIcon } from '../atoms/AtomicIcon';
|
|
21
21
|
import { AtomicText } from '../atoms/AtomicText';
|
|
22
|
-
import { useAppDesignTokens } from '
|
|
22
|
+
import { useAppDesignTokens } from '@umituz/react-native-theme';
|
|
23
23
|
|
|
24
24
|
export interface ScreenHeaderProps {
|
|
25
25
|
/** Screen title (centered) */
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
|
|
11
11
|
import React from 'react';
|
|
12
12
|
import { View, TouchableOpacity, ViewStyle } from 'react-native';
|
|
13
|
-
import { useAppDesignTokens } from '
|
|
13
|
+
import { useAppDesignTokens } from '@umituz/react-native-theme';
|
|
14
14
|
import { AtomicInput, AtomicInputProps } from '../atoms/AtomicInput';
|
|
15
15
|
import { AtomicIcon } from '../atoms/AtomicIcon';
|
|
16
16
|
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
|
|
16
16
|
import React from 'react';
|
|
17
17
|
import { View, StyleSheet } from 'react-native';
|
|
18
|
-
import { useAppDesignTokens } from '
|
|
18
|
+
import { useAppDesignTokens } from '@umituz/react-native-theme';
|
|
19
19
|
import { AtomicCard } from '../atoms/AtomicCard';
|
|
20
20
|
import { AtomicText } from '../atoms/AtomicText';
|
|
21
21
|
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
import React from 'react';
|
|
18
18
|
import { View, StyleSheet, ViewStyle, TextStyle } from 'react-native';
|
|
19
19
|
import { AtomicText } from '../atoms/AtomicText';
|
|
20
|
-
import { useAppDesignTokens } from '
|
|
20
|
+
import { useAppDesignTokens } from '@umituz/react-native-theme';
|
|
21
21
|
|
|
22
22
|
// =============================================================================
|
|
23
23
|
// TYPE DEFINITIONS
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
import React from 'react';
|
|
18
18
|
import { View, StyleSheet, ViewStyle, TextStyle } from 'react-native';
|
|
19
19
|
import { AtomicText } from '../atoms/AtomicText';
|
|
20
|
-
import { useAppDesignTokens } from '
|
|
20
|
+
import { useAppDesignTokens } from '@umituz/react-native-theme';
|
|
21
21
|
|
|
22
22
|
// =============================================================================
|
|
23
23
|
// TYPE DEFINITIONS
|
|
@@ -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)
|
|
@@ -45,16 +45,14 @@ export interface AtomicConfirmationModalProps {
|
|
|
45
45
|
variant?: ConfirmationModalVariant;
|
|
46
46
|
|
|
47
47
|
/**
|
|
48
|
-
* Confirm button text
|
|
49
|
-
* @default 'Confirm' (or variant-specific default)
|
|
48
|
+
* Confirm button text (required)
|
|
50
49
|
*/
|
|
51
|
-
confirmText
|
|
50
|
+
confirmText: string;
|
|
52
51
|
|
|
53
52
|
/**
|
|
54
|
-
* Cancel button text
|
|
55
|
-
* @default 'Cancel'
|
|
53
|
+
* Cancel button text (required)
|
|
56
54
|
*/
|
|
57
|
-
cancelText
|
|
55
|
+
cancelText: string;
|
|
58
56
|
|
|
59
57
|
/**
|
|
60
58
|
* Icon name to display at top (MaterialIcons name)
|
|
@@ -11,7 +11,6 @@
|
|
|
11
11
|
export { FormField } from './FormField';
|
|
12
12
|
export { ListItem } from './ListItem';
|
|
13
13
|
export { SearchBar } from './SearchBar';
|
|
14
|
-
export { LanguageSwitcher } from './LanguageSwitcher';
|
|
15
14
|
export { SectionCard } from './SectionCard';
|
|
16
15
|
export { IconContainer } from './IconContainer';
|
|
17
16
|
export { ScreenHeader } from './ScreenHeader';
|
|
@@ -10,10 +10,11 @@
|
|
|
10
10
|
|
|
11
11
|
import React from 'react';
|
|
12
12
|
import { View, ViewStyle, SafeAreaView } from 'react-native';
|
|
13
|
-
import { useAppDesignTokens } from '
|
|
13
|
+
import { useAppDesignTokens } from '@umituz/react-native-theme';
|
|
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;
|
|
32
33
|
onLeftPress?: () => void;
|
|
33
|
-
rightIcon?:
|
|
34
|
+
rightIcon?: IconName;
|
|
34
35
|
onRightPress?: () => void;
|
|
35
36
|
showShadow?: boolean;
|
|
36
37
|
backgroundColor?: string;
|
|
@@ -52,7 +52,7 @@ import {
|
|
|
52
52
|
ViewStyle,
|
|
53
53
|
} from 'react-native';
|
|
54
54
|
import { useSafeAreaInsets } from 'react-native-safe-area-context';
|
|
55
|
-
import { useAppDesignTokens } from '
|
|
55
|
+
import { useAppDesignTokens } from '@umituz/react-native-theme';
|
|
56
56
|
import { useResponsive } from '../hooks/useResponsive';
|
|
57
57
|
|
|
58
58
|
/**
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
import React, { useMemo } from 'react';
|
|
27
27
|
import { View, ScrollView, StyleSheet, ViewStyle } from 'react-native';
|
|
28
28
|
import { SafeAreaView, Edge } from 'react-native-safe-area-context';
|
|
29
|
-
import { useAppDesignTokens } from '
|
|
29
|
+
import { useAppDesignTokens } from '@umituz/react-native-theme';
|
|
30
30
|
|
|
31
31
|
export interface ScreenLayoutProps {
|
|
32
32
|
/**
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
*/
|
|
17
17
|
|
|
18
18
|
import { ViewStyle, TextStyle } from 'react-native';
|
|
19
|
-
import { useAppDesignTokens } from '
|
|
19
|
+
import { useAppDesignTokens } from '@umituz/react-native-theme';
|
|
20
20
|
|
|
21
21
|
/**
|
|
22
22
|
* Hook to get common styles with dynamic theme support
|
|
@@ -96,7 +96,7 @@ export const useCommonStyles = () => {
|
|
|
96
96
|
|
|
97
97
|
/**
|
|
98
98
|
* Centered container - both horizontal and vertical
|
|
99
|
-
* Perfect for empty states,
|
|
99
|
+
* Perfect for empty states, splash screens
|
|
100
100
|
*/
|
|
101
101
|
centerContainer: {
|
|
102
102
|
flex: 1,
|
|
@@ -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"}
|
|
@@ -1,87 +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 var IconLibrary;
|
|
18
|
-
(function (IconLibrary) {
|
|
19
|
-
IconLibrary["LUCIDE"] = "lucide";
|
|
20
|
-
IconLibrary["MATERIAL"] = "material";
|
|
21
|
-
IconLibrary["FONTAWESOME"] = "fontawesome";
|
|
22
|
-
IconLibrary["IONICONS"] = "ionicons";
|
|
23
|
-
})(IconLibrary || (IconLibrary = {}));
|
|
24
|
-
/**
|
|
25
|
-
* Icon category for organization
|
|
26
|
-
*/
|
|
27
|
-
export var IconCategory;
|
|
28
|
-
(function (IconCategory) {
|
|
29
|
-
IconCategory["ALL"] = "all";
|
|
30
|
-
IconCategory["NAVIGATION"] = "navigation";
|
|
31
|
-
IconCategory["ACTION"] = "action";
|
|
32
|
-
IconCategory["SOCIAL"] = "social";
|
|
33
|
-
IconCategory["COMMUNICATION"] = "communication";
|
|
34
|
-
IconCategory["MEDIA"] = "media";
|
|
35
|
-
IconCategory["BUSINESS"] = "business";
|
|
36
|
-
IconCategory["WEATHER"] = "weather";
|
|
37
|
-
IconCategory["SYMBOLS"] = "symbols";
|
|
38
|
-
IconCategory["EMOJI"] = "emoji";
|
|
39
|
-
})(IconCategory || (IconCategory = {}));
|
|
40
|
-
/**
|
|
41
|
-
* Icon constants
|
|
42
|
-
*/
|
|
43
|
-
export const ICON_CONSTANTS = {
|
|
44
|
-
DEFAULT_SIZE: 24,
|
|
45
|
-
DEFAULT_COLOR: 'onSurface',
|
|
46
|
-
DEFAULT_LIBRARY: IconLibrary.LUCIDE,
|
|
47
|
-
MAX_SEARCH_RESULTS: 50,
|
|
48
|
-
};
|
|
49
|
-
/**
|
|
50
|
-
* Icon utility functions
|
|
51
|
-
*/
|
|
52
|
-
export const IconUtils = {
|
|
53
|
-
/**
|
|
54
|
-
* Normalize icon name for search
|
|
55
|
-
*/
|
|
56
|
-
normalizeIconName: (name) => {
|
|
57
|
-
return name.toLowerCase().replace(/[^a-z0-9]/g, '');
|
|
58
|
-
},
|
|
59
|
-
/**
|
|
60
|
-
* Match search query against icon metadata
|
|
61
|
-
*/
|
|
62
|
-
matchesSearch: (icon, query) => {
|
|
63
|
-
const normalizedQuery = IconUtils.normalizeIconName(query);
|
|
64
|
-
const normalizedName = IconUtils.normalizeIconName(icon.name);
|
|
65
|
-
const normalizedTags = icon.tags.map(tag => IconUtils.normalizeIconName(tag));
|
|
66
|
-
const normalizedTerms = icon.searchTerms.map(term => IconUtils.normalizeIconName(term));
|
|
67
|
-
return (normalizedName.includes(normalizedQuery) ||
|
|
68
|
-
normalizedTags.some(tag => tag.includes(normalizedQuery)) ||
|
|
69
|
-
normalizedTerms.some(term => term.includes(normalizedQuery)));
|
|
70
|
-
},
|
|
71
|
-
/**
|
|
72
|
-
* Filter icons by category
|
|
73
|
-
*/
|
|
74
|
-
filterByCategory: (icons, category) => {
|
|
75
|
-
if (category === IconCategory.ALL) {
|
|
76
|
-
return icons;
|
|
77
|
-
}
|
|
78
|
-
return icons.filter(icon => icon.category === category);
|
|
79
|
-
},
|
|
80
|
-
/**
|
|
81
|
-
* Sort icons alphabetically
|
|
82
|
-
*/
|
|
83
|
-
sortByName: (icons) => {
|
|
84
|
-
return [...icons].sort((a, b) => a.name.localeCompare(b.name));
|
|
85
|
-
},
|
|
86
|
-
};
|
|
87
|
-
//# sourceMappingURL=Icon.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Icon.js","sourceRoot":"","sources":["../../../../../src/domains/icons/domain/entities/Icon.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH;;;;;;GAMG;AACH,MAAM,CAAN,IAAY,WAKX;AALD,WAAY,WAAW;IACrB,gCAAiB,CAAA;IACjB,oCAAqB,CAAA;IACrB,0CAA2B,CAAA;IAC3B,oCAAqB,CAAA;AACvB,CAAC,EALW,WAAW,KAAX,WAAW,QAKtB;AAED;;GAEG;AACH,MAAM,CAAN,IAAY,YAWX;AAXD,WAAY,YAAY;IACtB,2BAAW,CAAA;IACX,yCAAyB,CAAA;IACzB,iCAAiB,CAAA;IACjB,iCAAiB,CAAA;IACjB,+CAA+B,CAAA;IAC/B,+BAAe,CAAA;IACf,qCAAqB,CAAA;IACrB,mCAAmB,CAAA;IACnB,mCAAmB,CAAA;IACnB,+BAAe,CAAA;AACjB,CAAC,EAXW,YAAY,KAAZ,YAAY,QAWvB;AAmDD;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,YAAY,EAAE,EAAE;IAChB,aAAa,EAAE,WAAW;IAC1B,eAAe,EAAE,WAAW,CAAC,MAAM;IACnC,kBAAkB,EAAE,EAAE;CACd,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB;;OAEG;IACH,iBAAiB,EAAE,CAAC,IAAY,EAAU,EAAE;QAC1C,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;IACtD,CAAC;IAED;;OAEG;IACH,aAAa,EAAE,CAAC,IAAkB,EAAE,KAAa,EAAW,EAAE;QAC5D,MAAM,eAAe,GAAG,SAAS,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAC3D,MAAM,cAAc,GAAG,SAAS,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9D,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,SAAS,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC;QAC9E,MAAM,eAAe,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC;QAExF,OAAO,CACL,cAAc,CAAC,QAAQ,CAAC,eAAe,CAAC;YACxC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;YACzD,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAC7D,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,gBAAgB,EAAE,CAAC,KAAqB,EAAE,QAAsB,EAAkB,EAAE;QAClF,IAAI,QAAQ,KAAK,YAAY,CAAC,GAAG,EAAE,CAAC;YAClC,OAAO,KAAK,CAAC;QACf,CAAC;QACD,OAAO,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC;IAC1D,CAAC;IAED;;OAEG;IACH,UAAU,EAAE,CAAC,KAAqB,EAAkB,EAAE;QACpD,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACjE,CAAC;CACF,CAAC"}
|
|
@@ -1,114 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Icon Adapter Interface
|
|
3
|
-
*
|
|
4
|
-
* Universal interface that all icon library adapters must implement.
|
|
5
|
-
* This allows seamless switching between icon libraries.
|
|
6
|
-
*
|
|
7
|
-
* @example
|
|
8
|
-
* // Implementing for a new library:
|
|
9
|
-
* export const MyLibraryAdapter: IIconAdapter = {
|
|
10
|
-
* getIconComponent: (name) => MyIcons[name],
|
|
11
|
-
* getIconSize: (size) => sizeMap[size],
|
|
12
|
-
* getIconColor: (color, tokens) => colorMap[color],
|
|
13
|
-
* getAllIcons: () => Object.keys(MyIcons),
|
|
14
|
-
* };
|
|
15
|
-
*/
|
|
16
|
-
import type { ComponentType } from 'react';
|
|
17
|
-
import type { ViewStyle } from 'react-native';
|
|
18
|
-
import type { DesignTokens } from '../../../../presentation/tokens/core/TokenFactory';
|
|
19
|
-
export type IconName = string;
|
|
20
|
-
export type IconSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'xxl';
|
|
21
|
-
export type IconColor = 'primary' | 'secondary' | 'success' | 'warning' | 'error' | 'info' | 'onSurface' | 'surfaceVariant' | 'onPrimary' | 'onSecondary' | 'textInverse';
|
|
22
|
-
/**
|
|
23
|
-
* Icon Adapter Interface
|
|
24
|
-
* All icon library adapters must implement this interface
|
|
25
|
-
*/
|
|
26
|
-
export interface IIconAdapter {
|
|
27
|
-
/**
|
|
28
|
-
* Get the icon component for a given icon name
|
|
29
|
-
* @param name - Icon name (library-specific)
|
|
30
|
-
* @returns Icon component or null if not found
|
|
31
|
-
*/
|
|
32
|
-
getIconComponent: (name: string) => ComponentType<any> | null;
|
|
33
|
-
/**
|
|
34
|
-
* Convert semantic size to pixel size
|
|
35
|
-
* @param size - Semantic size (xs, sm, md, lg, xl, xxl)
|
|
36
|
-
* @param customSize - Optional custom pixel size
|
|
37
|
-
* @returns Pixel size
|
|
38
|
-
*/
|
|
39
|
-
getIconSize: (size: IconSize, customSize?: number) => number;
|
|
40
|
-
/**
|
|
41
|
-
* Convert semantic color to hex color
|
|
42
|
-
* @param color - Semantic color name
|
|
43
|
-
* @param tokens - Design tokens for theme colors
|
|
44
|
-
* @param customColor - Optional custom hex color
|
|
45
|
-
* @returns Hex color string
|
|
46
|
-
*/
|
|
47
|
-
getIconColor: (color: IconColor, tokens: DesignTokens, customColor?: string) => string;
|
|
48
|
-
/**
|
|
49
|
-
* Get all available icon names for this library
|
|
50
|
-
* @returns Array of icon names
|
|
51
|
-
*/
|
|
52
|
-
getAllIcons: () => string[];
|
|
53
|
-
/**
|
|
54
|
-
* Check if an icon exists in the library
|
|
55
|
-
* @param name - Icon name to check
|
|
56
|
-
* @returns True if icon exists
|
|
57
|
-
*/
|
|
58
|
-
hasIcon: (name: string) => boolean;
|
|
59
|
-
/**
|
|
60
|
-
* Get default stroke width for outline icons
|
|
61
|
-
* @returns Stroke width number
|
|
62
|
-
*/
|
|
63
|
-
getStrokeWidth?: () => number;
|
|
64
|
-
}
|
|
65
|
-
/**
|
|
66
|
-
* Icon Props - Universal props for Icon component
|
|
67
|
-
*/
|
|
68
|
-
export interface IconProps {
|
|
69
|
-
/**
|
|
70
|
-
* Icon name (library-specific)
|
|
71
|
-
*/
|
|
72
|
-
name: string;
|
|
73
|
-
/**
|
|
74
|
-
* Icon size preset
|
|
75
|
-
*/
|
|
76
|
-
size?: IconSize;
|
|
77
|
-
/**
|
|
78
|
-
* Custom pixel size (overrides size preset)
|
|
79
|
-
*/
|
|
80
|
-
customSize?: number;
|
|
81
|
-
/**
|
|
82
|
-
* Semantic color
|
|
83
|
-
*/
|
|
84
|
-
color?: IconColor;
|
|
85
|
-
/**
|
|
86
|
-
* Custom hex color (overrides semantic color)
|
|
87
|
-
*/
|
|
88
|
-
customColor?: string;
|
|
89
|
-
/**
|
|
90
|
-
* Stroke width for outline icons
|
|
91
|
-
*/
|
|
92
|
-
strokeWidth?: number;
|
|
93
|
-
/**
|
|
94
|
-
* Background circle for icon
|
|
95
|
-
*/
|
|
96
|
-
withBackground?: boolean;
|
|
97
|
-
/**
|
|
98
|
-
* Background color
|
|
99
|
-
*/
|
|
100
|
-
backgroundColor?: string;
|
|
101
|
-
/**
|
|
102
|
-
* Accessibility label
|
|
103
|
-
*/
|
|
104
|
-
accessibilityLabel?: string;
|
|
105
|
-
/**
|
|
106
|
-
* Test ID
|
|
107
|
-
*/
|
|
108
|
-
testID?: string;
|
|
109
|
-
/**
|
|
110
|
-
* Custom styles
|
|
111
|
-
*/
|
|
112
|
-
style?: ViewStyle;
|
|
113
|
-
}
|
|
114
|
-
//# sourceMappingURL=IIconAdapter.d.ts.map
|