@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,238 @@
|
|
|
1
|
+
import { useState, useCallback, useMemo } from 'react';
|
|
2
|
+
import { View, FlatList, StyleSheet, TouchableOpacity } from 'react-native';
|
|
3
|
+
import BottomSheet from '../BottomSheet/BottomSheet';
|
|
4
|
+
import Typography from '../Typography/Typography';
|
|
5
|
+
import Button from '../Button/Button';
|
|
6
|
+
import Color from '../Color/Color';
|
|
7
|
+
import Icon from '../Icon';
|
|
8
|
+
|
|
9
|
+
type PickerMode = 'single' | 'range' | 'multiple';
|
|
10
|
+
|
|
11
|
+
interface YearPickerProps {
|
|
12
|
+
isOpen: boolean;
|
|
13
|
+
onClose?: () => void;
|
|
14
|
+
onChange?: (
|
|
15
|
+
value: number[] | { startDate: number | null; endDate: number | null }
|
|
16
|
+
) => void;
|
|
17
|
+
mode?: PickerMode;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export default function YearPicker({
|
|
21
|
+
isOpen,
|
|
22
|
+
onClose,
|
|
23
|
+
onChange,
|
|
24
|
+
mode = 'single',
|
|
25
|
+
}: YearPickerProps) {
|
|
26
|
+
const currentYear = new Date().getFullYear();
|
|
27
|
+
const pageSize = 9;
|
|
28
|
+
const [rangeValue, setRangeValue] = useState<{
|
|
29
|
+
startDate: number | null;
|
|
30
|
+
endDate: number | null;
|
|
31
|
+
}>({ startDate: null, endDate: null });
|
|
32
|
+
const [multipleValue, setMultipleValue] = useState<number[]>([]);
|
|
33
|
+
const [singleValue, setSingleValue] = useState<number | null>(null);
|
|
34
|
+
|
|
35
|
+
const years = useMemo(() => {
|
|
36
|
+
const start = currentYear - 60;
|
|
37
|
+
const total = 121;
|
|
38
|
+
return Array.from({ length: total }, (_, i) => start + i);
|
|
39
|
+
}, [currentYear]);
|
|
40
|
+
|
|
41
|
+
const initialPageIndex = useMemo(() => {
|
|
42
|
+
const index = years.findIndex((y) => y === currentYear);
|
|
43
|
+
return Math.floor(index / pageSize);
|
|
44
|
+
}, [years, currentYear]);
|
|
45
|
+
|
|
46
|
+
const [pageIndex, setPageIndex] = useState(initialPageIndex);
|
|
47
|
+
|
|
48
|
+
const pageYears = useMemo(() => {
|
|
49
|
+
const start = pageIndex * pageSize;
|
|
50
|
+
return years.slice(start, start + pageSize);
|
|
51
|
+
}, [years, pageIndex]);
|
|
52
|
+
|
|
53
|
+
const handleSelectYear = useCallback(
|
|
54
|
+
(year: number) => {
|
|
55
|
+
if (mode === 'single') {
|
|
56
|
+
setSingleValue(year);
|
|
57
|
+
} else if (mode === 'range') {
|
|
58
|
+
if (
|
|
59
|
+
rangeValue.startDate === null ||
|
|
60
|
+
(rangeValue.startDate !== null && rangeValue.endDate !== null)
|
|
61
|
+
) {
|
|
62
|
+
setRangeValue({ startDate: year, endDate: null });
|
|
63
|
+
} else if (year < rangeValue.startDate) {
|
|
64
|
+
setRangeValue({ startDate: year, endDate: rangeValue.startDate });
|
|
65
|
+
} else {
|
|
66
|
+
setRangeValue({ startDate: rangeValue.startDate, endDate: year });
|
|
67
|
+
}
|
|
68
|
+
} else if (mode === 'multiple') {
|
|
69
|
+
setMultipleValue((prev) =>
|
|
70
|
+
prev.includes(year) ? prev.filter((y) => y !== year) : [...prev, year]
|
|
71
|
+
);
|
|
72
|
+
}
|
|
73
|
+
},
|
|
74
|
+
[mode, rangeValue]
|
|
75
|
+
);
|
|
76
|
+
|
|
77
|
+
const isSelected = (year: number) => {
|
|
78
|
+
if (mode === 'single') return year === singleValue;
|
|
79
|
+
if (mode === 'range') {
|
|
80
|
+
const { startDate, endDate } = rangeValue;
|
|
81
|
+
return (
|
|
82
|
+
(startDate === year && endDate === null) ||
|
|
83
|
+
(startDate !== null &&
|
|
84
|
+
endDate !== null &&
|
|
85
|
+
year >= startDate &&
|
|
86
|
+
year <= endDate)
|
|
87
|
+
);
|
|
88
|
+
}
|
|
89
|
+
if (mode === 'multiple') return multipleValue.includes(year);
|
|
90
|
+
return false;
|
|
91
|
+
};
|
|
92
|
+
|
|
93
|
+
const handleSubmit = () => {
|
|
94
|
+
if (mode === 'single') {
|
|
95
|
+
onChange?.(singleValue !== null ? [singleValue] : []);
|
|
96
|
+
} else if (mode === 'range') {
|
|
97
|
+
onChange?.(rangeValue);
|
|
98
|
+
} else {
|
|
99
|
+
onChange?.(multipleValue);
|
|
100
|
+
}
|
|
101
|
+
onClose?.();
|
|
102
|
+
};
|
|
103
|
+
|
|
104
|
+
return (
|
|
105
|
+
<BottomSheet
|
|
106
|
+
isOpen={isOpen}
|
|
107
|
+
onClose={onClose}
|
|
108
|
+
footer={
|
|
109
|
+
<View style={styles.containerBottomSheetFooter}>
|
|
110
|
+
<View style={styles.flex1}>
|
|
111
|
+
<Button
|
|
112
|
+
title="Batal"
|
|
113
|
+
variant="tertiary"
|
|
114
|
+
size="medium"
|
|
115
|
+
color="primary"
|
|
116
|
+
onPress={onClose}
|
|
117
|
+
/>
|
|
118
|
+
</View>
|
|
119
|
+
<View style={styles.flex1}>
|
|
120
|
+
<Button
|
|
121
|
+
title="Pilih"
|
|
122
|
+
color="primary"
|
|
123
|
+
size="medium"
|
|
124
|
+
onPress={handleSubmit}
|
|
125
|
+
/>
|
|
126
|
+
</View>
|
|
127
|
+
</View>
|
|
128
|
+
}
|
|
129
|
+
>
|
|
130
|
+
<View style={styles.header}>
|
|
131
|
+
<TouchableOpacity
|
|
132
|
+
style={styles.buttonNav}
|
|
133
|
+
onPress={() => setPageIndex((prev) => Math.max(prev - 1, 0))}
|
|
134
|
+
disabled={pageIndex === 0}
|
|
135
|
+
>
|
|
136
|
+
<Icon name="ArrowLeft" color={Color.base.white100} size={10} />
|
|
137
|
+
</TouchableOpacity>
|
|
138
|
+
<Typography variant="t1" weight="semibold" color={Color.gray[900]}>
|
|
139
|
+
Pilih Tahun
|
|
140
|
+
</Typography>
|
|
141
|
+
<TouchableOpacity
|
|
142
|
+
style={styles.buttonNav}
|
|
143
|
+
onPress={() =>
|
|
144
|
+
setPageIndex((prev) =>
|
|
145
|
+
(prev + 1) * pageSize < years.length ? prev + 1 : prev
|
|
146
|
+
)
|
|
147
|
+
}
|
|
148
|
+
disabled={(pageIndex + 1) * pageSize >= years.length}
|
|
149
|
+
>
|
|
150
|
+
<Icon name="ArrowRight" color={Color.base.white100} size={10} />
|
|
151
|
+
</TouchableOpacity>
|
|
152
|
+
</View>
|
|
153
|
+
|
|
154
|
+
<View style={styles.container}>
|
|
155
|
+
<FlatList
|
|
156
|
+
data={pageYears}
|
|
157
|
+
numColumns={3}
|
|
158
|
+
keyExtractor={(item) => item.toString()}
|
|
159
|
+
contentContainerStyle={styles.yearList}
|
|
160
|
+
renderItem={({ item }) => {
|
|
161
|
+
const selected = isSelected(item);
|
|
162
|
+
return (
|
|
163
|
+
<View style={styles.yearItem}>
|
|
164
|
+
<TouchableOpacity
|
|
165
|
+
onPress={() => handleSelectYear(item)}
|
|
166
|
+
style={[
|
|
167
|
+
styles.option,
|
|
168
|
+
selected ? styles.optionSelected : null,
|
|
169
|
+
]}
|
|
170
|
+
>
|
|
171
|
+
<Typography
|
|
172
|
+
variant="p2"
|
|
173
|
+
center
|
|
174
|
+
weight="semibold"
|
|
175
|
+
color={selected ? Color.gray[900] : Color.gray[700]}
|
|
176
|
+
>
|
|
177
|
+
{item}
|
|
178
|
+
</Typography>
|
|
179
|
+
</TouchableOpacity>
|
|
180
|
+
</View>
|
|
181
|
+
);
|
|
182
|
+
}}
|
|
183
|
+
/>
|
|
184
|
+
</View>
|
|
185
|
+
</BottomSheet>
|
|
186
|
+
);
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
const styles = StyleSheet.create({
|
|
190
|
+
container: {
|
|
191
|
+
gap: 10,
|
|
192
|
+
},
|
|
193
|
+
yearList: {
|
|
194
|
+
paddingBottom: 12,
|
|
195
|
+
},
|
|
196
|
+
yearItem: {
|
|
197
|
+
width: '30%',
|
|
198
|
+
margin: '1.66%',
|
|
199
|
+
},
|
|
200
|
+
pagination: {
|
|
201
|
+
marginTop: 8,
|
|
202
|
+
flexDirection: 'row',
|
|
203
|
+
justifyContent: 'space-between',
|
|
204
|
+
alignItems: 'center',
|
|
205
|
+
gap: 8,
|
|
206
|
+
},
|
|
207
|
+
header: {
|
|
208
|
+
flexDirection: 'row',
|
|
209
|
+
justifyContent: 'space-between',
|
|
210
|
+
alignItems: 'center',
|
|
211
|
+
marginBottom: 10,
|
|
212
|
+
},
|
|
213
|
+
buttonNav: {
|
|
214
|
+
backgroundColor: Color.gray[500],
|
|
215
|
+
borderRadius: 8,
|
|
216
|
+
padding: 8,
|
|
217
|
+
},
|
|
218
|
+
containerBottomSheetFooter: {
|
|
219
|
+
flexDirection: 'row',
|
|
220
|
+
flex: 1,
|
|
221
|
+
gap: 12,
|
|
222
|
+
},
|
|
223
|
+
flex1: {
|
|
224
|
+
flex: 1,
|
|
225
|
+
},
|
|
226
|
+
option: {
|
|
227
|
+
gap: 8,
|
|
228
|
+
paddingVertical: 8,
|
|
229
|
+
paddingHorizontal: 12,
|
|
230
|
+
borderWidth: 1,
|
|
231
|
+
borderRadius: 8,
|
|
232
|
+
borderColor: Color.base.white100,
|
|
233
|
+
},
|
|
234
|
+
optionSelected: {
|
|
235
|
+
backgroundColor: Color.primary[50],
|
|
236
|
+
borderColor: Color.primary[300],
|
|
237
|
+
},
|
|
238
|
+
});
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Menghasilkan array tahun dalam format label/value untuk dropdown.
|
|
3
|
+
* @param startYear Tahun awal (misal: 2020)
|
|
4
|
+
* @param endYear Tahun akhir (misal: 2030)
|
|
5
|
+
* @param pageIndex Indeks halaman
|
|
6
|
+
* @param pageSize Jumlah item per halaman
|
|
7
|
+
* @returns Array objek { label, value }
|
|
8
|
+
*/
|
|
9
|
+
export function generateYearOptions(
|
|
10
|
+
startYear: number,
|
|
11
|
+
endYear: number,
|
|
12
|
+
pageIndex: number,
|
|
13
|
+
pageSize: number
|
|
14
|
+
): { label: string; value: string }[] {
|
|
15
|
+
const allYears = Array.from(
|
|
16
|
+
{ length: endYear - startYear + 1 },
|
|
17
|
+
(_, i) => startYear + i
|
|
18
|
+
);
|
|
19
|
+
const paginatedYears = allYears.slice(
|
|
20
|
+
pageIndex * pageSize,
|
|
21
|
+
(pageIndex + 1) * pageSize
|
|
22
|
+
);
|
|
23
|
+
return paginatedYears.map((year) => ({
|
|
24
|
+
label: year.toString(),
|
|
25
|
+
value: year.toString(),
|
|
26
|
+
}));
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Menghasilkan array bulan dalam format label/value untuk dropdown.
|
|
31
|
+
* @returns Array objek { label, value } dengan bulan 0–11
|
|
32
|
+
*/
|
|
33
|
+
export const generateMonthOptions = (): { label: string; value: number }[] => {
|
|
34
|
+
const monthNames = [
|
|
35
|
+
'Jan',
|
|
36
|
+
'Feb',
|
|
37
|
+
'Mar',
|
|
38
|
+
'Apr',
|
|
39
|
+
'Mei',
|
|
40
|
+
'Jun',
|
|
41
|
+
'Jul',
|
|
42
|
+
'Agu',
|
|
43
|
+
'Sep',
|
|
44
|
+
'Okt',
|
|
45
|
+
'Nov',
|
|
46
|
+
'Des',
|
|
47
|
+
] as const;
|
|
48
|
+
|
|
49
|
+
return monthNames.map((name, index) => ({
|
|
50
|
+
label: name,
|
|
51
|
+
value: index,
|
|
52
|
+
}));
|
|
53
|
+
};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { StyleSheet, View, Text } from 'react-native';
|
|
2
|
+
|
|
3
|
+
export default function Drawing() {
|
|
4
|
+
return (
|
|
5
|
+
<View style={styles.container}>
|
|
6
|
+
<Text>Sedang di bangun</Text>
|
|
7
|
+
</View>
|
|
8
|
+
);
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
const styles = StyleSheet.create({
|
|
12
|
+
container: {
|
|
13
|
+
flex: 1,
|
|
14
|
+
},
|
|
15
|
+
preview: {
|
|
16
|
+
width: 335,
|
|
17
|
+
height: 114,
|
|
18
|
+
backgroundColor: '#F8F8F8',
|
|
19
|
+
justifyContent: 'center',
|
|
20
|
+
alignItems: 'center',
|
|
21
|
+
marginTop: 15,
|
|
22
|
+
},
|
|
23
|
+
});
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
import { useState, useRef } from 'react';
|
|
2
|
+
import {
|
|
3
|
+
View,
|
|
4
|
+
Text,
|
|
5
|
+
TouchableOpacity,
|
|
6
|
+
StyleSheet,
|
|
7
|
+
ScrollView,
|
|
8
|
+
useWindowDimensions,
|
|
9
|
+
findNodeHandle,
|
|
10
|
+
UIManager,
|
|
11
|
+
} from 'react-native';
|
|
12
|
+
import Color from '../Color/Color';
|
|
13
|
+
import type { DropDownProps } from './type';
|
|
14
|
+
import type { ChipOptionProps } from '../Chip/type';
|
|
15
|
+
|
|
16
|
+
const Dropdown = ({
|
|
17
|
+
options,
|
|
18
|
+
maxHeight = 200,
|
|
19
|
+
onSelect,
|
|
20
|
+
renderButton,
|
|
21
|
+
}: DropDownProps) => {
|
|
22
|
+
const [isOpen, setIsOpen] = useState(false);
|
|
23
|
+
const [selected, setSelected] = useState<string | number>();
|
|
24
|
+
const [dropdownPosition, setDropdownPosition] = useState<'left' | 'right'>(
|
|
25
|
+
'left'
|
|
26
|
+
);
|
|
27
|
+
|
|
28
|
+
const buttonRef = useRef<View>(null);
|
|
29
|
+
const windowWidth = useWindowDimensions().width;
|
|
30
|
+
|
|
31
|
+
const handleToggle = () => {
|
|
32
|
+
if (!isOpen) {
|
|
33
|
+
const handle = findNodeHandle(buttonRef.current);
|
|
34
|
+
if (handle) {
|
|
35
|
+
UIManager.measureInWindow(handle, (x, _y, width, _height) => {
|
|
36
|
+
const middle = windowWidth / 2;
|
|
37
|
+
setDropdownPosition(x + width / 2 > middle ? 'right' : 'left');
|
|
38
|
+
setIsOpen(true);
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
} else {
|
|
42
|
+
setIsOpen(false);
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
const handlePressOption = (value: ChipOptionProps) => {
|
|
47
|
+
setSelected(value.value);
|
|
48
|
+
setIsOpen(false);
|
|
49
|
+
onSelect?.(value.value);
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
return (
|
|
53
|
+
<View style={styles.container}>
|
|
54
|
+
<TouchableOpacity
|
|
55
|
+
ref={buttonRef}
|
|
56
|
+
style={styles.dropdownButton}
|
|
57
|
+
onPress={handleToggle}
|
|
58
|
+
>
|
|
59
|
+
{renderButton ? (
|
|
60
|
+
renderButton
|
|
61
|
+
) : (
|
|
62
|
+
<Text>{selected || 'Select an option'}</Text>
|
|
63
|
+
)}
|
|
64
|
+
</TouchableOpacity>
|
|
65
|
+
|
|
66
|
+
{isOpen && (
|
|
67
|
+
<View
|
|
68
|
+
style={[
|
|
69
|
+
styles.dropdownList,
|
|
70
|
+
dropdownPosition === 'left' ? styles.left : styles.right,
|
|
71
|
+
]}
|
|
72
|
+
>
|
|
73
|
+
<ScrollView nestedScrollEnabled style={{ maxHeight }}>
|
|
74
|
+
{options.map((item, index) => (
|
|
75
|
+
<TouchableOpacity
|
|
76
|
+
key={index}
|
|
77
|
+
onPress={() => handlePressOption(item)}
|
|
78
|
+
style={[
|
|
79
|
+
styles.option,
|
|
80
|
+
selected === item.value ? styles.optionSelected : null,
|
|
81
|
+
]}
|
|
82
|
+
>
|
|
83
|
+
<Text>{item.label}</Text>
|
|
84
|
+
</TouchableOpacity>
|
|
85
|
+
))}
|
|
86
|
+
</ScrollView>
|
|
87
|
+
</View>
|
|
88
|
+
)}
|
|
89
|
+
</View>
|
|
90
|
+
);
|
|
91
|
+
};
|
|
92
|
+
|
|
93
|
+
export default Dropdown;
|
|
94
|
+
|
|
95
|
+
const styles = StyleSheet.create({
|
|
96
|
+
container: {
|
|
97
|
+
// width: 200, // or flexible
|
|
98
|
+
},
|
|
99
|
+
dropdownButton: {
|
|
100
|
+
// borderWidth: 1,
|
|
101
|
+
// borderColor: '#ccc',
|
|
102
|
+
// padding: 12,
|
|
103
|
+
// borderRadius: 6,
|
|
104
|
+
// backgroundColor: '#fff',
|
|
105
|
+
},
|
|
106
|
+
dropdownList: {
|
|
107
|
+
position: 'absolute',
|
|
108
|
+
marginTop: 18,
|
|
109
|
+
padding: 8,
|
|
110
|
+
zIndex: 9999,
|
|
111
|
+
gap: 4,
|
|
112
|
+
borderWidth: 1,
|
|
113
|
+
borderColor: Color.gray[50],
|
|
114
|
+
borderRadius: 8,
|
|
115
|
+
backgroundColor: Color.base.white100,
|
|
116
|
+
width: 100,
|
|
117
|
+
},
|
|
118
|
+
option: {
|
|
119
|
+
gap: 8,
|
|
120
|
+
paddingVertical: 8,
|
|
121
|
+
paddingHorizontal: 12,
|
|
122
|
+
borderWidth: 1,
|
|
123
|
+
borderRadius: 8,
|
|
124
|
+
borderColor: Color.base.white100,
|
|
125
|
+
},
|
|
126
|
+
optionSelected: {
|
|
127
|
+
backgroundColor: Color.primary[50],
|
|
128
|
+
borderColor: Color.primary[300],
|
|
129
|
+
},
|
|
130
|
+
left: {
|
|
131
|
+
left: 0,
|
|
132
|
+
},
|
|
133
|
+
right: {
|
|
134
|
+
right: 0,
|
|
135
|
+
},
|
|
136
|
+
});
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { View, Dimensions, StyleSheet } from 'react-native';
|
|
2
|
+
import Pdf from 'react-native-pdf';
|
|
3
|
+
|
|
4
|
+
const PdfView = ({ source = null }) => {
|
|
5
|
+
if (!source) {
|
|
6
|
+
return <View></View>;
|
|
7
|
+
}
|
|
8
|
+
return (
|
|
9
|
+
<View style={styles.flex}>
|
|
10
|
+
<Pdf
|
|
11
|
+
source={source}
|
|
12
|
+
onLoadComplete={(numberOfPages) => {
|
|
13
|
+
console.log(`number of pages: ${numberOfPages}`);
|
|
14
|
+
}}
|
|
15
|
+
onPageChanged={(page) => {
|
|
16
|
+
console.log(`current page: ${page}`);
|
|
17
|
+
}}
|
|
18
|
+
onError={(error) => {
|
|
19
|
+
console.log(error);
|
|
20
|
+
}}
|
|
21
|
+
style={[styles.flex, { width: Dimensions.get('window').width }]}
|
|
22
|
+
/>
|
|
23
|
+
</View>
|
|
24
|
+
);
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
export default PdfView;
|
|
28
|
+
|
|
29
|
+
const styles = StyleSheet.create({
|
|
30
|
+
flex: {
|
|
31
|
+
flex: 1,
|
|
32
|
+
},
|
|
33
|
+
});
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { type ViewStyle } from 'react-native';
|
|
3
|
+
import User from './icons/User';
|
|
4
|
+
import Eye from './icons/Eye';
|
|
5
|
+
import XCircle from './icons/XCircle';
|
|
6
|
+
import ArrowRight from './icons/ArrowRight';
|
|
7
|
+
import Document from './icons/Document';
|
|
8
|
+
import Calendar from './icons/Calendar';
|
|
9
|
+
import ExlamationMark from './icons/ExlmationMark';
|
|
10
|
+
import Downnload from './icons/Download';
|
|
11
|
+
import StickyNote from './icons/StickyNote';
|
|
12
|
+
import Pdf from './icons/Pdf';
|
|
13
|
+
import RadioButton from './icons/RadioButton';
|
|
14
|
+
import ArrowBackAlt from './icons/ArrowBackAlt';
|
|
15
|
+
import ArrowForwardAlt from './icons/ArrowForwardAlt';
|
|
16
|
+
import Check from './icons/Check';
|
|
17
|
+
import Filter from './icons/Filter';
|
|
18
|
+
import AirPlane from './icons/AirPlane';
|
|
19
|
+
import Camera from './icons/Camera';
|
|
20
|
+
import Image from './icons/Image';
|
|
21
|
+
import type { IconNameProps, IconProps } from './type';
|
|
22
|
+
import Times from './icons/Times';
|
|
23
|
+
import ArrowDown from './icons/ArrowDown';
|
|
24
|
+
import ArrowUp from './icons/ArrowUp';
|
|
25
|
+
import Search from './icons/Search';
|
|
26
|
+
import Home from './icons/Home';
|
|
27
|
+
import ArrowLeft from './icons/ArrowLeft';
|
|
28
|
+
import EyeOpen from './icons/EyeOpen';
|
|
29
|
+
|
|
30
|
+
const icons: Record<
|
|
31
|
+
IconNameProps,
|
|
32
|
+
React.FC<{ size: number; color: string; style?: ViewStyle }>
|
|
33
|
+
> = {
|
|
34
|
+
'Home': Home,
|
|
35
|
+
'Search': Search,
|
|
36
|
+
'User': User,
|
|
37
|
+
'Eye': Eye,
|
|
38
|
+
'EyeOpen': EyeOpen,
|
|
39
|
+
'ArrowRight': ArrowRight,
|
|
40
|
+
'ArrowLeft': ArrowLeft,
|
|
41
|
+
'Document': Document,
|
|
42
|
+
'Calendar': Calendar,
|
|
43
|
+
'ExlamationMark': ExlamationMark,
|
|
44
|
+
'Download': Downnload,
|
|
45
|
+
'x-circle': XCircle,
|
|
46
|
+
'StickyNote': StickyNote,
|
|
47
|
+
'RadioButton': RadioButton,
|
|
48
|
+
'Pdf': Pdf,
|
|
49
|
+
'ArrowBackAlt': ArrowBackAlt,
|
|
50
|
+
'ArrowForwardAlt': ArrowForwardAlt,
|
|
51
|
+
'Check': Check,
|
|
52
|
+
'Filter': Filter,
|
|
53
|
+
'AirPlane': AirPlane,
|
|
54
|
+
'Camera': Camera,
|
|
55
|
+
'Image': Image,
|
|
56
|
+
'Times': Times,
|
|
57
|
+
'ArrowDown': ArrowDown,
|
|
58
|
+
'ArrowUp': ArrowUp,
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
const Icon: React.FC<IconProps> = ({
|
|
62
|
+
name,
|
|
63
|
+
size = 24,
|
|
64
|
+
color = '#000',
|
|
65
|
+
style,
|
|
66
|
+
}) => {
|
|
67
|
+
const SelectedIcon = icons[name];
|
|
68
|
+
|
|
69
|
+
if (!SelectedIcon) {
|
|
70
|
+
return null;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
return <SelectedIcon size={size} color={color} style={style} />;
|
|
74
|
+
};
|
|
75
|
+
|
|
76
|
+
export default Icon;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import Svg, { Path } from 'react-native-svg';
|
|
3
|
+
|
|
4
|
+
interface Props {
|
|
5
|
+
size?: number;
|
|
6
|
+
color?: string;
|
|
7
|
+
style?: object;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
const AirPlane: React.FC<Props> = ({ size = 24, color = '#909090', style }) => (
|
|
11
|
+
<Svg width={size} height={size} viewBox="0 0 13 13" fill="none" style={style}>
|
|
12
|
+
<Path
|
|
13
|
+
d="M11.1401 0.891335C11.6288 0.989335 12.0108 1.37133 12.1088 1.86C12.1787 2.21014 12.1687 2.57155 12.0795 2.91728C11.9903 3.26301 11.8241 3.58413 11.5934 3.85667L9.75943 6.02467L11.0554 10.7787C11.0941 10.9204 11.0946 11.0699 11.0569 11.2119C11.0192 11.3539 10.9447 11.4834 10.8408 11.5873L9.97276 12.4553C9.89905 12.529 9.80925 12.5846 9.71042 12.6176C9.61159 12.6507 9.50643 12.6604 9.40322 12.6459C9.30002 12.6314 9.20158 12.5932 9.11566 12.5342C9.02974 12.4752 8.95869 12.3971 8.90809 12.306L6.91276 8.71467L4.74076 10.218V10.7427C4.74076 10.9633 4.65276 11.176 4.49676 11.332L3.37476 12.4533C3.2936 12.5346 3.19301 12.5937 3.08254 12.6252C2.97207 12.6566 2.8554 12.6592 2.74363 12.6328C2.63186 12.6064 2.52869 12.5519 2.44394 12.4744C2.35919 12.3969 2.29567 12.299 2.25943 12.19L1.89676 11.1027L0.809429 10.74C0.70045 10.7038 0.602553 10.6402 0.525046 10.5555C0.447539 10.4707 0.392997 10.3676 0.366607 10.2558C0.340217 10.144 0.342855 10.0274 0.374271 9.91689C0.405687 9.80642 0.464836 9.70583 0.546095 9.62467L1.66809 8.50267C1.74549 8.42529 1.83737 8.36392 1.93849 8.32205C2.03961 8.28019 2.14799 8.25865 2.25743 8.25867H2.78209L4.28543 6.08667L0.694095 4.09133C0.602985 4.04074 0.524862 3.96969 0.465878 3.88377C0.406895 3.79785 0.36866 3.69941 0.354184 3.59621C0.339708 3.493 0.349386 3.38784 0.382456 3.28901C0.415527 3.19018 0.471087 3.10038 0.544762 3.02667L1.41276 2.15867C1.51666 2.05477 1.64619 1.98019 1.7882 1.94249C1.93022 1.90479 2.07968 1.90531 2.22143 1.944L6.97476 3.24L9.14343 1.406C9.41597 1.17532 9.73708 1.00917 10.0828 0.919939C10.4285 0.830708 10.79 0.821368 11.1401 0.891335Z"
|
|
14
|
+
fill={color}
|
|
15
|
+
/>
|
|
16
|
+
</Svg>
|
|
17
|
+
);
|
|
18
|
+
|
|
19
|
+
export default AirPlane;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import Svg, { Path } from 'react-native-svg';
|
|
3
|
+
|
|
4
|
+
interface Props {
|
|
5
|
+
size?: number;
|
|
6
|
+
color?: string;
|
|
7
|
+
style?: object;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
const ArrowBackAlt: React.FC<Props> = ({
|
|
11
|
+
size = 24,
|
|
12
|
+
color = '#000',
|
|
13
|
+
style,
|
|
14
|
+
}) => (
|
|
15
|
+
<Svg width={size} height={size} viewBox="0 0 20 9" fill="none" style={style}>
|
|
16
|
+
<Path
|
|
17
|
+
d="M19.23 8.9729C19.153 8.9909 19.075 9 18.999 9C18.546 9 18.1361 8.68998 18.0271 8.22998C17.1591 4.56198 13.9071 2 10.1201 2C7.21912 2 4.57692 3.565 3.13892 6H5.00488C5.55788 6 6.00488 6.448 6.00488 7C6.00488 7.552 5.55788 8 5.00488 8H1C0.447 8 0 7.552 0 7V3C0 2.448 0.447 2 1 2C1.553 2 2 2.448 2 3V4.09009C3.876 1.57009 6.87212 0 10.1201 0C14.8391 0 18.8909 3.19502 19.9729 7.77002C20.1009 8.30702 19.768 8.8459 19.23 8.9729Z"
|
|
18
|
+
fill={color}
|
|
19
|
+
/>
|
|
20
|
+
</Svg>
|
|
21
|
+
);
|
|
22
|
+
|
|
23
|
+
export default ArrowBackAlt;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import Svg, { Path } from 'react-native-svg';
|
|
3
|
+
|
|
4
|
+
interface Props {
|
|
5
|
+
size?: number;
|
|
6
|
+
color?: string;
|
|
7
|
+
style?: object;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
const ArrowDown: React.FC<Props> = ({ size = 24, color = '#000', style }) => (
|
|
11
|
+
<Svg width={size} height={size} viewBox="0 0 10 6" fill="none" style={style}>
|
|
12
|
+
<Path
|
|
13
|
+
d="M4.99893 5.49999C4.7856 5.49999 4.57224 5.41835 4.40974 5.25585L1.07641 1.92252C0.750573 1.59668 0.750573 1.06996 1.07641 0.744131C1.40224 0.418298 1.92896 0.418298 2.25479 0.744131L4.99893 3.48827L7.74307 0.744131C8.06891 0.418298 8.59562 0.418298 8.92146 0.744131C9.24729 1.06996 9.24729 1.59668 8.92146 1.92252L5.58812 5.25585C5.42562 5.41835 5.21227 5.49999 4.99893 5.49999Z"
|
|
14
|
+
fill={color}
|
|
15
|
+
/>
|
|
16
|
+
</Svg>
|
|
17
|
+
);
|
|
18
|
+
|
|
19
|
+
export default ArrowDown;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import Svg, { Path } from 'react-native-svg';
|
|
3
|
+
|
|
4
|
+
interface Props {
|
|
5
|
+
size?: number;
|
|
6
|
+
color?: string;
|
|
7
|
+
style?: object;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
const ArrowForwardAlt: React.FC<Props> = ({
|
|
11
|
+
size = 24,
|
|
12
|
+
color = '#000',
|
|
13
|
+
style,
|
|
14
|
+
}) => (
|
|
15
|
+
<Svg width={size} height={size} viewBox="0 0 20 9" fill="none" style={style}>
|
|
16
|
+
<Path
|
|
17
|
+
d="M20.0003 3.00098V7.00098C20.0003 7.55298 19.5533 8.00098 19.0003 8.00098H14.9954C14.4424 8.00098 13.9954 7.55298 13.9954 7.00098C13.9954 6.44898 14.4424 6.00098 14.9954 6.00098H16.8614C15.4234 3.56598 12.7812 2.00098 9.88017 2.00098C6.09317 2.00098 2.84119 4.56296 1.97319 8.23096C1.86519 8.69096 1.45427 9.00098 1.00127 9.00098C0.925266 9.00098 0.848309 8.99288 0.770309 8.97388C0.233309 8.84688 -0.0996342 8.30802 0.0283658 7.77002C1.11037 3.19502 5.16239 0 9.88139 0C13.1294 0 16.1253 1.57009 18.0013 4.09009V3.00098C18.0013 2.44898 18.4483 2.00098 19.0013 2.00098C19.5543 2.00098 20.0003 2.44898 20.0003 3.00098Z"
|
|
18
|
+
fill={color}
|
|
19
|
+
/>
|
|
20
|
+
</Svg>
|
|
21
|
+
);
|
|
22
|
+
|
|
23
|
+
export default ArrowForwardAlt;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import Svg, { Path } from 'react-native-svg';
|
|
3
|
+
|
|
4
|
+
interface Props {
|
|
5
|
+
size?: number;
|
|
6
|
+
color?: string;
|
|
7
|
+
style?: object;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
const ArrowLeft: React.FC<Props> = ({ size = 24, color = '#000', style }) => (
|
|
11
|
+
<Svg width={size} height={size} viewBox="0 0 6 10" fill="none" style={style}>
|
|
12
|
+
<Path
|
|
13
|
+
d="M4.6669 9.16658C4.45357 9.16658 4.24021 9.08494 4.07771 8.92243L0.744375 5.5891C0.418542 5.26327 0.418542 4.73655 0.744375 4.41072L4.07771 1.07738C4.40354 0.751549 4.93026 0.751549 5.25609 1.07738C5.58193 1.40322 5.58193 1.92993 5.25609 2.25577L2.51195 4.99991L5.25609 7.74405C5.58193 8.06988 5.58193 8.5966 5.25609 8.92243C5.09359 9.08494 4.88023 9.16658 4.6669 9.16658Z"
|
|
14
|
+
fill={color}
|
|
15
|
+
/>
|
|
16
|
+
</Svg>
|
|
17
|
+
);
|
|
18
|
+
|
|
19
|
+
export default ArrowLeft;
|