@umituz/react-native-design-system 1.3.0 → 1.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/domains/icons/domain/config/IconLibraryConfig.d.ts +91 -0
- package/lib/domains/icons/domain/config/IconLibraryConfig.d.ts.map +1 -0
- package/lib/domains/icons/domain/config/IconLibraryConfig.js +85 -0
- package/lib/domains/icons/domain/config/IconLibraryConfig.js.map +1 -0
- package/lib/domains/icons/domain/entities/Icon.d.ts +111 -0
- package/lib/domains/icons/domain/entities/Icon.d.ts.map +1 -0
- package/lib/domains/icons/domain/entities/Icon.js +87 -0
- package/lib/domains/icons/domain/entities/Icon.js.map +1 -0
- package/lib/domains/icons/domain/interfaces/IIconAdapter.d.ts +114 -0
- package/lib/domains/icons/domain/interfaces/IIconAdapter.d.ts.map +1 -0
- package/lib/domains/icons/domain/interfaces/IIconAdapter.js +17 -0
- package/lib/domains/icons/domain/interfaces/IIconAdapter.js.map +1 -0
- package/lib/domains/icons/index.d.ts +84 -0
- package/lib/domains/icons/index.d.ts.map +1 -0
- package/lib/domains/icons/index.js +89 -0
- package/lib/domains/icons/index.js.map +1 -0
- package/lib/domains/icons/infrastructure/adapters/LucideAdapter.d.ts +24 -0
- package/lib/domains/icons/infrastructure/adapters/LucideAdapter.d.ts.map +1 -0
- package/lib/domains/icons/infrastructure/adapters/LucideAdapter.js +85 -0
- package/lib/domains/icons/infrastructure/adapters/LucideAdapter.js.map +1 -0
- package/lib/domains/icons/infrastructure/registries/ExpoIconRegistry.d.ts +23 -0
- package/lib/domains/icons/infrastructure/registries/ExpoIconRegistry.d.ts.map +1 -0
- package/lib/domains/icons/infrastructure/registries/ExpoIconRegistry.js +178 -0
- package/lib/domains/icons/infrastructure/registries/ExpoIconRegistry.js.map +1 -0
- package/lib/domains/icons/presentation/components/Icon.d.ts +42 -0
- package/lib/domains/icons/presentation/components/Icon.d.ts.map +1 -0
- package/lib/domains/icons/presentation/components/Icon.js +86 -0
- package/lib/domains/icons/presentation/components/Icon.js.map +1 -0
- package/lib/domains/icons/presentation/hooks/useIconLibrary.d.ts +38 -0
- package/lib/domains/icons/presentation/hooks/useIconLibrary.d.ts.map +1 -0
- package/lib/domains/icons/presentation/hooks/useIconLibrary.js +114 -0
- package/lib/domains/icons/presentation/hooks/useIconLibrary.js.map +1 -0
- package/lib/index.d.ts +66 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +106 -0
- package/lib/index.js.map +1 -0
- package/lib/infrastructure/theme/globalThemeStore.d.ts +42 -0
- package/lib/infrastructure/theme/globalThemeStore.d.ts.map +1 -0
- package/lib/infrastructure/theme/globalThemeStore.js +38 -0
- package/lib/infrastructure/theme/globalThemeStore.js.map +1 -0
- package/lib/presentation/atoms/AtomicAvatar.d.ts +48 -0
- package/lib/presentation/atoms/AtomicAvatar.d.ts.map +1 -0
- package/lib/presentation/atoms/AtomicAvatar.js +85 -0
- package/lib/presentation/atoms/AtomicAvatar.js.map +1 -0
- package/lib/presentation/atoms/AtomicAvatarGroup.d.ts +56 -0
- package/lib/presentation/atoms/AtomicAvatarGroup.d.ts.map +1 -0
- package/lib/presentation/atoms/AtomicAvatarGroup.js +83 -0
- package/lib/presentation/atoms/AtomicAvatarGroup.js.map +1 -0
- package/lib/presentation/atoms/AtomicBadge.d.ts +42 -0
- package/lib/presentation/atoms/AtomicBadge.d.ts.map +1 -0
- package/lib/presentation/atoms/AtomicBadge.js +168 -0
- package/lib/presentation/atoms/AtomicBadge.js.map +1 -0
- package/lib/presentation/atoms/AtomicButton.d.ts +22 -0
- package/lib/presentation/atoms/AtomicButton.d.ts.map +1 -0
- package/lib/presentation/atoms/AtomicButton.js +193 -0
- package/lib/presentation/atoms/AtomicButton.js.map +1 -0
- package/lib/presentation/atoms/AtomicCard.d.ts +15 -0
- package/lib/presentation/atoms/AtomicCard.d.ts.map +1 -0
- package/lib/presentation/atoms/AtomicCard.js +89 -0
- package/lib/presentation/atoms/AtomicCard.js.map +1 -0
- package/lib/presentation/atoms/AtomicChip.d.ts +53 -0
- package/lib/presentation/atoms/AtomicChip.d.ts.map +1 -0
- package/lib/presentation/atoms/AtomicChip.js +131 -0
- package/lib/presentation/atoms/AtomicChip.js.map +1 -0
- package/lib/presentation/atoms/AtomicDatePicker.d.ts +75 -0
- package/lib/presentation/atoms/AtomicDatePicker.d.ts.map +1 -0
- package/lib/presentation/atoms/AtomicDatePicker.js +246 -0
- package/lib/presentation/atoms/AtomicDatePicker.js.map +1 -0
- package/lib/presentation/atoms/AtomicDivider.d.ts +45 -0
- package/lib/presentation/atoms/AtomicDivider.d.ts.map +1 -0
- package/lib/presentation/atoms/AtomicDivider.js +58 -0
- package/lib/presentation/atoms/AtomicDivider.js.map +1 -0
- package/lib/presentation/atoms/AtomicFab.d.ts +38 -0
- package/lib/presentation/atoms/AtomicFab.d.ts.map +1 -0
- package/lib/presentation/atoms/AtomicFab.js +69 -0
- package/lib/presentation/atoms/AtomicFab.js.map +1 -0
- package/lib/presentation/atoms/AtomicFilter.d.ts +37 -0
- package/lib/presentation/atoms/AtomicFilter.d.ts.map +1 -0
- package/lib/presentation/atoms/AtomicFilter.js +104 -0
- package/lib/presentation/atoms/AtomicFilter.js.map +1 -0
- package/lib/presentation/atoms/AtomicFormError.d.ts +30 -0
- package/lib/presentation/atoms/AtomicFormError.d.ts.map +1 -0
- package/lib/presentation/atoms/AtomicFormError.js +64 -0
- package/lib/presentation/atoms/AtomicFormError.js.map +1 -0
- package/lib/presentation/atoms/AtomicIcon.d.ts +36 -0
- package/lib/presentation/atoms/AtomicIcon.d.ts.map +1 -0
- package/lib/presentation/atoms/AtomicIcon.js +30 -0
- package/lib/presentation/atoms/AtomicIcon.js.map +1 -0
- package/lib/presentation/atoms/AtomicImage.d.ts +40 -0
- package/lib/presentation/atoms/AtomicImage.d.ts.map +1 -0
- package/lib/presentation/atoms/AtomicImage.js +92 -0
- package/lib/presentation/atoms/AtomicImage.js.map +1 -0
- package/lib/presentation/atoms/AtomicInput.d.ts +71 -0
- package/lib/presentation/atoms/AtomicInput.d.ts.map +1 -0
- package/lib/presentation/atoms/AtomicInput.js +196 -0
- package/lib/presentation/atoms/AtomicInput.js.map +1 -0
- package/lib/presentation/atoms/AtomicNumberInput.d.ts +69 -0
- package/lib/presentation/atoms/AtomicNumberInput.d.ts.map +1 -0
- package/lib/presentation/atoms/AtomicNumberInput.js +125 -0
- package/lib/presentation/atoms/AtomicNumberInput.js.map +1 -0
- package/lib/presentation/atoms/AtomicPicker.d.ts +52 -0
- package/lib/presentation/atoms/AtomicPicker.d.ts.map +1 -0
- package/lib/presentation/atoms/AtomicPicker.js +299 -0
- package/lib/presentation/atoms/AtomicPicker.js.map +1 -0
- package/lib/presentation/atoms/AtomicProgress.d.ts +47 -0
- package/lib/presentation/atoms/AtomicProgress.d.ts.map +1 -0
- package/lib/presentation/atoms/AtomicProgress.js +81 -0
- package/lib/presentation/atoms/AtomicProgress.js.map +1 -0
- package/lib/presentation/atoms/AtomicSearchBar.d.ts +19 -0
- package/lib/presentation/atoms/AtomicSearchBar.d.ts.map +1 -0
- package/lib/presentation/atoms/AtomicSearchBar.js +46 -0
- package/lib/presentation/atoms/AtomicSearchBar.js.map +1 -0
- package/lib/presentation/atoms/AtomicSkeleton.d.ts +43 -0
- package/lib/presentation/atoms/AtomicSkeleton.d.ts.map +1 -0
- package/lib/presentation/atoms/AtomicSkeleton.js +84 -0
- package/lib/presentation/atoms/AtomicSkeleton.js.map +1 -0
- package/lib/presentation/atoms/AtomicSort.d.ts +72 -0
- package/lib/presentation/atoms/AtomicSort.d.ts.map +1 -0
- package/lib/presentation/atoms/AtomicSort.js +77 -0
- package/lib/presentation/atoms/AtomicSort.js.map +1 -0
- package/lib/presentation/atoms/AtomicSwitch.d.ts +43 -0
- package/lib/presentation/atoms/AtomicSwitch.d.ts.map +1 -0
- package/lib/presentation/atoms/AtomicSwitch.js +104 -0
- package/lib/presentation/atoms/AtomicSwitch.js.map +1 -0
- package/lib/presentation/atoms/AtomicText.d.ts +14 -0
- package/lib/presentation/atoms/AtomicText.d.ts.map +1 -0
- package/lib/presentation/atoms/AtomicText.js +36 -0
- package/lib/presentation/atoms/AtomicText.js.map +1 -0
- package/lib/presentation/atoms/AtomicTextArea.d.ts +85 -0
- package/lib/presentation/atoms/AtomicTextArea.d.ts.map +1 -0
- package/lib/presentation/atoms/AtomicTextArea.js +196 -0
- package/lib/presentation/atoms/AtomicTextArea.js.map +1 -0
- package/lib/presentation/atoms/AtomicTouchable.d.ts +87 -0
- package/lib/presentation/atoms/AtomicTouchable.d.ts.map +1 -0
- package/lib/presentation/atoms/AtomicTouchable.js +151 -0
- package/lib/presentation/atoms/AtomicTouchable.js.map +1 -0
- package/lib/presentation/atoms/fab/styles/fabStyles.d.ts +23 -0
- package/lib/presentation/atoms/fab/styles/fabStyles.d.ts.map +1 -0
- package/lib/presentation/atoms/fab/styles/fabStyles.js +63 -0
- package/lib/presentation/atoms/fab/styles/fabStyles.js.map +1 -0
- package/lib/presentation/atoms/fab/types/index.d.ts +76 -0
- package/lib/presentation/atoms/fab/types/index.d.ts.map +1 -0
- package/lib/presentation/atoms/fab/types/index.js +2 -0
- package/lib/presentation/atoms/fab/types/index.js.map +1 -0
- package/lib/presentation/atoms/filter/styles/filterStyles.d.ts +15 -0
- package/lib/presentation/atoms/filter/styles/filterStyles.d.ts.map +1 -0
- package/lib/presentation/atoms/filter/styles/filterStyles.js +29 -0
- package/lib/presentation/atoms/filter/styles/filterStyles.js.map +1 -0
- package/lib/presentation/atoms/filter/types/index.d.ts +76 -0
- package/lib/presentation/atoms/filter/types/index.d.ts.map +1 -0
- package/lib/presentation/atoms/filter/types/index.js +2 -0
- package/lib/presentation/atoms/filter/types/index.js.map +1 -0
- package/lib/presentation/atoms/index.d.ts +276 -0
- package/lib/presentation/atoms/index.d.ts.map +1 -0
- package/lib/presentation/atoms/index.js +149 -0
- package/lib/presentation/atoms/index.js.map +1 -0
- package/lib/presentation/atoms/input/hooks/useInputState.d.ts +7 -0
- package/lib/presentation/atoms/input/hooks/useInputState.d.ts.map +1 -0
- package/lib/presentation/atoms/input/hooks/useInputState.js +13 -0
- package/lib/presentation/atoms/input/hooks/useInputState.js.map +1 -0
- package/lib/presentation/atoms/input/styles/inputStyles.d.ts +13 -0
- package/lib/presentation/atoms/input/styles/inputStyles.d.ts.map +1 -0
- package/lib/presentation/atoms/input/styles/inputStyles.js +59 -0
- package/lib/presentation/atoms/input/styles/inputStyles.js.map +1 -0
- package/lib/presentation/atoms/input/types/index.d.ts +24 -0
- package/lib/presentation/atoms/input/types/index.d.ts.map +1 -0
- package/lib/presentation/atoms/input/types/index.js +2 -0
- package/lib/presentation/atoms/input/types/index.js.map +1 -0
- package/lib/presentation/atoms/picker/styles/pickerStyles.d.ts +96 -0
- package/lib/presentation/atoms/picker/styles/pickerStyles.d.ts.map +1 -0
- package/lib/presentation/atoms/picker/styles/pickerStyles.js +177 -0
- package/lib/presentation/atoms/picker/styles/pickerStyles.js.map +1 -0
- package/lib/presentation/atoms/picker/types/index.d.ts +38 -0
- package/lib/presentation/atoms/picker/types/index.d.ts.map +1 -0
- package/lib/presentation/atoms/picker/types/index.js +2 -0
- package/lib/presentation/atoms/picker/types/index.js.map +1 -0
- package/lib/presentation/atoms/touchable/styles/touchableStyles.d.ts +36 -0
- package/lib/presentation/atoms/touchable/styles/touchableStyles.d.ts.map +1 -0
- package/lib/presentation/atoms/touchable/styles/touchableStyles.js +62 -0
- package/lib/presentation/atoms/touchable/styles/touchableStyles.js.map +1 -0
- package/lib/presentation/atoms/touchable/types/index.d.ts +140 -0
- package/lib/presentation/atoms/touchable/types/index.d.ts.map +1 -0
- package/lib/presentation/atoms/touchable/types/index.js +2 -0
- package/lib/presentation/atoms/touchable/types/index.js.map +1 -0
- package/lib/presentation/hooks/useAppDesignTokens.d.ts +34 -0
- package/lib/presentation/hooks/useAppDesignTokens.d.ts.map +1 -0
- package/lib/presentation/hooks/useAppDesignTokens.js +39 -0
- package/lib/presentation/hooks/useAppDesignTokens.js.map +1 -0
- package/lib/presentation/hooks/useResponsive.d.ts +80 -0
- package/lib/presentation/hooks/useResponsive.d.ts.map +1 -0
- package/lib/presentation/hooks/useResponsive.js +82 -0
- package/lib/presentation/hooks/useResponsive.js.map +1 -0
- package/lib/presentation/loading/index.d.ts +23 -0
- package/lib/presentation/loading/index.d.ts.map +1 -0
- package/lib/presentation/loading/index.js +26 -0
- package/lib/presentation/loading/index.js.map +1 -0
- package/lib/presentation/loading/presentation/components/LoadingSpinner.d.ts +28 -0
- package/lib/presentation/loading/presentation/components/LoadingSpinner.d.ts.map +1 -0
- package/lib/presentation/loading/presentation/components/LoadingSpinner.js +77 -0
- package/lib/presentation/loading/presentation/components/LoadingSpinner.js.map +1 -0
- package/lib/presentation/loading/presentation/components/LoadingState.d.ts +39 -0
- package/lib/presentation/loading/presentation/components/LoadingState.d.ts.map +1 -0
- package/lib/presentation/loading/presentation/components/LoadingState.js +123 -0
- package/lib/presentation/loading/presentation/components/LoadingState.js.map +1 -0
- package/lib/presentation/loading/presentation/hooks/useLoading.d.ts +50 -0
- package/lib/presentation/loading/presentation/hooks/useLoading.d.ts.map +1 -0
- package/lib/presentation/loading/presentation/hooks/useLoading.js +49 -0
- package/lib/presentation/loading/presentation/hooks/useLoading.js.map +1 -0
- package/lib/presentation/molecules/AtomicConfirmationModal.d.ts +73 -0
- package/lib/presentation/molecules/AtomicConfirmationModal.d.ts.map +1 -0
- package/lib/presentation/molecules/AtomicConfirmationModal.js +172 -0
- package/lib/presentation/molecules/AtomicConfirmationModal.js.map +1 -0
- package/lib/presentation/molecules/EmptyState.d.ts +41 -0
- package/lib/presentation/molecules/EmptyState.d.ts.map +1 -0
- package/lib/presentation/molecules/EmptyState.js +68 -0
- package/lib/presentation/molecules/EmptyState.js.map +1 -0
- package/lib/presentation/molecules/FormField.d.ts +22 -0
- package/lib/presentation/molecules/FormField.d.ts.map +1 -0
- package/lib/presentation/molecules/FormField.js +76 -0
- package/lib/presentation/molecules/FormField.js.map +1 -0
- package/lib/presentation/molecules/GridContainer.d.ts +40 -0
- package/lib/presentation/molecules/GridContainer.d.ts.map +1 -0
- package/lib/presentation/molecules/GridContainer.js +77 -0
- package/lib/presentation/molecules/GridContainer.js.map +1 -0
- package/lib/presentation/molecules/IconContainer.d.ts +29 -0
- package/lib/presentation/molecules/IconContainer.d.ts.map +1 -0
- package/lib/presentation/molecules/IconContainer.js +60 -0
- package/lib/presentation/molecules/IconContainer.js.map +1 -0
- package/lib/presentation/molecules/LanguageSwitcher.d.ts +10 -0
- package/lib/presentation/molecules/LanguageSwitcher.d.ts.map +1 -0
- package/lib/presentation/molecules/LanguageSwitcher.js +24 -0
- package/lib/presentation/molecules/LanguageSwitcher.js.map +1 -0
- package/lib/presentation/molecules/ListItem.d.ts +5 -0
- package/lib/presentation/molecules/ListItem.d.ts.map +1 -0
- package/lib/presentation/molecules/ListItem.js +24 -0
- package/lib/presentation/molecules/ListItem.js.map +1 -0
- package/lib/presentation/molecules/ScreenHeader.d.ts +55 -0
- package/lib/presentation/molecules/ScreenHeader.d.ts.map +1 -0
- package/lib/presentation/molecules/ScreenHeader.js +94 -0
- package/lib/presentation/molecules/ScreenHeader.js.map +1 -0
- package/lib/presentation/molecules/SearchBar.d.ts +18 -0
- package/lib/presentation/molecules/SearchBar.d.ts.map +1 -0
- package/lib/presentation/molecules/SearchBar.js +47 -0
- package/lib/presentation/molecules/SearchBar.js.map +1 -0
- package/lib/presentation/molecules/SectionCard.d.ts +25 -0
- package/lib/presentation/molecules/SectionCard.d.ts.map +1 -0
- package/lib/presentation/molecules/SectionCard.js +47 -0
- package/lib/presentation/molecules/SectionCard.js.map +1 -0
- package/lib/presentation/molecules/SectionContainer.d.ts +33 -0
- package/lib/presentation/molecules/SectionContainer.d.ts.map +1 -0
- package/lib/presentation/molecules/SectionContainer.js +64 -0
- package/lib/presentation/molecules/SectionContainer.js.map +1 -0
- package/lib/presentation/molecules/SectionHeader.d.ts +37 -0
- package/lib/presentation/molecules/SectionHeader.d.ts.map +1 -0
- package/lib/presentation/molecules/SectionHeader.js +73 -0
- package/lib/presentation/molecules/SectionHeader.js.map +1 -0
- package/lib/presentation/molecules/confirmation-modal/styles/confirmationModalStyles.d.ts +50 -0
- package/lib/presentation/molecules/confirmation-modal/styles/confirmationModalStyles.d.ts.map +1 -0
- package/lib/presentation/molecules/confirmation-modal/styles/confirmationModalStyles.js +115 -0
- package/lib/presentation/molecules/confirmation-modal/styles/confirmationModalStyles.js.map +1 -0
- package/lib/presentation/molecules/confirmation-modal/types/index.d.ts +88 -0
- package/lib/presentation/molecules/confirmation-modal/types/index.d.ts.map +1 -0
- package/lib/presentation/molecules/confirmation-modal/types/index.js +7 -0
- package/lib/presentation/molecules/confirmation-modal/types/index.js.map +1 -0
- package/lib/presentation/molecules/index.d.ts +28 -0
- package/lib/presentation/molecules/index.d.ts.map +1 -0
- package/lib/presentation/molecules/index.js +18 -0
- package/lib/presentation/molecules/index.js.map +1 -0
- package/lib/presentation/molecules/languageswitcher/config/languageSwitcherConfig.d.ts +11 -0
- package/lib/presentation/molecules/languageswitcher/config/languageSwitcherConfig.d.ts.map +1 -0
- package/lib/presentation/molecules/languageswitcher/config/languageSwitcherConfig.js +6 -0
- package/lib/presentation/molecules/languageswitcher/config/languageSwitcherConfig.js.map +1 -0
- package/lib/presentation/molecules/languageswitcher/hooks/useLanguageNavigation.d.ts +5 -0
- package/lib/presentation/molecules/languageswitcher/hooks/useLanguageNavigation.d.ts.map +1 -0
- package/lib/presentation/molecules/languageswitcher/hooks/useLanguageNavigation.js +12 -0
- package/lib/presentation/molecules/languageswitcher/hooks/useLanguageNavigation.js.map +1 -0
- package/lib/presentation/molecules/listitem/styles/listItemStyles.d.ts +12 -0
- package/lib/presentation/molecules/listitem/styles/listItemStyles.d.ts.map +1 -0
- package/lib/presentation/molecules/listitem/styles/listItemStyles.js +15 -0
- package/lib/presentation/molecules/listitem/styles/listItemStyles.js.map +1 -0
- package/lib/presentation/molecules/listitem/types/index.d.ts +17 -0
- package/lib/presentation/molecules/listitem/types/index.d.ts.map +1 -0
- package/lib/presentation/molecules/listitem/types/index.js +2 -0
- package/lib/presentation/molecules/listitem/types/index.js.map +1 -0
- package/lib/presentation/organisms/AppHeader.d.ts +30 -0
- package/lib/presentation/organisms/AppHeader.d.ts.map +1 -0
- package/lib/presentation/organisms/AppHeader.js +78 -0
- package/lib/presentation/organisms/AppHeader.js.map +1 -0
- package/lib/presentation/organisms/FormContainer.d.ts +76 -0
- package/lib/presentation/organisms/FormContainer.d.ts.map +1 -0
- package/lib/presentation/organisms/FormContainer.js +127 -0
- package/lib/presentation/organisms/FormContainer.js.map +1 -0
- package/lib/presentation/organisms/ScreenLayout.d.ts +99 -0
- package/lib/presentation/organisms/ScreenLayout.d.ts.map +1 -0
- package/lib/presentation/organisms/ScreenLayout.js +78 -0
- package/lib/presentation/organisms/ScreenLayout.js.map +1 -0
- package/lib/presentation/organisms/index.d.ts +16 -0
- package/lib/presentation/organisms/index.d.ts.map +1 -0
- package/lib/presentation/organisms/index.js +14 -0
- package/lib/presentation/organisms/index.js.map +1 -0
- package/lib/presentation/tokens/AppDesignTokens.d.ts +14 -0
- package/lib/presentation/tokens/AppDesignTokens.d.ts.map +1 -0
- package/lib/presentation/tokens/AppDesignTokens.js +23 -0
- package/lib/presentation/tokens/AppDesignTokens.js.map +1 -0
- package/lib/presentation/tokens/commonStyles.d.ts +122 -0
- package/lib/presentation/tokens/commonStyles.d.ts.map +1 -0
- package/lib/presentation/tokens/commonStyles.js +220 -0
- package/lib/presentation/tokens/commonStyles.js.map +1 -0
- package/lib/presentation/tokens/core/BaseTokens.d.ts +337 -0
- package/lib/presentation/tokens/core/BaseTokens.d.ts.map +1 -0
- package/lib/presentation/tokens/core/BaseTokens.js +322 -0
- package/lib/presentation/tokens/core/BaseTokens.js.map +1 -0
- package/lib/presentation/tokens/core/ColorPalette.d.ts +216 -0
- package/lib/presentation/tokens/core/ColorPalette.d.ts.map +1 -0
- package/lib/presentation/tokens/core/ColorPalette.js +330 -0
- package/lib/presentation/tokens/core/ColorPalette.js.map +1 -0
- package/lib/presentation/tokens/core/TokenFactory.d.ts +229 -0
- package/lib/presentation/tokens/core/TokenFactory.d.ts.map +1 -0
- package/lib/presentation/tokens/core/TokenFactory.js +87 -0
- package/lib/presentation/tokens/core/TokenFactory.js.map +1 -0
- package/lib/presentation/utils/platformConstants.d.ts +100 -0
- package/lib/presentation/utils/platformConstants.d.ts.map +1 -0
- package/lib/presentation/utils/platformConstants.js +114 -0
- package/lib/presentation/utils/platformConstants.js.map +1 -0
- package/lib/presentation/utils/responsive.d.ts +218 -0
- package/lib/presentation/utils/responsive.d.ts.map +1 -0
- package/lib/presentation/utils/responsive.js +452 -0
- package/lib/presentation/utils/responsive.js.map +1 -0
- package/lib/presentation/utils/variants/compound.d.ts +10 -0
- package/lib/presentation/utils/variants/compound.d.ts.map +1 -0
- package/lib/presentation/utils/variants/compound.js +16 -0
- package/lib/presentation/utils/variants/compound.js.map +1 -0
- package/lib/presentation/utils/variants/core.d.ts +15 -0
- package/lib/presentation/utils/variants/core.d.ts.map +1 -0
- package/lib/presentation/utils/variants/core.js +23 -0
- package/lib/presentation/utils/variants/core.js.map +1 -0
- package/lib/presentation/utils/variants/helpers.d.ts +5 -0
- package/lib/presentation/utils/variants/helpers.d.ts.map +1 -0
- package/lib/presentation/utils/variants/helpers.js +10 -0
- package/lib/presentation/utils/variants/helpers.js.map +1 -0
- package/lib/presentation/utils/variants.d.ts +4 -0
- package/lib/presentation/utils/variants.d.ts.map +1 -0
- package/lib/presentation/utils/variants.js +4 -0
- package/lib/presentation/utils/variants.js.map +1 -0
- package/package.json +38 -4
- package/src/domains/icons/domain/interfaces/IIconAdapter.ts +6 -3
- package/src/domains/icons/infrastructure/adapters/LucideAdapter.ts +1 -1
- package/src/presentation/atoms/AtomicButton.tsx +1 -1
- package/src/presentation/molecules/AtomicConfirmationModal.tsx +1 -1
- package/src/presentation/molecules/languageswitcher/hooks/useLanguageNavigation.ts +1 -2
- package/src/presentation/tokens/core/ColorPalette.ts +2 -0
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Icons Domain - Centralized Icon System
|
|
3
|
+
*
|
|
4
|
+
* 🎯 SINGLE SOURCE OF TRUTH FOR ALL ICONS
|
|
5
|
+
*
|
|
6
|
+
* Universal icon library system with easy library switching.
|
|
7
|
+
* Change icon library = change one config file!
|
|
8
|
+
*
|
|
9
|
+
* @domain icons
|
|
10
|
+
* @enabled true (All apps)
|
|
11
|
+
*
|
|
12
|
+
* ARCHITECTURE:
|
|
13
|
+
* ```
|
|
14
|
+
* domains/icons/
|
|
15
|
+
* ├── domain/
|
|
16
|
+
* │ ├── config/
|
|
17
|
+
* │ │ └── IconLibraryConfig.ts 🔧 Change library here!
|
|
18
|
+
* │ └── interfaces/
|
|
19
|
+
* │ └── IIconAdapter.ts Interface for adapters
|
|
20
|
+
* ├── infrastructure/
|
|
21
|
+
* │ └── adapters/
|
|
22
|
+
* │ ├── LucideAdapter.ts Current: Lucide (1,639 icons)
|
|
23
|
+
* │ ├── MaterialAdapter.ts Future: Material Icons
|
|
24
|
+
* │ └── FontAwesomeAdapter.ts Future: Font Awesome
|
|
25
|
+
* └── presentation/
|
|
26
|
+
* └── components/
|
|
27
|
+
* └── Icon.tsx Universal Icon component
|
|
28
|
+
* ```
|
|
29
|
+
*
|
|
30
|
+
* USAGE:
|
|
31
|
+
* ```typescript
|
|
32
|
+
* import { Icon } from '@domains/icons';
|
|
33
|
+
*
|
|
34
|
+
* // Basic usage
|
|
35
|
+
* <Icon name="Settings" size="md" color="primary" />
|
|
36
|
+
*
|
|
37
|
+
* // Custom size and color
|
|
38
|
+
* <Icon name="Heart" customSize={32} customColor="#FF0000" />
|
|
39
|
+
*
|
|
40
|
+
* // With background
|
|
41
|
+
* <Icon name="Info" size="lg" withBackground backgroundColor="#667eea" />
|
|
42
|
+
* ```
|
|
43
|
+
*
|
|
44
|
+
* 🔧 TO CHANGE ICON LIBRARY:
|
|
45
|
+
*
|
|
46
|
+
* Step 1: Update package.json
|
|
47
|
+
* ```json
|
|
48
|
+
* {
|
|
49
|
+
* "dependencies": {
|
|
50
|
+
* "new-icon-library": "^1.0.0"
|
|
51
|
+
* }
|
|
52
|
+
* }
|
|
53
|
+
* ```
|
|
54
|
+
*
|
|
55
|
+
* Step 2: Change CURRENT_LIBRARY in domain/config/IconLibraryConfig.ts
|
|
56
|
+
* ```typescript
|
|
57
|
+
* export const CURRENT_LIBRARY: IconLibraryType = 'material'; // Changed!
|
|
58
|
+
* ```
|
|
59
|
+
*
|
|
60
|
+
* Step 3: Create adapter (if needed)
|
|
61
|
+
* ```typescript
|
|
62
|
+
* // infrastructure/adapters/MaterialAdapter.ts
|
|
63
|
+
* export const MaterialAdapter: IIconAdapter = {
|
|
64
|
+
* getIconComponent: (name) => MaterialIcons[name],
|
|
65
|
+
* // ... implement interface
|
|
66
|
+
* };
|
|
67
|
+
* ```
|
|
68
|
+
*
|
|
69
|
+
* Step 4: Done! All apps use new library automatically ✅
|
|
70
|
+
*
|
|
71
|
+
* CURRENT LIBRARY: Lucide (1,639 icons)
|
|
72
|
+
* @see https://lucide.dev/icons/
|
|
73
|
+
*
|
|
74
|
+
* DEPENDENCIES:
|
|
75
|
+
* - lucide-react-native: ^0.468.0 (Current library)
|
|
76
|
+
*/
|
|
77
|
+
// ============================================================================
|
|
78
|
+
// PRESENTATION LAYER - Universal Icon Component
|
|
79
|
+
// ============================================================================
|
|
80
|
+
export { Icon } from './presentation/components/Icon';
|
|
81
|
+
// ============================================================================
|
|
82
|
+
// DOMAIN LAYER - Configuration & Interfaces
|
|
83
|
+
// ============================================================================
|
|
84
|
+
export { CURRENT_LIBRARY, ICON_LIBRARY_CONFIG, getCurrentLibrary, isLucideLibrary, } from './domain/config/IconLibraryConfig';
|
|
85
|
+
// ============================================================================
|
|
86
|
+
// INFRASTRUCTURE LAYER - Adapters
|
|
87
|
+
// ============================================================================
|
|
88
|
+
export { LucideAdapter } from './infrastructure/adapters/LucideAdapter';
|
|
89
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/domains/icons/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2EG;AAEH,+EAA+E;AAC/E,gDAAgD;AAChD,+EAA+E;AAE/E,OAAO,EAAE,IAAI,EAAE,MAAM,gCAAgC,CAAC;AAQtD,+EAA+E;AAC/E,4CAA4C;AAC5C,+EAA+E;AAE/E,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,iBAAiB,EACjB,eAAe,GAChB,MAAM,mCAAmC,CAAC;AAK3C,+EAA+E;AAC/E,kCAAkC;AAClC,+EAA+E;AAE/E,OAAO,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Lucide Icon Library Adapter
|
|
3
|
+
*
|
|
4
|
+
* Adapter for lucide-react-native library (1,639 icons).
|
|
5
|
+
* Implements IIconAdapter interface for seamless library switching.
|
|
6
|
+
*
|
|
7
|
+
* @library lucide-react-native
|
|
8
|
+
* @version ^0.468.0
|
|
9
|
+
* @icons 1,639
|
|
10
|
+
* @type outline
|
|
11
|
+
*
|
|
12
|
+
* @see https://lucide.dev/icons/
|
|
13
|
+
*/
|
|
14
|
+
import { icons } from 'lucide-react-native';
|
|
15
|
+
import type { IIconAdapter } from '../../domain/interfaces/IIconAdapter';
|
|
16
|
+
/**
|
|
17
|
+
* Lucide Adapter Implementation
|
|
18
|
+
*/
|
|
19
|
+
export declare const LucideAdapter: IIconAdapter;
|
|
20
|
+
/**
|
|
21
|
+
* Lucide icon names type (for TypeScript autocomplete)
|
|
22
|
+
*/
|
|
23
|
+
export type LucideIconName = keyof typeof icons;
|
|
24
|
+
//# sourceMappingURL=LucideAdapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LucideAdapter.d.ts","sourceRoot":"","sources":["../../../../../src/domains/icons/infrastructure/adapters/LucideAdapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,KAAK,EAAE,YAAY,EAAuB,MAAM,sCAAsC,CAAC;AAe9F;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,YA6D3B,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,MAAM,OAAO,KAAK,CAAC"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Lucide Icon Library Adapter
|
|
3
|
+
*
|
|
4
|
+
* Adapter for lucide-react-native library (1,639 icons).
|
|
5
|
+
* Implements IIconAdapter interface for seamless library switching.
|
|
6
|
+
*
|
|
7
|
+
* @library lucide-react-native
|
|
8
|
+
* @version ^0.468.0
|
|
9
|
+
* @icons 1,639
|
|
10
|
+
* @type outline
|
|
11
|
+
*
|
|
12
|
+
* @see https://lucide.dev/icons/
|
|
13
|
+
*/
|
|
14
|
+
import { icons } from 'lucide-react-native';
|
|
15
|
+
/**
|
|
16
|
+
* Size mapping: Semantic → Pixels
|
|
17
|
+
*/
|
|
18
|
+
const SIZE_MAP = {
|
|
19
|
+
xs: 16,
|
|
20
|
+
sm: 20,
|
|
21
|
+
md: 24,
|
|
22
|
+
lg: 28,
|
|
23
|
+
xl: 32,
|
|
24
|
+
xxl: 40,
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* Lucide Adapter Implementation
|
|
28
|
+
*/
|
|
29
|
+
export const LucideAdapter = {
|
|
30
|
+
/**
|
|
31
|
+
* Get Lucide icon component by name
|
|
32
|
+
*/
|
|
33
|
+
getIconComponent: (name) => {
|
|
34
|
+
const IconComponent = icons[name];
|
|
35
|
+
if (!IconComponent) {
|
|
36
|
+
console.warn(`[LucideAdapter] Icon "${name}" not found in Lucide library`);
|
|
37
|
+
return null;
|
|
38
|
+
}
|
|
39
|
+
return IconComponent;
|
|
40
|
+
},
|
|
41
|
+
/**
|
|
42
|
+
* Get icon size in pixels
|
|
43
|
+
*/
|
|
44
|
+
getIconSize: (size, customSize) => {
|
|
45
|
+
return customSize || SIZE_MAP[size];
|
|
46
|
+
},
|
|
47
|
+
/**
|
|
48
|
+
* Get icon color from theme
|
|
49
|
+
*/
|
|
50
|
+
getIconColor: (color, tokens, customColor) => {
|
|
51
|
+
if (customColor)
|
|
52
|
+
return customColor;
|
|
53
|
+
const colorMap = {
|
|
54
|
+
primary: tokens.colors.primary,
|
|
55
|
+
secondary: tokens.colors.secondary,
|
|
56
|
+
success: tokens.colors.success,
|
|
57
|
+
warning: tokens.colors.warning,
|
|
58
|
+
error: tokens.colors.error,
|
|
59
|
+
info: tokens.colors.info,
|
|
60
|
+
onSurface: tokens.colors.onSurface,
|
|
61
|
+
surfaceVariant: tokens.colors.surfaceVariant,
|
|
62
|
+
onPrimary: tokens.colors.onPrimary,
|
|
63
|
+
onSecondary: tokens.colors.onSecondary,
|
|
64
|
+
textInverse: tokens.colors.textInverse,
|
|
65
|
+
};
|
|
66
|
+
return colorMap[color];
|
|
67
|
+
},
|
|
68
|
+
/**
|
|
69
|
+
* Get all available Lucide icon names
|
|
70
|
+
*/
|
|
71
|
+
getAllIcons: () => {
|
|
72
|
+
return Object.keys(icons);
|
|
73
|
+
},
|
|
74
|
+
/**
|
|
75
|
+
* Check if icon exists in Lucide library
|
|
76
|
+
*/
|
|
77
|
+
hasIcon: (name) => {
|
|
78
|
+
return name in icons;
|
|
79
|
+
},
|
|
80
|
+
/**
|
|
81
|
+
* Default stroke width for Lucide outline icons
|
|
82
|
+
*/
|
|
83
|
+
getStrokeWidth: () => 2,
|
|
84
|
+
};
|
|
85
|
+
//# sourceMappingURL=LucideAdapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LucideAdapter.js","sourceRoot":"","sources":["../../../../../src/domains/icons/infrastructure/adapters/LucideAdapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAI5C;;GAEG;AACH,MAAM,QAAQ,GAA6B;IACzC,EAAE,EAAE,EAAE;IACN,EAAE,EAAE,EAAE;IACN,EAAE,EAAE,EAAE;IACN,EAAE,EAAE,EAAE;IACN,EAAE,EAAE,EAAE;IACN,GAAG,EAAE,EAAE;CACR,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAiB;IACzC;;OAEG;IACH,gBAAgB,EAAE,CAAC,IAAY,EAAE,EAAE;QACjC,MAAM,aAAa,GAAG,KAAK,CAAC,IAA0B,CAAC,CAAC;QACxD,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,OAAO,CAAC,IAAI,CAAC,yBAAyB,IAAI,+BAA+B,CAAC,CAAC;YAC3E,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,aAAa,CAAC;IACvB,CAAC;IAED;;OAEG;IACH,WAAW,EAAE,CAAC,IAAc,EAAE,UAAmB,EAAE,EAAE;QACnD,OAAO,UAAU,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;IAED;;OAEG;IACH,YAAY,EAAE,CAAC,KAAgB,EAAE,MAAoB,EAAE,WAAoB,EAAE,EAAE;QAC7E,IAAI,WAAW;YAAE,OAAO,WAAW,CAAC;QAEpC,MAAM,QAAQ,GAA8B;YAC1C,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO;YAC9B,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,SAAS;YAClC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO;YAC9B,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO;YAC9B,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK;YAC1B,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI;YACxB,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,SAAS;YAClC,cAAc,EAAE,MAAM,CAAC,MAAM,CAAC,cAAc;YAC5C,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,SAAS;YAClC,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,WAAW;YACtC,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,WAAW;SACvC,CAAC;QAEF,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,WAAW,EAAE,GAAG,EAAE;QAChB,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,OAAO,EAAE,CAAC,IAAY,EAAE,EAAE;QACxB,OAAO,IAAI,IAAI,KAAK,CAAC;IACvB,CAAC;IAED;;OAEG;IACH,cAAc,EAAE,GAAG,EAAE,CAAC,CAAC;CACxB,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Icons Domain - Expo Vector Icons Registry
|
|
3
|
+
*
|
|
4
|
+
* Registry for @expo/vector-icons (Material, FontAwesome, Ionicons).
|
|
5
|
+
* Provides metadata and search capabilities for 1000+ icons.
|
|
6
|
+
*
|
|
7
|
+
* @domain icons
|
|
8
|
+
* @layer infrastructure
|
|
9
|
+
*/
|
|
10
|
+
import type { IIconRegistry, IconMetadata } from '@domains/icons/domain/entities/Icon';
|
|
11
|
+
import { IconCategory } from '@domains/icons/domain/entities/Icon';
|
|
12
|
+
/**
|
|
13
|
+
* Expo vector icons registry
|
|
14
|
+
* Maps common Material Design, FontAwesome, and Ionicons
|
|
15
|
+
*/
|
|
16
|
+
export declare class ExpoIconRegistry implements IIconRegistry {
|
|
17
|
+
private icons;
|
|
18
|
+
getAllIcons(): IconMetadata[];
|
|
19
|
+
getIconsByCategory(category: IconCategory): IconMetadata[];
|
|
20
|
+
searchIcons(query: string): IconMetadata[];
|
|
21
|
+
getIconMetadata(name: string): IconMetadata | null;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=ExpoIconRegistry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ExpoIconRegistry.d.ts","sourceRoot":"","sources":["../../../../../src/domains/icons/infrastructure/registries/ExpoIconRegistry.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AACvF,OAAO,EAAe,YAAY,EAAE,MAAM,qCAAqC,CAAC;AAEhF;;;GAGG;AACH,qBAAa,gBAAiB,YAAW,aAAa;IACpD,OAAO,CAAC,KAAK,CAwIX;IAEF,WAAW,IAAI,YAAY,EAAE;IAI7B,kBAAkB,CAAC,QAAQ,EAAE,YAAY,GAAG,YAAY,EAAE;IAO1D,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,EAAE;IAoB1C,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI;CAGnD"}
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Icons Domain - Expo Vector Icons Registry
|
|
3
|
+
*
|
|
4
|
+
* Registry for @expo/vector-icons (Material, FontAwesome, Ionicons).
|
|
5
|
+
* Provides metadata and search capabilities for 1000+ icons.
|
|
6
|
+
*
|
|
7
|
+
* @domain icons
|
|
8
|
+
* @layer infrastructure
|
|
9
|
+
*/
|
|
10
|
+
import { IconLibrary, IconCategory } from '@domains/icons/domain/entities/Icon';
|
|
11
|
+
/**
|
|
12
|
+
* Expo vector icons registry
|
|
13
|
+
* Maps common Material Design, FontAwesome, and Ionicons
|
|
14
|
+
*/
|
|
15
|
+
export class ExpoIconRegistry {
|
|
16
|
+
constructor() {
|
|
17
|
+
this.icons = [
|
|
18
|
+
// Navigation icons (Material Design)
|
|
19
|
+
{
|
|
20
|
+
name: 'home',
|
|
21
|
+
library: IconLibrary.MATERIAL,
|
|
22
|
+
category: IconCategory.NAVIGATION,
|
|
23
|
+
tags: ['house', 'main', 'start'],
|
|
24
|
+
searchTerms: ['home', 'house', 'main', 'dashboard'],
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
name: 'arrow-back',
|
|
28
|
+
library: IconLibrary.MATERIAL,
|
|
29
|
+
category: IconCategory.NAVIGATION,
|
|
30
|
+
tags: ['back', 'previous', 'return'],
|
|
31
|
+
searchTerms: ['arrow', 'back', 'previous', 'navigate'],
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
name: 'menu',
|
|
35
|
+
library: IconLibrary.MATERIAL,
|
|
36
|
+
category: IconCategory.NAVIGATION,
|
|
37
|
+
tags: ['hamburger', 'drawer', 'navigation'],
|
|
38
|
+
searchTerms: ['menu', 'hamburger', 'navigation', 'drawer'],
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
name: 'search',
|
|
42
|
+
library: IconLibrary.MATERIAL,
|
|
43
|
+
category: IconCategory.ACTION,
|
|
44
|
+
tags: ['find', 'lookup', 'query'],
|
|
45
|
+
searchTerms: ['search', 'find', 'lookup', 'magnify'],
|
|
46
|
+
},
|
|
47
|
+
// Action icons (Material Design)
|
|
48
|
+
{
|
|
49
|
+
name: 'add',
|
|
50
|
+
library: IconLibrary.MATERIAL,
|
|
51
|
+
category: IconCategory.ACTION,
|
|
52
|
+
tags: ['plus', 'create', 'new'],
|
|
53
|
+
searchTerms: ['add', 'plus', 'create', 'new'],
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
name: 'delete',
|
|
57
|
+
library: IconLibrary.MATERIAL,
|
|
58
|
+
category: IconCategory.ACTION,
|
|
59
|
+
tags: ['remove', 'trash', 'bin'],
|
|
60
|
+
searchTerms: ['delete', 'remove', 'trash', 'garbage'],
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
name: 'edit',
|
|
64
|
+
library: IconLibrary.MATERIAL,
|
|
65
|
+
category: IconCategory.ACTION,
|
|
66
|
+
tags: ['pencil', 'modify', 'update'],
|
|
67
|
+
searchTerms: ['edit', 'pencil', 'modify', 'write'],
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
name: 'settings',
|
|
71
|
+
library: IconLibrary.MATERIAL,
|
|
72
|
+
category: IconCategory.ACTION,
|
|
73
|
+
tags: ['gear', 'preferences', 'config'],
|
|
74
|
+
searchTerms: ['settings', 'gear', 'preferences', 'options'],
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
name: 'favorite',
|
|
78
|
+
library: IconLibrary.MATERIAL,
|
|
79
|
+
category: IconCategory.ACTION,
|
|
80
|
+
tags: ['heart', 'like', 'love'],
|
|
81
|
+
searchTerms: ['favorite', 'heart', 'like', 'love'],
|
|
82
|
+
},
|
|
83
|
+
// Social icons (FontAwesome)
|
|
84
|
+
{
|
|
85
|
+
name: 'facebook',
|
|
86
|
+
library: IconLibrary.FONTAWESOME,
|
|
87
|
+
category: IconCategory.SOCIAL,
|
|
88
|
+
tags: ['fb', 'social', 'network'],
|
|
89
|
+
searchTerms: ['facebook', 'fb', 'social', 'meta'],
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
name: 'twitter',
|
|
93
|
+
library: IconLibrary.FONTAWESOME,
|
|
94
|
+
category: IconCategory.SOCIAL,
|
|
95
|
+
tags: ['x', 'social', 'tweet'],
|
|
96
|
+
searchTerms: ['twitter', 'x', 'social', 'tweet'],
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
name: 'instagram',
|
|
100
|
+
library: IconLibrary.FONTAWESOME,
|
|
101
|
+
category: IconCategory.SOCIAL,
|
|
102
|
+
tags: ['ig', 'social', 'photo'],
|
|
103
|
+
searchTerms: ['instagram', 'ig', 'social', 'photo'],
|
|
104
|
+
},
|
|
105
|
+
// Communication icons (Ionicons)
|
|
106
|
+
{
|
|
107
|
+
name: 'mail',
|
|
108
|
+
library: IconLibrary.IONICONS,
|
|
109
|
+
category: IconCategory.COMMUNICATION,
|
|
110
|
+
tags: ['email', 'message', 'envelope'],
|
|
111
|
+
searchTerms: ['mail', 'email', 'message', 'contact'],
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
name: 'call',
|
|
115
|
+
library: IconLibrary.IONICONS,
|
|
116
|
+
category: IconCategory.COMMUNICATION,
|
|
117
|
+
tags: ['phone', 'telephone', 'dial'],
|
|
118
|
+
searchTerms: ['call', 'phone', 'telephone', 'dial'],
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
name: 'notifications',
|
|
122
|
+
library: IconLibrary.IONICONS,
|
|
123
|
+
category: IconCategory.COMMUNICATION,
|
|
124
|
+
tags: ['bell', 'alert', 'reminder'],
|
|
125
|
+
searchTerms: ['notifications', 'bell', 'alert', 'reminder'],
|
|
126
|
+
},
|
|
127
|
+
// Media icons (Material Design)
|
|
128
|
+
{
|
|
129
|
+
name: 'camera',
|
|
130
|
+
library: IconLibrary.MATERIAL,
|
|
131
|
+
category: IconCategory.MEDIA,
|
|
132
|
+
tags: ['photo', 'picture', 'snapshot'],
|
|
133
|
+
searchTerms: ['camera', 'photo', 'picture', 'image'],
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
name: 'image',
|
|
137
|
+
library: IconLibrary.MATERIAL,
|
|
138
|
+
category: IconCategory.MEDIA,
|
|
139
|
+
tags: ['photo', 'picture', 'gallery'],
|
|
140
|
+
searchTerms: ['image', 'photo', 'picture', 'gallery'],
|
|
141
|
+
},
|
|
142
|
+
{
|
|
143
|
+
name: 'videocam',
|
|
144
|
+
library: IconLibrary.MATERIAL,
|
|
145
|
+
category: IconCategory.MEDIA,
|
|
146
|
+
tags: ['video', 'camera', 'record'],
|
|
147
|
+
searchTerms: ['video', 'camera', 'record', 'film'],
|
|
148
|
+
},
|
|
149
|
+
];
|
|
150
|
+
}
|
|
151
|
+
getAllIcons() {
|
|
152
|
+
return this.icons;
|
|
153
|
+
}
|
|
154
|
+
getIconsByCategory(category) {
|
|
155
|
+
if (category === IconCategory.ALL) {
|
|
156
|
+
return this.icons;
|
|
157
|
+
}
|
|
158
|
+
return this.icons.filter(icon => icon.category === category);
|
|
159
|
+
}
|
|
160
|
+
searchIcons(query) {
|
|
161
|
+
if (!query.trim()) {
|
|
162
|
+
return this.icons;
|
|
163
|
+
}
|
|
164
|
+
const normalizedQuery = query.toLowerCase().replace(/[^a-z0-9]/g, '');
|
|
165
|
+
return this.icons.filter(icon => {
|
|
166
|
+
const normalizedName = icon.name.toLowerCase().replace(/[^a-z0-9]/g, '');
|
|
167
|
+
const normalizedTags = icon.tags.map(tag => tag.toLowerCase().replace(/[^a-z0-9]/g, ''));
|
|
168
|
+
const normalizedTerms = icon.searchTerms.map(term => term.toLowerCase().replace(/[^a-z0-9]/g, ''));
|
|
169
|
+
return (normalizedName.includes(normalizedQuery) ||
|
|
170
|
+
normalizedTags.some(tag => tag.includes(normalizedQuery)) ||
|
|
171
|
+
normalizedTerms.some(term => term.includes(normalizedQuery)));
|
|
172
|
+
});
|
|
173
|
+
}
|
|
174
|
+
getIconMetadata(name) {
|
|
175
|
+
return this.icons.find(icon => icon.name === name) || null;
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
//# sourceMappingURL=ExpoIconRegistry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ExpoIconRegistry.js","sourceRoot":"","sources":["../../../../../src/domains/icons/infrastructure/registries/ExpoIconRegistry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Universal Icon Component
|
|
3
|
+
*
|
|
4
|
+
* 🎯 SINGLE ICON COMPONENT FOR ALL APPS
|
|
5
|
+
*
|
|
6
|
+
* Automatically uses the icon library configured in IconLibraryConfig.
|
|
7
|
+
* Change library = change config, no code changes needed!
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```tsx
|
|
11
|
+
* import { Icon } from '@domains/icons';
|
|
12
|
+
*
|
|
13
|
+
* // Basic usage
|
|
14
|
+
* <Icon name="Settings" size="md" color="primary" />
|
|
15
|
+
*
|
|
16
|
+
* // Custom size and color
|
|
17
|
+
* <Icon name="Heart" customSize={32} customColor="#FF0000" />
|
|
18
|
+
*
|
|
19
|
+
* // With background
|
|
20
|
+
* <Icon name="Info" size="lg" withBackground backgroundColor="#667eea" />
|
|
21
|
+
* ```
|
|
22
|
+
*
|
|
23
|
+
* 🔧 To change icon library:
|
|
24
|
+
* 1. Update CURRENT_LIBRARY in domain/config/IconLibraryConfig.ts
|
|
25
|
+
* 2. Done! All apps use new library automatically
|
|
26
|
+
*/
|
|
27
|
+
import React from 'react';
|
|
28
|
+
import type { IconProps } from '../../domain/interfaces/IIconAdapter';
|
|
29
|
+
/**
|
|
30
|
+
* Universal Icon Component
|
|
31
|
+
*/
|
|
32
|
+
export declare const Icon: React.FC<IconProps>;
|
|
33
|
+
/**
|
|
34
|
+
* Export icon types for convenience
|
|
35
|
+
*/
|
|
36
|
+
export type { IconProps } from '../../domain/interfaces/IIconAdapter';
|
|
37
|
+
export { type IconSize, type IconColor } from '../../domain/interfaces/IIconAdapter';
|
|
38
|
+
/**
|
|
39
|
+
* Export current library's icon names for TypeScript autocomplete
|
|
40
|
+
*/
|
|
41
|
+
export type { LucideIconName as IconName } from '../../infrastructure/adapters/LucideAdapter';
|
|
42
|
+
//# sourceMappingURL=Icon.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Icon.d.ts","sourceRoot":"","sources":["../../../../../src/domains/icons/presentation/components/Icon.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAC;AAmBtE;;GAEG;AACH,eAAO,MAAM,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CAkEpC,CAAC;AAEF;;GAEG;AACH,YAAY,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAC;AACtE,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,SAAS,EAAE,MAAM,sCAAsC,CAAC;AAErF;;GAEG;AACH,YAAY,EAAE,cAAc,IAAI,QAAQ,EAAE,MAAM,6CAA6C,CAAC"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Universal Icon Component
|
|
3
|
+
*
|
|
4
|
+
* 🎯 SINGLE ICON COMPONENT FOR ALL APPS
|
|
5
|
+
*
|
|
6
|
+
* Automatically uses the icon library configured in IconLibraryConfig.
|
|
7
|
+
* Change library = change config, no code changes needed!
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```tsx
|
|
11
|
+
* import { Icon } from '@domains/icons';
|
|
12
|
+
*
|
|
13
|
+
* // Basic usage
|
|
14
|
+
* <Icon name="Settings" size="md" color="primary" />
|
|
15
|
+
*
|
|
16
|
+
* // Custom size and color
|
|
17
|
+
* <Icon name="Heart" customSize={32} customColor="#FF0000" />
|
|
18
|
+
*
|
|
19
|
+
* // With background
|
|
20
|
+
* <Icon name="Info" size="lg" withBackground backgroundColor="#667eea" />
|
|
21
|
+
* ```
|
|
22
|
+
*
|
|
23
|
+
* 🔧 To change icon library:
|
|
24
|
+
* 1. Update CURRENT_LIBRARY in domain/config/IconLibraryConfig.ts
|
|
25
|
+
* 2. Done! All apps use new library automatically
|
|
26
|
+
*/
|
|
27
|
+
import React from 'react';
|
|
28
|
+
import { View } from 'react-native';
|
|
29
|
+
import { useAppDesignTokens } from '../../../../presentation/hooks/useAppDesignTokens';
|
|
30
|
+
import { CURRENT_LIBRARY } from '../../domain/config/IconLibraryConfig';
|
|
31
|
+
import { LucideAdapter } from '../../infrastructure/adapters/LucideAdapter';
|
|
32
|
+
/**
|
|
33
|
+
* Get adapter based on current library configuration
|
|
34
|
+
*/
|
|
35
|
+
const getAdapter = () => {
|
|
36
|
+
switch (CURRENT_LIBRARY) {
|
|
37
|
+
case 'lucide':
|
|
38
|
+
return LucideAdapter;
|
|
39
|
+
// Future: Add more adapters here
|
|
40
|
+
// case 'material':
|
|
41
|
+
// return MaterialAdapter;
|
|
42
|
+
// case 'fontawesome':
|
|
43
|
+
// return FontAwesomeAdapter;
|
|
44
|
+
default:
|
|
45
|
+
return LucideAdapter;
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
/**
|
|
49
|
+
* Universal Icon Component
|
|
50
|
+
*/
|
|
51
|
+
export const Icon = ({ name, size = 'md', customSize, color = 'onSurface', customColor, strokeWidth, withBackground = false, backgroundColor, accessibilityLabel, testID, style, }) => {
|
|
52
|
+
const tokens = useAppDesignTokens();
|
|
53
|
+
const adapter = getAdapter();
|
|
54
|
+
// Get icon component from adapter
|
|
55
|
+
const IconComponent = adapter.getIconComponent(name);
|
|
56
|
+
if (!IconComponent) {
|
|
57
|
+
return null;
|
|
58
|
+
}
|
|
59
|
+
// Calculate icon size
|
|
60
|
+
const iconSize = adapter.getIconSize(size, customSize);
|
|
61
|
+
// Get icon color from theme
|
|
62
|
+
const iconColor = adapter.getIconColor(color, tokens, customColor);
|
|
63
|
+
// Get stroke width (for outline icons)
|
|
64
|
+
const iconStrokeWidth = strokeWidth || adapter.getStrokeWidth?.() || 2;
|
|
65
|
+
// Container size (slightly larger than icon)
|
|
66
|
+
const containerSize = iconSize + 8;
|
|
67
|
+
const containerStyles = [
|
|
68
|
+
withBackground && {
|
|
69
|
+
width: containerSize,
|
|
70
|
+
height: containerSize,
|
|
71
|
+
borderRadius: containerSize / 2,
|
|
72
|
+
backgroundColor: backgroundColor || tokens.colors.surfaceVariant,
|
|
73
|
+
justifyContent: 'center',
|
|
74
|
+
alignItems: 'center',
|
|
75
|
+
},
|
|
76
|
+
style,
|
|
77
|
+
];
|
|
78
|
+
const IconElement = (<IconComponent size={iconSize} color={iconColor} strokeWidth={iconStrokeWidth} accessibilityLabel={accessibilityLabel || `${name} icon`} testID={testID}/>);
|
|
79
|
+
if (withBackground) {
|
|
80
|
+
return (<View style={containerStyles} testID={`${testID}-container`}>
|
|
81
|
+
{IconElement}
|
|
82
|
+
</View>);
|
|
83
|
+
}
|
|
84
|
+
return IconElement;
|
|
85
|
+
};
|
|
86
|
+
//# sourceMappingURL=Icon.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Icon.js","sourceRoot":"","sources":["../../../../../src/domains/icons/presentation/components/Icon.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,IAAI,EAAoC,MAAM,cAAc,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,mDAAmD,CAAC;AACvF,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,MAAM,6CAA6C,CAAC;AAG5E;;GAEG;AACH,MAAM,UAAU,GAAG,GAAG,EAAE;IACtB,QAAQ,eAAe,EAAE,CAAC;QACxB,KAAK,QAAQ;YACX,OAAO,aAAa,CAAC;QACvB,iCAAiC;QACjC,mBAAmB;QACnB,4BAA4B;QAC5B,sBAAsB;QACtB,+BAA+B;QAC/B;YACE,OAAO,aAAa,CAAC;IACzB,CAAC;AACH,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,IAAI,GAAwB,CAAC,EACxC,IAAI,EACJ,IAAI,GAAG,IAAI,EACX,UAAU,EACV,KAAK,GAAG,WAAW,EACnB,WAAW,EACX,WAAW,EACX,cAAc,GAAG,KAAK,EACtB,eAAe,EACf,kBAAkB,EAClB,MAAM,EACN,KAAK,GACN,EAAE,EAAE;IACH,MAAM,MAAM,GAAG,kBAAkB,EAAE,CAAC;IACpC,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAE7B,kCAAkC;IAClC,MAAM,aAAa,GAAG,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAErD,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,sBAAsB;IACtB,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAEvD,4BAA4B;IAC5B,MAAM,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;IAEnE,uCAAuC;IACvC,MAAM,eAAe,GAAG,WAAW,IAAI,OAAO,CAAC,cAAc,EAAE,EAAE,IAAI,CAAC,CAAC;IAEvE,6CAA6C;IAC7C,MAAM,aAAa,GAAG,QAAQ,GAAG,CAAC,CAAC;IAEnC,MAAM,eAAe,GAAyB;QAC5C,cAAc,IAAI;YAChB,KAAK,EAAE,aAAa;YACpB,MAAM,EAAE,aAAa;YACrB,YAAY,EAAE,aAAa,GAAG,CAAC;YAC/B,eAAe,EAAE,eAAe,IAAI,MAAM,CAAC,MAAM,CAAC,cAAc;YAChE,cAAc,EAAE,QAAQ;YACxB,UAAU,EAAE,QAAQ;SACrB;QACD,KAAK;KACN,CAAC;IAEF,MAAM,WAAW,GAAG,CAClB,CAAC,aAAa,CACZ,IAAI,CAAC,CAAC,QAAQ,CAAC,CACf,KAAK,CAAC,CAAC,SAAS,CAAC,CACjB,WAAW,CAAC,CAAC,eAAe,CAAC,CAC7B,kBAAkB,CAAC,CAAC,kBAAkB,IAAI,GAAG,IAAI,OAAO,CAAC,CACzD,MAAM,CAAC,CAAC,MAAM,CAAC,EACf,CACH,CAAC;IAEF,IAAI,cAAc,EAAE,CAAC;QACnB,OAAO,CACL,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,MAAM,YAAY,CAAC,CAC1D;QAAA,CAAC,WAAW,CACd;MAAA,EAAE,IAAI,CAAC,CACR,CAAC;IACJ,CAAC;IAED,OAAO,WAAW,CAAC;AACrB,CAAC,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
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 type { IconMetadata } from '@domains/icons/domain/entities/Icon';
|
|
11
|
+
import { IconLibrary, IconCategory } from '@domains/icons/domain/entities/Icon';
|
|
12
|
+
/**
|
|
13
|
+
* Hook for icon library access and search
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* const { icons, searchIcons, filterByCategory } = useIconLibrary();
|
|
17
|
+
*
|
|
18
|
+
* // Search icons
|
|
19
|
+
* const results = searchIcons('home');
|
|
20
|
+
*
|
|
21
|
+
* // Filter by category
|
|
22
|
+
* const navIcons = filterByCategory(IconCategory.NAVIGATION);
|
|
23
|
+
*/
|
|
24
|
+
export declare const useIconLibrary: (defaultLibrary?: IconLibrary) => {
|
|
25
|
+
selectedLibrary: IconLibrary;
|
|
26
|
+
selectedCategory: IconCategory;
|
|
27
|
+
icons: IconMetadata[];
|
|
28
|
+
searchIcons: (query: string) => IconMetadata[];
|
|
29
|
+
filterByCategory: (category: IconCategory) => IconMetadata[];
|
|
30
|
+
getIconMetadata: (name: string) => IconMetadata | null;
|
|
31
|
+
switchLibrary: (library: IconLibrary) => void;
|
|
32
|
+
switchCategory: (category: IconCategory) => void;
|
|
33
|
+
availableCategories: IconCategory[];
|
|
34
|
+
availableLibraries: IconLibrary[];
|
|
35
|
+
IconLibrary: typeof IconLibrary;
|
|
36
|
+
IconCategory: typeof IconCategory;
|
|
37
|
+
};
|
|
38
|
+
//# sourceMappingURL=useIconLibrary.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useIconLibrary.d.ts","sourceRoot":"","sources":["../../../../../src/domains/icons/presentation/hooks/useIconLibrary.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AACxE,OAAO,EAAE,WAAW,EAAE,YAAY,EAA6B,MAAM,qCAAqC,CAAC;AAG3G;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,cAAc,GAAI,iBAAgB,WAA4C;;;;yBA4B/E,MAAM,KAAG,YAAY,EAAE;iCAoBpB,YAAY,KAAG,YAAY,EAAE;4BAUjC,MAAM,KAAG,YAAY,GAAG,IAAI;6BAuBO,WAAW;+BAOT,YAAY;;;;;CAyB3D,CAAC"}
|