cpk-ui 0.2.4 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +24 -11
- package/components/modals/AlertDialog/AlertDialog.js +1 -1
- package/components/modals/Snackbar/Snackbar.js +8 -8
- package/components/uis/Accordion/Accordion.d.ts.map +1 -1
- package/components/uis/Accordion/Accordion.js +3 -2
- package/components/uis/Accordion/AccordionItem.js +4 -4
- package/components/uis/Button/Button.d.ts.map +1 -1
- package/components/uis/Button/Button.js +15 -14
- package/components/uis/Card/Card.d.ts.map +1 -1
- package/components/uis/Card/Card.js +1 -1
- package/components/uis/Checkbox/Checkbox.d.ts.map +1 -1
- package/components/uis/Checkbox/Checkbox.js +15 -13
- package/components/uis/CustomPressable/CustomPressable.js +1 -1
- package/components/uis/EditText/EditText.d.ts.map +1 -1
- package/components/uis/EditText/EditText.js +13 -35
- package/components/uis/Hr/Hr.d.ts +2 -6
- package/components/uis/Hr/Hr.d.ts.map +1 -1
- package/components/uis/Hr/Hr.js +3 -2
- package/components/uis/Icon/Icon.d.ts +1 -4
- package/components/uis/Icon/Icon.d.ts.map +1 -1
- package/components/uis/Icon/Icon.js +2 -2
- package/components/uis/IconButton/IconButton.js +4 -4
- package/components/uis/LoadingIndicator/LoadingIndicator.d.ts.map +1 -1
- package/components/uis/LoadingIndicator/LoadingIndicator.js +3 -3
- package/components/uis/RadioGroup/RadioButton.d.ts.map +1 -1
- package/components/uis/RadioGroup/RadioButton.js +10 -25
- package/components/uis/RadioGroup/RadioGroup.js +1 -1
- package/components/uis/Rating/Rating.js +4 -4
- package/components/uis/Styled/StyledComponents.d.ts +47 -79
- package/components/uis/Styled/StyledComponents.d.ts.map +1 -1
- package/components/uis/Styled/StyledComponents.js +60 -47
- package/components/uis/SwitchToggle/SwitchToggle.d.ts.map +1 -1
- package/components/uis/SwitchToggle/SwitchToggle.js +6 -4
- package/components/uis/Typography/Typography.d.ts +81 -121
- package/components/uis/Typography/Typography.d.ts.map +1 -1
- package/components/uis/Typography/Typography.js +11 -12
- package/package.json +8 -3
- package/providers/ThemeProvider.d.ts +2 -4
- package/providers/ThemeProvider.d.ts.map +1 -1
- package/providers/ThemeProvider.js +3 -3
- package/providers/index.js +1 -1
- package/src/components/modals/AlertDialog/AlertDialog.stories.tsx +3 -2
- package/src/components/modals/AlertDialog/AlertDialog.tsx +1 -1
- package/src/components/modals/Snackbar/Snackbar.stories.tsx +3 -2
- package/src/components/modals/Snackbar/Snackbar.tsx +10 -10
- package/src/components/uis/Accordion/Accordion.stories.tsx +1 -1
- package/src/components/uis/Accordion/Accordion.tsx +3 -2
- package/src/components/uis/Accordion/AccordionItem.tsx +4 -4
- package/src/components/uis/Button/Button.test.tsx +3 -16
- package/src/components/uis/Button/Button.tsx +22 -21
- package/src/components/uis/Card/Card.tsx +4 -5
- package/src/components/uis/Checkbox/Checkbox.stories.tsx +1 -1
- package/src/components/uis/Checkbox/Checkbox.test.tsx +37 -60
- package/src/components/uis/Checkbox/Checkbox.tsx +20 -23
- package/src/components/uis/CustomPressable/CustomPressable.tsx +1 -1
- package/src/components/uis/EditText/EditText.tsx +28 -56
- package/src/components/uis/Fab/Fab.stories.tsx +1 -1
- package/src/components/uis/Hr/Hr.tsx +3 -2
- package/src/components/uis/Icon/Icon.stories.tsx +1 -1
- package/src/components/uis/Icon/Icon.tsx +3 -3
- package/src/components/uis/IconButton/IconButton.tsx +4 -4
- package/src/components/uis/LoadingIndicator/LoadingIndicator.tsx +3 -3
- package/src/components/uis/RadioGroup/RadioButton.tsx +45 -73
- package/src/components/uis/RadioGroup/RadioGroup.test.tsx +18 -4
- package/src/components/uis/RadioGroup/RadioGroup.tsx +1 -1
- package/src/components/uis/Rating/Rating.tsx +4 -4
- package/src/components/uis/Styled/StyledComponents.tsx +88 -73
- package/src/components/uis/SwitchToggle/SwitchToggle.tsx +7 -5
- package/src/components/uis/Typography/Typography.tsx +33 -37
- package/src/providers/ThemeProvider.tsx +5 -9
- package/src/providers/index.tsx +1 -1
package/README.md
CHANGED
|
@@ -17,7 +17,7 @@ Check out [ui.crossplatformkorea.com](https://ui.crossplatformkorea.com)
|
|
|
17
17
|
|
|
18
18
|
## Introduction
|
|
19
19
|
|
|
20
|
-
`cpk-ui` is a foundational design system and UI components library managed by Cross-Platform Korea. It is built using our preferred technologies, including [
|
|
20
|
+
`cpk-ui` is a foundational design system and UI components library managed by Cross-Platform Korea. It is built using our preferred technologies, including [kstyled](https://hyodotdev.github.io/kstyled), [typescript](https://www.typescriptlang.org/), [jest](https://jestjs.io), [react-native-testing-library](https://github.com/callstack/react-native-testing-library), [expo](https://expo.io), and [storybook](https://storybook.js.org).
|
|
21
21
|
|
|
22
22
|
### Philosophy
|
|
23
23
|
|
|
@@ -40,19 +40,34 @@ For detailed performance information, see our [Performance Guide](docs/PERFORMAN
|
|
|
40
40
|
#### For Expo
|
|
41
41
|
|
|
42
42
|
```sh
|
|
43
|
-
expo install cpk-ui
|
|
43
|
+
expo install cpk-ui kstyled @expo/vector-icons react-native-gesture-handler react-native-svg expo-screen-orientation @expo/match-media expo-haptics
|
|
44
|
+
|
|
45
|
+
# Install dev dependencies
|
|
46
|
+
npm install -D babel-plugin-kstyled
|
|
44
47
|
```
|
|
45
48
|
|
|
46
49
|
#### For React Native CLI
|
|
47
50
|
|
|
48
51
|
```sh
|
|
49
52
|
# Using yarn
|
|
50
|
-
yarn add cpk-ui
|
|
53
|
+
yarn add cpk-ui kstyled @expo/vector-icons react-native-gesture-handler react-native-svg expo-screen-orientation @expo/match-media
|
|
54
|
+
yarn add -D babel-plugin-kstyled
|
|
51
55
|
|
|
52
56
|
# Install expo modules
|
|
53
57
|
npx install-expo-modules@latest
|
|
54
58
|
```
|
|
55
59
|
|
|
60
|
+
#### Configure Babel
|
|
61
|
+
|
|
62
|
+
Add `babel-plugin-kstyled` to your `babel.config.js`:
|
|
63
|
+
|
|
64
|
+
```javascript
|
|
65
|
+
module.exports = {
|
|
66
|
+
presets: ['babel-preset-expo'],
|
|
67
|
+
plugins: ['babel-plugin-kstyled'],
|
|
68
|
+
};
|
|
69
|
+
```
|
|
70
|
+
|
|
56
71
|
### Usage
|
|
57
72
|
|
|
58
73
|
We focus on supporting `iOS`, `Android`, and `web` platforms, enabling [expo](https://expo.io) users to write efficient and reliable cross-platform code. For more insights into the project’s direction, refer to the [cpk-ui strategy](https://github.com/hyochan/cpk-ui/issues).
|
|
@@ -130,14 +145,12 @@ return <Main/>
|
|
|
130
145
|
|
|
131
146
|
### Compatibility
|
|
132
147
|
|
|
133
|
-
| Package | Version
|
|
134
|
-
| :----------------: |
|
|
135
|
-
| react | >=16.13
|
|
136
|
-
| react-native |
|
|
137
|
-
|
|
|
138
|
-
|
|
|
139
|
-
| emotion/native | >=11.0.0 |
|
|
140
|
-
| @expo/vector-icons | \* |
|
|
148
|
+
| Package | Version |
|
|
149
|
+
| :----------------: | :-----: |
|
|
150
|
+
| react | >=16.13 |
|
|
151
|
+
| react-native | >=0.58 |
|
|
152
|
+
| kstyled | >=0.1.0 |
|
|
153
|
+
| @expo/vector-icons | \* |
|
|
141
154
|
|
|
142
155
|
### Troubleshooting
|
|
143
156
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import React, { cloneElement, forwardRef, useEffect, useImperativeHandle, useState, useCallback, useMemo, } from 'react';
|
|
3
3
|
import { Modal, Platform, StyleSheet, TouchableWithoutFeedback, View, } from 'react-native';
|
|
4
|
-
import styled,
|
|
4
|
+
import { styled, css } from 'kstyled';
|
|
5
5
|
import { useTheme } from '../../../providers/ThemeProvider';
|
|
6
6
|
import { Typography } from '../../uis/Typography/Typography';
|
|
7
7
|
import { Button } from '../../uis/Button/Button';
|
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import React, { forwardRef, useImperativeHandle, useState, useCallback, useMemo } from 'react';
|
|
3
|
-
import { Modal, Platform, StyleSheet, View } from 'react-native';
|
|
4
|
-
import styled,
|
|
3
|
+
import { Modal, Platform, SafeAreaView, StyleSheet, View } from 'react-native';
|
|
4
|
+
import { styled, css } from 'kstyled';
|
|
5
5
|
import { SnackbarTimer } from './const';
|
|
6
6
|
import { Button } from '../../uis/Button/Button';
|
|
7
7
|
import { useTheme } from '../../../providers/ThemeProvider';
|
|
8
8
|
import { Icon } from '../../uis/Icon/Icon';
|
|
9
9
|
import { Typography } from '../../uis/Typography/Typography';
|
|
10
|
-
const Container = styled
|
|
10
|
+
const Container = styled(View) `
|
|
11
11
|
flex: 1;
|
|
12
12
|
align-self: stretch;
|
|
13
13
|
|
|
14
14
|
flex-direction: row;
|
|
15
15
|
justify-content: center;
|
|
16
16
|
`;
|
|
17
|
-
const SnackbarContainer = styled
|
|
18
|
-
background-color: ${({ theme, color }) => theme.button[color].bg};
|
|
17
|
+
const SnackbarContainer = styled(SafeAreaView) `
|
|
18
|
+
background-color: ${({ theme, $color }) => theme.button[$color].bg};
|
|
19
19
|
border-radius: 8px;
|
|
20
20
|
margin-bottom: 52px;
|
|
21
21
|
margin-left: 12px;
|
|
@@ -25,11 +25,11 @@ const SnackbarContainer = styled.SafeAreaView `
|
|
|
25
25
|
flex-direction: row;
|
|
26
26
|
align-items: center;
|
|
27
27
|
`;
|
|
28
|
-
const ActionContainer = styled
|
|
28
|
+
const ActionContainer = styled(View) `
|
|
29
29
|
margin-right: 4px;
|
|
30
30
|
`;
|
|
31
31
|
const SnackbarText = styled(Typography.Body2) `
|
|
32
|
-
color: ${({ theme, color }) => theme.button[color].text};
|
|
32
|
+
color: ${({ theme, $color }) => theme.button[$color].text};
|
|
33
33
|
flex: 1;
|
|
34
34
|
padding: 12px;
|
|
35
35
|
`;
|
|
@@ -97,7 +97,7 @@ function Snackbar({ style }, ref) {
|
|
|
97
97
|
`,
|
|
98
98
|
style,
|
|
99
99
|
], [style]);
|
|
100
|
-
const SnackbarContent = useMemo(() => (_jsx(Container, { children: _jsxs(SnackbarContainer, { color: color, style: containerStyles, children: [_jsx(SnackbarText, { color: color, style: textStyles, children: text }), _jsx(ActionContainer, { style: styles?.actionContainer, children: actionText ? (_jsx(Button, { onPress: handleActionPress, styles: {
|
|
100
|
+
const SnackbarContent = useMemo(() => (_jsx(Container, { children: _jsxs(SnackbarContainer, { "$color": color, style: containerStyles, children: [_jsx(SnackbarText, { "$color": color, style: textStyles, children: text }), _jsx(ActionContainer, { style: styles?.actionContainer, children: actionText ? (_jsx(Button, { onPress: handleActionPress, styles: {
|
|
101
101
|
text: actionTextStyles,
|
|
102
102
|
}, text: actionText, type: "text" })) : (_jsx(Button, { onPress: handleActionPress, text: _jsx(Icon, { color: theme.button[color].text, name: "X" }), type: "text" })) })] }) })), [
|
|
103
103
|
color,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Accordion.d.ts","sourceRoot":"","sources":["../../../../src/components/uis/Accordion/Accordion.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAgB,MAAM,OAAO,CAAC;AACrC,OAAO,KAAK,EAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAC,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"Accordion.d.ts","sourceRoot":"","sources":["../../../../src/components/uis/Accordion/Accordion.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAgB,MAAM,OAAO,CAAC;AACrC,OAAO,KAAK,EAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAC,MAAM,cAAc,CAAC;AAIlE,OAAO,KAAK,EAAC,qBAAqB,EAAC,MAAM,iBAAiB,CAAC;AAO3D,KAAK,MAAM,GAAG;IACZ,SAAS,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACjC,cAAc,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACtC,SAAS,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACjC,aAAa,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACrC,QAAQ,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAChC,aAAa,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CACtC,CAAC;AAEF,MAAM,MAAM,kBAAkB,CAAC,CAAC,GAAG,MAAM,EAAE,CAAC,GAAG,MAAM,IAAI;IACvD,IAAI,EAAE,qBAAqB,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;IACpC,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,qBAAqB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACzC,aAAa,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC;IACzC,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC;IAC9C,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC;IAC5C,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,GAAG,MAAM,EAAE,IAAI,EAAE,CAAC,GAAG,MAAM,KAAK,IAAI,CAAC;CAC7D,CAAC;AAEF,MAAM,MAAM,cAAc,CAAC,CAAC,GAAG,MAAM,EAAE,CAAC,GAAG,MAAM,IAAI,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAE9E,iBAAS,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,EACvB,KAAK,EACL,qBAA+B,EAC/B,IAAI,EACJ,GAAG,IAAI,EACR,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAoB1C;wBAGuC,OAAO,SAAS;AAAxD,wBAAyD;AACzD,OAAO,EAAC,SAAS,EAAC,CAAC"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import React, { useMemo } from 'react';
|
|
3
|
-
import
|
|
3
|
+
import { View } from 'react-native';
|
|
4
|
+
import { styled } from 'kstyled';
|
|
4
5
|
import { AccordionItem } from './AccordionItem';
|
|
5
|
-
const Container = styled
|
|
6
|
+
const Container = styled(View) `
|
|
6
7
|
flex-direction: column;
|
|
7
8
|
`;
|
|
8
9
|
function Accordion({ style, toggleElementPosition = 'right', data, ...rest }) {
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
// Caveat: Expo web needs React to be imported
|
|
3
3
|
import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';
|
|
4
|
-
import { Animated, Easing, View } from 'react-native';
|
|
5
|
-
import styled,
|
|
4
|
+
import { Animated, Easing, TouchableOpacity, View } from 'react-native';
|
|
5
|
+
import { styled, css } from 'kstyled';
|
|
6
6
|
import { Icon } from '../Icon/Icon';
|
|
7
7
|
import { Typography } from '../Typography/Typography';
|
|
8
|
-
const TitleTouch = styled
|
|
8
|
+
const TitleTouch = styled(TouchableOpacity) `
|
|
9
9
|
height: 48px;
|
|
10
10
|
background-color: ${({ theme }) => theme.bg.basic};
|
|
11
11
|
|
|
@@ -17,7 +17,7 @@ const StyledIcon = styled(Icon) `
|
|
|
17
17
|
color: ${({ theme }) => theme.text.basic};
|
|
18
18
|
font-weight: bold;
|
|
19
19
|
`;
|
|
20
|
-
const ItemTouch = styled
|
|
20
|
+
const ItemTouch = styled(TouchableOpacity) `
|
|
21
21
|
background-color: ${({ theme }) => theme.bg.paper};
|
|
22
22
|
padding: 8px 12px;
|
|
23
23
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../../../src/components/uis/Button/Button.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAqC,MAAM,OAAO,CAAC;AAC1D,OAAO,KAAK,EACV,MAAM,EACN,SAAS,EACT,SAAS,EACT,uBAAuB,EACvB,SAAS,EACV,MAAM,cAAc,CAAC;AAUtB,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;AAExC,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,OAAO,GAAG,UAAU,CAAC;AACvD,MAAM,MAAM,eAAe,GACvB,SAAS,GACT,WAAW,GACX,SAAS,GACT,QAAQ,GACR,SAAS,GACT,MAAM,GACN,OAAO,CAAC;AACZ,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;AAE1D,MAAM,MAAM,KAAK,GAAG;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC;IACnC,IAAI,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC;IAClC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC;IACjC,UAAU,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC;IAC/B,KAAK,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,GAAG,SAAS,CAAC,CAAC,CAAC;IAC/D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,uBAAuB,CAAC,SAAS,CAAC,CAAC;IAC7C,aAAa,CAAC,EAAE,uBAAuB,CAAC,eAAe,CAAC,CAAC;IACzD,uBAAuB,CAAC,EAAE,IAAI,CAC5B,uBAAuB,EACvB,SAAS,GAAG,eAAe,GAAG,OAAO,CACtC,CAAC;IACF,OAAO,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IAC7C,cAAc,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC;CAC9C,CAAC;AAEF,KAAK,MAAM,GAAG;IACZ,SAAS,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACjC,OAAO,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC/B,OAAO,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC/B,IAAI,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC5B,QAAQ,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAChC,YAAY,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACpC,OAAO,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAChC,CAAC;
|
|
1
|
+
{"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../../../src/components/uis/Button/Button.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAqC,MAAM,OAAO,CAAC;AAC1D,OAAO,KAAK,EACV,MAAM,EACN,SAAS,EACT,SAAS,EACT,uBAAuB,EACvB,SAAS,EACV,MAAM,cAAc,CAAC;AAUtB,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;AAExC,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,OAAO,GAAG,UAAU,CAAC;AACvD,MAAM,MAAM,eAAe,GACvB,SAAS,GACT,WAAW,GACX,SAAS,GACT,QAAQ,GACR,SAAS,GACT,MAAM,GACN,OAAO,CAAC;AACZ,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;AAE1D,MAAM,MAAM,KAAK,GAAG;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC;IACnC,IAAI,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC;IAClC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC;IACjC,UAAU,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC;IAC/B,KAAK,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,GAAG,SAAS,CAAC,CAAC,CAAC;IAC/D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,uBAAuB,CAAC,SAAS,CAAC,CAAC;IAC7C,aAAa,CAAC,EAAE,uBAAuB,CAAC,eAAe,CAAC,CAAC;IACzD,uBAAuB,CAAC,EAAE,IAAI,CAC5B,uBAAuB,EACvB,SAAS,GAAG,eAAe,GAAG,OAAO,CACtC,CAAC;IACF,OAAO,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IAC7C,cAAc,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC;CAC9C,CAAC;AAEF,KAAK,MAAM,GAAG;IACZ,SAAS,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACjC,OAAO,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC/B,OAAO,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC/B,IAAI,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC5B,QAAQ,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAChC,YAAY,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACpC,OAAO,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAChC,CAAC;AA8JF,wBAAgB,MAAM,CAAC,EACrB,MAAM,EACN,IAAc,EACd,KAAiB,EACjB,IAAe,EACf,QAAQ,EACR,OAAe,EACf,cAAc,EACd,IAAI,EACJ,YAAY,EACZ,UAAU,EACV,KAAK,EACL,MAAM,EACN,OAAO,EACP,aAAmB,EACnB,uBAAuB,EACvB,YAAgB,EAChB,YAAY,EACZ,OAAgD,EAChD,cAAc,GACf,EAAE,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CA6L3B;wBAGoC,OAAO,MAAM;AAAlD,wBAAmD"}
|
|
@@ -2,7 +2,7 @@ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-run
|
|
|
2
2
|
import React, { useCallback, useMemo, useRef } from 'react';
|
|
3
3
|
import { Platform, TouchableHighlight, View } from 'react-native';
|
|
4
4
|
import { useHover } from 'react-native-web-hooks';
|
|
5
|
-
import styled,
|
|
5
|
+
import { styled, css } from 'kstyled';
|
|
6
6
|
import { useTheme } from '../../../providers/ThemeProvider';
|
|
7
7
|
import { cloneElemWithDefaultColors } from '../../../utils/guards';
|
|
8
8
|
import { LoadingIndicator } from '../LoadingIndicator/LoadingIndicator';
|
|
@@ -48,8 +48,11 @@ const calculateStyles = ({ theme, type, color, size, loading, disabled, borderRa
|
|
|
48
48
|
container: [
|
|
49
49
|
css `
|
|
50
50
|
background-color: ${backgroundColor};
|
|
51
|
-
border-color: ${borderColor};
|
|
52
|
-
border-
|
|
51
|
+
border-top-color: ${borderColor};
|
|
52
|
+
border-bottom-color: ${borderColor};
|
|
53
|
+
border-left-color: ${borderColor};
|
|
54
|
+
border-right-color: ${borderColor};
|
|
55
|
+
border-width: ${borderWidth}px;
|
|
53
56
|
padding: ${padding};
|
|
54
57
|
`,
|
|
55
58
|
styles?.container,
|
|
@@ -83,10 +86,8 @@ const calculateStyles = ({ theme, type, color, size, loading, disabled, borderRa
|
|
|
83
86
|
shadowOpacity: 0.24,
|
|
84
87
|
shadowRadius: 16,
|
|
85
88
|
elevation: 10,
|
|
89
|
+
borderRadius,
|
|
86
90
|
},
|
|
87
|
-
css `
|
|
88
|
-
border-radius: ${borderRadius + 'px'};
|
|
89
|
-
`,
|
|
90
91
|
styles?.hovered,
|
|
91
92
|
]
|
|
92
93
|
: undefined,
|
|
@@ -94,7 +95,10 @@ const calculateStyles = ({ theme, type, color, size, loading, disabled, borderRa
|
|
|
94
95
|
? [
|
|
95
96
|
css `
|
|
96
97
|
background-color: ${theme.button.disabled.bg};
|
|
97
|
-
border-color: ${theme.bg.disabled};
|
|
98
|
+
border-top-color: ${theme.bg.disabled};
|
|
99
|
+
border-bottom-color: ${theme.bg.disabled};
|
|
100
|
+
border-left-color: ${theme.bg.disabled};
|
|
101
|
+
border-right-color: ${theme.bg.disabled};
|
|
98
102
|
`,
|
|
99
103
|
styles?.disabled,
|
|
100
104
|
]
|
|
@@ -168,7 +172,7 @@ export function Button({ testID, type = 'solid', color = 'primary', size = 'medi
|
|
|
168
172
|
textStyle?.color,
|
|
169
173
|
]);
|
|
170
174
|
// Memoize container renderer
|
|
171
|
-
const renderContainer = useCallback(({ children, loadingView, }) => (_jsxs(ButtonContainer, { disabled: innerDisabled, size: size, style: [
|
|
175
|
+
const renderContainer = useCallback(({ children, loadingView, }) => (_jsxs(ButtonContainer, { "$disabled": innerDisabled, "$size": size, style: [
|
|
172
176
|
hovered && !innerDisabled && compositeStyles.hovered,
|
|
173
177
|
compositeStyles.container,
|
|
174
178
|
type === 'text' &&
|
|
@@ -176,11 +180,8 @@ export function Button({ testID, type = 'solid', color = 'primary', size = 'medi
|
|
|
176
180
|
background-color: transparent;
|
|
177
181
|
`,
|
|
178
182
|
innerDisabled && compositeStyles.disabled,
|
|
179
|
-
!!borderRadius &&
|
|
180
|
-
|
|
181
|
-
border-radius: ${borderRadius + 'px'};
|
|
182
|
-
`,
|
|
183
|
-
], testID: loading ? 'loading-view' : 'button-container', type: type, children: [_jsx(View, { style: compositeStyles.content, children: children }), _jsx(View, { style: compositeStyles.loading, children: loadingView })] })), [
|
|
183
|
+
!!borderRadius && { borderRadius },
|
|
184
|
+
], testID: loading ? 'loading-view' : 'button-container', "$type": type, children: [_jsx(View, { style: compositeStyles.content, children: children }), _jsx(View, { style: compositeStyles.loading, children: loadingView })] })), [
|
|
184
185
|
innerDisabled,
|
|
185
186
|
size,
|
|
186
187
|
compositeStyles.container,
|
|
@@ -203,7 +204,7 @@ export function Button({ testID, type = 'solid', color = 'primary', size = 'medi
|
|
|
203
204
|
const buttonStyles = useMemo(() => [
|
|
204
205
|
style,
|
|
205
206
|
css `
|
|
206
|
-
border-radius: ${borderRadius
|
|
207
|
+
border-radius: ${borderRadius}px;
|
|
207
208
|
`,
|
|
208
209
|
], [style, borderRadius]);
|
|
209
210
|
return (_jsx(TouchableHighlight, { activeOpacity: activeOpacity, delayPressIn: 30, disabled: innerDisabled || loading || !onPress, hitSlop: hitSlop, onPress: handlePress, ref: Platform.select({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Card.d.ts","sourceRoot":"","sources":["../../../../src/components/uis/Card/Card.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAC,SAAS,EAAE,SAAS,EAAC,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"Card.d.ts","sourceRoot":"","sources":["../../../../src/components/uis/Card/Card.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAC,SAAS,EAAE,SAAS,EAAC,MAAM,cAAc,CAAC;AAMvD,KAAK,MAAM,GAAG;IACZ,SAAS,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACjC,OAAO,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,IAAI,CAAC,EAC3B,MAAyB,EACzB,QAAQ,EACR,SAAa,EACb,YAAgB,EAChB,OAAY,EACZ,MAAU,EACV,eAAe,EACf,KAAK,EACL,MAAM,EACN,OAAO,GACR,EAAE,SAAS,GAAG,GAAG,CAAC,OAAO,CAgDzB;AAYD,OAAO,EAAC,IAAI,EAAC,CAAC"}
|
|
@@ -6,7 +6,7 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
6
6
|
*/
|
|
7
7
|
import React from 'react';
|
|
8
8
|
import { View } from 'react-native';
|
|
9
|
-
import styled from '
|
|
9
|
+
import { styled } from 'kstyled';
|
|
10
10
|
import { useTheme } from '../../../providers/ThemeProvider';
|
|
11
11
|
export default function Card({ testID = 'card-container', children, elevation = 2, borderRadius = 8, padding = 16, margin = 0, backgroundColor, style, styles, onPress, }) {
|
|
12
12
|
const { theme } = useTheme();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Checkbox.d.ts","sourceRoot":"","sources":["../../../../src/components/uis/Checkbox/Checkbox.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAgD,MAAM,OAAO,CAAC;AACrE,OAAO,KAAK,EAAC,SAAS,EAAE,SAAS,EAAC,MAAM,cAAc,CAAC;AAWvD,KAAK,MAAM,GAAG;IACZ,SAAS,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACjC,QAAQ,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAChC,KAAK,CAAC,EAAE,SAAS,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,aAAa,GACrB,SAAS,GACT,WAAW,GACX,SAAS,GACT,QAAQ,GACR,SAAS,GACT,MAAM,CAAC;AAEX,MAAM,WAAW,aAAa;IAC5B,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC;IAC/B,YAAY,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC;CAClC;
|
|
1
|
+
{"version":3,"file":"Checkbox.d.ts","sourceRoot":"","sources":["../../../../src/components/uis/Checkbox/Checkbox.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAgD,MAAM,OAAO,CAAC;AACrE,OAAO,KAAK,EAAC,SAAS,EAAE,SAAS,EAAC,MAAM,cAAc,CAAC;AAWvD,KAAK,MAAM,GAAG;IACZ,SAAS,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACjC,QAAQ,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAChC,KAAK,CAAC,EAAE,SAAS,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,aAAa,GACrB,SAAS,GACT,WAAW,GACX,SAAS,GACT,QAAQ,GACR,SAAS,GACT,MAAM,CAAC;AAEX,MAAM,WAAW,aAAa;IAC5B,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC;IAC/B,YAAY,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC;CAClC;AAiCD,wBAAgB,QAAQ,CAAC,EACvB,KAAK,EACL,MAAM,EACN,UAAU,EACV,YAAY,EACZ,KAAiB,EACjB,QAAgB,EAChB,OAAe,EACf,OAAO,GACR,EAAE,aAAa,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAsFnC;wBAGsC,OAAO,QAAQ;AAAtD,wBAAuD"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import React, { useEffect, useMemo, useRef } from 'react';
|
|
3
|
-
import { Animated, Platform, View } from 'react-native';
|
|
4
|
-
import styled,
|
|
5
|
-
import {
|
|
3
|
+
import { Animated, Platform, TouchableOpacity, View } from 'react-native';
|
|
4
|
+
import { styled, css } from 'kstyled';
|
|
5
|
+
import { CheckboxWrapperOutlined, } from '../Styled/StyledComponents';
|
|
6
6
|
import { Icon } from '../Icon/Icon';
|
|
7
7
|
import { useTheme } from '../../../providers/ThemeProvider';
|
|
8
|
-
const Container = styled
|
|
8
|
+
const Container = styled(TouchableOpacity) `
|
|
9
9
|
flex-direction: row;
|
|
10
10
|
align-items: center;
|
|
11
11
|
`;
|
|
@@ -18,7 +18,9 @@ const StyledCheckboxOutlined = styled(CheckboxWrapperOutlined) `
|
|
|
18
18
|
justify-content: center;
|
|
19
19
|
align-items: center;
|
|
20
20
|
`;
|
|
21
|
-
|
|
21
|
+
// Create animated version for checkbox that needs animation
|
|
22
|
+
const AnimatedView = Animated.createAnimatedComponent(View);
|
|
23
|
+
const AnimatedCheckbox = styled(AnimatedView) `
|
|
22
24
|
width: 20px;
|
|
23
25
|
height: 20px;
|
|
24
26
|
margin: 0 6px;
|
|
@@ -28,12 +30,12 @@ const StyledCheckbox = styled(CheckboxWrapper) `
|
|
|
28
30
|
`;
|
|
29
31
|
const StyledCheck = styled(Icon) `
|
|
30
32
|
font-weight: bold;
|
|
31
|
-
color: ${({ theme, checked }) => (checked ? theme.bg.basic : 'transparent')};
|
|
33
|
+
color: ${({ theme, $checked }) => ($checked ? theme.bg.basic : 'transparent')};
|
|
32
34
|
`;
|
|
33
35
|
export function Checkbox({ style, styles, endElement, startElement, color = 'primary', disabled = false, checked = false, onPress, }) {
|
|
34
|
-
|
|
35
|
-
const fadeAnim = useRef(
|
|
36
|
-
const scaleAnim = useRef(
|
|
36
|
+
// Separate animated values for fade and scale
|
|
37
|
+
const fadeAnim = useRef(new Animated.Value(checked ? 1 : 0)).current;
|
|
38
|
+
const scaleAnim = useRef(new Animated.Value(checked ? 1 : 0.8)).current; // Start from 0.8, not 0
|
|
37
39
|
const { theme } = useTheme();
|
|
38
40
|
// Memoize animation config
|
|
39
41
|
const animationConfig = useMemo(() => ({
|
|
@@ -43,13 +45,13 @@ export function Checkbox({ style, styles, endElement, startElement, color = 'pri
|
|
|
43
45
|
}),
|
|
44
46
|
}), []);
|
|
45
47
|
useEffect(() => {
|
|
46
|
-
Animated.
|
|
48
|
+
Animated.parallel([
|
|
47
49
|
Animated.spring(fadeAnim, {
|
|
48
|
-
toValue:
|
|
50
|
+
toValue: checked ? 1 : 0,
|
|
49
51
|
...animationConfig,
|
|
50
52
|
}),
|
|
51
53
|
Animated.spring(scaleAnim, {
|
|
52
|
-
toValue:
|
|
54
|
+
toValue: checked ? 1 : 0.8, // Scale to 0.8 when unchecked, not 0
|
|
53
55
|
...animationConfig,
|
|
54
56
|
}),
|
|
55
57
|
]).start();
|
|
@@ -74,7 +76,7 @@ export function Checkbox({ style, styles, endElement, startElement, color = 'pri
|
|
|
74
76
|
transform: [{ scale: scaleAnim }],
|
|
75
77
|
},
|
|
76
78
|
], [styles?.checkbox, fadeAnim, scaleAnim]);
|
|
77
|
-
return (_jsx(Container, { activeOpacity: 0.9, disabled: disabled, onPress: onPress, style: style, children: _jsxs(View, { style: containerStyles, children: [startElement, _jsx(StyledCheckboxOutlined, { checked: checked, disabled: disabled, style: styles?.checkbox, testID: "cpk-ui-checkbox", type: color, children: _jsx(
|
|
79
|
+
return (_jsx(Container, { activeOpacity: 0.9, disabled: disabled, onPress: onPress, style: style, children: _jsxs(View, { style: containerStyles, children: [startElement, _jsx(StyledCheckboxOutlined, { "$checked": checked, "$disabled": disabled, style: styles?.checkbox, testID: "cpk-ui-checkbox", "$type": color, children: _jsx(AnimatedCheckbox, { style: animatedStyles, children: _jsx(StyledCheck, { "$checked": checked, name: "Check", style: styles?.check }) }) }), endElement] }) }));
|
|
78
80
|
}
|
|
79
81
|
// Export memoized component for better performance
|
|
80
82
|
export default React.memo(Checkbox);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import React, { useMemo } from 'react';
|
|
3
3
|
import { Pressable } from 'react-native';
|
|
4
|
-
import { css } from '
|
|
4
|
+
import { css } from 'kstyled';
|
|
5
5
|
import { useCPK } from '../../../providers';
|
|
6
6
|
const DEFAULT_HIT_SLOP = { top: 4, bottom: 4, left: 6, right: 6 };
|
|
7
7
|
function CustomPressable(props) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EditText.d.ts","sourceRoot":"","sources":["../../../../src/components/uis/EditText/EditText.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,gBAAgB,EAAa,SAAS,EAAC,MAAM,OAAO,CAAC;AAClE,OAAO,KAON,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,EACV,SAAS,EACT,cAAc,EACd,SAAS,EACT,SAAS,EACV,MAAM,cAAc,CAAC;AACtB,OAAO,EAGL,SAAS,EAGV,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"EditText.d.ts","sourceRoot":"","sources":["../../../../src/components/uis/EditText/EditText.tsx"],"names":[],"mappings":"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"}
|
|
@@ -2,10 +2,9 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
|
|
|
2
2
|
import React, { forwardRef, isValidElement, useCallback, useMemo, useRef, useState, } from 'react';
|
|
3
3
|
import { Text, TextInput, TouchableWithoutFeedback, View, } from 'react-native';
|
|
4
4
|
import { useHover } from 'react-native-web-hooks';
|
|
5
|
-
import { css } from '
|
|
5
|
+
import { css } from 'kstyled';
|
|
6
6
|
import { Icon } from '../Icon/Icon';
|
|
7
7
|
import { cloneElemWithDefaultColors } from '../../../utils/guards';
|
|
8
|
-
import { Global } from '@emotion/react';
|
|
9
8
|
import { useTheme } from '../../../providers/ThemeProvider';
|
|
10
9
|
import { Typography } from '../Typography/Typography';
|
|
11
10
|
import { isWeb, safePlatformSelect } from '../../../utils/platform';
|
|
@@ -267,40 +266,19 @@ export const EditText = forwardRef(({ testID, textInputProps, style, styles, lab
|
|
|
267
266
|
theme.text.placeholder,
|
|
268
267
|
value.length,
|
|
269
268
|
]);
|
|
270
|
-
return (_jsxs(
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
269
|
+
return (_jsxs(View, { ref: safePlatformSelect({ web: webRef, default: undefined }), style: [
|
|
270
|
+
css `
|
|
271
|
+
width: 100%;
|
|
272
|
+
`,
|
|
273
|
+
style,
|
|
274
|
+
], testID: "edit-text", children: [renderLabel(), renderContainer(renderInput()), renderError() || renderCounter() ? (_jsxs(View, { style: css `
|
|
275
|
+
margin-top: 6px;
|
|
277
276
|
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
});
|
|
284
|
-
// Memoize the WebStyles component
|
|
285
|
-
const WebStyles = React.memo(() => {
|
|
286
|
-
return (_jsx(Global
|
|
287
|
-
// @ts-ignore
|
|
288
|
-
, {
|
|
289
|
-
// @ts-ignore
|
|
290
|
-
styles: css `
|
|
291
|
-
input:autofill,
|
|
292
|
-
input:autofill:hover,
|
|
293
|
-
input:autofill:focus,
|
|
294
|
-
input:autofill:active {
|
|
295
|
-
-webkit-text-fill-color: #787878;
|
|
296
|
-
box-shadow: 0 0 0px 1000px #ededed inset;
|
|
297
|
-
transition: background-color 5000s ease-in-out 0s;
|
|
298
|
-
}
|
|
299
|
-
::-webkit-scrollbar {
|
|
300
|
-
display: none;
|
|
301
|
-
}
|
|
302
|
-
` }));
|
|
277
|
+
flex-direction: ${!renderError() && renderCounter()
|
|
278
|
+
? 'row-reverse'
|
|
279
|
+
: 'row'};
|
|
280
|
+
gap: 4px;
|
|
281
|
+
`, children: [renderError(), renderCounter()] })) : null] }));
|
|
303
282
|
});
|
|
304
|
-
WebStyles.displayName = 'WebStyles';
|
|
305
283
|
// Export memoized EditText component for better performance
|
|
306
284
|
export default React.memo(EditText);
|
|
@@ -1,8 +1,4 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
as?: React.ElementType;
|
|
5
|
-
} & {
|
|
6
|
-
ref?: React.Ref<import("react-native").View>;
|
|
7
|
-
}>;
|
|
2
|
+
import { View } from 'react-native';
|
|
3
|
+
export declare const Hr: React.MemoExoticComponent<import("kstyled").StyledComponent<typeof View, {}, {}>>;
|
|
8
4
|
//# sourceMappingURL=Hr.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Hr.d.ts","sourceRoot":"","sources":["../../../../src/components/uis/Hr/Hr.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"Hr.d.ts","sourceRoot":"","sources":["../../../../src/components/uis/Hr/Hr.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,IAAI,EAAC,MAAM,cAAc,CAAC;AAiBlC,eAAO,MAAM,EAAE,mFAAuB,CAAC"}
|
package/components/uis/Hr/Hr.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import
|
|
2
|
+
import { View } from 'react-native';
|
|
3
|
+
import { styled } from 'kstyled';
|
|
3
4
|
import { isEmptyObject } from '../../../utils/theme';
|
|
4
|
-
const StyledHr = styled
|
|
5
|
+
const StyledHr = styled(View) `
|
|
5
6
|
height: 0.5px;
|
|
6
7
|
width: 100%;
|
|
7
8
|
background-color: ${({ theme }) => {
|
|
@@ -9,9 +9,6 @@ export type IconProps = {
|
|
|
9
9
|
color?: string;
|
|
10
10
|
style?: StyleProp<ViewStyle>;
|
|
11
11
|
};
|
|
12
|
-
export declare const Icon: import("
|
|
13
|
-
theme?: import("@emotion/react").Theme;
|
|
14
|
-
as?: React.ElementType;
|
|
15
|
-
}, {}, {}>;
|
|
12
|
+
export declare const Icon: import("kstyled").StyledComponent<React.FC<IconProps>, IconProps, {}>;
|
|
16
13
|
export default Icon;
|
|
17
14
|
//# sourceMappingURL=Icon.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Icon.d.ts","sourceRoot":"","sources":["../../../../src/components/uis/Icon/Icon.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAgB,MAAM,OAAO,CAAC;AACrC,OAAO,KAAK,EAAC,SAAS,EAAE,SAAS,EAAC,MAAM,cAAc,CAAC;AAMvD,eAAO,MAAM,QAAQ,kx+DA4rHX,CAAC;AAEX,MAAM,MAAM,SAAS,GAAG,OAAO,QAAQ,CAAC;AACxC,MAAM,MAAM,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;AAEzC,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAC9B,CAAC;AASF,eAAO,MAAM,IAAI
|
|
1
|
+
{"version":3,"file":"Icon.d.ts","sourceRoot":"","sources":["../../../../src/components/uis/Icon/Icon.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAgB,MAAM,OAAO,CAAC;AACrC,OAAO,KAAK,EAAC,SAAS,EAAE,SAAS,EAAC,MAAM,cAAc,CAAC;AAMvD,eAAO,MAAM,QAAQ,kx+DA4rHX,CAAC;AAEX,MAAM,MAAM,SAAS,GAAG,OAAO,QAAQ,CAAC;AACxC,MAAM,MAAM,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;AAEzC,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAC9B,CAAC;AASF,eAAO,MAAM,IAAI,uEAEhB,CAAC;AAGF,eAAe,IAAI,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import styled from '
|
|
1
|
+
import { styled } from 'kstyled';
|
|
2
2
|
import { createIconSetFromIcoMoon } from '@expo/vector-icons';
|
|
3
3
|
import collectingFontIconSelection from './selection.json';
|
|
4
4
|
export const iconList = [
|
|
@@ -3777,7 +3777,7 @@ export const iconList = [
|
|
|
3777
3777
|
// Create the base icon component once at module level
|
|
3778
3778
|
const BaseIconComponent = createIconSetFromIcoMoon(collectingFontIconSelection, 'cpk', require('./cpk.ttf'));
|
|
3779
3779
|
export const Icon = styled(BaseIconComponent) `
|
|
3780
|
-
color: ${({ theme, color }) => color || theme
|
|
3780
|
+
color: ${({ theme, color }) => color || theme?.text?.basic || '#000'};
|
|
3781
3781
|
`;
|
|
3782
3782
|
// Export the icon component
|
|
3783
3783
|
export default Icon;
|
|
@@ -2,7 +2,7 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
2
2
|
import React, { useCallback, useMemo, useRef } from 'react';
|
|
3
3
|
import { Platform, TouchableHighlight, View } from 'react-native';
|
|
4
4
|
import { useHover } from 'react-native-web-hooks';
|
|
5
|
-
import { css } from '
|
|
5
|
+
import { css } from 'kstyled';
|
|
6
6
|
import { Icon } from '../Icon/Icon';
|
|
7
7
|
import { LoadingIndicator } from '../LoadingIndicator/LoadingIndicator';
|
|
8
8
|
import { useTheme } from '../../../providers/ThemeProvider';
|
|
@@ -64,7 +64,7 @@ export function IconButton({ testID, type = 'solid', color = 'primary', size = '
|
|
|
64
64
|
}, [size]);
|
|
65
65
|
// Memoize style strings
|
|
66
66
|
const borderRadiusStr = useMemo(() => '99px', []);
|
|
67
|
-
const borderWidthStr = useMemo(() => `${buttonStylesConfig.borderWidth
|
|
67
|
+
const borderWidthStr = useMemo(() => `${buttonStylesConfig.borderWidth}px`, [buttonStylesConfig.borderWidth]);
|
|
68
68
|
// Memoize composite styles
|
|
69
69
|
const compositeStyles = useMemo(() => ({
|
|
70
70
|
container: [
|
|
@@ -110,8 +110,8 @@ export function IconButton({ testID, type = 'solid', color = 'primary', size = '
|
|
|
110
110
|
const LoadingView = useMemo(() => loadingElement || (_jsx(LoadingIndicator, { color: theme.text.disabled, size: "small", style: css `
|
|
111
111
|
justify-content: center;
|
|
112
112
|
align-items: center;
|
|
113
|
-
height: ${iconSize
|
|
114
|
-
width: ${iconSize
|
|
113
|
+
height: ${iconSize}px;
|
|
114
|
+
width: ${iconSize}px;
|
|
115
115
|
` })), [loadingElement, theme.text.disabled, iconSize]);
|
|
116
116
|
// Memoize icon view
|
|
117
117
|
const IconView = useMemo(() => iconElement || (_jsx(Icon, { color: buttonStylesConfig.iconColor, name: icon || 'QuestBoxFill', size: iconSize, style: compositeStyles?.icon })), [iconElement, buttonStylesConfig.iconColor, icon, iconSize, compositeStyles?.icon]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LoadingIndicator.d.ts","sourceRoot":"","sources":["../../../../src/components/uis/LoadingIndicator/LoadingIndicator.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA6B,MAAM,OAAO,CAAC;AAClD,OAAO,KAAK,EACV,mBAAmB,EACnB,UAAU,EACV,SAAS,EACT,SAAS,EACV,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,iBAAiB,
|
|
1
|
+
{"version":3,"file":"LoadingIndicator.d.ts","sourceRoot":"","sources":["../../../../src/components/uis/LoadingIndicator/LoadingIndicator.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA6B,MAAM,OAAO,CAAC;AAClD,OAAO,KAAK,EACV,mBAAmB,EACnB,UAAU,EACV,SAAS,EACT,SAAS,EACV,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,iBAAiB,EAAe,MAAM,cAAc,CAAC;AAG9D,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,uBAAuB,CAAC;AAE9D,KAAK,MAAM,GAAG;IACZ,iBAAiB,CAAC,EAAE,SAAS,CAAC;IAC9B,KAAK,CAAC,EAAE,UAAU,CAAC;CACpB,CAAC;AAEF,MAAM,WAAW,qBAAsB,SAAQ,kBAAkB;IAC/D,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,iBAAiB,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC;IAC1C,SAAS,CAAC,EAAE,MAAM,GAAG,mBAAmB,CAAC;IACzC,aAAa,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,MAAM,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;CAC/D;AAOD,iBAAS,gBAAgB,CAAC,EACxB,aAAa,EACb,KAAK,EACL,MAAM,EACN,IAAc,EACd,KAAK,EACL,SAAS,EACT,MAAM,GACP,EAAE,qBAAqB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CA2D3C;wBAG8C,OAAO,gBAAgB;AAAtE,wBAAuE;AAGvE,OAAO,EAAC,gBAAgB,EAAC,CAAC"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import React, { useMemo, useCallback } from "react";
|
|
3
|
-
import { ActivityIndicator, Image } from "react-native";
|
|
4
|
-
import styled from "
|
|
3
|
+
import { ActivityIndicator, Image, View } from "react-native";
|
|
4
|
+
import { styled } from "kstyled";
|
|
5
5
|
import { useTheme } from "../../../providers/ThemeProvider";
|
|
6
|
-
const Container = styled
|
|
6
|
+
const Container = styled(View) `
|
|
7
7
|
justify-content: center;
|
|
8
8
|
align-items: center;
|
|
9
9
|
`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RadioButton.d.ts","sourceRoot":"","sources":["../../../../src/components/uis/RadioGroup/RadioButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA0D,MAAM,OAAO,CAAC;AAC/E,OAAO,KAAK,EAEV,SAAS,EACT,SAAS,EACT,SAAS,EACV,MAAM,cAAc,CAAC;AAUtB,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,cAAc,CAAC;AAElD,MAAM,MAAM,iBAAiB,GAAG;IAC9B,SAAS,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACjC,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,aAAa,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACrC,MAAM,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACjC,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAC3B,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC;IAC/B,YAAY,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC;CAClC,CAAC;
|
|
1
|
+
{"version":3,"file":"RadioButton.d.ts","sourceRoot":"","sources":["../../../../src/components/uis/RadioGroup/RadioButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA0D,MAAM,OAAO,CAAC;AAC/E,OAAO,KAAK,EAEV,SAAS,EACT,SAAS,EACT,SAAS,EACV,MAAM,cAAc,CAAC;AAUtB,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,cAAc,CAAC;AAElD,MAAM,MAAM,iBAAiB,GAAG;IAC9B,SAAS,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACjC,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,aAAa,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACrC,MAAM,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACjC,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAC3B,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC;IAC/B,YAAY,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC;CAClC,CAAC;AASF,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,EAClC,MAAM,EACN,KAAK,EACL,MAAM,EACN,UAAU,EACV,YAAY,EACZ,IAAgB,EAChB,QAAgB,EAChB,QAAQ,EACR,OAAO,EACP,KAAK,EACL,aAAuB,GACxB,EAAE,gBAAgB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAsHtC;AAGD,QAAA,MAAM,mBAAmB,+CAA0B,CAAC;AACpD,OAAO,EAAC,mBAAmB,IAAI,WAAW,EAAC,CAAC"}
|