@herca/rn-kit 0.1.25 → 0.1.27

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 (131) hide show
  1. package/README.md +2 -1
  2. package/lib/module/Badge/Badge.js.map +1 -1
  3. package/lib/module/Badge/type.js +2 -0
  4. package/lib/module/BottomSheet/BottomSheet.js +4 -1
  5. package/lib/module/BottomSheet/BottomSheet.js.map +1 -1
  6. package/lib/module/Button/tests/Button.test.js +70 -0
  7. package/lib/module/Button/tests/Button.test.js.map +1 -0
  8. package/lib/module/Button/type.js +1 -1
  9. package/lib/module/DatePicker/TimePicker.js +84 -39
  10. package/lib/module/DatePicker/TimePicker.js.map +1 -1
  11. package/lib/module/Icon/Icon.js +27 -1
  12. package/lib/module/Icon/Icon.js.map +1 -1
  13. package/lib/module/Icon/README.md +42 -26
  14. package/lib/module/Icon/icons/AtSign.js +22 -0
  15. package/lib/module/Icon/icons/AtSign.js.map +1 -0
  16. package/lib/module/Icon/icons/Bold.js +25 -0
  17. package/lib/module/Icon/icons/Bold.js.map +1 -0
  18. package/lib/module/Icon/icons/BriefcaseOutline.js +22 -0
  19. package/lib/module/Icon/icons/BriefcaseOutline.js.map +1 -0
  20. package/lib/module/Icon/icons/Edit.js +22 -0
  21. package/lib/module/Icon/icons/Edit.js.map +1 -0
  22. package/lib/module/Icon/icons/GlobeEarth.js +22 -0
  23. package/lib/module/Icon/icons/GlobeEarth.js.map +1 -0
  24. package/lib/module/Icon/icons/Italic.js +25 -0
  25. package/lib/module/Icon/icons/Italic.js.map +1 -0
  26. package/lib/module/Icon/icons/LockFill.js +22 -0
  27. package/lib/module/Icon/icons/LockFill.js.map +1 -0
  28. package/lib/module/Icon/icons/LogoHercaHris.js +64 -0
  29. package/lib/module/Icon/icons/LogoHercaHris.js.map +1 -0
  30. package/lib/module/Icon/icons/QuestionCircleOutline.js +22 -0
  31. package/lib/module/Icon/icons/QuestionCircleOutline.js.map +1 -0
  32. package/lib/module/Icon/icons/Scanner.js +3 -3
  33. package/lib/module/Icon/icons/Scanner.js.map +1 -1
  34. package/lib/module/Icon/icons/Search.js +2 -2
  35. package/lib/module/Icon/icons/Search.js.map +1 -1
  36. package/lib/module/Icon/icons/ShieldFill.js +22 -0
  37. package/lib/module/Icon/icons/ShieldFill.js.map +1 -0
  38. package/lib/module/Icon/icons/UnderLine.js +25 -0
  39. package/lib/module/Icon/icons/UnderLine.js.map +1 -0
  40. package/lib/module/Icon/icons/Users.js +22 -0
  41. package/lib/module/Icon/icons/Users.js.map +1 -0
  42. package/lib/module/Icon/icons/WhatsappFill.js +22 -0
  43. package/lib/module/Icon/icons/WhatsappFill.js.map +1 -0
  44. package/lib/module/Input/Input.js +17 -14
  45. package/lib/module/Input/Input.js.map +1 -1
  46. package/lib/module/Input/InputOtp.js +31 -12
  47. package/lib/module/Input/InputOtp.js.map +1 -1
  48. package/lib/module/Input/README_INPUT_OTP.md +60 -0
  49. package/lib/module/TextEditor/TextEditor.js +206 -4
  50. package/lib/module/TextEditor/TextEditor.js.map +1 -1
  51. package/lib/module/index.js +0 -1
  52. package/lib/module/index.js.map +1 -1
  53. package/lib/typescript/src/Badge/Badge.d.ts.map +1 -1
  54. package/lib/typescript/src/Badge/type.d.ts +8 -0
  55. package/lib/typescript/src/Badge/type.d.ts.map +1 -1
  56. package/lib/typescript/src/Button/tests/Button.test.d.ts +2 -0
  57. package/lib/typescript/src/Button/tests/Button.test.d.ts.map +1 -0
  58. package/lib/typescript/src/DatePicker/TimePicker.d.ts.map +1 -1
  59. package/lib/typescript/src/Icon/Icon.d.ts.map +1 -1
  60. package/lib/typescript/src/Icon/icons/AtSign.d.ts +9 -0
  61. package/lib/typescript/src/Icon/icons/AtSign.d.ts.map +1 -0
  62. package/lib/typescript/src/Icon/icons/Bold.d.ts +9 -0
  63. package/lib/typescript/src/Icon/icons/Bold.d.ts.map +1 -0
  64. package/lib/typescript/src/Icon/icons/BriefcaseOutline.d.ts +9 -0
  65. package/lib/typescript/src/Icon/icons/BriefcaseOutline.d.ts.map +1 -0
  66. package/lib/typescript/src/Icon/icons/Edit.d.ts +9 -0
  67. package/lib/typescript/src/Icon/icons/Edit.d.ts.map +1 -0
  68. package/lib/typescript/src/Icon/icons/GlobeEarth.d.ts +9 -0
  69. package/lib/typescript/src/Icon/icons/GlobeEarth.d.ts.map +1 -0
  70. package/lib/typescript/src/Icon/icons/Italic.d.ts +9 -0
  71. package/lib/typescript/src/Icon/icons/Italic.d.ts.map +1 -0
  72. package/lib/typescript/src/Icon/icons/LockFill.d.ts +9 -0
  73. package/lib/typescript/src/Icon/icons/LockFill.d.ts.map +1 -0
  74. package/lib/typescript/src/Icon/icons/LogoHercaHris.d.ts +8 -0
  75. package/lib/typescript/src/Icon/icons/LogoHercaHris.d.ts.map +1 -0
  76. package/lib/typescript/src/Icon/icons/QuestionCircleOutline.d.ts +9 -0
  77. package/lib/typescript/src/Icon/icons/QuestionCircleOutline.d.ts.map +1 -0
  78. package/lib/typescript/src/Icon/icons/Scanner.d.ts.map +1 -1
  79. package/lib/typescript/src/Icon/icons/ShieldFill.d.ts +9 -0
  80. package/lib/typescript/src/Icon/icons/ShieldFill.d.ts.map +1 -0
  81. package/lib/typescript/src/Icon/icons/UnderLine.d.ts +9 -0
  82. package/lib/typescript/src/Icon/icons/UnderLine.d.ts.map +1 -0
  83. package/lib/typescript/src/Icon/icons/Users.d.ts +9 -0
  84. package/lib/typescript/src/Icon/icons/Users.d.ts.map +1 -0
  85. package/lib/typescript/src/Icon/icons/WhatsappFill.d.ts +9 -0
  86. package/lib/typescript/src/Icon/icons/WhatsappFill.d.ts.map +1 -0
  87. package/lib/typescript/src/Icon/type.d.ts +1 -1
  88. package/lib/typescript/src/Icon/type.d.ts.map +1 -1
  89. package/lib/typescript/src/Input/Input.d.ts.map +1 -1
  90. package/lib/typescript/src/Input/InputOtp.d.ts +1 -0
  91. package/lib/typescript/src/Input/InputOtp.d.ts.map +1 -1
  92. package/lib/typescript/src/Input/type.d.ts +1 -0
  93. package/lib/typescript/src/Input/type.d.ts.map +1 -1
  94. package/lib/typescript/src/TextEditor/TextEditor.d.ts +2 -1
  95. package/lib/typescript/src/TextEditor/TextEditor.d.ts.map +1 -1
  96. package/lib/typescript/src/TextEditor/types.d.ts +7 -0
  97. package/lib/typescript/src/TextEditor/types.d.ts.map +1 -1
  98. package/lib/typescript/src/index.d.ts +3 -1
  99. package/lib/typescript/src/index.d.ts.map +1 -1
  100. package/package.json +2 -2
  101. package/src/Badge/Badge.tsx +1 -10
  102. package/src/Badge/type.tsx +10 -0
  103. package/src/BottomSheet/BottomSheet.tsx +4 -1
  104. package/src/Button/tests/Button.test.tsx +49 -0
  105. package/src/Button/type.tsx +1 -1
  106. package/src/DatePicker/TimePicker.tsx +116 -52
  107. package/src/Icon/Icon.tsx +26 -0
  108. package/src/Icon/README.md +42 -26
  109. package/src/Icon/icons/AtSign.tsx +19 -0
  110. package/src/Icon/icons/Bold.tsx +22 -0
  111. package/src/Icon/icons/BriefcaseOutline.tsx +29 -0
  112. package/src/Icon/icons/Edit.tsx +23 -0
  113. package/src/Icon/icons/GlobeEarth.tsx +19 -0
  114. package/src/Icon/icons/Italic.tsx +22 -0
  115. package/src/Icon/icons/LockFill.tsx +19 -0
  116. package/src/Icon/icons/LogoHercaHris.tsx +71 -0
  117. package/src/Icon/icons/QuestionCircleOutline.tsx +23 -0
  118. package/src/Icon/icons/Scanner.tsx +2 -8
  119. package/src/Icon/icons/Search.tsx +2 -2
  120. package/src/Icon/icons/ShieldFill.tsx +19 -0
  121. package/src/Icon/icons/UnderLine.tsx +26 -0
  122. package/src/Icon/icons/Users.tsx +19 -0
  123. package/src/Icon/icons/WhatsappFill.tsx +23 -0
  124. package/src/Icon/type.tsx +14 -1
  125. package/src/Input/Input.tsx +22 -14
  126. package/src/Input/InputOtp.tsx +33 -9
  127. package/src/Input/README_INPUT_OTP.md +60 -0
  128. package/src/Input/type.tsx +1 -0
  129. package/src/TextEditor/TextEditor.tsx +222 -3
  130. package/src/TextEditor/types.tsx +7 -0
  131. package/src/index.tsx +8 -1
