@vetc-miniapp/ui-react 0.0.24 → 0.0.26
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/dist/bridge.d.ts +17 -0
- package/dist/bridge.js +20 -0
- package/dist/components/app.d.ts +17 -0
- package/dist/components/app.js +34 -0
- package/dist/components/avatar/Avatar.d.ts +21 -0
- package/dist/components/avatar/Avatar.js +33 -0
- package/dist/components/avatar/index.js +1 -0
- package/dist/components/bottom-sheet/BottomSheet.d.ts +19 -0
- package/dist/components/bottom-sheet/BottomSheet.js +70 -0
- package/dist/components/bottom-sheet/index.js +1 -0
- package/dist/components/button/Button.d.ts +32 -0
- package/dist/components/button/Button.js +165 -0
- package/dist/components/button/index.js +1 -0
- package/dist/components/button-group/ButtonGroup.d.ts +28 -0
- package/dist/components/button-group/ButtonGroup.js +21 -0
- package/dist/components/button-group/index.js +1 -0
- package/dist/components/card/Card.d.ts +18 -0
- package/dist/components/card/Card.js +35 -0
- package/dist/components/card/index.js +1 -0
- package/dist/components/checkbox/Checkbox.d.ts +41 -0
- package/dist/components/checkbox/Checkbox.js +94 -0
- package/dist/components/checkbox/index.js +1 -0
- package/dist/components/chip/Chip.d.ts +24 -0
- package/dist/components/chip/Chip.js +83 -0
- package/dist/components/chip/index.js +1 -0
- package/dist/components/dialog/Dialog.d.ts +19 -0
- package/dist/components/dialog/Dialog.js +51 -0
- package/dist/components/dialog/index.js +1 -0
- package/dist/components/divider/Divider.d.ts +16 -0
- package/dist/components/divider/Divider.js +18 -0
- package/dist/components/divider/index.js +1 -0
- package/dist/components/input/Input.d.ts +40 -0
- package/dist/components/input/Input.js +51 -0
- package/dist/components/input/index.js +1 -0
- package/dist/components/list/List.d.ts +31 -0
- package/dist/components/list/List.js +72 -0
- package/dist/components/list/index.js +1 -0
- package/dist/components/loading/Loading.d.ts +28 -0
- package/dist/components/loading/Loading.js +33 -0
- package/dist/components/loading/index.js +1 -0
- package/dist/components/modal/Modal.d.ts +38 -0
- package/dist/components/modal/Modal.js +50 -0
- package/dist/components/modal/index.js +1 -0
- package/dist/components/navigation-bar/NavigationBar.d.ts +44 -0
- package/dist/components/navigation-bar/NavigationBar.js +70 -0
- package/dist/components/navigation-bar/index.js +1 -0
- package/dist/components/radio/Radio.d.ts +40 -0
- package/dist/components/radio/Radio.js +88 -0
- package/dist/components/radio/index.js +1 -0
- package/dist/components/select/Select.d.ts +29 -0
- package/dist/components/select/Select.js +30 -0
- package/dist/components/select/index.js +1 -0
- package/dist/components/switch/Switch.d.ts +23 -0
- package/dist/components/switch/Switch.js +81 -0
- package/dist/components/switch/index.js +1 -0
- package/dist/components/tab-bar/TabBar.d.ts +28 -0
- package/dist/components/tab-bar/TabBar.js +60 -0
- package/dist/components/tab-bar/index.js +1 -0
- package/dist/components/textarea/Textarea.d.ts +31 -0
- package/dist/components/textarea/Textarea.js +33 -0
- package/dist/components/textarea/index.js +1 -0
- package/dist/components/toast/Toast.d.ts +41 -0
- package/dist/components/toast/Toast.js +61 -0
- package/dist/components/toast/index.js +1 -0
- package/dist/components/typography/Typography.d.ts +45 -0
- package/dist/components/typography/Typography.js +143 -0
- package/dist/components/typography/index.js +1 -0
- package/dist/hooks/use-app-pause.d.ts +4 -0
- package/dist/hooks/use-app-pause.js +25 -0
- package/dist/hooks/use-app-resume.d.ts +4 -0
- package/dist/hooks/use-app-resume.js +25 -0
- package/{src/ui-react/hooks/use-app-state.ts → dist/hooks/use-app-state.d.ts} +0 -1
- package/dist/hooks/use-app-state.js +1 -0
- package/dist/hooks/use-did-hide.d.ts +6 -0
- package/dist/hooks/use-did-hide.js +20 -0
- package/dist/hooks/use-did-show.d.ts +6 -0
- package/dist/hooks/use-did-show.js +20 -0
- package/dist/hooks/use-listener-scan-qr.d.ts +10 -0
- package/dist/hooks/use-listener-scan-qr.js +25 -0
- package/dist/hooks/use-navigate.d.ts +8 -0
- package/dist/hooks/use-navigate.js +23 -0
- package/dist/hooks/use-tap-app-bar.d.ts +6 -0
- package/dist/hooks/use-tap-app-bar.js +20 -0
- package/{src/ui-react/index.ts → dist/index.d.ts} +1 -30
- package/dist/index.js +41 -0
- package/dist/styles/VETCProvider.d.ts +114 -0
- package/dist/styles/VETCProvider.js +124 -0
- package/{src/ui-react → dist}/styles/tokens.css +22 -1
- package/dist/tokens/colors.d.ts +127 -0
- package/dist/tokens/colors.js +75 -0
- package/dist/tokens/index.js +3 -0
- package/dist/tokens/spacing.d.ts +56 -0
- package/dist/tokens/spacing.js +56 -0
- package/dist/tokens/typography.d.ts +121 -0
- package/dist/tokens/typography.js +57 -0
- package/dist/types/app.d.ts +21 -0
- package/dist/types/app.js +1 -0
- package/package.json +13 -7
- package/src/dist/ui-react/index.js +0 -2
- package/src/dist/ui-react/index.js.LICENSE.txt +0 -11
- package/src/ui-react/bridge.js +0 -36
- package/src/ui-react/bridge.ts +0 -48
- package/src/ui-react/components/app.d.ts +0 -7
- package/src/ui-react/components/app.jsx +0 -80
- package/src/ui-react/components/app.tsx +0 -42
- package/src/ui-react/components/app1.js +0 -101
- package/src/ui-react/components/avatar/Avatar.tsx +0 -88
- package/src/ui-react/components/bottom-sheet/BottomSheet.tsx +0 -149
- package/src/ui-react/components/button/Button.tsx +0 -246
- package/src/ui-react/components/button-group/ButtonGroup.tsx +0 -108
- package/src/ui-react/components/card/Card.tsx +0 -77
- package/src/ui-react/components/checkbox/Checkbox.tsx +0 -232
- package/src/ui-react/components/chip/Chip.tsx +0 -137
- package/src/ui-react/components/dialog/Dialog.tsx +0 -135
- package/src/ui-react/components/divider/Divider.tsx +0 -54
- package/src/ui-react/components/input/Input.tsx +0 -195
- package/src/ui-react/components/list/List.tsx +0 -180
- package/src/ui-react/components/loading/Loading.tsx +0 -121
- package/src/ui-react/components/modal/Modal.tsx +0 -116
- package/src/ui-react/components/navigation-bar/NavigationBar.tsx +0 -188
- package/src/ui-react/components/radio/Radio.tsx +0 -216
- package/src/ui-react/components/select/Select.tsx +0 -109
- package/src/ui-react/components/switch/Switch.tsx +0 -164
- package/src/ui-react/components/tab-bar/TabBar.tsx +0 -137
- package/src/ui-react/components/textarea/Textarea.tsx +0 -109
- package/src/ui-react/components/toast/Toast.ts +0 -98
- package/src/ui-react/components/typography/Typography.tsx +0 -201
- package/src/ui-react/hooks/use-app-pause.js +0 -35
- package/src/ui-react/hooks/use-app-pause.ts +0 -33
- package/src/ui-react/hooks/use-app-resume.js +0 -37
- package/src/ui-react/hooks/use-app-resume.ts +0 -32
- package/src/ui-react/hooks/use-app-state.js +0 -35
- package/src/ui-react/hooks/use-did-hide.js +0 -25
- package/src/ui-react/hooks/use-did-hide.ts +0 -34
- package/src/ui-react/hooks/use-did-show.js +0 -26
- package/src/ui-react/hooks/use-did-show.ts +0 -34
- package/src/ui-react/hooks/use-listener-scan-qr.js +0 -33
- package/src/ui-react/hooks/use-listener-scan-qr.ts +0 -52
- package/src/ui-react/hooks/use-navigate.js +0 -15
- package/src/ui-react/hooks/use-navigate.ts +0 -41
- package/src/ui-react/hooks/use-tap-app-bar.js +0 -26
- package/src/ui-react/hooks/use-tap-app-bar.ts +0 -34
- package/src/ui-react/index.js +0 -9
- package/src/ui-react/styles/VETCProvider.tsx +0 -152
- package/src/ui-react/tokens/colors.ts +0 -91
- package/src/ui-react/tokens/spacing.ts +0 -59
- package/src/ui-react/tokens/typography.ts +0 -63
- package/src/ui-react/tokens_vetc.json +0 -1517
- package/src/ui-react/types/app.js +0 -30
- package/src/ui-react/types/app.ts +0 -32
- /package/{src/ui-react/components/avatar/index.ts → dist/components/avatar/index.d.ts} +0 -0
- /package/{src/ui-react/components/bottom-sheet/index.ts → dist/components/bottom-sheet/index.d.ts} +0 -0
- /package/{src/ui-react/components/button/index.ts → dist/components/button/index.d.ts} +0 -0
- /package/{src/ui-react/components/button-group/index.ts → dist/components/button-group/index.d.ts} +0 -0
- /package/{src/ui-react/components/card/index.ts → dist/components/card/index.d.ts} +0 -0
- /package/{src/ui-react/components/checkbox/index.ts → dist/components/checkbox/index.d.ts} +0 -0
- /package/{src/ui-react/components/chip/index.ts → dist/components/chip/index.d.ts} +0 -0
- /package/{src/ui-react/components/dialog/index.ts → dist/components/dialog/index.d.ts} +0 -0
- /package/{src/ui-react/components/divider/index.ts → dist/components/divider/index.d.ts} +0 -0
- /package/{src/ui-react/components/input/index.ts → dist/components/input/index.d.ts} +0 -0
- /package/{src/ui-react/components/list/index.ts → dist/components/list/index.d.ts} +0 -0
- /package/{src/ui-react/components/loading/index.ts → dist/components/loading/index.d.ts} +0 -0
- /package/{src/ui-react/components/modal/index.ts → dist/components/modal/index.d.ts} +0 -0
- /package/{src/ui-react/components/navigation-bar/index.ts → dist/components/navigation-bar/index.d.ts} +0 -0
- /package/{src/ui-react/components/radio/index.ts → dist/components/radio/index.d.ts} +0 -0
- /package/{src/ui-react/components/select/index.ts → dist/components/select/index.d.ts} +0 -0
- /package/{src/ui-react/components/switch/index.ts → dist/components/switch/index.d.ts} +0 -0
- /package/{src/ui-react/components/tab-bar/index.ts → dist/components/tab-bar/index.d.ts} +0 -0
- /package/{src/ui-react/components/textarea/index.ts → dist/components/textarea/index.d.ts} +0 -0
- /package/{src/ui-react/components/toast/index.ts → dist/components/toast/index.d.ts} +0 -0
- /package/{src/ui-react/components/typography/index.ts → dist/components/typography/index.d.ts} +0 -0
- /package/{src/ui-react/tokens/index.ts → dist/tokens/index.d.ts} +0 -0
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* VETC Design System — Ant Design Theme Provider
|
|
3
|
+
* Wraps children with ConfigProvider using VETC token overrides.
|
|
4
|
+
*/
|
|
5
|
+
import React from 'react';
|
|
6
|
+
export declare const vetcAntdTheme: {
|
|
7
|
+
token: {
|
|
8
|
+
colorPrimary: "#25a45e";
|
|
9
|
+
colorPrimaryHover: "#39b669";
|
|
10
|
+
colorPrimaryActive: "#208758";
|
|
11
|
+
colorPrimaryBg: "#f2fef2";
|
|
12
|
+
colorPrimaryBgHover: "#dffbdf";
|
|
13
|
+
colorError: "#da2c39";
|
|
14
|
+
colorErrorHover: "#b4211f";
|
|
15
|
+
colorErrorBg: "#fff6f9";
|
|
16
|
+
colorWarning: "#ff8c2f";
|
|
17
|
+
colorWarningBg: "#fffbf0";
|
|
18
|
+
colorSuccess: "#208758";
|
|
19
|
+
colorSuccessBg: "#f2fef2";
|
|
20
|
+
colorText: "#181719";
|
|
21
|
+
colorTextSecondary: "#5e5d64";
|
|
22
|
+
colorTextDisabled: "#abacb2";
|
|
23
|
+
colorTextPlaceholder: "#74747d";
|
|
24
|
+
colorBgContainer: "#ffffff";
|
|
25
|
+
colorBgLayout: "#f1f1f2";
|
|
26
|
+
colorBgSpotlight: "#181719";
|
|
27
|
+
colorBorder: "#c6c8cc";
|
|
28
|
+
colorBorderSecondary: "#e3e4e6";
|
|
29
|
+
colorSplit: "#e3e4e6";
|
|
30
|
+
colorFill: "#f1f1f2";
|
|
31
|
+
colorFillSecondary: "#e3e4e6";
|
|
32
|
+
colorFillTertiary: "#d4d6d9";
|
|
33
|
+
fontFamily: string;
|
|
34
|
+
fontSize: number;
|
|
35
|
+
fontSizeSM: number;
|
|
36
|
+
fontSizeLG: number;
|
|
37
|
+
fontSizeXL: number;
|
|
38
|
+
fontSizeHeading1: number;
|
|
39
|
+
fontSizeHeading2: number;
|
|
40
|
+
fontSizeHeading3: number;
|
|
41
|
+
fontSizeHeading4: number;
|
|
42
|
+
fontSizeHeading5: number;
|
|
43
|
+
fontWeightStrong: number;
|
|
44
|
+
lineHeight: number;
|
|
45
|
+
borderRadius: number;
|
|
46
|
+
borderRadiusSM: number;
|
|
47
|
+
borderRadiusLG: number;
|
|
48
|
+
borderRadiusXS: number;
|
|
49
|
+
controlHeight: number;
|
|
50
|
+
controlHeightSM: number;
|
|
51
|
+
controlHeightLG: number;
|
|
52
|
+
paddingXS: number;
|
|
53
|
+
paddingSM: number;
|
|
54
|
+
padding: number;
|
|
55
|
+
paddingMD: number;
|
|
56
|
+
paddingLG: number;
|
|
57
|
+
motionDurationFast: string;
|
|
58
|
+
motionDurationMid: string;
|
|
59
|
+
};
|
|
60
|
+
components: {
|
|
61
|
+
Button: {
|
|
62
|
+
primaryColor: string;
|
|
63
|
+
defaultBorderColor: "#c6c8cc";
|
|
64
|
+
defaultColor: "#181719";
|
|
65
|
+
borderRadius: number;
|
|
66
|
+
borderRadiusSM: number;
|
|
67
|
+
borderRadiusLG: number;
|
|
68
|
+
controlHeight: number;
|
|
69
|
+
controlHeightSM: number;
|
|
70
|
+
paddingInline: number;
|
|
71
|
+
paddingInlineSM: number;
|
|
72
|
+
fontWeight: number;
|
|
73
|
+
};
|
|
74
|
+
Input: {
|
|
75
|
+
borderRadius: number;
|
|
76
|
+
controlHeight: number;
|
|
77
|
+
paddingInline: number;
|
|
78
|
+
colorBorder: "#c6c8cc";
|
|
79
|
+
hoverBorderColor: "#74747d";
|
|
80
|
+
activeBorderColor: "#25a45e";
|
|
81
|
+
};
|
|
82
|
+
Select: {
|
|
83
|
+
borderRadius: number;
|
|
84
|
+
controlHeight: number;
|
|
85
|
+
};
|
|
86
|
+
Checkbox: {
|
|
87
|
+
borderRadius: number;
|
|
88
|
+
controlInteractiveSize: number;
|
|
89
|
+
};
|
|
90
|
+
Radio: {
|
|
91
|
+
radioSize: number;
|
|
92
|
+
dotSize: number;
|
|
93
|
+
};
|
|
94
|
+
Switch: {
|
|
95
|
+
trackHeight: number;
|
|
96
|
+
trackMinWidth: number;
|
|
97
|
+
handleSize: number;
|
|
98
|
+
colorPrimary: "#25a45e";
|
|
99
|
+
};
|
|
100
|
+
Modal: {
|
|
101
|
+
borderRadiusLG: number;
|
|
102
|
+
paddingContentHorizontalLG: number;
|
|
103
|
+
paddingMD: number;
|
|
104
|
+
};
|
|
105
|
+
Card: {
|
|
106
|
+
borderRadius: number;
|
|
107
|
+
paddingLG: number;
|
|
108
|
+
};
|
|
109
|
+
};
|
|
110
|
+
};
|
|
111
|
+
export interface VETCProviderProps {
|
|
112
|
+
children: React.ReactNode;
|
|
113
|
+
}
|
|
114
|
+
export declare function VETCProvider({ children }: VETCProviderProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { ConfigProvider, App as AntApp, theme } from 'antd';
|
|
3
|
+
import { colorAlias, colorGlobal } from '../tokens/colors';
|
|
4
|
+
export const vetcAntdTheme = {
|
|
5
|
+
token: {
|
|
6
|
+
// Brand / Primary
|
|
7
|
+
colorPrimary: colorAlias.brand, // #25a45e
|
|
8
|
+
colorPrimaryHover: colorGlobal.green35,
|
|
9
|
+
colorPrimaryActive: colorAlias.brandDark,
|
|
10
|
+
colorPrimaryBg: colorGlobal.green02,
|
|
11
|
+
colorPrimaryBgHover: colorGlobal.green05,
|
|
12
|
+
// Error / Danger
|
|
13
|
+
colorError: colorAlias.negative, // #da2c39
|
|
14
|
+
colorErrorHover: colorGlobal.red60,
|
|
15
|
+
colorErrorBg: colorGlobal.red02,
|
|
16
|
+
// Warning
|
|
17
|
+
colorWarning: colorAlias.warning, // #ff8c2f
|
|
18
|
+
colorWarningBg: colorGlobal.orange02,
|
|
19
|
+
// Success
|
|
20
|
+
colorSuccess: colorAlias.positive, // #208758
|
|
21
|
+
colorSuccessBg: colorGlobal.green02,
|
|
22
|
+
// Text
|
|
23
|
+
colorText: colorAlias.primaryOnTheme, // #181719
|
|
24
|
+
colorTextSecondary: colorAlias.secondaryOnTheme, // #5e5d64
|
|
25
|
+
colorTextDisabled: colorAlias.disabledContent, // #abacb2
|
|
26
|
+
colorTextPlaceholder: colorGlobal.gray50,
|
|
27
|
+
// Background
|
|
28
|
+
colorBgContainer: colorAlias.theme, // #ffffff
|
|
29
|
+
colorBgLayout: colorAlias.themeVariant, // #f1f1f2
|
|
30
|
+
colorBgSpotlight: colorAlias.inverseTheme,
|
|
31
|
+
// Border
|
|
32
|
+
colorBorder: colorGlobal.gray20, // #c6c8cc
|
|
33
|
+
colorBorderSecondary: colorGlobal.gray10, // #e3e4e6
|
|
34
|
+
colorSplit: colorGlobal.gray10,
|
|
35
|
+
// Fill states
|
|
36
|
+
colorFill: colorGlobal.gray05,
|
|
37
|
+
colorFillSecondary: colorGlobal.gray10,
|
|
38
|
+
colorFillTertiary: colorGlobal.gray15,
|
|
39
|
+
// Typography
|
|
40
|
+
fontFamily: '"Roboto", system-ui, -apple-system, sans-serif',
|
|
41
|
+
fontSize: 16,
|
|
42
|
+
fontSizeSM: 13,
|
|
43
|
+
fontSizeLG: 18,
|
|
44
|
+
fontSizeXL: 19,
|
|
45
|
+
fontSizeHeading1: 32,
|
|
46
|
+
fontSizeHeading2: 28,
|
|
47
|
+
fontSizeHeading3: 24,
|
|
48
|
+
fontSizeHeading4: 19,
|
|
49
|
+
fontSizeHeading5: 16,
|
|
50
|
+
fontWeightStrong: 600,
|
|
51
|
+
lineHeight: 1.5,
|
|
52
|
+
// Shape
|
|
53
|
+
borderRadius: 8,
|
|
54
|
+
borderRadiusSM: 6,
|
|
55
|
+
borderRadiusLG: 12,
|
|
56
|
+
borderRadiusXS: 4,
|
|
57
|
+
// Size
|
|
58
|
+
controlHeight: 48,
|
|
59
|
+
controlHeightSM: 32,
|
|
60
|
+
controlHeightLG: 56,
|
|
61
|
+
// Padding
|
|
62
|
+
paddingXS: 8,
|
|
63
|
+
paddingSM: 12,
|
|
64
|
+
padding: 16,
|
|
65
|
+
paddingMD: 16,
|
|
66
|
+
paddingLG: 24,
|
|
67
|
+
// Motion
|
|
68
|
+
motionDurationFast: '150ms',
|
|
69
|
+
motionDurationMid: '250ms',
|
|
70
|
+
},
|
|
71
|
+
components: {
|
|
72
|
+
Button: {
|
|
73
|
+
primaryColor: '#ffffff',
|
|
74
|
+
defaultBorderColor: colorGlobal.gray20,
|
|
75
|
+
defaultColor: colorAlias.primaryOnTheme,
|
|
76
|
+
borderRadius: 12,
|
|
77
|
+
borderRadiusSM: 8,
|
|
78
|
+
borderRadiusLG: 12,
|
|
79
|
+
controlHeight: 48,
|
|
80
|
+
controlHeightSM: 32,
|
|
81
|
+
paddingInline: 16,
|
|
82
|
+
paddingInlineSM: 12,
|
|
83
|
+
fontWeight: 600,
|
|
84
|
+
},
|
|
85
|
+
Input: {
|
|
86
|
+
borderRadius: 8,
|
|
87
|
+
controlHeight: 48,
|
|
88
|
+
paddingInline: 12,
|
|
89
|
+
colorBorder: colorGlobal.gray20,
|
|
90
|
+
hoverBorderColor: colorAlias.outline,
|
|
91
|
+
activeBorderColor: colorAlias.brand,
|
|
92
|
+
},
|
|
93
|
+
Select: {
|
|
94
|
+
borderRadius: 8,
|
|
95
|
+
controlHeight: 48,
|
|
96
|
+
},
|
|
97
|
+
Checkbox: {
|
|
98
|
+
borderRadius: 4,
|
|
99
|
+
controlInteractiveSize: 20,
|
|
100
|
+
},
|
|
101
|
+
Radio: {
|
|
102
|
+
radioSize: 20,
|
|
103
|
+
dotSize: 8,
|
|
104
|
+
},
|
|
105
|
+
Switch: {
|
|
106
|
+
trackHeight: 32,
|
|
107
|
+
trackMinWidth: 52,
|
|
108
|
+
handleSize: 28,
|
|
109
|
+
colorPrimary: colorAlias.brand,
|
|
110
|
+
},
|
|
111
|
+
Modal: {
|
|
112
|
+
borderRadiusLG: 16,
|
|
113
|
+
paddingContentHorizontalLG: 16,
|
|
114
|
+
paddingMD: 16,
|
|
115
|
+
},
|
|
116
|
+
Card: {
|
|
117
|
+
borderRadius: 16,
|
|
118
|
+
paddingLG: 16,
|
|
119
|
+
},
|
|
120
|
+
},
|
|
121
|
+
};
|
|
122
|
+
export function VETCProvider({ children }) {
|
|
123
|
+
return (_jsx(ConfigProvider, { theme: { ...vetcAntdTheme, algorithm: theme.defaultAlgorithm }, children: _jsx(AntApp, { children: children }) }));
|
|
124
|
+
}
|
|
@@ -417,10 +417,31 @@
|
|
|
417
417
|
--vetc-transition-fast: 150ms ease;
|
|
418
418
|
--vetc-transition-base: 250ms ease;
|
|
419
419
|
--vetc-transition-slow: 350ms ease;
|
|
420
|
+
|
|
421
|
+
/* ── Safe Area Insets ───────────────────── */
|
|
422
|
+
--safe-area-inset-top: env(safe-area-inset-top, 0px);
|
|
423
|
+
--safe-area-inset-bottom: env(safe-area-inset-bottom, 0px);
|
|
424
|
+
--safe-area-inset-left: env(safe-area-inset-left, 0px);
|
|
425
|
+
--safe-area-inset-right: env(safe-area-inset-right, 0px);
|
|
426
|
+
}
|
|
427
|
+
|
|
428
|
+
/* ════════════════════════════════════════════════════════════
|
|
429
|
+
8. SAFE AREA UTILITY CLASSES
|
|
430
|
+
════════════════════════════════════════════════════════════ */
|
|
431
|
+
.safe-area {
|
|
432
|
+
padding:
|
|
433
|
+
var(--safe-area-inset-top, 0px)
|
|
434
|
+
var(--safe-area-inset-right, 0px)
|
|
435
|
+
var(--safe-area-inset-bottom, 0px)
|
|
436
|
+
var(--safe-area-inset-left, 0px);
|
|
420
437
|
}
|
|
438
|
+
.safe-top { padding-top: var(--safe-area-inset-top, 0px); }
|
|
439
|
+
.safe-bottom { padding-bottom: var(--safe-area-inset-bottom, 0px); }
|
|
440
|
+
.safe-left { padding-left: var(--safe-area-inset-left, 0px); }
|
|
441
|
+
.safe-right { padding-right: var(--safe-area-inset-right, 0px); }
|
|
421
442
|
|
|
422
443
|
/* ════════════════════════════════════════════════════════════
|
|
423
|
-
|
|
444
|
+
9. BASE RESET
|
|
424
445
|
════════════════════════════════════════════════════════════ */
|
|
425
446
|
*, *::before, *::after {
|
|
426
447
|
box-sizing: border-box;
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* VETC Design System — Color Tokens
|
|
3
|
+
* Resolved from tokens_vetc.json
|
|
4
|
+
*/
|
|
5
|
+
export declare const colorGlobal: {
|
|
6
|
+
readonly white: "#ffffff";
|
|
7
|
+
readonly black: "#000000";
|
|
8
|
+
readonly blue02: "#f4fbff";
|
|
9
|
+
readonly blue05: "#e4f4ff";
|
|
10
|
+
readonly blue10: "#cae9ff";
|
|
11
|
+
readonly blue15: "#afddff";
|
|
12
|
+
readonly blue20: "#95d1ff";
|
|
13
|
+
readonly blue25: "#7ac4fb";
|
|
14
|
+
readonly blue30: "#60b6f4";
|
|
15
|
+
readonly blue35: "#45a8eb";
|
|
16
|
+
readonly blue40: "#2b99df";
|
|
17
|
+
readonly blue45: "#108ad1";
|
|
18
|
+
readonly blue50: "#007ac1";
|
|
19
|
+
readonly blue60: "#005c9e";
|
|
20
|
+
readonly blue70: "#004179";
|
|
21
|
+
readonly blue80: "#002853";
|
|
22
|
+
readonly blue90: "#00122a";
|
|
23
|
+
readonly green02: "#f2fef2";
|
|
24
|
+
readonly green05: "#dffbdf";
|
|
25
|
+
readonly green10: "#bff4bf";
|
|
26
|
+
readonly green15: "#9feca7";
|
|
27
|
+
readonly green20: "#82e194";
|
|
28
|
+
readonly green25: "#68d583";
|
|
29
|
+
readonly green30: "#50c775";
|
|
30
|
+
readonly green35: "#39b669";
|
|
31
|
+
readonly green40: "#25a45e";
|
|
32
|
+
readonly green45: "#23965b";
|
|
33
|
+
readonly green50: "#208758";
|
|
34
|
+
readonly green60: "#1b6b4d";
|
|
35
|
+
readonly green70: "#15503f";
|
|
36
|
+
readonly green80: "#0f342d";
|
|
37
|
+
readonly green90: "#081a18";
|
|
38
|
+
readonly gray02: "#f9fafa";
|
|
39
|
+
readonly gray05: "#f1f1f2";
|
|
40
|
+
readonly gray10: "#e3e4e6";
|
|
41
|
+
readonly gray15: "#d4d6d9";
|
|
42
|
+
readonly gray20: "#c6c8cc";
|
|
43
|
+
readonly gray25: "#b8babf";
|
|
44
|
+
readonly gray30: "#abacb2";
|
|
45
|
+
readonly gray35: "#9d9ea5";
|
|
46
|
+
readonly gray40: "#8f9098";
|
|
47
|
+
readonly gray45: "#82828a";
|
|
48
|
+
readonly gray50: "#74747d";
|
|
49
|
+
readonly gray60: "#5e5d64";
|
|
50
|
+
readonly gray70: "#47464b";
|
|
51
|
+
readonly gray80: "#2f2f32";
|
|
52
|
+
readonly gray90: "#181719";
|
|
53
|
+
readonly red02: "#fff6f9";
|
|
54
|
+
readonly red05: "#ffe7f0";
|
|
55
|
+
readonly red10: "#ffd0de";
|
|
56
|
+
readonly red15: "#ffb8cc";
|
|
57
|
+
readonly red20: "#ffa1b8";
|
|
58
|
+
readonly red25: "#ff89a3";
|
|
59
|
+
readonly red30: "#fb718d";
|
|
60
|
+
readonly red35: "#f55c78";
|
|
61
|
+
readonly red40: "#ee4b62";
|
|
62
|
+
readonly red45: "#e53b4d";
|
|
63
|
+
readonly red50: "#da2c39";
|
|
64
|
+
readonly red60: "#b4211f";
|
|
65
|
+
readonly red70: "#852419";
|
|
66
|
+
readonly red80: "#571f12";
|
|
67
|
+
readonly red90: "#2b130a";
|
|
68
|
+
readonly orange02: "#fffbf0";
|
|
69
|
+
readonly orange05: "#fff3da";
|
|
70
|
+
readonly orange10: "#ffe3b4";
|
|
71
|
+
readonly orange15: "#ffd08f";
|
|
72
|
+
readonly orange20: "#ffbb69";
|
|
73
|
+
readonly orange25: "#ffa447";
|
|
74
|
+
readonly orange30: "#ff8c2f";
|
|
75
|
+
readonly orange35: "#ef7720";
|
|
76
|
+
readonly orange40: "#dd6e1d";
|
|
77
|
+
readonly orange45: "#cb651b";
|
|
78
|
+
readonly orange50: "#b85c18";
|
|
79
|
+
readonly orange60: "#934913";
|
|
80
|
+
readonly orange70: "#6f370f";
|
|
81
|
+
readonly orange80: "#4a250a";
|
|
82
|
+
readonly orange90: "#251205";
|
|
83
|
+
readonly yellow02: "#fff8e7";
|
|
84
|
+
readonly yellow05: "#ffefbc";
|
|
85
|
+
readonly yellow10: "#ffe374";
|
|
86
|
+
readonly yellow15: "#ffd62b";
|
|
87
|
+
readonly yellow20: "#f9c600";
|
|
88
|
+
readonly yellow25: "#e9b900";
|
|
89
|
+
readonly yellow30: "#daaa00";
|
|
90
|
+
readonly yellow35: "#ca9b00";
|
|
91
|
+
readonly yellow40: "#bb8b00";
|
|
92
|
+
readonly yellow45: "#ab7b00";
|
|
93
|
+
readonly yellow50: "#9c6b00";
|
|
94
|
+
readonly yellow60: "#7c4b00";
|
|
95
|
+
readonly yellow70: "#5d2f00";
|
|
96
|
+
readonly yellow80: "#3e1800";
|
|
97
|
+
readonly yellow90: "#1f0700";
|
|
98
|
+
};
|
|
99
|
+
export declare const colorAlias: {
|
|
100
|
+
readonly brand: "#25a45e";
|
|
101
|
+
readonly brandDark: "#208758";
|
|
102
|
+
readonly brandLight: "#dffbdf";
|
|
103
|
+
readonly positive: "#208758";
|
|
104
|
+
readonly positiveVariant: "#dffbdf";
|
|
105
|
+
readonly onPositive: "#ffffff";
|
|
106
|
+
readonly onPositiveVariant: "#1b6b4d";
|
|
107
|
+
readonly negative: "#da2c39";
|
|
108
|
+
readonly onNegative: "#ffffff";
|
|
109
|
+
readonly warning: "#ff8c2f";
|
|
110
|
+
readonly onWarning: "#ffffff";
|
|
111
|
+
readonly outline: "#74747d";
|
|
112
|
+
readonly outlineVariant: "#e3e4e6";
|
|
113
|
+
readonly outlineInverse: "#8f9098";
|
|
114
|
+
readonly theme: "#ffffff";
|
|
115
|
+
readonly themeVariant: "#f1f1f2";
|
|
116
|
+
readonly inverseTheme: "#181719";
|
|
117
|
+
readonly primaryOnTheme: "#181719";
|
|
118
|
+
readonly secondaryOnTheme: "#5e5d64";
|
|
119
|
+
readonly primaryOnInverseTheme: "#ffffff";
|
|
120
|
+
readonly secondaryOnInverseTheme: "#c6c8cc";
|
|
121
|
+
readonly disabledBackground: "#e3e4e6";
|
|
122
|
+
readonly disabledContent: "#abacb2";
|
|
123
|
+
readonly disabledOutline: "#c6c8cc";
|
|
124
|
+
readonly overlay: "rgba(0, 0, 0, 0.4)";
|
|
125
|
+
readonly overlayVariant: "rgba(0, 0, 0, 0.16)";
|
|
126
|
+
readonly skeleton: "rgba(0, 0, 0, 0.1)";
|
|
127
|
+
};
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* VETC Design System — Color Tokens
|
|
3
|
+
* Resolved from tokens_vetc.json
|
|
4
|
+
*/
|
|
5
|
+
// ─── Global palette ───────────────────────────────────────────────────────────
|
|
6
|
+
export const colorGlobal = {
|
|
7
|
+
white: '#ffffff',
|
|
8
|
+
black: '#000000',
|
|
9
|
+
// Blue
|
|
10
|
+
blue02: '#f4fbff', blue05: '#e4f4ff', blue10: '#cae9ff',
|
|
11
|
+
blue15: '#afddff', blue20: '#95d1ff', blue25: '#7ac4fb',
|
|
12
|
+
blue30: '#60b6f4', blue35: '#45a8eb', blue40: '#2b99df',
|
|
13
|
+
blue45: '#108ad1', blue50: '#007ac1', blue60: '#005c9e',
|
|
14
|
+
blue70: '#004179', blue80: '#002853', blue90: '#00122a',
|
|
15
|
+
// Green (Brand)
|
|
16
|
+
green02: '#f2fef2', green05: '#dffbdf', green10: '#bff4bf',
|
|
17
|
+
green15: '#9feca7', green20: '#82e194', green25: '#68d583',
|
|
18
|
+
green30: '#50c775', green35: '#39b669', green40: '#25a45e',
|
|
19
|
+
green45: '#23965b', green50: '#208758', green60: '#1b6b4d',
|
|
20
|
+
green70: '#15503f', green80: '#0f342d', green90: '#081a18',
|
|
21
|
+
// Gray
|
|
22
|
+
gray02: '#f9fafa', gray05: '#f1f1f2', gray10: '#e3e4e6',
|
|
23
|
+
gray15: '#d4d6d9', gray20: '#c6c8cc', gray25: '#b8babf',
|
|
24
|
+
gray30: '#abacb2', gray35: '#9d9ea5', gray40: '#8f9098',
|
|
25
|
+
gray45: '#82828a', gray50: '#74747d', gray60: '#5e5d64',
|
|
26
|
+
gray70: '#47464b', gray80: '#2f2f32', gray90: '#181719',
|
|
27
|
+
// Red
|
|
28
|
+
red02: '#fff6f9', red05: '#ffe7f0', red10: '#ffd0de',
|
|
29
|
+
red15: '#ffb8cc', red20: '#ffa1b8', red25: '#ff89a3',
|
|
30
|
+
red30: '#fb718d', red35: '#f55c78', red40: '#ee4b62',
|
|
31
|
+
red45: '#e53b4d', red50: '#da2c39', red60: '#b4211f',
|
|
32
|
+
red70: '#852419', red80: '#571f12', red90: '#2b130a',
|
|
33
|
+
// Orange
|
|
34
|
+
orange02: '#fffbf0', orange05: '#fff3da', orange10: '#ffe3b4',
|
|
35
|
+
orange15: '#ffd08f', orange20: '#ffbb69', orange25: '#ffa447',
|
|
36
|
+
orange30: '#ff8c2f', orange35: '#ef7720', orange40: '#dd6e1d',
|
|
37
|
+
orange45: '#cb651b', orange50: '#b85c18', orange60: '#934913',
|
|
38
|
+
orange70: '#6f370f', orange80: '#4a250a', orange90: '#251205',
|
|
39
|
+
// Yellow
|
|
40
|
+
yellow02: '#fff8e7', yellow05: '#ffefbc', yellow10: '#ffe374',
|
|
41
|
+
yellow15: '#ffd62b', yellow20: '#f9c600', yellow25: '#e9b900',
|
|
42
|
+
yellow30: '#daaa00', yellow35: '#ca9b00', yellow40: '#bb8b00',
|
|
43
|
+
yellow45: '#ab7b00', yellow50: '#9c6b00', yellow60: '#7c4b00',
|
|
44
|
+
yellow70: '#5d2f00', yellow80: '#3e1800', yellow90: '#1f0700',
|
|
45
|
+
};
|
|
46
|
+
// ─── Semantic alias tokens ─────────────────────────────────────────────────────
|
|
47
|
+
export const colorAlias = {
|
|
48
|
+
brand: colorGlobal.green40, // #25a45e
|
|
49
|
+
brandDark: colorGlobal.green50, // #208758
|
|
50
|
+
brandLight: colorGlobal.green05, // #dffbdf
|
|
51
|
+
positive: colorGlobal.green50, // #208758
|
|
52
|
+
positiveVariant: colorGlobal.green05, // #dffbdf
|
|
53
|
+
onPositive: colorGlobal.white,
|
|
54
|
+
onPositiveVariant: colorGlobal.green60,
|
|
55
|
+
negative: colorGlobal.red50, // #da2c39
|
|
56
|
+
onNegative: colorGlobal.white,
|
|
57
|
+
warning: colorGlobal.orange30, // #ff8c2f
|
|
58
|
+
onWarning: colorGlobal.white,
|
|
59
|
+
outline: colorGlobal.gray50, // #74747d
|
|
60
|
+
outlineVariant: colorGlobal.gray10, // #e3e4e6
|
|
61
|
+
outlineInverse: colorGlobal.gray40,
|
|
62
|
+
theme: colorGlobal.white,
|
|
63
|
+
themeVariant: colorGlobal.gray05, // #f1f1f2
|
|
64
|
+
inverseTheme: colorGlobal.gray90,
|
|
65
|
+
primaryOnTheme: colorGlobal.gray90, // #181719
|
|
66
|
+
secondaryOnTheme: colorGlobal.gray60, // #5e5d64
|
|
67
|
+
primaryOnInverseTheme: colorGlobal.white,
|
|
68
|
+
secondaryOnInverseTheme: colorGlobal.gray20,
|
|
69
|
+
disabledBackground: colorGlobal.gray10, // #e3e4e6
|
|
70
|
+
disabledContent: colorGlobal.gray30, // #abacb2
|
|
71
|
+
disabledOutline: colorGlobal.gray20,
|
|
72
|
+
overlay: 'rgba(0, 0, 0, 0.4)',
|
|
73
|
+
overlayVariant: 'rgba(0, 0, 0, 0.16)',
|
|
74
|
+
skeleton: 'rgba(0, 0, 0, 0.1)',
|
|
75
|
+
};
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* VETC Design System — Spacing & Sizing Tokens
|
|
3
|
+
* Base unit: 4px
|
|
4
|
+
*/
|
|
5
|
+
export declare const spacing: {
|
|
6
|
+
readonly 0: "0px";
|
|
7
|
+
readonly 1: "1px";
|
|
8
|
+
readonly 2: "2px";
|
|
9
|
+
readonly 4: "4px";
|
|
10
|
+
readonly 6: "6px";
|
|
11
|
+
readonly 8: "8px";
|
|
12
|
+
readonly 10: "10px";
|
|
13
|
+
readonly 12: "12px";
|
|
14
|
+
readonly 14: "14px";
|
|
15
|
+
readonly 16: "16px";
|
|
16
|
+
readonly 20: "20px";
|
|
17
|
+
readonly 24: "24px";
|
|
18
|
+
readonly 32: "32px";
|
|
19
|
+
readonly 40: "40px";
|
|
20
|
+
readonly 48: "48px";
|
|
21
|
+
readonly 56: "56px";
|
|
22
|
+
readonly 64: "64px";
|
|
23
|
+
readonly 72: "72px";
|
|
24
|
+
readonly 80: "80px";
|
|
25
|
+
};
|
|
26
|
+
export declare const borderRadius: {
|
|
27
|
+
readonly none: "0px";
|
|
28
|
+
readonly xs: "4px";
|
|
29
|
+
readonly sm: "6px";
|
|
30
|
+
readonly md: "8px";
|
|
31
|
+
readonly lg: "12px";
|
|
32
|
+
readonly xl: "16px";
|
|
33
|
+
readonly '2xl': "24px";
|
|
34
|
+
readonly pill: "1000px";
|
|
35
|
+
};
|
|
36
|
+
/** Component height standards from Figma */
|
|
37
|
+
export declare const componentHeight: {
|
|
38
|
+
readonly buttonLg: "48px";
|
|
39
|
+
readonly buttonSm: "32px";
|
|
40
|
+
readonly input: "48px";
|
|
41
|
+
readonly navBar: "56px";
|
|
42
|
+
readonly bottomNav: "56px";
|
|
43
|
+
readonly tabBar: "56px";
|
|
44
|
+
readonly listItem: "56px";
|
|
45
|
+
readonly chip: "32px";
|
|
46
|
+
readonly chipSm: "24px";
|
|
47
|
+
readonly iconStd: "24px";
|
|
48
|
+
readonly iconSm: "20px";
|
|
49
|
+
};
|
|
50
|
+
/** Shadow tokens */
|
|
51
|
+
export declare const shadow: {
|
|
52
|
+
readonly none: "none";
|
|
53
|
+
readonly sm: "0 1px 4px rgba(0, 0, 0, 0.08)";
|
|
54
|
+
readonly md: "0 2px 8px rgba(0, 0, 0, 0.12)";
|
|
55
|
+
readonly lg: "0 4px 16px rgba(0, 0, 0, 0.16)";
|
|
56
|
+
};
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* VETC Design System — Spacing & Sizing Tokens
|
|
3
|
+
* Base unit: 4px
|
|
4
|
+
*/
|
|
5
|
+
export const spacing = {
|
|
6
|
+
0: '0px',
|
|
7
|
+
1: '1px',
|
|
8
|
+
2: '2px',
|
|
9
|
+
4: '4px',
|
|
10
|
+
6: '6px',
|
|
11
|
+
8: '8px',
|
|
12
|
+
10: '10px',
|
|
13
|
+
12: '12px',
|
|
14
|
+
14: '14px',
|
|
15
|
+
16: '16px',
|
|
16
|
+
20: '20px',
|
|
17
|
+
24: '24px',
|
|
18
|
+
32: '32px',
|
|
19
|
+
40: '40px',
|
|
20
|
+
48: '48px',
|
|
21
|
+
56: '56px',
|
|
22
|
+
64: '64px',
|
|
23
|
+
72: '72px',
|
|
24
|
+
80: '80px',
|
|
25
|
+
};
|
|
26
|
+
export const borderRadius = {
|
|
27
|
+
none: '0px',
|
|
28
|
+
xs: '4px',
|
|
29
|
+
sm: '6px',
|
|
30
|
+
md: '8px',
|
|
31
|
+
lg: '12px',
|
|
32
|
+
xl: '16px',
|
|
33
|
+
'2xl': '24px',
|
|
34
|
+
pill: '1000px',
|
|
35
|
+
};
|
|
36
|
+
/** Component height standards from Figma */
|
|
37
|
+
export const componentHeight = {
|
|
38
|
+
buttonLg: '48px',
|
|
39
|
+
buttonSm: '32px',
|
|
40
|
+
input: '48px',
|
|
41
|
+
navBar: '56px',
|
|
42
|
+
bottomNav: '56px',
|
|
43
|
+
tabBar: '56px',
|
|
44
|
+
listItem: '56px',
|
|
45
|
+
chip: '32px',
|
|
46
|
+
chipSm: '24px',
|
|
47
|
+
iconStd: '24px',
|
|
48
|
+
iconSm: '20px',
|
|
49
|
+
};
|
|
50
|
+
/** Shadow tokens */
|
|
51
|
+
export const shadow = {
|
|
52
|
+
none: 'none',
|
|
53
|
+
sm: '0 1px 4px rgba(0, 0, 0, 0.08)',
|
|
54
|
+
md: '0 2px 8px rgba(0, 0, 0, 0.12)',
|
|
55
|
+
lg: '0 4px 16px rgba(0, 0, 0, 0.16)',
|
|
56
|
+
};
|