@designbasekorea/ui-native 0.1.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 +152 -0
- package/dist/components/Alert/Alert.d.ts +29 -0
- package/dist/components/Alert/Alert.d.ts.map +1 -0
- package/dist/components/Alert/Alert.js +44 -0
- package/dist/components/Alert/Alert.js.map +1 -0
- package/dist/components/Alert/index.d.ts +3 -0
- package/dist/components/Alert/index.d.ts.map +1 -0
- package/dist/components/Alert/index.js +2 -0
- package/dist/components/Alert/index.js.map +1 -0
- package/dist/components/Avatar/Avatar.d.ts +28 -0
- package/dist/components/Avatar/Avatar.d.ts.map +1 -0
- package/dist/components/Avatar/Avatar.js +73 -0
- package/dist/components/Avatar/Avatar.js.map +1 -0
- package/dist/components/Avatar/index.d.ts +3 -0
- package/dist/components/Avatar/index.d.ts.map +1 -0
- package/dist/components/Avatar/index.js +2 -0
- package/dist/components/Avatar/index.js.map +1 -0
- package/dist/components/Badge/Badge.d.ts +28 -0
- package/dist/components/Badge/Badge.d.ts.map +1 -0
- package/dist/components/Badge/Badge.js +52 -0
- package/dist/components/Badge/Badge.js.map +1 -0
- package/dist/components/Badge/index.d.ts +3 -0
- package/dist/components/Badge/index.d.ts.map +1 -0
- package/dist/components/Badge/index.js +2 -0
- package/dist/components/Badge/index.js.map +1 -0
- package/dist/components/BottomNavigation/BottomNavigation.d.ts +30 -0
- package/dist/components/BottomNavigation/BottomNavigation.d.ts.map +1 -0
- package/dist/components/BottomNavigation/BottomNavigation.js +48 -0
- package/dist/components/BottomNavigation/BottomNavigation.js.map +1 -0
- package/dist/components/BottomNavigation/index.d.ts +3 -0
- package/dist/components/BottomNavigation/index.d.ts.map +1 -0
- package/dist/components/BottomNavigation/index.js +2 -0
- package/dist/components/BottomNavigation/index.js.map +1 -0
- package/dist/components/BottomSheet/BottomSheet.d.ts +26 -0
- package/dist/components/BottomSheet/BottomSheet.d.ts.map +1 -0
- package/dist/components/BottomSheet/BottomSheet.js +75 -0
- package/dist/components/BottomSheet/BottomSheet.js.map +1 -0
- package/dist/components/BottomSheet/index.d.ts +3 -0
- package/dist/components/BottomSheet/index.d.ts.map +1 -0
- package/dist/components/BottomSheet/index.js +2 -0
- package/dist/components/BottomSheet/index.js.map +1 -0
- package/dist/components/Button/Button.d.ts +53 -0
- package/dist/components/Button/Button.d.ts.map +1 -0
- package/dist/components/Button/Button.js +129 -0
- package/dist/components/Button/Button.js.map +1 -0
- package/dist/components/Button/index.d.ts +3 -0
- package/dist/components/Button/index.d.ts.map +1 -0
- package/dist/components/Button/index.js +2 -0
- package/dist/components/Button/index.js.map +1 -0
- package/dist/components/Card/Card.d.ts +36 -0
- package/dist/components/Card/Card.d.ts.map +1 -0
- package/dist/components/Card/Card.js +61 -0
- package/dist/components/Card/Card.js.map +1 -0
- package/dist/components/Card/index.d.ts +3 -0
- package/dist/components/Card/index.d.ts.map +1 -0
- package/dist/components/Card/index.js +2 -0
- package/dist/components/Card/index.js.map +1 -0
- package/dist/components/Checkbox/Checkbox.d.ts +26 -0
- package/dist/components/Checkbox/Checkbox.d.ts.map +1 -0
- package/dist/components/Checkbox/Checkbox.js +57 -0
- package/dist/components/Checkbox/Checkbox.js.map +1 -0
- package/dist/components/Checkbox/index.d.ts +3 -0
- package/dist/components/Checkbox/index.d.ts.map +1 -0
- package/dist/components/Checkbox/index.js +2 -0
- package/dist/components/Checkbox/index.js.map +1 -0
- package/dist/components/Chip/Chip.d.ts +29 -0
- package/dist/components/Chip/Chip.d.ts.map +1 -0
- package/dist/components/Chip/Chip.js +54 -0
- package/dist/components/Chip/Chip.js.map +1 -0
- package/dist/components/Chip/index.d.ts +3 -0
- package/dist/components/Chip/index.d.ts.map +1 -0
- package/dist/components/Chip/index.js +2 -0
- package/dist/components/Chip/index.js.map +1 -0
- package/dist/components/Divider/Divider.d.ts +22 -0
- package/dist/components/Divider/Divider.d.ts.map +1 -0
- package/dist/components/Divider/Divider.js +16 -0
- package/dist/components/Divider/Divider.js.map +1 -0
- package/dist/components/Divider/index.d.ts +3 -0
- package/dist/components/Divider/index.d.ts.map +1 -0
- package/dist/components/Divider/index.js +2 -0
- package/dist/components/Divider/index.js.map +1 -0
- package/dist/components/Input/Input.d.ts +33 -0
- package/dist/components/Input/Input.d.ts.map +1 -0
- package/dist/components/Input/Input.js +98 -0
- package/dist/components/Input/Input.js.map +1 -0
- package/dist/components/Input/index.d.ts +3 -0
- package/dist/components/Input/index.d.ts.map +1 -0
- package/dist/components/Input/index.js +2 -0
- package/dist/components/Input/index.js.map +1 -0
- package/dist/components/Modal/Modal.d.ts +28 -0
- package/dist/components/Modal/Modal.d.ts.map +1 -0
- package/dist/components/Modal/Modal.js +46 -0
- package/dist/components/Modal/Modal.js.map +1 -0
- package/dist/components/Modal/index.d.ts +3 -0
- package/dist/components/Modal/index.d.ts.map +1 -0
- package/dist/components/Modal/index.js +2 -0
- package/dist/components/Modal/index.js.map +1 -0
- package/dist/components/Navbar/Navbar.d.ts +50 -0
- package/dist/components/Navbar/Navbar.d.ts.map +1 -0
- package/dist/components/Navbar/Navbar.js +125 -0
- package/dist/components/Navbar/Navbar.js.map +1 -0
- package/dist/components/Navbar/index.d.ts +3 -0
- package/dist/components/Navbar/index.d.ts.map +1 -0
- package/dist/components/Navbar/index.js +2 -0
- package/dist/components/Navbar/index.js.map +1 -0
- package/dist/components/ProgressBar/ProgressBar.d.ts +27 -0
- package/dist/components/ProgressBar/ProgressBar.d.ts.map +1 -0
- package/dist/components/ProgressBar/ProgressBar.js +55 -0
- package/dist/components/ProgressBar/ProgressBar.js.map +1 -0
- package/dist/components/ProgressBar/index.d.ts +3 -0
- package/dist/components/ProgressBar/index.d.ts.map +1 -0
- package/dist/components/ProgressBar/index.js +2 -0
- package/dist/components/ProgressBar/index.js.map +1 -0
- package/dist/components/Radio/Radio.d.ts +30 -0
- package/dist/components/Radio/Radio.d.ts.map +1 -0
- package/dist/components/Radio/Radio.js +56 -0
- package/dist/components/Radio/Radio.js.map +1 -0
- package/dist/components/Radio/index.d.ts +3 -0
- package/dist/components/Radio/index.d.ts.map +1 -0
- package/dist/components/Radio/index.js +2 -0
- package/dist/components/Radio/index.js.map +1 -0
- package/dist/components/SearchBar/SearchBar.d.ts +29 -0
- package/dist/components/SearchBar/SearchBar.d.ts.map +1 -0
- package/dist/components/SearchBar/SearchBar.js +64 -0
- package/dist/components/SearchBar/SearchBar.js.map +1 -0
- package/dist/components/SearchBar/index.d.ts +3 -0
- package/dist/components/SearchBar/index.d.ts.map +1 -0
- package/dist/components/SearchBar/index.js +2 -0
- package/dist/components/SearchBar/index.js.map +1 -0
- package/dist/components/Skeleton/Skeleton.d.ts +22 -0
- package/dist/components/Skeleton/Skeleton.d.ts.map +1 -0
- package/dist/components/Skeleton/Skeleton.js +46 -0
- package/dist/components/Skeleton/Skeleton.js.map +1 -0
- package/dist/components/Skeleton/index.d.ts +3 -0
- package/dist/components/Skeleton/index.d.ts.map +1 -0
- package/dist/components/Skeleton/index.js +2 -0
- package/dist/components/Skeleton/index.js.map +1 -0
- package/dist/components/Spinner/Spinner.d.ts +23 -0
- package/dist/components/Spinner/Spinner.d.ts.map +1 -0
- package/dist/components/Spinner/Spinner.js +19 -0
- package/dist/components/Spinner/Spinner.js.map +1 -0
- package/dist/components/Spinner/index.d.ts +3 -0
- package/dist/components/Spinner/index.d.ts.map +1 -0
- package/dist/components/Spinner/index.js +2 -0
- package/dist/components/Spinner/index.js.map +1 -0
- package/dist/components/Tabs/Tabs.d.ts +30 -0
- package/dist/components/Tabs/Tabs.d.ts.map +1 -0
- package/dist/components/Tabs/Tabs.js +73 -0
- package/dist/components/Tabs/Tabs.js.map +1 -0
- package/dist/components/Tabs/index.d.ts +3 -0
- package/dist/components/Tabs/index.d.ts.map +1 -0
- package/dist/components/Tabs/index.js +2 -0
- package/dist/components/Tabs/index.js.map +1 -0
- package/dist/components/Toast/Toast.d.ts +30 -0
- package/dist/components/Toast/Toast.d.ts.map +1 -0
- package/dist/components/Toast/Toast.js +84 -0
- package/dist/components/Toast/Toast.js.map +1 -0
- package/dist/components/Toast/index.d.ts +3 -0
- package/dist/components/Toast/index.d.ts.map +1 -0
- package/dist/components/Toast/index.js +2 -0
- package/dist/components/Toast/index.js.map +1 -0
- package/dist/components/Toggle/Toggle.d.ts +26 -0
- package/dist/components/Toggle/Toggle.d.ts.map +1 -0
- package/dist/components/Toggle/Toggle.js +75 -0
- package/dist/components/Toggle/Toggle.js.map +1 -0
- package/dist/components/Toggle/index.d.ts +3 -0
- package/dist/components/Toggle/index.d.ts.map +1 -0
- package/dist/components/Toggle/index.js +2 -0
- package/dist/components/Toggle/index.js.map +1 -0
- package/dist/index.d.ts +61 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +43 -0
- package/dist/index.js.map +1 -0
- package/dist/theme/ThemeProvider.d.ts +35 -0
- package/dist/theme/ThemeProvider.d.ts.map +1 -0
- package/dist/theme/ThemeProvider.js +45 -0
- package/dist/theme/ThemeProvider.js.map +1 -0
- package/dist/theme/index.d.ts +6 -0
- package/dist/theme/index.d.ts.map +1 -0
- package/dist/theme/index.js +4 -0
- package/dist/theme/index.js.map +1 -0
- package/dist/theme/tokens.d.ts +55 -0
- package/dist/theme/tokens.d.ts.map +1 -0
- package/dist/theme/tokens.js +172 -0
- package/dist/theme/tokens.js.map +1 -0
- package/dist/theme/useTheme.d.ts +25 -0
- package/dist/theme/useTheme.d.ts.map +1 -0
- package/dist/theme/useTheme.js +33 -0
- package/dist/theme/useTheme.js.map +1 -0
- package/package.json +58 -0
- package/src/components/Alert/Alert.tsx +105 -0
- package/src/components/Alert/index.ts +2 -0
- package/src/components/Avatar/Avatar.tsx +122 -0
- package/src/components/Avatar/index.ts +2 -0
- package/src/components/Badge/Badge.tsx +100 -0
- package/src/components/Badge/index.ts +2 -0
- package/src/components/BottomNavigation/BottomNavigation.tsx +104 -0
- package/src/components/BottomNavigation/index.ts +2 -0
- package/src/components/BottomSheet/BottomSheet.tsx +127 -0
- package/src/components/BottomSheet/index.ts +2 -0
- package/src/components/Button/Button.tsx +255 -0
- package/src/components/Button/index.ts +2 -0
- package/src/components/Card/Card.tsx +147 -0
- package/src/components/Card/index.ts +2 -0
- package/src/components/Checkbox/Checkbox.tsx +95 -0
- package/src/components/Checkbox/index.ts +2 -0
- package/src/components/Chip/Chip.tsx +108 -0
- package/src/components/Chip/index.ts +2 -0
- package/src/components/Divider/Divider.tsx +41 -0
- package/src/components/Divider/index.ts +2 -0
- package/src/components/Input/Input.tsx +199 -0
- package/src/components/Input/index.ts +2 -0
- package/src/components/Modal/Modal.tsx +117 -0
- package/src/components/Modal/index.ts +2 -0
- package/src/components/Navbar/Navbar.tsx +278 -0
- package/src/components/Navbar/index.ts +2 -0
- package/src/components/ProgressBar/ProgressBar.tsx +99 -0
- package/src/components/ProgressBar/index.ts +2 -0
- package/src/components/Radio/Radio.tsx +103 -0
- package/src/components/Radio/index.ts +2 -0
- package/src/components/SearchBar/SearchBar.tsx +115 -0
- package/src/components/SearchBar/index.ts +2 -0
- package/src/components/Skeleton/Skeleton.tsx +74 -0
- package/src/components/Skeleton/index.ts +2 -0
- package/src/components/Spinner/Spinner.tsx +58 -0
- package/src/components/Spinner/index.ts +2 -0
- package/src/components/Tabs/Tabs.tsx +124 -0
- package/src/components/Tabs/index.ts +2 -0
- package/src/components/Toast/Toast.tsx +128 -0
- package/src/components/Toast/index.ts +2 -0
- package/src/components/Toggle/Toggle.tsx +109 -0
- package/src/components/Toggle/index.ts +2 -0
- package/src/index.ts +87 -0
- package/src/theme/ThemeProvider.tsx +96 -0
- package/src/theme/index.ts +5 -0
- package/src/theme/tokens.ts +225 -0
- package/src/theme/useTheme.ts +37 -0
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Spinner 컴포넌트 (React Native)
|
|
3
|
+
*
|
|
4
|
+
* 스타일링 토큰 경로:
|
|
5
|
+
* - 색상: theme.color.aliases.brand.primary
|
|
6
|
+
* - 폰트: theme.typography.foundation.fontSize.xs
|
|
7
|
+
* - 텍스트: theme.color.aliases.text.secondary
|
|
8
|
+
*
|
|
9
|
+
* 원본: packages/ui/src/components/Spinner/Spinner.tsx
|
|
10
|
+
*/
|
|
11
|
+
import React from 'react';
|
|
12
|
+
import { type ViewStyle } from 'react-native';
|
|
13
|
+
export type SpinnerSize = 'xs' | 's' | 'm' | 'l' | 'xl';
|
|
14
|
+
export interface SpinnerProps {
|
|
15
|
+
size?: SpinnerSize;
|
|
16
|
+
color?: string;
|
|
17
|
+
label?: string;
|
|
18
|
+
showLabel?: boolean;
|
|
19
|
+
style?: ViewStyle;
|
|
20
|
+
}
|
|
21
|
+
export declare const Spinner: React.FC<SpinnerProps>;
|
|
22
|
+
export default Spinner;
|
|
23
|
+
//# sourceMappingURL=Spinner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Spinner.d.ts","sourceRoot":"","sources":["../../../src/components/Spinner/Spinner.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAA6C,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAGzF,MAAM,MAAM,WAAW,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC;AAExD,MAAM,WAAW,YAAY;IACzB,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,SAAS,CAAC;CACrB;AAED,eAAO,MAAM,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,YAAY,CAwB1C,CAAC;AAQF,eAAe,OAAO,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { View, Text, ActivityIndicator, StyleSheet } from 'react-native';
|
|
3
|
+
import { useTheme } from '../../theme/useTheme';
|
|
4
|
+
export const Spinner = ({ size = 'm', color, label = '로딩 중...', showLabel = false, style, }) => {
|
|
5
|
+
const { theme } = useTheme();
|
|
6
|
+
const spinnerColor = color ?? theme.color.aliases?.brand?.primary ?? '#006FFF';
|
|
7
|
+
const textColor = theme.color.aliases?.text?.secondary ?? '#464A4D';
|
|
8
|
+
const labelFontSize = theme.typography.foundation?.fontSize?.xs ?? 12;
|
|
9
|
+
const rnSize = size === 'xs' || size === 's' ? 'small' : 'large';
|
|
10
|
+
const scale = { xs: 0.6, s: 0.8, m: 1, l: 1.2, xl: 1.5 }[size];
|
|
11
|
+
const gap = theme.spacing.aliases?.gap?.s ?? 8;
|
|
12
|
+
return (_jsxs(View, { style: [styles.container, { gap }, style], accessibilityRole: "progressbar", accessibilityLabel: label, accessibilityState: { busy: true }, children: [_jsx(View, { style: { transform: [{ scale }] }, children: _jsx(ActivityIndicator, { size: rnSize, color: spinnerColor }) }), showLabel && label && (_jsx(Text, { style: { color: textColor, fontSize: labelFontSize }, children: label }))] }));
|
|
13
|
+
};
|
|
14
|
+
Spinner.displayName = 'Spinner';
|
|
15
|
+
const styles = StyleSheet.create({
|
|
16
|
+
container: { alignItems: 'center', justifyContent: 'center' },
|
|
17
|
+
});
|
|
18
|
+
export default Spinner;
|
|
19
|
+
//# sourceMappingURL=Spinner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Spinner.js","sourceRoot":"","sources":["../../../src/components/Spinner/Spinner.tsx"],"names":[],"mappings":";AAYA,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,iBAAiB,EAAE,UAAU,EAAkB,MAAM,cAAc,CAAC;AACzF,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAYhD,MAAM,CAAC,MAAM,OAAO,GAA2B,CAAC,EAC5C,IAAI,GAAG,GAAG,EAAE,KAAK,EAAE,KAAK,GAAG,SAAS,EAAE,SAAS,GAAG,KAAK,EAAE,KAAK,GACjE,EAAE,EAAE;IACD,MAAM,EAAE,KAAK,EAAE,GAAG,QAAQ,EAAE,CAAC;IAE7B,MAAM,YAAY,GAAG,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,IAAI,SAAS,CAAC;IAC/E,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,SAAS,IAAI,SAAS,CAAC;IACpE,MAAM,aAAa,GAAG,KAAK,CAAC,UAAU,CAAC,UAAU,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC;IAEtE,MAAM,MAAM,GAAG,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;IACjE,MAAM,KAAK,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;IAC/D,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;IAE/C,OAAO,CACH,MAAC,IAAI,IAAC,KAAK,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,GAAG,EAAE,EAAE,KAAK,CAAC,EAC3C,iBAAiB,EAAC,aAAa,EAAC,kBAAkB,EAAE,KAAK,EAAE,kBAAkB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,aAC7F,KAAC,IAAI,IAAC,KAAK,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,YACnC,KAAC,iBAAiB,IAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,GAAI,GACrD,EACN,SAAS,IAAI,KAAK,IAAI,CACnB,KAAC,IAAI,IAAC,KAAK,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,EAAE,YAAG,KAAK,GAAQ,CAC7E,IACE,CACV,CAAC;AACN,CAAC,CAAC;AAEF,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC;AAEhC,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;IAC7B,SAAS,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE;CAChE,CAAC,CAAC;AAEH,eAAe,OAAO,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Spinner/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/Spinner/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tabs 컴포넌트 (React Native)
|
|
3
|
+
*
|
|
4
|
+
* 스타일링 토큰 경로:
|
|
5
|
+
* - 색상: theme.color.aliases.{brand.primary|text.*|border.base|surface.*}
|
|
6
|
+
* - 폰트: theme.typography.foundation.fontSize.{s|base}
|
|
7
|
+
* - 간격: theme.spacing.aliases.padding.*
|
|
8
|
+
*/
|
|
9
|
+
import React from 'react';
|
|
10
|
+
import { type ViewStyle } from 'react-native';
|
|
11
|
+
export interface TabItem {
|
|
12
|
+
key: string;
|
|
13
|
+
label: string;
|
|
14
|
+
icon?: React.ReactNode;
|
|
15
|
+
badge?: number;
|
|
16
|
+
disabled?: boolean;
|
|
17
|
+
}
|
|
18
|
+
export interface TabsProps {
|
|
19
|
+
items: TabItem[];
|
|
20
|
+
activeKey?: string;
|
|
21
|
+
defaultActiveKey?: string;
|
|
22
|
+
onChange?: (key: string) => void;
|
|
23
|
+
variant?: 'underline' | 'pill' | 'enclosed';
|
|
24
|
+
fullWidth?: boolean;
|
|
25
|
+
children?: React.ReactNode;
|
|
26
|
+
style?: ViewStyle;
|
|
27
|
+
}
|
|
28
|
+
export declare const Tabs: React.FC<TabsProps>;
|
|
29
|
+
export default Tabs;
|
|
30
|
+
//# sourceMappingURL=Tabs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Tabs.d.ts","sourceRoot":"","sources":["../../../src/components/Tabs/Tabs.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAmB,MAAM,OAAO,CAAC;AACxC,OAAO,EAAiD,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAG7F,MAAM,WAAW,OAAO;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,SAAS;IACtB,KAAK,EAAE,OAAO,EAAE,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,OAAO,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,UAAU,CAAC;IAC5C,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,KAAK,CAAC,EAAE,SAAS,CAAC;CACrB;AAED,eAAO,MAAM,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CA+EpC,CAAC;AAYF,eAAe,IAAI,CAAC"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* Tabs 컴포넌트 (React Native)
|
|
4
|
+
*
|
|
5
|
+
* 스타일링 토큰 경로:
|
|
6
|
+
* - 색상: theme.color.aliases.{brand.primary|text.*|border.base|surface.*}
|
|
7
|
+
* - 폰트: theme.typography.foundation.fontSize.{s|base}
|
|
8
|
+
* - 간격: theme.spacing.aliases.padding.*
|
|
9
|
+
*/
|
|
10
|
+
import { useState } from 'react';
|
|
11
|
+
import { View, Text, Pressable, ScrollView, StyleSheet } from 'react-native';
|
|
12
|
+
import { useTheme } from '../../theme/useTheme';
|
|
13
|
+
export const Tabs = ({ items, activeKey, defaultActiveKey, onChange, variant = 'underline', fullWidth = false, children, style, }) => {
|
|
14
|
+
const { theme } = useTheme();
|
|
15
|
+
const [internalKey, setInternalKey] = useState(activeKey ?? defaultActiveKey ?? items[0]?.key ?? '');
|
|
16
|
+
const currentKey = activeKey ?? internalKey;
|
|
17
|
+
const brand = theme.color.aliases?.brand ?? {};
|
|
18
|
+
const textColors = theme.color.aliases?.text ?? {};
|
|
19
|
+
const borders = theme.color.aliases?.border ?? {};
|
|
20
|
+
const surface = theme.color.aliases?.surface ?? {};
|
|
21
|
+
const fontSize = theme.typography.foundation?.fontSize ?? {};
|
|
22
|
+
const padding = theme.spacing.aliases?.padding ?? {};
|
|
23
|
+
const disabledOpacity = theme.opacity.foundation?.[40] ?? 0.4;
|
|
24
|
+
const handlePress = (key) => {
|
|
25
|
+
setInternalKey(key);
|
|
26
|
+
onChange?.(key);
|
|
27
|
+
};
|
|
28
|
+
const renderTab = (item) => {
|
|
29
|
+
const isActive = currentKey === item.key;
|
|
30
|
+
const tabColor = isActive ? (brand.primary ?? '#006FFF') : (textColors.tertiary ?? '#757B80');
|
|
31
|
+
const tabStyle = (() => {
|
|
32
|
+
switch (variant) {
|
|
33
|
+
case 'pill':
|
|
34
|
+
return {
|
|
35
|
+
backgroundColor: isActive ? (brand.primary ?? '#006FFF') : 'transparent',
|
|
36
|
+
borderRadius: 9999, paddingHorizontal: padding.m ?? 12, paddingVertical: padding.xs ?? 4,
|
|
37
|
+
};
|
|
38
|
+
case 'enclosed':
|
|
39
|
+
return {
|
|
40
|
+
backgroundColor: isActive ? (surface.base ?? '#FFFFFF') : (surface['layer-1'] ?? '#F2F8FC'),
|
|
41
|
+
borderWidth: isActive ? 1 : 0, borderColor: borders.base ?? '#E8EEF2',
|
|
42
|
+
borderBottomWidth: isActive ? 0 : 1,
|
|
43
|
+
borderTopLeftRadius: 8, borderTopRightRadius: 8,
|
|
44
|
+
paddingHorizontal: padding.m ?? 12, paddingVertical: padding.s ?? 8,
|
|
45
|
+
};
|
|
46
|
+
default:
|
|
47
|
+
return {
|
|
48
|
+
borderBottomWidth: isActive ? 2 : 0, borderBottomColor: brand.primary ?? '#006FFF',
|
|
49
|
+
paddingHorizontal: padding.m ?? 12, paddingVertical: padding.s ?? 8,
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
})();
|
|
53
|
+
return (_jsxs(Pressable, { onPress: () => handlePress(item.key), disabled: item.disabled, accessibilityRole: "tab", accessibilityState: { selected: isActive, disabled: item.disabled }, style: [styles.tab, tabStyle, fullWidth && styles.tabFull, item.disabled && { opacity: disabledOpacity }], children: [item.icon, _jsx(Text, { style: {
|
|
54
|
+
fontSize: fontSize.s ?? 14, fontWeight: isActive ? '600' : '400',
|
|
55
|
+
color: variant === 'pill' && isActive ? '#FFFFFF' : tabColor,
|
|
56
|
+
}, children: item.label }), item.badge !== undefined && item.badge > 0 && (_jsx(View, { style: [styles.badge, { backgroundColor: brand.primary ?? '#006FFF' }], children: _jsx(Text, { style: styles.badgeText, children: item.badge > 99 ? '99+' : item.badge }) }))] }, item.key));
|
|
57
|
+
};
|
|
58
|
+
return (_jsxs(View, { style: style, children: [_jsx(ScrollView, { horizontal: true, showsHorizontalScrollIndicator: false, contentContainerStyle: [
|
|
59
|
+
styles.tabBar,
|
|
60
|
+
variant === 'underline' && { borderBottomWidth: 1, borderBottomColor: borders.base ?? '#E8EEF2' },
|
|
61
|
+
fullWidth && { flex: 1 },
|
|
62
|
+
], children: items.map(renderTab) }), children] }));
|
|
63
|
+
};
|
|
64
|
+
Tabs.displayName = 'Tabs';
|
|
65
|
+
const styles = StyleSheet.create({
|
|
66
|
+
tabBar: { flexDirection: 'row' },
|
|
67
|
+
tab: { flexDirection: 'row', alignItems: 'center', gap: 6 },
|
|
68
|
+
tabFull: { flex: 1, justifyContent: 'center' },
|
|
69
|
+
badge: { minWidth: 18, height: 18, borderRadius: 9, alignItems: 'center', justifyContent: 'center', paddingHorizontal: 4 },
|
|
70
|
+
badgeText: { color: '#FFFFFF', fontSize: 10, fontWeight: '700' },
|
|
71
|
+
});
|
|
72
|
+
export default Tabs;
|
|
73
|
+
//# sourceMappingURL=Tabs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Tabs.js","sourceRoot":"","sources":["../../../src/components/Tabs/Tabs.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Tabs/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,YAAY,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/Tabs/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Toast 컴포넌트 (React Native)
|
|
3
|
+
*
|
|
4
|
+
* 스타일링 토큰 경로:
|
|
5
|
+
* - 배경: theme.color.aliases.surface.inverse
|
|
6
|
+
* - 텍스트: theme.color.aliases.text.inverse-primary
|
|
7
|
+
* - 아이콘: theme.color.aliases.feedback.{success|warning|error|info}.fg
|
|
8
|
+
* - 라운드: theme.border.semantic.radius.l
|
|
9
|
+
* - 패딩: theme.spacing.aliases.padding.{s|m}
|
|
10
|
+
* - 그림자: theme.shadow.foundation.l
|
|
11
|
+
*/
|
|
12
|
+
import React from 'react';
|
|
13
|
+
import { type ViewStyle } from 'react-native';
|
|
14
|
+
export type ToastVariant = 'default' | 'success' | 'warning' | 'error' | 'info';
|
|
15
|
+
export interface ToastProps {
|
|
16
|
+
visible: boolean;
|
|
17
|
+
message: string;
|
|
18
|
+
variant?: ToastVariant;
|
|
19
|
+
duration?: number;
|
|
20
|
+
onDismiss?: () => void;
|
|
21
|
+
action?: {
|
|
22
|
+
label: string;
|
|
23
|
+
onPress: () => void;
|
|
24
|
+
};
|
|
25
|
+
position?: 'top' | 'bottom';
|
|
26
|
+
style?: ViewStyle;
|
|
27
|
+
}
|
|
28
|
+
export declare const Toast: React.FC<ToastProps>;
|
|
29
|
+
export default Toast;
|
|
30
|
+
//# sourceMappingURL=Toast.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Toast.d.ts","sourceRoot":"","sources":["../../../src/components/Toast/Toast.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAA4B,MAAM,OAAO,CAAC;AACjD,OAAO,EAA+C,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAG3F,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,CAAC;AAEhF,MAAM,WAAW,UAAU;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,MAAM,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,IAAI,CAAA;KAAE,CAAC;IAChD,QAAQ,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC;IAC5B,KAAK,CAAC,EAAE,SAAS,CAAC;CACrB;AAMD,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,UAAU,CAkFtC,CAAC;AAYF,eAAe,KAAK,CAAC"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* Toast 컴포넌트 (React Native)
|
|
4
|
+
*
|
|
5
|
+
* 스타일링 토큰 경로:
|
|
6
|
+
* - 배경: theme.color.aliases.surface.inverse
|
|
7
|
+
* - 텍스트: theme.color.aliases.text.inverse-primary
|
|
8
|
+
* - 아이콘: theme.color.aliases.feedback.{success|warning|error|info}.fg
|
|
9
|
+
* - 라운드: theme.border.semantic.radius.l
|
|
10
|
+
* - 패딩: theme.spacing.aliases.padding.{s|m}
|
|
11
|
+
* - 그림자: theme.shadow.foundation.l
|
|
12
|
+
*/
|
|
13
|
+
import { useEffect, useRef } from 'react';
|
|
14
|
+
import { View, Text, Pressable, Animated, StyleSheet } from 'react-native';
|
|
15
|
+
import { useTheme } from '../../theme/useTheme';
|
|
16
|
+
const VARIANT_ICONS = {
|
|
17
|
+
default: '', success: '✓', warning: '⚠', error: '✕', info: 'ℹ',
|
|
18
|
+
};
|
|
19
|
+
export const Toast = ({ visible, message, variant = 'default', duration = 3000, onDismiss, action, position = 'bottom', style, }) => {
|
|
20
|
+
const { theme } = useTheme();
|
|
21
|
+
const opacity = useRef(new Animated.Value(0)).current;
|
|
22
|
+
const translateY = useRef(new Animated.Value(position === 'top' ? -20 : 20)).current;
|
|
23
|
+
const surface = theme.color.aliases?.surface ?? {};
|
|
24
|
+
const textColors = theme.color.aliases?.text ?? {};
|
|
25
|
+
const feedback = theme.color.aliases?.feedback ?? {};
|
|
26
|
+
const padding = theme.spacing.aliases?.padding ?? {};
|
|
27
|
+
const fontSize = theme.typography.foundation?.fontSize ?? {};
|
|
28
|
+
const borderRadius = theme.border.semantic?.radius?.l ?? 12;
|
|
29
|
+
const shadow = theme.shadow.foundation ?? {};
|
|
30
|
+
const gap = theme.spacing.aliases?.gap ?? {};
|
|
31
|
+
const variantColors = {
|
|
32
|
+
default: '', success: feedback.success?.fg ?? '#16A34A',
|
|
33
|
+
warning: feedback.warning?.fg ?? '#D1B400', error: feedback.error?.fg ?? '#DC2626',
|
|
34
|
+
info: feedback.info?.fg ?? '#0683FF',
|
|
35
|
+
};
|
|
36
|
+
const toShadowStyle = (s) => s ? {
|
|
37
|
+
shadowColor: s.shadowColor ?? '#000',
|
|
38
|
+
shadowOffset: { width: s.shadowOffsetX ?? 0, height: s.shadowOffsetY ?? 0 },
|
|
39
|
+
shadowOpacity: s.shadowOpacity ?? 0.1,
|
|
40
|
+
shadowRadius: s.shadowRadius ?? 15,
|
|
41
|
+
elevation: s.elevation ?? 8,
|
|
42
|
+
} : {};
|
|
43
|
+
useEffect(() => {
|
|
44
|
+
if (visible) {
|
|
45
|
+
Animated.parallel([
|
|
46
|
+
Animated.timing(opacity, { toValue: 1, duration: 200, useNativeDriver: true }),
|
|
47
|
+
Animated.spring(translateY, { toValue: 0, useNativeDriver: true, friction: 8 }),
|
|
48
|
+
]).start();
|
|
49
|
+
if (duration > 0) {
|
|
50
|
+
const timer = setTimeout(() => onDismiss?.(), duration);
|
|
51
|
+
return () => clearTimeout(timer);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
Animated.parallel([
|
|
56
|
+
Animated.timing(opacity, { toValue: 0, duration: 150, useNativeDriver: true }),
|
|
57
|
+
Animated.timing(translateY, { toValue: position === 'top' ? -20 : 20, duration: 150, useNativeDriver: true }),
|
|
58
|
+
]).start();
|
|
59
|
+
}
|
|
60
|
+
}, [visible, duration, onDismiss, opacity, translateY, position]);
|
|
61
|
+
if (!visible)
|
|
62
|
+
return null;
|
|
63
|
+
return (_jsx(Animated.View, { style: [
|
|
64
|
+
styles.container,
|
|
65
|
+
position === 'top' ? styles.top : styles.bottom,
|
|
66
|
+
{
|
|
67
|
+
opacity, transform: [{ translateY }],
|
|
68
|
+
backgroundColor: surface.inverse ?? '#17191A',
|
|
69
|
+
borderRadius, paddingHorizontal: padding.m ?? 12, paddingVertical: padding.s ?? 8,
|
|
70
|
+
...toShadowStyle(shadow.l),
|
|
71
|
+
},
|
|
72
|
+
style,
|
|
73
|
+
], accessibilityRole: "alert", children: _jsxs(View, { style: [styles.content, { gap: gap.s ?? 8 }], children: [variant !== 'default' && (_jsx(Text, { style: { color: variantColors[variant], fontSize: fontSize.base ?? 16, fontWeight: '700' }, children: VARIANT_ICONS[variant] })), _jsx(Text, { style: [styles.message, { color: textColors['inverse-primary'] ?? '#FFFFFF', fontSize: fontSize.s ?? 14 }], numberOfLines: 2, children: message }), action && (_jsx(Pressable, { onPress: action.onPress, children: _jsx(Text, { style: { color: theme.color.aliases?.brand?.primary ?? '#006FFF', fontSize: fontSize.s ?? 14, fontWeight: '600' }, children: action.label }) }))] }) }));
|
|
74
|
+
};
|
|
75
|
+
Toast.displayName = 'Toast';
|
|
76
|
+
const styles = StyleSheet.create({
|
|
77
|
+
container: { position: 'absolute', left: 16, right: 16, zIndex: 9999 },
|
|
78
|
+
top: { top: 60 },
|
|
79
|
+
bottom: { bottom: 40 },
|
|
80
|
+
content: { flexDirection: 'row', alignItems: 'center' },
|
|
81
|
+
message: { flex: 1 },
|
|
82
|
+
});
|
|
83
|
+
export default Toast;
|
|
84
|
+
//# sourceMappingURL=Toast.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Toast.js","sourceRoot":"","sources":["../../../src/components/Toast/Toast.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Toast/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/Toast/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Toggle 컴포넌트 (React Native)
|
|
3
|
+
*
|
|
4
|
+
* 스타일링 토큰 경로:
|
|
5
|
+
* - 색상: theme.color.aliases.{brand.primary|border.base}
|
|
6
|
+
* - 그림자: theme.shadow.foundation.s
|
|
7
|
+
* - 폰트: theme.typography.foundation.fontSize.base
|
|
8
|
+
* - 투명도: theme.opacity.foundation.40
|
|
9
|
+
*
|
|
10
|
+
* 원본: packages/ui/src/components/Toggle/Toggle.tsx
|
|
11
|
+
*/
|
|
12
|
+
import React from 'react';
|
|
13
|
+
import { type ViewStyle } from 'react-native';
|
|
14
|
+
export type ToggleSize = 's' | 'm' | 'l';
|
|
15
|
+
export interface ToggleProps {
|
|
16
|
+
isSelected?: boolean;
|
|
17
|
+
defaultSelected?: boolean;
|
|
18
|
+
isDisabled?: boolean;
|
|
19
|
+
size?: ToggleSize;
|
|
20
|
+
children?: React.ReactNode;
|
|
21
|
+
onChange?: (isSelected: boolean) => void;
|
|
22
|
+
style?: ViewStyle;
|
|
23
|
+
}
|
|
24
|
+
export declare const Toggle: React.FC<ToggleProps>;
|
|
25
|
+
export default Toggle;
|
|
26
|
+
//# sourceMappingURL=Toggle.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Toggle.d.ts","sourceRoot":"","sources":["../../../src/components/Toggle/Toggle.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAsC,MAAM,OAAO,CAAC;AAC3D,OAAO,EAA+C,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAG3F,MAAM,MAAM,UAAU,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAEzC,MAAM,WAAW,WAAW;IACxB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,QAAQ,CAAC,EAAE,CAAC,UAAU,EAAE,OAAO,KAAK,IAAI,CAAC;IACzC,KAAK,CAAC,EAAE,SAAS,CAAC;CACrB;AAED,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,WAAW,CAsExC,CAAC;AAUF,eAAe,MAAM,CAAC"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* Toggle 컴포넌트 (React Native)
|
|
4
|
+
*
|
|
5
|
+
* 스타일링 토큰 경로:
|
|
6
|
+
* - 색상: theme.color.aliases.{brand.primary|border.base}
|
|
7
|
+
* - 그림자: theme.shadow.foundation.s
|
|
8
|
+
* - 폰트: theme.typography.foundation.fontSize.base
|
|
9
|
+
* - 투명도: theme.opacity.foundation.40
|
|
10
|
+
*
|
|
11
|
+
* 원본: packages/ui/src/components/Toggle/Toggle.tsx
|
|
12
|
+
*/
|
|
13
|
+
import { useState, useEffect, useRef } from 'react';
|
|
14
|
+
import { Text, Pressable, Animated, StyleSheet } from 'react-native';
|
|
15
|
+
import { useTheme } from '../../theme/useTheme';
|
|
16
|
+
export const Toggle = ({ isSelected: controlledSelected, defaultSelected = false, isDisabled = false, size = 'm', children, onChange, style, }) => {
|
|
17
|
+
const { theme } = useTheme();
|
|
18
|
+
const [selected, setSelected] = useState(controlledSelected ?? defaultSelected);
|
|
19
|
+
const animatedValue = useRef(new Animated.Value(selected ? 1 : 0)).current;
|
|
20
|
+
// ─── 토큰에서 가져오기 ───
|
|
21
|
+
const brandPrimary = theme.color.aliases?.brand?.primary ?? '#006FFF';
|
|
22
|
+
const borderBase = theme.color.aliases?.border?.base ?? '#E8EEF2';
|
|
23
|
+
const textPrimary = theme.color.aliases?.text?.primary ?? '#17191A';
|
|
24
|
+
const baseFontSize = theme.typography.foundation?.fontSize?.base ?? 16;
|
|
25
|
+
const disabledOpacity = theme.opacity.foundation?.[40] ?? 0.4;
|
|
26
|
+
const shadowS = theme.shadow.foundation?.s;
|
|
27
|
+
const thumbShadow = shadowS ? {
|
|
28
|
+
shadowColor: shadowS.shadowColor ?? '#000',
|
|
29
|
+
shadowOffset: { width: shadowS.shadowOffsetX ?? 0, height: shadowS.shadowOffsetY ?? 1 },
|
|
30
|
+
shadowOpacity: shadowS.shadowOpacity ?? 0.05,
|
|
31
|
+
shadowRadius: shadowS.shadowRadius ?? 2,
|
|
32
|
+
elevation: shadowS.elevation ?? 1,
|
|
33
|
+
} : {};
|
|
34
|
+
const gap = theme.spacing.aliases?.gap?.s ?? 8;
|
|
35
|
+
useEffect(() => {
|
|
36
|
+
if (controlledSelected !== undefined)
|
|
37
|
+
setSelected(controlledSelected);
|
|
38
|
+
}, [controlledSelected]);
|
|
39
|
+
useEffect(() => {
|
|
40
|
+
Animated.spring(animatedValue, { toValue: selected ? 1 : 0, useNativeDriver: false, friction: 8, tension: 60 }).start();
|
|
41
|
+
}, [selected, animatedValue]);
|
|
42
|
+
const handleToggle = () => {
|
|
43
|
+
if (isDisabled)
|
|
44
|
+
return;
|
|
45
|
+
const newValue = !selected;
|
|
46
|
+
setSelected(newValue);
|
|
47
|
+
onChange?.(newValue);
|
|
48
|
+
};
|
|
49
|
+
const sizeConfig = {
|
|
50
|
+
s: { trackW: 36, trackH: 20, thumbSize: 16, thumbOffset: 2 },
|
|
51
|
+
m: { trackW: 44, trackH: 24, thumbSize: 20, thumbOffset: 2 },
|
|
52
|
+
l: { trackW: 52, trackH: 28, thumbSize: 24, thumbOffset: 2 },
|
|
53
|
+
}[size];
|
|
54
|
+
const trackColor = animatedValue.interpolate({ inputRange: [0, 1], outputRange: [borderBase, brandPrimary] });
|
|
55
|
+
const thumbTranslateX = animatedValue.interpolate({
|
|
56
|
+
inputRange: [0, 1],
|
|
57
|
+
outputRange: [sizeConfig.thumbOffset, sizeConfig.trackW - sizeConfig.thumbSize - sizeConfig.thumbOffset],
|
|
58
|
+
});
|
|
59
|
+
return (_jsxs(Pressable, { onPress: handleToggle, disabled: isDisabled, accessibilityRole: "switch", accessibilityState: { checked: selected, disabled: isDisabled }, style: [styles.container, { gap }, isDisabled && { opacity: disabledOpacity }, style], children: [_jsx(Animated.View, { style: [styles.track, { width: sizeConfig.trackW, height: sizeConfig.trackH, borderRadius: sizeConfig.trackH / 2, backgroundColor: trackColor }], children: _jsx(Animated.View, { style: [styles.thumb, {
|
|
60
|
+
width: sizeConfig.thumbSize, height: sizeConfig.thumbSize,
|
|
61
|
+
borderRadius: sizeConfig.thumbSize / 2,
|
|
62
|
+
transform: [{ translateX: thumbTranslateX }],
|
|
63
|
+
...thumbShadow,
|
|
64
|
+
}] }) }), children && (typeof children === 'string'
|
|
65
|
+
? _jsx(Text, { style: { color: textPrimary, fontSize: baseFontSize }, children: children })
|
|
66
|
+
: children)] }));
|
|
67
|
+
};
|
|
68
|
+
Toggle.displayName = 'Toggle';
|
|
69
|
+
const styles = StyleSheet.create({
|
|
70
|
+
container: { flexDirection: 'row', alignItems: 'center' },
|
|
71
|
+
track: { justifyContent: 'center' },
|
|
72
|
+
thumb: { backgroundColor: '#FFFFFF' },
|
|
73
|
+
});
|
|
74
|
+
export default Toggle;
|
|
75
|
+
//# sourceMappingURL=Toggle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Toggle.js","sourceRoot":"","sources":["../../../src/components/Toggle/Toggle.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Toggle/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/Toggle/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @designbasekorea/ui-native
|
|
3
|
+
*
|
|
4
|
+
* Designbase React Native UI 컴포넌트 라이브러리
|
|
5
|
+
* 앱 개발에 최적화된 네이티브 컴포넌트 (총 20개)
|
|
6
|
+
*
|
|
7
|
+
* 토큰 파이프라인:
|
|
8
|
+
* packages/tokens/tokens/*.json
|
|
9
|
+
* → Style Dictionary (build:native)
|
|
10
|
+
* → packages/tokens/dist/native/*.json
|
|
11
|
+
* → ui-native/src/theme/tokens.ts (import)
|
|
12
|
+
* → useTheme() 훅 → 컴포넌트 스타일링
|
|
13
|
+
*/
|
|
14
|
+
export { ThemeProvider } from './theme/ThemeProvider';
|
|
15
|
+
export type { ThemeProviderProps, ThemeMode, ThemeContextValue } from './theme/ThemeProvider';
|
|
16
|
+
export { useTheme } from './theme/useTheme';
|
|
17
|
+
export { lightTheme, darkTheme, getTokenValue } from './theme/tokens';
|
|
18
|
+
export type { DesignbaseThemeTokens, NativeTokens } from './theme/tokens';
|
|
19
|
+
export { Button } from './components/Button';
|
|
20
|
+
export type { ButtonProps, ButtonVariant, ButtonSize, ButtonRadius } from './components/Button';
|
|
21
|
+
export { Input } from './components/Input';
|
|
22
|
+
export type { InputProps, InputSize } from './components/Input';
|
|
23
|
+
export { Card } from './components/Card';
|
|
24
|
+
export type { CardProps, CardVariant, CardSize } from './components/Card';
|
|
25
|
+
export { Badge } from './components/Badge';
|
|
26
|
+
export type { BadgeProps, BadgeSize, BadgeVariant, BadgeType } from './components/Badge';
|
|
27
|
+
export { Avatar } from './components/Avatar';
|
|
28
|
+
export type { AvatarProps, AvatarSize, AvatarStatus } from './components/Avatar';
|
|
29
|
+
export { Chip } from './components/Chip';
|
|
30
|
+
export type { ChipProps, ChipSize, ChipVariant } from './components/Chip';
|
|
31
|
+
export { Divider } from './components/Divider';
|
|
32
|
+
export type { DividerProps } from './components/Divider';
|
|
33
|
+
export { Spinner } from './components/Spinner';
|
|
34
|
+
export type { SpinnerProps, SpinnerSize } from './components/Spinner';
|
|
35
|
+
export { Toggle } from './components/Toggle';
|
|
36
|
+
export type { ToggleProps, ToggleSize } from './components/Toggle';
|
|
37
|
+
export { Alert } from './components/Alert';
|
|
38
|
+
export type { AlertProps, AlertVariant } from './components/Alert';
|
|
39
|
+
export { Modal } from './components/Modal';
|
|
40
|
+
export type { ModalProps, ModalSize } from './components/Modal';
|
|
41
|
+
export { BottomSheet } from './components/BottomSheet';
|
|
42
|
+
export type { BottomSheetProps } from './components/BottomSheet';
|
|
43
|
+
export { Tabs } from './components/Tabs';
|
|
44
|
+
export type { TabsProps, TabItem } from './components/Tabs';
|
|
45
|
+
export { BottomNavigation } from './components/BottomNavigation';
|
|
46
|
+
export type { BottomNavigationProps, BottomNavItem } from './components/BottomNavigation';
|
|
47
|
+
export { Navbar } from './components/Navbar';
|
|
48
|
+
export type { NavbarProps, NavbarAction } from './components/Navbar';
|
|
49
|
+
export { Checkbox } from './components/Checkbox';
|
|
50
|
+
export type { CheckboxProps, CheckboxSize } from './components/Checkbox';
|
|
51
|
+
export { Radio } from './components/Radio';
|
|
52
|
+
export type { RadioProps, RadioOption, RadioSize } from './components/Radio';
|
|
53
|
+
export { SearchBar } from './components/SearchBar';
|
|
54
|
+
export type { SearchBarProps, SearchBarSize } from './components/SearchBar';
|
|
55
|
+
export { Toast } from './components/Toast';
|
|
56
|
+
export type { ToastProps, ToastVariant } from './components/Toast';
|
|
57
|
+
export { Skeleton } from './components/Skeleton';
|
|
58
|
+
export type { SkeletonProps, SkeletonVariant } from './components/Skeleton';
|
|
59
|
+
export { ProgressBar } from './components/ProgressBar';
|
|
60
|
+
export type { ProgressBarProps, ProgressBarVariant, ProgressBarSize } from './components/ProgressBar';
|
|
61
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @designbasekorea/ui-native
|
|
3
|
+
*
|
|
4
|
+
* Designbase React Native UI 컴포넌트 라이브러리
|
|
5
|
+
* 앱 개발에 최적화된 네이티브 컴포넌트 (총 20개)
|
|
6
|
+
*
|
|
7
|
+
* 토큰 파이프라인:
|
|
8
|
+
* packages/tokens/tokens/*.json
|
|
9
|
+
* → Style Dictionary (build:native)
|
|
10
|
+
* → packages/tokens/dist/native/*.json
|
|
11
|
+
* → ui-native/src/theme/tokens.ts (import)
|
|
12
|
+
* → useTheme() 훅 → 컴포넌트 스타일링
|
|
13
|
+
*/
|
|
14
|
+
// ─── 테마 시스템 ───
|
|
15
|
+
export { ThemeProvider } from './theme/ThemeProvider';
|
|
16
|
+
export { useTheme } from './theme/useTheme';
|
|
17
|
+
export { lightTheme, darkTheme, getTokenValue } from './theme/tokens';
|
|
18
|
+
// ─── 기본 컴포넌트 ───
|
|
19
|
+
export { Button } from './components/Button';
|
|
20
|
+
export { Input } from './components/Input';
|
|
21
|
+
export { Card } from './components/Card';
|
|
22
|
+
export { Badge } from './components/Badge';
|
|
23
|
+
export { Avatar } from './components/Avatar';
|
|
24
|
+
export { Chip } from './components/Chip';
|
|
25
|
+
export { Divider } from './components/Divider';
|
|
26
|
+
export { Spinner } from './components/Spinner';
|
|
27
|
+
export { Toggle } from './components/Toggle';
|
|
28
|
+
export { Alert } from './components/Alert';
|
|
29
|
+
// ─── 레이아웃 & 네비게이션 ───
|
|
30
|
+
export { Modal } from './components/Modal';
|
|
31
|
+
export { BottomSheet } from './components/BottomSheet';
|
|
32
|
+
export { Tabs } from './components/Tabs';
|
|
33
|
+
export { BottomNavigation } from './components/BottomNavigation';
|
|
34
|
+
export { Navbar } from './components/Navbar';
|
|
35
|
+
// ─── 폼 컨트롤 ───
|
|
36
|
+
export { Checkbox } from './components/Checkbox';
|
|
37
|
+
export { Radio } from './components/Radio';
|
|
38
|
+
export { SearchBar } from './components/SearchBar';
|
|
39
|
+
// ─── 피드백 & 상태 ───
|
|
40
|
+
export { Toast } from './components/Toast';
|
|
41
|
+
export { Skeleton } from './components/Skeleton';
|
|
42
|
+
export { ProgressBar } from './components/ProgressBar';
|
|
43
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,iBAAiB;AACjB,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEtD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAGtE,kBAAkB;AAClB,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAG7C,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAG3C,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAGzC,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAG3C,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAG7C,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAGzC,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAG/C,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAG/C,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAG7C,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAG3C,uBAAuB;AACvB,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAG3C,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAGvD,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAGzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAGjE,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAG7C,gBAAgB;AAChB,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAGjD,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAG3C,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAGnD,mBAAmB;AACnB,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAG3C,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAGjD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC"}
|