@herca/rn-kit 0.1.8 → 0.1.9

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 CHANGED
@@ -136,6 +136,7 @@ Komponen untuk menyembunyikan atau menampilkan konten.
136
136
 
137
137
  - [Accordion](./src/Accordion/README.md)
138
138
  - [Step](./src/Step/README.md)
139
+ - [Tab](./src/Tab/README.md)
139
140
 
140
141
  ---
141
142
 
@@ -29,6 +29,7 @@ export default function App() {
29
29
  </View>
30
30
  );
31
31
  }
32
+ ```
32
33
 
33
34
  ## ⚙️ Props
34
35
 
@@ -1,13 +1,25 @@
1
1
  "use strict";
2
2
 
3
3
  import { StyleSheet, View, Text } from 'react-native';
4
- import { jsx as _jsx } from "react/jsx-runtime";
4
+ import SignatureView from 'react-native-signature-canvas';
5
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
5
6
  export default function Drawing() {
6
- return /*#__PURE__*/_jsx(View, {
7
+ return /*#__PURE__*/_jsxs(View, {
7
8
  style: styles.container,
8
- children: /*#__PURE__*/_jsx(Text, {
9
+ children: [/*#__PURE__*/_jsx(Text, {
9
10
  children: "Sedang di bangun"
10
- })
11
+ }), /*#__PURE__*/_jsx(SignatureView, {
12
+ autoClear: true,
13
+ descriptionText: "Sign here",
14
+ clearText: "Clear",
15
+ confirmText: 'Processing...',
16
+ penColor: "#000000",
17
+ backgroundColor: "rgba(255,255,255,0)",
18
+ webviewProps: {
19
+ cacheEnabled: true,
20
+ androidLayerType: 'hardware'
21
+ }
22
+ })]
11
23
  });
12
24
  }
13
25
  const styles = StyleSheet.create({
@@ -1 +1 @@
1
- {"version":3,"names":["StyleSheet","View","Text","jsx","_jsx","Drawing","style","styles","container","children","create","flex","preview","width","height","backgroundColor","justifyContent","alignItems","marginTop"],"sourceRoot":"../../../src","sources":["Drawing/Drawing.tsx"],"mappings":";;AAAA,SAASA,UAAU,EAAEC,IAAI,EAAEC,IAAI,QAAQ,cAAc;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAEtD,eAAe,SAASC,OAAOA,CAAA,EAAG;EAChC,oBACED,IAAA,CAACH,IAAI;IAACK,KAAK,EAAEC,MAAM,CAACC,SAAU;IAAAC,QAAA,eAC5BL,IAAA,CAACF,IAAI;MAAAO,QAAA,EAAC;IAAgB,CAAM;EAAC,CACzB,CAAC;AAEX;AAEA,MAAMF,MAAM,GAAGP,UAAU,CAACU,MAAM,CAAC;EAC/BF,SAAS,EAAE;IACTG,IAAI,EAAE;EACR,CAAC;EACDC,OAAO,EAAE;IACPC,KAAK,EAAE,GAAG;IACVC,MAAM,EAAE,GAAG;IACXC,eAAe,EAAE,SAAS;IAC1BC,cAAc,EAAE,QAAQ;IACxBC,UAAU,EAAE,QAAQ;IACpBC,SAAS,EAAE;EACb;AACF,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["StyleSheet","View","Text","SignatureView","jsx","_jsx","jsxs","_jsxs","Drawing","style","styles","container","children","autoClear","descriptionText","clearText","confirmText","penColor","backgroundColor","webviewProps","cacheEnabled","androidLayerType","create","flex","preview","width","height","justifyContent","alignItems","marginTop"],"sourceRoot":"../../../src","sources":["Drawing/Drawing.tsx"],"mappings":";;AAAA,SAASA,UAAU,EAAEC,IAAI,EAAEC,IAAI,QAAQ,cAAc;AACrD,OAAOC,aAAa,MAAM,+BAA+B;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAE1D,eAAe,SAASC,OAAOA,CAAA,EAAG;EAEhC,oBACED,KAAA,CAACN,IAAI;IAACQ,KAAK,EAAEC,MAAM,CAACC,SAAU;IAAAC,QAAA,gBAC5BP,IAAA,CAACH,IAAI;MAAAU,QAAA,EAAC;IAAgB,CAAM,CAAC,eAC7BP,IAAA,CAACF,aAAa;MACZU,SAAS,EAAE,IAAK;MAChBC,eAAe,EAAC,WAAW;MAC3BC,SAAS,EAAC,OAAO;MACjBC,WAAW,EAAE,eAAgB;MAC7BC,QAAQ,EAAC,SAAS;MAClBC,eAAe,EAAC,qBAAqB;MACrCC,YAAY,EAAE;QACZC,YAAY,EAAE,IAAI;QAClBC,gBAAgB,EAAE;MACpB;IAAE,CACH,CAAC;EAAA,CACE,CAAC;AAEX;AAEA,MAAMX,MAAM,GAAGV,UAAU,CAACsB,MAAM,CAAC;EAC/BX,SAAS,EAAE;IACTY,IAAI,EAAE;EACR,CAAC;EACDC,OAAO,EAAE;IACPC,KAAK,EAAE,GAAG;IACVC,MAAM,EAAE,GAAG;IACXR,eAAe,EAAE,SAAS;IAC1BS,cAAc,EAAE,QAAQ;IACxBC,UAAU,EAAE,QAAQ;IACpBC,SAAS,EAAE;EACb;AACF,CAAC,CAAC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["React","useEffect","useRef","View","StyleSheet","Dimensions","ScrollView","Color","jsx","_jsx","jsxs","_jsxs","width","screenWidth","get","Step","children","current","onChangeStep","childrenArray","Children","toArray","filter","isValidElement","totalSteps","length","scrollRef","stepWidth","scrollTo","x","Math","max","animated","style","styles","container","headerContainer","ref","horizontal","showsHorizontalScrollIndicator","contentContainerStyle","containerScrollView","justifyContent","map","child","index","cloneElement","isActive","isCompleted","isLast","isHeader","content","create","flex","paddingHorizontal","backgroundColor","info","paddingVertical","contentContainer","flexGrow"],"sourceRoot":"../../../src","sources":["Step/Step.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","useEffect","useRef","View","StyleSheet","Dimensions","ScrollView","Color","jsx","_jsx","jsxs","_jsxs","width","screenWidth","get","Step","children","current","onChangeStep","childrenArray","Children","toArray","filter","isValidElement","totalSteps","length","scrollRef","stepWidth","scrollTo","x","Math","max","animated","style","styles","container","headerContainer","ref","horizontal","showsHorizontalScrollIndicator","contentContainerStyle","containerScrollView","justifyContent","map","child","index","cloneElement","isActive","isCompleted","isLast","isHeader","content","create","flex","paddingHorizontal","backgroundColor","info","paddingVertical","contentContainer","flexGrow"],"sourceRoot":"../../../src","sources":["Step/Step.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,74 @@
1
+ # 📱 Komponen Tab Kustom untuk React Native
2
+
3
+ Komponen tab ringan dan fleksibel untuk React Native yang mendukung:
4
+
5
+ * ✅ Swipe kiri/kanan antar tab
6
+ * ✅ Scroll vertikal di dalam konten tiap tab
7
+ * ✅ Tampilan tab yang bisa disesuaikan
8
+ * ✅ Tanpa dependensi eksternal (tidak butuh react-navigation)
9
+
10
+ ---
11
+
12
+ ## 💡 Contoh Penggunaan
13
+
14
+ ```tsx
15
+ import Tab from './Tab';
16
+ import TabItem from './TabItem';
17
+ import HomeScreen from './screens/Home';
18
+ import ProfileScreen from './screens/Profile';
19
+
20
+ export default function App() {
21
+ return (
22
+ <Tab>
23
+ <TabItem name="Beranda" component={HomeScreen} />
24
+ <TabItem name="Profil" component={ProfileScreen} />
25
+ </Tab>
26
+ );
27
+ }
28
+ ```
29
+
30
+ ---
31
+
32
+ ## ✨ Fitur
33
+
34
+ ### 1. Navigasi Tab
35
+
36
+ * Tap pada header tab untuk berpindah
37
+ * Swipe kiri/kanan untuk berpindah antar tab
38
+
39
+ ### 2. Konten Scrollable
40
+
41
+ Setiap tab dibungkus dalam `ScrollView` vertikal, sehingga bisa discroll ke bawah jika konten panjang.
42
+
43
+ ---
44
+
45
+ ## 🧩 Props
46
+
47
+ ### `TabProps`
48
+
49
+ | Properti | Tipe | Keterangan |
50
+ | -------------- | ------------------------- | ----------------------------- |
51
+ | `children` | `React.ReactNode` | Daftar elemen `<TabItem />` |
52
+ | `current?` | `number` | Indeks tab aktif (default: 0) |
53
+ | `onChangeTab?` | `(index: number) => void` | Callback saat tab berpindah |
54
+
55
+ ### `TabItemProps`
56
+
57
+ | Properti | Tipe | Keterangan |
58
+ | ----------- | --------------------- | ---------------------------------- |
59
+ | `name` | `string` | Nama/tab label yang ditampilkan |
60
+ | `component` | `React.ComponentType` | Komponen yang akan dirender di tab |
61
+
62
+ ---
63
+
64
+ ## 🧪 Contoh Screen
65
+
66
+ ```tsx
67
+ const HomeScreen = () => (
68
+ <View style={{ padding: 20 }}>
69
+ <Text>Selamat datang di tab Beranda!</Text>
70
+ </View>
71
+ );
72
+ ```
73
+
74
+ ---
@@ -0,0 +1,97 @@
1
+ "use strict";
2
+
3
+ import React, { useCallback, useState, useEffect, useRef, Children, isValidElement } from 'react';
4
+ import { View, Pressable, StyleSheet } from 'react-native';
5
+ import PagerView from 'react-native-pager-view';
6
+ import Color from "../Color/Color.js";
7
+ import Typography from "../Typography/Typography.js";
8
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
9
+ const Tab = ({
10
+ children,
11
+ current = 0,
12
+ onChangeTab
13
+ }) => {
14
+ const items = Children.toArray(children).filter(isValidElement);
15
+ const [activeIndex, setActiveIndex] = useState(current);
16
+ const pagerRef = useRef(null);
17
+ useEffect(() => {
18
+ setActiveIndex(current);
19
+ pagerRef.current?.setPageWithoutAnimation(current);
20
+ }, [current]);
21
+ const updateActive = useCallback(index => {
22
+ if (index !== activeIndex) {
23
+ setActiveIndex(index);
24
+ onChangeTab?.(index);
25
+ }
26
+ }, [activeIndex, onChangeTab]);
27
+ const handleHeaderPress = index => {
28
+ pagerRef.current?.setPage(index);
29
+ updateActive(index);
30
+ };
31
+ if (items.length === 0) return null;
32
+ return /*#__PURE__*/_jsxs(View, {
33
+ style: styles.container,
34
+ children: [/*#__PURE__*/_jsx(View, {
35
+ style: styles.headerContainer,
36
+ children: items.map((item, index) => {
37
+ const isActive = index === activeIndex;
38
+ return /*#__PURE__*/_jsx(Pressable, {
39
+ style: [styles.tabButton, isActive ? styles.tabActive : styles.tabInactive],
40
+ onPress: () => handleHeaderPress(index),
41
+ children: /*#__PURE__*/_jsx(Typography, {
42
+ center: true,
43
+ variant: "t2",
44
+ weight: "semibold",
45
+ color: isActive ? Color.base.white100 : Color.gray[700],
46
+ children: item.props.name
47
+ })
48
+ }, index);
49
+ })
50
+ }), /*#__PURE__*/_jsx(PagerView, {
51
+ ref: pagerRef,
52
+ style: styles.pager,
53
+ initialPage: current,
54
+ onPageSelected: e => updateActive(e.nativeEvent.position),
55
+ children: items.map((item, index) => {
56
+ const Comp = item.props.component;
57
+ return /*#__PURE__*/_jsx(View, {
58
+ collapsable: false,
59
+ style: {
60
+ flex: 1
61
+ },
62
+ children: Comp ? /*#__PURE__*/_jsx(Comp, {}) : null
63
+ }, index);
64
+ })
65
+ })]
66
+ });
67
+ };
68
+ export default Tab;
69
+ const styles = StyleSheet.create({
70
+ container: {
71
+ flex: 1
72
+ },
73
+ headerContainer: {
74
+ flexDirection: 'row',
75
+ backgroundColor: Color.gray[100],
76
+ padding: 4,
77
+ borderRadius: 8
78
+ },
79
+ tabButton: {
80
+ flex: 1,
81
+ borderRadius: 8,
82
+ paddingVertical: 6,
83
+ paddingHorizontal: 16,
84
+ justifyContent: 'center',
85
+ alignItems: 'center'
86
+ },
87
+ tabActive: {
88
+ backgroundColor: Color.primary[1000]
89
+ },
90
+ tabInactive: {
91
+ backgroundColor: Color.gray[100]
92
+ },
93
+ pager: {
94
+ flex: 1
95
+ }
96
+ });
97
+ //# sourceMappingURL=Tab.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","useCallback","useState","useEffect","useRef","Children","isValidElement","View","Pressable","StyleSheet","PagerView","Color","Typography","jsx","_jsx","jsxs","_jsxs","Tab","children","current","onChangeTab","items","toArray","filter","activeIndex","setActiveIndex","pagerRef","setPageWithoutAnimation","updateActive","index","handleHeaderPress","setPage","length","style","styles","container","headerContainer","map","item","isActive","tabButton","tabActive","tabInactive","onPress","center","variant","weight","color","base","white100","gray","props","name","ref","pager","initialPage","onPageSelected","e","nativeEvent","position","Comp","component","collapsable","flex","create","flexDirection","backgroundColor","padding","borderRadius","paddingVertical","paddingHorizontal","justifyContent","alignItems","primary"],"sourceRoot":"../../../src","sources":["Tab/Tab.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+
3
+ import { View } from 'react-native';
4
+ import { jsx as _jsx } from "react/jsx-runtime";
5
+ const TabItem = () => {
6
+ return /*#__PURE__*/_jsx(View, {});
7
+ };
8
+ export default TabItem;
9
+ //# sourceMappingURL=TabItem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["View","jsx","_jsx","TabItem"],"sourceRoot":"../../../src","sources":["Tab/TabItem.tsx"],"mappings":";;AAAA,SAASA,IAAI,QAAQ,cAAc;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAEpC,MAAMC,OAAO,GAAGA,CAAA,KAAM;EACpB,oBAAOD,IAAA,CAACF,IAAI,IAAO,CAAC;AACtB,CAAC;AACD,eAAeG,OAAO","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export {};
4
+ //# sourceMappingURL=type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../src","sources":["Tab/type.tsx"],"mappings":"","ignoreList":[]}
@@ -53,6 +53,8 @@ export { default as MonthPicker } from "./DatePicker/MonthPicker.js";
53
53
  export { default as TimePicker } from "./DatePicker/TimePicker.js";
54
54
  export { default as Step } from "./Step/Step.js";
55
55
  export { default as StepItem } from "./Step/StepItem.js";
56
+ export { default as Tab } from "./Tab/Tab.js";
57
+ export { default as TabItem } from "./Tab/TabItem.js";
56
58
  export { default as Toast } from "./Toast/Toast.js";
57
59
  export { default as TextArea } from "./Input/TextArea.js";
58
60
  // export { default as PdfView } from './FileView/PdfView';
@@ -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","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
+ {"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","Tab","TabItem","Toast","TextArea","ToastProvider","useToast"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"Drawing.d.ts","sourceRoot":"","sources":["../../../../src/Drawing/Drawing.tsx"],"names":[],"mappings":"AAEA,MAAM,CAAC,OAAO,UAAU,OAAO,4CAM9B"}
1
+ {"version":3,"file":"Drawing.d.ts","sourceRoot":"","sources":["../../../../src/Drawing/Drawing.tsx"],"names":[],"mappings":"AAGA,MAAM,CAAC,OAAO,UAAU,OAAO,4CAmB9B"}
@@ -1 +1 @@
1
- {"version":3,"file":"Step.d.ts","sourceRoot":"","sources":["../../../../src/Step/Step.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAiB,SAAS,EAAE,MAAM,QAAQ,CAAC;AAIvD,QAAA,MAAM,IAAI,GAAI,qCAAyC,SAAS,4CA6D/D,CAAC;AAuBF,eAAe,IAAI,CAAC"}
1
+ {"version":3,"file":"Step.d.ts","sourceRoot":"","sources":["../../../../src/Step/Step.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAiB,SAAS,EAAE,MAAM,QAAQ,CAAC;AAIvD,QAAA,MAAM,IAAI,GAAI,qCAAyC,SAAS,4CA4D/D,CAAC;AAuBF,eAAe,IAAI,CAAC"}
@@ -0,0 +1,5 @@
1
+ import React from 'react';
2
+ import type { TabProps } from './type';
3
+ declare const Tab: React.FC<TabProps>;
4
+ export default Tab;
5
+ //# sourceMappingURL=Tab.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Tab.d.ts","sourceRoot":"","sources":["../../../../src/Tab/Tab.tsx"],"names":[],"mappings":"AAAA,OAAO,KAON,MAAM,OAAO,CAAC;AAKf,OAAO,KAAK,EAAgB,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAErD,QAAA,MAAM,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC,QAAQ,CA0E3B,CAAC;AAEF,eAAe,GAAG,CAAC"}
@@ -0,0 +1,3 @@
1
+ declare const TabItem: () => import("react/jsx-runtime").JSX.Element;
2
+ export default TabItem;
3
+ //# sourceMappingURL=TabItem.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TabItem.d.ts","sourceRoot":"","sources":["../../../../src/Tab/TabItem.tsx"],"names":[],"mappings":"AAEA,QAAA,MAAM,OAAO,+CAEZ,CAAC;AACF,eAAe,OAAO,CAAC"}
@@ -0,0 +1,11 @@
1
+ import React, { type ReactElement } from 'react';
2
+ export interface TabItemProps {
3
+ name: string | number;
4
+ component: React.ComponentType<any>;
5
+ }
6
+ export interface TabProps {
7
+ children: ReactElement<TabItemProps> | ReactElement<TabItemProps>[];
8
+ current?: number;
9
+ onChangeTab?: (e: any) => void;
10
+ }
11
+ //# sourceMappingURL=type.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type.d.ts","sourceRoot":"","sources":["../../../../src/Tab/type.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,KAAK,YAAY,EAAE,MAAM,OAAO,CAAC;AAEjD,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IACtB,SAAS,EAAE,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;CACrC;AACD,MAAM,WAAW,QAAQ;IACvB,QAAQ,EAAE,YAAY,CAAC,YAAY,CAAC,GAAG,YAAY,CAAC,YAAY,CAAC,EAAE,CAAC;IACpE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;CAChC"}
@@ -5,6 +5,7 @@ export type { AccordionRenderHeaderProps } from './Accordion/type';
5
5
  export { default as Button } from './Button/Button';
6
6
  export { default as Color } from './Color/Color';
7
7
  export { default as Typography } from './Typography/Typography';
8
+ export type { fontSizeMap, fontWeightMap, lineHeightMap, TypographyVariantProps, } from './Typography/type';
8
9
  export { default as BottomSheet } from './BottomSheet/BottomSheet';
9
10
  export { default as Container } from './Ui/Container';
10
11
  export { default as Card } from './Ui/Card';
@@ -52,6 +53,8 @@ export { default as MonthPicker } from './DatePicker/MonthPicker';
52
53
  export { default as TimePicker } from './DatePicker/TimePicker';
53
54
  export { default as Step } from './Step/Step';
54
55
  export { default as StepItem } from './Step/StepItem';
56
+ export { default as Tab } from './Tab/Tab';
57
+ export { default as TabItem } from './Tab/TabItem';
55
58
  export { default as Toast } from './Toast/Toast';
56
59
  export { default as TextArea } from './Input/TextArea';
57
60
  export { ToastProvider, useToast } from './Toast/ToastContext';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@herca/rn-kit",
3
- "version": "0.1.8",
3
+ "version": "0.1.9",
4
4
  "description": "React Native UI Kit",
5
5
  "main": "./lib/module/index.js",
6
6
  "types": "./lib/typescript/src/index.d.ts",
@@ -164,9 +164,15 @@
164
164
  "dependencies": {
165
165
  "@react-native-documents/picker": "^10.1.3",
166
166
  "@react-native-documents/viewer": "^1.0.1",
167
+ "@react-navigation/native": "^7.1.14",
167
168
  "react-native-blob-util": "^0.22.2",
168
169
  "react-native-image-picker": "^8.2.1",
170
+ "react-native-pager-view": "^6.8.1",
169
171
  "react-native-pdf": "^6.7.7",
170
- "react-native-svg": "^15.12.0"
172
+ "react-native-safe-area-context": "^5.5.1",
173
+ "react-native-screens": "^4.11.1",
174
+ "react-native-signature-canvas": "^5.0.1",
175
+ "react-native-svg": "^15.12.0",
176
+ "react-native-webview": "^13.15.0"
171
177
  }
172
178
  }
@@ -29,6 +29,7 @@ export default function App() {
29
29
  </View>
30
30
  );
31
31
  }
32
+ ```
32
33
 
