@herca/rn-kit 0.1.35 → 0.1.37

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 (44) hide show
  1. package/lib/module/Icon/Icon.js +11 -1
  2. package/lib/module/Icon/Icon.js.map +1 -1
  3. package/lib/module/Icon/README.md +5 -0
  4. package/lib/module/Icon/icons/CalendarEdit.js +22 -0
  5. package/lib/module/Icon/icons/CalendarEdit.js.map +1 -0
  6. package/lib/module/Icon/icons/InfoCircleOutline.js +22 -0
  7. package/lib/module/Icon/icons/InfoCircleOutline.js.map +1 -0
  8. package/lib/module/Icon/icons/Tag.js +22 -0
  9. package/lib/module/Icon/icons/Tag.js.map +1 -0
  10. package/lib/module/Icon/icons/Tool.js +22 -0
  11. package/lib/module/Icon/icons/Tool.js.map +1 -0
  12. package/lib/module/Icon/icons/UserEdit.js +28 -0
  13. package/lib/module/Icon/icons/UserEdit.js.map +1 -0
  14. package/lib/module/Tab/README.md +11 -9
  15. package/lib/module/Tab/Tab.js +62 -38
  16. package/lib/module/Tab/Tab.js.map +1 -1
  17. package/lib/typescript/src/Icon/Icon.d.ts.map +1 -1
  18. package/lib/typescript/src/Icon/icons/CalendarEdit.d.ts +9 -0
  19. package/lib/typescript/src/Icon/icons/CalendarEdit.d.ts.map +1 -0
  20. package/lib/typescript/src/Icon/icons/InfoCircleOutline.d.ts +9 -0
  21. package/lib/typescript/src/Icon/icons/InfoCircleOutline.d.ts.map +1 -0
  22. package/lib/typescript/src/Icon/icons/Tag.d.ts +9 -0
  23. package/lib/typescript/src/Icon/icons/Tag.d.ts.map +1 -0
  24. package/lib/typescript/src/Icon/icons/Tool.d.ts +9 -0
  25. package/lib/typescript/src/Icon/icons/Tool.d.ts.map +1 -0
  26. package/lib/typescript/src/Icon/icons/UserEdit.d.ts +9 -0
  27. package/lib/typescript/src/Icon/icons/UserEdit.d.ts.map +1 -0
  28. package/lib/typescript/src/Icon/type.d.ts +1 -1
  29. package/lib/typescript/src/Icon/type.d.ts.map +1 -1
  30. package/lib/typescript/src/Tab/Tab.d.ts.map +1 -1
  31. package/lib/typescript/src/Tab/type.d.ts +13 -3
  32. package/lib/typescript/src/Tab/type.d.ts.map +1 -1
  33. package/package.json +1 -1
  34. package/src/Icon/Icon.tsx +10 -0
  35. package/src/Icon/README.md +5 -0
  36. package/src/Icon/icons/CalendarEdit.tsx +23 -0
  37. package/src/Icon/icons/InfoCircleOutline.tsx +23 -0
  38. package/src/Icon/icons/Tag.tsx +19 -0
  39. package/src/Icon/icons/Tool.tsx +19 -0
  40. package/src/Icon/icons/UserEdit.tsx +27 -0
  41. package/src/Icon/type.tsx +5 -0
  42. package/src/Tab/README.md +11 -9
  43. package/src/Tab/Tab.tsx +78 -44
  44. package/src/Tab/type.tsx +15 -4
@@ -66,6 +66,11 @@ import DiscountFill from "./icons/DiscountFill.js";
66
66
  import CopyFill from "./icons/CopyFill.js";
67
67
  import CopyTextFill from "./icons/CopyTextFill.js";
68
68
  import ShieldCheckedFill from "./icons/ShieldFillChecked.js";
69
+ import CalendarEdit from "./icons/CalendarEdit.js";
70
+ import InfoCircleOutline from "./icons/InfoCircleOutline.js";
71
+ import Tag from "./icons/Tag.js";
72
+ import Tool from "./icons/Tool.js";
73
+ import UserEdit from "./icons/UserEdit.js";
69
74
  import { jsx as _jsx } from "react/jsx-runtime";
