@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.
Files changed (65) hide show
  1. package/README.md +27 -2
  2. package/lib/module/Accordion/README.md +14 -6
  3. package/lib/module/Alert/README.md +1 -1
  4. package/lib/module/DropDown/DropDown.js +49 -45
  5. package/lib/module/DropDown/DropDown.js.map +1 -1
  6. package/lib/module/DropDown/README.md +1 -0
  7. package/lib/module/List/README.md +49 -0
  8. package/lib/module/Modal/Modal.js +1 -1
  9. package/lib/module/Modal/Modal.js.map +1 -1
  10. package/lib/module/Modal/README.md +39 -0
  11. package/lib/module/Provider/Provider.js +2 -0
  12. package/lib/module/Provider/Provider.js.map +1 -1
  13. package/lib/module/Step/README.md +91 -0
  14. package/lib/module/Timeline/README.md +80 -0
  15. package/lib/module/Timeline/Timeline.js +7 -1
  16. package/lib/module/Timeline/Timeline.js.map +1 -1
  17. package/lib/module/Timeline/TimelineItem.js +15 -5
  18. package/lib/module/Timeline/TimelineItem.js.map +1 -1
  19. package/lib/module/Toast/README.md +71 -0
  20. package/lib/module/Ui/README_CARD.md +76 -0
  21. package/lib/module/Ui/README_CONTAINER.md +26 -0
  22. package/lib/module/index.js +0 -1
  23. package/lib/module/index.js.map +1 -1
  24. package/lib/typescript/src/DropDown/DropDown.d.ts.map +1 -1
  25. package/lib/typescript/src/DropDown/type.d.ts +1 -1
  26. package/lib/typescript/src/DropDown/type.d.ts.map +1 -1
  27. package/lib/typescript/src/Provider/Provider.d.ts +2 -2
  28. package/lib/typescript/src/Provider/Provider.d.ts.map +1 -1
  29. package/lib/typescript/src/Provider/type.d.ts +2 -2
  30. package/lib/typescript/src/Provider/type.d.ts.map +1 -1
  31. package/lib/typescript/src/Timeline/TimelineItem.d.ts +1 -1
  32. package/lib/typescript/src/Timeline/TimelineItem.d.ts.map +1 -1
  33. package/lib/typescript/src/index.d.ts +0 -1
  34. package/lib/typescript/src/index.d.ts.map +1 -1
  35. package/package.json +1 -1
  36. package/src/Accordion/README.md +14 -6
  37. package/src/Alert/README.md +1 -1
  38. package/src/DropDown/DropDown.tsx +54 -58
  39. package/src/DropDown/README.md +1 -0
  40. package/src/DropDown/type.tsx +1 -1
  41. package/src/List/README.md +49 -0
  42. package/src/Modal/Modal.tsx +2 -2
  43. package/src/Modal/README.md +39 -0
  44. package/src/Provider/Provider.tsx +4 -2
  45. package/src/Provider/type.tsx +2 -2
  46. package/src/Step/README.md +91 -0
  47. package/src/Timeline/README.md +80 -0
  48. package/src/Timeline/Timeline.tsx +8 -2
  49. package/src/Timeline/TimelineItem.tsx +16 -3
  50. package/src/Toast/README.md +71 -0
  51. package/src/Ui/README_CARD.md +76 -0
  52. package/src/Ui/README_CONTAINER.md +26 -0
  53. package/src/index.tsx +0 -1
  54. package/lib/module/SwitchButton/SwitchButton.js +0 -8
  55. package/lib/module/SwitchButton/SwitchButton.js.map +0 -1
  56. package/lib/module/TextArea/TextArea.js +0 -2
  57. package/lib/module/TextArea/TextArea.js.map +0 -1
  58. package/lib/typescript/src/SwitchButton/SwitchButton.d.ts +0 -2
  59. package/lib/typescript/src/SwitchButton/SwitchButton.d.ts.map +0 -1
  60. package/lib/typescript/src/TextArea/TextArea.d.ts +0 -1
  61. package/lib/typescript/src/TextArea/TextArea.d.ts.map +0 -1
  62. package/src/SwitchButton/SwitchButton.tsx +0 -5
  63. package/src/TextArea/TextArea.tsx +0 -0
  64. /package/lib/module/Input/{Input.md → README_INPUT.md} +0 -0
  65. /package/src/Input/{Input.md → README_INPUT.md} +0 -0
package/README.md CHANGED
@@ -70,6 +70,19 @@ cd ios
70
70
  pod install
