pytech-ui 1.0.30 → 1.0.31
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/LICENSE +21 -21
- package/README.md +40 -40
- package/android/.gradle/buildOutputCleanup/cache.properties +2 -2
- package/android/.gradle/nb-cache/trust/8732A504261C070E1F639E78DF65F8E6DC6FFC865B3D7178A7609BB57105805F +1 -1
- package/android/build.gradle +47 -47
- package/android/src/main/AndroidManifest.xml +2 -2
- package/android/src/main/java/expo/modules/pytechui/Dialog.kt +39 -39
- package/android/src/main/java/expo/modules/pytechui/ForEach/ForEachRecords.kt +23 -23
- package/android/src/main/java/expo/modules/pytechui/ForEach/index.kt +82 -82
- package/android/src/main/java/expo/modules/pytechui/Gradient/GradientView.kt +124 -124
- package/android/src/main/java/expo/modules/pytechui/Icon/index.kt +36 -36
- package/android/src/main/java/expo/modules/pytechui/Icon/utils.kt +42 -42
- package/android/src/main/java/expo/modules/pytechui/ListItem/Data/ListItemDataRecords.kt +84 -84
- package/android/src/main/java/expo/modules/pytechui/ListItem/Data/ListItemFromData.kt +127 -127
- package/android/src/main/java/expo/modules/pytechui/ListItem/Slots/ListItemFromSlots.kt +60 -60
- package/android/src/main/java/expo/modules/pytechui/ListItem/Slots/types.kt +42 -42
- package/android/src/main/java/expo/modules/pytechui/ListItem/_shared/Decorator/Decorator.kt +79 -79
- package/android/src/main/java/expo/modules/pytechui/ListItem/_shared/Decorator/Divider.kt +36 -36
- package/android/src/main/java/expo/modules/pytechui/ListItem/_shared/Decorator/utilsDecorator.kt +19 -19
- package/android/src/main/java/expo/modules/pytechui/ListItem/_shared/Dynamic/Dynamic.kt +163 -163
- package/android/src/main/java/expo/modules/pytechui/ListItem/_shared/Dynamic/Row.kt +136 -136
- package/android/src/main/java/expo/modules/pytechui/PytechUiModifiers.kt +93 -93
- package/android/src/main/java/expo/modules/pytechui/PytechUiModule.kt +168 -168
- package/android/src/main/java/expo/modules/pytechui/SearchBar.kt +213 -213
- package/android/src/main/java/expo/modules/pytechui/Section/SectionHost.kt +81 -81
- package/android/src/main/java/expo/modules/pytechui/Section/SectionHostView.kt +65 -65
- package/android/src/main/java/expo/modules/pytechui/TextField.kt +251 -251
- package/android/src/main/java/expo/modules/pytechui/TypographySlot/TypographySlotBridge.kt +120 -120
- package/android/src/main/java/expo/modules/pytechui/TypographySlot/constants.kt +47 -47
- package/android/src/main/java/expo/modules/pytechui/extended-theme/ExtendedThemeView.kt +19 -19
- package/android/src/main/java/expo/modules/pytechui/extended-theme/assets/Colors/ExtendedColorBridge.kt +76 -76
- package/android/src/main/java/expo/modules/pytechui/extended-theme/assets/Constants/Constants.kt +10 -10
- package/android/src/main/java/expo/modules/pytechui/extended-theme/assets/Tokens/assets/AppBarLargeFlexibleTokens.kt +20 -20
- package/android/src/main/java/expo/modules/pytechui/extended-theme/assets/Tokens/assets/AppBarLargeTokens.kt +19 -19
- package/android/src/main/java/expo/modules/pytechui/extended-theme/assets/Tokens/assets/AppBarMediumFlexibleTokens.kt +20 -20
- package/android/src/main/java/expo/modules/pytechui/extended-theme/assets/Tokens/assets/AppBarMediumTokens.kt +19 -19
- package/android/src/main/java/expo/modules/pytechui/extended-theme/assets/Tokens/assets/AppBarSmallTokens.kt +19 -19
- package/android/src/main/java/expo/modules/pytechui/extended-theme/assets/Tokens/assets/AppBarTokens.kt +23 -23
- package/android/src/main/java/expo/modules/pytechui/extended-theme/assets/Tokens/assets/AssistChipTokens.kt +25 -25
- package/android/src/main/java/expo/modules/pytechui/extended-theme/assets/Tokens/assets/BadgeTokens.kt +20 -20
- package/android/src/main/java/expo/modules/pytechui/extended-theme/assets/Tokens/assets/BaselineButtonTokens.kt +26 -26
- package/android/src/main/java/expo/modules/pytechui/extended-theme/assets/Tokens/assets/BottomAppBarTokens.kt +19 -19
- package/android/src/main/java/expo/modules/pytechui/extended-theme/assets/Tokens/assets/ButtonGroupSmallTokens.kt +20 -20
- package/android/src/main/java/expo/modules/pytechui/extended-theme/assets/Tokens/assets/ButtonLargeTokens.kt +24 -24
- package/android/src/main/java/expo/modules/pytechui/extended-theme/assets/Tokens/assets/ButtonMediumTokens.kt +24 -24
- package/android/src/main/java/expo/modules/pytechui/extended-theme/assets/Tokens/assets/ButtonSmallTokens.kt +24 -24
- package/android/src/main/java/expo/modules/pytechui/extended-theme/assets/Tokens/assets/ButtonXLargeTokens.kt +24 -24
- package/android/src/main/java/expo/modules/pytechui/extended-theme/assets/Tokens/assets/ButtonXSmallTokens.kt +24 -24
- package/android/src/main/java/expo/modules/pytechui/extended-theme/assets/Tokens/assets/CheckboxTokens.kt +35 -35
- package/android/src/main/java/expo/modules/pytechui/extended-theme/assets/Tokens/assets/CircularProgressIndicatorTokens.kt +25 -25
- package/android/src/main/java/expo/modules/pytechui/extended-theme/assets/Tokens/assets/ConnectedButtonGroupSmallTokens.kt +21 -21
- package/android/src/main/java/expo/modules/pytechui/extended-theme/assets/Tokens/assets/DateInputModalTokens.kt +22 -22
- package/android/src/main/java/expo/modules/pytechui/extended-theme/assets/Tokens/assets/DatePickerModalTokens.kt +33 -33
- package/android/src/main/java/expo/modules/pytechui/extended-theme/assets/Tokens/assets/DialogTokens.kt +19 -19
- package/android/src/main/java/expo/modules/pytechui/extended-theme/assets/Tokens/assets/DividerTokens.kt +19 -19
- package/android/src/main/java/expo/modules/pytechui/extended-theme/assets/Tokens/assets/DockedToolbarTokens.kt +23 -23
- package/android/src/main/java/expo/modules/pytechui/extended-theme/assets/Tokens/assets/DragHandleTokens.kt +25 -25
- package/android/src/main/java/expo/modules/pytechui/extended-theme/assets/Tokens/assets/ElevatedButtonTokens.kt +19 -19
- package/android/src/main/java/expo/modules/pytechui/extended-theme/assets/Tokens/assets/ElevatedCardTokens.kt +20 -20
- package/android/src/main/java/expo/modules/pytechui/extended-theme/assets/Tokens/assets/ElevationTokens.kt +24 -24
- package/android/src/main/java/expo/modules/pytechui/extended-theme/assets/Tokens/assets/ExpressiveMotionTokens.kt +28 -28
- package/android/src/main/java/expo/modules/pytechui/extended-theme/assets/Tokens/assets/ExtendedFabLargeTokens.kt +23 -23
- package/android/src/main/java/expo/modules/pytechui/extended-theme/assets/Tokens/assets/ExtendedFabMediumTokens.kt +24 -24
- package/android/src/main/java/expo/modules/pytechui/extended-theme/assets/Tokens/assets/ExtendedFabPrimaryTokens.kt +20 -20
- package/android/src/main/java/expo/modules/pytechui/extended-theme/assets/Tokens/assets/ExtendedFabSmallTokens.kt +23 -23
- package/android/src/main/java/expo/modules/pytechui/extended-theme/assets/Tokens/assets/FabBaselineTokens.kt +21 -21
- package/android/src/main/java/expo/modules/pytechui/extended-theme/assets/Tokens/assets/FabLargeTokens.kt +21 -21
- package/android/src/main/java/expo/modules/pytechui/extended-theme/assets/Tokens/assets/FabMediumTokens.kt +22 -22
- package/android/src/main/java/expo/modules/pytechui/extended-theme/assets/Tokens/assets/FabMenuBaselineTokens.kt +28 -28
- package/android/src/main/java/expo/modules/pytechui/extended-theme/assets/Tokens/assets/FabSmallTokens.kt +21 -21
- package/android/src/main/java/expo/modules/pytechui/extended-theme/assets/Tokens/assets/FilledAutocompleteTokens.kt +31 -31
- package/android/src/main/java/expo/modules/pytechui/extended-theme/assets/Tokens/assets/FilledButtonTokens.kt +19 -19
- package/android/src/main/java/expo/modules/pytechui/extended-theme/assets/Tokens/assets/FilledCardTokens.kt +20 -20
- package/android/src/main/java/expo/modules/pytechui/extended-theme/assets/Tokens/assets/FilledIconButtonTokens.kt +18 -18
- package/android/src/main/java/expo/modules/pytechui/extended-theme/assets/Tokens/assets/FilledTextFieldTokens.kt +31 -31
- package/android/src/main/java/expo/modules/pytechui/extended-theme/assets/Tokens/assets/FilledTonalButtonTokens.kt +23 -23
- package/android/src/main/java/expo/modules/pytechui/extended-theme/assets/Tokens/assets/FilledTonalIconButtonTokens.kt +18 -18
- package/android/src/main/java/expo/modules/pytechui/extended-theme/assets/Tokens/assets/FilterChipTokens.kt +28 -28
- package/android/src/main/java/expo/modules/pytechui/extended-theme/assets/Tokens/assets/FloatingToolbarTokens.kt +23 -23
- package/android/src/main/java/expo/modules/pytechui/extended-theme/assets/Tokens/assets/IconButtonTokens.kt +17 -17
- package/android/src/main/java/expo/modules/pytechui/extended-theme/assets/Tokens/assets/InputChipTokens.kt +30 -30
- package/android/src/main/java/expo/modules/pytechui/extended-theme/assets/Tokens/assets/LargeIconButtonTokens.kt +27 -27
- package/android/src/main/java/expo/modules/pytechui/extended-theme/assets/Tokens/assets/LinearProgressIndicatorTokens.kt +28 -28
- package/android/src/main/java/expo/modules/pytechui/extended-theme/assets/Tokens/assets/ListTokens.kt +57 -57
- package/android/src/main/java/expo/modules/pytechui/extended-theme/assets/Tokens/assets/LoadingIndicatorTokens.kt +21 -21
- package/android/src/main/java/expo/modules/pytechui/extended-theme/assets/Tokens/assets/MediumIconButtonTokens.kt +27 -27
- package/android/src/main/java/expo/modules/pytechui/extended-theme/assets/Tokens/assets/MotionTokens.kt +44 -44
- package/android/src/main/java/expo/modules/pytechui/extended-theme/assets/Tokens/assets/NavigationBarHorizontalItemTokens.kt +22 -22
- package/android/src/main/java/expo/modules/pytechui/extended-theme/assets/Tokens/assets/NavigationBarTokens.kt +23 -23
- package/android/src/main/java/expo/modules/pytechui/extended-theme/assets/Tokens/assets/NavigationBarVerticalItemTokens.kt +22 -22
- package/android/src/main/java/expo/modules/pytechui/extended-theme/assets/Tokens/assets/NavigationDrawerTokens.kt +23 -23
- package/android/src/main/java/expo/modules/pytechui/extended-theme/assets/Tokens/assets/NavigationRailBaselineItemTokens.kt +25 -25
- package/android/src/main/java/expo/modules/pytechui/extended-theme/assets/Tokens/assets/NavigationRailCollapsedTokens.kt +23 -23
- package/android/src/main/java/expo/modules/pytechui/extended-theme/assets/Tokens/assets/NavigationRailExpandedTokens.kt +22 -22
- package/android/src/main/java/expo/modules/pytechui/extended-theme/assets/Tokens/assets/NavigationRailHorizontalItemTokens.kt +24 -24
- package/android/src/main/java/expo/modules/pytechui/extended-theme/assets/Tokens/assets/NavigationRailVerticalItemTokens.kt +24 -24
- package/android/src/main/java/expo/modules/pytechui/extended-theme/assets/Tokens/assets/OutlinedAutocompleteTokens.kt +30 -30
- package/android/src/main/java/expo/modules/pytechui/extended-theme/assets/Tokens/assets/OutlinedButtonTokens.kt +19 -19
- package/android/src/main/java/expo/modules/pytechui/extended-theme/assets/Tokens/assets/OutlinedCardTokens.kt +21 -21
- package/android/src/main/java/expo/modules/pytechui/extended-theme/assets/Tokens/assets/OutlinedIconButtonTokens.kt +18 -18
- package/android/src/main/java/expo/modules/pytechui/extended-theme/assets/Tokens/assets/OutlinedSegmentedButtonTokens.kt +24 -24
- package/android/src/main/java/expo/modules/pytechui/extended-theme/assets/Tokens/assets/OutlinedTextFieldTokens.kt +31 -31
- package/android/src/main/java/expo/modules/pytechui/extended-theme/assets/Tokens/assets/PrimaryNavigationTabTokens.kt +24 -24
- package/android/src/main/java/expo/modules/pytechui/extended-theme/assets/Tokens/assets/RadioButtonTokens.kt +22 -22
- package/android/src/main/java/expo/modules/pytechui/extended-theme/assets/Tokens/assets/ScrimTokens.kt +17 -17
- package/android/src/main/java/expo/modules/pytechui/extended-theme/assets/Tokens/assets/SearchBarTokens.kt +20 -20
- package/android/src/main/java/expo/modules/pytechui/extended-theme/assets/Tokens/assets/SearchViewTokens.kt +20 -20
- package/android/src/main/java/expo/modules/pytechui/extended-theme/assets/Tokens/assets/SecondaryNavigationTabTokens.kt +21 -21
- package/android/src/main/java/expo/modules/pytechui/extended-theme/assets/Tokens/assets/SegmentedMenuTokens.kt +42 -42
- package/android/src/main/java/expo/modules/pytechui/extended-theme/assets/Tokens/assets/ShapeTokens.kt +74 -74
- package/android/src/main/java/expo/modules/pytechui/extended-theme/assets/Tokens/assets/SheetBottomTokens.kt +20 -20
- package/android/src/main/java/expo/modules/pytechui/extended-theme/assets/Tokens/assets/SliderTokens.kt +39 -39
- package/android/src/main/java/expo/modules/pytechui/extended-theme/assets/Tokens/assets/SmallIconButtonTokens.kt +27 -27
- package/android/src/main/java/expo/modules/pytechui/extended-theme/assets/Tokens/assets/SnackbarTokens.kt +21 -21
- package/android/src/main/java/expo/modules/pytechui/extended-theme/assets/Tokens/assets/SplitButtonLargeTokens.kt +26 -26
- package/android/src/main/java/expo/modules/pytechui/extended-theme/assets/Tokens/assets/SplitButtonMediumTokens.kt +26 -26
- package/android/src/main/java/expo/modules/pytechui/extended-theme/assets/Tokens/assets/SplitButtonSmallTokens.kt +26 -26
- package/android/src/main/java/expo/modules/pytechui/extended-theme/assets/Tokens/assets/SplitButtonXLargeTokens.kt +26 -26
- package/android/src/main/java/expo/modules/pytechui/extended-theme/assets/Tokens/assets/SplitButtonXSmallTokens.kt +27 -27
- package/android/src/main/java/expo/modules/pytechui/extended-theme/assets/Tokens/assets/StandardMenuTokens.kt +25 -25
- package/android/src/main/java/expo/modules/pytechui/extended-theme/assets/Tokens/assets/StandardMotionTokens.kt +27 -27
- package/android/src/main/java/expo/modules/pytechui/extended-theme/assets/Tokens/assets/StateTokens.kt +20 -20
- package/android/src/main/java/expo/modules/pytechui/extended-theme/assets/Tokens/assets/SuggestionChipTokens.kt +25 -25
- package/android/src/main/java/expo/modules/pytechui/extended-theme/assets/Tokens/assets/SwitchTokens.kt +37 -37
- package/android/src/main/java/expo/modules/pytechui/extended-theme/assets/Tokens/assets/TextButtonTokens.kt +18 -18
- package/android/src/main/java/expo/modules/pytechui/extended-theme/assets/Tokens/assets/TimeInputTokens.kt +24 -24
- package/android/src/main/java/expo/modules/pytechui/extended-theme/assets/Tokens/assets/TimePickerTokens.kt +30 -30
- package/android/src/main/java/expo/modules/pytechui/extended-theme/assets/Tokens/assets/TonalButtonTokens.kt +19 -19
- package/android/src/main/java/expo/modules/pytechui/extended-theme/assets/Tokens/assets/TypeScaleTokens.kt +72 -72
- package/android/src/main/java/expo/modules/pytechui/extended-theme/assets/Tokens/assets/VibrantMenuTokens.kt +26 -26
- package/android/src/main/java/expo/modules/pytechui/extended-theme/assets/Tokens/assets/XLargeIconButtonTokens.kt +27 -27
- package/android/src/main/java/expo/modules/pytechui/extended-theme/assets/Tokens/assets/XSmallIconButtonTokens.kt +27 -27
- package/android/src/main/java/expo/modules/pytechui/extended-theme/assets/Tokens/index.kt +216 -216
- package/android/src/main/java/expo/modules/pytechui/extended-theme/index.kt +38 -38
- package/android/src/main/java/expo/modules/pytechui/utils/children.kt +126 -126
- package/android/src/main/java/expo/modules/pytechui/utils/modifiers.kt +44 -44
- package/build/constants/utils.d.ts +1 -1
- package/build/contexts/alert/components/Alert/index.js +16 -16
- package/build/contexts/alert/components/Button/index.js +5 -5
- package/build/contexts/alert/components/Provider/index.ios.js +2 -2
- package/build/contexts/alert/components/Provider/index.js +3 -3
- package/build/contexts/alert/context/provider.d.ts +1 -1
- package/build/contexts/alert/context/provider.js +1 -1
- package/build/contexts/app/context.d.ts +1 -1
- package/build/contexts/app/context.js +15 -15
- package/build/contexts/app/index.d.ts +2 -2
- package/build/contexts/app/index.js +2 -2
- package/build/contexts/app/src/Head/index.d.ts +1 -1
- package/build/contexts/app/src/Head/index.web.js +12 -12
- package/build/contexts/app/src/Wrapper/index.d.ts +1 -1
- package/build/contexts/app/src/Wrapper/index.js +2 -2
- package/build/contexts/app/src/styles.css +16 -16
- package/build/contexts/app/types.d.ts +1 -1
- package/build/contexts/router/index.d.ts +1 -1
- package/build/contexts/router/index.js +3 -3
- package/build/jetpack-compose/components/Columns/CommonColumn/index.js +2 -2
- package/build/jetpack-compose/components/Columns/CommonColumn/types.d.ts +1 -1
- package/build/jetpack-compose/components/Columns/CommonColumn/utils.d.ts +1 -1
- package/build/jetpack-compose/components/Columns/CommonColumn/utils.js +1 -1
- package/build/jetpack-compose/components/DropdownMenu/index.d.ts +1 -1
- package/build/jetpack-compose/components/DropdownMenu/index.js +3 -3
- package/build/jetpack-compose/components/DropdownPicker/Picker.d.ts +3 -3
- package/build/jetpack-compose/components/DropdownPicker/Picker.js +24 -24
- package/build/jetpack-compose/components/DropdownPicker/PickerItem.js +5 -5
- package/build/jetpack-compose/components/DropdownPicker/context.d.ts +4 -10
- package/build/jetpack-compose/components/ForEach/src/ForEach.d.ts +1 -1
- package/build/jetpack-compose/components/ForEach/src/ForEach.js +5 -5
- package/build/jetpack-compose/components/ForEach/src/ListItem.d.ts +1 -1
- package/build/jetpack-compose/components/ForEach/src/types.d.ts +1 -1
- package/build/jetpack-compose/components/Gradient/Gradient.js +1 -1
- package/build/jetpack-compose/components/Gradient/types.d.ts +1 -1
- package/build/jetpack-compose/components/Icon/Icon/Icon.js +1 -1
- package/build/jetpack-compose/components/Icon/index.d.ts +1 -1
- package/build/jetpack-compose/components/IconSection/IconSection.js +19 -19
- package/build/jetpack-compose/components/IconSection/types.d.ts +1 -1
- package/build/jetpack-compose/components/IconSection/utils.js +1 -1
- package/build/jetpack-compose/components/List/CommonColumn.js +3 -3
- package/build/jetpack-compose/components/List/index.d.ts +1 -1
- package/build/jetpack-compose/components/List/index.js +11 -11
- package/build/jetpack-compose/components/ListItem/SlotListItem.d.ts +2 -2
- package/build/jetpack-compose/components/ListItem/SlotListItem.js +9 -9
- package/build/jetpack-compose/components/Menu/src/components/Divider.js +2 -2
- package/build/jetpack-compose/components/Menu/src/components/Icon.d.ts +1 -1
- package/build/jetpack-compose/components/Menu/src/components/Icon.js +1 -1
- package/build/jetpack-compose/components/Menu/src/components/Item.d.ts +2 -3
- package/build/jetpack-compose/components/Menu/src/components/Item.js +26 -26
- package/build/jetpack-compose/components/Menu/src/components/Label.d.ts +4 -1
- package/build/jetpack-compose/components/Menu/src/components/Label.js +3 -3
- package/build/jetpack-compose/components/Menu/src/components/Menu.d.ts +2 -2
- package/build/jetpack-compose/components/Menu/src/components/Menu.js +26 -26
- package/build/jetpack-compose/components/Menu/src/components/Trigger.js +7 -7
- package/build/jetpack-compose/components/Menu/src/context.d.ts +8 -6
- package/build/jetpack-compose/components/Menu/src/utils.js +3 -3
- package/build/jetpack-compose/components/PagePicker/Item.js +11 -11
- package/build/jetpack-compose/components/PagePicker/Picker.js +5 -5
- package/build/jetpack-compose/components/PagePicker/context/index.d.ts +1 -1
- package/build/jetpack-compose/components/PagePicker/context/index.js +8 -8
- package/build/jetpack-compose/components/PullToRefreshBox.js +1 -1
- package/build/jetpack-compose/components/SearchBar.d.ts +1 -1
- package/build/jetpack-compose/components/SearchBar.js +1 -1
- package/build/jetpack-compose/components/Section/components/Column.d.ts +1 -1
- package/build/jetpack-compose/components/Section/components/Column.js +3 -3
- package/build/jetpack-compose/components/Section/components/Section.js +18 -18
- package/build/jetpack-compose/components/Section/components/Slot.d.ts +1 -1
- package/build/jetpack-compose/components/Section/components/Slot.js +3 -3
- package/build/jetpack-compose/components/SectionHost/index.d.ts +1 -1
- package/build/jetpack-compose/components/SectionHost/index.js +3 -3
- package/build/jetpack-compose/components/TextField.d.ts +1 -1
- package/build/jetpack-compose/components/TextField.js +1 -1
- package/build/jetpack-compose/components/TextSlot.js +2 -3
- package/build/jetpack-compose/extended-theme/assets/Colors/index.js +2 -2
- package/build/jetpack-compose/modifiers/flexWeight.d.ts +1 -1
- package/build/jetpack-compose/modifiers/heightIn.d.ts +1 -1
- package/build/swift-ui/Image.js +2 -2
- package/build/swift-ui/ListItem.js +2 -2
- package/build/swift-ui/Slot.js +2 -2
- package/build/swift-ui/Text.js +2 -2
- package/build/universal/Column/index.android.js +2 -2
- package/build/universal/Column/index.ios.js +2 -2
- package/build/universal/Column/index.js +2 -2
- package/build/universal/Host/index.ios.js +2 -2
- package/build/universal/Row/index.android.js +2 -2
- package/build/universal/Row/index.ios.js +2 -2
- package/build/universal/Row/index.js +2 -2
- package/expo-module.config.json +11 -11
- package/ios/ChevronForwardView.swift +21 -21
- package/ios/GradientView.swift +40 -40
- package/ios/ImageView.swift +32 -32
- package/ios/ListItem.swift +161 -161
- package/ios/PytechUi.podspec +24 -24
- package/ios/PytechUiModule.swift +15 -15
- package/ios/SlotView.swift +107 -107
- package/ios/_shared/utils.swift +58 -58
- package/package.json +19 -15
package/ios/PytechUiModule.swift
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import ExpoModulesCore
|
|
2
|
-
import ExpoUI
|
|
3
|
-
|
|
4
|
-
public class PytechUiModule: Module {
|
|
5
|
-
public func definition() -> ModuleDefinition {
|
|
6
|
-
Name("PytechUi")
|
|
7
|
-
|
|
8
|
-
View(SlotView.self)
|
|
9
|
-
|
|
10
|
-
ExpoUIView(ChevronForwardView.self)
|
|
11
|
-
ExpoUIView(GradientView.self)
|
|
12
|
-
ExpoUIView(ImageView.self)
|
|
13
|
-
ExpoUIView(ListItemView.self)
|
|
14
|
-
}
|
|
15
|
-
}
|
|
1
|
+
import ExpoModulesCore
|
|
2
|
+
import ExpoUI
|
|
3
|
+
|
|
4
|
+
public class PytechUiModule: Module {
|
|
5
|
+
public func definition() -> ModuleDefinition {
|
|
6
|
+
Name("PytechUi")
|
|
7
|
+
|
|
8
|
+
View(SlotView.self)
|
|
9
|
+
|
|
10
|
+
ExpoUIView(ChevronForwardView.self)
|
|
11
|
+
ExpoUIView(GradientView.self)
|
|
12
|
+
ExpoUIView(ImageView.self)
|
|
13
|
+
ExpoUIView(ListItemView.self)
|
|
14
|
+
}
|
|
15
|
+
}
|
package/ios/SlotView.swift
CHANGED
|
@@ -1,107 +1,107 @@
|
|
|
1
|
-
import SwiftUI
|
|
2
|
-
import ExpoModulesCore
|
|
3
|
-
import ExpoUI
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
internal final class SlotViewProps: ExpoSwiftUI.ViewProps {
|
|
8
|
-
@Field var name: String = ""
|
|
9
|
-
@Field var extraProps: [String: Any]?
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
internal struct SlotView: ExpoSwiftUI.View {
|
|
13
|
-
@ObservedObject var props: SlotViewProps
|
|
14
|
-
|
|
15
|
-
init(props: SlotViewProps) {
|
|
16
|
-
self.props = props
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
var body: some View {
|
|
20
|
-
Children()
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
func extra<T>(_ key: String, as type: T.Type = T.self) -> T? {
|
|
24
|
-
return props.extraProps?[key] as? T
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
extension [any ExpoSwiftUI.AnyChild] {
|
|
29
|
-
func slot(_ name: String) -> SlotView? {
|
|
30
|
-
compactMap { $0.childView as? SlotView }
|
|
31
|
-
.first { $0.props.name == name }
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
func withoutSlot(_ name: String) -> [any ExpoSwiftUI.AnyChild] {
|
|
35
|
-
filter {
|
|
36
|
-
guard let slot = $0.childView as? SlotView else { return true }
|
|
37
|
-
return slot.props.name != name
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
func withoutSlots() -> [any ExpoSwiftUI.AnyChild] {
|
|
42
|
-
filter { !($0.childView is SlotView) }
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
/**
|
|
48
|
-
Le agrega una función para obtener el texto directo del slot.
|
|
49
|
-
Esto es útil para los slots que contienen nuestro `<Text>` (slot "text" → TextView).
|
|
50
|
-
Por ejemplo, si el slot contiene nuestro `<Text>` (slot "text" → TextView), devuelve el string.
|
|
51
|
-
Si no, devuelve nil.
|
|
52
|
-
|
|
53
|
-
Ejemplo:
|
|
54
|
-
<Slot name="text">
|
|
55
|
-
<Text>Hello</Text>
|
|
56
|
-
</Slot>
|
|
57
|
-
*/
|
|
58
|
-
extension SlotView {
|
|
59
|
-
var isTextContent: Bool {
|
|
60
|
-
props.children?.slot("text") != nil || textContent() != nil
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
@ViewBuilder
|
|
64
|
-
func renderedContent(defaultFont: Font = .body, secondary: Bool = false) -> some View {
|
|
65
|
-
if isTextContent {
|
|
66
|
-
if let textSlot = props.children?.slot("text") {
|
|
67
|
-
if secondary {
|
|
68
|
-
textSlot
|
|
69
|
-
.font(defaultFont)
|
|
70
|
-
.foregroundStyle(.secondary)
|
|
71
|
-
} else {
|
|
72
|
-
textSlot
|
|
73
|
-
}
|
|
74
|
-
} else if secondary {
|
|
75
|
-
self
|
|
76
|
-
.font(defaultFont)
|
|
77
|
-
.foregroundStyle(.secondary)
|
|
78
|
-
} else {
|
|
79
|
-
self
|
|
80
|
-
}
|
|
81
|
-
} else {
|
|
82
|
-
self
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
func textContent() -> String? {
|
|
87
|
-
if let textSlot = props.children?.slot("text") {
|
|
88
|
-
return textSlot.directTextContent()
|
|
89
|
-
}
|
|
90
|
-
return directTextContent()
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
fileprivate func directTextContent() -> String? {
|
|
94
|
-
guard let children = props.children else { return nil }
|
|
95
|
-
|
|
96
|
-
for child in children {
|
|
97
|
-
if let textView = child.childView as? TextView {
|
|
98
|
-
let text = textView.props.text
|
|
99
|
-
if !text.isEmpty {
|
|
100
|
-
return text
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
return nil
|
|
106
|
-
}
|
|
107
|
-
}
|
|
1
|
+
import SwiftUI
|
|
2
|
+
import ExpoModulesCore
|
|
3
|
+
import ExpoUI
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
internal final class SlotViewProps: ExpoSwiftUI.ViewProps {
|
|
8
|
+
@Field var name: String = ""
|
|
9
|
+
@Field var extraProps: [String: Any]?
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
internal struct SlotView: ExpoSwiftUI.View {
|
|
13
|
+
@ObservedObject var props: SlotViewProps
|
|
14
|
+
|
|
15
|
+
init(props: SlotViewProps) {
|
|
16
|
+
self.props = props
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
var body: some View {
|
|
20
|
+
Children()
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
func extra<T>(_ key: String, as type: T.Type = T.self) -> T? {
|
|
24
|
+
return props.extraProps?[key] as? T
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
extension [any ExpoSwiftUI.AnyChild] {
|
|
29
|
+
func slot(_ name: String) -> SlotView? {
|
|
30
|
+
compactMap { $0.childView as? SlotView }
|
|
31
|
+
.first { $0.props.name == name }
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
func withoutSlot(_ name: String) -> [any ExpoSwiftUI.AnyChild] {
|
|
35
|
+
filter {
|
|
36
|
+
guard let slot = $0.childView as? SlotView else { return true }
|
|
37
|
+
return slot.props.name != name
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
func withoutSlots() -> [any ExpoSwiftUI.AnyChild] {
|
|
42
|
+
filter { !($0.childView is SlotView) }
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
Le agrega una función para obtener el texto directo del slot.
|
|
49
|
+
Esto es útil para los slots que contienen nuestro `<Text>` (slot "text" → TextView).
|
|
50
|
+
Por ejemplo, si el slot contiene nuestro `<Text>` (slot "text" → TextView), devuelve el string.
|
|
51
|
+
Si no, devuelve nil.
|
|
52
|
+
|
|
53
|
+
Ejemplo:
|
|
54
|
+
<Slot name="text">
|
|
55
|
+
<Text>Hello</Text>
|
|
56
|
+
</Slot>
|
|
57
|
+
*/
|
|
58
|
+
extension SlotView {
|
|
59
|
+
var isTextContent: Bool {
|
|
60
|
+
props.children?.slot("text") != nil || textContent() != nil
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
@ViewBuilder
|
|
64
|
+
func renderedContent(defaultFont: Font = .body, secondary: Bool = false) -> some View {
|
|
65
|
+
if isTextContent {
|
|
66
|
+
if let textSlot = props.children?.slot("text") {
|
|
67
|
+
if secondary {
|
|
68
|
+
textSlot
|
|
69
|
+
.font(defaultFont)
|
|
70
|
+
.foregroundStyle(.secondary)
|
|
71
|
+
} else {
|
|
72
|
+
textSlot
|
|
73
|
+
}
|
|
74
|
+
} else if secondary {
|
|
75
|
+
self
|
|
76
|
+
.font(defaultFont)
|
|
77
|
+
.foregroundStyle(.secondary)
|
|
78
|
+
} else {
|
|
79
|
+
self
|
|
80
|
+
}
|
|
81
|
+
} else {
|
|
82
|
+
self
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
func textContent() -> String? {
|
|
87
|
+
if let textSlot = props.children?.slot("text") {
|
|
88
|
+
return textSlot.directTextContent()
|
|
89
|
+
}
|
|
90
|
+
return directTextContent()
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
fileprivate func directTextContent() -> String? {
|
|
94
|
+
guard let children = props.children else { return nil }
|
|
95
|
+
|
|
96
|
+
for child in children {
|
|
97
|
+
if let textView = child.childView as? TextView {
|
|
98
|
+
let text = textView.props.text
|
|
99
|
+
if !text.isEmpty {
|
|
100
|
+
return text
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
return nil
|
|
106
|
+
}
|
|
107
|
+
}
|
package/ios/_shared/utils.swift
CHANGED
|
@@ -1,58 +1,58 @@
|
|
|
1
|
-
import SwiftUI
|
|
2
|
-
import ExpoModulesCore
|
|
3
|
-
import ExpoUI
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
// Coloca los insets a una view, segun lo que se le pase.
|
|
8
|
-
protocol ListRowInsetsProviding {
|
|
9
|
-
var vertical: Double? { get }
|
|
10
|
-
var horizontal: Double? { get }
|
|
11
|
-
var top: Double? { get }
|
|
12
|
-
var bottom: Double? { get }
|
|
13
|
-
var leading: Double? { get }
|
|
14
|
-
var trailing: Double? { get }
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
@available(iOS 26.0, *)
|
|
18
|
-
func applyEdgeInsets<V: View, I: ListRowInsetsProviding>(to content: V, insets: I) -> some View {
|
|
19
|
-
let orderedInsets: [(Edge.Set, Double?)] = [
|
|
20
|
-
(.vertical, insets.vertical),
|
|
21
|
-
(.horizontal, insets.horizontal),
|
|
22
|
-
(.top, insets.top),
|
|
23
|
-
(.bottom, insets.bottom),
|
|
24
|
-
(.leading, insets.leading),
|
|
25
|
-
(.trailing, insets.trailing),
|
|
26
|
-
]
|
|
27
|
-
|
|
28
|
-
return orderedInsets.reduce(AnyView(content)) { view, item in
|
|
29
|
-
guard let value = item.1 else { return view }
|
|
30
|
-
return AnyView(view.listRowInsets(item.0, CGFloat(value)))
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
// Renderiza un componente o un texto (si existe el slot)
|
|
36
|
-
@ViewBuilder
|
|
37
|
-
func slotContent(
|
|
38
|
-
in children: [any ExpoSwiftUI.AnyChild]?,
|
|
39
|
-
named name: String,
|
|
40
|
-
font: Font = .body,
|
|
41
|
-
secondary: Bool = false
|
|
42
|
-
) -> some View {
|
|
43
|
-
if let slot = children?.slot(name) {
|
|
44
|
-
slot.renderedContent(defaultFont: font, secondary: secondary)
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
@ViewBuilder
|
|
49
|
-
func pressableRow<Content: View>(
|
|
50
|
-
onPress: EventDispatcher,
|
|
51
|
-
@ViewBuilder content: () -> Content
|
|
52
|
-
) -> some View {
|
|
53
|
-
Button {
|
|
54
|
-
onPress()
|
|
55
|
-
} label: {
|
|
56
|
-
content()
|
|
57
|
-
}
|
|
58
|
-
}
|
|
1
|
+
import SwiftUI
|
|
2
|
+
import ExpoModulesCore
|
|
3
|
+
import ExpoUI
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
// Coloca los insets a una view, segun lo que se le pase.
|
|
8
|
+
protocol ListRowInsetsProviding {
|
|
9
|
+
var vertical: Double? { get }
|
|
10
|
+
var horizontal: Double? { get }
|
|
11
|
+
var top: Double? { get }
|
|
12
|
+
var bottom: Double? { get }
|
|
13
|
+
var leading: Double? { get }
|
|
14
|
+
var trailing: Double? { get }
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
@available(iOS 26.0, *)
|
|
18
|
+
func applyEdgeInsets<V: View, I: ListRowInsetsProviding>(to content: V, insets: I) -> some View {
|
|
19
|
+
let orderedInsets: [(Edge.Set, Double?)] = [
|
|
20
|
+
(.vertical, insets.vertical),
|
|
21
|
+
(.horizontal, insets.horizontal),
|
|
22
|
+
(.top, insets.top),
|
|
23
|
+
(.bottom, insets.bottom),
|
|
24
|
+
(.leading, insets.leading),
|
|
25
|
+
(.trailing, insets.trailing),
|
|
26
|
+
]
|
|
27
|
+
|
|
28
|
+
return orderedInsets.reduce(AnyView(content)) { view, item in
|
|
29
|
+
guard let value = item.1 else { return view }
|
|
30
|
+
return AnyView(view.listRowInsets(item.0, CGFloat(value)))
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
// Renderiza un componente o un texto (si existe el slot)
|
|
36
|
+
@ViewBuilder
|
|
37
|
+
func slotContent(
|
|
38
|
+
in children: [any ExpoSwiftUI.AnyChild]?,
|
|
39
|
+
named name: String,
|
|
40
|
+
font: Font = .body,
|
|
41
|
+
secondary: Bool = false
|
|
42
|
+
) -> some View {
|
|
43
|
+
if let slot = children?.slot(name) {
|
|
44
|
+
slot.renderedContent(defaultFont: font, secondary: secondary)
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
@ViewBuilder
|
|
49
|
+
func pressableRow<Content: View>(
|
|
50
|
+
onPress: EventDispatcher,
|
|
51
|
+
@ViewBuilder content: () -> Content
|
|
52
|
+
) -> some View {
|
|
53
|
+
Button {
|
|
54
|
+
onPress()
|
|
55
|
+
} label: {
|
|
56
|
+
content()
|
|
57
|
+
}
|
|
58
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pytech-ui",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.31",
|
|
4
4
|
"description": "Librería de componentes de UI para Pytech",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"react-native",
|
|
@@ -63,23 +63,27 @@
|
|
|
63
63
|
},
|
|
64
64
|
"dependencies": {
|
|
65
65
|
"color2k": "^2.0.4",
|
|
66
|
-
"date-fns": "^4.
|
|
67
|
-
"expo
|
|
68
|
-
"expo-
|
|
69
|
-
"expo-
|
|
70
|
-
"
|
|
66
|
+
"date-fns": "^4.4.0",
|
|
67
|
+
"expo": "~58.0.23",
|
|
68
|
+
"expo-constants": "~58.0.15",
|
|
69
|
+
"expo-device": "~58.0.5",
|
|
70
|
+
"expo-font": "~58.0.11",
|
|
71
|
+
"expo-linking": "~58.0.16",
|
|
72
|
+
"expo-router": "~58.0.30",
|
|
73
|
+
"react-native-safe-area-context": "~5.11.1",
|
|
74
|
+
"sf-symbols-typescript": "^2.2.0"
|
|
71
75
|
},
|
|
72
76
|
"devDependencies": {
|
|
73
|
-
"@expo/ui": "~
|
|
74
|
-
"@expo/vector-icons": "^15.
|
|
75
|
-
"@types/react": "~19.
|
|
77
|
+
"@expo/ui": "~58.0.27",
|
|
78
|
+
"@expo/vector-icons": "^15.1.1",
|
|
79
|
+
"@types/react": "~19.3.0",
|
|
76
80
|
"copyfiles": "^2.4.1",
|
|
77
|
-
"expo": "~
|
|
78
|
-
"react": "19.
|
|
79
|
-
"react-dom": "19.
|
|
80
|
-
"react-native": "0.
|
|
81
|
-
"tsc-alias": "^1.9.
|
|
82
|
-
"typescript": "
|
|
81
|
+
"expo": "~58.0.23",
|
|
82
|
+
"react": "19.3.0",
|
|
83
|
+
"react-dom": "19.3.0",
|
|
84
|
+
"react-native": "0.88.1",
|
|
85
|
+
"tsc-alias": "^1.9.10",
|
|
86
|
+
"typescript": "~6.0.3"
|
|
83
87
|
},
|
|
84
88
|
"peerDependencies": {
|
|
85
89
|
"@expo/ui": "*",
|