@situaction/traquiste-mobile 1.0.0 → 1.1.0-next.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +61 -90
- package/build/components/AssociationTag/AssociationTag.d.ts +19 -0
- package/build/components/AssociationTag/AssociationTag.d.ts.map +1 -0
- package/build/components/AssociationTag/AssociationTag.js +29 -0
- package/build/components/AssociationTag/AssociationTag.js.map +1 -0
- package/build/components/AssociationTag/AssociationTag.styles.d.ts +21 -0
- package/build/components/AssociationTag/AssociationTag.styles.d.ts.map +1 -0
- package/build/components/AssociationTag/AssociationTag.styles.js +26 -0
- package/build/components/AssociationTag/AssociationTag.styles.js.map +1 -0
- package/build/components/AssociationTag/index.d.ts +3 -0
- package/build/components/AssociationTag/index.d.ts.map +1 -0
- package/build/components/AssociationTag/index.js +2 -0
- package/build/components/AssociationTag/index.js.map +1 -0
- package/build/components/BottomSheet/BottomSheet.d.ts +36 -0
- package/build/components/BottomSheet/BottomSheet.d.ts.map +1 -0
- package/build/components/BottomSheet/BottomSheet.js +76 -0
- package/build/components/BottomSheet/BottomSheet.js.map +1 -0
- package/build/components/BottomSheet/BottomSheet.styles.d.ts +32 -0
- package/build/components/BottomSheet/BottomSheet.styles.d.ts.map +1 -0
- package/build/components/BottomSheet/BottomSheet.styles.js +31 -0
- package/build/components/BottomSheet/BottomSheet.styles.js.map +1 -0
- package/build/components/BottomSheet/index.d.ts +3 -0
- package/build/components/BottomSheet/index.d.ts.map +1 -0
- package/build/components/BottomSheet/index.js +2 -0
- package/build/components/BottomSheet/index.js.map +1 -0
- package/build/components/Button/Button.d.ts +5 -1
- package/build/components/Button/Button.d.ts.map +1 -1
- package/build/components/Button/Button.js +12 -6
- package/build/components/Button/Button.js.map +1 -1
- package/build/components/ButtonAction/ButtonAction.d.ts +5 -1
- package/build/components/ButtonAction/ButtonAction.d.ts.map +1 -1
- package/build/components/ButtonAction/ButtonAction.js +2 -2
- package/build/components/ButtonAction/ButtonAction.js.map +1 -1
- package/build/components/ButtonMap/ButtonMap.d.ts +5 -1
- package/build/components/ButtonMap/ButtonMap.d.ts.map +1 -1
- package/build/components/ButtonMap/ButtonMap.js +11 -9
- package/build/components/ButtonMap/ButtonMap.js.map +1 -1
- package/build/components/ButtonMenu/ButtonMenu.d.ts +5 -1
- package/build/components/ButtonMenu/ButtonMenu.d.ts.map +1 -1
- package/build/components/ButtonMenu/ButtonMenu.js +17 -17
- package/build/components/ButtonMenu/ButtonMenu.js.map +1 -1
- package/build/components/Calendar/Calendar.d.ts +4 -0
- package/build/components/Calendar/Calendar.d.ts.map +1 -0
- package/build/components/Calendar/Calendar.i18n.d.ts +34 -0
- package/build/components/Calendar/Calendar.i18n.d.ts.map +1 -0
- package/build/components/Calendar/Calendar.i18n.js +34 -0
- package/build/components/Calendar/Calendar.i18n.js.map +1 -0
- package/build/components/Calendar/Calendar.js +172 -0
- package/build/components/Calendar/Calendar.js.map +1 -0
- package/build/components/Calendar/Calendar.styles.d.ts +257 -0
- package/build/components/Calendar/Calendar.styles.d.ts.map +1 -0
- package/build/components/Calendar/Calendar.styles.js +234 -0
- package/build/components/Calendar/Calendar.styles.js.map +1 -0
- package/build/components/Calendar/Calendar.types.d.ts +62 -0
- package/build/components/Calendar/Calendar.types.d.ts.map +1 -0
- package/build/components/Calendar/Calendar.types.js +2 -0
- package/build/components/Calendar/Calendar.types.js.map +1 -0
- package/build/components/Calendar/CalendarDay.d.ts +4 -0
- package/build/components/Calendar/CalendarDay.d.ts.map +1 -0
- package/build/components/Calendar/CalendarDay.js +52 -0
- package/build/components/Calendar/CalendarDay.js.map +1 -0
- package/build/components/Calendar/CalendarHeader.d.ts +4 -0
- package/build/components/Calendar/CalendarHeader.d.ts.map +1 -0
- package/build/components/Calendar/CalendarHeader.js +16 -0
- package/build/components/Calendar/CalendarHeader.js.map +1 -0
- package/build/components/Calendar/CalendarLegend.d.ts +3 -0
- package/build/components/Calendar/CalendarLegend.d.ts.map +1 -0
- package/build/components/Calendar/CalendarLegend.js +38 -0
- package/build/components/Calendar/CalendarLegend.js.map +1 -0
- package/build/components/Calendar/CalendarYearPicker.d.ts +19 -0
- package/build/components/Calendar/CalendarYearPicker.d.ts.map +1 -0
- package/build/components/Calendar/CalendarYearPicker.js +158 -0
- package/build/components/Calendar/CalendarYearPicker.js.map +1 -0
- package/build/components/Calendar/index.d.ts +5 -0
- package/build/components/Calendar/index.d.ts.map +1 -0
- package/build/components/Calendar/index.js +3 -0
- package/build/components/Calendar/index.js.map +1 -0
- package/build/components/Card/Card.d.ts +25 -0
- package/build/components/Card/Card.d.ts.map +1 -0
- package/build/components/Card/Card.js +31 -0
- package/build/components/Card/Card.js.map +1 -0
- package/build/components/Card/Card.styles.d.ts +15 -0
- package/build/components/Card/Card.styles.d.ts.map +1 -0
- package/build/components/Card/Card.styles.js +18 -0
- package/build/components/Card/Card.styles.js.map +1 -0
- package/build/components/Card/index.d.ts +3 -0
- package/build/components/Card/index.d.ts.map +1 -0
- package/build/components/Card/index.js +2 -0
- package/build/components/Card/index.js.map +1 -0
- package/build/components/CardEquip/CardEquip.d.ts +60 -0
- package/build/components/CardEquip/CardEquip.d.ts.map +1 -0
- package/build/components/CardEquip/CardEquip.js +106 -0
- package/build/components/CardEquip/CardEquip.js.map +1 -0
- package/build/components/CardEquip/CardEquip.styles.d.ts +125 -0
- package/build/components/CardEquip/CardEquip.styles.d.ts.map +1 -0
- package/build/components/CardEquip/CardEquip.styles.js +139 -0
- package/build/components/CardEquip/CardEquip.styles.js.map +1 -0
- package/build/components/CardEquip/index.d.ts +3 -0
- package/build/components/CardEquip/index.d.ts.map +1 -0
- package/build/components/CardEquip/index.js +2 -0
- package/build/components/CardEquip/index.js.map +1 -0
- package/build/components/CardProfile/CardProfile.d.ts +55 -0
- package/build/components/CardProfile/CardProfile.d.ts.map +1 -0
- package/build/components/CardProfile/CardProfile.js +74 -0
- package/build/components/CardProfile/CardProfile.js.map +1 -0
- package/build/components/CardProfile/CardProfile.styles.d.ts +62 -0
- package/build/components/CardProfile/CardProfile.styles.d.ts.map +1 -0
- package/build/components/CardProfile/CardProfile.styles.js +65 -0
- package/build/components/CardProfile/CardProfile.styles.js.map +1 -0
- package/build/components/CardProfile/index.d.ts +3 -0
- package/build/components/CardProfile/index.d.ts.map +1 -0
- package/build/components/CardProfile/index.js +2 -0
- package/build/components/CardProfile/index.js.map +1 -0
- package/build/components/Checkbox/Checkbox.d.ts +28 -0
- package/build/components/Checkbox/Checkbox.d.ts.map +1 -0
- package/build/components/Checkbox/Checkbox.js +77 -0
- package/build/components/Checkbox/Checkbox.js.map +1 -0
- package/build/components/Checkbox/Checkbox.styles.d.ts +34 -0
- package/build/components/Checkbox/Checkbox.styles.d.ts.map +1 -0
- package/build/components/Checkbox/Checkbox.styles.js +39 -0
- package/build/components/Checkbox/Checkbox.styles.js.map +1 -0
- package/build/components/Checkbox/Checkbox.types.d.ts +25 -0
- package/build/components/Checkbox/Checkbox.types.d.ts.map +1 -0
- package/build/components/Checkbox/Checkbox.types.js +5 -0
- package/build/components/Checkbox/Checkbox.types.js.map +1 -0
- package/build/components/Checkbox/index.d.ts +3 -0
- package/build/components/Checkbox/index.d.ts.map +1 -0
- package/build/components/Checkbox/index.js +2 -0
- package/build/components/Checkbox/index.js.map +1 -0
- package/build/components/Cluster/Cluster.d.ts +23 -0
- package/build/components/Cluster/Cluster.d.ts.map +1 -0
- package/build/components/Cluster/Cluster.js +34 -0
- package/build/components/Cluster/Cluster.js.map +1 -0
- package/build/components/Cluster/Cluster.styles.d.ts +33 -0
- package/build/components/Cluster/Cluster.styles.d.ts.map +1 -0
- package/build/components/Cluster/Cluster.styles.js +34 -0
- package/build/components/Cluster/Cluster.styles.js.map +1 -0
- package/build/components/Cluster/index.d.ts +3 -0
- package/build/components/Cluster/index.d.ts.map +1 -0
- package/build/components/Cluster/index.js +2 -0
- package/build/components/Cluster/index.js.map +1 -0
- package/build/components/ColorPicker/ColorPicker.d.ts +20 -0
- package/build/components/ColorPicker/ColorPicker.d.ts.map +1 -0
- package/build/components/ColorPicker/ColorPicker.js +17 -0
- package/build/components/ColorPicker/ColorPicker.js.map +1 -0
- package/build/components/ColorPicker/ColorPicker.styles.d.ts +10 -0
- package/build/components/ColorPicker/ColorPicker.styles.d.ts.map +1 -0
- package/build/components/ColorPicker/ColorPicker.styles.js +11 -0
- package/build/components/ColorPicker/ColorPicker.styles.js.map +1 -0
- package/build/components/ColorPicker/index.d.ts +3 -0
- package/build/components/ColorPicker/index.d.ts.map +1 -0
- package/build/components/ColorPicker/index.js +2 -0
- package/build/components/ColorPicker/index.js.map +1 -0
- package/build/components/ColorSwatch/ColorSwatch.d.ts +20 -0
- package/build/components/ColorSwatch/ColorSwatch.d.ts.map +1 -0
- package/build/components/ColorSwatch/ColorSwatch.js +35 -0
- package/build/components/ColorSwatch/ColorSwatch.js.map +1 -0
- package/build/components/ColorSwatch/ColorSwatch.styles.d.ts +16 -0
- package/build/components/ColorSwatch/ColorSwatch.styles.d.ts.map +1 -0
- package/build/components/ColorSwatch/ColorSwatch.styles.js +19 -0
- package/build/components/ColorSwatch/ColorSwatch.styles.js.map +1 -0
- package/build/components/ColorSwatch/index.d.ts +3 -0
- package/build/components/ColorSwatch/index.d.ts.map +1 -0
- package/build/components/ColorSwatch/index.js +2 -0
- package/build/components/ColorSwatch/index.js.map +1 -0
- package/build/components/FileCard/FileCard.d.ts +29 -0
- package/build/components/FileCard/FileCard.d.ts.map +1 -0
- package/build/components/FileCard/FileCard.js +66 -0
- package/build/components/FileCard/FileCard.js.map +1 -0
- package/build/components/FileCard/FileCard.styles.d.ts +54 -0
- package/build/components/FileCard/FileCard.styles.d.ts.map +1 -0
- package/build/components/FileCard/FileCard.styles.js +56 -0
- package/build/components/FileCard/FileCard.styles.js.map +1 -0
- package/build/components/FileCard/index.d.ts +3 -0
- package/build/components/FileCard/index.d.ts.map +1 -0
- package/build/components/FileCard/index.js +2 -0
- package/build/components/FileCard/index.js.map +1 -0
- package/build/components/FilterChip/FilterChip.d.ts +5 -1
- package/build/components/FilterChip/FilterChip.d.ts.map +1 -1
- package/build/components/FilterChip/FilterChip.js +55 -25
- package/build/components/FilterChip/FilterChip.js.map +1 -1
- package/build/components/FilterNav/FilterNav.d.ts +53 -0
- package/build/components/FilterNav/FilterNav.d.ts.map +1 -0
- package/build/components/FilterNav/FilterNav.js +39 -0
- package/build/components/FilterNav/FilterNav.js.map +1 -0
- package/build/components/FilterNav/FilterNav.styles.d.ts +10 -0
- package/build/components/FilterNav/FilterNav.styles.d.ts.map +1 -0
- package/build/components/FilterNav/FilterNav.styles.js +11 -0
- package/build/components/FilterNav/FilterNav.styles.js.map +1 -0
- package/build/components/FilterNav/index.d.ts +3 -0
- package/build/components/FilterNav/index.d.ts.map +1 -0
- package/build/components/FilterNav/index.js +2 -0
- package/build/components/FilterNav/index.js.map +1 -0
- package/build/components/ImgPicker/ImgPicker.d.ts +47 -0
- package/build/components/ImgPicker/ImgPicker.d.ts.map +1 -0
- package/build/components/ImgPicker/ImgPicker.js +49 -0
- package/build/components/ImgPicker/ImgPicker.js.map +1 -0
- package/build/components/ImgPicker/ImgPicker.styles.d.ts +18 -0
- package/build/components/ImgPicker/ImgPicker.styles.d.ts.map +1 -0
- package/build/components/ImgPicker/ImgPicker.styles.js +19 -0
- package/build/components/ImgPicker/ImgPicker.styles.js.map +1 -0
- package/build/components/ImgPicker/index.d.ts +3 -0
- package/build/components/ImgPicker/index.d.ts.map +1 -0
- package/build/components/ImgPicker/index.js +2 -0
- package/build/components/ImgPicker/index.js.map +1 -0
- package/build/components/InlineInfo/InlineInfo.d.ts +60 -0
- package/build/components/InlineInfo/InlineInfo.d.ts.map +1 -0
- package/build/components/InlineInfo/InlineInfo.js +115 -0
- package/build/components/InlineInfo/InlineInfo.js.map +1 -0
- package/build/components/InlineInfo/InlineInfo.styles.d.ts +42 -0
- package/build/components/InlineInfo/InlineInfo.styles.d.ts.map +1 -0
- package/build/components/InlineInfo/InlineInfo.styles.js +50 -0
- package/build/components/InlineInfo/InlineInfo.styles.js.map +1 -0
- package/build/components/InlineInfo/index.d.ts +3 -0
- package/build/components/InlineInfo/index.d.ts.map +1 -0
- package/build/components/InlineInfo/index.js +2 -0
- package/build/components/InlineInfo/index.js.map +1 -0
- package/build/components/Input/Input.d.ts +57 -0
- package/build/components/Input/Input.d.ts.map +1 -0
- package/build/components/Input/Input.js +103 -0
- package/build/components/Input/Input.js.map +1 -0
- package/build/components/Input/Input.styles.d.ts +39 -0
- package/build/components/Input/Input.styles.d.ts.map +1 -0
- package/build/components/Input/Input.styles.js +40 -0
- package/build/components/Input/Input.styles.js.map +1 -0
- package/build/components/Input/index.d.ts +3 -0
- package/build/components/Input/index.d.ts.map +1 -0
- package/build/components/Input/index.js +2 -0
- package/build/components/Input/index.js.map +1 -0
- package/build/components/ListGroup/ListGroup.d.ts +24 -0
- package/build/components/ListGroup/ListGroup.d.ts.map +1 -0
- package/build/components/ListGroup/ListGroup.js +44 -0
- package/build/components/ListGroup/ListGroup.js.map +1 -0
- package/build/components/ListGroup/index.d.ts +3 -0
- package/build/components/ListGroup/index.d.ts.map +1 -0
- package/build/components/ListGroup/index.js +2 -0
- package/build/components/ListGroup/index.js.map +1 -0
- package/build/components/ListItem/ListItem.d.ts +44 -0
- package/build/components/ListItem/ListItem.d.ts.map +1 -0
- package/build/components/ListItem/ListItem.js +69 -0
- package/build/components/ListItem/ListItem.js.map +1 -0
- package/build/components/ListItem/ListItem.styles.d.ts +66 -0
- package/build/components/ListItem/ListItem.styles.d.ts.map +1 -0
- package/build/components/ListItem/ListItem.styles.js +70 -0
- package/build/components/ListItem/ListItem.styles.js.map +1 -0
- package/build/components/ListItem/index.d.ts +3 -0
- package/build/components/ListItem/index.d.ts.map +1 -0
- package/build/components/ListItem/index.js +2 -0
- package/build/components/ListItem/index.js.map +1 -0
- package/build/components/MapPin/MapPin.d.ts +61 -0
- package/build/components/MapPin/MapPin.d.ts.map +1 -0
- package/build/components/MapPin/MapPin.js +118 -0
- package/build/components/MapPin/MapPin.js.map +1 -0
- package/build/components/MapPin/MapPin.styles.d.ts +93 -0
- package/build/components/MapPin/MapPin.styles.d.ts.map +1 -0
- package/build/components/MapPin/MapPin.styles.js +101 -0
- package/build/components/MapPin/MapPin.styles.js.map +1 -0
- package/build/components/MapPin/index.d.ts +3 -0
- package/build/components/MapPin/index.d.ts.map +1 -0
- package/build/components/MapPin/index.js +2 -0
- package/build/components/MapPin/index.js.map +1 -0
- package/build/components/MediaPicker/MediaPicker.d.ts +74 -0
- package/build/components/MediaPicker/MediaPicker.d.ts.map +1 -0
- package/build/components/MediaPicker/MediaPicker.js +43 -0
- package/build/components/MediaPicker/MediaPicker.js.map +1 -0
- package/build/components/MediaPicker/MediaPicker.styles.d.ts +30 -0
- package/build/components/MediaPicker/MediaPicker.styles.d.ts.map +1 -0
- package/build/components/MediaPicker/MediaPicker.styles.js +31 -0
- package/build/components/MediaPicker/MediaPicker.styles.js.map +1 -0
- package/build/components/MediaPicker/index.d.ts +3 -0
- package/build/components/MediaPicker/index.d.ts.map +1 -0
- package/build/components/MediaPicker/index.js +2 -0
- package/build/components/MediaPicker/index.js.map +1 -0
- package/build/components/PhotoCard/PhotoCard.d.ts +28 -0
- package/build/components/PhotoCard/PhotoCard.d.ts.map +1 -0
- package/build/components/PhotoCard/PhotoCard.js +53 -0
- package/build/components/PhotoCard/PhotoCard.js.map +1 -0
- package/build/components/PhotoCard/PhotoCard.styles.d.ts +47 -0
- package/build/components/PhotoCard/PhotoCard.styles.d.ts.map +1 -0
- package/build/components/PhotoCard/PhotoCard.styles.js +45 -0
- package/build/components/PhotoCard/PhotoCard.styles.js.map +1 -0
- package/build/components/PhotoCard/index.d.ts +3 -0
- package/build/components/PhotoCard/index.d.ts.map +1 -0
- package/build/components/PhotoCard/index.js +2 -0
- package/build/components/PhotoCard/index.js.map +1 -0
- package/build/components/ProgressStep/ProgressStep.d.ts +9 -0
- package/build/components/ProgressStep/ProgressStep.d.ts.map +1 -0
- package/build/components/ProgressStep/ProgressStep.js +23 -0
- package/build/components/ProgressStep/ProgressStep.js.map +1 -0
- package/build/components/ProgressStep/ProgressStep.styles.d.ts +12 -0
- package/build/components/ProgressStep/ProgressStep.styles.d.ts.map +1 -0
- package/build/components/ProgressStep/ProgressStep.styles.js +13 -0
- package/build/components/ProgressStep/ProgressStep.styles.js.map +1 -0
- package/build/components/ProgressStep/index.d.ts +3 -0
- package/build/components/ProgressStep/index.d.ts.map +1 -0
- package/build/components/ProgressStep/index.js +2 -0
- package/build/components/ProgressStep/index.js.map +1 -0
- package/build/components/RadioButton/RadioButton.d.ts +29 -0
- package/build/components/RadioButton/RadioButton.d.ts.map +1 -0
- package/build/components/RadioButton/RadioButton.js +71 -0
- package/build/components/RadioButton/RadioButton.js.map +1 -0
- package/build/components/RadioButton/RadioButton.styles.d.ts +27 -0
- package/build/components/RadioButton/RadioButton.styles.d.ts.map +1 -0
- package/build/components/RadioButton/RadioButton.styles.js +30 -0
- package/build/components/RadioButton/RadioButton.styles.js.map +1 -0
- package/build/components/RadioButton/index.d.ts +3 -0
- package/build/components/RadioButton/index.d.ts.map +1 -0
- package/build/components/RadioButton/index.js +2 -0
- package/build/components/RadioButton/index.js.map +1 -0
- package/build/components/SearchBar/SearchBar.d.ts +33 -0
- package/build/components/SearchBar/SearchBar.d.ts.map +1 -0
- package/build/components/SearchBar/SearchBar.js +83 -0
- package/build/components/SearchBar/SearchBar.js.map +1 -0
- package/build/components/SearchBar/SearchBar.styles.d.ts +19 -0
- package/build/components/SearchBar/SearchBar.styles.d.ts.map +1 -0
- package/build/components/SearchBar/SearchBar.styles.js +21 -0
- package/build/components/SearchBar/SearchBar.styles.js.map +1 -0
- package/build/components/SearchBar/index.d.ts +3 -0
- package/build/components/SearchBar/index.d.ts.map +1 -0
- package/build/components/SearchBar/index.js +2 -0
- package/build/components/SearchBar/index.js.map +1 -0
- package/build/components/Spinner/Spinner.d.ts +12 -0
- package/build/components/Spinner/Spinner.d.ts.map +1 -0
- package/build/components/Spinner/Spinner.js +80 -0
- package/build/components/Spinner/Spinner.js.map +1 -0
- package/build/components/Spinner/Spinner.styles.d.ts +21 -0
- package/build/components/Spinner/Spinner.styles.d.ts.map +1 -0
- package/build/components/Spinner/Spinner.styles.js +22 -0
- package/build/components/Spinner/Spinner.styles.js.map +1 -0
- package/build/components/Spinner/index.d.ts +3 -0
- package/build/components/Spinner/index.d.ts.map +1 -0
- package/build/components/Spinner/index.js +2 -0
- package/build/components/Spinner/index.js.map +1 -0
- package/build/components/StepSheet/StepSheet.d.ts +77 -0
- package/build/components/StepSheet/StepSheet.d.ts.map +1 -0
- package/build/components/StepSheet/StepSheet.js +30 -0
- package/build/components/StepSheet/StepSheet.js.map +1 -0
- package/build/components/StepSheet/StepSheet.styles.d.ts +6 -0
- package/build/components/StepSheet/StepSheet.styles.d.ts.map +1 -0
- package/build/components/StepSheet/StepSheet.styles.js +7 -0
- package/build/components/StepSheet/StepSheet.styles.js.map +1 -0
- package/build/components/StepSheet/index.d.ts +3 -0
- package/build/components/StepSheet/index.d.ts.map +1 -0
- package/build/components/StepSheet/index.js +2 -0
- package/build/components/StepSheet/index.js.map +1 -0
- package/build/components/Stepper/Stepper.d.ts +50 -0
- package/build/components/Stepper/Stepper.d.ts.map +1 -0
- package/build/components/Stepper/Stepper.js +48 -0
- package/build/components/Stepper/Stepper.js.map +1 -0
- package/build/components/Stepper/Stepper.styles.d.ts +27 -0
- package/build/components/Stepper/Stepper.styles.d.ts.map +1 -0
- package/build/components/Stepper/Stepper.styles.js +28 -0
- package/build/components/Stepper/Stepper.styles.js.map +1 -0
- package/build/components/Stepper/index.d.ts +3 -0
- package/build/components/Stepper/index.d.ts.map +1 -0
- package/build/components/Stepper/index.js +2 -0
- package/build/components/Stepper/index.js.map +1 -0
- package/build/components/Switch/Switch.d.ts +29 -0
- package/build/components/Switch/Switch.d.ts.map +1 -0
- package/build/components/Switch/Switch.js +89 -0
- package/build/components/Switch/Switch.js.map +1 -0
- package/build/components/Switch/Switch.styles.d.ts +29 -0
- package/build/components/Switch/Switch.styles.d.ts.map +1 -0
- package/build/components/Switch/Switch.styles.js +26 -0
- package/build/components/Switch/Switch.styles.js.map +1 -0
- package/build/components/Switch/index.d.ts +3 -0
- package/build/components/Switch/index.d.ts.map +1 -0
- package/build/components/Switch/index.js +2 -0
- package/build/components/Switch/index.js.map +1 -0
- package/build/components/Tab/Tab.d.ts +52 -0
- package/build/components/Tab/Tab.d.ts.map +1 -0
- package/build/components/Tab/Tab.js +121 -0
- package/build/components/Tab/Tab.js.map +1 -0
- package/build/components/Tab/Tab.styles.d.ts +55 -0
- package/build/components/Tab/Tab.styles.d.ts.map +1 -0
- package/build/components/Tab/Tab.styles.js +60 -0
- package/build/components/Tab/Tab.styles.js.map +1 -0
- package/build/components/Tab/index.d.ts +3 -0
- package/build/components/Tab/index.d.ts.map +1 -0
- package/build/components/Tab/index.js +2 -0
- package/build/components/Tab/index.js.map +1 -0
- package/build/components/Tag/Tag.d.ts +4 -0
- package/build/components/Tag/Tag.d.ts.map +1 -0
- package/build/components/Tag/Tag.js +40 -0
- package/build/components/Tag/Tag.js.map +1 -0
- package/build/components/Tag/Tag.styles.d.ts +35 -0
- package/build/components/Tag/Tag.styles.d.ts.map +1 -0
- package/build/components/Tag/Tag.styles.js +43 -0
- package/build/components/Tag/Tag.styles.js.map +1 -0
- package/build/components/Tag/Tag.types.d.ts +23 -0
- package/build/components/Tag/Tag.types.d.ts.map +1 -0
- package/build/components/Tag/Tag.types.js +2 -0
- package/build/components/Tag/Tag.types.js.map +1 -0
- package/build/components/Tag/index.d.ts +3 -0
- package/build/components/Tag/index.d.ts.map +1 -0
- package/build/components/Tag/index.js +2 -0
- package/build/components/Tag/index.js.map +1 -0
- package/build/components/navigation/GeneralNav/GeneralNav.d.ts +21 -0
- package/build/components/navigation/GeneralNav/GeneralNav.d.ts.map +1 -0
- package/build/components/navigation/GeneralNav/GeneralNav.js +25 -0
- package/build/components/navigation/GeneralNav/GeneralNav.js.map +1 -0
- package/build/components/navigation/GeneralNav/GeneralNav.styles.d.ts +33 -0
- package/build/components/navigation/GeneralNav/GeneralNav.styles.d.ts.map +1 -0
- package/build/components/navigation/GeneralNav/GeneralNav.styles.js +35 -0
- package/build/components/navigation/GeneralNav/GeneralNav.styles.js.map +1 -0
- package/build/components/navigation/GeneralNav/index.d.ts +3 -0
- package/build/components/navigation/GeneralNav/index.d.ts.map +1 -0
- package/build/components/navigation/GeneralNav/index.js +2 -0
- package/build/components/navigation/GeneralNav/index.js.map +1 -0
- package/build/components/navigation/MobileCanva/MobileCanva.d.ts +11 -0
- package/build/components/navigation/MobileCanva/MobileCanva.d.ts.map +1 -0
- package/build/components/navigation/MobileCanva/MobileCanva.js +55 -0
- package/build/components/navigation/MobileCanva/MobileCanva.js.map +1 -0
- package/build/components/navigation/MobileCanva/MobileCanva.styles.d.ts +93 -0
- package/build/components/navigation/MobileCanva/MobileCanva.styles.d.ts.map +1 -0
- package/build/components/navigation/MobileCanva/MobileCanva.styles.js +94 -0
- package/build/components/navigation/MobileCanva/MobileCanva.styles.js.map +1 -0
- package/build/components/navigation/MobileCanva/MobileCanva.types.d.ts +21 -0
- package/build/components/navigation/MobileCanva/MobileCanva.types.d.ts.map +1 -0
- package/build/components/navigation/MobileCanva/MobileCanva.types.js +2 -0
- package/build/components/navigation/MobileCanva/MobileCanva.types.js.map +1 -0
- package/build/components/navigation/MobileCanva/index.d.ts +3 -0
- package/build/components/navigation/MobileCanva/index.d.ts.map +1 -0
- package/build/components/navigation/MobileCanva/index.js +2 -0
- package/build/components/navigation/MobileCanva/index.js.map +1 -0
- package/build/components/navigation/PageNav/PageNav.d.ts +46 -0
- package/build/components/navigation/PageNav/PageNav.d.ts.map +1 -0
- package/build/components/navigation/PageNav/PageNav.js +48 -0
- package/build/components/navigation/PageNav/PageNav.js.map +1 -0
- package/build/components/navigation/PageNav/PageNav.styles.d.ts +60 -0
- package/build/components/navigation/PageNav/PageNav.styles.d.ts.map +1 -0
- package/build/components/navigation/PageNav/PageNav.styles.js +60 -0
- package/build/components/navigation/PageNav/PageNav.styles.js.map +1 -0
- package/build/components/navigation/PageNav/index.d.ts +3 -0
- package/build/components/navigation/PageNav/index.d.ts.map +1 -0
- package/build/components/navigation/PageNav/index.js +2 -0
- package/build/components/navigation/PageNav/index.js.map +1 -0
- package/build/components/navigation/ScreenCanva/ScreenCanva.d.ts +8 -0
- package/build/components/navigation/ScreenCanva/ScreenCanva.d.ts.map +1 -0
- package/build/components/navigation/ScreenCanva/ScreenCanva.js +37 -0
- package/build/components/navigation/ScreenCanva/ScreenCanva.js.map +1 -0
- package/build/components/navigation/ScreenCanva/index.d.ts +3 -0
- package/build/components/navigation/ScreenCanva/index.d.ts.map +1 -0
- package/build/components/navigation/ScreenCanva/index.js +2 -0
- package/build/components/navigation/ScreenCanva/index.js.map +1 -0
- package/build/components/navigation/TabBar/TabBar.d.ts +22 -0
- package/build/components/navigation/TabBar/TabBar.d.ts.map +1 -0
- package/build/components/navigation/TabBar/TabBar.js +13 -0
- package/build/components/navigation/TabBar/TabBar.js.map +1 -0
- package/build/components/navigation/TabBar/TabBar.styles.d.ts +14 -0
- package/build/components/navigation/TabBar/TabBar.styles.d.ts.map +1 -0
- package/build/components/navigation/TabBar/TabBar.styles.js +16 -0
- package/build/components/navigation/TabBar/TabBar.styles.js.map +1 -0
- package/build/components/navigation/TabBar/index.d.ts +3 -0
- package/build/components/navigation/TabBar/index.d.ts.map +1 -0
- package/build/components/navigation/TabBar/index.js +2 -0
- package/build/components/navigation/TabBar/index.js.map +1 -0
- package/build/context/BottomSheetContext.d.ts +42 -0
- package/build/context/BottomSheetContext.d.ts.map +1 -0
- package/build/context/BottomSheetContext.js +51 -0
- package/build/context/BottomSheetContext.js.map +1 -0
- package/build/context/ThemeContext.d.ts +5 -1
- package/build/context/ThemeContext.d.ts.map +1 -1
- package/build/context/ThemeContext.js +4 -2
- package/build/context/ThemeContext.js.map +1 -1
- package/build/index.d.ts +79 -1
- package/build/index.d.ts.map +1 -1
- package/build/index.js +39 -0
- package/build/index.js.map +1 -1
- package/build/theme/tokens/dark.d.ts.map +1 -1
- package/build/theme/tokens/dark.js +263 -10
- package/build/theme/tokens/dark.js.map +1 -1
- package/build/theme/tokens/light.d.ts.map +1 -1
- package/build/theme/tokens/light.js +252 -7
- package/build/theme/tokens/light.js.map +1 -1
- package/build/theme/type.d.ts +398 -0
- package/build/theme/type.d.ts.map +1 -1
- package/build/theme/type.js.map +1 -1
- package/package.json +8 -5
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { StyleSheet } from 'react-native';
|
|
2
|
+
const TAIL_WIDTH = 12;
|
|
3
|
+
const TAIL_HEIGHT = 6;
|
|
4
|
+
const TAIL_SQUARE_SIZE = 8.5;
|
|
5
|
+
export const styles = StyleSheet.create({
|
|
6
|
+
// -- Simple pin
|
|
7
|
+
simpleRoot: {
|
|
8
|
+
alignItems: 'center',
|
|
9
|
+
width: 24,
|
|
10
|
+
},
|
|
11
|
+
simpleBadge: {
|
|
12
|
+
alignItems: 'center',
|
|
13
|
+
justifyContent: 'center',
|
|
14
|
+
padding: 4,
|
|
15
|
+
borderRadius: 9999,
|
|
16
|
+
borderWidth: 1,
|
|
17
|
+
},
|
|
18
|
+
// -- Pill pin
|
|
19
|
+
pillRoot: {
|
|
20
|
+
alignItems: 'center',
|
|
21
|
+
},
|
|
22
|
+
pillBadge: {
|
|
23
|
+
flexDirection: 'row',
|
|
24
|
+
alignItems: 'center',
|
|
25
|
+
height: 24,
|
|
26
|
+
paddingLeft: 4,
|
|
27
|
+
paddingRight: 6,
|
|
28
|
+
paddingVertical: 4,
|
|
29
|
+
gap: 2,
|
|
30
|
+
borderRadius: 9999,
|
|
31
|
+
borderWidth: 1,
|
|
32
|
+
},
|
|
33
|
+
pillShadow: {
|
|
34
|
+
// shadowColor is injected inline from colors.mapPin.pillShadowColor
|
|
35
|
+
shadowOffset: { width: 0, height: 0 },
|
|
36
|
+
shadowRadius: 6,
|
|
37
|
+
shadowOpacity: 0.25,
|
|
38
|
+
elevation: 4,
|
|
39
|
+
},
|
|
40
|
+
// -- Icon circle
|
|
41
|
+
iconCircle: {
|
|
42
|
+
alignItems: 'center',
|
|
43
|
+
justifyContent: 'center',
|
|
44
|
+
padding: 2,
|
|
45
|
+
borderRadius: 9999,
|
|
46
|
+
},
|
|
47
|
+
// -- Row wrapper (pin + labels)
|
|
48
|
+
row: {
|
|
49
|
+
flexDirection: 'row',
|
|
50
|
+
alignItems: 'flex-start',
|
|
51
|
+
gap: 4,
|
|
52
|
+
},
|
|
53
|
+
// -- Side label text (aligns with the center of the 24px badge)
|
|
54
|
+
labelText: {
|
|
55
|
+
fontSize: 14,
|
|
56
|
+
fontWeight: '600',
|
|
57
|
+
lineHeight: 16,
|
|
58
|
+
paddingTop: 4,
|
|
59
|
+
},
|
|
60
|
+
// -- Right-aligned for labelLeft
|
|
61
|
+
labelTextRight: {
|
|
62
|
+
textAlign: 'right',
|
|
63
|
+
},
|
|
64
|
+
// satellite adds shadow; color is always injected dynamically from tokens
|
|
65
|
+
labelTextSatellite: {
|
|
66
|
+
textShadowColor: 'rgba(0,0,0,0.5)',
|
|
67
|
+
textShadowOffset: { width: 0, height: 0 },
|
|
68
|
+
textShadowRadius: 4,
|
|
69
|
+
},
|
|
70
|
+
// -- Count label
|
|
71
|
+
countText: {
|
|
72
|
+
fontSize: 12,
|
|
73
|
+
fontWeight: '600',
|
|
74
|
+
lineHeight: 14,
|
|
75
|
+
},
|
|
76
|
+
// -- Tail (downward triangle: separate top-border line + clipped rotated square)
|
|
77
|
+
tailOuter: {
|
|
78
|
+
alignItems: 'center',
|
|
79
|
+
marginTop: 2,
|
|
80
|
+
},
|
|
81
|
+
tailBorderTop: {
|
|
82
|
+
width: TAIL_WIDTH, // 12px — spans the full triangle base
|
|
83
|
+
height: 1, // 1px horizontal top border (colored inline)
|
|
84
|
+
},
|
|
85
|
+
tailClip: {
|
|
86
|
+
width: TAIL_WIDTH, // 12px
|
|
87
|
+
height: TAIL_HEIGHT, // 6px — shows only the bottom half of the diamond
|
|
88
|
+
overflow: 'hidden',
|
|
89
|
+
alignItems: 'center',
|
|
90
|
+
},
|
|
91
|
+
tailSquare: {
|
|
92
|
+
width: TAIL_SQUARE_SIZE, // 8.5px — S = TAIL_WIDTH/√2 → diamond width ≈ 12px at y=0
|
|
93
|
+
height: TAIL_SQUARE_SIZE,
|
|
94
|
+
borderWidth: 1,
|
|
95
|
+
// places the diamond's widest point at y=0 of tailClip so the diagonal
|
|
96
|
+
// borders start flush with the ends of the horizontal top-border line
|
|
97
|
+
marginTop: -(TAIL_SQUARE_SIZE / 2),
|
|
98
|
+
transform: [{ rotate: '45deg' }],
|
|
99
|
+
},
|
|
100
|
+
});
|
|
101
|
+
//# sourceMappingURL=MapPin.styles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MapPin.styles.js","sourceRoot":"","sources":["../../../src/components/MapPin/MapPin.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,MAAM,UAAU,GAAG,EAAE,CAAC;AACtB,MAAM,WAAW,GAAG,CAAC,CAAC;AACtB,MAAM,gBAAgB,GAAG,GAAG,CAAC;AAE7B,MAAM,CAAC,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;IACtC,gBAAgB;IAChB,UAAU,EAAE;QACV,UAAU,EAAE,QAAQ;QACpB,KAAK,EAAE,EAAE;KACV;IACD,WAAW,EAAE;QACX,UAAU,EAAE,QAAQ;QACpB,cAAc,EAAE,QAAQ;QACxB,OAAO,EAAE,CAAC;QACV,YAAY,EAAE,IAAI;QAClB,WAAW,EAAE,CAAC;KACf;IAED,cAAc;IACd,QAAQ,EAAE;QACR,UAAU,EAAE,QAAQ;KACrB;IACD,SAAS,EAAE;QACT,aAAa,EAAE,KAAK;QACpB,UAAU,EAAE,QAAQ;QACpB,MAAM,EAAE,EAAE;QACV,WAAW,EAAE,CAAC;QACd,YAAY,EAAE,CAAC;QACf,eAAe,EAAE,CAAC;QAClB,GAAG,EAAE,CAAC;QACN,YAAY,EAAE,IAAI;QAClB,WAAW,EAAE,CAAC;KACf;IACD,UAAU,EAAE;QACV,oEAAoE;QACpE,YAAY,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE;QACrC,YAAY,EAAE,CAAC;QACf,aAAa,EAAE,IAAI;QACnB,SAAS,EAAE,CAAC;KACb;IAED,iBAAiB;IACjB,UAAU,EAAE;QACV,UAAU,EAAE,QAAQ;QACpB,cAAc,EAAE,QAAQ;QACxB,OAAO,EAAE,CAAC;QACV,YAAY,EAAE,IAAI;KACnB;IAED,gCAAgC;IAChC,GAAG,EAAE;QACH,aAAa,EAAE,KAAK;QACpB,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,CAAC;KACP;IAED,gEAAgE;IAChE,SAAS,EAAE;QACT,QAAQ,EAAE,EAAE;QACZ,UAAU,EAAE,KAAK;QACjB,UAAU,EAAE,EAAE;QACd,UAAU,EAAE,CAAC;KACd;IACD,iCAAiC;IACjC,cAAc,EAAE;QACd,SAAS,EAAE,OAAO;KACnB;IACD,0EAA0E;IAC1E,kBAAkB,EAAE;QAClB,eAAe,EAAE,iBAAiB;QAClC,gBAAgB,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE;QACzC,gBAAgB,EAAE,CAAC;KACpB;IAED,iBAAiB;IACjB,SAAS,EAAE;QACT,QAAQ,EAAE,EAAE;QACZ,UAAU,EAAE,KAAK;QACjB,UAAU,EAAE,EAAE;KACf;IAED,iFAAiF;IACjF,SAAS,EAAE;QACT,UAAU,EAAE,QAAQ;QACpB,SAAS,EAAE,CAAC;KACb;IACD,aAAa,EAAE;QACb,KAAK,EAAE,UAAU,EAAG,sCAAsC;QAC1D,MAAM,EAAE,CAAC,EAAW,6CAA6C;KAClE;IACD,QAAQ,EAAE;QACR,KAAK,EAAE,UAAU,EAAI,OAAO;QAC5B,MAAM,EAAE,WAAW,EAAE,kDAAkD;QACvE,QAAQ,EAAE,QAAQ;QAClB,UAAU,EAAE,QAAQ;KACrB;IACD,UAAU,EAAE;QACV,KAAK,EAAE,gBAAgB,EAAI,0DAA0D;QACrF,MAAM,EAAE,gBAAgB;QACxB,WAAW,EAAE,CAAC;QACd,uEAAuE;QACvE,sEAAsE;QACtE,SAAS,EAAE,CAAC,CAAC,gBAAgB,GAAG,CAAC,CAAC;QAClC,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;KACjC;CACF,CAAC,CAAC","sourcesContent":["import { StyleSheet } from 'react-native';\n\nconst TAIL_WIDTH = 12;\nconst TAIL_HEIGHT = 6;\nconst TAIL_SQUARE_SIZE = 8.5;\n\nexport const styles = StyleSheet.create({\n // -- Simple pin\n simpleRoot: {\n alignItems: 'center',\n width: 24,\n },\n simpleBadge: {\n alignItems: 'center',\n justifyContent: 'center',\n padding: 4,\n borderRadius: 9999,\n borderWidth: 1,\n },\n\n // -- Pill pin\n pillRoot: {\n alignItems: 'center',\n },\n pillBadge: {\n flexDirection: 'row',\n alignItems: 'center',\n height: 24,\n paddingLeft: 4,\n paddingRight: 6,\n paddingVertical: 4,\n gap: 2,\n borderRadius: 9999,\n borderWidth: 1,\n },\n pillShadow: {\n // shadowColor is injected inline from colors.mapPin.pillShadowColor\n shadowOffset: { width: 0, height: 0 },\n shadowRadius: 6,\n shadowOpacity: 0.25,\n elevation: 4,\n },\n\n // -- Icon circle\n iconCircle: {\n alignItems: 'center',\n justifyContent: 'center',\n padding: 2,\n borderRadius: 9999,\n },\n\n // -- Row wrapper (pin + labels)\n row: {\n flexDirection: 'row',\n alignItems: 'flex-start',\n gap: 4,\n },\n\n // -- Side label text (aligns with the center of the 24px badge)\n labelText: {\n fontSize: 14,\n fontWeight: '600',\n lineHeight: 16,\n paddingTop: 4,\n },\n // -- Right-aligned for labelLeft\n labelTextRight: {\n textAlign: 'right',\n },\n // satellite adds shadow; color is always injected dynamically from tokens\n labelTextSatellite: {\n textShadowColor: 'rgba(0,0,0,0.5)',\n textShadowOffset: { width: 0, height: 0 },\n textShadowRadius: 4,\n },\n\n // -- Count label\n countText: {\n fontSize: 12,\n fontWeight: '600',\n lineHeight: 14,\n },\n\n // -- Tail (downward triangle: separate top-border line + clipped rotated square)\n tailOuter: {\n alignItems: 'center',\n marginTop: 2,\n },\n tailBorderTop: {\n width: TAIL_WIDTH, // 12px — spans the full triangle base\n height: 1, // 1px horizontal top border (colored inline)\n },\n tailClip: {\n width: TAIL_WIDTH, // 12px\n height: TAIL_HEIGHT, // 6px — shows only the bottom half of the diamond\n overflow: 'hidden',\n alignItems: 'center',\n },\n tailSquare: {\n width: TAIL_SQUARE_SIZE, // 8.5px — S = TAIL_WIDTH/√2 → diamond width ≈ 12px at y=0\n height: TAIL_SQUARE_SIZE,\n borderWidth: 1,\n // places the diamond's widest point at y=0 of tailClip so the diagonal\n // borders start flush with the ends of the horizontal top-border line\n marginTop: -(TAIL_SQUARE_SIZE / 2),\n transform: [{ rotate: '45deg' }],\n },\n});\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/MapPin/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AACxE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/MapPin/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC","sourcesContent":["export { MapPin, MAP_PIN_HEIGHT, MAP_PIN_SIMPLE_WIDTH } from './MapPin';\nexport type { MapPinProps, MapPinState, MapPinType, MapPinLabelVariant } from './MapPin';\n"]}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MediaPicker — field-level media attachment widget.
|
|
3
|
+
*
|
|
4
|
+
* Two modes:
|
|
5
|
+
* - 'image': uses ImgPicker — principale slot + divider + additional slots (horizontal scroll)
|
|
6
|
+
* - 'file': vertical list of FileCards + a full-width "Ajouter un fichier" button.
|
|
7
|
+
*
|
|
8
|
+
* The component is fully controlled — it fires callbacks and the parent updates
|
|
9
|
+
* the images/files arrays.
|
|
10
|
+
*/
|
|
11
|
+
import type { StyleProp, ViewStyle } from 'react-native';
|
|
12
|
+
export type MediaPickerMode = 'image' | 'file';
|
|
13
|
+
export interface MediaPickerImageItem {
|
|
14
|
+
/** Unique identifier */
|
|
15
|
+
id: string;
|
|
16
|
+
/** Image URI */
|
|
17
|
+
uri: string;
|
|
18
|
+
}
|
|
19
|
+
export interface MediaPickerFileItem {
|
|
20
|
+
/** Unique identifier */
|
|
21
|
+
id: string;
|
|
22
|
+
/** Display file name */
|
|
23
|
+
filename: string;
|
|
24
|
+
/** First secondary text, shown left of the bullet (e.g. "4.3 Mo") */
|
|
25
|
+
detail?: string;
|
|
26
|
+
/** Second secondary text, shown right of the bullet (e.g. "17/04/2026") */
|
|
27
|
+
caption?: string;
|
|
28
|
+
/** MIME type — drives the icon choice */
|
|
29
|
+
mimeType?: string;
|
|
30
|
+
/** Image thumbnail URI — fills the icon area if provided */
|
|
31
|
+
thumbnailUri?: string;
|
|
32
|
+
}
|
|
33
|
+
export interface MediaPickerProps {
|
|
34
|
+
/** Picker mode: image slots or file list */
|
|
35
|
+
mode: MediaPickerMode;
|
|
36
|
+
/** Section label shown above the picker */
|
|
37
|
+
label?: string;
|
|
38
|
+
/** Optional subtitle / helper text below the label */
|
|
39
|
+
subtitle?: string;
|
|
40
|
+
/** Controlled principale image. If undefined, the principale slot is shown empty. */
|
|
41
|
+
principale?: MediaPickerImageItem;
|
|
42
|
+
/** Controlled additional image slots (independent from principale). */
|
|
43
|
+
additionalImages?: MediaPickerImageItem[];
|
|
44
|
+
/**
|
|
45
|
+
* Number of additional empty slots shown on first render.
|
|
46
|
+
* Default: 2 (matches Figma).
|
|
47
|
+
*/
|
|
48
|
+
initialAdditionalSlots?: number;
|
|
49
|
+
/**
|
|
50
|
+
* Maximum total images (1 principale + additional).
|
|
51
|
+
* When reached, no more empty slot is appended. Default: undefined (no limit).
|
|
52
|
+
*/
|
|
53
|
+
maxImages?: number;
|
|
54
|
+
/** Badge label on the principale slot. Default: "Principale" */
|
|
55
|
+
principaleLabel?: string;
|
|
56
|
+
/** Called when the user taps the empty principale slot */
|
|
57
|
+
onAddPrincipale?: () => void;
|
|
58
|
+
/** Called when the user taps an empty additional slot */
|
|
59
|
+
onAddAdditional?: () => void;
|
|
60
|
+
/** Called with the image id when the user taps the X remove button */
|
|
61
|
+
onRemoveImage?: (id: string) => void;
|
|
62
|
+
/** Controlled list of attached files */
|
|
63
|
+
files?: MediaPickerFileItem[];
|
|
64
|
+
/** Called when the user taps "Ajouter un fichier" */
|
|
65
|
+
onAddFile?: () => void;
|
|
66
|
+
/** Called with the file id when the user taps the remove button on a FileCard */
|
|
67
|
+
onRemoveFile?: (id: string) => void;
|
|
68
|
+
/** Additional style applied to the outer container */
|
|
69
|
+
style?: StyleProp<ViewStyle>;
|
|
70
|
+
/** Test identifier for automated testing */
|
|
71
|
+
testID?: string;
|
|
72
|
+
}
|
|
73
|
+
export declare const MediaPicker: ({ mode, label, subtitle, principale, additionalImages, initialAdditionalSlots, maxImages, principaleLabel, onAddPrincipale, onAddAdditional, onRemoveImage, files, onAddFile, onRemoveFile, style, testID, }: MediaPickerProps) => import("react").JSX.Element;
|
|
74
|
+
//# sourceMappingURL=MediaPicker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MediaPicker.d.ts","sourceRoot":"","sources":["../../../src/components/MediaPicker/MediaPicker.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAYzD,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,MAAM,CAAC;AAE/C,MAAM,WAAW,oBAAoB;IACnC,wBAAwB;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,gBAAgB;IAChB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,mBAAmB;IAClC,wBAAwB;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,wBAAwB;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,qEAAqE;IACrE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,2EAA2E;IAC3E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yCAAyC;IACzC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4DAA4D;IAC5D,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,gBAAgB;IAC/B,4CAA4C;IAC5C,IAAI,EAAE,eAAe,CAAC;IACtB,2CAA2C;IAC3C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,sDAAsD;IACtD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAGlB,qFAAqF;IACrF,UAAU,CAAC,EAAE,oBAAoB,CAAC;IAClC,uEAAuE;IACvE,gBAAgB,CAAC,EAAE,oBAAoB,EAAE,CAAC;IAC1C;;;OAGG;IACH,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gEAAgE;IAChE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,0DAA0D;IAC1D,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;IAC7B,yDAAyD;IACzD,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;IAC7B,sEAAsE;IACtE,aAAa,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAGrC,wCAAwC;IACxC,KAAK,CAAC,EAAE,mBAAmB,EAAE,CAAC;IAC9B,qDAAqD;IACrD,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,iFAAiF;IACjF,YAAY,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAEpC,sDAAsD;IACtD,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,4CAA4C;IAC5C,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAMD,eAAO,MAAM,WAAW,GAAI,8MAiBzB,gBAAgB,gCAoElB,CAAC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MediaPicker — field-level media attachment widget.
|
|
3
|
+
*
|
|
4
|
+
* Two modes:
|
|
5
|
+
* - 'image': uses ImgPicker — principale slot + divider + additional slots (horizontal scroll)
|
|
6
|
+
* - 'file': vertical list of FileCards + a full-width "Ajouter un fichier" button.
|
|
7
|
+
*
|
|
8
|
+
* The component is fully controlled — it fires callbacks and the parent updates
|
|
9
|
+
* the images/files arrays.
|
|
10
|
+
*/
|
|
11
|
+
import { Text, View } from 'react-native';
|
|
12
|
+
import { PlusCircle } from 'phosphor-react-native';
|
|
13
|
+
import { useTheme } from '../../context/ThemeContext';
|
|
14
|
+
import { ImgPicker } from '../ImgPicker';
|
|
15
|
+
import { FileCard } from '../FileCard';
|
|
16
|
+
import { Button } from '../Button';
|
|
17
|
+
import { styles } from './MediaPicker.styles';
|
|
18
|
+
// ---------------------------------------------------------------------------
|
|
19
|
+
// Component
|
|
20
|
+
// ---------------------------------------------------------------------------
|
|
21
|
+
export const MediaPicker = ({ mode, label, subtitle, principale, additionalImages, initialAdditionalSlots, maxImages, principaleLabel, onAddPrincipale, onAddAdditional, onRemoveImage, files = [], onAddFile, onRemoveFile, style, testID, }) => {
|
|
22
|
+
const { colors, fontFamily } = useTheme();
|
|
23
|
+
const mp = colors.mediaPicker;
|
|
24
|
+
return (<View style={[styles.container, style]} testID={testID}>
|
|
25
|
+
{/* Label section */}
|
|
26
|
+
{(label != null || subtitle != null) && (<View style={styles.labelBlock}>
|
|
27
|
+
{label != null && (<Text style={[styles.label, { color: mp.label, fontFamily }]}>{label}</Text>)}
|
|
28
|
+
{subtitle != null && (<Text style={[styles.subtitle, { color: mp.subtitle, fontFamily }]}>{subtitle}</Text>)}
|
|
29
|
+
</View>)}
|
|
30
|
+
|
|
31
|
+
{/* ── Image mode ────────────────────────────────────────────────── */}
|
|
32
|
+
{mode === 'image' && (<ImgPicker principale={principale} additionalImages={additionalImages} initialAdditionalSlots={initialAdditionalSlots} maxImages={maxImages} principaleLabel={principaleLabel} onAddPrincipale={onAddPrincipale} onAddAdditional={onAddAdditional} onRemoveImage={onRemoveImage}/>)}
|
|
33
|
+
|
|
34
|
+
{/* ── File mode ─────────────────────────────────────────────────── */}
|
|
35
|
+
{mode === 'file' && (<View style={styles.fileCol}>
|
|
36
|
+
{files.length > 0 && (<View style={styles.fileList}>
|
|
37
|
+
{files.map((f) => (<FileCard key={f.id} filename={f.filename} detail={f.detail} caption={f.caption} mimeType={f.mimeType} thumbnailUri={f.thumbnailUri} onRemove={onRemoveFile ? () => onRemoveFile(f.id) : undefined}/>))}
|
|
38
|
+
</View>)}
|
|
39
|
+
<Button variant="tertiary" size="M" label="Ajouter un fichier" iconLeft={<PlusCircle size={18} weight="duotone" color={colors.button.tertiary.default.icon}/>} onPress={onAddFile} style={styles.addButton}/>
|
|
40
|
+
</View>)}
|
|
41
|
+
</View>);
|
|
42
|
+
};
|
|
43
|
+
//# sourceMappingURL=MediaPicker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MediaPicker.js","sourceRoot":"","sources":["../../../src/components/MediaPicker/MediaPicker.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAE1C,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AA4E9C,8EAA8E;AAC9E,YAAY;AACZ,8EAA8E;AAE9E,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,EAC1B,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,UAAU,EACV,gBAAgB,EAChB,sBAAsB,EACtB,SAAS,EACT,eAAe,EACf,eAAe,EACf,eAAe,EACf,aAAa,EACb,KAAK,GAAG,EAAE,EACV,SAAS,EACT,YAAY,EACZ,KAAK,EACL,MAAM,GACW,EAAE,EAAE;IACrB,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,QAAQ,EAAE,CAAC;IAC1C,MAAM,EAAE,GAAG,MAAM,CAAC,WAAW,CAAC;IAE9B,OAAO,CACL,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CACrD;MAAA,CAAC,mBAAmB,CACpB;MAAA,CAAC,CAAC,KAAK,IAAI,IAAI,IAAI,QAAQ,IAAI,IAAI,CAAC,IAAI,CACtC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAC7B;UAAA,CAAC,KAAK,IAAI,IAAI,IAAI,CAChB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAC7E,CACD;UAAA,CAAC,QAAQ,IAAI,IAAI,IAAI,CACnB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,CACtF,CACH;QAAA,EAAE,IAAI,CAAC,CACR,CAED;;MAAA,CAAC,sEAAsE,CACvE;MAAA,CAAC,IAAI,KAAK,OAAO,IAAI,CACnB,CAAC,SAAS,CACR,UAAU,CAAC,CAAC,UAAU,CAAC,CACvB,gBAAgB,CAAC,CAAC,gBAAgB,CAAC,CACnC,sBAAsB,CAAC,CAAC,sBAAsB,CAAC,CAC/C,SAAS,CAAC,CAAC,SAAS,CAAC,CACrB,eAAe,CAAC,CAAC,eAAe,CAAC,CACjC,eAAe,CAAC,CAAC,eAAe,CAAC,CACjC,eAAe,CAAC,CAAC,eAAe,CAAC,CACjC,aAAa,CAAC,CAAC,aAAa,CAAC,EAC7B,CACH,CAED;;MAAA,CAAC,sEAAsE,CACvE;MAAA,CAAC,IAAI,KAAK,MAAM,IAAI,CAClB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAC1B;UAAA,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,CACnB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAC3B;cAAA,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAChB,CAAC,QAAQ,CACP,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CACV,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CACrB,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CACjB,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CACnB,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CACrB,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAC7B,QAAQ,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,EAC9D,CACH,CAAC,CACJ;YAAA,EAAE,IAAI,CAAC,CACR,CACD;UAAA,CAAC,MAAM,CACL,OAAO,CAAC,UAAU,CAClB,IAAI,CAAC,GAAG,CACR,KAAK,CAAC,oBAAoB,CAC1B,QAAQ,CAAC,CACP,CAAC,UAAU,CACT,IAAI,CAAC,CAAC,EAAE,CAAC,CACT,MAAM,CAAC,SAAS,CAChB,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAE/C,CAAC,CACD,OAAO,CAAC,CAAC,SAAS,CAAC,CACnB,KAAK,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,EAE5B;QAAA,EAAE,IAAI,CAAC,CACR,CACH;IAAA,EAAE,IAAI,CAAC,CACR,CAAC;AACJ,CAAC,CAAC","sourcesContent":["/**\n * MediaPicker — field-level media attachment widget.\n *\n * Two modes:\n * - 'image': uses ImgPicker — principale slot + divider + additional slots (horizontal scroll)\n * - 'file': vertical list of FileCards + a full-width \"Ajouter un fichier\" button.\n *\n * The component is fully controlled — it fires callbacks and the parent updates\n * the images/files arrays.\n */\n\nimport { Text, View } from 'react-native';\nimport type { StyleProp, ViewStyle } from 'react-native';\nimport { PlusCircle } from 'phosphor-react-native';\nimport { useTheme } from '../../context/ThemeContext';\nimport { ImgPicker } from '../ImgPicker';\nimport { FileCard } from '../FileCard';\nimport { Button } from '../Button';\nimport { styles } from './MediaPicker.styles';\n\n// ---------------------------------------------------------------------------\n// Types\n// ---------------------------------------------------------------------------\n\nexport type MediaPickerMode = 'image' | 'file';\n\nexport interface MediaPickerImageItem {\n /** Unique identifier */\n id: string;\n /** Image URI */\n uri: string;\n}\n\nexport interface MediaPickerFileItem {\n /** Unique identifier */\n id: string;\n /** Display file name */\n filename: string;\n /** First secondary text, shown left of the bullet (e.g. \"4.3 Mo\") */\n detail?: string;\n /** Second secondary text, shown right of the bullet (e.g. \"17/04/2026\") */\n caption?: string;\n /** MIME type — drives the icon choice */\n mimeType?: string;\n /** Image thumbnail URI — fills the icon area if provided */\n thumbnailUri?: string;\n}\n\nexport interface MediaPickerProps {\n /** Picker mode: image slots or file list */\n mode: MediaPickerMode;\n /** Section label shown above the picker */\n label?: string;\n /** Optional subtitle / helper text below the label */\n subtitle?: string;\n\n // --- Image mode ---\n /** Controlled principale image. If undefined, the principale slot is shown empty. */\n principale?: MediaPickerImageItem;\n /** Controlled additional image slots (independent from principale). */\n additionalImages?: MediaPickerImageItem[];\n /**\n * Number of additional empty slots shown on first render.\n * Default: 2 (matches Figma).\n */\n initialAdditionalSlots?: number;\n /**\n * Maximum total images (1 principale + additional).\n * When reached, no more empty slot is appended. Default: undefined (no limit).\n */\n maxImages?: number;\n /** Badge label on the principale slot. Default: \"Principale\" */\n principaleLabel?: string;\n /** Called when the user taps the empty principale slot */\n onAddPrincipale?: () => void;\n /** Called when the user taps an empty additional slot */\n onAddAdditional?: () => void;\n /** Called with the image id when the user taps the X remove button */\n onRemoveImage?: (id: string) => void;\n\n // --- File mode ---\n /** Controlled list of attached files */\n files?: MediaPickerFileItem[];\n /** Called when the user taps \"Ajouter un fichier\" */\n onAddFile?: () => void;\n /** Called with the file id when the user taps the remove button on a FileCard */\n onRemoveFile?: (id: string) => void;\n\n /** Additional style applied to the outer container */\n style?: StyleProp<ViewStyle>;\n /** Test identifier for automated testing */\n testID?: string;\n}\n\n// ---------------------------------------------------------------------------\n// Component\n// ---------------------------------------------------------------------------\n\nexport const MediaPicker = ({\n mode,\n label,\n subtitle,\n principale,\n additionalImages,\n initialAdditionalSlots,\n maxImages,\n principaleLabel,\n onAddPrincipale,\n onAddAdditional,\n onRemoveImage,\n files = [],\n onAddFile,\n onRemoveFile,\n style,\n testID,\n}: MediaPickerProps) => {\n const { colors, fontFamily } = useTheme();\n const mp = colors.mediaPicker;\n\n return (\n <View style={[styles.container, style]} testID={testID}>\n {/* Label section */}\n {(label != null || subtitle != null) && (\n <View style={styles.labelBlock}>\n {label != null && (\n <Text style={[styles.label, { color: mp.label, fontFamily }]}>{label}</Text>\n )}\n {subtitle != null && (\n <Text style={[styles.subtitle, { color: mp.subtitle, fontFamily }]}>{subtitle}</Text>\n )}\n </View>\n )}\n\n {/* ── Image mode ────────────────────────────────────────────────── */}\n {mode === 'image' && (\n <ImgPicker\n principale={principale}\n additionalImages={additionalImages}\n initialAdditionalSlots={initialAdditionalSlots}\n maxImages={maxImages}\n principaleLabel={principaleLabel}\n onAddPrincipale={onAddPrincipale}\n onAddAdditional={onAddAdditional}\n onRemoveImage={onRemoveImage}\n />\n )}\n\n {/* ── File mode ─────────────────────────────────────────────────── */}\n {mode === 'file' && (\n <View style={styles.fileCol}>\n {files.length > 0 && (\n <View style={styles.fileList}>\n {files.map((f) => (\n <FileCard\n key={f.id}\n filename={f.filename}\n detail={f.detail}\n caption={f.caption}\n mimeType={f.mimeType}\n thumbnailUri={f.thumbnailUri}\n onRemove={onRemoveFile ? () => onRemoveFile(f.id) : undefined}\n />\n ))}\n </View>\n )}\n <Button\n variant=\"tertiary\"\n size=\"M\"\n label=\"Ajouter un fichier\"\n iconLeft={\n <PlusCircle\n size={18}\n weight=\"duotone\"\n color={colors.button.tertiary.default.icon}\n />\n }\n onPress={onAddFile}\n style={styles.addButton}\n />\n </View>\n )}\n </View>\n );\n};\n\n"]}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
export declare const styles: {
|
|
2
|
+
container: {
|
|
3
|
+
gap: number;
|
|
4
|
+
};
|
|
5
|
+
labelBlock: {
|
|
6
|
+
gap: number;
|
|
7
|
+
};
|
|
8
|
+
label: {
|
|
9
|
+
fontSize: number;
|
|
10
|
+
fontWeight: "600";
|
|
11
|
+
lineHeight: number;
|
|
12
|
+
letterSpacing: number;
|
|
13
|
+
textTransform: "uppercase";
|
|
14
|
+
};
|
|
15
|
+
subtitle: {
|
|
16
|
+
fontSize: number;
|
|
17
|
+
fontWeight: "500";
|
|
18
|
+
lineHeight: number;
|
|
19
|
+
};
|
|
20
|
+
fileCol: {
|
|
21
|
+
gap: number;
|
|
22
|
+
};
|
|
23
|
+
fileList: {
|
|
24
|
+
gap: number;
|
|
25
|
+
};
|
|
26
|
+
addButton: {
|
|
27
|
+
alignSelf: "stretch";
|
|
28
|
+
};
|
|
29
|
+
};
|
|
30
|
+
//# sourceMappingURL=MediaPicker.styles.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MediaPicker.styles.d.ts","sourceRoot":"","sources":["../../../src/components/MediaPicker/MediaPicker.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4BjB,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { StyleSheet } from 'react-native';
|
|
2
|
+
export const styles = StyleSheet.create({
|
|
3
|
+
container: {
|
|
4
|
+
gap: 4,
|
|
5
|
+
},
|
|
6
|
+
labelBlock: {
|
|
7
|
+
gap: 0,
|
|
8
|
+
},
|
|
9
|
+
label: {
|
|
10
|
+
fontSize: 12,
|
|
11
|
+
fontWeight: '600',
|
|
12
|
+
lineHeight: 16,
|
|
13
|
+
letterSpacing: 0.72,
|
|
14
|
+
textTransform: 'uppercase',
|
|
15
|
+
},
|
|
16
|
+
subtitle: {
|
|
17
|
+
fontSize: 12,
|
|
18
|
+
fontWeight: '500',
|
|
19
|
+
lineHeight: 16,
|
|
20
|
+
},
|
|
21
|
+
fileCol: {
|
|
22
|
+
gap: 8,
|
|
23
|
+
},
|
|
24
|
+
fileList: {
|
|
25
|
+
gap: 4,
|
|
26
|
+
},
|
|
27
|
+
addButton: {
|
|
28
|
+
alignSelf: 'stretch',
|
|
29
|
+
},
|
|
30
|
+
});
|
|
31
|
+
//# sourceMappingURL=MediaPicker.styles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MediaPicker.styles.js","sourceRoot":"","sources":["../../../src/components/MediaPicker/MediaPicker.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,MAAM,CAAC,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;IACtC,SAAS,EAAE;QACT,GAAG,EAAE,CAAC;KACP;IACD,UAAU,EAAE;QACV,GAAG,EAAE,CAAC;KACP;IACD,KAAK,EAAE;QACL,QAAQ,EAAE,EAAE;QACZ,UAAU,EAAE,KAAK;QACjB,UAAU,EAAE,EAAE;QACd,aAAa,EAAE,IAAI;QACnB,aAAa,EAAE,WAAW;KAC3B;IACD,QAAQ,EAAE;QACR,QAAQ,EAAE,EAAE;QACZ,UAAU,EAAE,KAAK;QACjB,UAAU,EAAE,EAAE;KACf;IACD,OAAO,EAAE;QACP,GAAG,EAAE,CAAC;KACP;IACD,QAAQ,EAAE;QACR,GAAG,EAAE,CAAC;KACP;IACD,SAAS,EAAE;QACT,SAAS,EAAE,SAAS;KACrB;CACF,CAAC,CAAC","sourcesContent":["import { StyleSheet } from 'react-native';\n\nexport const styles = StyleSheet.create({\n container: {\n gap: 4,\n },\n labelBlock: {\n gap: 0,\n },\n label: {\n fontSize: 12,\n fontWeight: '600',\n lineHeight: 16,\n letterSpacing: 0.72,\n textTransform: 'uppercase',\n },\n subtitle: {\n fontSize: 12,\n fontWeight: '500',\n lineHeight: 16,\n },\n fileCol: {\n gap: 8,\n },\n fileList: {\n gap: 4,\n },\n addButton: {\n alignSelf: 'stretch',\n },\n});\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/MediaPicker/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,YAAY,EACV,gBAAgB,EAChB,eAAe,EACf,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/MediaPicker/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC","sourcesContent":["export { MediaPicker } from './MediaPicker';\nexport type {\n MediaPickerProps,\n MediaPickerMode,\n MediaPickerImageItem,\n MediaPickerFileItem,\n} from './MediaPicker';\n"]}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PhotoCard — 160 × 140 image slot used inside the image-mode MediaPicker.
|
|
3
|
+
*
|
|
4
|
+
* Default state: empty "+" slot, beige background, optional "Principale" badge.
|
|
5
|
+
* Used state: image fill (cover) + top gradient overlay + XCircle remove button
|
|
6
|
+
* + optional "Principale" badge.
|
|
7
|
+
*/
|
|
8
|
+
import type { StyleProp, ViewStyle } from 'react-native';
|
|
9
|
+
export interface PhotoCardProps {
|
|
10
|
+
/** Image URI — if provided, shows the "Used" state; if omitted shows the empty "+" slot */
|
|
11
|
+
uri?: string;
|
|
12
|
+
/** Show the badge at the bottom of the card */
|
|
13
|
+
principale?: boolean;
|
|
14
|
+
/** Badge label — defaults to "Principale" */
|
|
15
|
+
principaleLabel?: string;
|
|
16
|
+
/** Called when the card area is pressed (empty slot or image area) */
|
|
17
|
+
onPress?: () => void;
|
|
18
|
+
/** Called when the X remove button is pressed — only rendered in Used state */
|
|
19
|
+
onRemove?: () => void;
|
|
20
|
+
/** Additional style applied to the card container */
|
|
21
|
+
style?: StyleProp<ViewStyle>;
|
|
22
|
+
/** Test identifier for automated testing */
|
|
23
|
+
testID?: string;
|
|
24
|
+
/** Accessibility label for the card press area */
|
|
25
|
+
accessibilityLabel?: string;
|
|
26
|
+
}
|
|
27
|
+
export declare const PhotoCard: ({ uri, principale, principaleLabel, onPress, onRemove, style, testID, accessibilityLabel, }: PhotoCardProps) => import("react").JSX.Element;
|
|
28
|
+
//# sourceMappingURL=PhotoCard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PhotoCard.d.ts","sourceRoot":"","sources":["../../../src/components/PhotoCard/PhotoCard.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAUzD,MAAM,WAAW,cAAc;IAC7B,2FAA2F;IAC3F,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,+CAA+C;IAC/C,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,6CAA6C;IAC7C,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,sEAAsE;IACtE,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,+EAA+E;IAC/E,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,qDAAqD;IACrD,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,4CAA4C;IAC5C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kDAAkD;IAClD,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAMD,eAAO,MAAM,SAAS,GAAI,6FASvB,cAAc,gCAkEhB,CAAC"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PhotoCard — 160 × 140 image slot used inside the image-mode MediaPicker.
|
|
3
|
+
*
|
|
4
|
+
* Default state: empty "+" slot, beige background, optional "Principale" badge.
|
|
5
|
+
* Used state: image fill (cover) + top gradient overlay + XCircle remove button
|
|
6
|
+
* + optional "Principale" badge.
|
|
7
|
+
*/
|
|
8
|
+
import { Image, Pressable, StyleSheet, Text, View } from 'react-native';
|
|
9
|
+
import { LinearGradient } from 'expo-linear-gradient';
|
|
10
|
+
import { Plus, XCircle } from 'phosphor-react-native';
|
|
11
|
+
import { useTheme } from '../../context/ThemeContext';
|
|
12
|
+
import { styles } from './PhotoCard.styles';
|
|
13
|
+
// ---------------------------------------------------------------------------
|
|
14
|
+
// Component
|
|
15
|
+
// ---------------------------------------------------------------------------
|
|
16
|
+
export const PhotoCard = ({ uri, principale = false, principaleLabel = 'Principale', onPress, onRemove, style, testID, accessibilityLabel, }) => {
|
|
17
|
+
const { colors, fontFamily } = useTheme();
|
|
18
|
+
const pc = colors.mediaPicker.photoCard;
|
|
19
|
+
const isUsed = !!uri;
|
|
20
|
+
return (<Pressable onPress={onPress} style={[
|
|
21
|
+
styles.card,
|
|
22
|
+
{
|
|
23
|
+
borderColor: pc.border,
|
|
24
|
+
backgroundColor: isUsed ? 'transparent' : pc.emptyBackground,
|
|
25
|
+
},
|
|
26
|
+
style,
|
|
27
|
+
]} testID={testID} accessibilityRole="button" accessibilityLabel={accessibilityLabel ?? (isUsed ? 'Photo' : 'Ajouter une photo')}>
|
|
28
|
+
{/* Empty state — "+" icon */}
|
|
29
|
+
{!isUsed && (<Plus size={20} weight="regular" color={colors.text.primary}/>)}
|
|
30
|
+
|
|
31
|
+
{/* Used state — image + gradient + remove button */}
|
|
32
|
+
{isUsed && uri && (<>
|
|
33
|
+
<Image source={{ uri }} style={StyleSheet.absoluteFillObject} resizeMode="cover"/>
|
|
34
|
+
<LinearGradient colors={['rgba(0,0,0,0.5)', 'rgba(0,0,0,0)']} start={{ x: 0, y: 0 }} end={{ x: 0, y: 1 }} locations={[0, 0.58]} style={StyleSheet.absoluteFillObject}/>
|
|
35
|
+
{onRemove && (<Pressable onPress={onRemove} style={styles.removeButton} hitSlop={8} testID="photo-card-remove" accessibilityRole="button" accessibilityLabel="Supprimer la photo">
|
|
36
|
+
<XCircle size={28} weight="duotone" color={pc.removeIcon}/>
|
|
37
|
+
</Pressable>)}
|
|
38
|
+
</>)}
|
|
39
|
+
|
|
40
|
+
{/* "Principale" badge */}
|
|
41
|
+
{principale && (<View style={styles.badgeRow}>
|
|
42
|
+
<View style={[styles.badge, { backgroundColor: pc.badgeBackground }]}>
|
|
43
|
+
<Text style={[styles.badgeText, { color: pc.badgeText, fontFamily }]}>
|
|
44
|
+
{principaleLabel}
|
|
45
|
+
</Text>
|
|
46
|
+
</View>
|
|
47
|
+
</View>)}
|
|
48
|
+
|
|
49
|
+
{/* Inner border overlay — sits on top of the image so border is always visible */}
|
|
50
|
+
<View style={[styles.innerBorder, { borderColor: pc.border }]}/>
|
|
51
|
+
</Pressable>);
|
|
52
|
+
};
|
|
53
|
+
//# sourceMappingURL=PhotoCard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PhotoCard.js","sourceRoot":"","sources":["../../../src/components/PhotoCard/PhotoCard.tsx"],"names":[],"mappings":"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","sourcesContent":["/**\n * PhotoCard — 160 × 140 image slot used inside the image-mode MediaPicker.\n *\n * Default state: empty \"+\" slot, beige background, optional \"Principale\" badge.\n * Used state: image fill (cover) + top gradient overlay + XCircle remove button\n * + optional \"Principale\" badge.\n */\n\nimport { Image, Pressable, StyleSheet, Text, View } from 'react-native';\nimport type { StyleProp, ViewStyle } from 'react-native';\nimport { LinearGradient } from 'expo-linear-gradient';\nimport { Plus, XCircle } from 'phosphor-react-native';\nimport { useTheme } from '../../context/ThemeContext';\nimport { styles } from './PhotoCard.styles';\n\n// ---------------------------------------------------------------------------\n// Types\n// ---------------------------------------------------------------------------\n\nexport interface PhotoCardProps {\n /** Image URI — if provided, shows the \"Used\" state; if omitted shows the empty \"+\" slot */\n uri?: string;\n /** Show the badge at the bottom of the card */\n principale?: boolean;\n /** Badge label — defaults to \"Principale\" */\n principaleLabel?: string;\n /** Called when the card area is pressed (empty slot or image area) */\n onPress?: () => void;\n /** Called when the X remove button is pressed — only rendered in Used state */\n onRemove?: () => void;\n /** Additional style applied to the card container */\n style?: StyleProp<ViewStyle>;\n /** Test identifier for automated testing */\n testID?: string;\n /** Accessibility label for the card press area */\n accessibilityLabel?: string;\n}\n\n// ---------------------------------------------------------------------------\n// Component\n// ---------------------------------------------------------------------------\n\nexport const PhotoCard = ({\n uri,\n principale = false,\n principaleLabel = 'Principale',\n onPress,\n onRemove,\n style,\n testID,\n accessibilityLabel,\n}: PhotoCardProps) => {\n const { colors, fontFamily } = useTheme();\n const pc = colors.mediaPicker.photoCard;\n const isUsed = !!uri;\n\n return (\n <Pressable\n onPress={onPress}\n style={[\n styles.card,\n {\n borderColor: pc.border,\n backgroundColor: isUsed ? 'transparent' : pc.emptyBackground,\n },\n style,\n ]}\n testID={testID}\n accessibilityRole=\"button\"\n accessibilityLabel={accessibilityLabel ?? (isUsed ? 'Photo' : 'Ajouter une photo')}\n >\n {/* Empty state — \"+\" icon */}\n {!isUsed && (\n <Plus size={20} weight=\"regular\" color={colors.text.primary} />\n )}\n\n {/* Used state — image + gradient + remove button */}\n {isUsed && uri && (\n <>\n <Image source={{ uri }} style={StyleSheet.absoluteFillObject} resizeMode=\"cover\" />\n <LinearGradient\n colors={['rgba(0,0,0,0.5)', 'rgba(0,0,0,0)']}\n start={{ x: 0, y: 0 }}\n end={{ x: 0, y: 1 }}\n locations={[0, 0.58]}\n style={StyleSheet.absoluteFillObject}\n />\n {onRemove && (\n <Pressable\n onPress={onRemove}\n style={styles.removeButton}\n hitSlop={8}\n testID=\"photo-card-remove\"\n accessibilityRole=\"button\"\n accessibilityLabel=\"Supprimer la photo\"\n >\n <XCircle size={28} weight=\"duotone\" color={pc.removeIcon} />\n </Pressable>\n )}\n </>\n )}\n\n {/* \"Principale\" badge */}\n {principale && (\n <View style={styles.badgeRow}>\n <View style={[styles.badge, { backgroundColor: pc.badgeBackground }]}>\n <Text style={[styles.badgeText, { color: pc.badgeText, fontFamily }]}>\n {principaleLabel}\n </Text>\n </View>\n </View>\n )}\n\n {/* Inner border overlay — sits on top of the image so border is always visible */}\n <View style={[styles.innerBorder, { borderColor: pc.border }]} />\n </Pressable>\n );\n};\n\n"]}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
export declare const styles: {
|
|
2
|
+
card: {
|
|
3
|
+
width: number;
|
|
4
|
+
height: number;
|
|
5
|
+
borderRadius: number;
|
|
6
|
+
overflow: "hidden";
|
|
7
|
+
alignItems: "center";
|
|
8
|
+
justifyContent: "center";
|
|
9
|
+
};
|
|
10
|
+
innerBorder: {
|
|
11
|
+
position: "absolute";
|
|
12
|
+
top: number;
|
|
13
|
+
left: number;
|
|
14
|
+
right: number;
|
|
15
|
+
bottom: number;
|
|
16
|
+
borderRadius: number;
|
|
17
|
+
borderWidth: number;
|
|
18
|
+
pointerEvents: "none";
|
|
19
|
+
};
|
|
20
|
+
removeButton: {
|
|
21
|
+
position: "absolute";
|
|
22
|
+
right: number;
|
|
23
|
+
top: number;
|
|
24
|
+
width: number;
|
|
25
|
+
height: number;
|
|
26
|
+
alignItems: "center";
|
|
27
|
+
justifyContent: "center";
|
|
28
|
+
};
|
|
29
|
+
badgeRow: {
|
|
30
|
+
position: "absolute";
|
|
31
|
+
bottom: number;
|
|
32
|
+
left: number;
|
|
33
|
+
right: number;
|
|
34
|
+
alignItems: "center";
|
|
35
|
+
};
|
|
36
|
+
badge: {
|
|
37
|
+
paddingHorizontal: number;
|
|
38
|
+
paddingVertical: number;
|
|
39
|
+
borderRadius: number;
|
|
40
|
+
};
|
|
41
|
+
badgeText: {
|
|
42
|
+
fontSize: number;
|
|
43
|
+
fontWeight: "500";
|
|
44
|
+
lineHeight: number;
|
|
45
|
+
};
|
|
46
|
+
};
|
|
47
|
+
//# sourceMappingURL=PhotoCard.styles.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PhotoCard.styles.d.ts","sourceRoot":"","sources":["../../../src/components/PhotoCard/PhotoCard.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0CjB,CAAC"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { StyleSheet } from 'react-native';
|
|
2
|
+
export const styles = StyleSheet.create({
|
|
3
|
+
card: {
|
|
4
|
+
width: 160,
|
|
5
|
+
height: 140,
|
|
6
|
+
borderRadius: 8,
|
|
7
|
+
overflow: 'hidden',
|
|
8
|
+
alignItems: 'center',
|
|
9
|
+
justifyContent: 'center',
|
|
10
|
+
},
|
|
11
|
+
innerBorder: {
|
|
12
|
+
position: 'absolute',
|
|
13
|
+
top: 0, left: 0, right: 0, bottom: 0,
|
|
14
|
+
borderRadius: 8,
|
|
15
|
+
borderWidth: 1,
|
|
16
|
+
pointerEvents: 'none',
|
|
17
|
+
},
|
|
18
|
+
removeButton: {
|
|
19
|
+
position: 'absolute',
|
|
20
|
+
right: 5,
|
|
21
|
+
top: 5,
|
|
22
|
+
width: 28,
|
|
23
|
+
height: 28,
|
|
24
|
+
alignItems: 'center',
|
|
25
|
+
justifyContent: 'center',
|
|
26
|
+
},
|
|
27
|
+
badgeRow: {
|
|
28
|
+
position: 'absolute',
|
|
29
|
+
bottom: 7,
|
|
30
|
+
left: 0,
|
|
31
|
+
right: 0,
|
|
32
|
+
alignItems: 'center',
|
|
33
|
+
},
|
|
34
|
+
badge: {
|
|
35
|
+
paddingHorizontal: 8,
|
|
36
|
+
paddingVertical: 2,
|
|
37
|
+
borderRadius: 9999,
|
|
38
|
+
},
|
|
39
|
+
badgeText: {
|
|
40
|
+
fontSize: 14,
|
|
41
|
+
fontWeight: '500',
|
|
42
|
+
lineHeight: 20,
|
|
43
|
+
},
|
|
44
|
+
});
|
|
45
|
+
//# sourceMappingURL=PhotoCard.styles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PhotoCard.styles.js","sourceRoot":"","sources":["../../../src/components/PhotoCard/PhotoCard.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,MAAM,CAAC,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;IACtC,IAAI,EAAE;QACJ,KAAK,EAAE,GAAG;QACV,MAAM,EAAE,GAAG;QACX,YAAY,EAAE,CAAC;QACf,QAAQ,EAAE,QAAQ;QAClB,UAAU,EAAE,QAAQ;QACpB,cAAc,EAAE,QAAQ;KACzB;IACD,WAAW,EAAE;QACX,QAAQ,EAAE,UAAU;QACpB,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC;QACpC,YAAY,EAAE,CAAC;QACf,WAAW,EAAE,CAAC;QACd,aAAa,EAAE,MAAM;KACtB;IACD,YAAY,EAAE;QACZ,QAAQ,EAAE,UAAU;QACpB,KAAK,EAAE,CAAC;QACR,GAAG,EAAE,CAAC;QACN,KAAK,EAAE,EAAE;QACT,MAAM,EAAE,EAAE;QACV,UAAU,EAAE,QAAQ;QACpB,cAAc,EAAE,QAAQ;KACzB;IACD,QAAQ,EAAE;QACR,QAAQ,EAAE,UAAU;QACpB,MAAM,EAAE,CAAC;QACT,IAAI,EAAE,CAAC;QACP,KAAK,EAAE,CAAC;QACR,UAAU,EAAE,QAAQ;KACrB;IACD,KAAK,EAAE;QACL,iBAAiB,EAAE,CAAC;QACpB,eAAe,EAAE,CAAC;QAClB,YAAY,EAAE,IAAI;KACnB;IACD,SAAS,EAAE;QACT,QAAQ,EAAE,EAAE;QACZ,UAAU,EAAE,KAAK;QACjB,UAAU,EAAE,EAAE;KACf;CACF,CAAC,CAAC","sourcesContent":["import { StyleSheet } from 'react-native';\n\nexport const styles = StyleSheet.create({\n card: {\n width: 160,\n height: 140,\n borderRadius: 8,\n overflow: 'hidden',\n alignItems: 'center',\n justifyContent: 'center',\n },\n innerBorder: {\n position: 'absolute',\n top: 0, left: 0, right: 0, bottom: 0,\n borderRadius: 8,\n borderWidth: 1,\n pointerEvents: 'none',\n },\n removeButton: {\n position: 'absolute',\n right: 5,\n top: 5,\n width: 28,\n height: 28,\n alignItems: 'center',\n justifyContent: 'center',\n },\n badgeRow: {\n position: 'absolute',\n bottom: 7,\n left: 0,\n right: 0,\n alignItems: 'center',\n },\n badge: {\n paddingHorizontal: 8,\n paddingVertical: 2,\n borderRadius: 9999,\n },\n badgeText: {\n fontSize: 14,\n fontWeight: '500',\n lineHeight: 20,\n },\n});\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/PhotoCard/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/PhotoCard/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC","sourcesContent":["export { PhotoCard } from './PhotoCard';\nexport type { PhotoCardProps } from './PhotoCard';\n"]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export interface ProgressStepProps {
|
|
2
|
+
/** Total number of steps */
|
|
3
|
+
totalSteps: number;
|
|
4
|
+
/** Index of the current active step (0-based) */
|
|
5
|
+
currentStep: number;
|
|
6
|
+
}
|
|
7
|
+
export declare function ProgressStep({ totalSteps, currentStep }: ProgressStepProps): import("react").JSX.Element;
|
|
8
|
+
export default ProgressStep;
|
|
9
|
+
//# sourceMappingURL=ProgressStep.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProgressStep.d.ts","sourceRoot":"","sources":["../../../src/components/ProgressStep/ProgressStep.tsx"],"names":[],"mappings":"AAQA,MAAM,WAAW,iBAAiB;IAChC,4BAA4B;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,iDAAiD;IACjD,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,YAAY,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE,EAAE,iBAAiB,+BAsB1E;AAED,eAAe,YAAY,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ProgressStep — horizontal step progress indicator.
|
|
3
|
+
* Renders a row of segments: completed/active segments are filled, future ones are dimmed.
|
|
4
|
+
*/
|
|
5
|
+
import { View } from 'react-native';
|
|
6
|
+
import { useTheme } from '../../context/ThemeContext';
|
|
7
|
+
import { styles } from './ProgressStep.styles';
|
|
8
|
+
export function ProgressStep({ totalSteps, currentStep }) {
|
|
9
|
+
const { colors } = useTheme();
|
|
10
|
+
return (<View style={styles.row} accessibilityRole="progressbar" accessibilityValue={{ min: 0, max: totalSteps - 1, now: currentStep }}>
|
|
11
|
+
{Array.from({ length: totalSteps }, (_, index) => (<View key={index} style={[
|
|
12
|
+
styles.segment,
|
|
13
|
+
{
|
|
14
|
+
flex: 1,
|
|
15
|
+
backgroundColor: index < currentStep ? colors.progressStep.done :
|
|
16
|
+
index === currentStep ? colors.progressStep.active :
|
|
17
|
+
colors.progressStep.default,
|
|
18
|
+
},
|
|
19
|
+
]}/>))}
|
|
20
|
+
</View>);
|
|
21
|
+
}
|
|
22
|
+
export default ProgressStep;
|
|
23
|
+
//# sourceMappingURL=ProgressStep.js.map
|