@herca/rn-kit 0.1.19 → 0.1.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/module/Badge/Badge.js +11 -4
- package/lib/module/Badge/Badge.js.map +1 -1
- package/lib/module/Badge/README.md +12 -3
- package/lib/module/Icon/Icon.js +15 -1
- package/lib/module/Icon/Icon.js.map +1 -1
- package/lib/module/Icon/README.md +7 -1
- package/lib/module/Icon/icons/BookmarkUser.js +4 -4
- package/lib/module/Icon/icons/BookmarkUser.js.map +1 -1
- package/lib/module/Icon/icons/Box.js +22 -0
- package/lib/module/Icon/icons/Box.js.map +1 -0
- package/lib/module/Icon/icons/BoxOutline.js +22 -0
- package/lib/module/Icon/icons/BoxOutline.js.map +1 -0
- package/lib/module/Icon/icons/Calendar.js +3 -3
- package/lib/module/Icon/icons/Calendar.js.map +1 -1
- package/lib/module/Icon/icons/ClipBoardListCheckOutline.js +22 -0
- package/lib/module/Icon/icons/ClipBoardListCheckOutline.js.map +1 -0
- package/lib/module/Icon/icons/Clock.js +24 -0
- package/lib/module/Icon/icons/Clock.js.map +1 -0
- package/lib/module/Icon/icons/ClockOutline.js +22 -0
- package/lib/module/Icon/icons/ClockOutline.js.map +1 -0
- package/lib/module/Icon/icons/FolderClock.js +4 -4
- package/lib/module/Icon/icons/FolderClock.js.map +1 -1
- package/lib/module/Icon/icons/PlusSquare.js +22 -0
- package/lib/module/Icon/icons/PlusSquare.js.map +1 -0
- package/lib/module/Icon/icons/Scanner.js +22 -0
- package/lib/module/Icon/icons/Scanner.js.map +1 -0
- package/lib/module/Input/Input.js +5 -1
- package/lib/module/Input/Input.js.map +1 -1
- package/lib/module/Ui/Card.js +3 -4
- package/lib/module/Ui/Card.js.map +1 -1
- package/lib/module/helpers/hexToRgba.js +35 -0
- package/lib/module/helpers/hexToRgba.js.map +1 -0
- package/lib/typescript/src/Badge/Badge.d.ts +2 -3
- package/lib/typescript/src/Badge/Badge.d.ts.map +1 -1
- package/lib/typescript/src/Badge/type.d.ts +4 -0
- package/lib/typescript/src/Badge/type.d.ts.map +1 -1
- package/lib/typescript/src/Icon/Icon.d.ts.map +1 -1
- package/lib/typescript/src/Icon/icons/Box.d.ts +9 -0
- package/lib/typescript/src/Icon/icons/Box.d.ts.map +1 -0
- package/lib/typescript/src/Icon/icons/BoxOutline.d.ts +9 -0
- package/lib/typescript/src/Icon/icons/BoxOutline.d.ts.map +1 -0
- package/lib/typescript/src/Icon/icons/Calendar.d.ts.map +1 -1
- package/lib/typescript/src/Icon/icons/ClipBoardListCheckOutline.d.ts +9 -0
- package/lib/typescript/src/Icon/icons/ClipBoardListCheckOutline.d.ts.map +1 -0
- package/lib/typescript/src/Icon/icons/Clock.d.ts +9 -0
- package/lib/typescript/src/Icon/icons/Clock.d.ts.map +1 -0
- package/lib/typescript/src/Icon/icons/ClockOutline.d.ts +9 -0
- package/lib/typescript/src/Icon/icons/ClockOutline.d.ts.map +1 -0
- package/lib/typescript/src/Icon/icons/PlusSquare.d.ts +9 -0
- package/lib/typescript/src/Icon/icons/PlusSquare.d.ts.map +1 -0
- package/lib/typescript/src/Icon/icons/Scanner.d.ts +9 -0
- package/lib/typescript/src/Icon/icons/Scanner.d.ts.map +1 -0
- package/lib/typescript/src/Icon/type.d.ts +1 -1
- package/lib/typescript/src/Icon/type.d.ts.map +1 -1
- package/lib/typescript/src/Input/Input.d.ts.map +1 -1
- package/lib/typescript/src/helpers/hexToRgba.d.ts +10 -0
- package/lib/typescript/src/helpers/hexToRgba.d.ts.map +1 -0
- package/package.json +1 -1
- package/src/Badge/Badge.tsx +20 -16
- package/src/Badge/README.md +12 -3
- package/src/Badge/type.tsx +14 -0
- package/src/Icon/Icon.tsx +14 -0
- package/src/Icon/README.md +7 -1
- package/src/Icon/icons/BookmarkUser.tsx +4 -4
- package/src/Icon/icons/Box.tsx +25 -0
- package/src/Icon/icons/BoxOutline.tsx +25 -0
- package/src/Icon/icons/Calendar.tsx +8 -2
- package/src/Icon/icons/ClipBoardListCheckOutline.tsx +29 -0
- package/src/Icon/icons/Clock.tsx +27 -0
- package/src/Icon/icons/ClockOutline.tsx +29 -0
- package/src/Icon/icons/FolderClock.tsx +4 -4
- package/src/Icon/icons/PlusSquare.tsx +29 -0
- package/src/Icon/icons/Scanner.tsx +25 -0
- package/src/Icon/type.tsx +8 -1
- package/src/Input/Input.tsx +8 -1
- package/src/Ui/Card.tsx +1 -4
- package/src/helpers/hexToRgba.ts +35 -0
|
@@ -9,14 +9,14 @@ interface Props {
|
|
|
9
9
|
|
|
10
10
|
const FolderClock: React.FC<Props> = ({ size = 24, color = '#000', style }) => (
|
|
11
11
|
<Svg
|
|
12
|
-
width={size}
|
|
13
|
-
height={size
|
|
14
|
-
viewBox="0 0
|
|
12
|
+
width={size + 1}
|
|
13
|
+
height={size}
|
|
14
|
+
viewBox="0 0 25 24"
|
|
15
15
|
fill="none"
|
|
16
16
|
style={style}
|
|
17
17
|
>
|
|
18
18
|
<Path
|
|
19
|
-
d="
|
|
19
|
+
d="M13.791 14.084C13.986 14.279 13.986 14.596 13.791 14.791C13.693 14.889 13.565 14.937 13.437 14.937C13.309 14.937 13.181 14.888 13.083 14.791L12.145 13.854C12.051 13.76 11.999 13.633 11.999 13.5V12.188C11.999 11.912 12.223 11.688 12.499 11.688C12.775 11.688 12.999 11.912 12.999 12.188V13.293L13.791 14.084ZM21.5 10V17C21.5 19 20.5 20 18.5 20H6.5C4.5 20 3.5 19 3.5 17V7C3.5 5 4.5 4 6.5 4H10.5L13.5 7H18.5C20.5 7 21.5 8 21.5 10ZM16 13.5C16 11.567 14.433 10 12.5 10C10.567 10 9 11.567 9 13.5C9 15.433 10.567 17 12.5 17C14.433 17 16 15.433 16 13.5Z"
|
|
20
20
|
fill={color}
|
|
21
21
|
/>
|
|
22
22
|
</Svg>
|
|
@@ -0,0 +1,29 @@
|
|
|
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 PlusSquare: React.FC<Props> = ({
|
|
11
|
+
size = 24,
|
|
12
|
+
color = '#909090',
|
|
13
|
+
style,
|
|
14
|
+
}) => (
|
|
15
|
+
<Svg
|
|
16
|
+
width={size + 1}
|
|
17
|
+
height={size}
|
|
18
|
+
viewBox="0 0 41 40"
|
|
19
|
+
fill="none"
|
|
20
|
+
style={style}
|
|
21
|
+
>
|
|
22
|
+
<Path
|
|
23
|
+
d="M29.8667 5H11.1333C7.38334 5 5.5 6.86666 5.5 10.6167V29.3667C5.5 33.1167 7.38334 35 11.1333 35H29.8667C33.6333 35 35.5 33.1167 35.5 29.3667V10.6167C35.5 6.86666 33.6333 5 29.8667 5ZM26.3333 21.25H21.75V25.8333C21.75 26.5167 21.1833 27.0833 20.5 27.0833C19.8167 27.0833 19.25 26.5167 19.25 25.8333V21.25H14.6667C13.9833 21.25 13.4167 20.6833 13.4167 20C13.4167 19.3167 13.9833 18.75 14.6667 18.75H19.25V14.1667C19.25 13.4833 19.8167 12.9167 20.5 12.9167C21.1833 12.9167 21.75 13.4833 21.75 14.1667V18.75H26.3333C27.0167 18.75 27.5833 19.3167 27.5833 20C27.5833 20.6833 27.0167 21.25 26.3333 21.25Z"
|
|
24
|
+
fill={color}
|
|
25
|
+
/>
|
|
26
|
+
</Svg>
|
|
27
|
+
);
|
|
28
|
+
|
|
29
|
+
export default PlusSquare;
|
|
@@ -0,0 +1,25 @@
|
|
|
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 Scanner: React.FC<Props> = ({ size = 24, color = '#000', style }) => (
|
|
11
|
+
<Svg
|
|
12
|
+
width={size + 1}
|
|
13
|
+
height={size}
|
|
14
|
+
viewBox="0 0 25 24"
|
|
15
|
+
fill="none"
|
|
16
|
+
style={style}
|
|
17
|
+
>
|
|
18
|
+
<Path
|
|
19
|
+
d="M2.625 8V4.5C2.625 3.091 3.466 2.25 4.875 2.25H8.375C8.789 2.25 9.125 2.586 9.125 3C9.125 3.414 8.789 3.75 8.375 3.75H4.875C4.286 3.75 4.125 3.911 4.125 4.5V8C4.125 8.414 3.789 8.75 3.375 8.75C2.961 8.75 2.625 8.414 2.625 8ZM8.375 20.25H4.875C4.286 20.25 4.125 20.089 4.125 19.5V16C4.125 15.586 3.789 15.25 3.375 15.25C2.961 15.25 2.625 15.586 2.625 16V19.5C2.625 20.909 3.466 21.75 4.875 21.75H8.375C8.789 21.75 9.125 21.414 9.125 21C9.125 20.586 8.789 20.25 8.375 20.25ZM21.375 15.25C20.961 15.25 20.625 15.586 20.625 16V19.5C20.625 20.089 20.464 20.25 19.875 20.25H16.375C15.961 20.25 15.625 20.586 15.625 21C15.625 21.414 15.961 21.75 16.375 21.75H19.875C21.284 21.75 22.125 20.909 22.125 19.5V16C22.125 15.586 21.789 15.25 21.375 15.25ZM19.875 2.25H16.375C15.961 2.25 15.625 2.586 15.625 3C15.625 3.414 15.961 3.75 16.375 3.75H19.875C20.464 3.75 20.625 3.911 20.625 4.5V8C20.625 8.414 20.961 8.75 21.375 8.75C21.789 8.75 22.125 8.414 22.125 8V4.5C22.125 3.091 21.284 2.25 19.875 2.25ZM17.875 15.12V12.75H19.375C19.789 12.75 20.125 12.414 20.125 12C20.125 11.586 19.789 11.25 19.375 11.25H5.375C4.961 11.25 4.625 11.586 4.625 12C4.625 12.414 4.961 12.75 5.375 12.75H6.875V15.12C6.875 16.65 7.715 17.5 9.255 17.5H15.495C17.035 17.5 17.875 16.65 17.875 15.12ZM6.625 8.88V9C6.625 9.414 6.961 9.75 7.375 9.75C7.789 9.75 8.125 9.414 8.125 9V8.88C8.125 8.035 8.41 7.75 9.255 7.75H15.495C16.34 7.75 16.625 8.035 16.625 8.88V9C16.625 9.414 16.961 9.75 17.375 9.75C17.789 9.75 18.125 9.414 18.125 9V8.88C18.125 7.209 17.166 6.25 15.495 6.25H9.255C7.584 6.25 6.625 7.208 6.625 8.88Z"
|
|
20
|
+
fill={color}
|
|
21
|
+
/>
|
|
22
|
+
</Svg>
|
|
23
|
+
);
|
|
24
|
+
|
|
25
|
+
export default Scanner;
|
package/src/Icon/type.tsx
CHANGED
|
@@ -40,7 +40,14 @@ export type IconNameProps =
|
|
|
40
40
|
| 'user-circle-fill'
|
|
41
41
|
| 'clipboard-list-check'
|
|
42
42
|
| 'clipboard-list'
|
|
43
|
-
| 'Megaphone'
|
|
43
|
+
| 'Megaphone'
|
|
44
|
+
| 'Scanner'
|
|
45
|
+
| 'Clock'
|
|
46
|
+
| 'clock-outline'
|
|
47
|
+
| 'clipboard-list-check-outline'
|
|
48
|
+
| 'box-outline'
|
|
49
|
+
| 'Box'
|
|
50
|
+
| 'plus-square';
|
|
44
51
|
|
|
45
52
|
export interface IconProps {
|
|
46
53
|
name: IconNameProps;
|
package/src/Input/Input.tsx
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
import React, { useState } from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import {
|
|
3
|
+
TextInput,
|
|
4
|
+
View,
|
|
5
|
+
StyleSheet,
|
|
6
|
+
TouchableOpacity,
|
|
7
|
+
Platform,
|
|
8
|
+
} from 'react-native';
|
|
3
9
|
import { Icon } from '../Icon';
|
|
4
10
|
import Color from '../Color/Color';
|
|
5
11
|
import LabelForm from '../LabelForm/LabelForm';
|
|
@@ -114,6 +120,7 @@ const styles = StyleSheet.create({
|
|
|
114
120
|
input: {
|
|
115
121
|
height: 37,
|
|
116
122
|
paddingHorizontal: 12,
|
|
123
|
+
marginTop: Platform.select({ ios: 0, android: 5 }),
|
|
117
124
|
fontSize: 16,
|
|
118
125
|
color: '#333',
|
|
119
126
|
},
|
package/src/Ui/Card.tsx
CHANGED
|
@@ -27,7 +27,7 @@ export default function Card({
|
|
|
27
27
|
return (
|
|
28
28
|
<ImageBackground
|
|
29
29
|
source={backgroundImage}
|
|
30
|
-
style={[styles.imageBackground, style]}
|
|
30
|
+
style={[styles.imageBackground, style, { borderColor: borderColor }]}
|
|
31
31
|
imageStyle={styles.imageStyle}
|
|
32
32
|
>
|
|
33
33
|
{children}
|
|
@@ -67,7 +67,4 @@ const styles = StyleSheet.create({
|
|
|
67
67
|
imageStyle: {
|
|
68
68
|
borderRadius: 8,
|
|
69
69
|
},
|
|
70
|
-
inner: {
|
|
71
|
-
padding: 10, // tetap kasih padding isi
|
|
72
|
-
},
|
|
73
70
|
});
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Convert HEX color to RGBA string with given alpha.
|
|
3
|
+
* Supports #RGB and #RRGGBB format.
|
|
4
|
+
*
|
|
5
|
+
* @param hex - HEX color string (e.g. "#000" or "#336699")
|
|
6
|
+
* @param alpha - Opacity value (0 to 1)
|
|
7
|
+
* @returns rgba string (e.g. "rgba(51, 102, 153, 0.5)")
|
|
8
|
+
*/
|
|
9
|
+
export const hexToRGBA = (hex: string, alpha: number = 1): string => {
|
|
10
|
+
let r = 0,
|
|
11
|
+
g = 0,
|
|
12
|
+
b = 0;
|
|
13
|
+
|
|
14
|
+
if (!/^#([A-Fa-f0-9]{3}){1,2}$/.test(hex)) {
|
|
15
|
+
console.warn(`Invalid HEX color: ${hex}`);
|
|
16
|
+
return `rgba(0, 0, 0, ${alpha})`;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
if (hex.length === 4) {
|
|
20
|
+
// Format: #RGB → expand ke #RRGGBB
|
|
21
|
+
const rHex = hex[1] ?? '0';
|
|
22
|
+
const gHex = hex[2] ?? '0';
|
|
23
|
+
const bHex = hex[3] ?? '0';
|
|
24
|
+
r = parseInt(rHex + rHex, 16);
|
|
25
|
+
g = parseInt(gHex + gHex, 16);
|
|
26
|
+
b = parseInt(bHex + bHex, 16);
|
|
27
|
+
} else if (hex.length === 7) {
|
|
28
|
+
// Format: #RRGGBB
|
|
29
|
+
r = parseInt(hex.slice(1, 3), 16);
|
|
30
|
+
g = parseInt(hex.slice(3, 5), 16);
|
|
31
|
+
b = parseInt(hex.slice(5, 7), 16);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
return `rgba(${r}, ${g}, ${b}, ${alpha})`;
|
|
35
|
+
};
|