@herca/rn-kit 0.1.5 → 0.1.7
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 +27 -2
- package/lib/module/Accordion/README.md +14 -6
- package/lib/module/Alert/README.md +1 -1
- package/lib/module/DropDown/DropDown.js +49 -45
- package/lib/module/DropDown/DropDown.js.map +1 -1
- package/lib/module/DropDown/README.md +1 -0
- package/lib/module/List/README.md +49 -0
- package/lib/module/Modal/Modal.js +1 -1
- package/lib/module/Modal/Modal.js.map +1 -1
- package/lib/module/Modal/README.md +39 -0
- package/lib/module/Provider/Provider.js +2 -0
- package/lib/module/Provider/Provider.js.map +1 -1
- package/lib/module/Step/README.md +91 -0
- package/lib/module/Timeline/README.md +80 -0
- package/lib/module/Timeline/Timeline.js +7 -1
- package/lib/module/Timeline/Timeline.js.map +1 -1
- package/lib/module/Timeline/TimelineItem.js +15 -5
- package/lib/module/Timeline/TimelineItem.js.map +1 -1
- package/lib/module/Toast/README.md +71 -0
- package/lib/module/Ui/README_CARD.md +76 -0
- package/lib/module/Ui/README_CONTAINER.md +26 -0
- package/lib/module/index.js +0 -1
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/src/DropDown/DropDown.d.ts.map +1 -1
- package/lib/typescript/src/DropDown/type.d.ts +1 -1
- package/lib/typescript/src/DropDown/type.d.ts.map +1 -1
- package/lib/typescript/src/Provider/Provider.d.ts +2 -2
- package/lib/typescript/src/Provider/Provider.d.ts.map +1 -1
- package/lib/typescript/src/Provider/type.d.ts +2 -2
- package/lib/typescript/src/Provider/type.d.ts.map +1 -1
- package/lib/typescript/src/Timeline/TimelineItem.d.ts +1 -1
- package/lib/typescript/src/Timeline/TimelineItem.d.ts.map +1 -1
- package/lib/typescript/src/index.d.ts +0 -1
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/Accordion/README.md +14 -6
- package/src/Alert/README.md +1 -1
- package/src/DropDown/DropDown.tsx +54 -58
- package/src/DropDown/README.md +1 -0
- package/src/DropDown/type.tsx +1 -1
- package/src/List/README.md +49 -0
- package/src/Modal/Modal.tsx +2 -2
- package/src/Modal/README.md +39 -0
- package/src/Provider/Provider.tsx +4 -2
- package/src/Provider/type.tsx +2 -2
- package/src/Step/README.md +91 -0
- package/src/Timeline/README.md +80 -0
- package/src/Timeline/Timeline.tsx +8 -2
- package/src/Timeline/TimelineItem.tsx +16 -3
- package/src/Toast/README.md +71 -0
- package/src/Ui/README_CARD.md +76 -0
- package/src/Ui/README_CONTAINER.md +26 -0
- package/src/index.tsx +0 -1
- package/lib/module/SwitchButton/SwitchButton.js +0 -8
- package/lib/module/SwitchButton/SwitchButton.js.map +0 -1
- package/lib/module/TextArea/TextArea.js +0 -2
- package/lib/module/TextArea/TextArea.js.map +0 -1
- package/lib/typescript/src/SwitchButton/SwitchButton.d.ts +0 -2
- package/lib/typescript/src/SwitchButton/SwitchButton.d.ts.map +0 -1
- package/lib/typescript/src/TextArea/TextArea.d.ts +0 -1
- package/lib/typescript/src/TextArea/TextArea.d.ts.map +0 -1
- package/src/SwitchButton/SwitchButton.tsx +0 -5
- package/src/TextArea/TextArea.tsx +0 -0
- /package/lib/module/Input/{Input.md → README_INPUT.md} +0 -0
- /package/src/Input/{Input.md → README_INPUT.md} +0 -0
|
@@ -17,6 +17,18 @@ export default function TimelineItem({
|
|
|
17
17
|
color = 'primary'
|
|
18
18
|
}) {
|
|
19
19
|
const [contentHeight, setContentHeight] = useState(0);
|
|
20
|
+
const renderDashes = count => {
|
|
21
|
+
return Array.from({
|
|
22
|
+
length: count
|
|
23
|
+
}).map((_, index) => /*#__PURE__*/_jsx(View, {
|
|
24
|
+
style: {
|
|
25
|
+
width: 1,
|
|
26
|
+
height: 4,
|
|
27
|
+
backgroundColor: Color.gray[400],
|
|
28
|
+
marginVertical: 2
|
|
29
|
+
}
|
|
30
|
+
}, index));
|
|
31
|
+
};
|
|
20
32
|
return /*#__PURE__*/_jsxs(View, {
|
|
21
33
|
style: styles.container,
|
|
22
34
|
children: [/*#__PURE__*/_jsxs(View, {
|
|
@@ -25,9 +37,7 @@ export default function TimelineItem({
|
|
|
25
37
|
name: "RadioButton",
|
|
26
38
|
color: COLOR_MAP[color]
|
|
27
39
|
}), /*#__PURE__*/_jsx(View, {
|
|
28
|
-
|
|
29
|
-
height: contentHeight - 20
|
|
30
|
-
}]
|
|
40
|
+
children: renderDashes(Math.floor((contentHeight - 20) / 6))
|
|
31
41
|
})]
|
|
32
42
|
}), /*#__PURE__*/_jsx(View, {
|
|
33
43
|
style: styles.flex,
|
|
@@ -54,10 +64,10 @@ const styles = StyleSheet.create({
|
|
|
54
64
|
},
|
|
55
65
|
border: {
|
|
56
66
|
width: 1,
|
|
67
|
+
borderWidth: 1,
|
|
57
68
|
borderLeftWidth: 1,
|
|
58
69
|
borderLeftColor: Color.gray[400],
|
|
59
|
-
borderStyle: 'dashed'
|
|
60
|
-
marginTop: 4
|
|
70
|
+
borderStyle: 'dashed'
|
|
61
71
|
},
|
|
62
72
|
flex: {
|
|
63
73
|
flex: 1
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useState","StyleSheet","View","Color","Icon","jsx","_jsx","jsxs","_jsxs","COLOR_MAP","warning","primary","success","purple","danger","TimelineItem","children","color","contentHeight","setContentHeight","style","styles","container","contentLeft","name","
|
|
1
|
+
{"version":3,"names":["useState","StyleSheet","View","Color","Icon","jsx","_jsx","jsxs","_jsxs","COLOR_MAP","warning","primary","success","purple","danger","TimelineItem","children","color","contentHeight","setContentHeight","renderDashes","count","Array","from","length","map","_","index","style","width","height","backgroundColor","gray","marginVertical","styles","container","contentLeft","name","Math","floor","flex","onLayout","e","nativeEvent","layout","create","flexDirection","alignItems","marginRight","border","borderWidth","borderLeftWidth","borderLeftColor","borderStyle"],"sourceRoot":"../../../src","sources":["Timeline/TimelineItem.tsx"],"mappings":";;AAAA,SAASA,QAAQ,QAAQ,OAAO;AAChC,SAASC,UAAU,EAAEC,IAAI,QAAQ,cAAc;AAC/C,OAAOC,KAAK,MAAM,mBAAgB;AAClC,SAASC,IAAI,QAAQ,kBAAS;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAE/B,MAAMC,SAAS,GAAG;EAChBC,OAAO,EAAEP,KAAK,CAACO,OAAO,CAAC,GAAG,CAAC;EAC3BC,OAAO,EAAER,KAAK,CAACQ,OAAO,CAAC,GAAG,CAAC;EAC3BC,OAAO,EAAET,KAAK,CAACS,OAAO,CAAC,GAAG,CAAC;EAC3BC,MAAM,EAAEV,KAAK,CAACU,MAAM,CAAC,GAAG,CAAC;EACzBC,MAAM,EAAEX,KAAK,CAACW,MAAM,CAAC,GAAG;AAC1B,CAAC;AAQD,eAAe,SAASC,YAAYA,CAAC;EACnCC,QAAQ;EACRC,KAAK,GAAG;AACS,CAAC,EAAE;EACpB,MAAM,CAACC,aAAa,EAAEC,gBAAgB,CAAC,GAAGnB,QAAQ,CAAC,CAAC,CAAC;EACrD,MAAMoB,YAAY,GAAIC,KAAa,IAAK;IACtC,OAAOC,KAAK,CAACC,IAAI,CAAC;MAAEC,MAAM,EAAEH;IAAM,CAAC,CAAC,CAACI,GAAG,CAAC,CAACC,CAAC,EAAEC,KAAK,kBAChDrB,IAAA,CAACJ,IAAI;MAEH0B,KAAK,EAAE;QACLC,KAAK,EAAE,CAAC;QACRC,MAAM,EAAE,CAAC;QACTC,eAAe,EAAE5B,KAAK,CAAC6B,IAAI,CAAC,GAAG,CAAC;QAChCC,cAAc,EAAE;MAClB;IAAE,GANGN,KAON,CACF,CAAC;EACJ,CAAC;EAED,oBACEnB,KAAA,CAACN,IAAI;IAAC0B,KAAK,EAAEM,MAAM,CAACC,SAAU;IAAAnB,QAAA,gBAC5BR,KAAA,CAACN,IAAI;MAAC0B,KAAK,EAAEM,MAAM,CAACE,WAAY;MAAApB,QAAA,gBAC9BV,IAAA,CAACF,IAAI;QAACiC,IAAI,EAAC,aAAa;QAACpB,KAAK,EAAER,SAAS,CAACQ,KAAK;MAAE,CAAE,CAAC,eACpDX,IAAA,CAACJ,IAAI;QAAAc,QAAA,EAAEI,YAAY,CAACkB,IAAI,CAACC,KAAK,CAAC,CAACrB,aAAa,GAAG,EAAE,IAAI,CAAC,CAAC;MAAC,CAAO,CAAC;IAAA,CAC7D,CAAC,eACPZ,IAAA,CAACJ,IAAI;MACH0B,KAAK,EAAEM,MAAM,CAACM,IAAK;MACnBC,QAAQ,EAAGC,CAAC,IAAK;QACf,MAAM;UAAEZ;QAAO,CAAC,GAAGY,CAAC,CAACC,WAAW,CAACC,MAAM;QACvCzB,gBAAgB,CAACW,MAAM,CAAC;MAC1B,CAAE;MAAAd,QAAA,eAEFV,IAAA,CAACJ,IAAI;QAAAc,QAAA,EAAEA;MAAQ,CAAO;IAAC,CACnB,CAAC;EAAA,CACH,CAAC;AAEX;AACA,MAAMkB,MAAM,GAAGjC,UAAU,CAAC4C,MAAM,CAAC;EAC/BV,SAAS,EAAE;IACTW,aAAa,EAAE,KAAK;IACpBC,UAAU,EAAE;EACd,CAAC;EACDX,WAAW,EAAE;IACXW,UAAU,EAAE,QAAQ;IACpBC,WAAW,EAAE;EACf,CAAC;EACDC,MAAM,EAAE;IACNpB,KAAK,EAAE,CAAC;IACRqB,WAAW,EAAE,CAAC;IACdC,eAAe,EAAE,CAAC;IAClBC,eAAe,EAAEjD,KAAK,CAAC6B,IAAI,CAAC,GAAG,CAAC;IAChCqB,WAAW,EAAE;EACf,CAAC;EACDb,IAAI,EAAE;IACJA,IAAI,EAAE;EACR;AACF,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# 🌐 ToastProvider & useToast()
|
|
2
|
+
ToastProvider adalah context global untuk menampilkan notifikasi Toast dari bagian manapun dalam aplikasi Anda. Digunakan bersama dengan hook useToast() untuk memanggil toast secara imperatif.
|
|
3
|
+
|
|
4
|
+
## ⚙️ Setup
|
|
5
|
+
1. Bungkus aplikasi Anda dengan ToastProvider
|
|
6
|
+
|
|
7
|
+
```tsx
|
|
8
|
+
import React from 'react';
|
|
9
|
+
import { ToastProvider } from '@herca/rn-kit';
|
|
10
|
+
|
|
11
|
+
export default function App() {
|
|
12
|
+
return (
|
|
13
|
+
<ToastProvider>
|
|
14
|
+
{/* Seluruh aplikasi Anda */}
|
|
15
|
+
</ToastProvider>
|
|
16
|
+
);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
2. Gunakan useToast() di dalam komponen
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
```tsx
|
|
25
|
+
import React from 'react';
|
|
26
|
+
import { Button } from '@herca/rn-kit';
|
|
27
|
+
import { useToast } from '@herca/rn-kit';
|
|
28
|
+
|
|
29
|
+
export default function Dashboard() {
|
|
30
|
+
const toast = useToast();
|
|
31
|
+
|
|
32
|
+
const handleSuccess = () => {
|
|
33
|
+
toast.show('Data berhasil disimpan', {
|
|
34
|
+
color: 'success',
|
|
35
|
+
icon: 'CheckCircle',
|
|
36
|
+
duration: 4000,
|
|
37
|
+
});
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
return <Button title="Simpan" onPress={handleSuccess} />;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
## 🧩 API Reference
|
|
46
|
+
### ✅ ToastProvider
|
|
47
|
+
Menyediakan context global toast. Harus membungkus komponen root Anda.
|
|
48
|
+
|
|
49
|
+
| Prop | Type | Required | Description |
|
|
50
|
+
| ---------- | ----------- | -------- | --------------------------------- |
|
|
51
|
+
| `children` | `ReactNode` | ✅ | Semua komponen di dalam aplikasi. |
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
### useToast() Hook
|
|
55
|
+
| Function | Type |
|
|
56
|
+
| ------------------------- | --------------------------------------------------- |
|
|
57
|
+
| `show(message, options?)` | `(message: string, options?: ToastOptions) => void` |
|
|
58
|
+
|
|
59
|
+
### ToastOptions
|
|
60
|
+
| Option | Type | Default | Description |
|
|
61
|
+
| ---------- | ------------------ | ------------------ | ---------------------------------- |
|
|
62
|
+
| `color` | `ColorVariantType` | `'default'` | Warna latar belakang dan teks. |
|
|
63
|
+
| `icon` | `IconNameProps` | `'ExlamationMark'` | Ikon di samping pesan. |
|
|
64
|
+
| `duration` | `number` (ms) | `3000` | Waktu tampil Toast sebelum hilang. |
|
|
65
|
+
|
|
66
|
+
## ❗ Error Handling
|
|
67
|
+
Error: useToast must be used within a ToastProvider
|
|
68
|
+
```tsx
|
|
69
|
+
Error: useToast must be used within a ToastProvider
|
|
70
|
+
|
|
71
|
+
```
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
# 🃏 Card
|
|
2
|
+
|
|
3
|
+
Komponen Card digunakan sebagai wadah tampilan (container) dengan desain yang konsisten seperti border, padding, dan optional background (warna atau gambar). Cocok digunakan untuk membungkus informasi atau konten secara visual terstruktur.
|
|
4
|
+
|
|
5
|
+
## Contoh Penggunaan
|
|
6
|
+
|
|
7
|
+
``` tsx
|
|
8
|
+
import { Card, Color, Container, Typography } from '@herca/rn-kit';
|
|
9
|
+
import { View } from 'react-native';
|
|
10
|
+
|
|
11
|
+
export default function CardScreen() {
|
|
12
|
+
return (
|
|
13
|
+
<View>
|
|
14
|
+
<Container>
|
|
15
|
+
<Typography variant="h4" weight="semibold">
|
|
16
|
+
Default
|
|
17
|
+
</Typography>
|
|
18
|
+
<Card>
|
|
19
|
+
<Typography color={Color.gray[800]} weight="bold">
|
|
20
|
+
What is Lorem Ipsum?
|
|
21
|
+
</Typography>
|
|
22
|
+
<Typography color={Color.gray[800]}>
|
|
23
|
+
Lorem Ipsum is simply dummy text of the printing and typesetting
|
|
24
|
+
industry. Lorem Ipsum has been the industry's standard dummy text
|
|
25
|
+
ever since the 1500s, when an unknown printer took a galley of type
|
|
26
|
+
and scrambled it to make a type specimen book. It has survived not
|
|
27
|
+
only five centuries, but also the leap into electronic typesetting,
|
|
28
|
+
remaining essentially unchanged.
|
|
29
|
+
</Typography>
|
|
30
|
+
</Card>
|
|
31
|
+
<Typography variant="h4" weight="semibold">
|
|
32
|
+
Background Image
|
|
33
|
+
</Typography>
|
|
34
|
+
<Card backgroundImage={require('../assets/sp_banner.png')}>
|
|
35
|
+
<Typography color={Color.base.white100} weight="bold">
|
|
36
|
+
What is Lorem Ipsum?
|
|
37
|
+
</Typography>
|
|
38
|
+
<Typography color={Color.base.white100}>
|
|
39
|
+
Lorem Ipsum is simply dummy text of
|
|
40
|
+
</Typography>
|
|
41
|
+
</Card>
|
|
42
|
+
<Typography variant="h4" weight="semibold">
|
|
43
|
+
Background Color
|
|
44
|
+
</Typography>
|
|
45
|
+
<Card backgroundColor={Color.primary[1000]}>
|
|
46
|
+
<Typography color={Color.base.white100} weight="bold">
|
|
47
|
+
What is Lorem Ipsum?
|
|
48
|
+
</Typography>
|
|
49
|
+
<Typography color={Color.base.white100}>
|
|
50
|
+
Lorem Ipsum is simply dummy text of the printing and typesetting
|
|
51
|
+
industry. Lorem Ipsum has been the industry's standard dummy text
|
|
52
|
+
ever since the 1500s,
|
|
53
|
+
</Typography>
|
|
54
|
+
</Card>
|
|
55
|
+
</Container>
|
|
56
|
+
</View>
|
|
57
|
+
);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
## Props
|
|
63
|
+
|
|
64
|
+
| Props | Tipe | Wajib | Default | Deskripsi |
|
|
65
|
+
| ----------------- | ----------------------------- | ----- | ------- | ---------------------------------------------------- |
|
|
66
|
+
| `children` | `ReactNode` | ✅ | - | Komponen atau konten di dalam Card. |
|
|
67
|
+
| `style` | `StyleProp<ViewStyle>` | ❌ | - | Gaya tambahan untuk Card (padding, margin, dsb). |
|
|
68
|
+
| `backgroundImage` | `ImageSourcePropType` (`any`) | ❌ | - | Gambar latar belakang menggunakan `ImageBackground`. |
|
|
69
|
+
| `backgroundColor` | `string` | ❌ | `#fff` | Warna latar belakang Card. |
|
|
70
|
+
|
|
71
|
+
## Catatan
|
|
72
|
+
- Saat backgroundImage digunakan, ImageBackground akan membungkus children dan otomatis mengikuti styling dari Card.
|
|
73
|
+
|
|
74
|
+
- Jika Anda ingin menambahkan padding pada konten dalam Card, pastikan Anda menambahkannya di level children atau buat pembungkus tambahan jika padding default tidak cukup.
|
|
75
|
+
|
|
76
|
+
- Kompatibel dengan semua komponen React Native seperti Text, Image, TouchableOpacity, dll.
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# 📦 Container
|
|
2
|
+
Komponen Container adalah pembungkus layout umum yang memberikan padding horizontal dan vertikal secara konsisten untuk konten di dalamnya. Cocok digunakan untuk membungkus seluruh tampilan atau bagian utama dari layar.
|
|
3
|
+
|
|
4
|
+
## 📐 Contoh Penggunaan
|
|
5
|
+
|
|
6
|
+
```tsx
|
|
7
|
+
import React from 'react';
|
|
8
|
+
import { Text } from 'react-native';
|
|
9
|
+
import Container from '@herca/rn-kit/Container';
|
|
10
|
+
|
|
11
|
+
export default function HomeScreen() {
|
|
12
|
+
return (
|
|
13
|
+
<Container>
|
|
14
|
+
<Text>Selamat datang di aplikasi kami!</Text>
|
|
15
|
+
</Container>
|
|
16
|
+
);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## props
|
|
23
|
+
| Prop | Tipe | Wajib | Default | Deskripsi |
|
|
24
|
+
| ---------- | ---------------------- | ----- | ------- | ------------------------------------------------------------ |
|
|
25
|
+
| `children` | `ReactNode` | ✅ | - | Komponen atau tampilan yang dibungkus di dalam container. |
|
|
26
|
+
| `style` | `StyleProp<ViewStyle>` | ❌ | - | Tambahan gaya jika ingin menimpa atau menambah gaya default. |
|
package/lib/module/index.js
CHANGED
|
@@ -30,7 +30,6 @@ export { default as Switch } from "./Input/Switch.js";
|
|
|
30
30
|
export { default as CheckBox } from "./CheckBox/CheckBox.js";
|
|
31
31
|
export { default as CheckBoxList } from "./CheckBox/CheckBoxList.js";
|
|
32
32
|
export { default as RadioButton } from "./RadioButton/RadioButton.js";
|
|
33
|
-
export { default as SwitchButton } from "./SwitchButton/SwitchButton.js";
|
|
34
33
|
export { default as Icon } from "./Icon/Icon.js";
|
|
35
34
|
export { default as Modal } from "./Modal/Modal.js";
|
|
36
35
|
export { default as Label } from "./Label/Label.js";
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["RnKit","multiply","a","b","default","Accordion","AccordionItem","Button","Color","Typography","BottomSheet","Container","Card","DropDown","Center","Gap","Grid","Col","Chip","Footer","Devider","Select","LabelForm","Input","InputPassword","InputFile","InputOtp","Switch","CheckBox","CheckBoxList","RadioButton","
|
|
1
|
+
{"version":3,"names":["RnKit","multiply","a","b","default","Accordion","AccordionItem","Button","Color","Typography","BottomSheet","Container","Card","DropDown","Center","Gap","Grid","Col","Chip","Footer","Devider","Select","LabelForm","Input","InputPassword","InputFile","InputOtp","Switch","CheckBox","CheckBoxList","RadioButton","Icon","Modal","Label","List","ListItem","Loading","Avatar","AvatarGroup","Badge","Alert","Timeline","TimelineItem","Theme","Provider","useFooter","Drawing","Calendar","DatePicker","YearPicker","MonthPicker","TimePicker","Step","StepItem","Toast","TextArea","ToastProvider","useToast"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DropDown.d.ts","sourceRoot":"","sources":["../../../../src/DropDown/DropDown.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"DropDown.d.ts","sourceRoot":"","sources":["../../../../src/DropDown/DropDown.tsx"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAG5C,QAAA,MAAM,QAAQ,GAAI,iDAKf,aAAa,4CAgFf,CAAC;AAEF,eAAe,QAAQ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"type.d.ts","sourceRoot":"","sources":["../../../../src/DropDown/type.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,KAAK,IAAI,CAAC;IAC5C,YAAY,
|
|
1
|
+
{"version":3,"file":"type.d.ts","sourceRoot":"","sources":["../../../../src/DropDown/type.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,KAAK,IAAI,CAAC;IAC5C,YAAY,EAAE,KAAK,CAAC,SAAS,CAAC;CAC/B"}
|
|
@@ -6,8 +6,8 @@ interface FooterContextType {
|
|
|
6
6
|
}
|
|
7
7
|
interface ProviderProps {
|
|
8
8
|
children: ReactNode;
|
|
9
|
-
requiredUpdated
|
|
10
|
-
updateConfig
|
|
9
|
+
requiredUpdated?: boolean;
|
|
10
|
+
updateConfig?: RequiredUpdateAppsProviderProps;
|
|
11
11
|
}
|
|
12
12
|
export default function Provider({ children, requiredUpdated, updateConfig, }: ProviderProps): import("react/jsx-runtime").JSX.Element;
|
|
13
13
|
export declare const useFooter: () => FooterContextType;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Provider.d.ts","sourceRoot":"","sources":["../../../../src/Provider/Provider.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"Provider.d.ts","sourceRoot":"","sources":["../../../../src/Provider/Provider.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,QAAQ,CAAC;AAG9D,UAAU,iBAAiB;IACzB,MAAM,EAAE,GAAG,GAAG,IAAI,CAAC;IACnB,SAAS,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;CACjC;AAED,UAAU,aAAa;IACrB,QAAQ,EAAE,SAAS,CAAC;IACpB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,YAAY,CAAC,EAAE,+BAA+B,CAAC;CAChD;AAID,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,EAC/B,QAAQ,EACR,eAAuB,EACvB,YAAY,GACb,EAAE,aAAa,2CAaf;AAED,eAAO,MAAM,SAAS,yBAMrB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"type.d.ts","sourceRoot":"","sources":["../../../../src/Provider/type.tsx"],"names":[],"mappings":"AAAA,MAAM,WAAW,+BAA+B;IAC9C,KAAK,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"type.d.ts","sourceRoot":"","sources":["../../../../src/Provider/type.tsx"],"names":[],"mappings":"AAAA,MAAM,WAAW,+BAA+B;IAC9C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;CACrC"}
|
|
@@ -8,7 +8,7 @@ declare const COLOR_MAP: {
|
|
|
8
8
|
type ColorKey = keyof typeof COLOR_MAP;
|
|
9
9
|
interface TimelineItemProps {
|
|
10
10
|
children: React.ReactNode;
|
|
11
|
-
color
|
|
11
|
+
color?: ColorKey;
|
|
12
12
|
}
|
|
13
13
|
export default function TimelineItem({ children, color, }: TimelineItemProps): import("react/jsx-runtime").JSX.Element;
|
|
14
14
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TimelineItem.d.ts","sourceRoot":"","sources":["../../../../src/Timeline/TimelineItem.tsx"],"names":[],"mappings":"AAKA,QAAA,MAAM,SAAS;;;;;;CAMd,CAAC;AACF,KAAK,QAAQ,GAAG,MAAM,OAAO,SAAS,CAAC;AAEvC,UAAU,iBAAiB;IACzB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,KAAK,EAAE,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"TimelineItem.d.ts","sourceRoot":"","sources":["../../../../src/Timeline/TimelineItem.tsx"],"names":[],"mappings":"AAKA,QAAA,MAAM,SAAS;;;;;;CAMd,CAAC;AACF,KAAK,QAAQ,GAAG,MAAM,OAAO,SAAS,CAAC;AAEvC,UAAU,iBAAiB;IACzB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,KAAK,CAAC,EAAE,QAAQ,CAAC;CAClB;AAED,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,EACnC,QAAQ,EACR,KAAiB,GAClB,EAAE,iBAAiB,2CAiCnB"}
|
|
@@ -28,7 +28,6 @@ export { default as Switch } from './Input/Switch';
|
|
|
28
28
|
export { default as CheckBox } from './CheckBox/CheckBox';
|
|
29
29
|
export { default as CheckBoxList } from './CheckBox/CheckBoxList';
|
|
30
30
|
export { default as RadioButton } from './RadioButton/RadioButton';
|
|
31
|
-
export { default as SwitchButton } from './SwitchButton/SwitchButton';
|
|
32
31
|
export { default as Icon } from './Icon/Icon';
|
|
33
32
|
export { default as Modal } from './Modal/Modal';
|
|
34
33
|
export { default as Label } from './Label/Label';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAEA,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAErD;AAED,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,2BAA2B,CAAC;AACrE,YAAY,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,OAAO,IAAI,GAAG,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,OAAO,IAAI,GAAG,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,aAAa,CAAC;AAC9C,YAAY,EACV,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,GAChB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACpD,YAAY,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/Accordion/README.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# 📂 Accordion
|
|
2
2
|
|
|
3
3
|
Komponen **Accordion** digunakan untuk menyembunyikan atau menampilkan konten secara dinamis. Biasanya digunakan untuk struktur seperti FAQ atau daftar konten bertingkat.
|
|
4
|
-
|
|
4
|
+
<img src="../../assets/doc/Accordion/Accordion.gif" alt="Deskripsi Alt" width="200" />
|
|
5
5
|
|
|
6
6
|
## 📦 USAGE
|
|
7
7
|
|
|
@@ -32,12 +32,20 @@ export default function FAQSection() {
|
|
|
32
32
|
|
|
33
33
|
|
|
34
34
|
## Props
|
|
35
|
+
### Accordion
|
|
36
|
+
| Props | Tipe | Wajib | Default | Deskripsi |
|
|
37
|
+
| -------------- | --------------------------- | ----- | ------- | ------------------------------------------------------------------------------- |
|
|
38
|
+
| `children` | `ReactNode` | ✅ | - | Isi Accordion, harus terdiri dari satu atau beberapa `AccordionItem`. |
|
|
39
|
+
| `renderHeader` | `ReactNode \| null` | ❌ | `null` | Komponen untuk menampilkan header. Biasanya berupa `Text` atau komponen kustom. |
|
|
40
|
+
| `isOpen` | `boolean` | ❌ | `true` | Menentukan apakah Accordion terbuka saat pertama kali dirender. |
|
|
41
|
+
| `onCollapse` | `(isOpen: boolean) => void` | ❌ | - | Callback saat status terbuka/tutup berubah. |
|
|
42
|
+
|
|
43
|
+
### AccordionItem
|
|
44
|
+
| Props | Tipe | Wajib | Default | Deskripsi |
|
|
45
|
+
| ---------- | ----------- | ----- | ------- | --------------------------------------------------------------- |
|
|
46
|
+
| `children` | `ReactNode` | ✅ | - | Konten yang akan ditampilkan saat Accordion dibuka. |
|
|
47
|
+
| `index` | `number` | ❌ | - | Untuk pengendalian item tertentu jika diperlukan secara manual. |
|
|
35
48
|
|
|
36
|
-
| props name | mandatory | types | default |
|
|
37
|
-
| -------------------- | --------- | ------- | -------------------------------------------------------- |
|
|
38
|
-
| header | | ReactNode | false |
|
|
39
|
-
| isOpen | | boolean | true |
|
|
40
|
-
| onCollapse | | (isOpen: boolean) => void | true | |
|
|
41
49
|
|
|
42
50
|
## Note
|
|
43
51
|
|
package/src/Alert/README.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# 📢 Alert Component
|
|
2
2
|
|
|
3
3
|
Komponen `Alert` digunakan untuk menampilkan pesan notifikasi dengan ikon, judul, dan pesan yang dapat dikustomisasi warnanya sesuai konteks (seperti *success*, *info*, *warning*, dll).
|
|
4
|
+
<img src="../../assets/doc/Alert/Alert.png" alt="Deskripsi Alt" width="200" />
|
|
4
5
|
|
|
5
|
-

|
|
6
6
|
## ✨ Fitur
|
|
7
7
|
|
|
8
8
|
- Menampilkan ikon notifikasi
|
|
@@ -3,11 +3,13 @@ import {
|
|
|
3
3
|
View,
|
|
4
4
|
Text,
|
|
5
5
|
TouchableOpacity,
|
|
6
|
+
Pressable,
|
|
6
7
|
StyleSheet,
|
|
7
8
|
ScrollView,
|
|
8
9
|
useWindowDimensions,
|
|
9
10
|
findNodeHandle,
|
|
10
11
|
UIManager,
|
|
12
|
+
Modal,
|
|
11
13
|
} from 'react-native';
|
|
12
14
|
import Color from '../Color/Color';
|
|
13
15
|
import type { DropDownProps } from './type';
|
|
@@ -21,9 +23,13 @@ const Dropdown = ({
|
|
|
21
23
|
}: DropDownProps) => {
|
|
22
24
|
const [isOpen, setIsOpen] = useState(false);
|
|
23
25
|
const [selected, setSelected] = useState<string | number>();
|
|
24
|
-
const [
|
|
25
|
-
|
|
26
|
-
|
|
26
|
+
const [align, setAlign] = useState<'left' | 'right'>('left');
|
|
27
|
+
const [buttonLayout, setButtonLayout] = useState({
|
|
28
|
+
x: 0,
|
|
29
|
+
y: 0,
|
|
30
|
+
width: 0,
|
|
31
|
+
height: 0,
|
|
32
|
+
});
|
|
27
33
|
|
|
28
34
|
const buttonRef = useRef<View>(null);
|
|
29
35
|
const windowWidth = useWindowDimensions().width;
|
|
@@ -32,9 +38,10 @@ const Dropdown = ({
|
|
|
32
38
|
if (!isOpen) {
|
|
33
39
|
const handle = findNodeHandle(buttonRef.current);
|
|
34
40
|
if (handle) {
|
|
35
|
-
UIManager.measureInWindow(handle, (x,
|
|
41
|
+
UIManager.measureInWindow(handle, (x, y, width, height) => {
|
|
36
42
|
const middle = windowWidth / 2;
|
|
37
|
-
|
|
43
|
+
setAlign(x + width / 2 > middle ? 'right' : 'left');
|
|
44
|
+
setButtonLayout({ x, y, width, height });
|
|
38
45
|
setIsOpen(true);
|
|
39
46
|
});
|
|
40
47
|
}
|
|
@@ -50,70 +57,65 @@ const Dropdown = ({
|
|
|
50
57
|
};
|
|
51
58
|
|
|
52
59
|
return (
|
|
53
|
-
|
|
54
|
-
<TouchableOpacity
|
|
55
|
-
|
|
56
|
-
style={styles.dropdownButton}
|
|
57
|
-
onPress={handleToggle}
|
|
58
|
-
>
|
|
59
|
-
{renderButton ? (
|
|
60
|
-
renderButton
|
|
61
|
-
) : (
|
|
62
|
-
<Text>{selected || 'Select an option'}</Text>
|
|
63
|
-
)}
|
|
60
|
+
<>
|
|
61
|
+
<TouchableOpacity ref={buttonRef} onPress={handleToggle}>
|
|
62
|
+
{renderButton}
|
|
64
63
|
</TouchableOpacity>
|
|
65
|
-
|
|
66
64
|
{isOpen && (
|
|
67
|
-
<
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
<
|
|
74
|
-
{
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
65
|
+
<Modal transparent animationType="none" visible>
|
|
66
|
+
<Pressable
|
|
67
|
+
style={StyleSheet.absoluteFillObject}
|
|
68
|
+
onPress={() => setIsOpen(false)}
|
|
69
|
+
/>
|
|
70
|
+
|
|
71
|
+
<View
|
|
72
|
+
style={[
|
|
73
|
+
styles.dropdownList,
|
|
74
|
+
{
|
|
75
|
+
top: buttonLayout.y + buttonLayout.height,
|
|
76
|
+
left: align === 'left' ? buttonLayout.x : undefined,
|
|
77
|
+
right:
|
|
78
|
+
align === 'right'
|
|
79
|
+
? windowWidth - (buttonLayout.x + buttonLayout.width)
|
|
80
|
+
: undefined,
|
|
81
|
+
},
|
|
82
|
+
]}
|
|
83
|
+
>
|
|
84
|
+
<ScrollView nestedScrollEnabled style={{ maxHeight }}>
|
|
85
|
+
{options.map((item, idx) => (
|
|
86
|
+
<TouchableOpacity
|
|
87
|
+
key={idx}
|
|
88
|
+
onPress={() => handlePressOption(item)}
|
|
89
|
+
style={[
|
|
90
|
+
styles.option,
|
|
91
|
+
selected === item.value && styles.optionSelected,
|
|
92
|
+
]}
|
|
93
|
+
>
|
|
94
|
+
<Text>{item.label}</Text>
|
|
95
|
+
</TouchableOpacity>
|
|
96
|
+
))}
|
|
97
|
+
</ScrollView>
|
|
98
|
+
</View>
|
|
99
|
+
</Modal>
|
|
88
100
|
)}
|
|
89
|
-
|
|
101
|
+
</>
|
|
90
102
|
);
|
|
91
103
|
};
|
|
92
104
|
|
|
93
105
|
export default Dropdown;
|
|
94
106
|
|
|
95
107
|
const styles = StyleSheet.create({
|
|
96
|
-
|
|
97
|
-
// width: 200, // or flexible
|
|
98
|
-
},
|
|
99
|
-
dropdownButton: {
|
|
100
|
-
// borderWidth: 1,
|
|
101
|
-
// borderColor: '#ccc',
|
|
102
|
-
// padding: 12,
|
|
103
|
-
// borderRadius: 6,
|
|
104
|
-
// backgroundColor: '#fff',
|
|
105
|
-
},
|
|
108
|
+
button: {},
|
|
106
109
|
dropdownList: {
|
|
107
110
|
position: 'absolute',
|
|
108
|
-
marginTop: 18,
|
|
109
111
|
padding: 8,
|
|
110
|
-
zIndex:
|
|
112
|
+
zIndex: 10,
|
|
111
113
|
gap: 4,
|
|
112
114
|
borderWidth: 1,
|
|
113
115
|
borderColor: Color.gray[50],
|
|
114
116
|
borderRadius: 8,
|
|
115
117
|
backgroundColor: Color.base.white100,
|
|
116
|
-
width:
|
|
118
|
+
width: 120,
|
|
117
119
|
},
|
|
118
120
|
option: {
|
|
119
121
|
gap: 8,
|
|
@@ -127,10 +129,4 @@ const styles = StyleSheet.create({
|
|
|
127
129
|
backgroundColor: Color.primary[50],
|
|
128
130
|
borderColor: Color.primary[300],
|
|
129
131
|
},
|
|
130
|
-
left: {
|
|
131
|
-
left: 0,
|
|
132
|
-
},
|
|
133
|
-
right: {
|
|
134
|
-
right: 0,
|
|
135
|
-
},
|
|
136
132
|
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
# Dropdown
|
package/src/DropDown/type.tsx
CHANGED
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
# 📋 List & ListItem
|
|
2
|
+
List menyajikan kumpulan elemen secara vertikal dengan tampilan kartu (border & radius), sedangkan ListItem mewakili baris individual yang dapat bersifat statis ataupun interaktif (dapat ditekan).
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
## 📦 Contoh Penggunaan
|
|
6
|
+
``` tsx
|
|
7
|
+
import React from 'react';
|
|
8
|
+
import { Text } from 'react-native';
|
|
9
|
+
import List from '@herca/rn-kit/List';
|
|
10
|
+
import ListItem from '@herca/rn-kit/List/ListItem';
|
|
11
|
+
|
|
12
|
+
export default function SettingMenu() {
|
|
13
|
+
const handleProfile = () => console.log('Go to Profile');
|
|
14
|
+
|
|
15
|
+
return (
|
|
16
|
+
<List>
|
|
17
|
+
<ListItem onPress={handleProfile}>
|
|
18
|
+
<Text>Profil</Text>
|
|
19
|
+
</ListItem>
|
|
20
|
+
|
|
21
|
+
<ListItem onPress={() => console.log('Go to Notifications')}>
|
|
22
|
+
<Text>Notifikasi</Text>
|
|
23
|
+
</ListItem>
|
|
24
|
+
|
|
25
|
+
<ListItem>
|
|
26
|
+
<Text>Tentang Aplikasi</Text>
|
|
27
|
+
</ListItem>
|
|
28
|
+
</List>
|
|
29
|
+
);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## 🧩 API Reference
|
|
35
|
+
|
|
36
|
+
### List
|
|
37
|
+
| Prop | Type | Wajib | Default | Deskripsi |
|
|
38
|
+
| ---------- | ----------- | ----- | ------- | ------------------------------ |
|
|
39
|
+
| `children` | `ReactNode` | ✅ | — | Satu atau beberapa `ListItem`. |
|
|
40
|
+
| `style` | `ViewStyle` | ❌ | — | Gaya tambahan untuk container. |
|
|
41
|
+
|
|
42
|
+
### ListItem
|
|
43
|
+
| Prop | Type | Wajib | Default | Deskripsi |
|
|
44
|
+
| ---------- | ---------------------- | ----- | ------- | ------------------------------------------------------------------------- |
|
|
45
|
+
| `children` | `ReactNode` | ✅ | — | Konten baris, bebas teks, ikon, atau komponen lain. |
|
|
46
|
+
| `onPress` | `() => void` | ❌ | — | Jika diisi, baris menjadi dapat diklik (`TouchableOpacity`). |
|
|
47
|
+
| `style` | `StyleProp<ViewStyle>` | ❌ | — | Gaya tambahan untuk baris. |
|
|
48
|
+
| `isLast` | `boolean` | 🚫 | — | Diisi otomatis oleh `List` untuk menghapus border bawah pada baris akhir. |
|
|
49
|
+
| `index` | `number` | 🚫 | — | Tidak digunakan—disediakan untuk extensibility. |
|