@sincpro/mobile-ui 0.1.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/README.md +32 -0
- package/lib/module/Dialog/BottomSheet/BottomSheet.Root.js +481 -0
- package/lib/module/Dialog/BottomSheet/BottomSheet.Root.js.map +1 -0
- package/lib/module/Dialog/BottomSheet/index.js +4 -0
- package/lib/module/Dialog/BottomSheet/index.js.map +1 -0
- package/lib/module/Dialog/Confirmation.context.js +108 -0
- package/lib/module/Dialog/Confirmation.context.js.map +1 -0
- package/lib/module/Dialog/Dialog.Confirmation.js +69 -0
- package/lib/module/Dialog/Dialog.Confirmation.js.map +1 -0
- package/lib/module/Dialog/Dialog.EditValue.js +115 -0
- package/lib/module/Dialog/Dialog.EditValue.js.map +1 -0
- package/lib/module/Dialog/index.js +14 -0
- package/lib/module/Dialog/index.js.map +1 -0
- package/lib/module/Display/Display.Avatar.js +58 -0
- package/lib/module/Display/Display.Avatar.js.map +1 -0
- package/lib/module/Display/Display.Badge.js +72 -0
- package/lib/module/Display/Display.Badge.js.map +1 -0
- package/lib/module/Display/Display.CopyableText.js +30 -0
- package/lib/module/Display/Display.CopyableText.js.map +1 -0
- package/lib/module/Display/Display.CountRecords.js +27 -0
- package/lib/module/Display/Display.CountRecords.js.map +1 -0
- package/lib/module/Display/Display.Date.js +35 -0
- package/lib/module/Display/Display.Date.js.map +1 -0
- package/lib/module/Display/Display.Divider.js +43 -0
- package/lib/module/Display/Display.Divider.js.map +1 -0
- package/lib/module/Display/Display.Icon.js +83 -0
- package/lib/module/Display/Display.Icon.js.map +1 -0
- package/lib/module/Display/Display.Logo.js +54 -0
- package/lib/module/Display/Display.Logo.js.map +1 -0
- package/lib/module/Display/Display.MenuButton.js +101 -0
- package/lib/module/Display/Display.MenuButton.js.map +1 -0
- package/lib/module/Display/Display.Monetary.js +36 -0
- package/lib/module/Display/Display.Monetary.js.map +1 -0
- package/lib/module/Display/index.js +28 -0
- package/lib/module/Display/index.js.map +1 -0
- package/lib/module/Feedback/ErrorBoundary.js +43 -0
- package/lib/module/Feedback/ErrorBoundary.js.map +1 -0
- package/lib/module/Feedback/Feedback.DomainSplashScreen.js +101 -0
- package/lib/module/Feedback/Feedback.DomainSplashScreen.js.map +1 -0
- package/lib/module/Feedback/Feedback.Empty.js +31 -0
- package/lib/module/Feedback/Feedback.Empty.js.map +1 -0
- package/lib/module/Feedback/Feedback.Error.js +53 -0
- package/lib/module/Feedback/Feedback.Error.js.map +1 -0
- package/lib/module/Feedback/Feedback.Loading.js +24 -0
- package/lib/module/Feedback/Feedback.Loading.js.map +1 -0
- package/lib/module/Feedback/Feedback.Spinner.js +28 -0
- package/lib/module/Feedback/Feedback.Spinner.js.map +1 -0
- package/lib/module/Feedback/Feedback.Splash.js +59 -0
- package/lib/module/Feedback/Feedback.Splash.js.map +1 -0
- package/lib/module/Feedback/index.js +17 -0
- package/lib/module/Feedback/index.js.map +1 -0
- package/lib/module/Form/Form.Button.js +442 -0
- package/lib/module/Form/Form.Button.js.map +1 -0
- package/lib/module/Form/Form.Checkbox.js +71 -0
- package/lib/module/Form/Form.Checkbox.js.map +1 -0
- package/lib/module/Form/Form.ControlledCheckbox.js +29 -0
- package/lib/module/Form/Form.ControlledCheckbox.js.map +1 -0
- package/lib/module/Form/Form.ControlledDropdown.js +7 -0
- package/lib/module/Form/Form.ControlledDropdown.js.map +1 -0
- package/lib/module/Form/Form.ControlledInput.js +43 -0
- package/lib/module/Form/Form.ControlledInput.js.map +1 -0
- package/lib/module/Form/Form.ControlledMonetaryInput.js +34 -0
- package/lib/module/Form/Form.ControlledMonetaryInput.js.map +1 -0
- package/lib/module/Form/Form.ControlledRadioButton.js +28 -0
- package/lib/module/Form/Form.ControlledRadioButton.js.map +1 -0
- package/lib/module/Form/Form.Dropdown.js +163 -0
- package/lib/module/Form/Form.Dropdown.js.map +1 -0
- package/lib/module/Form/Form.FilterButton.js +59 -0
- package/lib/module/Form/Form.FilterButton.js.map +1 -0
- package/lib/module/Form/Form.FractionalQuantityInput.js +166 -0
- package/lib/module/Form/Form.FractionalQuantityInput.js.map +1 -0
- package/lib/module/Form/Form.IconButton.js +97 -0
- package/lib/module/Form/Form.IconButton.js.map +1 -0
- package/lib/module/Form/Form.Input.js +77 -0
- package/lib/module/Form/Form.Input.js.map +1 -0
- package/lib/module/Form/Form.InputField.js +63 -0
- package/lib/module/Form/Form.InputField.js.map +1 -0
- package/lib/module/Form/Form.MonetaryInput.js +65 -0
- package/lib/module/Form/Form.MonetaryInput.js.map +1 -0
- package/lib/module/Form/Form.PasswordInput.js +37 -0
- package/lib/module/Form/Form.PasswordInput.js.map +1 -0
- package/lib/module/Form/Form.QuantitySelector.js +78 -0
- package/lib/module/Form/Form.QuantitySelector.js.map +1 -0
- package/lib/module/Form/Form.RadioButton.js +56 -0
- package/lib/module/Form/Form.RadioButton.js.map +1 -0
- package/lib/module/Form/Form.SearchBar.js +63 -0
- package/lib/module/Form/Form.SearchBar.js.map +1 -0
- package/lib/module/Form/Form.TextInput.js +19 -0
- package/lib/module/Form/Form.TextInput.js.map +1 -0
- package/lib/module/Form/index.js +45 -0
- package/lib/module/Form/index.js.map +1 -0
- package/lib/module/Navigation/Navigation.Header.js +46 -0
- package/lib/module/Navigation/Navigation.Header.js.map +1 -0
- package/lib/module/Navigation/Navigation.HeaderToolbar.js +79 -0
- package/lib/module/Navigation/Navigation.HeaderToolbar.js.map +1 -0
- package/lib/module/Navigation/Navigation.RowItem.js +35 -0
- package/lib/module/Navigation/Navigation.RowItem.js.map +1 -0
- package/lib/module/Navigation/Navigation.TabIcon.js +28 -0
- package/lib/module/Navigation/Navigation.TabIcon.js.map +1 -0
- package/lib/module/Navigation/Navigation.TabItem.js +27 -0
- package/lib/module/Navigation/Navigation.TabItem.js.map +1 -0
- package/lib/module/Navigation/index.js +16 -0
- package/lib/module/Navigation/index.js.map +1 -0
- package/lib/module/Typography/Typography.Heading.js +15 -0
- package/lib/module/Typography/Typography.Heading.js.map +1 -0
- package/lib/module/Typography/Typography.Text.js +51 -0
- package/lib/module/Typography/Typography.Text.js.map +1 -0
- package/lib/module/Typography/index.js +11 -0
- package/lib/module/Typography/index.js.map +1 -0
- package/lib/module/icons/AddItemIcon.js +53 -0
- package/lib/module/icons/AddItemIcon.js.map +1 -0
- package/lib/module/icons/ArrangeCircle.js +50 -0
- package/lib/module/icons/ArrangeCircle.js.map +1 -0
- package/lib/module/icons/ArrowDownIcon.js +37 -0
- package/lib/module/icons/ArrowDownIcon.js.map +1 -0
- package/lib/module/icons/ArrowUpIcon.js +37 -0
- package/lib/module/icons/ArrowUpIcon.js.map +1 -0
- package/lib/module/icons/BoxIcon.js +35 -0
- package/lib/module/icons/BoxIcon.js.map +1 -0
- package/lib/module/icons/BoxTimeIcon.js +29 -0
- package/lib/module/icons/BoxTimeIcon.js.map +1 -0
- package/lib/module/icons/CalendarIcon.js +81 -0
- package/lib/module/icons/CalendarIcon.js.map +1 -0
- package/lib/module/icons/CardIcon.js +46 -0
- package/lib/module/icons/CardIcon.js.map +1 -0
- package/lib/module/icons/CashierIcon.js +20 -0
- package/lib/module/icons/CashierIcon.js.map +1 -0
- package/lib/module/icons/CreditIcon.js +43 -0
- package/lib/module/icons/CreditIcon.js.map +1 -0
- package/lib/module/icons/DuoIcon.js +41 -0
- package/lib/module/icons/DuoIcon.js.map +1 -0
- package/lib/module/icons/HomeIcon.js +20 -0
- package/lib/module/icons/HomeIcon.js.map +1 -0
- package/lib/module/icons/HomeIconOutlined.js +29 -0
- package/lib/module/icons/HomeIconOutlined.js.map +1 -0
- package/lib/module/icons/LogoIcon.js +38 -0
- package/lib/module/icons/LogoIcon.js.map +1 -0
- package/lib/module/icons/MoneyReceiveIcon.js +47 -0
- package/lib/module/icons/MoneyReceiveIcon.js.map +1 -0
- package/lib/module/icons/OdooIcon.js +24 -0
- package/lib/module/icons/OdooIcon.js.map +1 -0
- package/lib/module/icons/PinIcon.js +20 -0
- package/lib/module/icons/PinIcon.js.map +1 -0
- package/lib/module/icons/PrinterIcon.js +48 -0
- package/lib/module/icons/PrinterIcon.js.map +1 -0
- package/lib/module/icons/ProfileIcon.js +23 -0
- package/lib/module/icons/ProfileIcon.js.map +1 -0
- package/lib/module/icons/SettingsIcon.js +65 -0
- package/lib/module/icons/SettingsIcon.js.map +1 -0
- package/lib/module/icons/SinpeIcon.js +37 -0
- package/lib/module/icons/SinpeIcon.js.map +1 -0
- package/lib/module/icons/ToggleOffIcon.js +29 -0
- package/lib/module/icons/ToggleOffIcon.js.map +1 -0
- package/lib/module/icons/WalletMoneyIcon.js +42 -0
- package/lib/module/icons/WalletMoneyIcon.js.map +1 -0
- package/lib/module/icons/icon_getters.js +53 -0
- package/lib/module/icons/icon_getters.js.map +1 -0
- package/lib/module/icons/props.js +2 -0
- package/lib/module/icons/props.js.map +1 -0
- package/lib/module/index.js +34 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/layouts/AuthContainer.js +66 -0
- package/lib/module/layouts/AuthContainer.js.map +1 -0
- package/lib/module/layouts/Container.js +31 -0
- package/lib/module/layouts/Container.js.map +1 -0
- package/lib/module/layouts/GradientContainer.js +20 -0
- package/lib/module/layouts/GradientContainer.js.map +1 -0
- package/lib/module/layouts/PlainLayout.js +16 -0
- package/lib/module/layouts/PlainLayout.js.map +1 -0
- package/lib/module/layouts/ScrollContainer.js +37 -0
- package/lib/module/layouts/ScrollContainer.js.map +1 -0
- package/lib/module/layouts/TabNavigatorLayout.js +132 -0
- package/lib/module/layouts/TabNavigatorLayout.js.map +1 -0
- package/lib/module/lib/date.js +127 -0
- package/lib/module/lib/date.js.map +1 -0
- package/lib/module/lib/icon.js +2 -0
- package/lib/module/lib/icon.js.map +1 -0
- package/lib/module/lib/monetary.js +31 -0
- package/lib/module/lib/monetary.js.map +1 -0
- package/lib/module/lib/quantity.js +46 -0
- package/lib/module/lib/quantity.js.map +1 -0
- package/lib/module/lib/serializer.js +47 -0
- package/lib/module/lib/serializer.js.map +1 -0
- package/lib/module/lib/timezone.js +2 -0
- package/lib/module/lib/timezone.js.map +1 -0
- package/lib/module/nativewind-env.d.js +3 -0
- package/lib/module/nativewind-env.d.js.map +1 -0
- package/lib/module/notifications/index.js +5 -0
- package/lib/module/notifications/index.js.map +1 -0
- package/lib/module/package.json +1 -0
- package/lib/module/primitives/BaseButton.js +391 -0
- package/lib/module/primitives/BaseButton.js.map +1 -0
- package/lib/module/primitives/Box.js +19 -0
- package/lib/module/primitives/Box.js.map +1 -0
- package/lib/module/primitives/Row.js +37 -0
- package/lib/module/primitives/Row.js.map +1 -0
- package/lib/module/primitives/Stack.js +27 -0
- package/lib/module/primitives/Stack.js.map +1 -0
- package/lib/module/primitives/index.js +6 -0
- package/lib/module/primitives/index.js.map +1 -0
- package/lib/module/providers/index.js +3 -0
- package/lib/module/providers/index.js.map +1 -0
- package/lib/module/theme/active.js +13 -0
- package/lib/module/theme/active.js.map +1 -0
- package/lib/module/theme/components/ThemedActivityIndicator.js +30 -0
- package/lib/module/theme/components/ThemedActivityIndicator.js.map +1 -0
- package/lib/module/theme/components/index.js +13 -0
- package/lib/module/theme/components/index.js.map +1 -0
- package/lib/module/theme/default.js +91 -0
- package/lib/module/theme/default.js.map +1 -0
- package/lib/module/theme/globals.css +67 -0
- package/lib/module/theme/index.js +6 -0
- package/lib/module/theme/index.js.map +1 -0
- package/lib/module/theme/theme.js +18 -0
- package/lib/module/theme/theme.js.map +1 -0
- package/lib/module/theme/tw.js +19 -0
- package/lib/module/theme/tw.js.map +1 -0
- package/lib/module/theme/types.js +2 -0
- package/lib/module/theme/types.js.map +1 -0
- package/lib/module/theme/typography.js +246 -0
- package/lib/module/theme/typography.js.map +1 -0
- package/lib/module/theme/useTheme.js +5 -0
- package/lib/module/theme/useTheme.js.map +1 -0
- package/lib/module/views/AuthFormView.js +46 -0
- package/lib/module/views/AuthFormView.js.map +1 -0
- package/lib/module/views/FormViewV2.context.js +47 -0
- package/lib/module/views/FormViewV2.context.js.map +1 -0
- package/lib/module/views/FormViewV2.js +220 -0
- package/lib/module/views/FormViewV2.js.map +1 -0
- package/lib/module/views/ListViewV2.context.js +51 -0
- package/lib/module/views/ListViewV2.context.js.map +1 -0
- package/lib/module/views/ListViewV2.js +503 -0
- package/lib/module/views/ListViewV2.js.map +1 -0
- package/lib/module/views/Wizard/Wizard.context.js +111 -0
- package/lib/module/views/Wizard/Wizard.context.js.map +1 -0
- package/lib/module/views/Wizard/Wizard.js +125 -0
- package/lib/module/views/Wizard/Wizard.js.map +1 -0
- package/lib/module/views/Wizard/index.js +5 -0
- package/lib/module/views/Wizard/index.js.map +1 -0
- package/lib/module/views/types/IFormView.js +4 -0
- package/lib/module/views/types/IFormView.js.map +1 -0
- package/lib/module/views/types/IListView.js +40 -0
- package/lib/module/views/types/IListView.js.map +1 -0
- package/lib/module/views/types/UIItem.js +2 -0
- package/lib/module/views/types/UIItem.js.map +1 -0
- package/lib/module/widgets/CircleButton.js +70 -0
- package/lib/module/widgets/CircleButton.js.map +1 -0
- package/lib/module/widgets/GeoPermissionCard.js +55 -0
- package/lib/module/widgets/GeoPermissionCard.js.map +1 -0
- package/lib/module/widgets/HomeHeader.js +42 -0
- package/lib/module/widgets/HomeHeader.js.map +1 -0
- package/lib/module/widgets/JSONViewer.js +196 -0
- package/lib/module/widgets/JSONViewer.js.map +1 -0
- package/lib/module/widgets/MenuCard.js +32 -0
- package/lib/module/widgets/MenuCard.js.map +1 -0
- package/lib/module/widgets/MenuGrid.js +20 -0
- package/lib/module/widgets/MenuGrid.js.map +1 -0
- package/lib/module/widgets/ScreenHeader.js +63 -0
- package/lib/module/widgets/ScreenHeader.js.map +1 -0
- package/lib/module/widgets/TimeZoneSelector.js +73 -0
- package/lib/module/widgets/TimeZoneSelector.js.map +1 -0
- package/lib/module/widgets/TimeZoneSelectorModal.js +187 -0
- package/lib/module/widgets/TimeZoneSelectorModal.js.map +1 -0
- package/lib/module/widgets/index.js +9 -0
- package/lib/module/widgets/index.js.map +1 -0
- package/lib/typescript/Dialog/BottomSheet/BottomSheet.Root.d.ts +321 -0
- package/lib/typescript/Dialog/BottomSheet/BottomSheet.Root.d.ts.map +1 -0
- package/lib/typescript/Dialog/BottomSheet/index.d.ts +2 -0
- package/lib/typescript/Dialog/BottomSheet/index.d.ts.map +1 -0
- package/lib/typescript/Dialog/Confirmation.context.d.ts +22 -0
- package/lib/typescript/Dialog/Confirmation.context.d.ts.map +1 -0
- package/lib/typescript/Dialog/Dialog.Confirmation.d.ts +13 -0
- package/lib/typescript/Dialog/Dialog.Confirmation.d.ts.map +1 -0
- package/lib/typescript/Dialog/Dialog.EditValue.d.ts +26 -0
- package/lib/typescript/Dialog/Dialog.EditValue.d.ts.map +1 -0
- package/lib/typescript/Dialog/index.d.ts +20 -0
- package/lib/typescript/Dialog/index.d.ts.map +1 -0
- package/lib/typescript/Display/Display.Avatar.d.ts +53 -0
- package/lib/typescript/Display/Display.Avatar.d.ts.map +1 -0
- package/lib/typescript/Display/Display.Badge.d.ts +109 -0
- package/lib/typescript/Display/Display.Badge.d.ts.map +1 -0
- package/lib/typescript/Display/Display.CopyableText.d.ts +14 -0
- package/lib/typescript/Display/Display.CopyableText.d.ts.map +1 -0
- package/lib/typescript/Display/Display.CountRecords.d.ts +9 -0
- package/lib/typescript/Display/Display.CountRecords.d.ts.map +1 -0
- package/lib/typescript/Display/Display.Date.d.ts +19 -0
- package/lib/typescript/Display/Display.Date.d.ts.map +1 -0
- package/lib/typescript/Display/Display.Divider.d.ts +45 -0
- package/lib/typescript/Display/Display.Divider.d.ts.map +1 -0
- package/lib/typescript/Display/Display.Icon.d.ts +16 -0
- package/lib/typescript/Display/Display.Icon.d.ts.map +1 -0
- package/lib/typescript/Display/Display.Logo.d.ts +56 -0
- package/lib/typescript/Display/Display.Logo.d.ts.map +1 -0
- package/lib/typescript/Display/Display.MenuButton.d.ts +104 -0
- package/lib/typescript/Display/Display.MenuButton.d.ts.map +1 -0
- package/lib/typescript/Display/Display.Monetary.d.ts +20 -0
- package/lib/typescript/Display/Display.Monetary.d.ts.map +1 -0
- package/lib/typescript/Display/index.d.ts +23 -0
- package/lib/typescript/Display/index.d.ts.map +1 -0
- package/lib/typescript/Feedback/ErrorBoundary.d.ts +19 -0
- package/lib/typescript/Feedback/ErrorBoundary.d.ts.map +1 -0
- package/lib/typescript/Feedback/Feedback.DomainSplashScreen.d.ts +12 -0
- package/lib/typescript/Feedback/Feedback.DomainSplashScreen.d.ts.map +1 -0
- package/lib/typescript/Feedback/Feedback.Empty.d.ts +7 -0
- package/lib/typescript/Feedback/Feedback.Empty.d.ts.map +1 -0
- package/lib/typescript/Feedback/Feedback.Error.d.ts +10 -0
- package/lib/typescript/Feedback/Feedback.Error.d.ts.map +1 -0
- package/lib/typescript/Feedback/Feedback.Loading.d.ts +10 -0
- package/lib/typescript/Feedback/Feedback.Loading.d.ts.map +1 -0
- package/lib/typescript/Feedback/Feedback.Spinner.d.ts +12 -0
- package/lib/typescript/Feedback/Feedback.Spinner.d.ts.map +1 -0
- package/lib/typescript/Feedback/Feedback.Splash.d.ts +12 -0
- package/lib/typescript/Feedback/Feedback.Splash.d.ts.map +1 -0
- package/lib/typescript/Feedback/index.d.ts +14 -0
- package/lib/typescript/Feedback/index.d.ts.map +1 -0
- package/lib/typescript/Form/Form.Button.d.ts +146 -0
- package/lib/typescript/Form/Form.Button.d.ts.map +1 -0
- package/lib/typescript/Form/Form.Checkbox.d.ts +14 -0
- package/lib/typescript/Form/Form.Checkbox.d.ts.map +1 -0
- package/lib/typescript/Form/Form.ControlledCheckbox.d.ts +10 -0
- package/lib/typescript/Form/Form.ControlledCheckbox.d.ts.map +1 -0
- package/lib/typescript/Form/Form.ControlledDropdown.d.ts +15 -0
- package/lib/typescript/Form/Form.ControlledDropdown.d.ts.map +1 -0
- package/lib/typescript/Form/Form.ControlledInput.d.ts +16 -0
- package/lib/typescript/Form/Form.ControlledInput.d.ts.map +1 -0
- package/lib/typescript/Form/Form.ControlledMonetaryInput.d.ts +13 -0
- package/lib/typescript/Form/Form.ControlledMonetaryInput.d.ts.map +1 -0
- package/lib/typescript/Form/Form.ControlledRadioButton.d.ts +10 -0
- package/lib/typescript/Form/Form.ControlledRadioButton.d.ts.map +1 -0
- package/lib/typescript/Form/Form.Dropdown.d.ts +15 -0
- package/lib/typescript/Form/Form.Dropdown.d.ts.map +1 -0
- package/lib/typescript/Form/Form.FilterButton.d.ts +13 -0
- package/lib/typescript/Form/Form.FilterButton.d.ts.map +1 -0
- package/lib/typescript/Form/Form.FractionalQuantityInput.d.ts +14 -0
- package/lib/typescript/Form/Form.FractionalQuantityInput.d.ts.map +1 -0
- package/lib/typescript/Form/Form.IconButton.d.ts +68 -0
- package/lib/typescript/Form/Form.IconButton.d.ts.map +1 -0
- package/lib/typescript/Form/Form.Input.d.ts +11 -0
- package/lib/typescript/Form/Form.Input.d.ts.map +1 -0
- package/lib/typescript/Form/Form.InputField.d.ts +11 -0
- package/lib/typescript/Form/Form.InputField.d.ts.map +1 -0
- package/lib/typescript/Form/Form.MonetaryInput.d.ts +9 -0
- package/lib/typescript/Form/Form.MonetaryInput.d.ts.map +1 -0
- package/lib/typescript/Form/Form.PasswordInput.d.ts +10 -0
- package/lib/typescript/Form/Form.PasswordInput.d.ts.map +1 -0
- package/lib/typescript/Form/Form.QuantitySelector.d.ts +12 -0
- package/lib/typescript/Form/Form.QuantitySelector.d.ts.map +1 -0
- package/lib/typescript/Form/Form.RadioButton.d.ts +8 -0
- package/lib/typescript/Form/Form.RadioButton.d.ts.map +1 -0
- package/lib/typescript/Form/Form.SearchBar.d.ts +10 -0
- package/lib/typescript/Form/Form.SearchBar.d.ts.map +1 -0
- package/lib/typescript/Form/Form.TextInput.d.ts +9 -0
- package/lib/typescript/Form/Form.TextInput.d.ts.map +1 -0
- package/lib/typescript/Form/index.d.ts +42 -0
- package/lib/typescript/Form/index.d.ts.map +1 -0
- package/lib/typescript/Navigation/Navigation.Header.d.ts +11 -0
- package/lib/typescript/Navigation/Navigation.Header.d.ts.map +1 -0
- package/lib/typescript/Navigation/Navigation.HeaderToolbar.d.ts +16 -0
- package/lib/typescript/Navigation/Navigation.HeaderToolbar.d.ts.map +1 -0
- package/lib/typescript/Navigation/Navigation.RowItem.d.ts +6 -0
- package/lib/typescript/Navigation/Navigation.RowItem.d.ts.map +1 -0
- package/lib/typescript/Navigation/Navigation.TabIcon.d.ts +15 -0
- package/lib/typescript/Navigation/Navigation.TabIcon.d.ts.map +1 -0
- package/lib/typescript/Navigation/Navigation.TabItem.d.ts +15 -0
- package/lib/typescript/Navigation/Navigation.TabItem.d.ts.map +1 -0
- package/lib/typescript/Navigation/index.d.ts +12 -0
- package/lib/typescript/Navigation/index.d.ts.map +1 -0
- package/lib/typescript/Typography/Typography.Heading.d.ts +13 -0
- package/lib/typescript/Typography/Typography.Heading.d.ts.map +1 -0
- package/lib/typescript/Typography/Typography.Text.d.ts +29 -0
- package/lib/typescript/Typography/Typography.Text.d.ts.map +1 -0
- package/lib/typescript/Typography/index.d.ts +8 -0
- package/lib/typescript/Typography/index.d.ts.map +1 -0
- package/lib/typescript/icons/AddItemIcon.d.ts +5 -0
- package/lib/typescript/icons/AddItemIcon.d.ts.map +1 -0
- package/lib/typescript/icons/ArrangeCircle.d.ts +5 -0
- package/lib/typescript/icons/ArrangeCircle.d.ts.map +1 -0
- package/lib/typescript/icons/ArrowDownIcon.d.ts +5 -0
- package/lib/typescript/icons/ArrowDownIcon.d.ts.map +1 -0
- package/lib/typescript/icons/ArrowUpIcon.d.ts +5 -0
- package/lib/typescript/icons/ArrowUpIcon.d.ts.map +1 -0
- package/lib/typescript/icons/BoxIcon.d.ts +5 -0
- package/lib/typescript/icons/BoxIcon.d.ts.map +1 -0
- package/lib/typescript/icons/BoxTimeIcon.d.ts +5 -0
- package/lib/typescript/icons/BoxTimeIcon.d.ts.map +1 -0
- package/lib/typescript/icons/CalendarIcon.d.ts +5 -0
- package/lib/typescript/icons/CalendarIcon.d.ts.map +1 -0
- package/lib/typescript/icons/CardIcon.d.ts +5 -0
- package/lib/typescript/icons/CardIcon.d.ts.map +1 -0
- package/lib/typescript/icons/CashierIcon.d.ts +5 -0
- package/lib/typescript/icons/CashierIcon.d.ts.map +1 -0
- package/lib/typescript/icons/CreditIcon.d.ts +8 -0
- package/lib/typescript/icons/CreditIcon.d.ts.map +1 -0
- package/lib/typescript/icons/DuoIcon.d.ts +5 -0
- package/lib/typescript/icons/DuoIcon.d.ts.map +1 -0
- package/lib/typescript/icons/HomeIcon.d.ts +5 -0
- package/lib/typescript/icons/HomeIcon.d.ts.map +1 -0
- package/lib/typescript/icons/HomeIconOutlined.d.ts +5 -0
- package/lib/typescript/icons/HomeIconOutlined.d.ts.map +1 -0
- package/lib/typescript/icons/LogoIcon.d.ts +5 -0
- package/lib/typescript/icons/LogoIcon.d.ts.map +1 -0
- package/lib/typescript/icons/MoneyReceiveIcon.d.ts +5 -0
- package/lib/typescript/icons/MoneyReceiveIcon.d.ts.map +1 -0
- package/lib/typescript/icons/OdooIcon.d.ts +7 -0
- package/lib/typescript/icons/OdooIcon.d.ts.map +1 -0
- package/lib/typescript/icons/PinIcon.d.ts +5 -0
- package/lib/typescript/icons/PinIcon.d.ts.map +1 -0
- package/lib/typescript/icons/PrinterIcon.d.ts +5 -0
- package/lib/typescript/icons/PrinterIcon.d.ts.map +1 -0
- package/lib/typescript/icons/ProfileIcon.d.ts +5 -0
- package/lib/typescript/icons/ProfileIcon.d.ts.map +1 -0
- package/lib/typescript/icons/SettingsIcon.d.ts +5 -0
- package/lib/typescript/icons/SettingsIcon.d.ts.map +1 -0
- package/lib/typescript/icons/SinpeIcon.d.ts +5 -0
- package/lib/typescript/icons/SinpeIcon.d.ts.map +1 -0
- package/lib/typescript/icons/ToggleOffIcon.d.ts +5 -0
- package/lib/typescript/icons/ToggleOffIcon.d.ts.map +1 -0
- package/lib/typescript/icons/WalletMoneyIcon.d.ts +5 -0
- package/lib/typescript/icons/WalletMoneyIcon.d.ts.map +1 -0
- package/lib/typescript/icons/icon_getters.d.ts +7 -0
- package/lib/typescript/icons/icon_getters.d.ts.map +1 -0
- package/lib/typescript/icons/props.d.ts +5 -0
- package/lib/typescript/icons/props.d.ts.map +1 -0
- package/lib/typescript/index.d.ts +21 -0
- package/lib/typescript/index.d.ts.map +1 -0
- package/lib/typescript/layouts/AuthContainer.d.ts +10 -0
- package/lib/typescript/layouts/AuthContainer.d.ts.map +1 -0
- package/lib/typescript/layouts/Container.d.ts +15 -0
- package/lib/typescript/layouts/Container.d.ts.map +1 -0
- package/lib/typescript/layouts/GradientContainer.d.ts +9 -0
- package/lib/typescript/layouts/GradientContainer.d.ts.map +1 -0
- package/lib/typescript/layouts/PlainLayout.d.ts +7 -0
- package/lib/typescript/layouts/PlainLayout.d.ts.map +1 -0
- package/lib/typescript/layouts/ScrollContainer.d.ts +9 -0
- package/lib/typescript/layouts/ScrollContainer.d.ts.map +1 -0
- package/lib/typescript/layouts/TabNavigatorLayout.d.ts +27 -0
- package/lib/typescript/layouts/TabNavigatorLayout.d.ts.map +1 -0
- package/lib/typescript/lib/date.d.ts +71 -0
- package/lib/typescript/lib/date.d.ts.map +1 -0
- package/lib/typescript/lib/icon.d.ts +2 -0
- package/lib/typescript/lib/icon.d.ts.map +1 -0
- package/lib/typescript/lib/monetary.d.ts +4 -0
- package/lib/typescript/lib/monetary.d.ts.map +1 -0
- package/lib/typescript/lib/quantity.d.ts +12 -0
- package/lib/typescript/lib/quantity.d.ts.map +1 -0
- package/lib/typescript/lib/serializer.d.ts +3 -0
- package/lib/typescript/lib/serializer.d.ts.map +1 -0
- package/lib/typescript/lib/timezone.d.ts +5 -0
- package/lib/typescript/lib/timezone.d.ts.map +1 -0
- package/lib/typescript/notifications/index.d.ts +2 -0
- package/lib/typescript/notifications/index.d.ts.map +1 -0
- package/lib/typescript/package.json +1 -0
- package/lib/typescript/primitives/BaseButton.d.ts +147 -0
- package/lib/typescript/primitives/BaseButton.d.ts.map +1 -0
- package/lib/typescript/primitives/Box.d.ts +8 -0
- package/lib/typescript/primitives/Box.d.ts.map +1 -0
- package/lib/typescript/primitives/Row.d.ts +12 -0
- package/lib/typescript/primitives/Row.d.ts.map +1 -0
- package/lib/typescript/primitives/Stack.d.ts +10 -0
- package/lib/typescript/primitives/Stack.d.ts.map +1 -0
- package/lib/typescript/primitives/index.d.ts +4 -0
- package/lib/typescript/primitives/index.d.ts.map +1 -0
- package/lib/typescript/providers/index.d.ts +1 -0
- package/lib/typescript/providers/index.d.ts.map +1 -0
- package/lib/typescript/theme/active.d.ts +4 -0
- package/lib/typescript/theme/active.d.ts.map +1 -0
- package/lib/typescript/theme/components/ThemedActivityIndicator.d.ts +22 -0
- package/lib/typescript/theme/components/ThemedActivityIndicator.d.ts.map +1 -0
- package/lib/typescript/theme/components/index.d.ts +10 -0
- package/lib/typescript/theme/components/index.d.ts.map +1 -0
- package/lib/typescript/theme/default.d.ts +3 -0
- package/lib/typescript/theme/default.d.ts.map +1 -0
- package/lib/typescript/theme/index.d.ts +5 -0
- package/lib/typescript/theme/index.d.ts.map +1 -0
- package/lib/typescript/theme/theme.d.ts +14 -0
- package/lib/typescript/theme/theme.d.ts.map +1 -0
- package/lib/typescript/theme/tw.d.ts +11 -0
- package/lib/typescript/theme/tw.d.ts.map +1 -0
- package/lib/typescript/theme/types.d.ts +93 -0
- package/lib/typescript/theme/types.d.ts.map +1 -0
- package/lib/typescript/theme/typography.d.ts +377 -0
- package/lib/typescript/theme/typography.d.ts.map +1 -0
- package/lib/typescript/theme/useTheme.d.ts +2 -0
- package/lib/typescript/theme/useTheme.d.ts.map +1 -0
- package/lib/typescript/views/AuthFormView.d.ts +10 -0
- package/lib/typescript/views/AuthFormView.d.ts.map +1 -0
- package/lib/typescript/views/FormViewV2.context.d.ts +33 -0
- package/lib/typescript/views/FormViewV2.context.d.ts.map +1 -0
- package/lib/typescript/views/FormViewV2.d.ts +61 -0
- package/lib/typescript/views/FormViewV2.d.ts.map +1 -0
- package/lib/typescript/views/ListViewV2.context.d.ts +37 -0
- package/lib/typescript/views/ListViewV2.context.d.ts.map +1 -0
- package/lib/typescript/views/ListViewV2.d.ts +132 -0
- package/lib/typescript/views/ListViewV2.d.ts.map +1 -0
- package/lib/typescript/views/Wizard/Wizard.context.d.ts +27 -0
- package/lib/typescript/views/Wizard/Wizard.context.d.ts.map +1 -0
- package/lib/typescript/views/Wizard/Wizard.d.ts +34 -0
- package/lib/typescript/views/Wizard/Wizard.d.ts.map +1 -0
- package/lib/typescript/views/Wizard/index.d.ts +5 -0
- package/lib/typescript/views/Wizard/index.d.ts.map +1 -0
- package/lib/typescript/views/types/IFormView.d.ts +23 -0
- package/lib/typescript/views/types/IFormView.d.ts.map +1 -0
- package/lib/typescript/views/types/IListView.d.ts +35 -0
- package/lib/typescript/views/types/IListView.d.ts.map +1 -0
- package/lib/typescript/views/types/UIItem.d.ts +22 -0
- package/lib/typescript/views/types/UIItem.d.ts.map +1 -0
- package/lib/typescript/widgets/CircleButton.d.ts +16 -0
- package/lib/typescript/widgets/CircleButton.d.ts.map +1 -0
- package/lib/typescript/widgets/GeoPermissionCard.d.ts +9 -0
- package/lib/typescript/widgets/GeoPermissionCard.d.ts.map +1 -0
- package/lib/typescript/widgets/HomeHeader.d.ts +10 -0
- package/lib/typescript/widgets/HomeHeader.d.ts.map +1 -0
- package/lib/typescript/widgets/JSONViewer.d.ts +6 -0
- package/lib/typescript/widgets/JSONViewer.d.ts.map +1 -0
- package/lib/typescript/widgets/MenuCard.d.ts +14 -0
- package/lib/typescript/widgets/MenuCard.d.ts.map +1 -0
- package/lib/typescript/widgets/MenuGrid.d.ts +18 -0
- package/lib/typescript/widgets/MenuGrid.d.ts.map +1 -0
- package/lib/typescript/widgets/ScreenHeader.d.ts +20 -0
- package/lib/typescript/widgets/ScreenHeader.d.ts.map +1 -0
- package/lib/typescript/widgets/TimeZoneSelector.d.ts +8 -0
- package/lib/typescript/widgets/TimeZoneSelector.d.ts.map +1 -0
- package/lib/typescript/widgets/TimeZoneSelectorModal.d.ts +10 -0
- package/lib/typescript/widgets/TimeZoneSelectorModal.d.ts.map +1 -0
- package/lib/typescript/widgets/index.d.ts +8 -0
- package/lib/typescript/widgets/index.d.ts.map +1 -0
- package/package.json +273 -0
- package/sincpro_mobile_ui/Dialog/BottomSheet/BottomSheet.Root.tsx +509 -0
- package/sincpro_mobile_ui/Dialog/BottomSheet/index.ts +1 -0
- package/sincpro_mobile_ui/Dialog/Confirmation.context.tsx +148 -0
- package/sincpro_mobile_ui/Dialog/Dialog.Confirmation.tsx +68 -0
- package/sincpro_mobile_ui/Dialog/Dialog.EditValue.tsx +134 -0
- package/sincpro_mobile_ui/Dialog/index.ts +23 -0
- package/sincpro_mobile_ui/Display/Display.Avatar.tsx +60 -0
- package/sincpro_mobile_ui/Display/Display.Badge.tsx +72 -0
- package/sincpro_mobile_ui/Display/Display.CopyableText.tsx +38 -0
- package/sincpro_mobile_ui/Display/Display.CountRecords.tsx +26 -0
- package/sincpro_mobile_ui/Display/Display.Date.tsx +59 -0
- package/sincpro_mobile_ui/Display/Display.Divider.tsx +40 -0
- package/sincpro_mobile_ui/Display/Display.Icon.tsx +69 -0
- package/sincpro_mobile_ui/Display/Display.Logo.tsx +51 -0
- package/sincpro_mobile_ui/Display/Display.MenuButton.tsx +103 -0
- package/sincpro_mobile_ui/Display/Display.Monetary.tsx +60 -0
- package/sincpro_mobile_ui/Display/index.ts +28 -0
- package/sincpro_mobile_ui/Feedback/ErrorBoundary.tsx +51 -0
- package/sincpro_mobile_ui/Feedback/Feedback.DomainSplashScreen.tsx +135 -0
- package/sincpro_mobile_ui/Feedback/Feedback.Empty.tsx +29 -0
- package/sincpro_mobile_ui/Feedback/Feedback.Error.tsx +47 -0
- package/sincpro_mobile_ui/Feedback/Feedback.Loading.tsx +27 -0
- package/sincpro_mobile_ui/Feedback/Feedback.Spinner.tsx +34 -0
- package/sincpro_mobile_ui/Feedback/Feedback.Splash.tsx +68 -0
- package/sincpro_mobile_ui/Feedback/index.ts +17 -0
- package/sincpro_mobile_ui/Form/Form.Button.tsx +461 -0
- package/sincpro_mobile_ui/Form/Form.Checkbox.tsx +89 -0
- package/sincpro_mobile_ui/Form/Form.ControlledCheckbox.tsx +34 -0
- package/sincpro_mobile_ui/Form/Form.ControlledDropdown.tsx +22 -0
- package/sincpro_mobile_ui/Form/Form.ControlledInput.tsx +53 -0
- package/sincpro_mobile_ui/Form/Form.ControlledMonetaryInput.tsx +41 -0
- package/sincpro_mobile_ui/Form/Form.ControlledRadioButton.tsx +33 -0
- package/sincpro_mobile_ui/Form/Form.Dropdown.tsx +171 -0
- package/sincpro_mobile_ui/Form/Form.FilterButton.tsx +59 -0
- package/sincpro_mobile_ui/Form/Form.FractionalQuantityInput.tsx +190 -0
- package/sincpro_mobile_ui/Form/Form.IconButton.tsx +102 -0
- package/sincpro_mobile_ui/Form/Form.Input.tsx +88 -0
- package/sincpro_mobile_ui/Form/Form.InputField.tsx +66 -0
- package/sincpro_mobile_ui/Form/Form.MonetaryInput.tsx +66 -0
- package/sincpro_mobile_ui/Form/Form.PasswordInput.tsx +42 -0
- package/sincpro_mobile_ui/Form/Form.QuantitySelector.tsx +81 -0
- package/sincpro_mobile_ui/Form/Form.RadioButton.tsx +52 -0
- package/sincpro_mobile_ui/Form/Form.SearchBar.tsx +64 -0
- package/sincpro_mobile_ui/Form/Form.TextInput.tsx +26 -0
- package/sincpro_mobile_ui/Form/index.ts +46 -0
- package/sincpro_mobile_ui/Navigation/Navigation.Header.tsx +50 -0
- package/sincpro_mobile_ui/Navigation/Navigation.HeaderToolbar.tsx +111 -0
- package/sincpro_mobile_ui/Navigation/Navigation.RowItem.tsx +33 -0
- package/sincpro_mobile_ui/Navigation/Navigation.TabIcon.tsx +45 -0
- package/sincpro_mobile_ui/Navigation/Navigation.TabItem.tsx +43 -0
- package/sincpro_mobile_ui/Navigation/index.ts +15 -0
- package/sincpro_mobile_ui/Typography/Typography.Heading.tsx +20 -0
- package/sincpro_mobile_ui/Typography/Typography.Text.tsx +78 -0
- package/sincpro_mobile_ui/Typography/index.ts +11 -0
- package/sincpro_mobile_ui/icons/AddItemIcon.tsx +46 -0
- package/sincpro_mobile_ui/icons/ArrangeCircle.tsx +50 -0
- package/sincpro_mobile_ui/icons/ArrowDownIcon.tsx +33 -0
- package/sincpro_mobile_ui/icons/ArrowUpIcon.tsx +33 -0
- package/sincpro_mobile_ui/icons/BoxIcon.tsx +32 -0
- package/sincpro_mobile_ui/icons/BoxTimeIcon.tsx +27 -0
- package/sincpro_mobile_ui/icons/CalendarIcon.tsx +85 -0
- package/sincpro_mobile_ui/icons/CardIcon.tsx +44 -0
- package/sincpro_mobile_ui/icons/CashierIcon.tsx +15 -0
- package/sincpro_mobile_ui/icons/CreditIcon.tsx +44 -0
- package/sincpro_mobile_ui/icons/DuoIcon.tsx +39 -0
- package/sincpro_mobile_ui/icons/HomeIcon.tsx +15 -0
- package/sincpro_mobile_ui/icons/HomeIconOutlined.tsx +24 -0
- package/sincpro_mobile_ui/icons/LogoIcon.tsx +39 -0
- package/sincpro_mobile_ui/icons/MoneyReceiveIcon.tsx +46 -0
- package/sincpro_mobile_ui/icons/OdooIcon.tsx +23 -0
- package/sincpro_mobile_ui/icons/PinIcon.tsx +15 -0
- package/sincpro_mobile_ui/icons/PrinterIcon.tsx +46 -0
- package/sincpro_mobile_ui/icons/ProfileIcon.tsx +19 -0
- package/sincpro_mobile_ui/icons/SettingsIcon.tsx +66 -0
- package/sincpro_mobile_ui/icons/SinpeIcon.tsx +29 -0
- package/sincpro_mobile_ui/icons/ToggleOffIcon.tsx +25 -0
- package/sincpro_mobile_ui/icons/WalletMoneyIcon.tsx +41 -0
- package/sincpro_mobile_ui/icons/icon_getters.tsx +27 -0
- package/sincpro_mobile_ui/icons/props.ts +4 -0
- package/sincpro_mobile_ui/index.ts +38 -0
- package/sincpro_mobile_ui/layouts/AuthContainer.tsx +73 -0
- package/sincpro_mobile_ui/layouts/Container.tsx +40 -0
- package/sincpro_mobile_ui/layouts/GradientContainer.tsx +22 -0
- package/sincpro_mobile_ui/layouts/PlainLayout.tsx +14 -0
- package/sincpro_mobile_ui/layouts/ScrollContainer.tsx +37 -0
- package/sincpro_mobile_ui/layouts/TabNavigatorLayout.tsx +154 -0
- package/sincpro_mobile_ui/lib/date.ts +149 -0
- package/sincpro_mobile_ui/lib/icon.ts +10 -0
- package/sincpro_mobile_ui/lib/monetary.ts +33 -0
- package/sincpro_mobile_ui/lib/quantity.ts +52 -0
- package/sincpro_mobile_ui/lib/serializer.ts +59 -0
- package/sincpro_mobile_ui/lib/timezone.ts +4 -0
- package/sincpro_mobile_ui/nativewind-env.d.ts +1 -0
- package/sincpro_mobile_ui/notifications/index.ts +2 -0
- package/sincpro_mobile_ui/primitives/BaseButton.tsx +404 -0
- package/sincpro_mobile_ui/primitives/Box.tsx +14 -0
- package/sincpro_mobile_ui/primitives/Row.tsx +55 -0
- package/sincpro_mobile_ui/primitives/Stack.tsx +29 -0
- package/sincpro_mobile_ui/primitives/index.ts +3 -0
- package/sincpro_mobile_ui/providers/index.ts +1 -0
- package/sincpro_mobile_ui/theme/active.ts +12 -0
- package/sincpro_mobile_ui/theme/components/ThemedActivityIndicator.tsx +29 -0
- package/sincpro_mobile_ui/theme/components/index.ts +10 -0
- package/sincpro_mobile_ui/theme/default.ts +81 -0
- package/sincpro_mobile_ui/theme/globals.css +67 -0
- package/sincpro_mobile_ui/theme/index.ts +4 -0
- package/sincpro_mobile_ui/theme/theme.ts +16 -0
- package/sincpro_mobile_ui/theme/tw.ts +16 -0
- package/sincpro_mobile_ui/theme/types.ts +109 -0
- package/sincpro_mobile_ui/theme/typography.ts +271 -0
- package/sincpro_mobile_ui/theme/useTheme.ts +3 -0
- package/sincpro_mobile_ui/views/AuthFormView.tsx +46 -0
- package/sincpro_mobile_ui/views/FormViewV2.context.tsx +79 -0
- package/sincpro_mobile_ui/views/FormViewV2.tsx +248 -0
- package/sincpro_mobile_ui/views/ListViewV2.context.tsx +87 -0
- package/sincpro_mobile_ui/views/ListViewV2.tsx +575 -0
- package/sincpro_mobile_ui/views/Wizard/Wizard.context.tsx +164 -0
- package/sincpro_mobile_ui/views/Wizard/Wizard.tsx +147 -0
- package/sincpro_mobile_ui/views/Wizard/index.ts +11 -0
- package/sincpro_mobile_ui/views/types/IFormView.ts +24 -0
- package/sincpro_mobile_ui/views/types/IListView.ts +78 -0
- package/sincpro_mobile_ui/views/types/UIItem.ts +23 -0
- package/sincpro_mobile_ui/widgets/CircleButton.tsx +63 -0
- package/sincpro_mobile_ui/widgets/GeoPermissionCard.tsx +62 -0
- package/sincpro_mobile_ui/widgets/HomeHeader.tsx +50 -0
- package/sincpro_mobile_ui/widgets/JSONViewer.tsx +192 -0
- package/sincpro_mobile_ui/widgets/MenuCard.tsx +37 -0
- package/sincpro_mobile_ui/widgets/MenuGrid.tsx +33 -0
- package/sincpro_mobile_ui/widgets/ScreenHeader.tsx +72 -0
- package/sincpro_mobile_ui/widgets/TimeZoneSelector.tsx +83 -0
- package/sincpro_mobile_ui/widgets/TimeZoneSelectorModal.tsx +179 -0
- package/sincpro_mobile_ui/widgets/index.ts +7 -0
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { Modal, TouchableWithoutFeedback, View } from "react-native";
|
|
3
|
+
|
|
4
|
+
import { BaseButton } from "../primitives/BaseButton";
|
|
5
|
+
import { theme } from "../theme";
|
|
6
|
+
import Typography from "../Typography/Typography.Text";
|
|
7
|
+
|
|
8
|
+
export interface Props {
|
|
9
|
+
auxTitle?: string;
|
|
10
|
+
subtitle?: string;
|
|
11
|
+
confirmButtonText?: string;
|
|
12
|
+
cancelButtonText?: string;
|
|
13
|
+
visible: boolean;
|
|
14
|
+
onCancel: () => void;
|
|
15
|
+
onConfirm: () => void;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
const ConfirmationDialog: React.FC<Props> = ({
|
|
19
|
+
visible,
|
|
20
|
+
onCancel,
|
|
21
|
+
onConfirm,
|
|
22
|
+
auxTitle = "cambios",
|
|
23
|
+
subtitle = "¿Estás seguro de que quieres descartar los cambios realizados?",
|
|
24
|
+
confirmButtonText = "Sí",
|
|
25
|
+
cancelButtonText = "No, continuar aquí",
|
|
26
|
+
}) => {
|
|
27
|
+
return (
|
|
28
|
+
<Modal animationType="fade" onRequestClose={onCancel} transparent visible={visible}>
|
|
29
|
+
<TouchableWithoutFeedback onPress={onCancel}>
|
|
30
|
+
<View className="flex-1 justify-center items-center p-6 bg-black/50">
|
|
31
|
+
<TouchableWithoutFeedback>
|
|
32
|
+
<View
|
|
33
|
+
className="rounded-xl p-3 w-full max-w-xs mx-auto"
|
|
34
|
+
style={{ backgroundColor: theme.bg.popover, ...theme.shadow.md }}
|
|
35
|
+
>
|
|
36
|
+
<Typography className="mb-1.5 text-sm" variant="body">
|
|
37
|
+
<Typography semibold variant="body">
|
|
38
|
+
{auxTitle}
|
|
39
|
+
</Typography>
|
|
40
|
+
</Typography>
|
|
41
|
+
<Typography className="mb-3 text-xs leading-tight" variant="body">
|
|
42
|
+
{subtitle}
|
|
43
|
+
</Typography>
|
|
44
|
+
<View className="flex-row gap-2">
|
|
45
|
+
<BaseButton
|
|
46
|
+
className="flex-1"
|
|
47
|
+
onPress={onCancel}
|
|
48
|
+
size="small"
|
|
49
|
+
title={cancelButtonText}
|
|
50
|
+
variant="outlineBlack"
|
|
51
|
+
/>
|
|
52
|
+
<BaseButton
|
|
53
|
+
className="flex-1"
|
|
54
|
+
onPress={onConfirm}
|
|
55
|
+
size="small"
|
|
56
|
+
title={confirmButtonText}
|
|
57
|
+
variant="primary"
|
|
58
|
+
/>
|
|
59
|
+
</View>
|
|
60
|
+
</View>
|
|
61
|
+
</TouchableWithoutFeedback>
|
|
62
|
+
</View>
|
|
63
|
+
</TouchableWithoutFeedback>
|
|
64
|
+
</Modal>
|
|
65
|
+
);
|
|
66
|
+
};
|
|
67
|
+
|
|
68
|
+
export default ConfirmationDialog;
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
import React, { useEffect, useRef } from "react";
|
|
2
|
+
import { FlatList, Modal, TextInput, TouchableOpacity, View } from "react-native";
|
|
3
|
+
|
|
4
|
+
import { theme } from "../theme";
|
|
5
|
+
import { Typography } from "../Typography";
|
|
6
|
+
|
|
7
|
+
export interface EditableValueModalChip {
|
|
8
|
+
key?: string;
|
|
9
|
+
label: string;
|
|
10
|
+
onPress: () => void;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export interface EditableValueModalProps {
|
|
14
|
+
visible: boolean;
|
|
15
|
+
title: string;
|
|
16
|
+
value: string;
|
|
17
|
+
onChangeValue: (text: string) => void;
|
|
18
|
+
onConfirm: () => void;
|
|
19
|
+
onCancel: () => void;
|
|
20
|
+
placeholder?: string;
|
|
21
|
+
helperText?: string | React.ReactNode;
|
|
22
|
+
chips?: EditableValueModalChip[];
|
|
23
|
+
keyboardType?: "default" | "numeric" | "decimal-pad";
|
|
24
|
+
rightAdornment?: React.ReactNode;
|
|
25
|
+
confirmLabel?: string;
|
|
26
|
+
cancelLabel?: string;
|
|
27
|
+
autoFocus?: boolean;
|
|
28
|
+
testID?: string;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
function EditableValueModal({
|
|
32
|
+
visible,
|
|
33
|
+
title,
|
|
34
|
+
value,
|
|
35
|
+
onChangeValue,
|
|
36
|
+
onConfirm,
|
|
37
|
+
onCancel,
|
|
38
|
+
placeholder,
|
|
39
|
+
helperText,
|
|
40
|
+
chips,
|
|
41
|
+
keyboardType = "decimal-pad",
|
|
42
|
+
rightAdornment,
|
|
43
|
+
confirmLabel = "Aplicar",
|
|
44
|
+
cancelLabel = "Cancelar",
|
|
45
|
+
autoFocus = true,
|
|
46
|
+
testID,
|
|
47
|
+
}: EditableValueModalProps) {
|
|
48
|
+
const inputRef = useRef<TextInput>(null);
|
|
49
|
+
|
|
50
|
+
useEffect(() => {
|
|
51
|
+
if (visible && autoFocus) {
|
|
52
|
+
const t = setTimeout(() => inputRef.current?.focus(), 60);
|
|
53
|
+
return () => clearTimeout(t);
|
|
54
|
+
}
|
|
55
|
+
}, [visible, autoFocus]);
|
|
56
|
+
|
|
57
|
+
return (
|
|
58
|
+
<Modal animationType="fade" onRequestClose={onCancel} transparent visible={visible}>
|
|
59
|
+
<View className="flex-1 justify-center p-6 bg-black/40">
|
|
60
|
+
<View
|
|
61
|
+
className="rounded-xl p-4"
|
|
62
|
+
style={{ backgroundColor: theme.bg.popover, ...theme.shadow.md }}
|
|
63
|
+
testID={testID}
|
|
64
|
+
>
|
|
65
|
+
<Typography.Text className="mb-3" semibold variant="h6">
|
|
66
|
+
{title}
|
|
67
|
+
</Typography.Text>
|
|
68
|
+
<View className="flex-row items-center">
|
|
69
|
+
<TextInput
|
|
70
|
+
className="flex-1 border border-input rounded-lg p-2.5 text-lg text-text-primary"
|
|
71
|
+
keyboardType={keyboardType}
|
|
72
|
+
onChangeText={onChangeValue}
|
|
73
|
+
onSubmitEditing={onConfirm}
|
|
74
|
+
placeholder={placeholder}
|
|
75
|
+
ref={inputRef}
|
|
76
|
+
returnKeyType="done"
|
|
77
|
+
value={value}
|
|
78
|
+
/>
|
|
79
|
+
{rightAdornment && <View className="ml-2">{rightAdornment}</View>}
|
|
80
|
+
</View>
|
|
81
|
+
{helperText ? (
|
|
82
|
+
<View className="mt-2">
|
|
83
|
+
{typeof helperText === "string" ? (
|
|
84
|
+
<Typography.Text className="opacity-70" variant="bodySmall">
|
|
85
|
+
{helperText}
|
|
86
|
+
</Typography.Text>
|
|
87
|
+
) : (
|
|
88
|
+
helperText
|
|
89
|
+
)}
|
|
90
|
+
</View>
|
|
91
|
+
) : null}
|
|
92
|
+
{chips && chips.length > 0 && (
|
|
93
|
+
<FlatList
|
|
94
|
+
contentContainerClassName="gap-2 py-3"
|
|
95
|
+
data={chips}
|
|
96
|
+
horizontal
|
|
97
|
+
keyExtractor={(c, i) => c.key || `${c.label}-${i}`}
|
|
98
|
+
renderItem={({ item }) => (
|
|
99
|
+
<TouchableOpacity
|
|
100
|
+
className="px-3 py-1.5 bg-accent/10 rounded-2xl border border-accent/30"
|
|
101
|
+
onPress={item.onPress}
|
|
102
|
+
>
|
|
103
|
+
<Typography.Text semibold variant="bodySmall">
|
|
104
|
+
{item.label}
|
|
105
|
+
</Typography.Text>
|
|
106
|
+
</TouchableOpacity>
|
|
107
|
+
)}
|
|
108
|
+
/>
|
|
109
|
+
)}
|
|
110
|
+
<View className="flex-row justify-end gap-3">
|
|
111
|
+
<TouchableOpacity
|
|
112
|
+
className="px-4 py-2.5 rounded-lg bg-bg-hover"
|
|
113
|
+
onPress={onCancel}
|
|
114
|
+
>
|
|
115
|
+
<Typography.Text semibold variant="body">
|
|
116
|
+
{cancelLabel}
|
|
117
|
+
</Typography.Text>
|
|
118
|
+
</TouchableOpacity>
|
|
119
|
+
<TouchableOpacity
|
|
120
|
+
className="px-4 py-2.5 rounded-lg bg-accent"
|
|
121
|
+
onPress={onConfirm}
|
|
122
|
+
>
|
|
123
|
+
<Typography.Text className="text-text-inverse" semibold variant="body">
|
|
124
|
+
{confirmLabel}
|
|
125
|
+
</Typography.Text>
|
|
126
|
+
</TouchableOpacity>
|
|
127
|
+
</View>
|
|
128
|
+
</View>
|
|
129
|
+
</View>
|
|
130
|
+
</Modal>
|
|
131
|
+
);
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
export default EditableValueModal;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { BottomSheet } from "./BottomSheet";
|
|
2
|
+
import { ConfirmationProvider, useConfirmationContext } from "./Confirmation.context";
|
|
3
|
+
import Confirmation from "./Dialog.Confirmation";
|
|
4
|
+
import EditValue, {
|
|
5
|
+
type EditableValueModalChip,
|
|
6
|
+
type EditableValueModalProps,
|
|
7
|
+
} from "./Dialog.EditValue";
|
|
8
|
+
|
|
9
|
+
export const Dialog = {
|
|
10
|
+
Confirmation,
|
|
11
|
+
BottomSheet,
|
|
12
|
+
EditValue,
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
export {
|
|
16
|
+
BottomSheet,
|
|
17
|
+
ConfirmationProvider,
|
|
18
|
+
type EditableValueModalChip,
|
|
19
|
+
type EditableValueModalProps,
|
|
20
|
+
useConfirmationContext,
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
export default Dialog;
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { FC } from "react";
|
|
2
|
+
import { View } from "react-native";
|
|
3
|
+
|
|
4
|
+
import { cn, tv, type VariantProps } from "../theme/tw";
|
|
5
|
+
import { Typography } from "../Typography";
|
|
6
|
+
|
|
7
|
+
const avatar = tv({
|
|
8
|
+
base: "justify-center items-center rounded-full shadow-sm",
|
|
9
|
+
variants: {
|
|
10
|
+
size: {
|
|
11
|
+
small: "w-8 h-8",
|
|
12
|
+
medium: "w-10 h-10",
|
|
13
|
+
large: "w-12 h-12",
|
|
14
|
+
xlarge: "w-16 h-16",
|
|
15
|
+
},
|
|
16
|
+
colorScheme: {
|
|
17
|
+
default: "bg-bg-hover",
|
|
18
|
+
primary: "bg-primary/20",
|
|
19
|
+
secondary: "bg-secondary/20",
|
|
20
|
+
success: "bg-success-light",
|
|
21
|
+
warning: "bg-warning-light",
|
|
22
|
+
},
|
|
23
|
+
},
|
|
24
|
+
defaultVariants: {
|
|
25
|
+
size: "medium",
|
|
26
|
+
colorScheme: "default",
|
|
27
|
+
},
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
export interface AvatarProps extends Omit<VariantProps<typeof avatar>, "size"> {
|
|
31
|
+
initials: string;
|
|
32
|
+
size?: number;
|
|
33
|
+
className?: string;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
const Avatar: FC<AvatarProps> = ({ initials, size, colorScheme = "default", className }) => {
|
|
37
|
+
// Map size prop to Tailwind text classes
|
|
38
|
+
const getTextSize = () => {
|
|
39
|
+
if (size && size <= 32) return "text-xs";
|
|
40
|
+
if (size && size <= 40) return "text-sm";
|
|
41
|
+
if (size && size <= 48) return "text-base";
|
|
42
|
+
return "text-lg";
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
return (
|
|
46
|
+
<View
|
|
47
|
+
className={cn(avatar({ colorScheme }), className)}
|
|
48
|
+
style={size ? { width: size, height: size } : undefined}
|
|
49
|
+
>
|
|
50
|
+
<Typography.Text
|
|
51
|
+
className={cn("text-text-primary font-semibold", getTextSize())}
|
|
52
|
+
variant="body"
|
|
53
|
+
>
|
|
54
|
+
{initials}
|
|
55
|
+
</Typography.Text>
|
|
56
|
+
</View>
|
|
57
|
+
);
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
export default Avatar;
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { Text, View } from "react-native";
|
|
2
|
+
|
|
3
|
+
import { tv, type VariantProps } from "../theme/tw";
|
|
4
|
+
|
|
5
|
+
const badge = tv({
|
|
6
|
+
slots: {
|
|
7
|
+
root: "px-2.5 py-1.5 rounded-lg self-start",
|
|
8
|
+
text: "text-xs font-semibold",
|
|
9
|
+
},
|
|
10
|
+
variants: {
|
|
11
|
+
variant: {
|
|
12
|
+
info: {
|
|
13
|
+
root: "bg-info-light",
|
|
14
|
+
text: "text-info",
|
|
15
|
+
},
|
|
16
|
+
infoDark: {
|
|
17
|
+
root: "bg-info",
|
|
18
|
+
text: "text-text-on-primary",
|
|
19
|
+
},
|
|
20
|
+
warning: {
|
|
21
|
+
root: "bg-warning-light",
|
|
22
|
+
text: "text-warning",
|
|
23
|
+
},
|
|
24
|
+
success: {
|
|
25
|
+
root: "bg-success-light",
|
|
26
|
+
text: "text-success",
|
|
27
|
+
},
|
|
28
|
+
successDark: {
|
|
29
|
+
root: "bg-success",
|
|
30
|
+
text: "text-text-on-primary",
|
|
31
|
+
},
|
|
32
|
+
danger: {
|
|
33
|
+
root: "bg-danger-light",
|
|
34
|
+
text: "text-danger",
|
|
35
|
+
},
|
|
36
|
+
},
|
|
37
|
+
},
|
|
38
|
+
defaultVariants: {
|
|
39
|
+
variant: "info",
|
|
40
|
+
},
|
|
41
|
+
});
|
|
42
|
+
|
|
43
|
+
export type BadgeVariant = VariantProps<typeof badge>["variant"];
|
|
44
|
+
|
|
45
|
+
export enum BadgeVariants {
|
|
46
|
+
INFO = "info",
|
|
47
|
+
WARNING = "warning",
|
|
48
|
+
SUCCESS = "success",
|
|
49
|
+
INFO_DARK = "infoDark",
|
|
50
|
+
DANGER = "danger",
|
|
51
|
+
SUCCESS_DARK = "successDark",
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
export type BadgeProps = {
|
|
55
|
+
label: string;
|
|
56
|
+
variant: BadgeVariants | BadgeVariant | string;
|
|
57
|
+
className?: string;
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
function Badge({ label, variant, className }: BadgeProps) {
|
|
61
|
+
const styles = badge({ variant: variant as BadgeVariant });
|
|
62
|
+
|
|
63
|
+
return (
|
|
64
|
+
<View className={styles.root({ className })}>
|
|
65
|
+
<Text className={styles.text()} numberOfLines={1}>
|
|
66
|
+
{label}
|
|
67
|
+
</Text>
|
|
68
|
+
</View>
|
|
69
|
+
);
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
export default Badge;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import * as Clipboard from "expo-clipboard";
|
|
2
|
+
import { TouchableOpacity } from "react-native";
|
|
3
|
+
|
|
4
|
+
import { Typography } from "../Typography";
|
|
5
|
+
|
|
6
|
+
type CopyableTextProps =
|
|
7
|
+
| {
|
|
8
|
+
value: string;
|
|
9
|
+
getValue?: never;
|
|
10
|
+
label?: string;
|
|
11
|
+
className?: string;
|
|
12
|
+
}
|
|
13
|
+
| {
|
|
14
|
+
value?: never;
|
|
15
|
+
getValue: () => string;
|
|
16
|
+
label?: string;
|
|
17
|
+
className?: string;
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
function CopyableText({ value, getValue, label, className }: CopyableTextProps) {
|
|
21
|
+
const hasStaticValue = value !== undefined;
|
|
22
|
+
const displayText = label || value;
|
|
23
|
+
|
|
24
|
+
const handleCopy = async () => {
|
|
25
|
+
const textToCopy = hasStaticValue ? value : getValue();
|
|
26
|
+
await Clipboard.setStringAsync(textToCopy);
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
return (
|
|
30
|
+
<TouchableOpacity onPress={handleCopy}>
|
|
31
|
+
<Typography.Text className={className || "text-primary"} semibold variant="bodySmall">
|
|
32
|
+
{displayText}
|
|
33
|
+
</Typography.Text>
|
|
34
|
+
</TouchableOpacity>
|
|
35
|
+
);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export default CopyableText;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { View } from "react-native";
|
|
2
|
+
|
|
3
|
+
import { cn } from "../theme/tw";
|
|
4
|
+
import { Typography } from "../Typography";
|
|
5
|
+
|
|
6
|
+
interface IProps {
|
|
7
|
+
name?: string;
|
|
8
|
+
count: number;
|
|
9
|
+
withPadding?: boolean;
|
|
10
|
+
className?: string;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
function CountRecords({ name, count, withPadding = true, className }: IProps) {
|
|
14
|
+
return (
|
|
15
|
+
<View className={cn("flex-row py-2", withPadding && "px-4", className)}>
|
|
16
|
+
<Typography.Text semibold variant="bodySmall">
|
|
17
|
+
{"Total "} {`${name || "Registros"} `}
|
|
18
|
+
</Typography.Text>
|
|
19
|
+
<Typography.Text className="text-text-secondary" variant="bodySmall">
|
|
20
|
+
( {count} )
|
|
21
|
+
</Typography.Text>
|
|
22
|
+
</View>
|
|
23
|
+
);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export default CountRecords;
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import type { StyleProp, TextStyle } from "react-native";
|
|
2
|
+
|
|
3
|
+
import { formatDate } from "../lib/date";
|
|
4
|
+
import { typographyVariants } from "../theme/typography";
|
|
5
|
+
import { Typography } from "../Typography";
|
|
6
|
+
|
|
7
|
+
type DateFormat = "short" | "long" | "numeric";
|
|
8
|
+
|
|
9
|
+
interface DateFieldProps {
|
|
10
|
+
value: string | Date | null | undefined;
|
|
11
|
+
format?: DateFormat;
|
|
12
|
+
prefix?: string;
|
|
13
|
+
textVariant?: keyof typeof typographyVariants;
|
|
14
|
+
color?: string;
|
|
15
|
+
style?: StyleProp<TextStyle>;
|
|
16
|
+
semibold?: boolean;
|
|
17
|
+
bold?: boolean;
|
|
18
|
+
className?: string;
|
|
19
|
+
showTime?: boolean;
|
|
20
|
+
timezone?: string;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
function DateField({
|
|
24
|
+
value,
|
|
25
|
+
format = "short",
|
|
26
|
+
prefix = "",
|
|
27
|
+
textVariant = "body",
|
|
28
|
+
color,
|
|
29
|
+
style = {},
|
|
30
|
+
semibold = false,
|
|
31
|
+
bold = false,
|
|
32
|
+
className,
|
|
33
|
+
showTime = true,
|
|
34
|
+
timezone,
|
|
35
|
+
}: DateFieldProps) {
|
|
36
|
+
const locale = "es-CR";
|
|
37
|
+
|
|
38
|
+
const formatted = value
|
|
39
|
+
? formatDate(value, timezone, {
|
|
40
|
+
showTime,
|
|
41
|
+
locale,
|
|
42
|
+
})
|
|
43
|
+
: "-";
|
|
44
|
+
|
|
45
|
+
return (
|
|
46
|
+
<Typography.Text
|
|
47
|
+
bold={bold}
|
|
48
|
+
className={className}
|
|
49
|
+
color={color}
|
|
50
|
+
semibold={semibold && !bold}
|
|
51
|
+
style={style as any}
|
|
52
|
+
variant={textVariant}
|
|
53
|
+
>
|
|
54
|
+
{prefix ? `${prefix}${formatted}` : formatted}
|
|
55
|
+
</Typography.Text>
|
|
56
|
+
);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
export default DateField;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { View } from "react-native";
|
|
2
|
+
|
|
3
|
+
import { cn, tv, type VariantProps } from "../theme/tw";
|
|
4
|
+
|
|
5
|
+
const divider = tv({
|
|
6
|
+
base: "w-full bg-border-divider",
|
|
7
|
+
variants: {
|
|
8
|
+
spacing: {
|
|
9
|
+
none: "my-0",
|
|
10
|
+
sm: "my-1",
|
|
11
|
+
md: "my-2",
|
|
12
|
+
lg: "my-3",
|
|
13
|
+
},
|
|
14
|
+
colorScheme: {
|
|
15
|
+
light: "bg-border-divider opacity-50",
|
|
16
|
+
default: "bg-border-divider",
|
|
17
|
+
dark: "bg-border-divider opacity-100",
|
|
18
|
+
},
|
|
19
|
+
},
|
|
20
|
+
defaultVariants: {
|
|
21
|
+
spacing: "md",
|
|
22
|
+
colorScheme: "default",
|
|
23
|
+
},
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
interface DividerProps extends VariantProps<typeof divider> {
|
|
27
|
+
thickness?: number;
|
|
28
|
+
className?: string;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
function Divider({ thickness = 1, spacing, colorScheme, className }: DividerProps) {
|
|
32
|
+
return (
|
|
33
|
+
<View
|
|
34
|
+
className={cn(divider({ spacing, colorScheme }), className)}
|
|
35
|
+
style={{ height: thickness }}
|
|
36
|
+
/>
|
|
37
|
+
);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
export default Divider;
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import {
|
|
2
|
+
AntDesign,
|
|
3
|
+
Feather,
|
|
4
|
+
FontAwesome,
|
|
5
|
+
FontAwesome5,
|
|
6
|
+
Ionicons,
|
|
7
|
+
MaterialCommunityIcons,
|
|
8
|
+
MaterialIcons,
|
|
9
|
+
SimpleLineIcons,
|
|
10
|
+
} from "@expo/vector-icons";
|
|
11
|
+
import { ComponentType, FC } from "react";
|
|
12
|
+
import { View } from "react-native";
|
|
13
|
+
|
|
14
|
+
import { IconType } from "../lib/icon";
|
|
15
|
+
import { theme } from "../theme";
|
|
16
|
+
|
|
17
|
+
export interface IconProps {
|
|
18
|
+
name?: any;
|
|
19
|
+
size?: number;
|
|
20
|
+
color?: string;
|
|
21
|
+
type?: IconType;
|
|
22
|
+
customIcon?: ComponentType<{ size?: number; color?: string }>;
|
|
23
|
+
className?: string;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
const Icon: FC<IconProps> = ({
|
|
27
|
+
name,
|
|
28
|
+
size = 24,
|
|
29
|
+
color,
|
|
30
|
+
type = "ionicons",
|
|
31
|
+
customIcon,
|
|
32
|
+
className,
|
|
33
|
+
}) => {
|
|
34
|
+
const iconColor = color || theme.text.primary;
|
|
35
|
+
|
|
36
|
+
const renderIcon = () => {
|
|
37
|
+
if (type === "custom" && customIcon) {
|
|
38
|
+
const CustomIconComponent = customIcon;
|
|
39
|
+
return <CustomIconComponent color={iconColor} size={size} />;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
switch (type) {
|
|
43
|
+
case "ionicons":
|
|
44
|
+
return <Ionicons color={iconColor} name={name} size={size} />;
|
|
45
|
+
case "fontawesome":
|
|
46
|
+
return <FontAwesome color={iconColor} name={name} size={size} />;
|
|
47
|
+
case "material":
|
|
48
|
+
return <MaterialIcons color={iconColor} name={name} size={size} />;
|
|
49
|
+
case "fontawesome5":
|
|
50
|
+
return <FontAwesome5 color={iconColor} name={name} size={size} />;
|
|
51
|
+
case "simplelineicons":
|
|
52
|
+
return <SimpleLineIcons color={iconColor} name={name} size={size} />;
|
|
53
|
+
case "antdesign":
|
|
54
|
+
return <AntDesign color={iconColor} name={name} size={size} />;
|
|
55
|
+
case "feather":
|
|
56
|
+
return <Feather color={iconColor} name={name} size={size} />;
|
|
57
|
+
case "MaterialCommunityIcons":
|
|
58
|
+
return <MaterialCommunityIcons color={iconColor} name={name} size={size} />;
|
|
59
|
+
default:
|
|
60
|
+
return null;
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
return (
|
|
65
|
+
<View className={`justify-center items-center ${className || ""}`}>{renderIcon()}</View>
|
|
66
|
+
);
|
|
67
|
+
};
|
|
68
|
+
|
|
69
|
+
export default Icon;
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { FC } from "react";
|
|
2
|
+
import { Image, type ImageSourcePropType, View } from "react-native";
|
|
3
|
+
|
|
4
|
+
import { tv, type VariantProps } from "../theme/tw";
|
|
5
|
+
|
|
6
|
+
const logo = tv({
|
|
7
|
+
slots: {
|
|
8
|
+
container: "items-center justify-center",
|
|
9
|
+
image: "",
|
|
10
|
+
},
|
|
11
|
+
variants: {
|
|
12
|
+
size: {
|
|
13
|
+
small: {
|
|
14
|
+
image: "w-[120px] h-[80px]",
|
|
15
|
+
},
|
|
16
|
+
medium: {
|
|
17
|
+
image: "w-[180px] h-[100px]",
|
|
18
|
+
},
|
|
19
|
+
large: {
|
|
20
|
+
image: "w-[250px] h-[250px]",
|
|
21
|
+
},
|
|
22
|
+
},
|
|
23
|
+
},
|
|
24
|
+
defaultVariants: {
|
|
25
|
+
size: "medium",
|
|
26
|
+
},
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
export interface LogoProps extends VariantProps<typeof logo> {
|
|
30
|
+
source?: ImageSourcePropType;
|
|
31
|
+
className?: string;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
function renderImage(imageClassName: string, source?: ImageSourcePropType) {
|
|
35
|
+
if (!source) {
|
|
36
|
+
return null;
|
|
37
|
+
}
|
|
38
|
+
return <Image className={imageClassName} resizeMode="contain" source={source} />;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
const Logo: FC<LogoProps> = ({ source, size = "medium", className }) => {
|
|
42
|
+
const styles = logo({ size });
|
|
43
|
+
|
|
44
|
+
return (
|
|
45
|
+
<View className={styles.container({ className })}>
|
|
46
|
+
{renderImage(styles.image(), source)}
|
|
47
|
+
</View>
|
|
48
|
+
);
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
export default Logo;
|