@umituz/react-native-design-system 1.4.3 → 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/README.md +0 -1
- package/lib/index.d.ts +2 -5
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +17 -22
- 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/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/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/AtomicConfirmationModal.d.ts +2 -2
- package/lib/presentation/molecules/AtomicConfirmationModal.d.ts.map +1 -1
- package/lib/presentation/molecules/AtomicConfirmationModal.js +2 -21
- package/lib/presentation/molecules/AtomicConfirmationModal.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/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/lib/presentation/tokens/commonStyles.d.ts +1 -1
- package/lib/presentation/tokens/commonStyles.js +1 -1
- package/package.json +11 -5
- package/src/index.ts +35 -39
- 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/AtomicTouchable.tsx +1 -1
- 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/AtomicConfirmationModal.tsx +4 -25
- 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/organisms/AppHeader.tsx +3 -2
- package/src/presentation/tokens/commonStyles.ts +1 -1
- 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/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/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
|
@@ -1,114 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Icons Domain - useIconLibrary Hook
|
|
3
|
-
*
|
|
4
|
-
* React hook for accessing icon libraries (Lucide + Expo vector icons).
|
|
5
|
-
* Provides search, filter, and metadata access for all available icons.
|
|
6
|
-
*
|
|
7
|
-
* @domain icons
|
|
8
|
-
* @layer presentation
|
|
9
|
-
*/
|
|
10
|
-
import { useMemo, useState, useCallback } from 'react';
|
|
11
|
-
import { IconLibrary, IconCategory, IconUtils, ICON_CONSTANTS } from '@domains/icons/domain/entities/Icon';
|
|
12
|
-
import { ExpoIconRegistry } from '@domains/icons/infrastructure/registries/ExpoIconRegistry';
|
|
13
|
-
/**
|
|
14
|
-
* Hook for icon library access and search
|
|
15
|
-
*
|
|
16
|
-
* @example
|
|
17
|
-
* const { icons, searchIcons, filterByCategory } = useIconLibrary();
|
|
18
|
-
*
|
|
19
|
-
* // Search icons
|
|
20
|
-
* const results = searchIcons('home');
|
|
21
|
-
*
|
|
22
|
-
* // Filter by category
|
|
23
|
-
* const navIcons = filterByCategory(IconCategory.NAVIGATION);
|
|
24
|
-
*/
|
|
25
|
-
export const useIconLibrary = (defaultLibrary = ICON_CONSTANTS.DEFAULT_LIBRARY) => {
|
|
26
|
-
const [selectedLibrary, setSelectedLibrary] = useState(defaultLibrary);
|
|
27
|
-
const [selectedCategory, setSelectedCategory] = useState(IconCategory.ALL);
|
|
28
|
-
// Initialize registry
|
|
29
|
-
const registry = useMemo(() => new ExpoIconRegistry(), []);
|
|
30
|
-
/**
|
|
31
|
-
* Get all icons from the selected library
|
|
32
|
-
*/
|
|
33
|
-
const icons = useMemo(() => {
|
|
34
|
-
const allIcons = registry.getAllIcons();
|
|
35
|
-
return selectedLibrary === IconLibrary.LUCIDE
|
|
36
|
-
? [] // Lucide icons are in design-system/AtomicIcon
|
|
37
|
-
: allIcons.filter(icon => icon.library === selectedLibrary);
|
|
38
|
-
}, [registry, selectedLibrary]);
|
|
39
|
-
/**
|
|
40
|
-
* Get icons filtered by category
|
|
41
|
-
*/
|
|
42
|
-
const iconsByCategory = useMemo(() => {
|
|
43
|
-
return IconUtils.filterByCategory(icons, selectedCategory);
|
|
44
|
-
}, [icons, selectedCategory]);
|
|
45
|
-
/**
|
|
46
|
-
* Search icons by query
|
|
47
|
-
*/
|
|
48
|
-
const searchIcons = useCallback((query) => {
|
|
49
|
-
if (!query.trim()) {
|
|
50
|
-
return iconsByCategory;
|
|
51
|
-
}
|
|
52
|
-
const results = registry.searchIcons(query);
|
|
53
|
-
const filteredResults = selectedLibrary === IconLibrary.LUCIDE
|
|
54
|
-
? results
|
|
55
|
-
: results.filter(icon => icon.library === selectedLibrary);
|
|
56
|
-
return IconUtils.filterByCategory(filteredResults, selectedCategory)
|
|
57
|
-
.slice(0, ICON_CONSTANTS.MAX_SEARCH_RESULTS);
|
|
58
|
-
}, [registry, selectedLibrary, selectedCategory, iconsByCategory]);
|
|
59
|
-
/**
|
|
60
|
-
* Filter icons by category
|
|
61
|
-
*/
|
|
62
|
-
const filterByCategory = useCallback((category) => {
|
|
63
|
-
return IconUtils.filterByCategory(icons, category);
|
|
64
|
-
}, [icons]);
|
|
65
|
-
/**
|
|
66
|
-
* Get icon metadata by name
|
|
67
|
-
*/
|
|
68
|
-
const getIconMetadata = useCallback((name) => {
|
|
69
|
-
return registry.getIconMetadata(name);
|
|
70
|
-
}, [registry]);
|
|
71
|
-
/**
|
|
72
|
-
* Get all available categories
|
|
73
|
-
*/
|
|
74
|
-
const availableCategories = useMemo(() => {
|
|
75
|
-
return Object.values(IconCategory);
|
|
76
|
-
}, []);
|
|
77
|
-
/**
|
|
78
|
-
* Get all available libraries
|
|
79
|
-
*/
|
|
80
|
-
const availableLibraries = useMemo(() => {
|
|
81
|
-
return Object.values(IconLibrary);
|
|
82
|
-
}, []);
|
|
83
|
-
/**
|
|
84
|
-
* Switch library
|
|
85
|
-
*/
|
|
86
|
-
const switchLibrary = useCallback((library) => {
|
|
87
|
-
setSelectedLibrary(library);
|
|
88
|
-
}, []);
|
|
89
|
-
/**
|
|
90
|
-
* Switch category
|
|
91
|
-
*/
|
|
92
|
-
const switchCategory = useCallback((category) => {
|
|
93
|
-
setSelectedCategory(category);
|
|
94
|
-
}, []);
|
|
95
|
-
return {
|
|
96
|
-
// Current state
|
|
97
|
-
selectedLibrary,
|
|
98
|
-
selectedCategory,
|
|
99
|
-
icons: iconsByCategory,
|
|
100
|
-
// Search & filter
|
|
101
|
-
searchIcons,
|
|
102
|
-
filterByCategory,
|
|
103
|
-
getIconMetadata,
|
|
104
|
-
// Library & category management
|
|
105
|
-
switchLibrary,
|
|
106
|
-
switchCategory,
|
|
107
|
-
availableCategories,
|
|
108
|
-
availableLibraries,
|
|
109
|
-
// Constants
|
|
110
|
-
IconLibrary,
|
|
111
|
-
IconCategory,
|
|
112
|
-
};
|
|
113
|
-
};
|
|
114
|
-
//# sourceMappingURL=useIconLibrary.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useIconLibrary.js","sourceRoot":"","sources":["../../../../../src/domains/icons/presentation/hooks/useIconLibrary.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Global Theme Store for Design System
|
|
3
|
-
*
|
|
4
|
-
* Minimal Zustand store for theme state management.
|
|
5
|
-
* Apps can sync their theme state with this global store.
|
|
6
|
-
*
|
|
7
|
-
* WHY THIS EXISTS:
|
|
8
|
-
* - ScreenLayout needs to know current theme mode
|
|
9
|
-
* - Without prop drilling or Context API
|
|
10
|
-
* - Single source of truth for design system components
|
|
11
|
-
* - Apps control theme, design system reacts
|
|
12
|
-
*
|
|
13
|
-
* USAGE IN APP:
|
|
14
|
-
* ```typescript
|
|
15
|
-
* import { useDesignSystemTheme } from '@umituz/react-native-design-system';
|
|
16
|
-
* import { useTheme } from '@domains/theme';
|
|
17
|
-
*
|
|
18
|
-
* // Sync app theme with design system
|
|
19
|
-
* const { themeMode } = useTheme();
|
|
20
|
-
* const { setThemeMode } = useDesignSystemTheme();
|
|
21
|
-
*
|
|
22
|
-
* useEffect(() => {
|
|
23
|
-
* setThemeMode(themeMode);
|
|
24
|
-
* }, [themeMode]);
|
|
25
|
-
* ```
|
|
26
|
-
*/
|
|
27
|
-
import type { ThemeMode } from '../../presentation/tokens/core/ColorPalette';
|
|
28
|
-
interface GlobalThemeStore {
|
|
29
|
-
/** Current theme mode */
|
|
30
|
-
themeMode: ThemeMode;
|
|
31
|
-
/** Update theme mode (called by app when theme changes) */
|
|
32
|
-
setThemeMode: (mode: ThemeMode) => void;
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* Global theme store for design system components
|
|
36
|
-
*
|
|
37
|
-
* This is a MINIMAL store - app has the real theme logic.
|
|
38
|
-
* Design system just mirrors the current theme for its components.
|
|
39
|
-
*/
|
|
40
|
-
export declare const useDesignSystemTheme: import("zustand").UseBoundStore<import("zustand").StoreApi<GlobalThemeStore>>;
|
|
41
|
-
export type { ThemeMode };
|
|
42
|
-
//# sourceMappingURL=globalThemeStore.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"globalThemeStore.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/theme/globalThemeStore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6CAA6C,CAAC;AAE7E,UAAU,gBAAgB;IACxB,yBAAyB;IACzB,SAAS,EAAE,SAAS,CAAC;IAErB,2DAA2D;IAC3D,YAAY,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,CAAC;CACzC;AAED;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,+EAG9B,CAAC;AAGJ,YAAY,EAAE,SAAS,EAAE,CAAC"}
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Global Theme Store for Design System
|
|
3
|
-
*
|
|
4
|
-
* Minimal Zustand store for theme state management.
|
|
5
|
-
* Apps can sync their theme state with this global store.
|
|
6
|
-
*
|
|
7
|
-
* WHY THIS EXISTS:
|
|
8
|
-
* - ScreenLayout needs to know current theme mode
|
|
9
|
-
* - Without prop drilling or Context API
|
|
10
|
-
* - Single source of truth for design system components
|
|
11
|
-
* - Apps control theme, design system reacts
|
|
12
|
-
*
|
|
13
|
-
* USAGE IN APP:
|
|
14
|
-
* ```typescript
|
|
15
|
-
* import { useDesignSystemTheme } from '@umituz/react-native-design-system';
|
|
16
|
-
* import { useTheme } from '@domains/theme';
|
|
17
|
-
*
|
|
18
|
-
* // Sync app theme with design system
|
|
19
|
-
* const { themeMode } = useTheme();
|
|
20
|
-
* const { setThemeMode } = useDesignSystemTheme();
|
|
21
|
-
*
|
|
22
|
-
* useEffect(() => {
|
|
23
|
-
* setThemeMode(themeMode);
|
|
24
|
-
* }, [themeMode]);
|
|
25
|
-
* ```
|
|
26
|
-
*/
|
|
27
|
-
import { create } from 'zustand';
|
|
28
|
-
/**
|
|
29
|
-
* Global theme store for design system components
|
|
30
|
-
*
|
|
31
|
-
* This is a MINIMAL store - app has the real theme logic.
|
|
32
|
-
* Design system just mirrors the current theme for its components.
|
|
33
|
-
*/
|
|
34
|
-
export const useDesignSystemTheme = create((set) => ({
|
|
35
|
-
themeMode: 'light',
|
|
36
|
-
setThemeMode: (mode) => set({ themeMode: mode }),
|
|
37
|
-
}));
|
|
38
|
-
//# sourceMappingURL=globalThemeStore.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"globalThemeStore.js","sourceRoot":"","sources":["../../../src/infrastructure/theme/globalThemeStore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAWjC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,MAAM,CAAmB,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IACrE,SAAS,EAAE,OAAO;IAClB,YAAY,EAAE,CAAC,IAAe,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;CAC5D,CAAC,CAAC,CAAC"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
interface LanguageSwitcherProps {
|
|
3
|
-
showName?: boolean;
|
|
4
|
-
showFlag?: boolean;
|
|
5
|
-
color?: string;
|
|
6
|
-
navigationScreen?: string;
|
|
7
|
-
}
|
|
8
|
-
export declare const LanguageSwitcher: React.FC<LanguageSwitcherProps>;
|
|
9
|
-
export default LanguageSwitcher;
|
|
10
|
-
//# sourceMappingURL=LanguageSwitcher.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"LanguageSwitcher.d.ts","sourceRoot":"","sources":["../../../src/presentation/molecules/LanguageSwitcher.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAO1B,UAAU,qBAAqB;IAC7B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,qBAAqB,CAmB5D,CAAC;AAQF,eAAe,gBAAgB,CAAC"}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { TouchableOpacity } from 'react-native';
|
|
3
|
-
import { AtomicText, AtomicIcon } from '../atoms';
|
|
4
|
-
import { useAppDesignTokens } from '../hooks/useAppDesignTokens';
|
|
5
|
-
import { useLanguageNavigation } from './languageswitcher/hooks/useLanguageNavigation';
|
|
6
|
-
import { languageSwitcherConfig } from './languageswitcher/config/languageSwitcherConfig';
|
|
7
|
-
export const LanguageSwitcher = ({ showName = false, showFlag = true, color, navigationScreen = languageSwitcherConfig.defaultNavigationScreen, }) => {
|
|
8
|
-
const tokens = useAppDesignTokens();
|
|
9
|
-
const { currentLang, navigateToLanguageSelection } = useLanguageNavigation(navigationScreen);
|
|
10
|
-
const iconColor = color || tokens.colors.textPrimary;
|
|
11
|
-
const styles = getStyles(tokens);
|
|
12
|
-
return (<TouchableOpacity style={styles.container} onPress={navigateToLanguageSelection} activeOpacity={0.7} hitSlop={languageSwitcherConfig.hitSlop}>
|
|
13
|
-
{showFlag && <AtomicText type="headlineSmall" style={styles.flag}>{currentLang.flag}</AtomicText>}
|
|
14
|
-
{showName && <AtomicText type="bodySmall" color={iconColor} style={styles.languageName}>{currentLang.nativeName}</AtomicText>}
|
|
15
|
-
{!showName && !showFlag && <AtomicIcon name="Languages" color="primary"/>}
|
|
16
|
-
</TouchableOpacity>);
|
|
17
|
-
};
|
|
18
|
-
const getStyles = (tokens) => ({
|
|
19
|
-
container: { flexDirection: 'row', alignItems: 'center', gap: tokens.spacing.sm, paddingHorizontal: tokens.spacing.xs },
|
|
20
|
-
flag: { fontSize: tokens.typography.headingSmall.fontSize },
|
|
21
|
-
languageName: { fontSize: tokens.typography.bodySmall.fontSize, fontWeight: tokens.typography.semibold },
|
|
22
|
-
});
|
|
23
|
-
export default LanguageSwitcher;
|
|
24
|
-
//# sourceMappingURL=LanguageSwitcher.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"LanguageSwitcher.js","sourceRoot":"","sources":["../../../src/presentation/molecules/LanguageSwitcher.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,gBAAgB,EAAc,MAAM,cAAc,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,gDAAgD,CAAC;AACvF,OAAO,EAAE,sBAAsB,EAAE,MAAM,kDAAkD,CAAC;AAS1F,MAAM,CAAC,MAAM,gBAAgB,GAAoC,CAAC,EAChE,QAAQ,GAAG,KAAK,EAChB,QAAQ,GAAG,IAAI,EACf,KAAK,EACL,gBAAgB,GAAG,sBAAsB,CAAC,uBAAuB,GAClE,EAAE,EAAE;IACH,MAAM,MAAM,GAAG,kBAAkB,EAAE,CAAC;IACpC,MAAM,EAAE,WAAW,EAAE,2BAA2B,EAAE,GAAG,qBAAqB,CAAC,gBAAgB,CAAC,CAAC;IAC7F,MAAM,SAAS,GAAG,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC;IAErD,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;IAEjC,OAAO,CACL,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,2BAA2B,CAAC,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAC3I;MAAA,CAAC,QAAQ,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,UAAU,CAAC,CACjG;MAAA,CAAC,QAAQ,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC,CAC7H;MAAA,CAAC,CAAC,QAAQ,IAAI,CAAC,QAAQ,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,SAAS,EAAG,CAC5E;IAAA,EAAE,gBAAgB,CAAC,CACpB,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,SAAS,GAAG,CAAC,MAA6C,EAAE,EAAE,CAAC,CAAC;IACpE,SAAS,EAAE,EAAE,aAAa,EAAE,KAAc,EAAE,UAAU,EAAE,QAAiB,EAAE,GAAG,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,iBAAiB,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE;IACzI,IAAI,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,QAAQ,EAAE;IAC3D,YAAY,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE;CACzG,CAAC,CAAC;AAEH,eAAe,gBAAgB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"languageSwitcherConfig.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/molecules/languageswitcher/config/languageSwitcherConfig.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,sBAAsB;;;;;;;;;CAIlC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"languageSwitcherConfig.js","sourceRoot":"","sources":["../../../../../src/presentation/molecules/languageswitcher/config/languageSwitcherConfig.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,eAAe,EAAE,EAAE;IACnB,uBAAuB,EAAE,mBAAmB;IAC5C,OAAO,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;CACtD,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useLanguageNavigation.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/molecules/languageswitcher/hooks/useLanguageNavigation.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,qBAAqB,GAAI,kBAAkB,MAAM;;;CAU7D,CAAC"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
// @ts-ignore - Optional peer dependency
|
|
2
|
-
import { useNavigation } from '@react-navigation/native';
|
|
3
|
-
// @ts-ignore - Optional peer dependency
|
|
4
|
-
import { useLocalization, getLanguageByCode, getDefaultLanguage } from '@umituz/react-native-localization';
|
|
5
|
-
export const useLanguageNavigation = (navigationScreen) => {
|
|
6
|
-
const navigation = useNavigation();
|
|
7
|
-
const { currentLanguage } = useLocalization();
|
|
8
|
-
const currentLang = getLanguageByCode(currentLanguage) || getDefaultLanguage();
|
|
9
|
-
const navigateToLanguageSelection = () => {
|
|
10
|
-
navigation.navigate(navigationScreen);
|
|
11
|
-
};
|
|
12
|
-
return { currentLang, navigateToLanguageSelection };
|
|
13
|
-
};
|
|
14
|
-
//# sourceMappingURL=useLanguageNavigation.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useLanguageNavigation.js","sourceRoot":"","sources":["../../../../../src/presentation/molecules/languageswitcher/hooks/useLanguageNavigation.ts"],"names":[],"mappings":"AAAA,wCAAwC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,wCAAwC;AACxC,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAE3G,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,gBAAwB,EAAE,EAAE;IAChE,MAAM,UAAU,GAAG,aAAa,EAAE,CAAC;IACnC,MAAM,EAAE,eAAe,EAAE,GAAG,eAAe,EAAE,CAAC;IAC9C,MAAM,WAAW,GAAG,iBAAiB,CAAC,eAAe,CAAC,IAAI,kBAAkB,EAAE,CAAC;IAE/E,MAAM,2BAA2B,GAAG,GAAG,EAAE;QACvC,UAAU,CAAC,QAAQ,CAAC,gBAAyB,CAAC,CAAC;IACjD,CAAC,CAAC;IAEF,OAAO,EAAE,WAAW,EAAE,2BAA2B,EAAE,CAAC;AACtD,CAAC,CAAC"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* DESIGN TOKENS - PUBLIC API
|
|
3
|
-
*
|
|
4
|
-
* ✅ CLEAN BARREL EXPORT - Single source of truth
|
|
5
|
-
* ✅ ZERO DUPLICATION - All tokens from TokenFactory
|
|
6
|
-
* ✅ TYPE-SAFE - Full TypeScript support
|
|
7
|
-
* ✅ FACTORY-FIRST - Benefits all 100+ generated apps
|
|
8
|
-
*
|
|
9
|
-
* @module AppDesignTokens
|
|
10
|
-
*/
|
|
11
|
-
export { createDesignTokens, STATIC_DESIGN_TOKENS, STATIC_TOKENS, withAlpha, type DesignTokens, type ThemeMode, type ColorPalette, } from './core/TokenFactory';
|
|
12
|
-
export { BASE_TOKENS, spacing, typography, borders, iconSizes, opacity, avatarSizes, type Spacing, type Typography, type Borders, type IconSizes, type Opacity, type AvatarSizes, type BaseTokens, } from './core/BaseTokens';
|
|
13
|
-
export { lightColors, darkColors, getColorPalette, } from './core/ColorPalette';
|
|
14
|
-
//# sourceMappingURL=AppDesignTokens.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AppDesignTokens.d.ts","sourceRoot":"","sources":["../../../src/presentation/tokens/AppDesignTokens.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAMH,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,aAAa,EACb,SAAS,EACT,KAAK,YAAY,EACjB,KAAK,SAAS,EACd,KAAK,YAAY,GAClB,MAAM,qBAAqB,CAAC;AAM7B,OAAO,EACL,WAAW,EACX,OAAO,EACP,UAAU,EACV,OAAO,EACP,SAAS,EACT,OAAO,EACP,WAAW,EACX,KAAK,OAAO,EACZ,KAAK,UAAU,EACf,KAAK,OAAO,EACZ,KAAK,SAAS,EACd,KAAK,OAAO,EACZ,KAAK,WAAW,EAChB,KAAK,UAAU,GAChB,MAAM,mBAAmB,CAAC;AAM3B,OAAO,EACL,WAAW,EACX,UAAU,EACV,eAAe,GAChB,MAAM,qBAAqB,CAAC"}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* DESIGN TOKENS - PUBLIC API
|
|
3
|
-
*
|
|
4
|
-
* ✅ CLEAN BARREL EXPORT - Single source of truth
|
|
5
|
-
* ✅ ZERO DUPLICATION - All tokens from TokenFactory
|
|
6
|
-
* ✅ TYPE-SAFE - Full TypeScript support
|
|
7
|
-
* ✅ FACTORY-FIRST - Benefits all 100+ generated apps
|
|
8
|
-
*
|
|
9
|
-
* @module AppDesignTokens
|
|
10
|
-
*/
|
|
11
|
-
// =============================================================================
|
|
12
|
-
// CORE EXPORTS (from TokenFactory)
|
|
13
|
-
// =============================================================================
|
|
14
|
-
export { createDesignTokens, STATIC_DESIGN_TOKENS, STATIC_TOKENS, withAlpha, } from './core/TokenFactory';
|
|
15
|
-
// =============================================================================
|
|
16
|
-
// BASE TOKEN EXPORTS
|
|
17
|
-
// =============================================================================
|
|
18
|
-
export { BASE_TOKENS, spacing, typography, borders, iconSizes, opacity, avatarSizes, } from './core/BaseTokens';
|
|
19
|
-
// =============================================================================
|
|
20
|
-
// COLOR PALETTE EXPORTS
|
|
21
|
-
// =============================================================================
|
|
22
|
-
export { lightColors, darkColors, getColorPalette, } from './core/ColorPalette';
|
|
23
|
-
//# sourceMappingURL=AppDesignTokens.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AppDesignTokens.js","sourceRoot":"","sources":["../../../src/presentation/tokens/AppDesignTokens.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,gFAAgF;AAChF,mCAAmC;AACnC,gFAAgF;AAEhF,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,aAAa,EACb,SAAS,GAIV,MAAM,qBAAqB,CAAC;AAE7B,gFAAgF;AAChF,qBAAqB;AACrB,gFAAgF;AAEhF,OAAO,EACL,WAAW,EACX,OAAO,EACP,UAAU,EACV,OAAO,EACP,SAAS,EACT,OAAO,EACP,WAAW,GAQZ,MAAM,mBAAmB,CAAC;AAE3B,gFAAgF;AAChF,wBAAwB;AACxB,gFAAgF;AAEhF,OAAO,EACL,WAAW,EACX,UAAU,EACV,eAAe,GAChB,MAAM,qBAAqB,CAAC"}
|