@herca/rn-kit 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +20 -0
- package/README.md +33 -0
- package/RnKit.podspec +21 -0
- package/android/build.gradle +83 -0
- package/android/gradle.properties +5 -0
- package/android/src/main/AndroidManifest.xml +2 -0
- package/android/src/main/java/com/herca/rnkit/RnKitModule.kt +23 -0
- package/android/src/main/java/com/herca/rnkit/RnKitPackage.kt +33 -0
- package/ios/RnKit.h +5 -0
- package/ios/RnKit.mm +18 -0
- package/lib/module/Accordion/Accordion.js +33 -0
- package/lib/module/Accordion/Accordion.js.map +1 -0
- package/lib/module/Accordion/AccordionItem.js +13 -0
- package/lib/module/Accordion/AccordionItem.js.map +1 -0
- package/lib/module/Accordion/README.md +48 -0
- package/lib/module/Accordion/type.js +4 -0
- package/lib/module/Accordion/type.js.map +1 -0
- package/lib/module/Alert/Alert.js +121 -0
- package/lib/module/Alert/Alert.js.map +1 -0
- package/lib/module/Alert/README.md +68 -0
- package/lib/module/Avatar/Avatar.js +56 -0
- package/lib/module/Avatar/Avatar.js.map +1 -0
- package/lib/module/Avatar/AvatarGroup.js +118 -0
- package/lib/module/Avatar/AvatarGroup.js.map +1 -0
- package/lib/module/Avatar/README_AVATAR.md +57 -0
- package/lib/module/Avatar/README_AVATARGROUP.md +58 -0
- package/lib/module/Avatar/type.js +4 -0
- package/lib/module/Avatar/type.js.map +1 -0
- package/lib/module/Badge/Badge.js +119 -0
- package/lib/module/Badge/Badge.js.map +1 -0
- package/lib/module/Badge/README.md +64 -0
- package/lib/module/Badge/type.js +2 -0
- package/lib/module/Badge/type.js.map +1 -0
- package/lib/module/BottomSheet/BottomSheet.js +211 -0
- package/lib/module/BottomSheet/BottomSheet.js.map +1 -0
- package/lib/module/BottomSheet/README.md +64 -0
- package/lib/module/BottomSheet/type.js +2 -0
- package/lib/module/BottomSheet/type.js.map +1 -0
- package/lib/module/Button/Button.js +138 -0
- package/lib/module/Button/Button.js.map +1 -0
- package/lib/module/Button/README.md +94 -0
- package/lib/module/Button/type.js +262 -0
- package/lib/module/Button/type.js.map +1 -0
- package/lib/module/Calendar/Calendar.js +356 -0
- package/lib/module/Calendar/Calendar.js.map +1 -0
- package/lib/module/Calendar/CalendarPropsType.js +4 -0
- package/lib/module/Calendar/CalendarPropsType.js.map +1 -0
- package/lib/module/Calendar/README.md +73 -0
- package/lib/module/CheckBox/CheckBox.js +67 -0
- package/lib/module/CheckBox/CheckBox.js.map +1 -0
- package/lib/module/CheckBox/CheckBoxList.js +41 -0
- package/lib/module/CheckBox/CheckBoxList.js.map +1 -0
- package/lib/module/CheckBox/README_CHECKBOX.md +46 -0
- package/lib/module/CheckBox/README_CHECKBOXLIST.md +41 -0
- package/lib/module/Chip/Chip.js +109 -0
- package/lib/module/Chip/Chip.js.map +1 -0
- package/lib/module/Chip/ChipItem.js +89 -0
- package/lib/module/Chip/ChipItem.js.map +1 -0
- package/lib/module/Chip/README.md +89 -0
- package/lib/module/Chip/type.js +94 -0
- package/lib/module/Chip/type.js.map +1 -0
- package/lib/module/Color/Color.js +126 -0
- package/lib/module/Color/Color.js.map +1 -0
- package/lib/module/Color/README.md +54 -0
- package/lib/module/Color/type.js +2 -0
- package/lib/module/Color/type.js.map +1 -0
- package/lib/module/DatePicker/DatePicker.js +69 -0
- package/lib/module/DatePicker/DatePicker.js.map +1 -0
- package/lib/module/DatePicker/MonthPicker.js +179 -0
- package/lib/module/DatePicker/MonthPicker.js.map +1 -0
- package/lib/module/DatePicker/README.md +51 -0
- package/lib/module/DatePicker/TimePicker.js +200 -0
- package/lib/module/DatePicker/TimePicker.js.map +1 -0
- package/lib/module/DatePicker/YearPicker.js +217 -0
- package/lib/module/DatePicker/YearPicker.js.map +1 -0
- package/lib/module/DatePicker/helpers.js +33 -0
- package/lib/module/DatePicker/helpers.js.map +1 -0
- package/lib/module/Drawing/Drawing.js +26 -0
- package/lib/module/Drawing/Drawing.js.map +1 -0
- package/lib/module/DropDown/DropDown.js +107 -0
- package/lib/module/DropDown/DropDown.js.map +1 -0
- package/lib/module/DropDown/type.js +4 -0
- package/lib/module/DropDown/type.js.map +1 -0
- package/lib/module/FileView/Image.js +8 -0
- package/lib/module/FileView/Image.js.map +1 -0
- package/lib/module/FileView/PdfView.js +37 -0
- package/lib/module/FileView/PdfView.js.map +1 -0
- package/lib/module/Icon/Icon.js +74 -0
- package/lib/module/Icon/Icon.js.map +1 -0
- package/lib/module/Icon/icons/AirPlane.js +22 -0
- package/lib/module/Icon/icons/AirPlane.js.map +1 -0
- package/lib/module/Icon/icons/ArrowBackAlt.js +22 -0
- package/lib/module/Icon/icons/ArrowBackAlt.js.map +1 -0
- package/lib/module/Icon/icons/ArrowDown.js +22 -0
- package/lib/module/Icon/icons/ArrowDown.js.map +1 -0
- package/lib/module/Icon/icons/ArrowForwardAlt.js +22 -0
- package/lib/module/Icon/icons/ArrowForwardAlt.js.map +1 -0
- package/lib/module/Icon/icons/ArrowLeft.js +22 -0
- package/lib/module/Icon/icons/ArrowLeft.js.map +1 -0
- package/lib/module/Icon/icons/ArrowRight.js +22 -0
- package/lib/module/Icon/icons/ArrowRight.js.map +1 -0
- package/lib/module/Icon/icons/ArrowUp.js +22 -0
- package/lib/module/Icon/icons/ArrowUp.js.map +1 -0
- package/lib/module/Icon/icons/Calendar.js +22 -0
- package/lib/module/Icon/icons/Calendar.js.map +1 -0
- package/lib/module/Icon/icons/Camera.js +22 -0
- package/lib/module/Icon/icons/Camera.js.map +1 -0
- package/lib/module/Icon/icons/Check.js +22 -0
- package/lib/module/Icon/icons/Check.js.map +1 -0
- package/lib/module/Icon/icons/Document.js +22 -0
- package/lib/module/Icon/icons/Document.js.map +1 -0
- package/lib/module/Icon/icons/Download.js +22 -0
- package/lib/module/Icon/icons/Download.js.map +1 -0
- package/lib/module/Icon/icons/ExlmationMark.js +22 -0
- package/lib/module/Icon/icons/ExlmationMark.js.map +1 -0
- package/lib/module/Icon/icons/Eye.js +22 -0
- package/lib/module/Icon/icons/Eye.js.map +1 -0
- package/lib/module/Icon/icons/EyeOpen.js +22 -0
- package/lib/module/Icon/icons/EyeOpen.js.map +1 -0
- package/lib/module/Icon/icons/Filter.js +22 -0
- package/lib/module/Icon/icons/Filter.js.map +1 -0
- package/lib/module/Icon/icons/Home.js +8 -0
- package/lib/module/Icon/icons/Home.js.map +1 -0
- package/lib/module/Icon/icons/Image.js +22 -0
- package/lib/module/Icon/icons/Image.js.map +1 -0
- package/lib/module/Icon/icons/Pdf.js +22 -0
- package/lib/module/Icon/icons/Pdf.js.map +1 -0
- package/lib/module/Icon/icons/RadioButton.js +34 -0
- package/lib/module/Icon/icons/RadioButton.js.map +1 -0
- package/lib/module/Icon/icons/Search.js +22 -0
- package/lib/module/Icon/icons/Search.js.map +1 -0
- package/lib/module/Icon/icons/StickyNote.js +22 -0
- package/lib/module/Icon/icons/StickyNote.js.map +1 -0
- package/lib/module/Icon/icons/Times.js +22 -0
- package/lib/module/Icon/icons/Times.js.map +1 -0
- package/lib/module/Icon/icons/User.js +22 -0
- package/lib/module/Icon/icons/User.js.map +1 -0
- package/lib/module/Icon/icons/XCircle.js +22 -0
- package/lib/module/Icon/icons/XCircle.js.map +1 -0
- package/lib/module/Icon/index.js +6 -0
- package/lib/module/Icon/index.js.map +1 -0
- package/lib/module/Icon/type.js +4 -0
- package/lib/module/Icon/type.js.map +1 -0
- package/lib/module/Input/Input.js +125 -0
- package/lib/module/Input/Input.js.map +1 -0
- package/lib/module/Input/Input.md +51 -0
- package/lib/module/Input/InputFile.js +319 -0
- package/lib/module/Input/InputFile.js.map +1 -0
- package/lib/module/Input/InputMonth.js +4 -0
- package/lib/module/Input/InputMonth.js.map +1 -0
- package/lib/module/Input/InputNumber.js +2 -0
- package/lib/module/Input/InputNumber.js.map +1 -0
- package/lib/module/Input/InputOtp.js +74 -0
- package/lib/module/Input/InputOtp.js.map +1 -0
- package/lib/module/Input/InputPassword.js +18 -0
- package/lib/module/Input/InputPassword.js.map +1 -0
- package/lib/module/Input/InputSelect.js +8 -0
- package/lib/module/Input/InputSelect.js.map +1 -0
- package/lib/module/Input/Switch.js +91 -0
- package/lib/module/Input/Switch.js.map +1 -0
- package/lib/module/Input/TextArea.js +61 -0
- package/lib/module/Input/TextArea.js.map +1 -0
- package/lib/module/Input/assets/Ilustrasi.svg +14 -0
- package/lib/module/Input/assets/input-file.png +0 -0
- package/lib/module/Input/type.js +4 -0
- package/lib/module/Input/type.js.map +1 -0
- package/lib/module/Label/Label.js +87 -0
- package/lib/module/Label/Label.js.map +1 -0
- package/lib/module/LabelForm/LabelForm.js +17 -0
- package/lib/module/LabelForm/LabelForm.js.map +1 -0
- package/lib/module/List/List.js +31 -0
- package/lib/module/List/List.js.map +1 -0
- package/lib/module/List/ListItem.js +31 -0
- package/lib/module/List/ListItem.js.map +1 -0
- package/lib/module/List/type.js +4 -0
- package/lib/module/List/type.js.map +1 -0
- package/lib/module/Loading/Loading.js +50 -0
- package/lib/module/Loading/Loading.js.map +1 -0
- package/lib/module/Modal/Modal.js +149 -0
- package/lib/module/Modal/Modal.js.map +1 -0
- package/lib/module/NativeRnKit.js +5 -0
- package/lib/module/NativeRnKit.js.map +1 -0
- package/lib/module/Provider/FooterProvider.js +25 -0
- package/lib/module/Provider/FooterProvider.js.map +1 -0
- package/lib/module/Provider/LayoutWithFooter.js +34 -0
- package/lib/module/Provider/LayoutWithFooter.js.map +1 -0
- package/lib/module/Provider/Provider.js +43 -0
- package/lib/module/Provider/Provider.js.map +1 -0
- package/lib/module/Provider/RequiredUpdateAppsProvider.js +60 -0
- package/lib/module/Provider/RequiredUpdateAppsProvider.js.map +1 -0
- package/lib/module/Provider/type.js +2 -0
- package/lib/module/Provider/type.js.map +1 -0
- package/lib/module/RadioButton/README.md +43 -0
- package/lib/module/RadioButton/RadioButton.js +97 -0
- package/lib/module/RadioButton/RadioButton.js.map +1 -0
- package/lib/module/Select/README.md +78 -0
- package/lib/module/Select/README_Select.md +78 -0
- package/lib/module/Select/Select.js +101 -0
- package/lib/module/Select/Select.js.map +1 -0
- package/lib/module/Select/type.js +4 -0
- package/lib/module/Select/type.js.map +1 -0
- package/lib/module/Step/Step.js +83 -0
- package/lib/module/Step/Step.js.map +1 -0
- package/lib/module/Step/StepItem.js +78 -0
- package/lib/module/Step/StepItem.js.map +1 -0
- package/lib/module/Step/type.js +4 -0
- package/lib/module/Step/type.js.map +1 -0
- package/lib/module/SwitchButton/SwitchButton.js +8 -0
- package/lib/module/SwitchButton/SwitchButton.js.map +1 -0
- package/lib/module/TextArea/TextArea.js +2 -0
- package/lib/module/TextArea/TextArea.js.map +1 -0
- package/lib/module/Theme/Theme.js +31 -0
- package/lib/module/Theme/Theme.js.map +1 -0
- package/lib/module/Timeline/Timeline.js +12 -0
- package/lib/module/Timeline/Timeline.js.map +1 -0
- package/lib/module/Timeline/TimelineItem.js +66 -0
- package/lib/module/Timeline/TimelineItem.js.map +1 -0
- package/lib/module/Toast/Toast.js +143 -0
- package/lib/module/Toast/Toast.js.map +1 -0
- package/lib/module/Toast/ToastContext.js +40 -0
- package/lib/module/Toast/ToastContext.js.map +1 -0
- package/lib/module/Typography/README.md +71 -0
- package/lib/module/Typography/Typography.js +39 -0
- package/lib/module/Typography/Typography.js.map +1 -0
- package/lib/module/Typography/type.js +33 -0
- package/lib/module/Typography/type.js.map +1 -0
- package/lib/module/Ui/Card.js +50 -0
- package/lib/module/Ui/Card.js.map +1 -0
- package/lib/module/Ui/Center.js +21 -0
- package/lib/module/Ui/Center.js.map +1 -0
- package/lib/module/Ui/Col.js +20 -0
- package/lib/module/Ui/Col.js.map +1 -0
- package/lib/module/Ui/Container.js +20 -0
- package/lib/module/Ui/Container.js.map +1 -0
- package/lib/module/Ui/Devider.js +18 -0
- package/lib/module/Ui/Devider.js.map +1 -0
- package/lib/module/Ui/Footer.js +36 -0
- package/lib/module/Ui/Footer.js.map +1 -0
- package/lib/module/Ui/Gap.js +13 -0
- package/lib/module/Ui/Gap.js.map +1 -0
- package/lib/module/Ui/Grid.js +31 -0
- package/lib/module/Ui/Grid.js.map +1 -0
- package/lib/module/index.js +61 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/package.json +1 -0
- package/lib/typescript/package.json +1 -0
- package/lib/typescript/src/Accordion/Accordion.d.ts +3 -0
- package/lib/typescript/src/Accordion/Accordion.d.ts.map +1 -0
- package/lib/typescript/src/Accordion/AccordionItem.d.ts +3 -0
- package/lib/typescript/src/Accordion/AccordionItem.d.ts.map +1 -0
- package/lib/typescript/src/Accordion/type.d.ts +17 -0
- package/lib/typescript/src/Accordion/type.d.ts.map +1 -0
- package/lib/typescript/src/Alert/Alert.d.ts +16 -0
- package/lib/typescript/src/Alert/Alert.d.ts.map +1 -0
- package/lib/typescript/src/Avatar/Avatar.d.ts +5 -0
- package/lib/typescript/src/Avatar/Avatar.d.ts.map +1 -0
- package/lib/typescript/src/Avatar/AvatarGroup.d.ts +4 -0
- package/lib/typescript/src/Avatar/AvatarGroup.d.ts.map +1 -0
- package/lib/typescript/src/Avatar/type.d.ts +16 -0
- package/lib/typescript/src/Avatar/type.d.ts.map +1 -0
- package/lib/typescript/src/Badge/Badge.d.ts +14 -0
- package/lib/typescript/src/Badge/Badge.d.ts.map +1 -0
- package/lib/typescript/src/Badge/type.d.ts +1 -0
- package/lib/typescript/src/Badge/type.d.ts.map +1 -0
- package/lib/typescript/src/BottomSheet/BottomSheet.d.ts +3 -0
- package/lib/typescript/src/BottomSheet/BottomSheet.d.ts.map +1 -0
- package/lib/typescript/src/BottomSheet/type.d.ts +15 -0
- package/lib/typescript/src/BottomSheet/type.d.ts.map +1 -0
- package/lib/typescript/src/Button/Button.d.ts +5 -0
- package/lib/typescript/src/Button/Button.d.ts.map +1 -0
- package/lib/typescript/src/Button/type.d.ts +49 -0
- package/lib/typescript/src/Button/type.d.ts.map +1 -0
- package/lib/typescript/src/Calendar/Calendar.d.ts +4 -0
- package/lib/typescript/src/Calendar/Calendar.d.ts.map +1 -0
- package/lib/typescript/src/Calendar/CalendarPropsType.d.ts +52 -0
- package/lib/typescript/src/Calendar/CalendarPropsType.d.ts.map +1 -0
- package/lib/typescript/src/CheckBox/CheckBox.d.ts +11 -0
- package/lib/typescript/src/CheckBox/CheckBox.d.ts.map +1 -0
- package/lib/typescript/src/CheckBox/CheckBoxList.d.ts +14 -0
- package/lib/typescript/src/CheckBox/CheckBoxList.d.ts.map +1 -0
- package/lib/typescript/src/Chip/Chip.d.ts +5 -0
- package/lib/typescript/src/Chip/Chip.d.ts.map +1 -0
- package/lib/typescript/src/Chip/ChipItem.d.ts +3 -0
- package/lib/typescript/src/Chip/ChipItem.d.ts.map +1 -0
- package/lib/typescript/src/Chip/type.d.ts +50 -0
- package/lib/typescript/src/Chip/type.d.ts.map +1 -0
- package/lib/typescript/src/Color/Color.d.ts +122 -0
- package/lib/typescript/src/Color/Color.d.ts.map +1 -0
- package/lib/typescript/src/Color/type.d.ts +2 -0
- package/lib/typescript/src/Color/type.d.ts.map +1 -0
- package/lib/typescript/src/DatePicker/DatePicker.d.ts +10 -0
- package/lib/typescript/src/DatePicker/DatePicker.d.ts.map +1 -0
- package/lib/typescript/src/DatePicker/MonthPicker.d.ts +13 -0
- package/lib/typescript/src/DatePicker/MonthPicker.d.ts.map +1 -0
- package/lib/typescript/src/DatePicker/TimePicker.d.ts +11 -0
- package/lib/typescript/src/DatePicker/TimePicker.d.ts.map +1 -0
- package/lib/typescript/src/DatePicker/YearPicker.d.ts +13 -0
- package/lib/typescript/src/DatePicker/YearPicker.d.ts.map +1 -0
- package/lib/typescript/src/DatePicker/helpers.d.ts +21 -0
- package/lib/typescript/src/DatePicker/helpers.d.ts.map +1 -0
- package/lib/typescript/src/Drawing/Drawing.d.ts +2 -0
- package/lib/typescript/src/Drawing/Drawing.d.ts.map +1 -0
- package/lib/typescript/src/DropDown/DropDown.d.ts +4 -0
- package/lib/typescript/src/DropDown/DropDown.d.ts.map +1 -0
- package/lib/typescript/src/DropDown/type.d.ts +9 -0
- package/lib/typescript/src/DropDown/type.d.ts.map +1 -0
- package/lib/typescript/src/FileView/Image.d.ts +2 -0
- package/lib/typescript/src/FileView/Image.d.ts.map +1 -0
- package/lib/typescript/src/FileView/PdfView.d.ts +5 -0
- package/lib/typescript/src/FileView/PdfView.d.ts.map +1 -0
- package/lib/typescript/src/Icon/Icon.d.ts +5 -0
- package/lib/typescript/src/Icon/Icon.d.ts.map +1 -0
- package/lib/typescript/src/Icon/icons/AirPlane.d.ts +9 -0
- package/lib/typescript/src/Icon/icons/AirPlane.d.ts.map +1 -0
- package/lib/typescript/src/Icon/icons/ArrowBackAlt.d.ts +9 -0
- package/lib/typescript/src/Icon/icons/ArrowBackAlt.d.ts.map +1 -0
- package/lib/typescript/src/Icon/icons/ArrowDown.d.ts +9 -0
- package/lib/typescript/src/Icon/icons/ArrowDown.d.ts.map +1 -0
- package/lib/typescript/src/Icon/icons/ArrowForwardAlt.d.ts +9 -0
- package/lib/typescript/src/Icon/icons/ArrowForwardAlt.d.ts.map +1 -0
- package/lib/typescript/src/Icon/icons/ArrowLeft.d.ts +9 -0
- package/lib/typescript/src/Icon/icons/ArrowLeft.d.ts.map +1 -0
- package/lib/typescript/src/Icon/icons/ArrowRight.d.ts +9 -0
- package/lib/typescript/src/Icon/icons/ArrowRight.d.ts.map +1 -0
- package/lib/typescript/src/Icon/icons/ArrowUp.d.ts +9 -0
- package/lib/typescript/src/Icon/icons/ArrowUp.d.ts.map +1 -0
- package/lib/typescript/src/Icon/icons/Calendar.d.ts +9 -0
- package/lib/typescript/src/Icon/icons/Calendar.d.ts.map +1 -0
- package/lib/typescript/src/Icon/icons/Camera.d.ts +9 -0
- package/lib/typescript/src/Icon/icons/Camera.d.ts.map +1 -0
- package/lib/typescript/src/Icon/icons/Check.d.ts +6 -0
- package/lib/typescript/src/Icon/icons/Check.d.ts.map +1 -0
- package/lib/typescript/src/Icon/icons/Document.d.ts +9 -0
- package/lib/typescript/src/Icon/icons/Document.d.ts.map +1 -0
- package/lib/typescript/src/Icon/icons/Download.d.ts +9 -0
- package/lib/typescript/src/Icon/icons/Download.d.ts.map +1 -0
- package/lib/typescript/src/Icon/icons/ExlmationMark.d.ts +9 -0
- package/lib/typescript/src/Icon/icons/ExlmationMark.d.ts.map +1 -0
- package/lib/typescript/src/Icon/icons/Eye.d.ts +9 -0
- package/lib/typescript/src/Icon/icons/Eye.d.ts.map +1 -0
- package/lib/typescript/src/Icon/icons/EyeOpen.d.ts +9 -0
- package/lib/typescript/src/Icon/icons/EyeOpen.d.ts.map +1 -0
- package/lib/typescript/src/Icon/icons/Filter.d.ts +9 -0
- package/lib/typescript/src/Icon/icons/Filter.d.ts.map +1 -0
- package/lib/typescript/src/Icon/icons/Home.d.ts +2 -0
- package/lib/typescript/src/Icon/icons/Home.d.ts.map +1 -0
- package/lib/typescript/src/Icon/icons/Image.d.ts +9 -0
- package/lib/typescript/src/Icon/icons/Image.d.ts.map +1 -0
- package/lib/typescript/src/Icon/icons/Pdf.d.ts +9 -0
- package/lib/typescript/src/Icon/icons/Pdf.d.ts.map +1 -0
- package/lib/typescript/src/Icon/icons/RadioButton.d.ts +9 -0
- package/lib/typescript/src/Icon/icons/RadioButton.d.ts.map +1 -0
- package/lib/typescript/src/Icon/icons/Search.d.ts +9 -0
- package/lib/typescript/src/Icon/icons/Search.d.ts.map +1 -0
- package/lib/typescript/src/Icon/icons/StickyNote.d.ts +9 -0
- package/lib/typescript/src/Icon/icons/StickyNote.d.ts.map +1 -0
- package/lib/typescript/src/Icon/icons/Times.d.ts +9 -0
- package/lib/typescript/src/Icon/icons/Times.d.ts.map +1 -0
- package/lib/typescript/src/Icon/icons/User.d.ts +9 -0
- package/lib/typescript/src/Icon/icons/User.d.ts.map +1 -0
- package/lib/typescript/src/Icon/icons/XCircle.d.ts +9 -0
- package/lib/typescript/src/Icon/icons/XCircle.d.ts.map +1 -0
- package/lib/typescript/src/Icon/index.d.ts +5 -0
- package/lib/typescript/src/Icon/index.d.ts.map +1 -0
- package/lib/typescript/src/Icon/type.d.ts +9 -0
- package/lib/typescript/src/Icon/type.d.ts.map +1 -0
- package/lib/typescript/src/Input/Input.d.ts +5 -0
- package/lib/typescript/src/Input/Input.d.ts.map +1 -0
- package/lib/typescript/src/Input/InputFile.d.ts +11 -0
- package/lib/typescript/src/Input/InputFile.d.ts.map +1 -0
- package/lib/typescript/src/Input/InputMonth.d.ts +2 -0
- package/lib/typescript/src/Input/InputMonth.d.ts.map +1 -0
- package/lib/typescript/src/Input/InputNumber.d.ts +1 -0
- package/lib/typescript/src/Input/InputNumber.d.ts.map +1 -0
- package/lib/typescript/src/Input/InputOtp.d.ts +11 -0
- package/lib/typescript/src/Input/InputOtp.d.ts.map +1 -0
- package/lib/typescript/src/Input/InputPassword.d.ts +15 -0
- package/lib/typescript/src/Input/InputPassword.d.ts.map +1 -0
- package/lib/typescript/src/Input/InputSelect.d.ts +2 -0
- package/lib/typescript/src/Input/InputSelect.d.ts.map +1 -0
- package/lib/typescript/src/Input/Switch.d.ts +12 -0
- package/lib/typescript/src/Input/Switch.d.ts.map +1 -0
- package/lib/typescript/src/Input/TextArea.d.ts +3 -0
- package/lib/typescript/src/Input/TextArea.d.ts.map +1 -0
- package/lib/typescript/src/Input/type.d.ts +18 -0
- package/lib/typescript/src/Input/type.d.ts.map +1 -0
- package/lib/typescript/src/Label/Label.d.ts +12 -0
- package/lib/typescript/src/Label/Label.d.ts.map +1 -0
- package/lib/typescript/src/LabelForm/LabelForm.d.ts +4 -0
- package/lib/typescript/src/LabelForm/LabelForm.d.ts.map +1 -0
- package/lib/typescript/src/List/List.d.ts +3 -0
- package/lib/typescript/src/List/List.d.ts.map +1 -0
- package/lib/typescript/src/List/ListItem.d.ts +3 -0
- package/lib/typescript/src/List/ListItem.d.ts.map +1 -0
- package/lib/typescript/src/List/type.d.ts +14 -0
- package/lib/typescript/src/List/type.d.ts.map +1 -0
- package/lib/typescript/src/Loading/Loading.d.ts +10 -0
- package/lib/typescript/src/Loading/Loading.d.ts.map +1 -0
- package/lib/typescript/src/Modal/Modal.d.ts +18 -0
- package/lib/typescript/src/Modal/Modal.d.ts.map +1 -0
- package/lib/typescript/src/NativeRnKit.d.ts +7 -0
- package/lib/typescript/src/NativeRnKit.d.ts.map +1 -0
- package/lib/typescript/src/Provider/FooterProvider.d.ts +11 -0
- package/lib/typescript/src/Provider/FooterProvider.d.ts.map +1 -0
- package/lib/typescript/src/Provider/LayoutWithFooter.d.ts +5 -0
- package/lib/typescript/src/Provider/LayoutWithFooter.d.ts.map +1 -0
- package/lib/typescript/src/Provider/Provider.d.ts +15 -0
- package/lib/typescript/src/Provider/Provider.d.ts.map +1 -0
- package/lib/typescript/src/Provider/RequiredUpdateAppsProvider.d.ts +3 -0
- package/lib/typescript/src/Provider/RequiredUpdateAppsProvider.d.ts.map +1 -0
- package/lib/typescript/src/Provider/type.d.ts +7 -0
- package/lib/typescript/src/Provider/type.d.ts.map +1 -0
- package/lib/typescript/src/RadioButton/RadioButton.d.ts +15 -0
- package/lib/typescript/src/RadioButton/RadioButton.d.ts.map +1 -0
- package/lib/typescript/src/Select/Select.d.ts +3 -0
- package/lib/typescript/src/Select/Select.d.ts.map +1 -0
- package/lib/typescript/src/Select/type.d.ts +24 -0
- package/lib/typescript/src/Select/type.d.ts.map +1 -0
- package/lib/typescript/src/Step/Step.d.ts +4 -0
- package/lib/typescript/src/Step/Step.d.ts.map +1 -0
- package/lib/typescript/src/Step/StepItem.d.ts +4 -0
- package/lib/typescript/src/Step/StepItem.d.ts.map +1 -0
- package/lib/typescript/src/Step/type.d.ts +18 -0
- package/lib/typescript/src/Step/type.d.ts.map +1 -0
- package/lib/typescript/src/SwitchButton/SwitchButton.d.ts +2 -0
- package/lib/typescript/src/SwitchButton/SwitchButton.d.ts.map +1 -0
- package/lib/typescript/src/TextArea/TextArea.d.ts +1 -0
- package/lib/typescript/src/TextArea/TextArea.d.ts.map +1 -0
- package/lib/typescript/src/Theme/Theme.d.ts +29 -0
- package/lib/typescript/src/Theme/Theme.d.ts.map +1 -0
- package/lib/typescript/src/Timeline/Timeline.d.ts +6 -0
- package/lib/typescript/src/Timeline/Timeline.d.ts.map +1 -0
- package/lib/typescript/src/Timeline/TimelineItem.d.ts +15 -0
- package/lib/typescript/src/Timeline/TimelineItem.d.ts.map +1 -0
- package/lib/typescript/src/Toast/Toast.d.ts +14 -0
- package/lib/typescript/src/Toast/Toast.d.ts.map +1 -0
- package/lib/typescript/src/Toast/ToastContext.d.ts +17 -0
- package/lib/typescript/src/Toast/ToastContext.d.ts.map +1 -0
- package/lib/typescript/src/Typography/Typography.d.ts +5 -0
- package/lib/typescript/src/Typography/Typography.d.ts.map +1 -0
- package/lib/typescript/src/Typography/type.d.ts +19 -0
- package/lib/typescript/src/Typography/type.d.ts.map +1 -0
- package/lib/typescript/src/Ui/Card.d.ts +11 -0
- package/lib/typescript/src/Ui/Card.d.ts.map +1 -0
- package/lib/typescript/src/Ui/Center.d.ts +9 -0
- package/lib/typescript/src/Ui/Center.d.ts.map +1 -0
- package/lib/typescript/src/Ui/Col.d.ts +10 -0
- package/lib/typescript/src/Ui/Col.d.ts.map +1 -0
- package/lib/typescript/src/Ui/Container.d.ts +2 -0
- package/lib/typescript/src/Ui/Container.d.ts.map +1 -0
- package/lib/typescript/src/Ui/Devider.d.ts +3 -0
- package/lib/typescript/src/Ui/Devider.d.ts.map +1 -0
- package/lib/typescript/src/Ui/Footer.d.ts +9 -0
- package/lib/typescript/src/Ui/Footer.d.ts.map +1 -0
- package/lib/typescript/src/Ui/Gap.d.ts +6 -0
- package/lib/typescript/src/Ui/Gap.d.ts.map +1 -0
- package/lib/typescript/src/Ui/Grid.d.ts +9 -0
- package/lib/typescript/src/Ui/Grid.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +59 -0
- package/lib/typescript/src/index.d.ts.map +1 -0
- package/package.json +172 -0
- package/src/Accordion/Accordion.tsx +38 -0
- package/src/Accordion/AccordionItem.tsx +9 -0
- package/src/Accordion/README.md +48 -0
- package/src/Accordion/type.tsx +19 -0
- package/src/Alert/Alert.tsx +141 -0
- package/src/Alert/README.md +68 -0
- package/src/Avatar/Avatar.tsx +68 -0
- package/src/Avatar/AvatarGroup.tsx +135 -0
- package/src/Avatar/README_AVATAR.md +57 -0
- package/src/Avatar/README_AVATARGROUP.md +58 -0
- package/src/Avatar/type.tsx +17 -0
- package/src/Badge/Badge.tsx +135 -0
- package/src/Badge/README.md +64 -0
- package/src/Badge/type.tsx +0 -0
- package/src/BottomSheet/BottomSheet.tsx +259 -0
- package/src/BottomSheet/README.md +64 -0
- package/src/BottomSheet/type.tsx +15 -0
- package/src/Button/Button.tsx +195 -0
- package/src/Button/README.md +94 -0
- package/src/Button/type.tsx +329 -0
- package/src/Calendar/Calendar.tsx +382 -0
- package/src/Calendar/CalendarPropsType.tsx +60 -0
- package/src/Calendar/README.md +73 -0
- package/src/CheckBox/CheckBox.tsx +80 -0
- package/src/CheckBox/CheckBoxList.tsx +64 -0
- package/src/CheckBox/README_CHECKBOX.md +46 -0
- package/src/CheckBox/README_CHECKBOXLIST.md +41 -0
- package/src/Chip/Chip.tsx +134 -0
- package/src/Chip/ChipItem.tsx +124 -0
- package/src/Chip/README.md +89 -0
- package/src/Chip/type.tsx +152 -0
- package/src/Color/Color.tsx +133 -0
- package/src/Color/README.md +54 -0
- package/src/Color/type.tsx +9 -0
- package/src/DatePicker/DatePicker.tsx +78 -0
- package/src/DatePicker/MonthPicker.tsx +204 -0
- package/src/DatePicker/README.md +51 -0
- package/src/DatePicker/TimePicker.tsx +234 -0
- package/src/DatePicker/YearPicker.tsx +238 -0
- package/src/DatePicker/helpers.tsx +53 -0
- package/src/Drawing/Drawing.tsx +23 -0
- package/src/DropDown/DropDown.tsx +136 -0
- package/src/DropDown/type.tsx +9 -0
- package/src/FileView/Image.tsx +5 -0
- package/src/FileView/PdfView.tsx +33 -0
- package/src/Icon/Icon.tsx +76 -0
- package/src/Icon/icons/AirPlane.tsx +19 -0
- package/src/Icon/icons/ArrowBackAlt.tsx +23 -0
- package/src/Icon/icons/ArrowDown.tsx +19 -0
- package/src/Icon/icons/ArrowForwardAlt.tsx +23 -0
- package/src/Icon/icons/ArrowLeft.tsx +19 -0
- package/src/Icon/icons/ArrowRight.tsx +19 -0
- package/src/Icon/icons/ArrowUp.tsx +19 -0
- package/src/Icon/icons/Calendar.tsx +19 -0
- package/src/Icon/icons/Camera.tsx +19 -0
- package/src/Icon/icons/Check.tsx +15 -0
- package/src/Icon/icons/Document.tsx +19 -0
- package/src/Icon/icons/Download.tsx +19 -0
- package/src/Icon/icons/ExlmationMark.tsx +23 -0
- package/src/Icon/icons/Eye.tsx +19 -0
- package/src/Icon/icons/EyeOpen.tsx +19 -0
- package/src/Icon/icons/Filter.tsx +19 -0
- package/src/Icon/icons/Home.tsx +5 -0
- package/src/Icon/icons/Image.tsx +19 -0
- package/src/Icon/icons/Pdf.tsx +19 -0
- package/src/Icon/icons/RadioButton.tsx +22 -0
- package/src/Icon/icons/Search.tsx +19 -0
- package/src/Icon/icons/StickyNote.tsx +19 -0
- package/src/Icon/icons/Times.tsx +19 -0
- package/src/Icon/icons/User.tsx +19 -0
- package/src/Icon/icons/XCircle.tsx +19 -0
- package/src/Icon/index.tsx +5 -0
- package/src/Icon/type.tsx +37 -0
- package/src/Input/Input.md +51 -0
- package/src/Input/Input.tsx +134 -0
- package/src/Input/InputFile.tsx +320 -0
- package/src/Input/InputMonth.tsx +1 -0
- package/src/Input/InputNumber.tsx +0 -0
- package/src/Input/InputOtp.tsx +96 -0
- package/src/Input/InputPassword.tsx +31 -0
- package/src/Input/InputSelect.tsx +5 -0
- package/src/Input/Switch.tsx +111 -0
- package/src/Input/TextArea.tsx +67 -0
- package/src/Input/assets/Ilustrasi.svg +14 -0
- package/src/Input/assets/input-file.png +0 -0
- package/src/Input/type.tsx +19 -0
- package/src/Label/Label.tsx +119 -0
- package/src/LabelForm/LabelForm.tsx +12 -0
- package/src/List/List.tsx +31 -0
- package/src/List/ListItem.tsx +34 -0
- package/src/List/type.tsx +14 -0
- package/src/Loading/Loading.tsx +56 -0
- package/src/Modal/Modal.tsx +179 -0
- package/src/NativeRnKit.ts +8 -0
- package/src/Provider/FooterProvider.tsx +26 -0
- package/src/Provider/LayoutWithFooter.tsx +27 -0
- package/src/Provider/Provider.tsx +53 -0
- package/src/Provider/RequiredUpdateAppsProvider.tsx +58 -0
- package/src/Provider/type.tsx +6 -0
- package/src/RadioButton/README.md +43 -0
- package/src/RadioButton/RadioButton.tsx +119 -0
- package/src/Select/README.md +78 -0
- package/src/Select/README_Select.md +78 -0
- package/src/Select/Select.tsx +115 -0
- package/src/Select/type.tsx +30 -0
- package/src/Step/Step.tsx +92 -0
- package/src/Step/StepItem.tsx +86 -0
- package/src/Step/type.tsx +18 -0
- package/src/SwitchButton/SwitchButton.tsx +5 -0
- package/src/TextArea/TextArea.tsx +0 -0
- package/src/Theme/Theme.tsx +28 -0
- package/src/Timeline/Timeline.tsx +9 -0
- package/src/Timeline/TimelineItem.tsx +63 -0
- package/src/Toast/Toast.tsx +179 -0
- package/src/Toast/ToastContext.tsx +51 -0
- package/src/Typography/README.md +71 -0
- package/src/Typography/Typography.tsx +44 -0
- package/src/Typography/type.tsx +60 -0
- package/src/Ui/Card.tsx +70 -0
- package/src/Ui/Center.tsx +20 -0
- package/src/Ui/Col.tsx +17 -0
- package/src/Ui/Container.tsx +12 -0
- package/src/Ui/Devider.tsx +15 -0
- package/src/Ui/Footer.tsx +37 -0
- package/src/Ui/Gap.tsx +8 -0
- package/src/Ui/Grid.tsx +36 -0
- package/src/index.tsx +68 -0
|
@@ -0,0 +1,320 @@
|
|
|
1
|
+
import { Image, StyleSheet, TouchableOpacity, View } from 'react-native';
|
|
2
|
+
import Button from '../Button/Button';
|
|
3
|
+
import Color from '../Color/Color';
|
|
4
|
+
import Card from '../Ui/Card';
|
|
5
|
+
import Center from '../Ui/Center';
|
|
6
|
+
import Typography from '../Typography/Typography';
|
|
7
|
+
import BottomSheet from '../BottomSheet/BottomSheet';
|
|
8
|
+
import { useState } from 'react';
|
|
9
|
+
import List from '../List/List';
|
|
10
|
+
import ListItem from '../List/ListItem';
|
|
11
|
+
|
|
12
|
+
import { pick } from '@react-native-documents/picker';
|
|
13
|
+
import { viewDocument } from '@react-native-documents/viewer';
|
|
14
|
+
import { launchCamera, launchImageLibrary } from 'react-native-image-picker';
|
|
15
|
+
import Icon from '../Icon';
|
|
16
|
+
|
|
17
|
+
type InputFileProps = {
|
|
18
|
+
title?: string;
|
|
19
|
+
description?: string;
|
|
20
|
+
maxFileSize?: number;
|
|
21
|
+
accept?: string[];
|
|
22
|
+
multiple?: boolean;
|
|
23
|
+
onChange?: (files: any[]) => void;
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
export default function InputFile({
|
|
27
|
+
title = 'Upload File',
|
|
28
|
+
description = 'File harus berformat JPG, PNG dan PDF',
|
|
29
|
+
maxFileSize = 5,
|
|
30
|
+
accept = ['application/pdf', 'image/jpeg', 'image/png'],
|
|
31
|
+
multiple = false,
|
|
32
|
+
onChange,
|
|
33
|
+
}: InputFileProps) {
|
|
34
|
+
const [isOpenBottomSheetTypeFile, setIsOpenBottomSheetTypeFile] =
|
|
35
|
+
useState(false);
|
|
36
|
+
const [isOpenBottomSheetDeleteFile, setIsOpenBottomSheetDeleteFile] =
|
|
37
|
+
useState(false);
|
|
38
|
+
const [files, setFiles] = useState<any[]>([]);
|
|
39
|
+
const [selectedFileIndex, setSelectedFileIndex] = useState<number | null>(
|
|
40
|
+
null
|
|
41
|
+
);
|
|
42
|
+
|
|
43
|
+
const handleOnPresChoseFile = () => {
|
|
44
|
+
setIsOpenBottomSheetTypeFile(true);
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
const handlePickFile = async () => {
|
|
48
|
+
try {
|
|
49
|
+
const result = await pick({ type: accept, multiple });
|
|
50
|
+
const pickedFiles = multiple ? result : [result[0]];
|
|
51
|
+
const newFiles = [...files, ...pickedFiles];
|
|
52
|
+
setFiles(newFiles);
|
|
53
|
+
onChange?.(newFiles);
|
|
54
|
+
setIsOpenBottomSheetTypeFile(false);
|
|
55
|
+
} catch (error: any) {
|
|
56
|
+
if (error?.message?.toLowerCase().includes('user canceled')) return;
|
|
57
|
+
console.error('Failed to pick document:', error);
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
const handlePreviewFile = (file: any) => {
|
|
62
|
+
if (file?.uri) {
|
|
63
|
+
viewDocument(file.uri);
|
|
64
|
+
}
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
const handleOnPressButtonCamera = async () => {
|
|
68
|
+
try {
|
|
69
|
+
const result = await launchCamera({ mediaType: 'photo' });
|
|
70
|
+
if (result.didCancel || !result.assets) return;
|
|
71
|
+
const newFiles = [...files, result.assets[0]];
|
|
72
|
+
setFiles(newFiles);
|
|
73
|
+
onChange?.(newFiles);
|
|
74
|
+
setIsOpenBottomSheetTypeFile(false);
|
|
75
|
+
} catch (error: any) {
|
|
76
|
+
console.error('Failed to open camera:', error);
|
|
77
|
+
}
|
|
78
|
+
};
|
|
79
|
+
|
|
80
|
+
const handleOnPressButtonGallery = async () => {
|
|
81
|
+
try {
|
|
82
|
+
const result = await launchImageLibrary({
|
|
83
|
+
mediaType: 'photo',
|
|
84
|
+
selectionLimit: multiple ? 0 : 1,
|
|
85
|
+
});
|
|
86
|
+
if (result.didCancel || !result.assets) return;
|
|
87
|
+
const newFiles = [...files, ...result.assets];
|
|
88
|
+
setFiles(newFiles);
|
|
89
|
+
onChange?.(newFiles);
|
|
90
|
+
setIsOpenBottomSheetTypeFile(false);
|
|
91
|
+
} catch (error: any) {
|
|
92
|
+
console.error('Failed to open gallery:', error);
|
|
93
|
+
}
|
|
94
|
+
};
|
|
95
|
+
|
|
96
|
+
const confirmDeleteFile = (index: number) => {
|
|
97
|
+
setSelectedFileIndex(index);
|
|
98
|
+
setIsOpenBottomSheetDeleteFile(true);
|
|
99
|
+
};
|
|
100
|
+
|
|
101
|
+
const deleteFile = () => {
|
|
102
|
+
if (selectedFileIndex !== null) {
|
|
103
|
+
const newFiles = files.filter((_, i) => i !== selectedFileIndex);
|
|
104
|
+
setFiles(newFiles);
|
|
105
|
+
onChange?.(newFiles);
|
|
106
|
+
setSelectedFileIndex(null);
|
|
107
|
+
}
|
|
108
|
+
setIsOpenBottomSheetDeleteFile(false);
|
|
109
|
+
};
|
|
110
|
+
|
|
111
|
+
return (
|
|
112
|
+
<View style={styles.wrapper}>
|
|
113
|
+
<Card style={styles.containerInput}>
|
|
114
|
+
<Center style={styles.centerInput}>
|
|
115
|
+
<Image source={require('./assets/input-file.png')} />
|
|
116
|
+
<Typography variant="t1" weight="semibold" color={Color.gray[500]}>
|
|
117
|
+
{title}
|
|
118
|
+
</Typography>
|
|
119
|
+
<Typography variant="t3" weight="regular" color={Color.gray[500]}>
|
|
120
|
+
{description}
|
|
121
|
+
</Typography>
|
|
122
|
+
<Button
|
|
123
|
+
color="primary"
|
|
124
|
+
title="Choose File"
|
|
125
|
+
onPress={handleOnPresChoseFile}
|
|
126
|
+
/>
|
|
127
|
+
</Center>
|
|
128
|
+
</Card>
|
|
129
|
+
|
|
130
|
+
{files.map((file, index) => (
|
|
131
|
+
<Card key={index}>
|
|
132
|
+
<TouchableOpacity onPress={() => handlePreviewFile(file)}>
|
|
133
|
+
<View style={styles.containerPreview}>
|
|
134
|
+
<View style={styles.containerListItem}>
|
|
135
|
+
<Image
|
|
136
|
+
source={
|
|
137
|
+
file.uri?.endsWith('.pdf')
|
|
138
|
+
? require('../Input/assets/input-file.png')
|
|
139
|
+
: { uri: file.uri }
|
|
140
|
+
}
|
|
141
|
+
style={styles.previewImage}
|
|
142
|
+
/>
|
|
143
|
+
<View style={styles.fileDetails}>
|
|
144
|
+
<Typography
|
|
145
|
+
variant="t1"
|
|
146
|
+
weight="semibold"
|
|
147
|
+
color={Color.gray[600]}
|
|
148
|
+
>
|
|
149
|
+
{file.name || `Image_${index + 1}`}
|
|
150
|
+
</Typography>
|
|
151
|
+
<Typography
|
|
152
|
+
variant="t2"
|
|
153
|
+
weight="regular"
|
|
154
|
+
color={Color.gray[600]}
|
|
155
|
+
>
|
|
156
|
+
{(file.size / (1024 * 1024)).toFixed(2)} MB
|
|
157
|
+
</Typography>
|
|
158
|
+
</View>
|
|
159
|
+
</View>
|
|
160
|
+
<Button
|
|
161
|
+
variant="tertiary"
|
|
162
|
+
title="X"
|
|
163
|
+
onPress={() => confirmDeleteFile(index)}
|
|
164
|
+
/>
|
|
165
|
+
</View>
|
|
166
|
+
</TouchableOpacity>
|
|
167
|
+
</Card>
|
|
168
|
+
))}
|
|
169
|
+
|
|
170
|
+
<BottomSheet
|
|
171
|
+
isOpen={isOpenBottomSheetTypeFile}
|
|
172
|
+
onClose={() => setIsOpenBottomSheetTypeFile(false)}
|
|
173
|
+
>
|
|
174
|
+
<View style={styles.bottomSheetContent}>
|
|
175
|
+
<Center style={styles.bottomSheetCenter}>
|
|
176
|
+
<Typography variant="p2" weight="semibold" color={Color.gray[800]}>
|
|
177
|
+
Upload Dokumen
|
|
178
|
+
</Typography>
|
|
179
|
+
<Typography variant="t1" weight="regular" color={Color.gray[800]}>
|
|
180
|
+
Unggah dokumen maksimal {maxFileSize}MB
|
|
181
|
+
</Typography>
|
|
182
|
+
</Center>
|
|
183
|
+
<List>
|
|
184
|
+
<ListItem>
|
|
185
|
+
<TouchableOpacity onPress={handleOnPressButtonCamera}>
|
|
186
|
+
<View style={styles.containerListItem}>
|
|
187
|
+
<Icon name="Camera" color={Color.primary[1000]} />
|
|
188
|
+
<View>
|
|
189
|
+
<Typography
|
|
190
|
+
variant="t2"
|
|
191
|
+
weight="semibold"
|
|
192
|
+
color={Color.gray[800]}
|
|
193
|
+
>
|
|
194
|
+
Ambil Foto
|
|
195
|
+
</Typography>
|
|
196
|
+
<Typography variant="t2" color={Color.gray[600]}>
|
|
197
|
+
Langsung ambil gambar dari kamera
|
|
198
|
+
</Typography>
|
|
199
|
+
</View>
|
|
200
|
+
</View>
|
|
201
|
+
</TouchableOpacity>
|
|
202
|
+
</ListItem>
|
|
203
|
+
<ListItem>
|
|
204
|
+
<TouchableOpacity onPress={handleOnPressButtonGallery}>
|
|
205
|
+
<View style={styles.containerListItem}>
|
|
206
|
+
<Icon name="Image" color={Color.primary[1000]} />
|
|
207
|
+
<View>
|
|
208
|
+
<Typography
|
|
209
|
+
variant="t2"
|
|
210
|
+
weight="semibold"
|
|
211
|
+
color={Color.gray[800]}
|
|
212
|
+
>
|
|
213
|
+
Pilih dari Galeri
|
|
214
|
+
</Typography>
|
|
215
|
+
<Typography variant="t2" color={Color.gray[600]}>
|
|
216
|
+
Cari gambar dari galeri perangkatmu
|
|
217
|
+
</Typography>
|
|
218
|
+
</View>
|
|
219
|
+
</View>
|
|
220
|
+
</TouchableOpacity>
|
|
221
|
+
</ListItem>
|
|
222
|
+
<ListItem>
|
|
223
|
+
<TouchableOpacity onPress={handlePickFile}>
|
|
224
|
+
<View style={styles.containerListItem}>
|
|
225
|
+
<Icon name="Document" color={Color.primary[1000]} />
|
|
226
|
+
<View>
|
|
227
|
+
<Typography
|
|
228
|
+
variant="t2"
|
|
229
|
+
weight="semibold"
|
|
230
|
+
color={Color.gray[800]}
|
|
231
|
+
>
|
|
232
|
+
Pilih dari Dokumen
|
|
233
|
+
</Typography>
|
|
234
|
+
<Typography variant="t2" color={Color.gray[600]}>
|
|
235
|
+
Cari file dari penyimpanan dokumen
|
|
236
|
+
</Typography>
|
|
237
|
+
</View>
|
|
238
|
+
</View>
|
|
239
|
+
</TouchableOpacity>
|
|
240
|
+
</ListItem>
|
|
241
|
+
</List>
|
|
242
|
+
</View>
|
|
243
|
+
</BottomSheet>
|
|
244
|
+
|
|
245
|
+
<BottomSheet
|
|
246
|
+
isOpen={isOpenBottomSheetDeleteFile}
|
|
247
|
+
onClose={() => setIsOpenBottomSheetDeleteFile(false)}
|
|
248
|
+
>
|
|
249
|
+
<View style={styles.deleteFileContent}>
|
|
250
|
+
<Center style={styles.deleteFileCenter}>
|
|
251
|
+
<Typography variant="p2" weight="semibold" color={Color.gray[800]}>
|
|
252
|
+
Hapus Dokumen
|
|
253
|
+
</Typography>
|
|
254
|
+
<Typography variant="t1" weight="regular" color={Color.gray[500]}>
|
|
255
|
+
Apakah kamu akan menghapus dokumen yang dipilih?
|
|
256
|
+
</Typography>
|
|
257
|
+
</Center>
|
|
258
|
+
<View>
|
|
259
|
+
<Button
|
|
260
|
+
color="danger"
|
|
261
|
+
title="Ya, Hapus File"
|
|
262
|
+
onPress={deleteFile}
|
|
263
|
+
/>
|
|
264
|
+
<Button
|
|
265
|
+
color="primary"
|
|
266
|
+
variant="tertiary"
|
|
267
|
+
title="Batal"
|
|
268
|
+
onPress={() => setIsOpenBottomSheetDeleteFile(false)}
|
|
269
|
+
/>
|
|
270
|
+
</View>
|
|
271
|
+
</View>
|
|
272
|
+
</BottomSheet>
|
|
273
|
+
</View>
|
|
274
|
+
);
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
const styles = StyleSheet.create({
|
|
278
|
+
wrapper: {
|
|
279
|
+
gap: 12,
|
|
280
|
+
},
|
|
281
|
+
containerInput: {
|
|
282
|
+
borderStyle: 'dashed',
|
|
283
|
+
backgroundColor: Color.gray[100],
|
|
284
|
+
},
|
|
285
|
+
centerInput: {
|
|
286
|
+
gap: 14,
|
|
287
|
+
},
|
|
288
|
+
containerPreview: {
|
|
289
|
+
flexDirection: 'row',
|
|
290
|
+
justifyContent: 'space-between',
|
|
291
|
+
alignItems: 'center',
|
|
292
|
+
gap: 8,
|
|
293
|
+
},
|
|
294
|
+
previewImage: {
|
|
295
|
+
width: 44,
|
|
296
|
+
height: 44,
|
|
297
|
+
borderRadius: 6,
|
|
298
|
+
},
|
|
299
|
+
fileDetails: {
|
|
300
|
+
justifyContent: 'center',
|
|
301
|
+
gap: 8,
|
|
302
|
+
},
|
|
303
|
+
containerListItem: {
|
|
304
|
+
flexDirection: 'row',
|
|
305
|
+
gap: 8,
|
|
306
|
+
},
|
|
307
|
+
bottomSheetContent: {
|
|
308
|
+
gap: 16,
|
|
309
|
+
},
|
|
310
|
+
bottomSheetCenter: {
|
|
311
|
+
alignItems: 'center',
|
|
312
|
+
},
|
|
313
|
+
deleteFileContent: {
|
|
314
|
+
gap: 10,
|
|
315
|
+
},
|
|
316
|
+
deleteFileCenter: {
|
|
317
|
+
alignItems: 'center',
|
|
318
|
+
gap: 4,
|
|
319
|
+
},
|
|
320
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function InputMonth() {}
|
|
File without changes
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import React, { useRef } from 'react';
|
|
2
|
+
import { View, TextInput, StyleSheet } from 'react-native';
|
|
3
|
+
import Color from '../Color/Color';
|
|
4
|
+
import LabelForm from '../LabelForm/LabelForm';
|
|
5
|
+
import Typography from '../Typography/Typography';
|
|
6
|
+
|
|
7
|
+
type InputOtpProps = {
|
|
8
|
+
length?: number;
|
|
9
|
+
onChange?: (otp: string) => void;
|
|
10
|
+
label?: string;
|
|
11
|
+
hint?: string;
|
|
12
|
+
hasError?: boolean;
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
const InputOtp: React.FC<InputOtpProps> = ({
|
|
16
|
+
length = 6,
|
|
17
|
+
onChange,
|
|
18
|
+
label,
|
|
19
|
+
hint,
|
|
20
|
+
hasError,
|
|
21
|
+
}) => {
|
|
22
|
+
const inputs = useRef<Array<TextInput | null>>([]);
|
|
23
|
+
const values = useRef<string[]>(Array(length).fill(''));
|
|
24
|
+
|
|
25
|
+
const handleChange = (text: string, index: number) => {
|
|
26
|
+
values.current[index] = text;
|
|
27
|
+
onChange?.(values.current.join(''));
|
|
28
|
+
|
|
29
|
+
if (text && index < length - 1) {
|
|
30
|
+
inputs.current[index + 1]?.focus();
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
const handleKeyPress = (e: any, index: number) => {
|
|
35
|
+
if (
|
|
36
|
+
e.nativeEvent.key === 'Backspace' &&
|
|
37
|
+
!values.current[index] &&
|
|
38
|
+
index > 0
|
|
39
|
+
) {
|
|
40
|
+
inputs.current[index - 1]?.focus();
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
return (
|
|
45
|
+
<View style={styles.gap4}>
|
|
46
|
+
{label ? <LabelForm title={label} /> : null}
|
|
47
|
+
<View style={styles.container}>
|
|
48
|
+
{Array(length)
|
|
49
|
+
.fill(0)
|
|
50
|
+
.map((_, i) => (
|
|
51
|
+
<TextInput
|
|
52
|
+
key={i}
|
|
53
|
+
style={[
|
|
54
|
+
styles.input,
|
|
55
|
+
{ borderColor: hasError ? Color.danger[500] : Color.gray[200] },
|
|
56
|
+
]}
|
|
57
|
+
keyboardType="number-pad"
|
|
58
|
+
maxLength={1}
|
|
59
|
+
onChangeText={(text) => handleChange(text, i)}
|
|
60
|
+
onKeyPress={(e) => handleKeyPress(e, i)}
|
|
61
|
+
ref={(ref) => void (inputs.current[i] = ref)}
|
|
62
|
+
/>
|
|
63
|
+
))}
|
|
64
|
+
</View>
|
|
65
|
+
|
|
66
|
+
{hint ? (
|
|
67
|
+
<Typography color={hasError ? Color.danger[500] : ''} variant="t2">
|
|
68
|
+
{hint}
|
|
69
|
+
</Typography>
|
|
70
|
+
) : null}
|
|
71
|
+
</View>
|
|
72
|
+
);
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
export default InputOtp;
|
|
76
|
+
|
|
77
|
+
const styles = StyleSheet.create({
|
|
78
|
+
gap4: {
|
|
79
|
+
gap: 4,
|
|
80
|
+
},
|
|
81
|
+
container: {
|
|
82
|
+
flexDirection: 'row',
|
|
83
|
+
gap: 10,
|
|
84
|
+
justifyContent: 'space-between',
|
|
85
|
+
},
|
|
86
|
+
input: {
|
|
87
|
+
width: 48,
|
|
88
|
+
height: 48,
|
|
89
|
+
borderWidth: 1,
|
|
90
|
+
borderRadius: 8,
|
|
91
|
+
textAlign: 'center',
|
|
92
|
+
color: Color.base.black100,
|
|
93
|
+
fontSize: 12,
|
|
94
|
+
fontWeight: 'medium',
|
|
95
|
+
},
|
|
96
|
+
});
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { useState } from 'react';
|
|
2
|
+
import { View } from 'react-native';
|
|
3
|
+
import Input from './Input';
|
|
4
|
+
import type { TextInputProps } from 'react-native';
|
|
5
|
+
import type { IconNameProps } from '../Icon/type';
|
|
6
|
+
|
|
7
|
+
interface InputPasswordProps extends TextInputProps {
|
|
8
|
+
icon?: IconNameProps;
|
|
9
|
+
iconRight?: IconNameProps;
|
|
10
|
+
clearButton?: boolean;
|
|
11
|
+
label?: string;
|
|
12
|
+
hint?: string;
|
|
13
|
+
hasError?: boolean;
|
|
14
|
+
onPressIconLeft?: () => void;
|
|
15
|
+
onPressIconRight?: () => void;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export default function InputPassword(props: InputPasswordProps) {
|
|
19
|
+
const [secureText, setSecureText] = useState(true);
|
|
20
|
+
|
|
21
|
+
return (
|
|
22
|
+
<View>
|
|
23
|
+
<Input
|
|
24
|
+
{...props}
|
|
25
|
+
iconRight={secureText ? 'Eye' : 'EyeOpen'}
|
|
26
|
+
secureTextEntry={secureText}
|
|
27
|
+
onPressIconRight={() => setSecureText(!secureText)}
|
|
28
|
+
/>
|
|
29
|
+
</View>
|
|
30
|
+
);
|
|
31
|
+
}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import { Animated, Pressable, StyleSheet, View, Easing } from 'react-native';
|
|
2
|
+
import { useEffect, useRef, useState } from 'react';
|
|
3
|
+
import LabelForm from '../LabelForm/LabelForm';
|
|
4
|
+
import Typography from '../Typography/Typography';
|
|
5
|
+
import Color from '../Color/Color';
|
|
6
|
+
|
|
7
|
+
interface SwitchProps {
|
|
8
|
+
label?: string;
|
|
9
|
+
dotColor?: string;
|
|
10
|
+
value?: boolean;
|
|
11
|
+
onChange?: (newValue: boolean) => void;
|
|
12
|
+
hint?: string;
|
|
13
|
+
hasError?: true;
|
|
14
|
+
disabled?: boolean;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export default function Switch({
|
|
18
|
+
label,
|
|
19
|
+
dotColor,
|
|
20
|
+
value: defaultValue = false,
|
|
21
|
+
onChange,
|
|
22
|
+
hint,
|
|
23
|
+
hasError,
|
|
24
|
+
disabled = false,
|
|
25
|
+
}: SwitchProps) {
|
|
26
|
+
const [value, setValue] = useState<boolean>(defaultValue);
|
|
27
|
+
const animValue = useRef(new Animated.Value(defaultValue ? 1 : 0)).current;
|
|
28
|
+
|
|
29
|
+
useEffect(() => {
|
|
30
|
+
Animated.timing(animValue, {
|
|
31
|
+
toValue: value ? 1 : 0,
|
|
32
|
+
duration: 200,
|
|
33
|
+
easing: Easing.out(Easing.circle),
|
|
34
|
+
useNativeDriver: false,
|
|
35
|
+
}).start();
|
|
36
|
+
}, [value, animValue]);
|
|
37
|
+
|
|
38
|
+
useEffect(() => {
|
|
39
|
+
setValue(defaultValue);
|
|
40
|
+
}, [defaultValue]);
|
|
41
|
+
|
|
42
|
+
const handlePress = () => {
|
|
43
|
+
if (disabled) return;
|
|
44
|
+
const newValue = !value;
|
|
45
|
+
setValue(newValue);
|
|
46
|
+
onChange?.(newValue);
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
const translateX = animValue.interpolate({
|
|
50
|
+
inputRange: [0, 1],
|
|
51
|
+
outputRange: [0, 16],
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
const backgroundColor =
|
|
55
|
+
disabled && value
|
|
56
|
+
? Color.primary[1000]
|
|
57
|
+
: disabled && !value
|
|
58
|
+
? Color.gray[200]
|
|
59
|
+
: value
|
|
60
|
+
? Color.primary[1000]
|
|
61
|
+
: Color.gray[300];
|
|
62
|
+
|
|
63
|
+
return (
|
|
64
|
+
<View style={{ gap: 4, opacity: disabled ? 0.5 : 1 }}>
|
|
65
|
+
{label ? <LabelForm title={label} /> : null}
|
|
66
|
+
|
|
67
|
+
<Pressable
|
|
68
|
+
style={styles.touchArea}
|
|
69
|
+
onPress={handlePress}
|
|
70
|
+
disabled={disabled}
|
|
71
|
+
>
|
|
72
|
+
<View style={[styles.track, { backgroundColor }]}>
|
|
73
|
+
<Animated.View
|
|
74
|
+
style={[
|
|
75
|
+
styles.circle,
|
|
76
|
+
{
|
|
77
|
+
transform: [{ translateX }],
|
|
78
|
+
backgroundColor: dotColor ? dotColor : Color.base.white100,
|
|
79
|
+
},
|
|
80
|
+
]}
|
|
81
|
+
/>
|
|
82
|
+
</View>
|
|
83
|
+
</Pressable>
|
|
84
|
+
|
|
85
|
+
{hint ? (
|
|
86
|
+
<Typography color={hasError ? Color.danger[500] : ''} variant="t2">
|
|
87
|
+
{hint}
|
|
88
|
+
</Typography>
|
|
89
|
+
) : null}
|
|
90
|
+
</View>
|
|
91
|
+
);
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
const styles = StyleSheet.create({
|
|
95
|
+
touchArea: {},
|
|
96
|
+
track: {
|
|
97
|
+
width: 36,
|
|
98
|
+
height: 20,
|
|
99
|
+
padding: 2,
|
|
100
|
+
borderRadius: 10,
|
|
101
|
+
justifyContent: 'center',
|
|
102
|
+
},
|
|
103
|
+
circle: {
|
|
104
|
+
width: 16,
|
|
105
|
+
height: 16,
|
|
106
|
+
borderRadius: 8,
|
|
107
|
+
position: 'absolute',
|
|
108
|
+
top: 2,
|
|
109
|
+
left: 2,
|
|
110
|
+
},
|
|
111
|
+
});
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { StyleSheet, TextInput, View } from 'react-native';
|
|
2
|
+
import LabelForm from '../LabelForm/LabelForm';
|
|
3
|
+
import Color from '../Color/Color';
|
|
4
|
+
import Typography from '../Typography/Typography';
|
|
5
|
+
import type { TextAreaProps } from './type';
|
|
6
|
+
|
|
7
|
+
export default function TextArea({
|
|
8
|
+
height = 116,
|
|
9
|
+
label,
|
|
10
|
+
hasError,
|
|
11
|
+
style,
|
|
12
|
+
hint,
|
|
13
|
+
onChangeText,
|
|
14
|
+
}: TextAreaProps) {
|
|
15
|
+
const handleOnChangeText = (value: string) => {
|
|
16
|
+
onChangeText?.(value);
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
return (
|
|
20
|
+
<View style={styles.gap}>
|
|
21
|
+
{label ? <LabelForm title={label} /> : null}
|
|
22
|
+
|
|
23
|
+
<View
|
|
24
|
+
style={[
|
|
25
|
+
styles.container,
|
|
26
|
+
{
|
|
27
|
+
borderColor: hasError ? Color.danger[500] : Color.gray[100],
|
|
28
|
+
height,
|
|
29
|
+
},
|
|
30
|
+
]}
|
|
31
|
+
>
|
|
32
|
+
<TextInput
|
|
33
|
+
onChangeText={handleOnChangeText}
|
|
34
|
+
editable
|
|
35
|
+
multiline
|
|
36
|
+
numberOfLines={14}
|
|
37
|
+
style={[styles.input, style]}
|
|
38
|
+
textAlignVertical="top"
|
|
39
|
+
/>
|
|
40
|
+
</View>
|
|
41
|
+
{hint ? (
|
|
42
|
+
<Typography color={hasError ? Color.danger[500] : ''} variant="t2">
|
|
43
|
+
{hint}
|
|
44
|
+
</Typography>
|
|
45
|
+
) : null}
|
|
46
|
+
</View>
|
|
47
|
+
);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
const styles = StyleSheet.create({
|
|
51
|
+
gap: {
|
|
52
|
+
gap: 4,
|
|
53
|
+
},
|
|
54
|
+
container: {
|
|
55
|
+
position: 'relative',
|
|
56
|
+
borderRadius: 8,
|
|
57
|
+
borderWidth: 1,
|
|
58
|
+
backgroundColor: Color.base.white100,
|
|
59
|
+
},
|
|
60
|
+
input: {
|
|
61
|
+
fontSize: 14,
|
|
62
|
+
color: '#333',
|
|
63
|
+
padding: 12,
|
|
64
|
+
textAlignVertical: 'top',
|
|
65
|
+
flex: 1,
|
|
66
|
+
},
|
|
67
|
+
});
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
<svg width="125" height="124" viewBox="0 0 125 124" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<path d="M62.7447 114.193C91.5843 114.193 115.083 90.7909 115.083 62.0485C114.986 33.2089 91.5843 9.80713 62.7447 9.80713C33.808 9.80713 10.4062 33.2089 10.4062 61.9514C10.4062 90.7909 33.808 114.193 62.7447 114.193Z" fill="#F1F3F9" stroke="#D6DCE8" stroke-width="1.94206" stroke-miterlimit="10"/>
|
|
3
|
+
<path d="M118.192 68.6515C118.192 79.8184 109.161 88.8489 97.8973 88.8489C97.7031 88.8489 96.0523 88.8489 83.9145 88.8489C75.4665 88.8489 61.9692 88.8489 40.4124 88.8489H30.1195C16.6222 89.1402 5.84375 78.3618 5.84375 65.35C5.84375 52.2411 16.7193 41.3656 30.4108 42.0453C42.1602 5.34044 95.9552 10.4869 100.519 48.4541C110.618 49.7165 118.192 58.2615 118.192 68.6515Z" fill="white" stroke="#D6DCE8" stroke-width="1.94206" stroke-miterlimit="10"/>
|
|
4
|
+
<path d="M100.221 48.5512C99.4442 48.4541 98.6674 48.4541 97.8906 48.4541C93.9094 48.4541 90.1224 49.6193 86.918 51.6585" fill="white"/>
|
|
5
|
+
<path d="M100.221 48.5512C99.4442 48.4541 98.6674 48.4541 97.8906 48.4541C93.9094 48.4541 90.1224 49.6193 86.918 51.6585" stroke="#D6DCE8" stroke-width="1.94206" stroke-miterlimit="10" stroke-linecap="round"/>
|
|
6
|
+
<path d="M30.408 42.0454C29.2428 45.5411 28.6602 49.231 28.6602 53.1151C28.6602 54.6688 28.7573 56.1253 28.9515 57.5819" fill="white"/>
|
|
7
|
+
<path d="M30.408 42.0454C29.2428 45.5411 28.6602 49.231 28.6602 53.1151C28.6602 54.6688 28.7573 56.1253 28.9515 57.5819" stroke="#D6DCE8" stroke-width="1.94206" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round"/>
|
|
8
|
+
<path d="M49.7312 66.9037C53.5182 64.4761 57.9849 63.1167 62.743 63.1167C75.7548 63.1167 86.339 73.6038 86.339 86.6156C86.339 99.6274 75.7548 110.114 62.743 110.114C49.7312 110.114 39.147 99.6274 39.147 86.6156C38.9528 78.3618 43.2253 71.1762 49.7312 66.9037Z" fill="#D6DCE8" stroke="#AAB2C5" stroke-width="1.94206" stroke-miterlimit="10"/>
|
|
9
|
+
<path d="M62.5518 75.9346C62.9754 75.9346 63.4362 75.9942 63.8633 76.1543C64.2519 76.3 64.6614 76.5505 64.9521 76.9619L71.4922 83.501C72.6482 84.657 72.6482 86.6321 71.4922 87.7881C70.3155 88.9646 68.3689 88.91 67.1504 87.8271L67.1348 87.8135L67.1201 87.7988L65.7559 86.4785V94.8691C65.7559 96.5707 64.35 97.9766 62.6484 97.9766C60.9471 97.9763 59.542 96.5705 59.542 94.8691V86.4775L58.1885 87.7871C57.0117 88.9639 55.0652 88.9103 53.8467 87.8271L53.8057 87.7881C53.169 87.1514 52.8418 86.4283 52.8418 85.6445C52.8418 85.2857 52.9106 84.8683 53.0713 84.4756C53.2157 84.1225 53.463 83.7252 53.8662 83.4395L60.4082 76.8984C60.6459 76.6607 60.9824 76.4346 61.3164 76.2676C61.6384 76.1066 62.089 75.9346 62.5518 75.9346Z" fill="white" stroke="#AAB2C5" stroke-width="1.94206"/>
|
|
10
|
+
<path d="M115.954 43.793C118.153 43.793 119.935 42.0106 119.935 39.8118C119.935 37.613 118.153 35.8306 115.954 35.8306C113.755 35.8306 111.973 37.613 111.973 39.8118C111.973 42.0106 113.755 43.793 115.954 43.793Z" fill="#F1F3F9"/>
|
|
11
|
+
<path d="M121.777 28.2571C123.279 28.2571 124.496 27.0398 124.496 25.5382C124.496 24.0366 123.279 22.8193 121.777 22.8193C120.276 22.8193 119.059 24.0366 119.059 25.5382C119.059 27.0398 120.276 28.2571 121.777 28.2571Z" fill="#F1F3F9"/>
|
|
12
|
+
<path d="M11.6681 37.1907C13.1697 37.1907 14.387 35.9734 14.387 34.4718C14.387 32.9702 13.1697 31.7529 11.6681 31.7529C10.1665 31.7529 8.94922 32.9702 8.94922 34.4718C8.94922 35.9734 10.1665 37.1907 11.6681 37.1907Z" fill="#F1F3F9"/>
|
|
13
|
+
<path d="M5.54935 97.0059C8.33803 97.0059 10.5987 94.7453 10.5987 91.9566C10.5987 89.1679 8.33803 86.9072 5.54935 86.9072C2.76067 86.9072 0.5 89.1679 0.5 91.9566C0.5 94.7453 2.76067 97.0059 5.54935 97.0059Z" fill="#F1F3F9"/>
|
|
14
|
+
</svg>
|
|
Binary file
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { GestureResponderEvent, TextInputProps } from 'react-native';
|
|
2
|
+
import type { IconNameProps } from '../Icon';
|
|
3
|
+
|
|
4
|
+
export interface InputProps extends TextInputProps {
|
|
5
|
+
icon?: IconNameProps;
|
|
6
|
+
iconRight?: IconNameProps;
|
|
7
|
+
label?: string | undefined;
|
|
8
|
+
clearButton?: boolean;
|
|
9
|
+
hasError?: boolean;
|
|
10
|
+
hint?: string;
|
|
11
|
+
onPressIconLeft?: (val?: GestureResponderEvent) => void;
|
|
12
|
+
onPressIconRight?: (val?: GestureResponderEvent) => void;
|
|
13
|
+
onChangeText?: (val: string) => void;
|
|
14
|
+
secureTextEntry?: boolean;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export interface TextAreaProps extends InputProps {
|
|
18
|
+
height?: number;
|
|
19
|
+
}
|