@@ -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 UnderLine: React.FC<Props>;
8
+ export default UnderLine;
9
+ //# sourceMappingURL=UnderLine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UnderLine.d.ts","sourceRoot":"","sources":["../../../../../src/Icon/icons/UnderLine.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,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAc9B,CAAC;AAEF,eAAe,SAAS,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 Users: React.FC<Props>;
8
+ export default Users;
9
+ //# sourceMappingURL=Users.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Users.d.ts","sourceRoot":"","sources":["../../../../../src/Icon/icons/Users.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,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAO1B,CAAC;AAEF,eAAe,KAAK,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 WhatsAppFill: React.FC<Props>;
8
+ export default WhatsAppFill;
9
+ //# sourceMappingURL=WhatsappFill.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WhatsappFill.d.ts","sourceRoot":"","sources":["../../../../../src/Icon/icons/WhatsappFill.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"}
@@ -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';
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' | '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,CAAC;AAElB,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,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":"Input.d.ts","sourceRoot":"","sources":["../../../../src/Input/Input.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAYxC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAEzC,QAAA,MAAM,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,UAAU,CA0F/B,CAAC;AAoCF,eAAe,KAAK,CAAC"}
1
+ {"version":3,"file":"Input.d.ts","sourceRoot":"","sources":["../../../../src/Input/Input.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAMxC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAEzC,QAAA,MAAM,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,UAAU,CAsG/B,CAAC;AAsCF,eAAe,KAAK,CAAC"}
@@ -5,6 +5,7 @@ type InputOtpProps = {
5
5
  label?: string;
6
6
  hint?: string;
7
7
  hasError?: boolean;
8
+ inputCenter?: boolean;
8
9
  };
9
10
  declare const InputOtp: React.FC<InputOtpProps>;
10
11
  export default InputOtp;
@@ -1 +1 @@
1
- {"version":3,"file":"InputOtp.d.ts","sourceRoot":"","sources":["../../../../src/Input/InputOtp.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAiB,MAAM,OAAO,CAAC;AAMtC,KAAK,aAAa,GAAG;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,QAAA,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CA0DrC,CAAC;AAEF,eAAe,QAAQ,CAAC"}
1
+ {"version":3,"file":"InputOtp.d.ts","sourceRoot":"","sources":["../../../../src/Input/InputOtp.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA2B,MAAM,OAAO,CAAC;AAMhD,KAAK,aAAa,GAAG;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF,QAAA,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CAkFrC,CAAC;AAEF,eAAe,QAAQ,CAAC"}
@@ -11,6 +11,7 @@ export interface InputProps extends TextInputProps {
11
11
  onPressIconRight?: (val?: GestureResponderEvent) => void;
12
12
  onChangeText?: (val: string) => void;
13
13
  secureTextEntry?: boolean;
14
+ iconRightColor?: string;
14
15
  }
15
16
  export interface TextAreaProps extends InputProps {
16
17
  height?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"type.d.ts","sourceRoot":"","sources":["../../../../src/Input/type.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC1E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE7C,MAAM,WAAW,UAAW,SAAQ,cAAc;IAChD,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,eAAe,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,qBAAqB,KAAK,IAAI,CAAC;IACxD,gBAAgB,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,qBAAqB,KAAK,IAAI,CAAC;IACzD,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,aAAc,SAAQ,UAAU;IAC/C,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB"}
1
+ {"version":3,"file":"type.d.ts","sourceRoot":"","sources":["../../../../src/Input/type.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC1E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE7C,MAAM,WAAW,UAAW,SAAQ,cAAc;IAChD,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,eAAe,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,qBAAqB,KAAK,IAAI,CAAC;IACxD,gBAAgB,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,qBAAqB,KAAK,IAAI,CAAC;IACzD,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,aAAc,SAAQ,UAAU;IAC/C,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB"}
@@ -1,2 +1,3 @@
1
- export default function TextEditor(): import("react/jsx-runtime").JSX.Element;
1
+ import type { TextEditorType } from './types';
2
+ export default function TextEditor({ label, hasError, hint, onChange, height, }: TextEditorType): import("react/jsx-runtime").JSX.Element;
2
3
  //# sourceMappingURL=TextEditor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TextEditor.d.ts","sourceRoot":"","sources":["../../../../src/TextEditor/TextEditor.tsx"],"names":[],"mappings":"AAEA,MAAM,CAAC,OAAO,UAAU,UAAU,4CAEjC"}
1
+ {"version":3,"file":"TextEditor.d.ts","sourceRoot":"","sources":["../../../../src/TextEditor/TextEditor.tsx"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAK9C,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,EACjC,KAAK,EACL,QAAQ,EACR,IAAI,EACJ,QAAQ,EACR,MAAY,GACb,EAAE,cAAc,2CA0KhB"}
@@ -1 +1,8 @@
1
+ export interface TextEditorType {
2
+ label?: string;
3
+ hint?: string;
4
+ hasError?: boolean;
5
+ onChange?: (data: string) => void;
6
+ height?: number;
7
+ }
1
8
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/TextEditor/types.tsx"],"names":[],"mappings":""}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/TextEditor/types.tsx"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB"}
@@ -4,6 +4,7 @@ export { default as AccordionItem } from './Accordion/AccordionItem';
4
4
  export type { AccordionRenderHeaderProps } from './Accordion/type';
5
5
  export { default as Button } from './Button/Button';
6
6
  export { default as Color } from './Color/Color';
7
+ export type { ColorVariantType } from './Color/type';
7
8
  export { default as Typography } from './Typography/Typography';
8
9
  export type { fontSizeMap, fontWeightMap, lineHeightMap, TypographyVariantProps, } from './Typography/type';
9
10
  export { default as BottomSheet } from './BottomSheet/BottomSheet';
@@ -28,9 +29,9 @@ export { default as InputOtp } from './Input/InputOtp';
28
29
  export { default as Switch } from './Input/Switch';
29
30
  export { default as CheckBox } from './CheckBox/CheckBox';
30
31
  export { default as CheckBoxList } from './CheckBox/CheckBoxList';
31
- export { default as CounterButton } from './CounterButton/CounterButton';
32
32
  export { default as RadioButton } from './RadioButton/RadioButton';
33
33
  export { default as Icon } from './Icon/Icon';
34
+ export type { IconNameProps } from './Icon/type';
34
35
  export { default as Modal } from './Modal/Modal';
35
36
  export { default as Label } from './Label/Label';
36
37
  export { default as List } from './List/List';
@@ -39,6 +40,7 @@ export { default as Loading } from './Loading/Loading';
39
40
  export { default as Avatar } from './Avatar/Avatar';
40
41
  export { default as AvatarGroup } from './Avatar/AvatarGroup';
41
42
  export { default as Badge } from './Badge/Badge';
43
+ export type { Variant as BadgeVariant, Size as BadgeSize, HexColor as BadgeColor, SizeStyle as BadgeSizeStyle, } from './Badge/type';
42
44
  export { default as Alert } from './Alert/Alert';
43
45
  export { default as Timeline } from './Timeline/Timeline';
44
46
  export { default as TimelineItem } from './Timeline/TimelineItem';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,6 @@
1
1
  {
2
2
  "name": "@herca/rn-kit",
3
- "private": false,
4
- "version": "0.1.25",
3
+ "version": "0.1.27",
5
4
  "description": "React Native UI Kit",
6
5
  "main": "./lib/module/index.js",
7
6
  "types": "./lib/typescript/src/index.d.ts",
@@ -94,6 +93,7 @@
94
93
  "@react-native-documents/picker": "^10.1.3",
95
94
  "@react-native-documents/viewer": "^1.0.1",
96
95
  "@react-navigation/native": "^7.1.14",
96
+ "@testing-library/react-native": "^13.2.0",
97
97
  "react-native-blob-util": "^0.22.2",
98
98
  "react-native-image-picker": "^8.2.1",
99
99
  "react-native-pager-view": "^6.8.1",
@@ -2,9 +2,8 @@ import React from 'react';
2
2
  import { View, StyleSheet } from 'react-native';
3
3
  import Color from '../Color/Color';
4
4
  import Typography from '../Typography/Typography';
5
- import type { TypographyVariantProps } from '../Typography/type';
6
5
  import { hexToRGBA } from '../helpers/hexToRgba';
7
- import type { HexColor, Size, Variant } from './type';
6
+ import type { HexColor, Size, SizeStyle, Variant } from './type';
8
7
 
9
8
  interface BadgeProps {
10
9
  value?: string | number | React.ReactNode;
@@ -26,14 +25,6 @@ const COLORS: Record<Variant, { background: string; fontColor: string }> = {
26
25
  purple: { background: Color.purple[50], fontColor: Color.purple[500] },
27
26
  };
28
27
 
29
- interface SizeStyle {
30
- height: number;
31
- fontSize: TypographyVariantProps;
32
- paddingHorizontal: number;
33
- paddingVertical: number;
34
- borderRadius: number;
35
- }
36
-
37
28
  const SIZE_MAP: Record<Size, SizeStyle> = {
38
29
  small: {
39
30
  height: 18,
@@ -1,3 +1,5 @@
1
+ import type { TypographyVariantProps } from '../Typography/type';
2
+
1
3
  type Variant =
2
4
  | 'default'
3
5
  | 'primary'
@@ -12,3 +14,11 @@ type Size = 'small' | 'medium';
12
14
  type HexColor = `#${string}`;
13
15
 
14
16
  export type { Variant, Size, HexColor };
17
+
18
+ export interface SizeStyle {
19
+ height: number;
20
+ fontSize: TypographyVariantProps;
21
+ paddingHorizontal: number;
22
+ paddingVertical: number;
23
+ borderRadius: number;
24
+ }
@@ -249,9 +249,12 @@ const styles = StyleSheet.create({
249
249
  },
250
250
  contentWithFooter: {},
251
251
  footer: {
252
+ borderTopWidth: 1,
253
+ borderTopColor: Color.gray[100],
252
254
  backgroundColor: Color.base.white100,
253
255
  position: 'absolute',
254
- marginBottom: 20,
256
+ paddingTop: 10,
257
+ marginBottom: 32,
255
258
  bottom: 0,
256
259
  left: 0,
257
260
  right: 0,
@@ -0,0 +1,49 @@
1
+ import React from 'react';
2
+ import { render, fireEvent } from '@testing-library/react-native';
3
+ import { Text } from 'react-native';
4
+ import Button from '../Button';
5
+
6
+ describe('Button Component', () => {
7
+ it('renders with title', () => {
8
+ const { getByText } = render(<Button title="Submit" onPress={() => {}} />);
9
+ expect(getByText('Submit')).toBeTruthy();
10
+ });
11
+
12
+ it('calls onPress when pressed', () => {
13
+ const mockFn = jest.fn();
14
+ const { getByText } = render(<Button title="Click me" onPress={mockFn} />);
15
+ fireEvent.press(getByText('Click me'));
16
+ expect(mockFn).toHaveBeenCalledTimes(1);
17
+ });
18
+
19
+ it('does not call onPress when disabled', () => {
20
+ const mockFn = jest.fn();
21
+ const { getByText } = render(
22
+ <Button title="Disabled" onPress={mockFn} disabled />
23
+ );
24
+ fireEvent.press(getByText('Disabled'));
25
+ expect(mockFn).not.toHaveBeenCalled();
26
+ });
27
+
28
+ it('renders loading indicator when loading', () => {
29
+ const { getByTestId } = render(
30
+ <Button title="Load" onPress={() => {}} loading />
31
+ );
32
+ // You might want to set `testID="loading-indicator"` in <ActivityIndicator /> in the component
33
+ // For now, we check for presence of ActivityIndicator via accessibilityRole
34
+ const indicator = getByTestId('ActivityIndicator');
35
+ expect(indicator).toBeTruthy();
36
+ });
37
+
38
+ it('renders custom child instead of title', () => {
39
+ const { queryByText, getByText } = render(
40
+ <Button onPress={() => {}}>
41
+ <React.Fragment>
42
+ <Text>Custom Child</Text>
43
+ </React.Fragment>
44
+ </Button>
45
+ );
46
+ expect(getByText('Custom Child')).toBeTruthy();
47
+ expect(queryByText('title')).toBeNull();
48
+ });
49
+ });
@@ -255,7 +255,7 @@ export const COLOR_MAP: Record<
255
255
  tertiaryFocusBorderColor: Color.info[200],
256
256
  tertiaryPressTextColor: Color.info[700],
257
257
  tertiaryPressBorderColor: 'transparent',
258
- tertiaryDisabledTextColor: Color.info[100],
258
+ tertiaryDisabledTextColor: Color.info[200],
259
259
  tertiaryDisabledBorderColor: Color.base.white100,
260
260
  },
261
261
  orange: {
@@ -1,12 +1,13 @@
1
- import React, { useRef, useState, useEffect } from 'react';
1
+ import React, { useRef, useState, useEffect, useMemo } from 'react';
2
2
  import {
3
3
  View,
4
- ScrollView,
5
4
  StyleSheet,
6
5
  Text,
7
- type NativeScrollEvent,
8
- type NativeSyntheticEvent,
9
6
  Dimensions,
7
+ Animated,
8
+ type NativeSyntheticEvent,
9
+ type NativeScrollEvent,
10
+ ScrollView,
10
11
  } from 'react-native';
11
12
  import BottomSheet from '../BottomSheet/BottomSheet';
12
13
  import Button from '../Button/Button';
@@ -17,6 +18,7 @@ const ITEM_HEIGHT = 40;
17
18
  const SCREEN_WIDTH = Dimensions.get('window').width;
18
19
  const VISIBLE_ITEMS = 5;
19
20
  const MIDDLE_INDEX = Math.floor(VISIBLE_ITEMS / 2);
21
+ const REPEAT_COUNT = 5;
20
22
 
21
23
  interface TimePickerProps {
22
24
  isOpen: boolean;
@@ -26,42 +28,61 @@ interface TimePickerProps {
26
28
 
27
29
  const generateItems = (max: number) => Array.from({ length: max }, (_, i) => i);
28
30
 
31
+ const repeatItems = (items: number[], repeatCount: number) =>
32
+ Array.from({ length: repeatCount }).flatMap(() => items);
33
+
29
34
  export default function TimePickerWheel({
30
35
  isOpen,
31
36
  onClose,
32
37
  onChange,
33
38
  }: TimePickerProps) {
34
- const [selectedHour, setSelectedHour] = useState(0);
35
- const [selectedMinute, setSelectedMinute] = useState(0);
39
+ const [selectedHour, setSelectedHour] = useState<number>(0);
40
+ const [selectedMinute, setSelectedMinute] = useState<number>(0);
36
41
 
37
42
  const hourRef = useRef<ScrollView>(null);
38
43
  const minuteRef = useRef<ScrollView>(null);
39
44
 
40
- const padItems = (items: number[], padCount: number) => {
41
- return [
42
- ...items.slice(-padCount).map((i) => i - items.length),
43
- ...items,
44
- ...items.slice(0, padCount).map((i) => i + items.length),
45
- ];
46
- };
45
+ const hourScrollY = useRef(new Animated.Value(0)).current;
46
+ const minuteScrollY = useRef(new Animated.Value(0)).current;
47
+
48
+ const hoursBase = generateItems(24);
49
+ const minutesBase = generateItems(60);
47
50
 
48
- const hours = padItems(generateItems(24), MIDDLE_INDEX);
49
- const minutes = padItems(generateItems(60), MIDDLE_INDEX);
51
+ const hours = useMemo(
52
+ () => repeatItems(hoursBase, REPEAT_COUNT),
53
+ [hoursBase]
54
+ );
55
+ const minutes = useMemo(
56
+ () => repeatItems(minutesBase, REPEAT_COUNT),
57
+ [minutesBase]
58
+ );
59
+
60
+ const CENTER_INDEX_HOUR =
61
+ Math.floor(hours.length / 2 / 24) * 24 + selectedHour;
62
+ const CENTER_INDEX_MINUTE =
63
+ Math.floor(minutes.length / 2 / 60) * 60 + selectedMinute;
50
64
 
51
65
  useEffect(() => {
52
66
  if (isOpen) {
53
67
  setTimeout(() => {
54
- scrollToIndex(hourRef, selectedHour + MIDDLE_INDEX);
55
- scrollToIndex(minuteRef, selectedMinute + MIDDLE_INDEX);
68
+ scrollToIndex(hourRef, CENTER_INDEX_HOUR);
69
+ scrollToIndex(minuteRef, CENTER_INDEX_MINUTE);
56
70
  }, 100);
57
71
  }
58
- }, [isOpen, selectedMinute, selectedHour]);
72
+ }, [
73
+ isOpen,
74
+ selectedMinute,
75
+ selectedHour,
76
+ CENTER_INDEX_HOUR,
77
+ CENTER_INDEX_MINUTE,
78
+ ]);
59
79
 
60
80
  const scrollToIndex = (
61
81
  ref: React.RefObject<ScrollView | null>,
62
- index: number
82
+ index: number,
83
+ animated: boolean = true
63
84
  ) => {
64
- ref.current?.scrollTo({ y: index * ITEM_HEIGHT, animated: true });
85
+ ref.current?.scrollTo({ y: index * ITEM_HEIGHT, animated });
65
86
  };
66
87
 
67
88
  const handleScrollEnd = (
@@ -70,14 +91,23 @@ export default function TimePickerWheel({
70
91
  ) => {
71
92
  const offsetY = event.nativeEvent.contentOffset.y;
72
93
  const index = Math.round(offsetY / ITEM_HEIGHT);
94
+
73
95
  if (type === 'hour') {
74
- const realIndex = (((index - MIDDLE_INDEX) % 24) + 24) % 24;
75
- setSelectedHour(realIndex);
76
- setTimeout(() => scrollToIndex(hourRef, realIndex + MIDDLE_INDEX), 50);
96
+ const realValue = hours[index % 24] as number;
97
+ setSelectedHour(realValue);
98
+
99
+ const newCenter = Math.floor(hours.length / 2 / 24) * 24 + realValue;
100
+ if (Math.abs(index - newCenter) > 12) {
101
+ scrollToIndex(hourRef, newCenter, false);
102
+ }
77
103
  } else {
78
- const realIndex = (((index - MIDDLE_INDEX) % 60) + 60) % 60;
79
- setSelectedMinute(realIndex);
80
- setTimeout(() => scrollToIndex(minuteRef, realIndex + MIDDLE_INDEX), 50);
104
+ const realValue = minutes[index % 60] as number;
105
+ setSelectedMinute(realValue);
106
+
107
+ const newCenter = Math.floor(minutes.length / 2 / 60) * 60 + realValue;
108
+ if (Math.abs(index - newCenter) > 12) {
109
+ scrollToIndex(minuteRef, newCenter, false);
110
+ }
81
111
  }
82
112
  };
83
113
 
@@ -86,22 +116,44 @@ export default function TimePickerWheel({
86
116
  onClose?.();
87
117
  };
88
118
 
89
- const renderItem = (value: number, type: 'hour' | 'minute') => {
90
- const isSelected =
91
- type === 'hour'
92
- ? ((value % 24) + 24) % 24 === selectedHour
93
- : (value % 60) + (60 % 60) === selectedMinute;
94
- const displayValue =
95
- type === 'hour'
96
- ? (((value % 24) + 24) % 24).toString().padStart(2, '0')
97
- : (((value % 60) + 60) % 60).toString().padStart(2, '0');
119
+ const renderAnimatedItem = (
120
+ value: number,
121
+ type: 'hour' | 'minute',
122
+ index: number,
123
+ scrollY: Animated.Value
124
+ ) => {
125
+ const normalizedValue =
126
+ type === 'hour' ? ((value % 24) + 24) % 24 : ((value % 60) + 60) % 60;
127
+
128
+ const inputRange = [
129
+ (index - 2) * ITEM_HEIGHT,
130
+ (index - 1) * ITEM_HEIGHT,
131
+ index * ITEM_HEIGHT,
132
+ (index + 1) * ITEM_HEIGHT,
133
+ (index + 2) * ITEM_HEIGHT,
134
+ ];
135
+
136
+ const scale = scrollY.interpolate({
137
+ inputRange,
138
+ outputRange: [0.7, 0.85, 1, 0.85, 0.7],
139
+ extrapolate: 'clamp',
140
+ });
141
+
142
+ const opacity = scrollY.interpolate({
143
+ inputRange,
144
+ outputRange: [0.3, 0.6, 1, 0.6, 0.3],
145
+ extrapolate: 'clamp',
146
+ });
98
147
 
99
148
  return (
100
- <View key={`${type}-${value}`} style={styles.item}>
101
- <Text style={[styles.itemText, isSelected && styles.selectedItemText]}>
102
- {displayValue}
149
+ <Animated.View
150
+ key={`${type}-${index}`}
151
+ style={[styles.item, { transform: [{ scale }], opacity }]}
152
+ >
153
+ <Text style={styles.itemText}>
154
+ {normalizedValue.toString().padStart(2, '0')}
103
155
  </Text>
104
- </View>
156
+ </Animated.View>
105
157
  );
106
158
  };
107
159
 
@@ -136,7 +188,7 @@ export default function TimePickerWheel({
136
188
  weight="semibold"
137
189
  color={Color.gray[900]}
138
190
  center
139
- style={{ marginBottom: 16 }}
191
+ style={styles.hintTime}
140
192
  >
141
193
  Pilih Waktu
142
194
  </Typography>
@@ -146,31 +198,46 @@ export default function TimePickerWheel({
146
198
  <View style={styles.highlightOverlay} pointerEvents="none">
147
199
  <View style={styles.highlight} />
148
200
  </View>
201
+
149
202
  <View style={styles.scrollContainer}>
150
203
  <View style={styles.pickerColumn}>
151
- <ScrollView
204
+ <Animated.ScrollView
152
205
  ref={hourRef}
153
206
  showsVerticalScrollIndicator={false}
154
207
  snapToInterval={ITEM_HEIGHT}
155
208
  decelerationRate="fast"
156
209
  onMomentumScrollEnd={(e) => handleScrollEnd(e, 'hour')}
210
+ onScroll={Animated.event(
211
+ [{ nativeEvent: { contentOffset: { y: hourScrollY } } }],
212
+ { useNativeDriver: true }
213
+ )}
214
+ scrollEventThrottle={16}
157
215
  contentContainerStyle={styles.scrollContent}
158
216
  >
159
- {hours.map((h) => renderItem(h, 'hour'))}
160
- </ScrollView>
217
+ {hours.map((h, i) =>
218
+ renderAnimatedItem(h, 'hour', i, hourScrollY)
219
+ )}
220
+ </Animated.ScrollView>
161
221
  </View>
162
222
 
163
223
  <View style={styles.pickerColumn}>
164
- <ScrollView
224
+ <Animated.ScrollView
165
225
  ref={minuteRef}
166
226
  showsVerticalScrollIndicator={false}
167
227
  snapToInterval={ITEM_HEIGHT}
168
228
  decelerationRate="fast"
169
229
  onMomentumScrollEnd={(e) => handleScrollEnd(e, 'minute')}
230
+ onScroll={Animated.event(
231
+ [{ nativeEvent: { contentOffset: { y: minuteScrollY } } }],
232
+ { useNativeDriver: true }
233
+ )}
234
+ scrollEventThrottle={16}
170
235
  contentContainerStyle={styles.scrollContent}
171
236
  >
172
- {minutes.map((m) => renderItem(m, 'minute'))}
173
- </ScrollView>
237
+ {minutes.map((m, i) =>
238
+ renderAnimatedItem(m, 'minute', i, minuteScrollY)
239
+ )}
240
+ </Animated.ScrollView>
174
241
  </View>
175
242
  </View>
176
243
  </View>
@@ -209,13 +276,9 @@ const styles = StyleSheet.create({
209
276
  alignItems: 'center',
210
277
  },
211
278
  itemText: {
212
- fontSize: 18,
213
- color: Color.gray[400],
214
- },
215
- selectedItemText: {
216
- color: Color.gray[900],
217
- fontWeight: 'bold',
218
279
  fontSize: 22,
280
+ color: Color.gray[900],
281
+ fontWeight: '600',
219
282
  },
220
283
  highlightOverlay: {
221
284
  position: 'absolute',
@@ -231,4 +294,5 @@ const styles = StyleSheet.create({
231
294
  zIndex: -1,
232
295
  backgroundColor: Color.primary[50],
233
296
  },
297
+ hintTime: { marginBottom: 16 },
234
298
  });
package/src/Icon/Icon.tsx CHANGED
@@ -46,6 +46,19 @@ import ClipBoardListCheckOutline from './icons/ClipBoardListCheckOutline';
46
46
  import Box from './icons/Box';
47
47
  import Minus from './icons/Minus';
48
48
  import PlusSquare from './icons/PlusSquare';
49
+ import AtSign from './icons/AtSign';
50
+ import BriefCaseOutline from './icons/BriefcaseOutline';
51
+ import EditSquareOutline from './icons/Edit';
52
+ import GlobeEarth from './icons/GlobeEarth';
53
+ import LockFill from './icons/LockFill';
54
+ import LogoHercaHris from './icons/LogoHercaHris';
55
+ import QuestionCircleOutline from './icons/QuestionCircleOutline';
56
+ import ShieldFill from './icons/ShieldFill';
57
+ import Users from './icons/Users';
58
+ import WhatsAppFill from './icons/WhatsappFill';
59
+ import Bold from './icons/Bold';
60
+ import Italic from './icons/Italic';
61
+ import UnderLine from './icons/UnderLine';
49
62
 
50
63
  const icons: Record<
51
64
  IconNameProps,
@@ -96,6 +109,19 @@ const icons: Record<
96
109
  'clipboard-list-check-outline': ClipBoardListCheckOutline,
97
110
  'Box': Box,
98
111
  'plus-square': PlusSquare,
112
+ 'at-sign': AtSign,
113
+ 'briefcase-outline': BriefCaseOutline,
114
+ 'edit-square-outline': EditSquareOutline,
115
+ 'globe-earth': GlobeEarth,
116
+ 'lock-fill': LockFill,
117
+ 'logo-herca-hris': LogoHercaHris,
118
+ 'question-circle-outline': QuestionCircleOutline,
119
+ 'shield-fill': ShieldFill,
120
+ 'Users': Users,
121
+ 'whatsapp-fill': WhatsAppFill,
122
+ 'Bold': Bold,
123
+ 'Italic': Italic,
124
+ 'UnderLine': UnderLine,
99
125
  };
100
126
 
101
127
  const Icon: React.FC<IconProps> = ({