70
75
  const icons = {
71
76
  'Search': Search,
@@ -132,7 +137,12 @@ const icons = {
132
137
  'discount-fill': DiscountFill,
133
138
  'copy-fill': CopyFill,
134
139
  'copy-text-fill': CopyTextFill,
135
- 'shield-checked-fill': ShieldCheckedFill
140
+ 'shield-checked-fill': ShieldCheckedFill,
141
+ 'calendar-edit': CalendarEdit,
142
+ 'info-circle-outline': InfoCircleOutline,
143
+ 'user-edit': UserEdit,
144
+ 'Tag': Tag,
145
+ 'Tool': Tool
136
146
  };
137
147
  const Icon = ({
138
148
  name,
@@ -1 +1 @@
1
- {"version":3,"names":["React","User","Eye","XCircle","ArrowRight","Document","Calendar","Download","StickyNote","Pdf","RadioButton","ArrowBackAlt","ArrowForwardAlt","Check","Filter","AirPlane","Camera","Image","Times","ArrowDown","ArrowUp","Search","ArrowLeft","EyeOpen","ExclamationMark","FileListCheck","FileText","FolderClock","HomeFill","HomeOutline","Plus","UserCircleFill","UserCircleOutline","ClipBoardListCheck","ClipBoardList","Megaphone","Bell","BookmarkUser","Scanner","ClockOutline","Clock","BoxOutline","ClipBoardListCheckOutline","Box","Minus","PlusSquare","AtSign","BriefCaseOutline","EditSquareOutline","GlobeEarth","LockFill","LogoHercaHris","QuestionCircleOutline","ShieldFill","Users","WhatsAppFill","Bold","Italic","UnderLine","SettingsSlider","RotateSquareFill","LocationPinFill","DiscountFill","CopyFill","CopyTextFill","ShieldCheckedFill","jsx","_jsx","icons","Icon","name","size","color","style","SelectedIcon"],"sourceRoot":"../../../src","sources":["Icon/Icon.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","User","Eye","XCircle","ArrowRight","Document","Calendar","Download","StickyNote","Pdf","RadioButton","ArrowBackAlt","ArrowForwardAlt","Check","Filter","AirPlane","Camera","Image","Times","ArrowDown","ArrowUp","Search","ArrowLeft","EyeOpen","ExclamationMark","FileListCheck","FileText","FolderClock","HomeFill","HomeOutline","Plus","UserCircleFill","UserCircleOutline","ClipBoardListCheck","ClipBoardList","Megaphone","Bell","BookmarkUser","Scanner","ClockOutline","Clock","BoxOutline","ClipBoardListCheckOutline","Box","Minus","PlusSquare","AtSign","BriefCaseOutline","EditSquareOutline","GlobeEarth","LockFill","LogoHercaHris","QuestionCircleOutline","ShieldFill","Users","WhatsAppFill","Bold","Italic","UnderLine","SettingsSlider","RotateSquareFill","LocationPinFill","DiscountFill","CopyFill","CopyTextFill","ShieldCheckedFill","CalendarEdit","InfoCircleOutline","Tag","Tool","UserEdit","jsx","_jsx","icons","Icon","name","size","color","style","SelectedIcon"],"sourceRoot":"../../../src","sources":["Icon/Icon.tsx"],"mappings":"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","ignoreList":[]}
@@ -113,3 +113,8 @@ export default function App() {
113
113
  - copy-fill
114
114
  - copy-text-fill
115
115
  - shield-checked-fill
116
+ - calendar-edit
117
+ - info-circle-outline
118
+ - Tag
119
+ - Tool
120
+ - user-edit
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+
3
+ import React from 'react';
4
+ import Svg, { Path } from 'react-native-svg';
5
+ import { jsx as _jsx } from "react/jsx-runtime";
6
+ const CalendarEdit = ({
7
+ size = 24,
8
+ color = '#000',
9
+ style
10
+ }) => /*#__PURE__*/_jsx(Svg, {
11
+ width: size,
12
+ height: size,
13
+ viewBox: "0 0 24 24",
14
+ fill: "none",
15
+ style: style,
16
+ children: /*#__PURE__*/_jsx(Path, {
17
+ d: "M20.7 9.75H3.30005C3.13405 9.75 3 9.88405 3 10.05V18C3 20 4 21 6 21H18C20 21 21 20 21 18V10.05C21 9.88405 20.866 9.75 20.7 9.75ZM10.3311 18.75H8.25098V16.6699L11.9609 12.9399L14.061 15.04L10.3311 18.75ZM15.5 13.5991L14.76 14.3391L12.6599 12.239L13.3999 11.499C13.7199 11.169 14.2501 11.169 14.5801 11.489L15.51 12.4189C15.831 12.7499 15.831 13.2791 15.5 13.5991ZM21 7.5V7.94995C21 8.11595 20.866 8.25 20.7 8.25H3.30005C3.13405 8.25 3 8.11595 3 7.94995V7.5C3 5.5 4 4.5 6 4.5H7.25V3C7.25 2.59 7.59 2.25 8 2.25C8.41 2.25 8.75 2.59 8.75 3V4.5H15.25V3C15.25 2.59 15.59 2.25 16 2.25C16.41 2.25 16.75 2.59 16.75 3V4.5H18C20 4.5 21 5.5 21 7.5Z",
18
+ fill: color
19
+ })
20
+ });
21
+ export default CalendarEdit;
22
+ //# sourceMappingURL=CalendarEdit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","Svg","Path","jsx","_jsx","CalendarEdit","size","color","style","width","height","viewBox","fill","children","d"],"sourceRoot":"../../../../src","sources":["Icon/icons/CalendarEdit.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,GAAG,IAAIC,IAAI,QAAQ,kBAAkB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAQ7C,MAAMC,YAA6B,GAAGA,CAAC;EACrCC,IAAI,GAAG,EAAE;EACTC,KAAK,GAAG,MAAM;EACdC;AACF,CAAC,kBACCJ,IAAA,CAACH,GAAG;EAACQ,KAAK,EAAEH,IAAK;EAACI,MAAM,EAAEJ,IAAK;EAACK,OAAO,EAAC,WAAW;EAACC,IAAI,EAAC,MAAM;EAACJ,KAAK,EAAEA,KAAM;EAAAK,QAAA,eAC3ET,IAAA,CAACF,IAAI;IACHY,CAAC,EAAC,6nBAA6nB;IAC/nBF,IAAI,EAAEL;EAAM,CACb;AAAC,CACC,CACN;AAED,eAAeF,YAAY","ignoreList":[]}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+
3
+ import React from 'react';
4
+ import Svg, { Path } from 'react-native-svg';
5
+ import { jsx as _jsx } from "react/jsx-runtime";
6
+ const InfoCircleOutline = ({
7
+ size = 24,
8
+ color = '#909090',
9
+ style
10
+ }) => /*#__PURE__*/_jsx(Svg, {
11
+ width: size,
12
+ height: size,
13
+ viewBox: "0 0 20 20",
14
+ fill: "none",
15
+ style: style,
16
+ children: /*#__PURE__*/_jsx(Path, {
17
+ d: "M9.99984 18.9584C5.05984 18.9584 1.0415 14.9401 1.0415 10.0001C1.0415 5.06008 5.05984 1.04175 9.99984 1.04175C14.9398 1.04175 18.9582 5.06008 18.9582 10.0001C18.9582 14.9401 14.9398 18.9584 9.99984 18.9584ZM9.99984 2.29175C5.749 2.29175 2.2915 5.74925 2.2915 10.0001C2.2915 14.2509 5.749 17.7084 9.99984 17.7084C14.2507 17.7084 17.7082 14.2509 17.7082 10.0001C17.7082 5.74925 14.2507 2.29175 9.99984 2.29175ZM10.6248 13.7501V9.94088C10.6248 9.59588 10.3448 9.31588 9.99984 9.31588C9.65484 9.31588 9.37484 9.59588 9.37484 9.94088V13.7501C9.37484 14.0951 9.65484 14.3751 9.99984 14.3751C10.3448 14.3751 10.6248 14.0951 10.6248 13.7501ZM10.8499 7.08342C10.8499 6.62341 10.4774 6.25008 10.0165 6.25008H10.0082C9.54818 6.25008 9.17892 6.62341 9.17892 7.08342C9.17892 7.54342 9.55652 7.91675 10.0165 7.91675C10.4765 7.91675 10.8499 7.54342 10.8499 7.08342Z",
18
+ fill: color
19
+ })
20
+ });
21
+ export default InfoCircleOutline;
22
+ //# sourceMappingURL=InfoCircleOutline.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","Svg","Path","jsx","_jsx","InfoCircleOutline","size","color","style","width","height","viewBox","fill","children","d"],"sourceRoot":"../../../../src","sources":["Icon/icons/InfoCircleOutline.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,GAAG,IAAIC,IAAI,QAAQ,kBAAkB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAQ7C,MAAMC,iBAAkC,GAAGA,CAAC;EAC1CC,IAAI,GAAG,EAAE;EACTC,KAAK,GAAG,SAAS;EACjBC;AACF,CAAC,kBACCJ,IAAA,CAACH,GAAG;EAACQ,KAAK,EAAEH,IAAK;EAACI,MAAM,EAAEJ,IAAK;EAACK,OAAO,EAAC,WAAW;EAACC,IAAI,EAAC,MAAM;EAACJ,KAAK,EAAEA,KAAM;EAAAK,QAAA,eAC3ET,IAAA,CAACF,IAAI;IACHY,CAAC,EAAC,o1BAAo1B;IACt1BF,IAAI,EAAEL;EAAM,CACb;AAAC,CACC,CACN;AAED,eAAeF,iBAAiB","ignoreList":[]}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+
3
+ import React from 'react';
4
+ import Svg, { Path } from 'react-native-svg';
5
+ import { jsx as _jsx } from "react/jsx-runtime";
6
+ const Tag = ({
7
+ size = 24,
8
+ color = '#000',
9
+ style
10
+ }) => /*#__PURE__*/_jsx(Svg, {
11
+ width: size,
12
+ height: size,
13
+ viewBox: "0 0 24 24",
14
+ fill: "none",
15
+ style: style,
16
+ children: /*#__PURE__*/_jsx(Path, {
17
+ d: "M19.96 15.21L15.2 19.98C13.83 21.34 12.4201 21.34 11.0601 19.98L10.256 19.167C10.139 19.05 10.139 18.86 10.256 18.743L18.7321 10.267C18.8491 10.15 19.039 10.15 19.156 10.267L19.959 11.07C21.37 12.48 21.32 13.84 19.96 15.21ZM17.698 9.23199L9.22205 17.708C9.10505 17.825 8.91497 17.825 8.79797 17.708L3.85999 12.77C3.30899 12.219 3 11.473 3 10.694V4.95001C3 3.87301 3.87295 3 4.94995 3H10.687C11.465 3 12.211 3.30899 12.76 3.85999L17.698 8.80798C17.815 8.92498 17.815 9.11499 17.698 9.23199ZM8 7C8 6.448 7.55395 6 7.00195 6H6.99194C6.44194 6 5.99902 6.448 5.99902 7C5.99902 7.552 6.45098 8 7.00098 8C7.55398 8 8 7.552 8 7Z",
18
+ fill: color
19
+ })
20
+ });
21
+ export default Tag;
22
+ //# sourceMappingURL=Tag.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","Svg","Path","jsx","_jsx","Tag","size","color","style","width","height","viewBox","fill","children","d"],"sourceRoot":"../../../../src","sources":["Icon/icons/Tag.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,GAAG,IAAIC,IAAI,QAAQ,kBAAkB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAQ7C,MAAMC,GAAoB,GAAGA,CAAC;EAAEC,IAAI,GAAG,EAAE;EAAEC,KAAK,GAAG,MAAM;EAAEC;AAAM,CAAC,kBAChEJ,IAAA,CAACH,GAAG;EAACQ,KAAK,EAAEH,IAAK;EAACI,MAAM,EAAEJ,IAAK;EAACK,OAAO,EAAC,WAAW;EAACC,IAAI,EAAC,MAAM;EAACJ,KAAK,EAAEA,KAAM;EAAAK,QAAA,eAC3ET,IAAA,CAACF,IAAI;IACHY,CAAC,EAAC,8mBAA8mB;IAChnBF,IAAI,EAAEL;EAAM,CACb;AAAC,CACC,CACN;AAED,eAAeF,GAAG","ignoreList":[]}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+
3
+ import React from 'react';
4
+ import Svg, { Path } from 'react-native-svg';
5
+ import { jsx as _jsx } from "react/jsx-runtime";
6
+ const Tool = ({
7
+ size = 24,
8
+ color = '#909090',
9
+ style
10
+ }) => /*#__PURE__*/_jsx(Svg, {
11
+ width: size,
12
+ height: size,
13
+ viewBox: "0 0 20 20",
14
+ fill: "none",
15
+ style: style,
16
+ children: /*#__PURE__*/_jsx(Path, {
17
+ d: "M17.15 5.46664L15.3333 7.2833C14.85 7.7583 14.0583 7.75832 13.575 7.27498L12.725 6.42497C12.2417 5.94163 12.2417 5.14996 12.725 4.67496L14.5333 2.84998C13.2583 2.34165 11.675 2.32496 10.1917 3.21663C9.59166 3.57496 9.08333 4.05831 8.725 4.64165C8.7 4.67498 8.675 4.70832 8.65833 4.74998C8.00833 5.82498 7.83333 6.94997 7.98334 7.96664C8.04167 8.34997 7.90834 8.7333 7.63334 8.99996L3.2 13.4416C2.73333 13.9 2.5 14.5167 2.5 15.1167C2.5 15.7333 2.73333 16.3333 3.2 16.8C4.125 17.7333 5.63333 17.7333 6.55833 16.8L11 12.3666C11.2667 12.0916 11.65 11.9583 12.0333 12.0167C13.05 12.1667 14.175 11.9916 15.2417 11.35C15.875 10.975 16.4083 10.4416 16.775 9.81664C17.675 8.33331 17.6583 6.74164 17.15 5.46664ZM5.01667 15.8333C4.55834 15.8333 4.18334 15.4583 4.18334 15C4.18334 14.5416 4.55 14.1666 5.00833 14.1666H5.01667C5.475 14.1666 5.85 14.5416 5.85 15C5.85 15.4583 5.475 15.8333 5.01667 15.8333Z",
18
+ fill: color
19
+ })
20
+ });
21
+ export default Tool;
22
+ //# sourceMappingURL=Tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","Svg","Path","jsx","_jsx","Tool","size","color","style","width","height","viewBox","fill","children","d"],"sourceRoot":"../../../../src","sources":["Icon/icons/Tool.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,GAAG,IAAIC,IAAI,QAAQ,kBAAkB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAQ7C,MAAMC,IAAqB,GAAGA,CAAC;EAAEC,IAAI,GAAG,EAAE;EAAEC,KAAK,GAAG,SAAS;EAAEC;AAAM,CAAC,kBACpEJ,IAAA,CAACH,GAAG;EAACQ,KAAK,EAAEH,IAAK;EAACI,MAAM,EAAEJ,IAAK;EAACK,OAAO,EAAC,WAAW;EAACC,IAAI,EAAC,MAAM;EAACJ,KAAK,EAAEA,KAAM;EAAAK,QAAA,eAC3ET,IAAA,CAACF,IAAI;IACHY,CAAC,EAAC,83BAA83B;IACh4BF,IAAI,EAAEL;EAAM,CACb;AAAC,CACC,CACN;AAED,eAAeF,IAAI","ignoreList":[]}
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+
3
+ import React from 'react';
4
+ import Svg, { Path } from 'react-native-svg';
5
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
6
+ const UserEdit = ({
7
+ size = 24,
8
+ color = '#000',
9
+ style
10
+ }) => /*#__PURE__*/_jsxs(Svg, {
11
+ width: size,
12
+ height: size,
13
+ viewBox: "0 0 24 24",
14
+ fill: "none",
15
+ style: style,
16
+ children: [/*#__PURE__*/_jsx(Path, {
17
+ d: "M6.00903 6.5C6.00903 4.294 7.80303 2.5 10.009 2.5C12.215 2.5 14.009 4.294 14.009 6.5C14.009 8.706 12.215 10.5 10.009 10.5C7.80303 10.5 6.00903 8.706 6.00903 6.5ZM16.057 14.1801C16.057 14.0681 15.9571 13.9689 15.9301 13.9399C15.0601 13.0799 13.79 12.5 12 12.5H8C3.94 12.5 2.5 15.47 2.5 18.02C2.5 20.3 3.71 21.5 6 21.5H11.2C11.28 21.5 11.36 21.47 11.41 21.41C11.46 21.36 11.5 21.2749 11.5 21.1949V19.5C11.5 19.1 11.6599 18.7199 11.9399 18.4399L15.97 14.39C16.02 14.34 16.057 14.2601 16.057 14.1801Z",
18
+ fill: color
19
+ }), /*#__PURE__*/_jsx(Path, {
20
+ d: "M13 22V19.501L17.519 14.9621L20.038 17.481L15.499 22H13Z",
21
+ fill: color
22
+ }), /*#__PURE__*/_jsx(Path, {
23
+ d: "M20.588 13.292L21.708 14.412C22.097 14.802 22.097 15.4321 21.707 15.8211L20.7371 16.781L18.218 14.262L19.178 13.292C19.568 12.902 20.198 12.902 20.588 13.292Z",
24
+ fill: color
25
+ })]
26
+ });
27
+ export default UserEdit;
28
+ //# sourceMappingURL=UserEdit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","Svg","Path","jsx","_jsx","jsxs","_jsxs","UserEdit","size","color","style","width","height","viewBox","fill","children","d"],"sourceRoot":"../../../../src","sources":["Icon/icons/UserEdit.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,GAAG,IAAIC,IAAI,QAAQ,kBAAkB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAQ7C,MAAMC,QAAyB,GAAGA,CAAC;EAAEC,IAAI,GAAG,EAAE;EAAEC,KAAK,GAAG,MAAM;EAAEC;AAAM,CAAC,kBACrEJ,KAAA,CAACL,GAAG;EAACU,KAAK,EAAEH,IAAK;EAACI,MAAM,EAAEJ,IAAK;EAACK,OAAO,EAAC,WAAW;EAACC,IAAI,EAAC,MAAM;EAACJ,KAAK,EAAEA,KAAM;EAAAK,QAAA,gBAC3EX,IAAA,CAACF,IAAI;IACHc,CAAC,EAAC,kfAAkf;IACpfF,IAAI,EAAEL;EAAM,CACb,CAAC,eACFL,IAAA,CAACF,IAAI;IACHc,CAAC,EAAC,0DAA0D;IAC5DF,IAAI,EAAEL;EAAM,CACb,CAAC,eACFL,IAAA,CAACF,IAAI;IACHc,CAAC,EAAC,gKAAgK;IAClKF,IAAI,EAAEL;EAAM,CACb,CAAC;AAAA,CACC,CACN;AAED,eAAeF,QAAQ","ignoreList":[]}
@@ -89,18 +89,20 @@ Setiap tab dibungkus dalam `ScrollView` vertikal, sehingga bisa discroll ke bawa
89
89
 
90
90
  ### `TabProps`
91
91
 
92
- | Properti | Tipe | Keterangan |
93
- | -------------- | ------------------------- | ----------------------------- |
94
- | `children` | `React.ReactNode` | Daftar elemen `<TabItem />` |
95
- | `current?` | `number` | Indeks tab aktif (default: 0) |
96
- | `onChangeTab?` | `(index: number) => void` | Callback saat tab berpindah |
92
+ | Properti | Tipe | Keterangan |
93
+ | -------------- | ------------------------- | ---------------------------------- |
94
+ | `children` | `React.ReactNode` | Daftar elemen `<TabItem />` |
95
+ | `current?` | `number` | Indeks tab aktif (default: 0) |
96
+ | `onChangeTab?` | `(index: number) => void` | Callback saat tab berpindah |
97
+ | `renderHeader` | `React.ReactElement` | tambahan react element di atas tab |
97
98
 
98
99
  ### `TabItemProps`
99
100
 
100
- | Properti | Tipe | Keterangan |
101
- | ----------- | --------------------- | ---------------------------------- |
102
- | `name` | `string` | Nama/tab label yang ditampilkan |
103
- | `component` | `React.ComponentType` | Komponen yang akan dirender di tab |
101
+ | Properti | Tipe | Keterangan |
102
+ | --------------- | ------------------------------------------------------- | --------------------------------------------------------------------------------------------------- |
103
+ | `name` | `string` | Label/nama tab yang akan ditampilkan. Wajib diisi jika renderTabName tidak digunakan. |
104
+ | `renderTabName` | `(props: { isActive: boolean; }) => React.ReactElement` | Fungsi untuk me-render custom label/tab menggunakan komponen sendiri. Wajib diisi jika name kosong. |
105
+ | `component` | `React.ComponentType` | Komponen yang akan dirender di tab |
104
106
 
105
107
  ---
106
108
 
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  import React, { useCallback, useState, useEffect, useRef, Children, isValidElement } from 'react';
4
- import { View, Pressable, StyleSheet } from 'react-native';
4
+ import { View, Pressable, StyleSheet, ScrollView } from 'react-native';
5
5
  import PagerView from 'react-native-pager-view';
6
6
  import Color from "../Color/Color.js";
7
7
  import Typography from "../Typography/Typography.js";
@@ -9,11 +9,13 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
9
9
  const Tab = ({
10
10
  children,
11
11
  current = 0,
12
- onChangeTab
12
+ onChangeTab,
13
+ renderHeader
13
14
  }) => {
14
15
  const items = Children.toArray(children).filter(isValidElement);
15
16
  const [activeIndex, setActiveIndex] = useState(current);
16
17
  const pagerRef = useRef(null);
18
+ const currentHeight = items[activeIndex]?.props?.height ?? 0;
17
19
  useEffect(() => {
18
20
  setActiveIndex(current);
19
21
  pagerRef.current?.setPageWithoutAnimation(current);
@@ -29,40 +31,53 @@ const Tab = ({
29
31
  updateActive(index);
30
32
  };
31
33
  if (items.length === 0) return null;
32
- return /*#__PURE__*/_jsxs(View, {
34
+ return /*#__PURE__*/_jsx(View, {
33
35
  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
36
+ children: /*#__PURE__*/_jsxs(ScrollView, {
37
+ stickyHeaderIndices: [renderHeader ? 1 : 0] // bikin tabBar sticky
38
+ ,
39
+ contentContainerStyle: styles.scrollViewContainer,
40
+ children: [renderHeader ? renderHeader : null, /*#__PURE__*/_jsx(ScrollView, {
41
+ horizontal: true,
42
+ showsHorizontalScrollIndicator: false,
43
+ style: styles.tabBarWrapper,
44
+ children: /*#__PURE__*/_jsx(View, {
45
+ style: styles.tabBar,
46
+ children: items.map((item, index) => {
47
+ const isActive = index === activeIndex;
48
+ return /*#__PURE__*/_jsxs(React.Fragment, {
49
+ children: [!item.props.renderTabName && /*#__PURE__*/_jsx(Pressable, {
50
+ style: [styles.tabButton, isActive ? styles.tabActive : styles.tabInactive],
51
+ onPress: () => handleHeaderPress(index),
52
+ children: /*#__PURE__*/_jsx(Typography, {
53
+ center: true,
54
+ variant: "t2",
55
+ weight: "semibold",
56
+ color: isActive ? Color.base.white100 : Color.gray[700],
57
+ children: item.props.name
58
+ })
59
+ }), item.props.renderTabName && /*#__PURE__*/_jsx(Pressable, {
60
+ onPress: () => handleHeaderPress(index),
61
+ children: item.props.renderTabName({
62
+ isActive
63
+ })
64
+ })]
65
+ }, index);
47
66
  })
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, {
67
+ })
68
+ }), /*#__PURE__*/_jsx(PagerView, {
69
+ ref: pagerRef,
70
+ style: [styles.pager, {
71
+ height: currentHeight || 800
72
+ }],
73
+ initialPage: current,
74
+ onPageSelected: e => updateActive(e.nativeEvent.position),
75
+ children: items.map((item, index) => /*#__PURE__*/_jsx(View, {
58
76
  collapsable: false,
59
- style: {
60
- flex: 1
61
- },
62
- children: Comp ? /*#__PURE__*/_jsx(Comp, {}) : null
63
- }, index);
64
- })
65
- })]
77
+ children: item?.props?.children
78
+ }, index))
79
+ })]
80
+ })
66
81
  });
67
82
  };
68
83
  export default Tab;
@@ -70,19 +85,23 @@ const styles = StyleSheet.create({
70
85
  container: {
71
86
  flex: 1
72
87
  },
73
- headerContainer: {
74
- flexDirection: 'row',
88
+ tabBarWrapper: {
75
89
  backgroundColor: Color.gray[100],
90
+ borderRadius: 8
91
+ },
92
+ tabBar: {
93
+ flexDirection: 'row',
94
+ // tetap row
76
95
  padding: 4,
77
96
  borderRadius: 8
78
97
  },
79
98
  tabButton: {
80
- flex: 1,
81
99
  borderRadius: 8,
82
100
  paddingVertical: 6,
83
101
  paddingHorizontal: 16,
84
102
  justifyContent: 'center',
85
- alignItems: 'center'
103
+ alignItems: 'center',
104
+ marginRight: 8
86
105
  },
87
106
  tabActive: {
88
107
  backgroundColor: Color.primary[1000]
@@ -91,7 +110,12 @@ const styles = StyleSheet.create({
91
110
  backgroundColor: Color.gray[100]
92
111
  },
93
112
  pager: {
94
- flex: 1
113
+ flex: 1,
114
+ minHeight: 800,
115
+ marginBottom: 10
116
+ },
117
+ scrollViewContainer: {
118
+ flexGrow: 1
95
119
  }
96
120
  });
97
121
  //# sourceMappingURL=Tab.js.map
@@ -1 +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":[]}
1
+ {"version":3,"names":["React","useCallback","useState","useEffect","useRef","Children","isValidElement","View","Pressable","StyleSheet","ScrollView","PagerView","Color","Typography","jsx","_jsx","jsxs","_jsxs","Tab","children","current","onChangeTab","renderHeader","items","toArray","filter","activeIndex","setActiveIndex","pagerRef","currentHeight","props","height","setPageWithoutAnimation","updateActive","index","handleHeaderPress","setPage","length","style","styles","container","stickyHeaderIndices","contentContainerStyle","scrollViewContainer","horizontal","showsHorizontalScrollIndicator","tabBarWrapper","tabBar","map","item","isActive","Fragment","renderTabName","tabButton","tabActive","tabInactive","onPress","center","variant","weight","color","base","white100","gray","name","ref","pager","initialPage","onPageSelected","e","nativeEvent","position","collapsable","create","flex","backgroundColor","borderRadius","flexDirection","padding","paddingVertical","paddingHorizontal","justifyContent","alignItems","marginRight","primary","minHeight","marginBottom","flexGrow"],"sourceRoot":"../../../src","sources":["Tab/Tab.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IACVC,WAAW,EACXC,QAAQ,EACRC,SAAS,EACTC,MAAM,EACNC,QAAQ,EACRC,cAAc,QACT,OAAO;AACd,SAASC,IAAI,EAAEC,SAAS,EAAEC,UAAU,EAAEC,UAAU,QAAQ,cAAc;AACtE,OAAOC,SAAS,MAAM,yBAAyB;AAC/C,OAAOC,KAAK,MAAM,mBAAgB;AAClC,OAAOC,UAAU,MAAM,6BAA0B;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAGlD,MAAMC,GAAuB,GAAGA,CAAC;EAC/BC,QAAQ;EACRC,OAAO,GAAG,CAAC;EACXC,WAAW;EACXC;AACF,CAAC,KAAK;EACJ,MAAMC,KAAK,GAAGlB,QAAQ,CAACmB,OAAO,CAACL,QAAQ,CAAC,CAACM,MAAM,CAC7CnB,cACF,CAAuC;EAEvC,MAAM,CAACoB,WAAW,EAAEC,cAAc,CAAC,GAAGzB,QAAQ,CAASkB,OAAO,CAAC;EAC/D,MAAMQ,QAAQ,GAAGxB,MAAM,CAAY,IAAI,CAAC;EACxC,MAAMyB,aAAa,GAAGN,KAAK,CAACG,WAAW,CAAC,EAAEI,KAAK,EAAEC,MAAM,IAAI,CAAC;EAE5D5B,SAAS,CAAC,MAAM;IACdwB,cAAc,CAACP,OAAO,CAAC;IACvBQ,QAAQ,CAACR,OAAO,EAAEY,uBAAuB,CAACZ,OAAO,CAAC;EACpD,CAAC,EAAE,CAACA,OAAO,CAAC,CAAC;EAEb,MAAMa,YAAY,GAAGhC,WAAW,CAC7BiC,KAAa,IAAK;IACjB,IAAIA,KAAK,KAAKR,WAAW,EAAE;MACzBC,cAAc,CAACO,KAAK,CAAC;MACrBb,WAAW,GAAGa,KAAK,CAAC;IACtB;EACF,CAAC,EACD,CAACR,WAAW,EAAEL,WAAW,CAC3B,CAAC;EAED,MAAMc,iBAAiB,GAAID,KAAa,IAAK;IAC3CN,QAAQ,CAACR,OAAO,EAAEgB,OAAO,CAACF,KAAK,CAAC;IAChCD,YAAY,CAACC,KAAK,CAAC;EACrB,CAAC;EAED,IAAIX,KAAK,CAACc,MAAM,KAAK,CAAC,EAAE,OAAO,IAAI;EAEnC,oBACEtB,IAAA,CAACR,IAAI;IAAC+B,KAAK,EAAEC,MAAM,CAACC,SAAU;IAAArB,QAAA,eAC5BF,KAAA,CAACP,UAAU;MACT+B,mBAAmB,EAAE,CAACnB,YAAY,GAAG,CAAC,GAAG,CAAC,CAAE,CAAC;MAAA;MAC7CoB,qBAAqB,EAAEH,MAAM,CAACI,mBAAoB;MAAAxB,QAAA,GAGjDG,YAAY,GAAGA,YAAY,GAAG,IAAI,eAGnCP,IAAA,CAACL,UAAU;QACTkC,UAAU;QACVC,8BAA8B,EAAE,KAAM;QACtCP,KAAK,EAAEC,MAAM,CAACO,aAAc;QAAA3B,QAAA,eAE5BJ,IAAA,CAACR,IAAI;UAAC+B,KAAK,EAAEC,MAAM,CAACQ,MAAO;UAAA5B,QAAA,EACxBI,KAAK,CAACyB,GAAG,CAAC,CAACC,IAAI,EAAEf,KAAK,KAAK;YAC1B,MAAMgB,QAAQ,GAAGhB,KAAK,KAAKR,WAAW;YACtC,oBACET,KAAA,CAACjB,KAAK,CAACmD,QAAQ;cAAAhC,QAAA,GACZ,CAAC8B,IAAI,CAACnB,KAAK,CAACsB,aAAa,iBACxBrC,IAAA,CAACP,SAAS;gBACR8B,KAAK,EAAE,CACLC,MAAM,CAACc,SAAS,EAChBH,QAAQ,GAAGX,MAAM,CAACe,SAAS,GAAGf,MAAM,CAACgB,WAAW,CAChD;gBACFC,OAAO,EAAEA,CAAA,KAAMrB,iBAAiB,CAACD,KAAK,CAAE;gBAAAf,QAAA,eAExCJ,IAAA,CAACF,UAAU;kBACT4C,MAAM;kBACNC,OAAO,EAAC,IAAI;kBACZC,MAAM,EAAC,UAAU;kBACjBC,KAAK,EAAEV,QAAQ,GAAGtC,KAAK,CAACiD,IAAI,CAACC,QAAQ,GAAGlD,KAAK,CAACmD,IAAI,CAAC,GAAG,CAAE;kBAAA5C,QAAA,EAEvD8B,IAAI,CAACnB,KAAK,CAACkC;gBAAI,CACN;cAAC,CACJ,CACZ,EAEAf,IAAI,CAACnB,KAAK,CAACsB,aAAa,iBACvBrC,IAAA,CAACP,SAAS;gBAACgD,OAAO,EAAEA,CAAA,KAAMrB,iBAAiB,CAACD,KAAK,CAAE;gBAAAf,QAAA,EAChD8B,IAAI,CAACnB,KAAK,CAACsB,aAAa,CAAC;kBACxBF;gBACF,CAAC;cAAC,CACO,CACZ;YAAA,GA1BkBhB,KA2BL,CAAC;UAErB,CAAC;QAAC,CACE;MAAC,CACG,CAAC,eAGbnB,IAAA,CAACJ,SAAS;QACRsD,GAAG,EAAErC,QAAS;QACdU,KAAK,EAAE,CAACC,MAAM,CAAC2B,KAAK,EAAE;UAAEnC,MAAM,EAAEF,aAAa,IAAI;QAAI,CAAC,CAAE;QACxDsC,WAAW,EAAE/C,OAAQ;QACrBgD,cAAc,EAAGC,CAAC,IAAKpC,YAAY,CAACoC,CAAC,CAACC,WAAW,CAACC,QAAQ,CAAE;QAAApD,QAAA,EAE3DI,KAAK,CAACyB,GAAG,CAAC,CAACC,IAAI,EAAEf,KAAK,kBACrBnB,IAAA,CAACR,IAAI;UAAaiE,WAAW,EAAE,KAAM;UAAArD,QAAA,EAClC8B,IAAI,EAAEnB,KAAK,EAAEX;QAAQ,GADbe,KAEL,CACP;MAAC,CACO,CAAC;IAAA,CACF;EAAC,CACT,CAAC;AAEX,CAAC;AAED,eAAehB,GAAG;AAElB,MAAMqB,MAAM,GAAG9B,UAAU,CAACgE,MAAM,CAAC;EAC/BjC,SAAS,EAAE;IAAEkC,IAAI,EAAE;EAAE,CAAC;EACtB5B,aAAa,EAAE;IACb6B,eAAe,EAAE/D,KAAK,CAACmD,IAAI,CAAC,GAAG,CAAC;IAChCa,YAAY,EAAE;EAChB,CAAC;EACD7B,MAAM,EAAE;IACN8B,aAAa,EAAE,KAAK;IAAE;IACtBC,OAAO,EAAE,CAAC;IACVF,YAAY,EAAE;EAChB,CAAC;EACDvB,SAAS,EAAE;IACTuB,YAAY,EAAE,CAAC;IACfG,eAAe,EAAE,CAAC;IAClBC,iBAAiB,EAAE,EAAE;IACrBC,cAAc,EAAE,QAAQ;IACxBC,UAAU,EAAE,QAAQ;IACpBC,WAAW,EAAE;EACf,CAAC;EACD7B,SAAS,EAAE;IAAEqB,eAAe,EAAE/D,KAAK,CAACwE,OAAO,CAAC,IAAI;EAAE,CAAC;EACnD7B,WAAW,EAAE;IAAEoB,eAAe,EAAE/D,KAAK,CAACmD,IAAI,CAAC,GAAG;EAAE,CAAC;EACjDG,KAAK,EAAE;IAAEQ,IAAI,EAAE,CAAC;IAAEW,SAAS,EAAE,GAAG;IAAEC,YAAY,EAAE;EAAG,CAAC;EACpD3C,mBAAmB,EAAE;IAAE4C,QAAQ,EAAE;EAAE;AACrC,CAAC,CAAC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"Icon.d.ts","sourceRoot":"","sources":["../../../../src/Icon/Icon.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAmB1B,OAAO,KAAK,EAAiB,SAAS,EAAE,MAAM,QAAQ,CAAC;AAyHvD,QAAA,MAAM,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CAa7B,CAAC;AAEF,eAAe,IAAI,CAAC"}
1
+ {"version":3,"file":"Icon.d.ts","sourceRoot":"","sources":["../../../../src/Icon/Icon.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAmB1B,OAAO,KAAK,EAAiB,SAAS,EAAE,MAAM,QAAQ,CAAC;AAmIvD,QAAA,MAAM,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CAa7B,CAAC;AAEF,eAAe,IAAI,CAAC"}
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ interface Props {
3
+ size?: number;
4
+ color?: string;
5
+ style?: object;
6
+ }
7
+ declare const CalendarEdit: React.FC<Props>;
8
+ export default CalendarEdit;
9
+ //# sourceMappingURL=CalendarEdit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CalendarEdit.d.ts","sourceRoot":"","sources":["../../../../../src/Icon/icons/CalendarEdit.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,UAAU,KAAK;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,QAAA,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAWjC,CAAC;AAEF,eAAe,YAAY,CAAC"}
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ interface Props {
3
+ size?: number;
4
+ color?: string;
5
+ style?: object;
6
+ }
7
+ declare const InfoCircleOutline: React.FC<Props>;
8
+ export default InfoCircleOutline;
9
+ //# sourceMappingURL=InfoCircleOutline.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InfoCircleOutline.d.ts","sourceRoot":"","sources":["../../../../../src/Icon/icons/InfoCircleOutline.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,UAAU,KAAK;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,QAAA,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAWtC,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ interface Props {
3
+ size?: number;
4
+ color?: string;
5
+ style?: object;
6
+ }
7
+ declare const Tag: React.FC<Props>;
8
+ export default Tag;
9
+ //# sourceMappingURL=Tag.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Tag.d.ts","sourceRoot":"","sources":["../../../../../src/Icon/icons/Tag.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,UAAU,KAAK;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,QAAA,MAAM,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAOxB,CAAC;AAEF,eAAe,GAAG,CAAC"}
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ interface Props {
3
+ size?: number;
4
+ color?: string;
5
+ style?: object;
6
+ }
7
+ declare const Tool: React.FC<Props>;
8
+ export default Tool;
9
+ //# sourceMappingURL=Tool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Tool.d.ts","sourceRoot":"","sources":["../../../../../src/Icon/icons/Tool.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,UAAU,KAAK;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,QAAA,MAAM,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAOzB,CAAC;AAEF,eAAe,IAAI,CAAC"}
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ interface Props {
3
+ size?: number;
4
+ color?: string;
5
+ style?: object;
6
+ }
7
+ declare const UserEdit: React.FC<Props>;
8
+ export default UserEdit;
9
+ //# sourceMappingURL=UserEdit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UserEdit.d.ts","sourceRoot":"","sources":["../../../../../src/Icon/icons/UserEdit.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,UAAU,KAAK;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,QAAA,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAe7B,CAAC;AAEF,eAAe,QAAQ,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { type ViewStyle } from 'react-native';
2
- export type IconNameProps = 'Search' | 'User' | 'Eye' | 'EyeOpen' | 'ArrowRight' | 'ArrowLeft' | 'Document' | 'Calendar' | 'ExclamationMark' | 'Download' | 'x-circle' | 'StickyNote' | 'RadioButton' | 'Pdf' | 'ArrowBackAlt' | 'ArrowForwardAlt' | 'ArrowDown' | 'ArrowUp' | 'Check' | 'Filter' | 'AirPlane' | 'Camera' | 'Image' | 'Times' | 'Plus' | 'Minus' | 'Bell' | 'file-list-check' | 'file-text' | 'bookmark-user' | 'folder-clock' | 'home-fill' | 'home-outline' | 'user-circle-outline' | 'user-circle-fill' | 'clipboard-list-check' | 'clipboard-list' | 'Megaphone' | 'Scanner' | 'Clock' | 'clock-outline' | 'clipboard-list-check-outline' | 'box-outline' | 'Box' | 'plus-square' | 'at-sign' | 'briefcase-outline' | 'edit-square-outline' | 'globe-earth' | 'lock-fill' | 'logo-herca-hris' | 'question-circle-outline' | 'shield-fill' | 'Users' | 'Bold' | 'Italic' | 'UnderLine' | 'settings-slider' | 'location-pin-fill' | 'discount-fill' | 'rotate-square-fill' | 'copy-fill' | 'copy-text-fill' | 'shield-checked-fill' | 'whatsapp-fill';
2
+ export type IconNameProps = 'Search' | 'User' | 'Eye' | 'EyeOpen' | 'ArrowRight' | 'ArrowLeft' | 'Document' | 'Calendar' | 'ExclamationMark' | 'Download' | 'x-circle' | 'StickyNote' | 'RadioButton' | 'Pdf' | 'ArrowBackAlt' | 'ArrowForwardAlt' | 'ArrowDown' | 'ArrowUp' | 'Check' | 'Filter' | 'AirPlane' | 'Camera' | 'Image' | 'Times' | 'Plus' | 'Minus' | 'Bell' | 'file-list-check' | 'file-text' | 'bookmark-user' | 'folder-clock' | 'home-fill' | 'home-outline' | 'user-circle-outline' | 'user-circle-fill' | 'clipboard-list-check' | 'clipboard-list' | 'Megaphone' | 'Scanner' | 'Clock' | 'clock-outline' | 'clipboard-list-check-outline' | 'box-outline' | 'Box' | 'plus-square' | 'at-sign' | 'briefcase-outline' | 'edit-square-outline' | 'globe-earth' | 'lock-fill' | 'logo-herca-hris' | 'question-circle-outline' | 'shield-fill' | 'Users' | 'Bold' | 'Italic' | 'UnderLine' | 'settings-slider' | 'location-pin-fill' | 'discount-fill' | 'rotate-square-fill' | 'copy-fill' | 'copy-text-fill' | 'shield-checked-fill' | 'calendar-edit' | 'info-circle-outline' | 'Tag' | 'Tool' | 'user-edit' | 'whatsapp-fill';
3
3
  export interface IconProps {
4
4
  name: IconNameProps;
5
5
  size?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"type.d.ts","sourceRoot":"","sources":["../../../../src/Icon/type.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9C,MAAM,MAAM,aAAa,GACrB,QAAQ,GACR,MAAM,GACN,KAAK,GACL,SAAS,GACT,YAAY,GACZ,WAAW,GACX,UAAU,GACV,UAAU,GACV,iBAAiB,GACjB,UAAU,GACV,UAAU,GACV,YAAY,GACZ,aAAa,GACb,KAAK,GACL,cAAc,GACd,iBAAiB,GACjB,WAAW,GACX,SAAS,GACT,OAAO,GACP,QAAQ,GACR,UAAU,GACV,QAAQ,GACR,OAAO,GACP,OAAO,GACP,MAAM,GACN,OAAO,GACP,MAAM,GACN,iBAAiB,GACjB,WAAW,GACX,eAAe,GACf,cAAc,GACd,WAAW,GACX,cAAc,GACd,qBAAqB,GACrB,kBAAkB,GAClB,sBAAsB,GACtB,gBAAgB,GAChB,WAAW,GACX,SAAS,GACT,OAAO,GACP,eAAe,GACf,8BAA8B,GAC9B,aAAa,GACb,KAAK,GACL,aAAa,GACb,SAAS,GACT,mBAAmB,GACnB,qBAAqB,GACrB,aAAa,GACb,WAAW,GACX,iBAAiB,GACjB,yBAAyB,GACzB,aAAa,GACb,OAAO,GACP,MAAM,GACN,QAAQ,GACR,WAAW,GACX,iBAAiB,GACjB,mBAAmB,GACnB,eAAe,GACf,oBAAoB,GACpB,WAAW,GACX,gBAAgB,GAChB,qBAAqB,GACrB,eAAe,CAAC;AAEpB,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,aAAa,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,SAAS,CAAC;CACnB"}
1
+ {"version":3,"file":"type.d.ts","sourceRoot":"","sources":["../../../../src/Icon/type.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9C,MAAM,MAAM,aAAa,GACrB,QAAQ,GACR,MAAM,GACN,KAAK,GACL,SAAS,GACT,YAAY,GACZ,WAAW,GACX,UAAU,GACV,UAAU,GACV,iBAAiB,GACjB,UAAU,GACV,UAAU,GACV,YAAY,GACZ,aAAa,GACb,KAAK,GACL,cAAc,GACd,iBAAiB,GACjB,WAAW,GACX,SAAS,GACT,OAAO,GACP,QAAQ,GACR,UAAU,GACV,QAAQ,GACR,OAAO,GACP,OAAO,GACP,MAAM,GACN,OAAO,GACP,MAAM,GACN,iBAAiB,GACjB,WAAW,GACX,eAAe,GACf,cAAc,GACd,WAAW,GACX,cAAc,GACd,qBAAqB,GACrB,kBAAkB,GAClB,sBAAsB,GACtB,gBAAgB,GAChB,WAAW,GACX,SAAS,GACT,OAAO,GACP,eAAe,GACf,8BAA8B,GAC9B,aAAa,GACb,KAAK,GACL,aAAa,GACb,SAAS,GACT,mBAAmB,GACnB,qBAAqB,GACrB,aAAa,GACb,WAAW,GACX,iBAAiB,GACjB,yBAAyB,GACzB,aAAa,GACb,OAAO,GACP,MAAM,GACN,QAAQ,GACR,WAAW,GACX,iBAAiB,GACjB,mBAAmB,GACnB,eAAe,GACf,oBAAoB,GACpB,WAAW,GACX,gBAAgB,GAChB,qBAAqB,GACrB,eAAe,GACf,qBAAqB,GACrB,KAAK,GACL,MAAM,GACN,WAAW,GACX,eAAe,CAAC;AAEpB,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,aAAa,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,SAAS,CAAC;CACnB"}
@@ -1 +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"}
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,CAwG3B,CAAC;AAEF,eAAe,GAAG,CAAC"}
@@ -1,11 +1,21 @@
1
1
  import React, { type ReactElement } from 'react';
2
- export interface TabItemProps {
2
+ export type TabItemProps = {
3
3
  name: string | number;
4
- component: React.ComponentType<any>;
5
- }
4
+ children: React.ReactElement<any>;
5
+ height?: number;
6
+ renderTabName?: never;
7
+ } | {
8
+ name?: string | number;
9
+ children: React.ReactElement<any>;
10
+ height?: number;
11
+ renderTabName: (props: {
12
+ isActive: boolean;
13
+ }) => React.ReactElement;
14
+ };
6
15
  export interface TabProps {
7
16
  children: ReactElement<TabItemProps> | ReactElement<TabItemProps>[];
8
17
  current?: number;
18
+ renderHeader?: React.ReactElement;
9
19
  onChangeTab?: (e: any) => void;
10
20
  }
11
21
  //# sourceMappingURL=type.d.ts.map
@@ -1 +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"}
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,MAAM,YAAY,GACpB;IACE,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IACtB,QAAQ,EAAE,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,KAAK,CAAC;CACvB,GACD;IACE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,QAAQ,EAAE,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,CAAC,KAAK,EAAE;QAAE,QAAQ,EAAE,OAAO,CAAA;KAAE,KAAK,KAAK,CAAC,YAAY,CAAC;CACrE,CAAC;AAEN,MAAM,WAAW,QAAQ;IACvB,QAAQ,EAAE,YAAY,CAAC,YAAY,CAAC,GAAG,YAAY,CAAC,YAAY,CAAC,EAAE,CAAC;IACpE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC;IAClC,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;CAChC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@herca/rn-kit",
3
- "version": "0.1.35",
3
+ "version": "0.1.37",
4
4
  "description": "React Native UI Kit",
5
5
  "main": "./lib/module/index.js",
6
6
  "types": "./lib/typescript/src/index.d.ts",
package/src/Icon/Icon.tsx CHANGED
@@ -66,6 +66,11 @@ import DiscountFill from './icons/DiscountFill';
66
66
  import CopyFill from './icons/CopyFill';
67
67
  import CopyTextFill from './icons/CopyTextFill';
68
68
  import ShieldCheckedFill from './icons/ShieldFillChecked';
69
+ import CalendarEdit from './icons/CalendarEdit';
70
+ import InfoCircleOutline from './icons/InfoCircleOutline';
71
+ import Tag from './icons/Tag';
72
+ import Tool from './icons/Tool';
73
+ import UserEdit from './icons/UserEdit';
69
74
 
70
75
  const icons: Record<
71
76
  IconNameProps,
@@ -136,6 +141,11 @@ const icons: Record<
136
141
  'copy-fill': CopyFill,
137
142
  'copy-text-fill': CopyTextFill,
138
143
  'shield-checked-fill': ShieldCheckedFill,
144
+ 'calendar-edit': CalendarEdit,
145
+ 'info-circle-outline': InfoCircleOutline,
146
+ 'user-edit': UserEdit,
147
+ 'Tag': Tag,
148
+ 'Tool': Tool,
139
149
  };
140
150
 
141
151
  const Icon: React.FC<IconProps> = ({
@@ -113,3 +113,8 @@ export default function App() {
113
113
  - copy-fill
114
114
  - copy-text-fill
115
115
  - shield-checked-fill
116
+ - calendar-edit
117
+ - info-circle-outline
118
+ - Tag
119
+ - Tool
120
+ - user-edit
@@ -0,0 +1,23 @@
1
+ import React from 'react';
2
+ import Svg, { Path } from 'react-native-svg';
3
+
4
+ interface Props {
5
+ size?: number;
6
+ color?: string;
7
+ style?: object;
8
+ }
9
+
10
+ const CalendarEdit: React.FC<Props> = ({
11
+ size = 24,
12
+ color = '#000',
13
+ style,
14
+ }) => (
15
+ <Svg width={size} height={size} viewBox="0 0 24 24" fill="none" style={style}>
16
+ <Path
17
+ d="M20.7 9.75H3.30005C3.13405 9.75 3 9.88405 3 10.05V18C3 20 4 21 6 21H18C20 21 21 20 21 18V10.05C21 9.88405 20.866 9.75 20.7 9.75ZM10.3311 18.75H8.25098V16.6699L11.9609 12.9399L14.061 15.04L10.3311 18.75ZM15.5 13.5991L14.76 14.3391L12.6599 12.239L13.3999 11.499C13.7199 11.169 14.2501 11.169 14.5801 11.489L15.51 12.4189C15.831 12.7499 15.831 13.2791 15.5 13.5991ZM21 7.5V7.94995C21 8.11595 20.866 8.25 20.7 8.25H3.30005C3.13405 8.25 3 8.11595 3 7.94995V7.5C3 5.5 4 4.5 6 4.5H7.25V3C7.25 2.59 7.59 2.25 8 2.25C8.41 2.25 8.75 2.59 8.75 3V4.5H15.25V3C15.25 2.59 15.59 2.25 16 2.25C16.41 2.25 16.75 2.59 16.75 3V4.5H18C20 4.5 21 5.5 21 7.5Z"
18
+ fill={color}
19
+ />
20
+ </Svg>
21
+ );
22
+
23
+ export default CalendarEdit;
@@ -0,0 +1,23 @@
1
+ import React from 'react';
2
+ import Svg, { Path } from 'react-native-svg';
3
+
4
+ interface Props {
5
+ size?: number;
6
+ color?: string;
7
+ style?: object;
8
+ }
9
+
10
+ const InfoCircleOutline: React.FC<Props> = ({
11
+ size = 24,
12
+ color = '#909090',
13
+ style,
14
+ }) => (
15
+ <Svg width={size} height={size} viewBox="0 0 20 20" fill="none" style={style}>
16
+ <Path
17
+ d="M9.99984 18.9584C5.05984 18.9584 1.0415 14.9401 1.0415 10.0001C1.0415 5.06008 5.05984 1.04175 9.99984 1.04175C14.9398 1.04175 18.9582 5.06008 18.9582 10.0001C18.9582 14.9401 14.9398 18.9584 9.99984 18.9584ZM9.99984 2.29175C5.749 2.29175 2.2915 5.74925 2.2915 10.0001C2.2915 14.2509 5.749 17.7084 9.99984 17.7084C14.2507 17.7084 17.7082 14.2509 17.7082 10.0001C17.7082 5.74925 14.2507 2.29175 9.99984 2.29175ZM10.6248 13.7501V9.94088C10.6248 9.59588 10.3448 9.31588 9.99984 9.31588C9.65484 9.31588 9.37484 9.59588 9.37484 9.94088V13.7501C9.37484 14.0951 9.65484 14.3751 9.99984 14.3751C10.3448 14.3751 10.6248 14.0951 10.6248 13.7501ZM10.8499 7.08342C10.8499 6.62341 10.4774 6.25008 10.0165 6.25008H10.0082C9.54818 6.25008 9.17892 6.62341 9.17892 7.08342C9.17892 7.54342 9.55652 7.91675 10.0165 7.91675C10.4765 7.91675 10.8499 7.54342 10.8499 7.08342Z"
18
+ fill={color}
19
+ />
20
+ </Svg>
21
+ );
22
+
23
+ export default InfoCircleOutline;
@@ -0,0 +1,19 @@
1
+ import React from 'react';
2
+ import Svg, { Path } from 'react-native-svg';
3
+
4
+ interface Props {
5
+ size?: number;
6
+ color?: string;
7
+ style?: object;
8
+ }
9
+
10
+ const Tag: React.FC<Props> = ({ size = 24, color = '#000', style }) => (
11
+ <Svg width={size} height={size} viewBox="0 0 24 24" fill="none" style={style}>
12
+ <Path
13
+ d="M19.96 15.21L15.2 19.98C13.83 21.34 12.4201 21.34 11.0601 19.98L10.256 19.167C10.139 19.05 10.139 18.86 10.256 18.743L18.7321 10.267C18.8491 10.15 19.039 10.15 19.156 10.267L19.959 11.07C21.37 12.48 21.32 13.84 19.96 15.21ZM17.698 9.23199L9.22205 17.708C9.10505 17.825 8.91497 17.825 8.79797 17.708L3.85999 12.77C3.30899 12.219 3 11.473 3 10.694V4.95001C3 3.87301 3.87295 3 4.94995 3H10.687C11.465 3 12.211 3.30899 12.76 3.85999L17.698 8.80798C17.815 8.92498 17.815 9.11499 17.698 9.23199ZM8 7C8 6.448 7.55395 6 7.00195 6H6.99194C6.44194 6 5.99902 6.448 5.99902 7C5.99902 7.552 6.45098 8 7.00098 8C7.55398 8 8 7.552 8 7Z"
14
+ fill={color}
15
+ />
16
+ </Svg>
17
+ );
18
+
19
+ export default Tag;
@@ -0,0 +1,19 @@
1
+ import React from 'react';
2
+ import Svg, { Path } from 'react-native-svg';
3
+
4
+ interface Props {
5
+ size?: number;
6
+ color?: string;
7
+ style?: object;
8
+ }
9
+
10
+ const Tool: React.FC<Props> = ({ size = 24, color = '#909090', style }) => (
11
+ <Svg width={size} height={size} viewBox="0 0 20 20" fill="none" style={style}>
12
+ <Path
13
+ d="M17.15 5.46664L15.3333 7.2833C14.85 7.7583 14.0583 7.75832 13.575 7.27498L12.725 6.42497C12.2417 5.94163 12.2417 5.14996 12.725 4.67496L14.5333 2.84998C13.2583 2.34165 11.675 2.32496 10.1917 3.21663C9.59166 3.57496 9.08333 4.05831 8.725 4.64165C8.7 4.67498 8.675 4.70832 8.65833 4.74998C8.00833 5.82498 7.83333 6.94997 7.98334 7.96664C8.04167 8.34997 7.90834 8.7333 7.63334 8.99996L3.2 13.4416C2.73333 13.9 2.5 14.5167 2.5 15.1167C2.5 15.7333 2.73333 16.3333 3.2 16.8C4.125 17.7333 5.63333 17.7333 6.55833 16.8L11 12.3666C11.2667 12.0916 11.65 11.9583 12.0333 12.0167C13.05 12.1667 14.175 11.9916 15.2417 11.35C15.875 10.975 16.4083 10.4416 16.775 9.81664C17.675 8.33331 17.6583 6.74164 17.15 5.46664ZM5.01667 15.8333C4.55834 15.8333 4.18334 15.4583 4.18334 15C4.18334 14.5416 4.55 14.1666 5.00833 14.1666H5.01667C5.475 14.1666 5.85 14.5416 5.85 15C5.85 15.4583 5.475 15.8333 5.01667 15.8333Z"
14
+ fill={color}
15
+ />
16
+ </Svg>
17
+ );
18
+
19
+ export default Tool;
@@ -0,0 +1,27 @@
1
+ import React from 'react';
2
+ import Svg, { Path } from 'react-native-svg';
3
+
4
+ interface Props {
5
+ size?: number;
6
+ color?: string;
7
+ style?: object;
8
+ }
9
+
10
+ const UserEdit: React.FC<Props> = ({ size = 24, color = '#000', style }) => (
11
+ <Svg width={size} height={size} viewBox="0 0 24 24" fill="none" style={style}>
12
+ <Path
13
+ d="M6.00903 6.5C6.00903 4.294 7.80303 2.5 10.009 2.5C12.215 2.5 14.009 4.294 14.009 6.5C14.009 8.706 12.215 10.5 10.009 10.5C7.80303 10.5 6.00903 8.706 6.00903 6.5ZM16.057 14.1801C16.057 14.0681 15.9571 13.9689 15.9301 13.9399C15.0601 13.0799 13.79 12.5 12 12.5H8C3.94 12.5 2.5 15.47 2.5 18.02C2.5 20.3 3.71 21.5 6 21.5H11.2C11.28 21.5 11.36 21.47 11.41 21.41C11.46 21.36 11.5 21.2749 11.5 21.1949V19.5C11.5 19.1 11.6599 18.7199 11.9399 18.4399L15.97 14.39C16.02 14.34 16.057 14.2601 16.057 14.1801Z"
14
+ fill={color}
15
+ />
16
+ <Path
17
+ d="M13 22V19.501L17.519 14.9621L20.038 17.481L15.499 22H13Z"
18
+ fill={color}
19
+ />
20
+ <Path
21
+ d="M20.588 13.292L21.708 14.412C22.097 14.802 22.097 15.4321 21.707 15.8211L20.7371 16.781L18.218 14.262L19.178 13.292C19.568 12.902 20.198 12.902 20.588 13.292Z"
22
+ fill={color}
23
+ />
24
+ </Svg>
25
+ );
26
+
27
+ export default UserEdit;
package/src/Icon/type.tsx CHANGED
@@ -67,6 +67,11 @@ export type IconNameProps =
67
67
  | 'copy-fill'
68
68
  | 'copy-text-fill'
69
69
  | 'shield-checked-fill'
70
+ | 'calendar-edit'
71
+ | 'info-circle-outline'
72
+ | 'Tag'
73
+ | 'Tool'
74
+ | 'user-edit'
70
75
  | 'whatsapp-fill';
71
76
 
72
77
  export interface IconProps {
package/src/Tab/README.md CHANGED
@@ -89,18 +89,20 @@ Setiap tab dibungkus dalam `ScrollView` vertikal, sehingga bisa discroll ke bawa
89
89
 
90
90
  ### `TabProps`
91
91
 
92
- | Properti | Tipe | Keterangan |
93
- | -------------- | ------------------------- | ----------------------------- |
94
- | `children` | `React.ReactNode` | Daftar elemen `<TabItem />` |
95
- | `current?` | `number` | Indeks tab aktif (default: 0) |
96
- | `onChangeTab?` | `(index: number) => void` | Callback saat tab berpindah |
92
+ | Properti | Tipe | Keterangan |
93
+ | -------------- | ------------------------- | ---------------------------------- |
94
+ | `children` | `React.ReactNode` | Daftar elemen `<TabItem />` |
95
+ | `current?` | `number` | Indeks tab aktif (default: 0) |
96
+ | `onChangeTab?` | `(index: number) => void` | Callback saat tab berpindah |
97
+ | `renderHeader` | `React.ReactElement` | tambahan react element di atas tab |
97
98
 
98
99
  ### `TabItemProps`
99
100
 
100
- | Properti | Tipe | Keterangan |
101
- | ----------- | --------------------- | ---------------------------------- |
102
- | `name` | `string` | Nama/tab label yang ditampilkan |
103
- | `component` | `React.ComponentType` | Komponen yang akan dirender di tab |
101
+ | Properti | Tipe | Keterangan |
102
+ | --------------- | ------------------------------------------------------- | --------------------------------------------------------------------------------------------------- |
103
+ | `name` | `string` | Label/nama tab yang akan ditampilkan. Wajib diisi jika renderTabName tidak digunakan. |
104
+ | `renderTabName` | `(props: { isActive: boolean; }) => React.ReactElement` | Fungsi untuk me-render custom label/tab menggunakan komponen sendiri. Wajib diisi jika name kosong. |
105
+ | `component` | `React.ComponentType` | Komponen yang akan dirender di tab |
104
106
 
105
107
  ---
106
108
 
package/src/Tab/Tab.tsx CHANGED
@@ -6,19 +6,25 @@ import React, {
6
6
  Children,
7
7
  isValidElement,
8
8
  } from 'react';
9
- import { View, Pressable, StyleSheet } from 'react-native';
9
+ import { View, Pressable, StyleSheet, ScrollView } from 'react-native';
10
10
  import PagerView from 'react-native-pager-view';
11
11
  import Color from '../Color/Color';
12
12
  import Typography from '../Typography/Typography';
13
13
  import type { TabItemProps, TabProps } from './type';
14
14
 
15
- const Tab: React.FC<TabProps> = ({ children, current = 0, onChangeTab }) => {
15
+ const Tab: React.FC<TabProps> = ({
16
+ children,
17
+ current = 0,
18
+ onChangeTab,
19
+ renderHeader,
20
+ }) => {
16
21
  const items = Children.toArray(children).filter(
17
22
  isValidElement
18
23
  ) as React.ReactElement<TabItemProps>[];
19
24
 
20
25
  const [activeIndex, setActiveIndex] = useState<number>(current);
21
26
  const pagerRef = useRef<PagerView>(null);
27
+ const currentHeight = items[activeIndex]?.props?.height ?? 0;
22
28
 
23
29
  useEffect(() => {
24
30
  setActiveIndex(current);
@@ -44,46 +50,70 @@ const Tab: React.FC<TabProps> = ({ children, current = 0, onChangeTab }) => {
44
50
 
45
51
  return (
46
52
  <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)}
53
+ <ScrollView
54
+ stickyHeaderIndices={[renderHeader ? 1 : 0]} // bikin tabBar sticky
55
+ contentContainerStyle={styles.scrollViewContainer}
77
56
  >
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}
57
+ {/* Header */}
58
+ {renderHeader ? renderHeader : null}
59
+
60
+ {/* TabBar (sticky + horizontal scroll) */}
61
+ <ScrollView
62
+ horizontal
63
+ showsHorizontalScrollIndicator={false}
64
+ style={styles.tabBarWrapper}
65
+ >
66
+ <View style={styles.tabBar}>
67
+ {items.map((item, index) => {
68
+ const isActive = index === activeIndex;
69
+ return (
70
+ <React.Fragment key={index}>
71
+ {!item.props.renderTabName && (
72
+ <Pressable
73
+ style={[
74
+ styles.tabButton,
75
+ isActive ? styles.tabActive : styles.tabInactive,
76
+ ]}
77
+ onPress={() => handleHeaderPress(index)}
78
+ >
79
+ <Typography
80
+ center
81
+ variant="t2"
82
+ weight="semibold"
83
+ color={isActive ? Color.base.white100 : Color.gray[700]}
84
+ >
85
+ {item.props.name}
86
+ </Typography>
87
+ </Pressable>
88
+ )}
89
+
90
+ {item.props.renderTabName && (
91
+ <Pressable onPress={() => handleHeaderPress(index)}>
92
+ {item.props.renderTabName({
93
+ isActive,
94
+ })}
95
+ </Pressable>
96
+ )}
97
+ </React.Fragment>
98
+ );
99
+ })}
100
+ </View>
101
+ </ScrollView>
102
+
103
+ {/* Konten */}
104
+ <PagerView
105
+ ref={pagerRef}
106
+ style={[styles.pager, { height: currentHeight || 800 }]}
107
+ initialPage={current}
108
+ onPageSelected={(e) => updateActive(e.nativeEvent.position)}
109
+ >
110
+ {items.map((item, index) => (
111
+ <View key={index} collapsable={false}>
112
+ {item?.props?.children}
83
113
  </View>
84
- );
85
- })}
86
- </PagerView>
114
+ ))}
115
+ </PagerView>
116
+ </ScrollView>
87
117
  </View>
88
118
  );
89
119
  };
@@ -92,21 +122,25 @@ export default Tab;
92
122
 
93
123
  const styles = StyleSheet.create({
94
124
  container: { flex: 1 },
95
- headerContainer: {
96
- flexDirection: 'row',
125
+ tabBarWrapper: {
97
126
  backgroundColor: Color.gray[100],
127
+ borderRadius: 8,
128
+ },
129
+ tabBar: {
130
+ flexDirection: 'row', // tetap row
98
131
  padding: 4,
99
132
  borderRadius: 8,
100
133
  },
101
134
  tabButton: {
102
- flex: 1,
103
135
  borderRadius: 8,
104
136
  paddingVertical: 6,
105
137
  paddingHorizontal: 16,
106
138
  justifyContent: 'center',
107
139
  alignItems: 'center',
140
+ marginRight: 8,
108
141
  },
109
142
  tabActive: { backgroundColor: Color.primary[1000] },
110
143
  tabInactive: { backgroundColor: Color.gray[100] },
111
- pager: { flex: 1 },
144
+ pager: { flex: 1, minHeight: 800, marginBottom: 10 },
145
+ scrollViewContainer: { flexGrow: 1 },
112
146
  });
package/src/Tab/type.tsx CHANGED
@@ -1,11 +1,22 @@
1
1
  import React, { type ReactElement } from 'react';
2
2
 
3
- export interface TabItemProps {
4
- name: string | number;
5
- component: React.ComponentType<any>;
6
- }
3
+ export type TabItemProps =
4
+ | {
5
+ name: string | number;
6
+ children: React.ReactElement<any>;
7
+ height?: number;
8
+ renderTabName?: never;
9
+ }
10
+ | {
11
+ name?: string | number;
12
+ children: React.ReactElement<any>;
13
+ height?: number;
14
+ renderTabName: (props: { isActive: boolean }) => React.ReactElement;
15
+ };
16
+
7
17
  export interface TabProps {
8
18
  children: ReactElement<TabItemProps> | ReactElement<TabItemProps>[];
9
19
  current?: number;
20
+ renderHeader?: React.ReactElement;
10
21
  onChangeTab?: (e: any) => void;
11
22
  }