71
71
  ```
72
72
 
73
+ Wrap content utama dengan Provider
74
+
75
+ ```tsx
76
+
77
+ import {Provider} from '@herca/rn-kit';
78
+ const Stack = createNativeStackNavigator();
79
+
80
+ const App = () => {
81
+ return (
82
+ <Provider>
83
+ <YoyrCode>
84
+ </Provider>
85
+ ```
73
86
  ---
74
87
 
75
88
  ## 🚀 Penggunaan
@@ -88,12 +101,17 @@ import { Button } from '@herca/rn-kit';
88
101
 
89
102
  Komponen untuk mengumpulkan input dari pengguna.
90
103
 
91
- - [Checkbox](./src/Checkbox/README.md)
104
+ - [Button](./src/Button/README.md)
105
+ - [Checkbox](./src/Checkbox/README_CHECKBOX.md)
106
+ - [Checkbox](./src/Checkbox/README_CHECKBOXLIST.md)
92
107
  - [Chip-(Select)](./src/Chip/README.md)
93
108
  - [DatePicker](./src/DatePicker/README.md)
94
109
  - [DropDown](./src/DropDown/README.md)
95
110
  - [Input](./src/Input/README.md)
111
+ - [Input Month](./src/InputMonth/README.md)
96
112
  - [Input Password](./src/InputPassword/README.md)
113
+ - [Input Time](./src/InputTime/README.md)
114
+ - [Input Year](./src/InputYear/README.md)
97
115
  - [Radio Button](./src/RadioButton/README.md)
98
116
  - [Select](./src/Select/README.md)
99
117
  - [Switch](./src/Switch/README.md)
@@ -115,6 +133,7 @@ Komponen yang muncul di atas konten utama untuk interaksi sementara.
115
133
  Komponen untuk menyembunyikan atau menampilkan konten.
116
134
 
117
135
  - [Accordion](./src/Accordion/README.md)
136
+ - [Step](./src/Step/README.md)
118
137
 
119
138
  ---
120
139
 
@@ -136,13 +155,19 @@ Komponen untuk menampilkan informasi atau elemen visual.
136
155
  - [AvatarGroup](./src/Alert/README_AVATARGROUP.md)
137
156
  - [Calendar](./src/Calendar/README.md)
138
157
  - [Color](./src/Color/README.md)
139
- - [Card](./src/Card/README.md)
158
+ - [Card](./src/Ui/README_CARD.md)
140
159
  - [Drawing](./src/Drawing/README.md)
160
+ - [Footer](./src/Footer/README.md)
141
161
  - [List](./src/List/README.md)
162
+ - [Timeline](./src/Timeline/README.md)
142
163
  - [Typography](./src/Typography/README.md)
143
164
 
144
165
  ---
145
166
 
167
+ ### Contex
168
+
169
+ - [Provider](./src/Provider/README.md)
170
+
146
171
  ## 🤝 Kontribusi
147
172
 
148
173
  Silakan baca panduan kontribusi pada [CONTRIBUTING.md](CONTRIBUTING.md) untuk mengetahui alur pengembangan dan kontribusi pada proyek ini.
@@ -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
- ![Deskripsi Alt](../../assets/doc/Accordion/Accordion.gif)
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
 
@@ -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
- ![Deskripsi Alt](../../assets/doc/Alert/Alert.png)
6
6
  ## ✨ Fitur
7
7
 
8
8
  - Menampilkan ikon notifikasi
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
 
3
3
  import { useState, useRef } from 'react';
4
- import { View, Text, TouchableOpacity, StyleSheet, ScrollView, useWindowDimensions, findNodeHandle, UIManager } from 'react-native';
4
+ import { View, Text, TouchableOpacity, Pressable, StyleSheet, ScrollView, useWindowDimensions, findNodeHandle, UIManager, Modal } from 'react-native';
5
5
  import Color from "../Color/Color.js";
6
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
6
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
7
7
  const Dropdown = ({
8
8
  options,
9
9
  maxHeight = 200,
@@ -12,16 +12,28 @@ const Dropdown = ({
12
12
  }) => {
13
13
  const [isOpen, setIsOpen] = useState(false);
14
14
  const [selected, setSelected] = useState();
15
- const [dropdownPosition, setDropdownPosition] = useState('left');
15
+ const [align, setAlign] = useState('left');
16
+ const [buttonLayout, setButtonLayout] = useState({
17
+ x: 0,
18
+ y: 0,
19
+ width: 0,
20
+ height: 0
21
+ });
16
22
  const buttonRef = useRef(null);
17
23
  const windowWidth = useWindowDimensions().width;
18
24
  const handleToggle = () => {
19
25
  if (!isOpen) {
20
26
  const handle = findNodeHandle(buttonRef.current);
21
27
  if (handle) {
22
- UIManager.measureInWindow(handle, (x, _y, width, _height) => {
28
+ UIManager.measureInWindow(handle, (x, y, width, height) => {
23
29
  const middle = windowWidth / 2;
24
- setDropdownPosition(x + width / 2 > middle ? 'right' : 'left');
30
+ setAlign(x + width / 2 > middle ? 'right' : 'left');
31
+ setButtonLayout({
32
+ x,
33
+ y,
34
+ width,
35
+ height
36
+ });
25
37
  setIsOpen(true);
26
38
  });
27
39
  }
@@ -34,56 +46,54 @@ const Dropdown = ({
34
46
  setIsOpen(false);
35
47
  onSelect?.(value.value);
36
48
  };
37
- return /*#__PURE__*/_jsxs(View, {
38
- style: styles.container,
49
+ return /*#__PURE__*/_jsxs(_Fragment, {
39
50
  children: [/*#__PURE__*/_jsx(TouchableOpacity, {
40
51
  ref: buttonRef,
41
- style: styles.dropdownButton,
42
52
  onPress: handleToggle,
43
- children: renderButton ? renderButton : /*#__PURE__*/_jsx(Text, {
44
- children: selected || 'Select an option'
45
- })
46
- }), isOpen && /*#__PURE__*/_jsx(View, {
47
- style: [styles.dropdownList, dropdownPosition === 'left' ? styles.left : styles.right],
48
- children: /*#__PURE__*/_jsx(ScrollView, {
49
- nestedScrollEnabled: true,
50
- style: {
51
- maxHeight
52
- },
53
- children: options.map((item, index) => /*#__PURE__*/_jsx(TouchableOpacity, {
54
- onPress: () => handlePressOption(item),
55
- style: [styles.option, selected === item.value ? styles.optionSelected : null],
56
- children: /*#__PURE__*/_jsx(Text, {
57
- children: item.label
58
- })
59
- }, index))
60
- })
53
+ children: renderButton
54
+ }), isOpen && /*#__PURE__*/_jsxs(Modal, {
55
+ transparent: true,
56
+ animationType: "none",
57
+ visible: true,
58
+ children: [/*#__PURE__*/_jsx(Pressable, {
59
+ style: StyleSheet.absoluteFillObject,
60
+ onPress: () => setIsOpen(false)
61
+ }), /*#__PURE__*/_jsx(View, {
62
+ style: [styles.dropdownList, {
63
+ top: buttonLayout.y + buttonLayout.height,
64
+ left: align === 'left' ? buttonLayout.x : undefined,
65
+ right: align === 'right' ? windowWidth - (buttonLayout.x + buttonLayout.width) : undefined
66
+ }],
67
+ children: /*#__PURE__*/_jsx(ScrollView, {
68
+ nestedScrollEnabled: true,
69
+ style: {
70
+ maxHeight
71
+ },
72
+ children: options.map((item, idx) => /*#__PURE__*/_jsx(TouchableOpacity, {
73
+ onPress: () => handlePressOption(item),
74
+ style: [styles.option, selected === item.value && styles.optionSelected],
75
+ children: /*#__PURE__*/_jsx(Text, {
76
+ children: item.label
77
+ })
78
+ }, idx))
79
+ })
80
+ })]
61
81
  })]
62
82
  });
63
83
  };
64
84
  export default Dropdown;
65
85
  const styles = StyleSheet.create({
66
- container: {
67
- // width: 200, // or flexible
68
- },
69
- dropdownButton: {
70
- // borderWidth: 1,
71
- // borderColor: '#ccc',
72
- // padding: 12,
73
- // borderRadius: 6,
74
- // backgroundColor: '#fff',
75
- },
86
+ button: {},
76
87
  dropdownList: {
77
88
  position: 'absolute',
78
- marginTop: 18,
79
89
  padding: 8,
80
- zIndex: 9999,
90
+ zIndex: 10,
81
91
  gap: 4,
82
92
  borderWidth: 1,
83
93
  borderColor: Color.gray[50],
84
94
  borderRadius: 8,
85
95
  backgroundColor: Color.base.white100,
86
- width: 100
96
+ width: 120
87
97
  },
88
98
  option: {
89
99
  gap: 8,
@@ -96,12 +106,6 @@ const styles = StyleSheet.create({
96
106
  optionSelected: {
97
107
  backgroundColor: Color.primary[50],
98
108
  borderColor: Color.primary[300]
99
- },
100
- left: {
101
- left: 0
102
- },
103
- right: {
104
- right: 0
105
109
  }
106
110
  });
107
111
  //# sourceMappingURL=DropDown.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["useState","useRef","View","Text","TouchableOpacity","StyleSheet","ScrollView","useWindowDimensions","findNodeHandle","UIManager","Color","jsx","_jsx","jsxs","_jsxs","Dropdown","options","maxHeight","onSelect","renderButton","isOpen","setIsOpen","selected","setSelected","dropdownPosition","setDropdownPosition","buttonRef","windowWidth","width","handleToggle","handle","current","measureInWindow","x","_y","_height","middle","handlePressOption","value","style","styles","container","children","ref","dropdownButton","onPress","dropdownList","left","right","nestedScrollEnabled","map","item","index","option","optionSelected","label","create","position","marginTop","padding","zIndex","gap","borderWidth","borderColor","gray","borderRadius","backgroundColor","base","white100","paddingVertical","paddingHorizontal","primary"],"sourceRoot":"../../../src","sources":["DropDown/DropDown.tsx"],"mappings":";;AAAA,SAASA,QAAQ,EAAEC,MAAM,QAAQ,OAAO;AACxC,SACEC,IAAI,EACJC,IAAI,EACJC,gBAAgB,EAChBC,UAAU,EACVC,UAAU,EACVC,mBAAmB,EACnBC,cAAc,EACdC,SAAS,QACJ,cAAc;AACrB,OAAOC,KAAK,MAAM,mBAAgB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAInC,MAAMC,QAAQ,GAAGA,CAAC;EAChBC,OAAO;EACPC,SAAS,GAAG,GAAG;EACfC,QAAQ;EACRC;AACa,CAAC,KAAK;EACnB,MAAM,CAACC,MAAM,EAAEC,SAAS,CAAC,GAAGrB,QAAQ,CAAC,KAAK,CAAC;EAC3C,MAAM,CAACsB,QAAQ,EAAEC,WAAW,CAAC,GAAGvB,QAAQ,CAAkB,CAAC;EAC3D,MAAM,CAACwB,gBAAgB,EAAEC,mBAAmB,CAAC,GAAGzB,QAAQ,CACtD,MACF,CAAC;EAED,MAAM0B,SAAS,GAAGzB,MAAM,CAAO,IAAI,CAAC;EACpC,MAAM0B,WAAW,GAAGpB,mBAAmB,CAAC,CAAC,CAACqB,KAAK;EAE/C,MAAMC,YAAY,GAAGA,CAAA,KAAM;IACzB,IAAI,CAACT,MAAM,EAAE;MACX,MAAMU,MAAM,GAAGtB,cAAc,CAACkB,SAAS,CAACK,OAAO,CAAC;MAChD,IAAID,MAAM,EAAE;QACVrB,SAAS,CAACuB,eAAe,CAACF,MAAM,EAAE,CAACG,CAAC,EAAEC,EAAE,EAAEN,KAAK,EAAEO,OAAO,KAAK;UAC3D,MAAMC,MAAM,GAAGT,WAAW,GAAG,CAAC;UAC9BF,mBAAmB,CAACQ,CAAC,GAAGL,KAAK,GAAG,CAAC,GAAGQ,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;UAC9Df,SAAS,CAAC,IAAI,CAAC;QACjB,CAAC,CAAC;MACJ;IACF,CAAC,MAAM;MACLA,SAAS,CAAC,KAAK,CAAC;IAClB;EACF,CAAC;EAED,MAAMgB,iBAAiB,GAAIC,KAAsB,IAAK;IACpDf,WAAW,CAACe,KAAK,CAACA,KAAK,CAAC;IACxBjB,SAAS,CAAC,KAAK,CAAC;IAChBH,QAAQ,GAAGoB,KAAK,CAACA,KAAK,CAAC;EACzB,CAAC;EAED,oBACExB,KAAA,CAACZ,IAAI;IAACqC,KAAK,EAAEC,MAAM,CAACC,SAAU;IAAAC,QAAA,gBAC5B9B,IAAA,CAACR,gBAAgB;MACfuC,GAAG,EAAEjB,SAAU;MACfa,KAAK,EAAEC,MAAM,CAACI,cAAe;MAC7BC,OAAO,EAAEhB,YAAa;MAAAa,QAAA,EAErBvB,YAAY,GACXA,YAAY,gBAEZP,IAAA,CAACT,IAAI;QAAAuC,QAAA,EAAEpB,QAAQ,IAAI;MAAkB,CAAO;IAC7C,CACe,CAAC,EAElBF,MAAM,iBACLR,IAAA,CAACV,IAAI;MACHqC,KAAK,EAAE,CACLC,MAAM,CAACM,YAAY,EACnBtB,gBAAgB,KAAK,MAAM,GAAGgB,MAAM,CAACO,IAAI,GAAGP,MAAM,CAACQ,KAAK,CACxD;MAAAN,QAAA,eAEF9B,IAAA,CAACN,UAAU;QAAC2C,mBAAmB;QAACV,KAAK,EAAE;UAAEtB;QAAU,CAAE;QAAAyB,QAAA,EAClD1B,OAAO,CAACkC,GAAG,CAAC,CAACC,IAAI,EAAEC,KAAK,kBACvBxC,IAAA,CAACR,gBAAgB;UAEfyC,OAAO,EAAEA,CAAA,KAAMR,iBAAiB,CAACc,IAAI,CAAE;UACvCZ,KAAK,EAAE,CACLC,MAAM,CAACa,MAAM,EACb/B,QAAQ,KAAK6B,IAAI,CAACb,KAAK,GAAGE,MAAM,CAACc,cAAc,GAAG,IAAI,CACtD;UAAAZ,QAAA,eAEF9B,IAAA,CAACT,IAAI;YAAAuC,QAAA,EAAES,IAAI,CAACI;UAAK,CAAO;QAAC,GAPpBH,KAQW,CACnB;MAAC,CACQ;IAAC,CACT,CACP;EAAA,CACG,CAAC;AAEX,CAAC;AAED,eAAerC,QAAQ;AAEvB,MAAMyB,MAAM,GAAGnC,UAAU,CAACmD,MAAM,CAAC;EAC/Bf,SAAS,EAAE;IACT;EAAA,CACD;EACDG,cAAc,EAAE;IACd;IACA;IACA;IACA;IACA;EAAA,CACD;EACDE,YAAY,EAAE;IACZW,QAAQ,EAAE,UAAU;IACpBC,SAAS,EAAE,EAAE;IACbC,OAAO,EAAE,CAAC;IACVC,MAAM,EAAE,IAAI;IACZC,GAAG,EAAE,CAAC;IACNC,WAAW,EAAE,CAAC;IACdC,WAAW,EAAErD,KAAK,CAACsD,IAAI,CAAC,EAAE,CAAC;IAC3BC,YAAY,EAAE,CAAC;IACfC,eAAe,EAAExD,KAAK,CAACyD,IAAI,CAACC,QAAQ;IACpCxC,KAAK,EAAE;EACT,CAAC;EACDyB,MAAM,EAAE;IACNQ,GAAG,EAAE,CAAC;IACNQ,eAAe,EAAE,CAAC;IAClBC,iBAAiB,EAAE,EAAE;IACrBR,WAAW,EAAE,CAAC;IACdG,YAAY,EAAE,CAAC;IACfF,WAAW,EAAErD,KAAK,CAACyD,IAAI,CAACC;EAC1B,CAAC;EACDd,cAAc,EAAE;IACdY,eAAe,EAAExD,KAAK,CAAC6D,OAAO,CAAC,EAAE,CAAC;IAClCR,WAAW,EAAErD,KAAK,CAAC6D,OAAO,CAAC,GAAG;EAChC,CAAC;EACDxB,IAAI,EAAE;IACJA,IAAI,EAAE;EACR,CAAC;EACDC,KAAK,EAAE;IACLA,KAAK,EAAE;EACT;AACF,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["useState","useRef","View","Text","TouchableOpacity","Pressable","StyleSheet","ScrollView","useWindowDimensions","findNodeHandle","UIManager","Modal","Color","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","Dropdown","options","maxHeight","onSelect","renderButton","isOpen","setIsOpen","selected","setSelected","align","setAlign","buttonLayout","setButtonLayout","x","y","width","height","buttonRef","windowWidth","handleToggle","handle","current","measureInWindow","middle","handlePressOption","value","children","ref","onPress","transparent","animationType","visible","style","absoluteFillObject","styles","dropdownList","top","left","undefined","right","nestedScrollEnabled","map","item","idx","option","optionSelected","label","create","button","position","padding","zIndex","gap","borderWidth","borderColor","gray","borderRadius","backgroundColor","base","white100","paddingVertical","paddingHorizontal","primary"],"sourceRoot":"../../../src","sources":["DropDown/DropDown.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1 @@
1
+ # Dropdown
@@ -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. |
@@ -142,7 +142,7 @@ const styles = StyleSheet.create({
142
142
  backgroundColor: '#ccc'
143
143
  },
144
144
  contentContainer: {
145
- padding: 16 // bisa diubah sesuai kebutuhan
145
+ padding: 16
146
146
  }
147
147
  });
148
148
  export default ModalPopUp;
@@ -1 +1 @@
1
- {"version":3,"names":["React","useState","useEffect","useCallback","View","StyleSheet","Modal","TouchableOpacity","Animated","SafeAreaView","Platform","jsx","_jsx","jsxs","_jsxs","ModalPopUp","isOpen","onClose","children","backdrop","closable","onRequestClose","bgColor","width","containerStyle","modalStyle","isVisible","setIsVisible","scaleAnim","Value","showModal","spring","toValue","useNativeDriver","damping","stiffness","start","hideModal","setTimeout","handleBackdropPress","modalContentStyle","flatten","transform","scale","backgroundColor","maxHeight","transparent","visible","statusBarTranslucent","style","styles","modalContainer","backdropTouch","activeOpacity","onPress","modalContent","closeButtonContainer","closeButton","hitSlop","top","bottom","left","right","contentContainer","create","flex","justifyContent","alignItems","position","height","borderRadius","overflow","select","ios","shadowColor","shadowOffset","shadowOpacity","shadowRadius","android","elevation","zIndex","padding"],"sourceRoot":"../../../src","sources":["Modal/Modal.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","useState","useEffect","useCallback","View","StyleSheet","Modal","TouchableOpacity","Animated","SafeAreaView","Platform","jsx","_jsx","jsxs","_jsxs","ModalPopUp","isOpen","onClose","children","backdrop","closable","onRequestClose","bgColor","width","containerStyle","modalStyle","isVisible","setIsVisible","scaleAnim","Value","showModal","spring","toValue","useNativeDriver","damping","stiffness","start","hideModal","setTimeout","handleBackdropPress","modalContentStyle","flatten","transform","scale","backgroundColor","maxHeight","transparent","visible","statusBarTranslucent","style","styles","modalContainer","backdropTouch","activeOpacity","onPress","modalContent","closeButtonContainer","closeButton","hitSlop","top","bottom","left","right","contentContainer","create","flex","justifyContent","alignItems","position","height","borderRadius","overflow","select","ios","shadowColor","shadowOffset","shadowOpacity","shadowRadius","android","elevation","zIndex","padding"],"sourceRoot":"../../../src","sources":["Modal/Modal.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,39 @@
1
+ # 🧊 ModalPopUp
2
+ ModalPopUp adalah komponen modal animasi dengan skala, dukungan backdrop, tombol close opsional, dan fleksibilitas ukuran serta gaya. Cocok untuk dialog, form, atau konfirmasi.
3
+
4
+ ### 📦 Contoh Penggunaan
5
+ ```tsx
6
+ import React, { useState } from 'react';
7
+ import { Text, Button } from 'react-native';
8
+ import ModalPopUp from '@herca/rn-kit/ModalPopUp';
9
+
10
+ export default function ExampleModal() {
11
+ const [visible, setVisible] = useState(false);
12
+
13
+ return (
14
+ <>
15
+ <Button title="Buka Modal" onPress={() => setVisible(true)} />
16
+ <ModalPopUp isOpen={visible} onClose={() => setVisible(false)}>
17
+ <Text style={{ fontSize: 18 }}>Ini adalah isi modal</Text>
18
+ </ModalPopUp>
19
+ </>
20
+ );
21
+ }
22
+
23
+ ```
24
+
25
+ ## 🧩 API Reference
26
+
27
+ | Prop | Type | Default | Keterangan |
28
+ | ---------------- | ---------------------------- | ----------- | --------------------------------------------------------------------- |
29
+ | `isOpen` | `boolean` | — | Status untuk membuka/tutup modal. |
30
+ | `onClose` | `(isOpen?: boolean) => void` | `undefined` | Callback saat modal ditutup (baik via backdrop atau tombol close). |
31
+ | `children` | `ReactNode` | — | Konten utama modal. |
32
+ | `backdrop` | `boolean` | `true` | Apakah backdrop gelap ditampilkan di belakang modal. |
33
+ | `closable` | `boolean` | `true` | Apakah tombol close (lingkaran kecil di kanan atas) ditampilkan. |
34
+ | `onRequestClose` | `() => void` | `undefined` | Callback khusus saat backdrop ditekan (jika ingin override behavior). |
35
+ | `bgColor` | `string` | `"#fff"` | Warna latar belakang modal. |
36
+ | `width` | `DimensionValue` | `"90%"` | Lebar modal. Bisa `px`, `%`, atau nilai `number`. |
37
+ | `height` | `DimensionValue` | `undefined` | Tinggi modal (opsional, gunakan scroll jika tidak cukup). |
38
+ | `containerStyle` | `ViewStyle` | `undefined` | Gaya tambahan untuk wrapper container (pusat layar). |
39
+ | `modalStyle` | `ViewStyle` | `undefined` | Gaya tambahan untuk modal box. |
@@ -5,6 +5,7 @@ import { createContext, useContext, useState } from 'react';
5
5
  import { StyleSheet, View } from 'react-native';
6
6
  import LayoutWithFooter from "./LayoutWithFooter.js";
7
7
  import RequiredUpdateAppsProvider from "./RequiredUpdateAppsProvider.js";
8
+ import Color from "../Color/Color.js";
8
9
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
9
10
  const FooterContext = /*#__PURE__*/createContext(undefined);
10
11
  export default function Provider({
@@ -37,6 +38,7 @@ export const useFooter = () => {
37
38
  };
38
39
  const styles = StyleSheet.create({
39
40
  container: {
41
+ backgroundColor: Color.base.white100,
40
42
  flex: 1
41
43
  }
42
44
  });
@@ -1 +1 @@
1
- {"version":3,"names":["createContext","useContext","useState","StyleSheet","View","LayoutWithFooter","RequiredUpdateAppsProvider","jsx","_jsx","jsxs","_jsxs","FooterContext","undefined","Provider","children","requiredUpdated","updateConfig","footer","setFooter","style","styles","container","value","useFooter","context","Error","create","flex"],"sourceRoot":"../../../src","sources":["Provider/Provider.tsx"],"mappings":";;AAAA;AACA,SAASA,aAAa,EAAEC,UAAU,EAAEC,QAAQ,QAAQ,OAAO;AAC3D,SAASC,UAAU,EAAEC,IAAI,QAAQ,cAAc;AAC/C,OAAOC,gBAAgB,MAAM,uBAAoB;AACjD,OAAOC,0BAA0B,MAAM,iCAA8B;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAetE,MAAMC,aAAa,gBAAGX,aAAa,CAAgCY,SAAS,CAAC;AAE7E,eAAe,SAASC,QAAQA,CAAC;EAC/BC,QAAQ;EACRC,eAAe,GAAG,KAAK;EACvBC;AACa,CAAC,EAAE;EAChB,MAAM,CAACC,MAAM,EAAEC,SAAS,CAAC,GAAGhB,QAAQ,CAAC,IAAI,CAAC;EAE1C,oBACEQ,KAAA,CAACN,IAAI;IAACe,KAAK,EAAEC,MAAM,CAACC,SAAU;IAAAP,QAAA,GAC3BC,eAAe,gBACdP,IAAA,CAACF,0BAA0B;MAAA,GAAKU;IAAY,CAAG,CAAC,GAC9C,IAAI,eACRR,IAAA,CAACG,aAAa,CAACE,QAAQ;MAACS,KAAK,EAAE;QAAEL,MAAM;QAAEC;MAAU,CAAE;MAAAJ,QAAA,eACnDN,IAAA,CAACH,gBAAgB;QAAAS,QAAA,EAAEA;MAAQ,CAAmB;IAAC,CACzB,CAAC;EAAA,CACrB,CAAC;AAEX;AAEA,OAAO,MAAMS,SAAS,GAAGA,CAAA,KAAM;EAC7B,MAAMC,OAAO,GAAGvB,UAAU,CAACU,aAAa,CAAC;EACzC,IAAIa,OAAO,KAAKZ,SAAS,EAAE;IACzB,MAAM,IAAIa,KAAK,CAAC,iDAAiD,CAAC;EACpE;EACA,OAAOD,OAAO;AAChB,CAAC;AAED,MAAMJ,MAAM,GAAGjB,UAAU,CAACuB,MAAM,CAAC;EAC/BL,SAAS,EAAE;IACTM,IAAI,EAAE;EACR;AACF,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["createContext","useContext","useState","StyleSheet","View","LayoutWithFooter","RequiredUpdateAppsProvider","Color","jsx","_jsx","jsxs","_jsxs","FooterContext","undefined","Provider","children","requiredUpdated","updateConfig","footer","setFooter","style","styles","container","value","useFooter","context","Error","create","backgroundColor","base","white100","flex"],"sourceRoot":"../../../src","sources":["Provider/Provider.tsx"],"mappings":";;AAAA;AACA,SAASA,aAAa,EAAEC,UAAU,EAAEC,QAAQ,QAAQ,OAAO;AAC3D,SAASC,UAAU,EAAEC,IAAI,QAAQ,cAAc;AAC/C,OAAOC,gBAAgB,MAAM,uBAAoB;AACjD,OAAOC,0BAA0B,MAAM,iCAA8B;AAGrE,OAAOC,KAAK,MAAM,mBAAgB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAanC,MAAMC,aAAa,gBAAGZ,aAAa,CAAgCa,SAAS,CAAC;AAE7E,eAAe,SAASC,QAAQA,CAAC;EAC/BC,QAAQ;EACRC,eAAe,GAAG,KAAK;EACvBC;AACa,CAAC,EAAE;EAChB,MAAM,CAACC,MAAM,EAAEC,SAAS,CAAC,GAAGjB,QAAQ,CAAC,IAAI,CAAC;EAE1C,oBACES,KAAA,CAACP,IAAI;IAACgB,KAAK,EAAEC,MAAM,CAACC,SAAU;IAAAP,QAAA,GAC3BC,eAAe,gBACdP,IAAA,CAACH,0BAA0B;MAAA,GAAKW;IAAY,CAAG,CAAC,GAC9C,IAAI,eACRR,IAAA,CAACG,aAAa,CAACE,QAAQ;MAACS,KAAK,EAAE;QAAEL,MAAM;QAAEC;MAAU,CAAE;MAAAJ,QAAA,eACnDN,IAAA,CAACJ,gBAAgB;QAAAU,QAAA,EAAEA;MAAQ,CAAmB;IAAC,CACzB,CAAC;EAAA,CACrB,CAAC;AAEX;AAEA,OAAO,MAAMS,SAAS,GAAGA,CAAA,KAAM;EAC7B,MAAMC,OAAO,GAAGxB,UAAU,CAACW,aAAa,CAAC;EACzC,IAAIa,OAAO,KAAKZ,SAAS,EAAE;IACzB,MAAM,IAAIa,KAAK,CAAC,iDAAiD,CAAC;EACpE;EACA,OAAOD,OAAO;AAChB,CAAC;AAED,MAAMJ,MAAM,GAAGlB,UAAU,CAACwB,MAAM,CAAC;EAC/BL,SAAS,EAAE;IACTM,eAAe,EAAErB,KAAK,CAACsB,IAAI,CAACC,QAAQ;IACpCC,IAAI,EAAE;EACR;AACF,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,91 @@
1
+ # 🪜 Step & StepItem
2
+ Komponen Step menampilkan alur proses bertahap (wizard / progress indicator) dengan header horizontal yang dapat digeser, serta area konten untuk setiap langkah.
3
+ Setiap titik/langkah diwakili oleh StepItem.
4
+
5
+ ## 📦 Contoh Penggunaan
6
+
7
+ ```tsx
8
+ import React, { useState } from 'react';
9
+ import { View, Text } from 'react-native';
10
+ import Step from '@herca/rn-kit/Step';
11
+ import StepItem from '@herca/rn-kit/Step/StepItem';
12
+
13
+ export default function CheckoutWizard() {
14
+ const [currentStep, setCurrentStep] = useState(0);
15
+
16
+ return (
17
+ <Step current={currentStep} onChangeStep={(i) => setCurrentStep(i)}>
18
+ {/* Header & konten otomatis dipasangkan berdasarkan urutan */}
19
+ <StepItem title="Alamat">
20
+ <Text>Form Alamat Pengiriman</Text>
21
+ </StepItem>
22
+
23
+ <StepItem title="Pembayaran">
24
+ <Text>Metode Pembayaran</Text>
25
+ </StepItem>
26
+
27
+ <StepItem title="Konfirmasi">
28
+ <Text>Ringkasan & Konfirmasi Pesanan</Text>
29
+ </StepItem>
30
+ </Step>
31
+ );
32
+ }
33
+
34
+ ```
35
+ ## 🧩 API Reference
36
+
37
+ ### Step
38
+ | Prop | Type | Wajib | Default | Deskripsi |
39
+ | -------------- | -------------------------------------- | ----- | ------- | --------------------------------------------------------------------------- |
40
+ | `children` | `ReactElement<StepItemProps>` \| array | ✅ | — | Satu atau beberapa `StepItem`. |
41
+ | `current` | `number` | ✅ | — | Indeks langkah aktif (dimulai dari `0`). |
42
+ | `onChangeStep` | `(activeIndex: number) => void` | ✅ | — | Callback yang dipicu setiap kali nilai `current` berubah di dalam komponen. |
43
+
44
+
45
+ ### StepItem
46
+
47
+ Digunakan dua kali:
48
+
49
+ Sebagai header (ikon lingkaran + garis) – otomatis di‐render oleh Step.
50
+
51
+ Sebagai konten – ditampilkan bila index-nya sama dengan current.
52
+
53
+ | Prop | Type | Wajib | Default | Deskripsi |
54
+ | ---------- | ------------------------------------------------------------- | ----- | ----------- | ------------------------------------------------------------------ |
55
+ | `children` | `ReactNode` | ✅ | — | Konten yang muncul ketika langkah ini aktif. |
56
+ | `color` | `'primary' \| 'success' \| 'warning' \| 'danger' \| 'purple'` | ❌ | `'primary'` | Warna lingkaran & garis pada header. |
57
+ | `title` | `string` | ❌ | `''` | (Opsional) Judul untuk ditampilkan di header (bisa dikustom lagi). |
58
+
59
+ ## ⚙️ Cara Kerja
60
+
61
+ 1. Header Scrollable
62
+
63
+ - Lebar setiap header item fix (stepWidth = 100).
64
+
65
+ - Jika total lebar < perangkat, item otomatis di-center; jika lebih, bisa digeser horizontal.
66
+
67
+ - Ketika current berubah, ScrollView.scrollTo() memastikan item aktif selalu di tengah layar.
68
+
69
+ 2. Lingkaran Status
70
+
71
+ - isActive → lingkaran berwarna solid (Color.info[500]).
72
+
73
+ - isCompleted (index < current) → gaya sama dengan aktif (bisa diubah jika ingin beda).
74
+
75
+ - Item terakhir otomatis tanpa garis setelah lingkaran.
76
+
77
+ 3. Konten
78
+
79
+ - Hanya langkah aktif yang dirender di area konten (childrenArray[current]).
80
+
81
+ - Jika konten berupa FlatList, properti nestedScrollEnabled diaktifkan agar scrolling mulus di nested list.
82
+
83
+ ## 💡 Tips & Praktik Terbaik
84
+
85
+ | Kebutuhan | Saran Implementasi |
86
+ | ------------------------- | --------------------------------------------------------------------------------------------------- |
87
+ | **Navigasi Manual** | Ubah state `current` dari luar (`setCurrentStep`). |
88
+ | **Validasi Tiap Langkah** | Jalankan pengecekan sebelum menaikkan `current`; mis. pastikan form valid. |
89
+ | **Kustom Warna/Ikon** | Edit `COLOR_MAP` atau tambahkan prop `icon` pada `StepItem` jika ingin ikon berbeda di bullet. |
90
+ | **Langkah Dinamis** | Karena `children` berupa array, Anda bisa `.filter()` atau `.slice()` sebelum mem-pass ke `<Step>`. |
91
+ | **Tema Gelap** | Sesuaikan `Color.info[500]`, `Color.info[50]`, dll. |
@@ -0,0 +1,80 @@
1
+ # 🗂️ Timeline & TimelineItem
2
+ Timeline menampilkan rangkaian peristiwa secara vertikal—mirip “stepper” atau “activity feed”.
3
+ Setiap node diwakili oleh TimelineItem yang menampilkan titik (bullet icon) dan garis vertikal terhubung.
4
+
5
+ ## Contoh Penggunaan
6
+
7
+ ```tsx
8
+ import React from 'react';
9
+ import { Text } from 'react-native';
10
+ import Timeline from '@herca/rn-kit/Timeline';
11
+ import TimelineItem from '@herca/rn-kit/Timeline/TimelineItem';
12
+
13
+ export default function OrderHistory() {
14
+ return (
15
+ <Timeline>
16
+ <TimelineItem color="success">
17
+ <Text>Pesanan dibuat • 10 Jan 2025</Text>
18
+ </TimelineItem>
19
+
20
+ <TimelineItem color="primary">
21
+ <Text>Dikemas • 11 Jan 2025</Text>
22
+ </TimelineItem>
23
+
24
+ <TimelineItem color="warning">
25
+ <Text>Dalam pengiriman • 12 Jan 2025</Text>
26
+ </TimelineItem>
27
+
28
+ <TimelineItem color="danger">
29
+ <Text>Gagal diterima • 14 Jan 2025</Text>
30
+ </TimelineItem>
31
+ </Timeline>
32
+ );
33
+ }
34
+
35
+ ```
36
+
37
+ ## Props
38
+
39
+ ### Timeline
40
+ | Prop | Type | Wajib | Default | Deskripsi |
41
+ | ---------- | ----------- | ----- | ------- | ---------------------------------- |
42
+ | `children` | `ReactNode` | ✅ | — | Satu atau beberapa `TimelineItem`. |
43
+
44
+
45
+ ### TimelineItem
46
+ | Prop | Type | Wajib | Default | Deskripsi |
47
+ | ---------- | ------------------------------------------------------------- | ----- | ----------- | ----------------------------------------------------- |
48
+ | `children` | `ReactNode` | ✅ | — | Konten untuk node timeline: teks, ikon tambahan, dsb. |
49
+ | `color` | `'primary' \| 'success' \| 'warning' \| 'danger' \| 'purple'` | ❌ | `'primary'` | Skema warna titik (`RadioButton`) dan garis vertikal. |
50
+
51
+
52
+ ## ⚙️ Cara Kerja
53
+
54
+ 1. Bullet & Line
55
+
56
+ - Bullet dirender dengan komponen Icon (name="RadioButton") memakai warna dari color.
57
+
58
+ - Garis vertikal (borderLeftWidth: 1) menggunakan borderStyle: 'dashed'. Tingginya dihitung secara dinamis (contentHeight - 20) agar garis mulai tepat di bawah bullet.
59
+
60
+ 2. Penghitungan Tinggi
61
+
62
+ - onLayout pada wrapper konten mengukur tinggi aktual item.
63
+
64
+ - Hasil pengukuran dipakai untuk menyesuaikan panjang garis, menjaga visual konsisten meskipun konten memiliki tinggi berbeda.
65
+
66
+ 3. Layout
67
+
68
+ - Komponen dibangun dengan flexDirection: 'row', bullet di kiri, konten di kanan (flex: 1).
69
+
70
+ - Margin horizontal (marginRight: 8) menjaga jarak antara bullet dan konten.
71
+
72
+ ## 💡 Tips Penggunaan
73
+ - Item Terakhir Tanpa Garis
74
+ Bila ingin menghilangkan garis pada item terakhir, buat prop opsional mis. isLast dan kondisikan tinggi garis menjadi 0.
75
+
76
+ - Interaktif
77
+ Anda bebas menambahkan tombol, TouchableOpacity, atau ikon status di dalam children.
78
+
79
+ - Kustomisasi Warna
80
+ Untuk warna tambahan, update COLOR_MAP dan tipe ColorKey pada TimelineItem.
@@ -1,12 +1,18 @@
1
1
  "use strict";
2
2
 
3
- import { View } from 'react-native';
3
+ import { StyleSheet, View } from 'react-native';
4
4
  import { jsx as _jsx } from "react/jsx-runtime";
5
5
  export default function Timeline({
6
6
  children
7
7
  }) {
8
8
  return /*#__PURE__*/_jsx(View, {
9
+ style: styles.gap14,
9
10
  children: children
10
11
  });
11
12
  }
13
+ const styles = StyleSheet.create({
14
+ gap14: {
15
+ gap: 14
16
+ }
17
+ });
12
18
  //# sourceMappingURL=Timeline.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["View","jsx","_jsx","Timeline","children"],"sourceRoot":"../../../src","sources":["Timeline/Timeline.tsx"],"mappings":";;AAAA,SAASA,IAAI,QAAQ,cAAc;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAMpC,eAAe,SAASC,QAAQA,CAAC;EAAEC;AAAmB,CAAC,EAAE;EACvD,oBAAOF,IAAA,CAACF,IAAI;IAAAI,QAAA,EAAEA;EAAQ,CAAO,CAAC;AAChC","ignoreList":[]}
1
+ {"version":3,"names":["StyleSheet","View","jsx","_jsx","Timeline","children","style","styles","gap14","create","gap"],"sourceRoot":"../../../src","sources":["Timeline/Timeline.tsx"],"mappings":";;AAAA,SAASA,UAAU,EAAEC,IAAI,QAAQ,cAAc;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAMhD,eAAe,SAASC,QAAQA,CAAC;EAAEC;AAAmB,CAAC,EAAE;EACvD,oBAAOF,IAAA,CAACF,IAAI;IAACK,KAAK,EAAEC,MAAM,CAACC,KAAM;IAAAH,QAAA,EAAEA;EAAQ,CAAO,CAAC;AACrD;AAEA,MAAME,MAAM,GAAGP,UAAU,CAACS,MAAM,CAAC;EAC/BD,KAAK,EAAE;IACLE,GAAG,EAAE;EACP;AACF,CAAC,CAAC","ignoreList":[]}