33
34
  ## ⚙️ Props
34
35
 
@@ -1,9 +1,23 @@
1
1
  import { StyleSheet, View, Text } from 'react-native';
2
+ import SignatureView from 'react-native-signature-canvas';
2
3
 
3
4
  export default function Drawing() {
5
+
4
6
  return (
5
7
  <View style={styles.container}>
6
8
  <Text>Sedang di bangun</Text>
9
+ <SignatureView
10
+ autoClear={true}
11
+ descriptionText="Sign here"
12
+ clearText="Clear"
13
+ confirmText={'Processing...'}
14
+ penColor="#000000"
15
+ backgroundColor="rgba(255,255,255,0)"
16
+ webviewProps={{
17
+ cacheEnabled: true,
18
+ androidLayerType: 'hardware',
19
+ }}
20
+ />
7
21
  </View>
8
22
  );
9
23
  }
package/src/Step/Step.tsx CHANGED
@@ -26,7 +26,6 @@ const Step = ({ children, current = 0, onChangeStep }: StepProps) => {
26
26
 
27
27
  return (
28
28
  <View style={styles.container}>
29
- {/* Header */}
30
29
  <View style={[styles.headerContainer]}>
31
30
  <ScrollView
32
31
  ref={scrollRef}
@@ -0,0 +1,74 @@
1
+ # 📱 Komponen Tab Kustom untuk React Native
2
+
3
+ Komponen tab ringan dan fleksibel untuk React Native yang mendukung:
4
+
5
+ * ✅ Swipe kiri/kanan antar tab
6
+ * ✅ Scroll vertikal di dalam konten tiap tab
7
+ * ✅ Tampilan tab yang bisa disesuaikan
8
+ * ✅ Tanpa dependensi eksternal (tidak butuh react-navigation)
9
+
10
+ ---
11
+
12
+ ## 💡 Contoh Penggunaan
13
+
14
+ ```tsx
15
+ import Tab from './Tab';
16
+ import TabItem from './TabItem';
17
+ import HomeScreen from './screens/Home';
18
+ import ProfileScreen from './screens/Profile';
19
+
20
+ export default function App() {
21
+ return (
22
+ <Tab>
23
+ <TabItem name="Beranda" component={HomeScreen} />
24
+ <TabItem name="Profil" component={ProfileScreen} />
25
+ </Tab>
26
+ );
27
+ }
28
+ ```
29
+
30
+ ---
31
+
32
+ ## ✨ Fitur
33
+
34
+ ### 1. Navigasi Tab
35
+
36
+ * Tap pada header tab untuk berpindah
37
+ * Swipe kiri/kanan untuk berpindah antar tab
38
+
39
+ ### 2. Konten Scrollable
40
+
41
+ Setiap tab dibungkus dalam `ScrollView` vertikal, sehingga bisa discroll ke bawah jika konten panjang.
42
+
43
+ ---
44
+
45
+ ## 🧩 Props
46
+
47
+ ### `TabProps`
48
+
49
+ | Properti | Tipe | Keterangan |
50
+ | -------------- | ------------------------- | ----------------------------- |
51
+ | `children` | `React.ReactNode` | Daftar elemen `<TabItem />` |
52
+ | `current?` | `number` | Indeks tab aktif (default: 0) |
53
+ | `onChangeTab?` | `(index: number) => void` | Callback saat tab berpindah |
54
+
55
+ ### `TabItemProps`
56
+
57
+ | Properti | Tipe | Keterangan |
58
+ | ----------- | --------------------- | ---------------------------------- |
59
+ | `name` | `string` | Nama/tab label yang ditampilkan |
60
+ | `component` | `React.ComponentType` | Komponen yang akan dirender di tab |
61
+
62
+ ---
63
+
64
+ ## 🧪 Contoh Screen
65
+
66
+ ```tsx
67
+ const HomeScreen = () => (
68
+ <View style={{ padding: 20 }}>
69
+ <Text>Selamat datang di tab Beranda!</Text>
70
+ </View>
71
+ );
72
+ ```
73
+
74
+ ---
@@ -0,0 +1,112 @@
1
+ import React, {
2
+ useCallback,
3
+ useState,
4
+ useEffect,
5
+ useRef,
6
+ Children,
7
+ isValidElement,
8
+ } from 'react';
9
+ import { View, Pressable, StyleSheet } from 'react-native';
10
+ import PagerView from 'react-native-pager-view';
11
+ import Color from '../Color/Color';
12
+ import Typography from '../Typography/Typography';
13
+ import type { TabItemProps, TabProps } from './type';
14
+
15
+ const Tab: React.FC<TabProps> = ({ children, current = 0, onChangeTab }) => {
16
+ const items = Children.toArray(children).filter(
17
+ isValidElement
18
+ ) as React.ReactElement<TabItemProps>[];
19
+
20
+ const [activeIndex, setActiveIndex] = useState<number>(current);
21
+ const pagerRef = useRef<PagerView>(null);
22
+
23
+ useEffect(() => {
24
+ setActiveIndex(current);
25
+ pagerRef.current?.setPageWithoutAnimation(current);
26
+ }, [current]);
27
+
28
+ const updateActive = useCallback(
29
+ (index: number) => {
30
+ if (index !== activeIndex) {
31
+ setActiveIndex(index);
32
+ onChangeTab?.(index);
33
+ }
34
+ },
35
+ [activeIndex, onChangeTab]
36
+ );
37
+
38
+ const handleHeaderPress = (index: number) => {
39
+ pagerRef.current?.setPage(index);
40
+ updateActive(index);
41
+ };
42
+
43
+ if (items.length === 0) return null;
44
+
45
+ return (
46
+ <View style={styles.container}>
47
+ {/* Header */}
48
+ <View style={styles.headerContainer}>
49
+ {items.map((item, index) => {
50
+ const isActive = index === activeIndex;
51
+ return (
52
+ <Pressable
53
+ key={index}
54
+ style={[
55
+ styles.tabButton,
56
+ isActive ? styles.tabActive : styles.tabInactive,
57
+ ]}
58
+ onPress={() => handleHeaderPress(index)}
59
+ >
60
+ <Typography
61
+ center
62
+ variant="t2"
63
+ weight="semibold"
64
+ color={isActive ? Color.base.white100 : Color.gray[700]}
65
+ >
66
+ {item.props.name}
67
+ </Typography>
68
+ </Pressable>
69
+ );
70
+ })}
71
+ </View>
72
+ <PagerView
73
+ ref={pagerRef}
74
+ style={styles.pager}
75
+ initialPage={current}
76
+ onPageSelected={(e) => updateActive(e.nativeEvent.position)}
77
+ >
78
+ {items.map((item, index) => {
79
+ const Comp = item.props.component;
80
+ return (
81
+ <View key={index} collapsable={false} style={{ flex: 1 }}>
82
+ {Comp ? <Comp /> : null}
83
+ </View>
84
+ );
85
+ })}
86
+ </PagerView>
87
+ </View>
88
+ );
89
+ };
90
+
91
+ export default Tab;
92
+
93
+ const styles = StyleSheet.create({
94
+ container: { flex: 1 },
95
+ headerContainer: {
96
+ flexDirection: 'row',
97
+ backgroundColor: Color.gray[100],
98
+ padding: 4,
99
+ borderRadius: 8,
100
+ },
101
+ tabButton: {
102
+ flex: 1,
103
+ borderRadius: 8,
104
+ paddingVertical: 6,
105
+ paddingHorizontal: 16,
106
+ justifyContent: 'center',
107
+ alignItems: 'center',
108
+ },
109
+ tabActive: { backgroundColor: Color.primary[1000] },
110
+ tabInactive: { backgroundColor: Color.gray[100] },
111
+ pager: { flex: 1 },
112
+ });
@@ -0,0 +1,6 @@
1
+ import { View } from 'react-native';
2
+
3
+ const TabItem = () => {
4
+ return <View></View>;
5
+ };
6
+ export default TabItem;
@@ -0,0 +1,11 @@
1
+ import React, { type ReactElement } from 'react';
2
+
3
+ export interface TabItemProps {
4
+ name: string | number;
5
+ component: React.ComponentType<any>;
6
+ }
7
+ export interface TabProps {
8
+ children: ReactElement<TabItemProps> | ReactElement<TabItemProps>[];
9
+ current?: number;
10
+ onChangeTab?: (e: any) => void;
11
+ }
package/src/index.tsx CHANGED
@@ -10,6 +10,12 @@ export type { AccordionRenderHeaderProps } from './Accordion/type';
10
10
  export { default as Button } from './Button/Button';
11
11
  export { default as Color } from './Color/Color';
12
12
  export { default as Typography } from './Typography/Typography';
13
+ export type {
14
+ fontSizeMap,
15
+ fontWeightMap,
16
+ lineHeightMap,
17
+ TypographyVariantProps,
18
+ } from './Typography/type';
13
19
  export { default as BottomSheet } from './BottomSheet/BottomSheet';
14
20
  export { default as Container } from './Ui/Container';
15
21
  export { default as Card } from './Ui/Card';
@@ -61,6 +67,8 @@ export { default as MonthPicker } from './DatePicker/MonthPicker';
61
67
  export { default as TimePicker } from './DatePicker/TimePicker';
62
68
  export { default as Step } from './Step/Step';
63
69
  export { default as StepItem } from './Step/StepItem';
70
+ export { default as Tab } from './Tab/Tab';
71
+ export { default as TabItem } from './Tab/TabItem';
64
72
  export { default as Toast } from './Toast/Toast';
65
73
  export { default as TextArea } from './Input/TextArea';
66
74
  // export { default as PdfView } from './FileView/PdfView';