@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,38 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { AtomicFabProps } from './fab/types';
|
|
3
|
+
import { FAB_SIZES, getFabVariants, getFabIconSize, getFabBorder } from './fab/styles/fabStyles';
|
|
4
|
+
export type { FabSize, FabVariant, FabVariantConfig, FabSizeConfig, AtomicFabProps } from './fab/types';
|
|
5
|
+
export { FAB_SIZES, getFabVariants, getFabIconSize, getFabBorder };
|
|
6
|
+
/**
|
|
7
|
+
* AtomicFab - Floating Action Button Component
|
|
8
|
+
*
|
|
9
|
+
* A Material Design 3 compliant FAB component for primary actions.
|
|
10
|
+
* Follows CLAUDE.md standards for responsive positioning.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```tsx
|
|
14
|
+
* // IMPORTANT: FAB must be used at screen level, NOT inside ScrollView
|
|
15
|
+
* <ScreenLayout>
|
|
16
|
+
* <ScrollView>
|
|
17
|
+
* {/* Your content *\/}
|
|
18
|
+
* </ScrollView>
|
|
19
|
+
* <AtomicFab
|
|
20
|
+
* icon="add"
|
|
21
|
+
* onPress={handleAddItem}
|
|
22
|
+
* variant="primary"
|
|
23
|
+
* size="md"
|
|
24
|
+
* />
|
|
25
|
+
* </ScreenLayout>
|
|
26
|
+
* ```
|
|
27
|
+
*
|
|
28
|
+
* Features:
|
|
29
|
+
* - Material Design 3 sizes (sm: 40px, md: 56px, lg: 72px)
|
|
30
|
+
* - Three variants: primary, secondary, surface
|
|
31
|
+
* - Responsive positioning (above tab bar, safe area aware)
|
|
32
|
+
* - Loading state with spinner
|
|
33
|
+
* - Disabled state with opacity
|
|
34
|
+
* - Theme-aware colors from design tokens
|
|
35
|
+
* - Border for depth (no shadows per CLAUDE.md)
|
|
36
|
+
*/
|
|
37
|
+
export declare const AtomicFab: React.FC<AtomicFabProps>;
|
|
38
|
+
//# sourceMappingURL=AtomicFab.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AtomicFab.d.ts","sourceRoot":"","sources":["../../../src/presentation/atoms/AtomicFab.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EACL,SAAS,EACT,cAAc,EACd,cAAc,EACd,YAAY,EACb,MAAM,wBAAwB,CAAC;AAEhC,YAAY,EAAE,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AACxG,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,cAAc,EAAE,YAAY,EAAE,CAAC;AAEnE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CAwD9C,CAAC"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { TouchableOpacity, ActivityIndicator, StyleSheet } from 'react-native';
|
|
3
|
+
import { useAppDesignTokens } from '../hooks/useAppDesignTokens';
|
|
4
|
+
import { useResponsive } from '../hooks/useResponsive';
|
|
5
|
+
import { AtomicIcon } from './AtomicIcon';
|
|
6
|
+
import { FAB_SIZES, getFabVariants, getFabIconSize, getFabBorder, } from './fab/styles/fabStyles';
|
|
7
|
+
export { FAB_SIZES, getFabVariants, getFabIconSize, getFabBorder };
|
|
8
|
+
/**
|
|
9
|
+
* AtomicFab - Floating Action Button Component
|
|
10
|
+
*
|
|
11
|
+
* A Material Design 3 compliant FAB component for primary actions.
|
|
12
|
+
* Follows CLAUDE.md standards for responsive positioning.
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```tsx
|
|
16
|
+
* // IMPORTANT: FAB must be used at screen level, NOT inside ScrollView
|
|
17
|
+
* <ScreenLayout>
|
|
18
|
+
* <ScrollView>
|
|
19
|
+
* {/* Your content *\/}
|
|
20
|
+
* </ScrollView>
|
|
21
|
+
* <AtomicFab
|
|
22
|
+
* icon="add"
|
|
23
|
+
* onPress={handleAddItem}
|
|
24
|
+
* variant="primary"
|
|
25
|
+
* size="md"
|
|
26
|
+
* />
|
|
27
|
+
* </ScreenLayout>
|
|
28
|
+
* ```
|
|
29
|
+
*
|
|
30
|
+
* Features:
|
|
31
|
+
* - Material Design 3 sizes (sm: 40px, md: 56px, lg: 72px)
|
|
32
|
+
* - Three variants: primary, secondary, surface
|
|
33
|
+
* - Responsive positioning (above tab bar, safe area aware)
|
|
34
|
+
* - Loading state with spinner
|
|
35
|
+
* - Disabled state with opacity
|
|
36
|
+
* - Theme-aware colors from design tokens
|
|
37
|
+
* - Border for depth (no shadows per CLAUDE.md)
|
|
38
|
+
*/
|
|
39
|
+
export const AtomicFab = ({ icon, onPress, variant = 'primary', size = 'md', disabled = false, loading = false, style, testID, accessibilityLabel, }) => {
|
|
40
|
+
const tokens = useAppDesignTokens();
|
|
41
|
+
const responsive = useResponsive();
|
|
42
|
+
const isDisabled = disabled || loading;
|
|
43
|
+
// Get configurations
|
|
44
|
+
const sizeConfig = FAB_SIZES[size];
|
|
45
|
+
const variants = getFabVariants(tokens);
|
|
46
|
+
const variantConfig = variants[variant];
|
|
47
|
+
const iconSize = getFabIconSize(size);
|
|
48
|
+
// Combine styles
|
|
49
|
+
const fabStyle = StyleSheet.flatten([
|
|
50
|
+
{
|
|
51
|
+
position: 'absolute',
|
|
52
|
+
bottom: responsive.fabPosition.bottom,
|
|
53
|
+
right: responsive.fabPosition.right,
|
|
54
|
+
width: sizeConfig.width,
|
|
55
|
+
height: sizeConfig.height,
|
|
56
|
+
borderRadius: sizeConfig.borderRadius,
|
|
57
|
+
backgroundColor: variantConfig.backgroundColor,
|
|
58
|
+
alignItems: 'center',
|
|
59
|
+
justifyContent: 'center',
|
|
60
|
+
},
|
|
61
|
+
getFabBorder(tokens),
|
|
62
|
+
isDisabled ? { opacity: tokens.opacity.disabled } : undefined,
|
|
63
|
+
style, // Custom style override
|
|
64
|
+
]);
|
|
65
|
+
return (<TouchableOpacity style={fabStyle} onPress={onPress} disabled={isDisabled} activeOpacity={0.7} testID={testID} accessibilityLabel={accessibilityLabel || `${icon} button`} accessibilityRole="button">
|
|
66
|
+
{loading ? (<ActivityIndicator size="small" color={variantConfig.iconColor}/>) : (<AtomicIcon name={icon} size={iconSize} customColor={variantConfig.iconColor}/>)}
|
|
67
|
+
</TouchableOpacity>);
|
|
68
|
+
};
|
|
69
|
+
//# sourceMappingURL=AtomicFab.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AtomicFab.js","sourceRoot":"","sources":["../../../src/presentation/atoms/AtomicFab.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/E,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,OAAO,EACL,SAAS,EACT,cAAc,EACd,cAAc,EACd,YAAY,GACb,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,cAAc,EAAE,YAAY,EAAE,CAAC;AAEnE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,MAAM,CAAC,MAAM,SAAS,GAA6B,CAAC,EAClD,IAAI,EACJ,OAAO,EACP,OAAO,GAAG,SAAS,EACnB,IAAI,GAAG,IAAI,EACX,QAAQ,GAAG,KAAK,EAChB,OAAO,GAAG,KAAK,EACf,KAAK,EACL,MAAM,EACN,kBAAkB,GACnB,EAAE,EAAE;IACH,MAAM,MAAM,GAAG,kBAAkB,EAAE,CAAC;IACpC,MAAM,UAAU,GAAG,aAAa,EAAE,CAAC;IACnC,MAAM,UAAU,GAAG,QAAQ,IAAI,OAAO,CAAC;IAEvC,qBAAqB;IACrB,MAAM,UAAU,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IACnC,MAAM,QAAQ,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;IACxC,MAAM,aAAa,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;IACxC,MAAM,QAAQ,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;IAEtC,iBAAiB;IACjB,MAAM,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAC;QAClC;YACE,QAAQ,EAAE,UAAmB;YAC7B,MAAM,EAAE,UAAU,CAAC,WAAW,CAAC,MAAM;YACrC,KAAK,EAAE,UAAU,CAAC,WAAW,CAAC,KAAK;YACnC,KAAK,EAAE,UAAU,CAAC,KAAK;YACvB,MAAM,EAAE,UAAU,CAAC,MAAM;YACzB,YAAY,EAAE,UAAU,CAAC,YAAY;YACrC,eAAe,EAAE,aAAa,CAAC,eAAe;YAC9C,UAAU,EAAE,QAAiB;YAC7B,cAAc,EAAE,QAAiB;SAClC;QACD,YAAY,CAAC,MAAM,CAAC;QACpB,UAAU,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS;QAC7D,KAAK,EAAE,wBAAwB;KAChC,CAAC,CAAC;IAEH,OAAO,CACL,CAAC,gBAAgB,CACf,KAAK,CAAC,CAAC,QAAQ,CAAC,CAChB,OAAO,CAAC,CAAC,OAAO,CAAC,CACjB,QAAQ,CAAC,CAAC,UAAU,CAAC,CACrB,aAAa,CAAC,CAAC,GAAG,CAAC,CACnB,MAAM,CAAC,CAAC,MAAM,CAAC,CACf,kBAAkB,CAAC,CAAC,kBAAkB,IAAI,GAAG,IAAI,SAAS,CAAC,CAC3D,iBAAiB,CAAC,QAAQ,CAE1B;MAAA,CAAC,OAAO,CAAC,CAAC,CAAC,CACT,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,aAAa,CAAC,SAAS,CAAC,EAAG,CACnE,CAAC,CAAC,CAAC,CACF,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,CAAC,aAAa,CAAC,SAAS,CAAC,EAAG,CACjF,CACH;IAAA,EAAE,gBAAgB,CAAC,CACpB,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { AtomicFilterProps } from './filter/types';
|
|
3
|
+
export type { FilterOption, AtomicFilterProps } from './filter/types';
|
|
4
|
+
export { getFilterContainerStyle, getClearAllContainerStyle, getScrollContentContainerStyle, } from './filter/styles/filterStyles';
|
|
5
|
+
/**
|
|
6
|
+
* AtomicFilter - Horizontal Filter Chip Component
|
|
7
|
+
*
|
|
8
|
+
* A Material Design 3 compliant filter component using chip selection.
|
|
9
|
+
* Supports single and multi-select modes with "Clear All" functionality.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```tsx
|
|
13
|
+
* const [selectedFilters, setSelectedFilters] = useState<string[]>([]);
|
|
14
|
+
*
|
|
15
|
+
* <AtomicFilter
|
|
16
|
+
* options={[
|
|
17
|
+
* { id: 'active', label: 'Active', icon: 'check-circle' },
|
|
18
|
+
* { id: 'completed', label: 'Completed', icon: 'check' },
|
|
19
|
+
* { id: 'pending', label: 'Pending', icon: 'clock' },
|
|
20
|
+
* ]}
|
|
21
|
+
* selectedIds={selectedFilters}
|
|
22
|
+
* onSelectionChange={setSelectedFilters}
|
|
23
|
+
* multiSelect={true}
|
|
24
|
+
* showClearAll={true}
|
|
25
|
+
* />
|
|
26
|
+
* ```
|
|
27
|
+
*
|
|
28
|
+
* Features:
|
|
29
|
+
* - Horizontal scrollable filter chips
|
|
30
|
+
* - Single/Multi-select modes
|
|
31
|
+
* - Clear all button (when filters active)
|
|
32
|
+
* - Theme-aware colors from design tokens
|
|
33
|
+
* - Icon support per filter option
|
|
34
|
+
* - Fully controlled component
|
|
35
|
+
*/
|
|
36
|
+
export declare const AtomicFilter: React.FC<AtomicFilterProps>;
|
|
37
|
+
//# sourceMappingURL=AtomicFilter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AtomicFilter.d.ts","sourceRoot":"","sources":["../../../src/presentation/atoms/AtomicFilter.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAM1B,OAAO,EAAE,iBAAiB,EAAgB,MAAM,gBAAgB,CAAC;AAOjE,YAAY,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACtE,OAAO,EACL,uBAAuB,EACvB,yBAAyB,EACzB,8BAA8B,GAC/B,MAAM,8BAA8B,CAAC;AAEtC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAsGpD,CAAC"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { ScrollView, View, TouchableOpacity } from 'react-native';
|
|
3
|
+
import { useAppDesignTokens } from '../hooks/useAppDesignTokens';
|
|
4
|
+
import { AtomicChip } from './AtomicChip';
|
|
5
|
+
import { AtomicText } from './AtomicText';
|
|
6
|
+
import { AtomicIcon } from './AtomicIcon';
|
|
7
|
+
import { getFilterContainerStyle, getClearAllContainerStyle, getScrollContentContainerStyle, } from './filter/styles/filterStyles';
|
|
8
|
+
export { getFilterContainerStyle, getClearAllContainerStyle, getScrollContentContainerStyle, } from './filter/styles/filterStyles';
|
|
9
|
+
/**
|
|
10
|
+
* AtomicFilter - Horizontal Filter Chip Component
|
|
11
|
+
*
|
|
12
|
+
* A Material Design 3 compliant filter component using chip selection.
|
|
13
|
+
* Supports single and multi-select modes with "Clear All" functionality.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```tsx
|
|
17
|
+
* const [selectedFilters, setSelectedFilters] = useState<string[]>([]);
|
|
18
|
+
*
|
|
19
|
+
* <AtomicFilter
|
|
20
|
+
* options={[
|
|
21
|
+
* { id: 'active', label: 'Active', icon: 'check-circle' },
|
|
22
|
+
* { id: 'completed', label: 'Completed', icon: 'check' },
|
|
23
|
+
* { id: 'pending', label: 'Pending', icon: 'clock' },
|
|
24
|
+
* ]}
|
|
25
|
+
* selectedIds={selectedFilters}
|
|
26
|
+
* onSelectionChange={setSelectedFilters}
|
|
27
|
+
* multiSelect={true}
|
|
28
|
+
* showClearAll={true}
|
|
29
|
+
* />
|
|
30
|
+
* ```
|
|
31
|
+
*
|
|
32
|
+
* Features:
|
|
33
|
+
* - Horizontal scrollable filter chips
|
|
34
|
+
* - Single/Multi-select modes
|
|
35
|
+
* - Clear all button (when filters active)
|
|
36
|
+
* - Theme-aware colors from design tokens
|
|
37
|
+
* - Icon support per filter option
|
|
38
|
+
* - Fully controlled component
|
|
39
|
+
*/
|
|
40
|
+
export const AtomicFilter = ({ options, selectedIds, onSelectionChange, multiSelect = true, showClearAll = true, variant = 'outlined', color = 'primary', size = 'md', style, testID, }) => {
|
|
41
|
+
const tokens = useAppDesignTokens();
|
|
42
|
+
/**
|
|
43
|
+
* Handle filter chip press
|
|
44
|
+
*/
|
|
45
|
+
const handleFilterPress = (optionId) => {
|
|
46
|
+
if (multiSelect) {
|
|
47
|
+
// Multi-select mode: Toggle selection
|
|
48
|
+
if (selectedIds.includes(optionId)) {
|
|
49
|
+
// Deselect
|
|
50
|
+
onSelectionChange(selectedIds.filter(id => id !== optionId));
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
// Select
|
|
54
|
+
onSelectionChange([...selectedIds, optionId]);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
// Single-select mode: Replace selection
|
|
59
|
+
if (selectedIds.includes(optionId)) {
|
|
60
|
+
// Deselect (clear selection)
|
|
61
|
+
onSelectionChange([]);
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
64
|
+
// Select (only this one)
|
|
65
|
+
onSelectionChange([optionId]);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
};
|
|
69
|
+
/**
|
|
70
|
+
* Handle clear all button press
|
|
71
|
+
*/
|
|
72
|
+
const handleClearAll = () => {
|
|
73
|
+
onSelectionChange([]);
|
|
74
|
+
};
|
|
75
|
+
const hasActiveFilters = selectedIds.length > 0;
|
|
76
|
+
return (<ScrollView horizontal showsHorizontalScrollIndicator={false} contentContainerStyle={getScrollContentContainerStyle()} style={[style]} testID={testID}>
|
|
77
|
+
<View style={getFilterContainerStyle()}>
|
|
78
|
+
{options.map((option) => {
|
|
79
|
+
const isSelected = selectedIds.includes(option.id);
|
|
80
|
+
return (<AtomicChip key={option.id} variant={isSelected ? 'filled' : variant} color={color} size={size} leadingIcon={option.icon} selected={isSelected} clickable={true} onPress={() => handleFilterPress(option.id)} testID={`filter-chip-${option.id}`}>
|
|
81
|
+
{option.label}
|
|
82
|
+
</AtomicChip>);
|
|
83
|
+
})}
|
|
84
|
+
|
|
85
|
+
{/* Clear All Button */}
|
|
86
|
+
{showClearAll && hasActiveFilters && (<TouchableOpacity onPress={handleClearAll} style={[
|
|
87
|
+
getClearAllContainerStyle(),
|
|
88
|
+
{
|
|
89
|
+
backgroundColor: tokens.colors.surfaceVariant,
|
|
90
|
+
borderWidth: 1,
|
|
91
|
+
borderColor: tokens.colors.outline,
|
|
92
|
+
}
|
|
93
|
+
]} testID="clear-all-button">
|
|
94
|
+
<View style={{ flexDirection: 'row', alignItems: 'center', gap: tokens.spacing.xs }}>
|
|
95
|
+
<AtomicIcon name="X" size="xs" color="surfaceVariant"/>
|
|
96
|
+
<AtomicText type="labelSmall" style={{ color: tokens.colors.textSecondary }}>
|
|
97
|
+
Clear All
|
|
98
|
+
</AtomicText>
|
|
99
|
+
</View>
|
|
100
|
+
</TouchableOpacity>)}
|
|
101
|
+
</View>
|
|
102
|
+
</ScrollView>);
|
|
103
|
+
};
|
|
104
|
+
//# sourceMappingURL=AtomicFilter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AtomicFilter.js","sourceRoot":"","sources":["../../../src/presentation/atoms/AtomicFilter.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AtomicFormError - Universal Form Error Component
|
|
3
|
+
*
|
|
4
|
+
* Provides consistent error message display for forms
|
|
5
|
+
* Theme: {{THEME_NAME}} ({{CATEGORY}} category)
|
|
6
|
+
*
|
|
7
|
+
* Atomic Design Level: ATOM
|
|
8
|
+
* Purpose: Display validation error messages
|
|
9
|
+
*
|
|
10
|
+
* Usage:
|
|
11
|
+
* - Form field validation errors
|
|
12
|
+
* - Global form error messages
|
|
13
|
+
* - API error display
|
|
14
|
+
* - Input validation feedback
|
|
15
|
+
*/
|
|
16
|
+
import React from 'react';
|
|
17
|
+
import { StyleProp, ViewStyle, TextStyle } from 'react-native';
|
|
18
|
+
export interface AtomicFormErrorProps {
|
|
19
|
+
/** Error message to display */
|
|
20
|
+
message: string | null | undefined;
|
|
21
|
+
/** Error display variant */
|
|
22
|
+
variant?: 'global' | 'field';
|
|
23
|
+
/** Custom container style */
|
|
24
|
+
style?: StyleProp<ViewStyle>;
|
|
25
|
+
/** Custom text style */
|
|
26
|
+
textStyle?: StyleProp<TextStyle>;
|
|
27
|
+
}
|
|
28
|
+
export declare const AtomicFormError: React.FC<AtomicFormErrorProps>;
|
|
29
|
+
export default AtomicFormError;
|
|
30
|
+
//# sourceMappingURL=AtomicFormError.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AtomicFormError.d.ts","sourceRoot":"","sources":["../../../src/presentation/atoms/AtomicFormError.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAoB,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AASjF,MAAM,WAAW,oBAAoB;IACnC,+BAA+B;IAC/B,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACnC,4BAA4B;IAC5B,OAAO,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;IAC7B,6BAA6B;IAC7B,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,wBAAwB;IACxB,SAAS,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAClC;AAMD,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CAyD1D,CAAC;AAMF,eAAe,eAAe,CAAC"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AtomicFormError - Universal Form Error Component
|
|
3
|
+
*
|
|
4
|
+
* Provides consistent error message display for forms
|
|
5
|
+
* Theme: {{THEME_NAME}} ({{CATEGORY}} category)
|
|
6
|
+
*
|
|
7
|
+
* Atomic Design Level: ATOM
|
|
8
|
+
* Purpose: Display validation error messages
|
|
9
|
+
*
|
|
10
|
+
* Usage:
|
|
11
|
+
* - Form field validation errors
|
|
12
|
+
* - Global form error messages
|
|
13
|
+
* - API error display
|
|
14
|
+
* - Input validation feedback
|
|
15
|
+
*/
|
|
16
|
+
import React from 'react';
|
|
17
|
+
import { View, StyleSheet } from 'react-native';
|
|
18
|
+
import { AtomicText } from './AtomicText';
|
|
19
|
+
import { useAppDesignTokens } from '../hooks/useAppDesignTokens';
|
|
20
|
+
import { withAlpha } from '../tokens/AppDesignTokens';
|
|
21
|
+
// =============================================================================
|
|
22
|
+
// COMPONENT IMPLEMENTATION
|
|
23
|
+
// =============================================================================
|
|
24
|
+
export const AtomicFormError = ({ message, variant = 'field', style, textStyle, }) => {
|
|
25
|
+
const tokens = useAppDesignTokens();
|
|
26
|
+
if (!message) {
|
|
27
|
+
return null;
|
|
28
|
+
}
|
|
29
|
+
if (variant === 'global') {
|
|
30
|
+
return (<View style={[
|
|
31
|
+
{
|
|
32
|
+
padding: tokens.spacing.md,
|
|
33
|
+
borderRadius: tokens.borders.radius.md,
|
|
34
|
+
marginBottom: tokens.spacing.sm,
|
|
35
|
+
backgroundColor: withAlpha(tokens.colors.error, 0.15),
|
|
36
|
+
},
|
|
37
|
+
style,
|
|
38
|
+
]}>
|
|
39
|
+
<AtomicText type="bodySmall" color="error" style={StyleSheet.flatten([
|
|
40
|
+
{
|
|
41
|
+
textAlign: 'center',
|
|
42
|
+
fontWeight: tokens.typography.medium,
|
|
43
|
+
},
|
|
44
|
+
textStyle,
|
|
45
|
+
])}>
|
|
46
|
+
{message}
|
|
47
|
+
</AtomicText>
|
|
48
|
+
</View>);
|
|
49
|
+
}
|
|
50
|
+
return (<AtomicText type="bodySmall" color="error" style={StyleSheet.flatten([
|
|
51
|
+
{
|
|
52
|
+
marginTop: tokens.spacing.xs,
|
|
53
|
+
marginLeft: tokens.spacing.xs,
|
|
54
|
+
},
|
|
55
|
+
textStyle,
|
|
56
|
+
])}>
|
|
57
|
+
{message}
|
|
58
|
+
</AtomicText>);
|
|
59
|
+
};
|
|
60
|
+
// =============================================================================
|
|
61
|
+
// EXPORTS
|
|
62
|
+
// =============================================================================
|
|
63
|
+
export default AtomicFormError;
|
|
64
|
+
//# sourceMappingURL=AtomicFormError.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AtomicFormError.js","sourceRoot":"","sources":["../../../src/presentation/atoms/AtomicFormError.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,IAAI,EAAE,UAAU,EAAmC,MAAM,cAAc,CAAC;AACjF,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAiBtD,gFAAgF;AAChF,2BAA2B;AAC3B,gFAAgF;AAEhF,MAAM,CAAC,MAAM,eAAe,GAAmC,CAAC,EAC9D,OAAO,EACP,OAAO,GAAG,OAAO,EACjB,KAAK,EACL,SAAS,GACV,EAAE,EAAE;IACH,MAAM,MAAM,GAAG,kBAAkB,EAAE,CAAC;IAEpC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;QACzB,OAAO,CACL,CAAC,IAAI,CACH,KAAK,CAAC,CAAC;gBACL;oBACE,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE;oBAC1B,YAAY,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;oBACtC,YAAY,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE;oBAC/B,eAAe,EAAE,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC;iBACtD;gBACD,KAAK;aACN,CAAC,CAEF;QAAA,CAAC,UAAU,CACT,IAAI,CAAC,WAAW,CAChB,KAAK,CAAC,OAAO,CACb,KAAK,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC;gBACxB;oBACE,SAAS,EAAE,QAAQ;oBACnB,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC,MAAM;iBACrC;gBACD,SAAS;aACV,CAAC,CAAC,CAEH;UAAA,CAAC,OAAO,CACV;QAAA,EAAE,UAAU,CACd;MAAA,EAAE,IAAI,CAAC,CACR,CAAC;IACJ,CAAC;IAED,OAAO,CACL,CAAC,UAAU,CACT,IAAI,CAAC,WAAW,CAChB,KAAK,CAAC,OAAO,CACb,KAAK,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC;YACxB;gBACE,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE;gBAC5B,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE;aAC9B;YACD,SAAS;SACV,CAAC,CAAC,CAEH;MAAA,CAAC,OAAO,CACV;IAAA,EAAE,UAAU,CAAC,CACd,CAAC;AACJ,CAAC,CAAC;AAEF,gFAAgF;AAChF,UAAU;AACV,gFAAgF;AAEhF,eAAe,eAAe,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AtomicIcon - Atomic Design System Icon Component
|
|
3
|
+
*
|
|
4
|
+
* Wrapper for the universal Icon component from @domains/icons
|
|
5
|
+
* Provides backward compatibility with AtomicIcon naming convention
|
|
6
|
+
* while leveraging the full power of the icons domain architecture.
|
|
7
|
+
*/
|
|
8
|
+
import React from 'react';
|
|
9
|
+
import type { IconProps, IconSize, IconColor } from '../../domains/icons/domain/interfaces/IIconAdapter';
|
|
10
|
+
import type { LucideIconName } from '../../domains/icons/infrastructure/adapters/LucideAdapter';
|
|
11
|
+
/**
|
|
12
|
+
* AtomicIcon Component
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```tsx
|
|
16
|
+
* import { AtomicIcon } from '@umituz/react-native-design-system';
|
|
17
|
+
*
|
|
18
|
+
* // Basic usage
|
|
19
|
+
* <AtomicIcon name="Settings" size="md" color="primary" />
|
|
20
|
+
*
|
|
21
|
+
* // Custom size and color
|
|
22
|
+
* <AtomicIcon name="Heart" customSize={32} customColor="#FF0000" />
|
|
23
|
+
*
|
|
24
|
+
* // With background
|
|
25
|
+
* <AtomicIcon name="Info" size="lg" withBackground backgroundColor="#667eea" />
|
|
26
|
+
* ```
|
|
27
|
+
*/
|
|
28
|
+
export declare const AtomicIcon: React.FC<IconProps>;
|
|
29
|
+
/**
|
|
30
|
+
* Re-export types with Atomic naming convention
|
|
31
|
+
*/
|
|
32
|
+
export type AtomicIconProps = IconProps;
|
|
33
|
+
export type AtomicIconSize = IconSize;
|
|
34
|
+
export type AtomicIconColor = IconColor;
|
|
35
|
+
export type AtomicIconName = LucideIconName;
|
|
36
|
+
//# sourceMappingURL=AtomicIcon.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AtomicIcon.d.ts","sourceRoot":"","sources":["../../../src/presentation/atoms/AtomicIcon.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,oDAAoD,CAAC;AACzG,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2DAA2D,CAAC;AAEhG;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CAE1C,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,SAAS,CAAC;AACxC,MAAM,MAAM,cAAc,GAAG,QAAQ,CAAC;AACtC,MAAM,MAAM,eAAe,GAAG,SAAS,CAAC;AACxC,MAAM,MAAM,cAAc,GAAG,cAAc,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AtomicIcon - Atomic Design System Icon Component
|
|
3
|
+
*
|
|
4
|
+
* Wrapper for the universal Icon component from @domains/icons
|
|
5
|
+
* Provides backward compatibility with AtomicIcon naming convention
|
|
6
|
+
* while leveraging the full power of the icons domain architecture.
|
|
7
|
+
*/
|
|
8
|
+
import React from 'react';
|
|
9
|
+
import { Icon } from '../../domains/icons/presentation/components/Icon';
|
|
10
|
+
/**
|
|
11
|
+
* AtomicIcon Component
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```tsx
|
|
15
|
+
* import { AtomicIcon } from '@umituz/react-native-design-system';
|
|
16
|
+
*
|
|
17
|
+
* // Basic usage
|
|
18
|
+
* <AtomicIcon name="Settings" size="md" color="primary" />
|
|
19
|
+
*
|
|
20
|
+
* // Custom size and color
|
|
21
|
+
* <AtomicIcon name="Heart" customSize={32} customColor="#FF0000" />
|
|
22
|
+
*
|
|
23
|
+
* // With background
|
|
24
|
+
* <AtomicIcon name="Info" size="lg" withBackground backgroundColor="#667eea" />
|
|
25
|
+
* ```
|
|
26
|
+
*/
|
|
27
|
+
export const AtomicIcon = (props) => {
|
|
28
|
+
return <Icon {...props}/>;
|
|
29
|
+
};
|
|
30
|
+
//# sourceMappingURL=AtomicIcon.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AtomicIcon.js","sourceRoot":"","sources":["../../../src/presentation/atoms/AtomicIcon.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,IAAI,EAAE,MAAM,kDAAkD,CAAC;AAIxE;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,MAAM,UAAU,GAAwB,CAAC,KAAK,EAAE,EAAE;IACvD,OAAO,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,EAAG,CAAC;AAC7B,CAAC,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AtomicImage - Universal Image Component
|
|
3
|
+
*
|
|
4
|
+
* Provides consistent image handling across the app with theme integration
|
|
5
|
+
* Theme: {{THEME_NAME}} ({{CATEGORY}} category)
|
|
6
|
+
*
|
|
7
|
+
* Atomic Design Level: ATOM
|
|
8
|
+
* Purpose: Basic image display with consistent styling
|
|
9
|
+
*
|
|
10
|
+
* Usage:
|
|
11
|
+
* - Profile pictures
|
|
12
|
+
* - Product images
|
|
13
|
+
* - Icons and illustrations
|
|
14
|
+
* - Background images
|
|
15
|
+
*/
|
|
16
|
+
import React from 'react';
|
|
17
|
+
import { ImageProps, ViewStyle } from 'react-native';
|
|
18
|
+
export interface AtomicImageProps extends Omit<ImageProps, 'style'> {
|
|
19
|
+
/** Image source */
|
|
20
|
+
source: ImageProps['source'];
|
|
21
|
+
/** Size variant */
|
|
22
|
+
size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'xxl';
|
|
23
|
+
/** Shape variant */
|
|
24
|
+
shape?: 'square' | 'circle' | 'rounded';
|
|
25
|
+
/** Border radius override */
|
|
26
|
+
borderRadius?: number;
|
|
27
|
+
/** Container style override */
|
|
28
|
+
style?: ViewStyle | ViewStyle[];
|
|
29
|
+
/** Image style override */
|
|
30
|
+
imageStyle?: ImageProps['style'];
|
|
31
|
+
/** Background color */
|
|
32
|
+
backgroundColor?: string;
|
|
33
|
+
/** Border color */
|
|
34
|
+
borderColor?: string;
|
|
35
|
+
/** Border width */
|
|
36
|
+
borderWidth?: number;
|
|
37
|
+
}
|
|
38
|
+
export declare const AtomicImage: React.FC<AtomicImageProps>;
|
|
39
|
+
export default AtomicImage;
|
|
40
|
+
//# sourceMappingURL=AtomicImage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AtomicImage.d.ts","sourceRoot":"","sources":["../../../src/presentation/atoms/AtomicImage.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAS,UAAU,EAAc,SAAS,EAAE,MAAM,cAAc,CAAC;AAOxE,MAAM,WAAW,gBAAiB,SAAQ,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC;IACjE,mBAAmB;IACnB,MAAM,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC7B,mBAAmB;IACnB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,CAAC;IAChD,oBAAoB;IACpB,KAAK,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;IACxC,6BAA6B;IAC7B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,+BAA+B;IAC/B,KAAK,CAAC,EAAE,SAAS,GAAG,SAAS,EAAE,CAAC;IAChC,2BAA2B;IAC3B,UAAU,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;IACjC,uBAAuB;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,mBAAmB;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mBAAmB;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAmBD,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CA8ClD,CAAC;AAwCF,eAAe,WAAW,CAAC"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AtomicImage - Universal Image Component
|
|
3
|
+
*
|
|
4
|
+
* Provides consistent image handling across the app with theme integration
|
|
5
|
+
* Theme: {{THEME_NAME}} ({{CATEGORY}} category)
|
|
6
|
+
*
|
|
7
|
+
* Atomic Design Level: ATOM
|
|
8
|
+
* Purpose: Basic image display with consistent styling
|
|
9
|
+
*
|
|
10
|
+
* Usage:
|
|
11
|
+
* - Profile pictures
|
|
12
|
+
* - Product images
|
|
13
|
+
* - Icons and illustrations
|
|
14
|
+
* - Background images
|
|
15
|
+
*/
|
|
16
|
+
import React from 'react';
|
|
17
|
+
import { Image, StyleSheet } from 'react-native';
|
|
18
|
+
import { useAppDesignTokens } from '../hooks/useAppDesignTokens';
|
|
19
|
+
// =============================================================================
|
|
20
|
+
// SIZE CONFIGURATION
|
|
21
|
+
// =============================================================================
|
|
22
|
+
const SIZE_CONFIG = {
|
|
23
|
+
xs: 24,
|
|
24
|
+
sm: 32,
|
|
25
|
+
md: 48,
|
|
26
|
+
lg: 64,
|
|
27
|
+
xl: 96,
|
|
28
|
+
xxl: 128,
|
|
29
|
+
};
|
|
30
|
+
// =============================================================================
|
|
31
|
+
// COMPONENT IMPLEMENTATION
|
|
32
|
+
// =============================================================================
|
|
33
|
+
export const AtomicImage = ({ source, size = 'md', shape = 'rounded', borderRadius, style, imageStyle, backgroundColor, borderColor, borderWidth = 0, ...props }) => {
|
|
34
|
+
const tokens = useAppDesignTokens();
|
|
35
|
+
const styles = getStyles(tokens);
|
|
36
|
+
const imageSize = SIZE_CONFIG[size];
|
|
37
|
+
const calculatedBorderRadius = borderRadius ?? getBorderRadius(shape, imageSize, tokens);
|
|
38
|
+
const containerStyle = [
|
|
39
|
+
styles.container,
|
|
40
|
+
{
|
|
41
|
+
width: imageSize,
|
|
42
|
+
height: imageSize,
|
|
43
|
+
borderRadius: calculatedBorderRadius,
|
|
44
|
+
backgroundColor: backgroundColor || tokens.colors.surface,
|
|
45
|
+
borderColor: borderColor || tokens.colors.border,
|
|
46
|
+
borderWidth,
|
|
47
|
+
},
|
|
48
|
+
style,
|
|
49
|
+
];
|
|
50
|
+
const finalImageStyle = [
|
|
51
|
+
styles.image,
|
|
52
|
+
{
|
|
53
|
+
borderRadius: calculatedBorderRadius,
|
|
54
|
+
},
|
|
55
|
+
imageStyle,
|
|
56
|
+
];
|
|
57
|
+
return (<Image source={source} style={finalImageStyle} {...props}/>);
|
|
58
|
+
};
|
|
59
|
+
// =============================================================================
|
|
60
|
+
// HELPER FUNCTIONS
|
|
61
|
+
// =============================================================================
|
|
62
|
+
const getBorderRadius = (shape, size, tokens) => {
|
|
63
|
+
switch (shape) {
|
|
64
|
+
case 'circle':
|
|
65
|
+
return size / 2;
|
|
66
|
+
case 'square':
|
|
67
|
+
return 0;
|
|
68
|
+
case 'rounded':
|
|
69
|
+
default:
|
|
70
|
+
return tokens.borders.radius.md;
|
|
71
|
+
}
|
|
72
|
+
};
|
|
73
|
+
// =============================================================================
|
|
74
|
+
// STYLES
|
|
75
|
+
// =============================================================================
|
|
76
|
+
const getStyles = (tokens) => StyleSheet.create({
|
|
77
|
+
container: {
|
|
78
|
+
overflow: 'hidden',
|
|
79
|
+
justifyContent: 'center',
|
|
80
|
+
alignItems: 'center',
|
|
81
|
+
},
|
|
82
|
+
image: {
|
|
83
|
+
width: '100%',
|
|
84
|
+
height: '100%',
|
|
85
|
+
resizeMode: 'cover',
|
|
86
|
+
},
|
|
87
|
+
});
|
|
88
|
+
// =============================================================================
|
|
89
|
+
// EXPORTS
|
|
90
|
+
// =============================================================================
|
|
91
|
+
export default AtomicImage;
|
|
92
|
+
//# sourceMappingURL=AtomicImage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AtomicImage.js","sourceRoot":"","sources":["../../../src/presentation/atoms/AtomicImage.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,KAAK,EAAc,UAAU,EAAa,MAAM,cAAc,CAAC;AACxE,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AA2BjE,gFAAgF;AAChF,qBAAqB;AACrB,gFAAgF;AAEhF,MAAM,WAAW,GAAG;IAClB,EAAE,EAAE,EAAE;IACN,EAAE,EAAE,EAAE;IACN,EAAE,EAAE,EAAE;IACN,EAAE,EAAE,EAAE;IACN,EAAE,EAAE,EAAE;IACN,GAAG,EAAE,GAAG;CACA,CAAC;AAEX,gFAAgF;AAChF,2BAA2B;AAC3B,gFAAgF;AAEhF,MAAM,CAAC,MAAM,WAAW,GAA+B,CAAC,EACtD,MAAM,EACN,IAAI,GAAG,IAAI,EACX,KAAK,GAAG,SAAS,EACjB,YAAY,EACZ,KAAK,EACL,UAAU,EACV,eAAe,EACf,WAAW,EACX,WAAW,GAAG,CAAC,EACf,GAAG,KAAK,EACT,EAAE,EAAE;IACH,MAAM,MAAM,GAAG,kBAAkB,EAAE,CAAC;IACpC,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;IAEjC,MAAM,SAAS,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IACpC,MAAM,sBAAsB,GAAG,YAAY,IAAI,eAAe,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IAEzF,MAAM,cAAc,GAAG;QACrB,MAAM,CAAC,SAAS;QAChB;YACE,KAAK,EAAE,SAAS;YAChB,MAAM,EAAE,SAAS;YACjB,YAAY,EAAE,sBAAsB;YACpC,eAAe,EAAE,eAAe,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO;YACzD,WAAW,EAAE,WAAW,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM;YAChD,WAAW;SACZ;QACD,KAAK;KACN,CAAC;IAEF,MAAM,eAAe,GAAG;QACtB,MAAM,CAAC,KAAK;QACZ;YACE,YAAY,EAAE,sBAAsB;SACrC;QACD,UAAU;KACX,CAAC;IAEF,OAAO,CACL,CAAC,KAAK,CACJ,MAAM,CAAC,CAAC,MAAM,CAAC,CACf,KAAK,CAAC,CAAC,eAAe,CAAC,CACvB,IAAI,KAAK,CAAC,EACV,CACH,CAAC;AACJ,CAAC,CAAC;AAEF,gFAAgF;AAChF,mBAAmB;AACnB,gFAAgF;AAEhF,MAAM,eAAe,GAAG,CAAC,KAAgC,EAAE,IAAY,EAAE,MAA6C,EAAU,EAAE;IAChI,QAAQ,KAAK,EAAE,CAAC;QACd,KAAK,QAAQ;YACX,OAAO,IAAI,GAAG,CAAC,CAAC;QAClB,KAAK,QAAQ;YACX,OAAO,CAAC,CAAC;QACX,KAAK,SAAS,CAAC;QACf;YACE,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;IACpC,CAAC;AACH,CAAC,CAAC;AAEF,gFAAgF;AAChF,SAAS;AACT,gFAAgF;AAEhF,MAAM,SAAS,GAAG,CAAC,MAA6C,EAAE,EAAE,CAClE,UAAU,CAAC,MAAM,CAAC;IAChB,SAAS,EAAE;QACT,QAAQ,EAAE,QAAQ;QAClB,cAAc,EAAE,QAAQ;QACxB,UAAU,EAAE,QAAQ;KACrB;IACD,KAAK,EAAE;QACL,KAAK,EAAE,MAAM;QACb,MAAM,EAAE,MAAM;QACd,UAAU,EAAE,OAAO;KACpB;CACF,CAAC,CAAC;AAEL,gFAAgF;AAChF,UAAU;AACV,gFAAgF;AAEhF,eAAe,WAAW,CAAC"}
|