@damarkuncoro/ui-library 0.0.1
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/LICENSE +21 -0
- package/README.md +122 -0
- package/lib/cjs/components/button/button-base.d.ts +3 -0
- package/lib/cjs/components/button/button-base.d.ts.map +1 -0
- package/lib/cjs/components/button/button-base.js +21 -0
- package/lib/cjs/components/button/button-base.js.map +1 -0
- package/lib/cjs/components/button/button-contract.d.ts +54 -0
- package/lib/cjs/components/button/button-contract.d.ts.map +1 -0
- package/lib/cjs/components/button/button-contract.js +32 -0
- package/lib/cjs/components/button/button-contract.js.map +1 -0
- package/lib/cjs/components/button/button-examples.d.ts +11 -0
- package/lib/cjs/components/button/button-examples.d.ts.map +1 -0
- package/lib/cjs/components/button/button-examples.js +67 -0
- package/lib/cjs/components/button/button-examples.js.map +1 -0
- package/lib/cjs/components/button/button-skin-contract.d.ts +133 -0
- package/lib/cjs/components/button/button-skin-contract.d.ts.map +1 -0
- package/lib/cjs/components/button/button-skin-contract.js +118 -0
- package/lib/cjs/components/button/button-skin-contract.js.map +1 -0
- package/lib/cjs/components/button/button-skin-native.d.ts +3 -0
- package/lib/cjs/components/button/button-skin-native.d.ts.map +1 -0
- package/lib/cjs/components/button/button-skin-native.js +62 -0
- package/lib/cjs/components/button/button-skin-native.js.map +1 -0
- package/lib/cjs/components/button/button-skin-tailwind.d.ts +15 -0
- package/lib/cjs/components/button/button-skin-tailwind.d.ts.map +1 -0
- package/lib/cjs/components/button/button-skin-tailwind.js +46 -0
- package/lib/cjs/components/button/button-skin-tailwind.js.map +1 -0
- package/lib/cjs/components/button/index.d.ts +8 -0
- package/lib/cjs/components/button/index.d.ts.map +1 -0
- package/lib/cjs/components/button/index.js +28 -0
- package/lib/cjs/components/button/index.js.map +1 -0
- package/lib/cjs/components/input/index.d.ts +8 -0
- package/lib/cjs/components/input/index.d.ts.map +1 -0
- package/lib/cjs/components/input/index.js +28 -0
- package/lib/cjs/components/input/index.js.map +1 -0
- package/lib/cjs/components/input/input-base.d.ts +9 -0
- package/lib/cjs/components/input/input-base.d.ts.map +1 -0
- package/lib/cjs/components/input/input-base.js +17 -0
- package/lib/cjs/components/input/input-base.js.map +1 -0
- package/lib/cjs/components/input/input-contract.d.ts +40 -0
- package/lib/cjs/components/input/input-contract.d.ts.map +1 -0
- package/lib/cjs/components/input/input-contract.js +32 -0
- package/lib/cjs/components/input/input-contract.js.map +1 -0
- package/lib/cjs/components/input/input-examples.d.ts +12 -0
- package/lib/cjs/components/input/input-examples.d.ts.map +1 -0
- package/lib/cjs/components/input/input-examples.js +67 -0
- package/lib/cjs/components/input/input-examples.js.map +1 -0
- package/lib/cjs/components/input/input-skin-contract.d.ts +93 -0
- package/lib/cjs/components/input/input-skin-contract.d.ts.map +1 -0
- package/lib/cjs/components/input/input-skin-contract.js +97 -0
- package/lib/cjs/components/input/input-skin-contract.js.map +1 -0
- package/lib/cjs/components/input/input-skin-native.d.ts +3 -0
- package/lib/cjs/components/input/input-skin-native.d.ts.map +1 -0
- package/lib/cjs/components/input/input-skin-native.js +68 -0
- package/lib/cjs/components/input/input-skin-native.js.map +1 -0
- package/lib/cjs/components/input/input-skin-tailwind.d.ts +18 -0
- package/lib/cjs/components/input/input-skin-tailwind.d.ts.map +1 -0
- package/lib/cjs/components/input/input-skin-tailwind.js +49 -0
- package/lib/cjs/components/input/input-skin-tailwind.js.map +1 -0
- package/lib/cjs/index.d.ts +4 -0
- package/lib/cjs/index.d.ts.map +1 -0
- package/lib/cjs/index.js +20 -0
- package/lib/cjs/index.js.map +1 -0
- package/lib/cjs/package.json +1 -0
- package/lib/cjs/test-setup.d.ts +2 -0
- package/lib/cjs/test-setup.d.ts.map +1 -0
- package/lib/cjs/test-setup.js +4 -0
- package/lib/cjs/test-setup.js.map +1 -0
- package/lib/cjs/theme/design-tokens.d.ts +200 -0
- package/lib/cjs/theme/design-tokens.d.ts.map +1 -0
- package/lib/cjs/theme/design-tokens.js +177 -0
- package/lib/cjs/theme/design-tokens.js.map +1 -0
- package/lib/cjs/theme/index.d.ts +3 -0
- package/lib/cjs/theme/index.d.ts.map +1 -0
- package/lib/cjs/theme/index.js +19 -0
- package/lib/cjs/theme/index.js.map +1 -0
- package/lib/cjs/theme/theme-provider.d.ts +16 -0
- package/lib/cjs/theme/theme-provider.d.ts.map +1 -0
- package/lib/cjs/theme/theme-provider.js +39 -0
- package/lib/cjs/theme/theme-provider.js.map +1 -0
- package/lib/cjs/usage-example.d.ts +2 -0
- package/lib/cjs/usage-example.d.ts.map +1 -0
- package/lib/cjs/usage-example.js +13 -0
- package/lib/cjs/usage-example.js.map +1 -0
- package/lib/esm/components/button/button-base.d.ts +3 -0
- package/lib/esm/components/button/button-base.d.ts.map +1 -0
- package/lib/esm/components/button/button-base.js +18 -0
- package/lib/esm/components/button/button-base.js.map +1 -0
- package/lib/esm/components/button/button-contract.d.ts +54 -0
- package/lib/esm/components/button/button-contract.d.ts.map +1 -0
- package/lib/esm/components/button/button-contract.js +29 -0
- package/lib/esm/components/button/button-contract.js.map +1 -0
- package/lib/esm/components/button/button-examples.d.ts +11 -0
- package/lib/esm/components/button/button-examples.d.ts.map +1 -0
- package/lib/esm/components/button/button-examples.js +52 -0
- package/lib/esm/components/button/button-examples.js.map +1 -0
- package/lib/esm/components/button/button-skin-contract.d.ts +133 -0
- package/lib/esm/components/button/button-skin-contract.d.ts.map +1 -0
- package/lib/esm/components/button/button-skin-contract.js +115 -0
- package/lib/esm/components/button/button-skin-contract.js.map +1 -0
- package/lib/esm/components/button/button-skin-native.d.ts +3 -0
- package/lib/esm/components/button/button-skin-native.d.ts.map +1 -0
- package/lib/esm/components/button/button-skin-native.js +59 -0
- package/lib/esm/components/button/button-skin-native.js.map +1 -0
- package/lib/esm/components/button/button-skin-tailwind.d.ts +15 -0
- package/lib/esm/components/button/button-skin-tailwind.d.ts.map +1 -0
- package/lib/esm/components/button/button-skin-tailwind.js +43 -0
- package/lib/esm/components/button/button-skin-tailwind.js.map +1 -0
- package/lib/esm/components/button/index.d.ts +8 -0
- package/lib/esm/components/button/index.d.ts.map +1 -0
- package/lib/esm/components/button/index.js +8 -0
- package/lib/esm/components/button/index.js.map +1 -0
- package/lib/esm/components/input/index.d.ts +8 -0
- package/lib/esm/components/input/index.d.ts.map +1 -0
- package/lib/esm/components/input/index.js +8 -0
- package/lib/esm/components/input/index.js.map +1 -0
- package/lib/esm/components/input/input-base.d.ts +9 -0
- package/lib/esm/components/input/input-base.d.ts.map +1 -0
- package/lib/esm/components/input/input-base.js +14 -0
- package/lib/esm/components/input/input-base.js.map +1 -0
- package/lib/esm/components/input/input-contract.d.ts +40 -0
- package/lib/esm/components/input/input-contract.d.ts.map +1 -0
- package/lib/esm/components/input/input-contract.js +29 -0
- package/lib/esm/components/input/input-contract.js.map +1 -0
- package/lib/esm/components/input/input-examples.d.ts +12 -0
- package/lib/esm/components/input/input-examples.d.ts.map +1 -0
- package/lib/esm/components/input/input-examples.js +51 -0
- package/lib/esm/components/input/input-examples.js.map +1 -0
- package/lib/esm/components/input/input-skin-contract.d.ts +93 -0
- package/lib/esm/components/input/input-skin-contract.d.ts.map +1 -0
- package/lib/esm/components/input/input-skin-contract.js +94 -0
- package/lib/esm/components/input/input-skin-contract.js.map +1 -0
- package/lib/esm/components/input/input-skin-native.d.ts +3 -0
- package/lib/esm/components/input/input-skin-native.d.ts.map +1 -0
- package/lib/esm/components/input/input-skin-native.js +65 -0
- package/lib/esm/components/input/input-skin-native.js.map +1 -0
- package/lib/esm/components/input/input-skin-tailwind.d.ts +18 -0
- package/lib/esm/components/input/input-skin-tailwind.d.ts.map +1 -0
- package/lib/esm/components/input/input-skin-tailwind.js +46 -0
- package/lib/esm/components/input/input-skin-tailwind.js.map +1 -0
- package/lib/esm/index.d.ts +4 -0
- package/lib/esm/index.d.ts.map +1 -0
- package/lib/esm/index.js +4 -0
- package/lib/esm/index.js.map +1 -0
- package/lib/esm/package.json +1 -0
- package/lib/esm/test-setup.d.ts +2 -0
- package/lib/esm/test-setup.d.ts.map +1 -0
- package/lib/esm/test-setup.js +2 -0
- package/lib/esm/test-setup.js.map +1 -0
- package/lib/esm/theme/design-tokens.d.ts +200 -0
- package/lib/esm/theme/design-tokens.d.ts.map +1 -0
- package/lib/esm/theme/design-tokens.js +174 -0
- package/lib/esm/theme/design-tokens.js.map +1 -0
- package/lib/esm/theme/index.d.ts +3 -0
- package/lib/esm/theme/index.d.ts.map +1 -0
- package/lib/esm/theme/index.js +3 -0
- package/lib/esm/theme/index.js.map +1 -0
- package/lib/esm/theme/theme-provider.d.ts +16 -0
- package/lib/esm/theme/theme-provider.d.ts.map +1 -0
- package/lib/esm/theme/theme-provider.js +34 -0
- package/lib/esm/theme/theme-provider.js.map +1 -0
- package/lib/esm/usage-example.d.ts +2 -0
- package/lib/esm/usage-example.d.ts.map +1 -0
- package/lib/esm/usage-example.js +10 -0
- package/lib/esm/usage-example.js.map +1 -0
- package/package.json +48 -0
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.tokens = exports.themes = exports.cssVars = exports.palette = void 0;
|
|
4
|
+
exports.palette = {
|
|
5
|
+
blue: {
|
|
6
|
+
400: '#60A5FA',
|
|
7
|
+
500: '#3B82F6',
|
|
8
|
+
600: '#2563EB',
|
|
9
|
+
700: '#1D4ED8',
|
|
10
|
+
800: '#1E40AF',
|
|
11
|
+
},
|
|
12
|
+
gray: {
|
|
13
|
+
50: '#F9FAFB',
|
|
14
|
+
100: '#F3F4F6',
|
|
15
|
+
200: '#E5E7EB',
|
|
16
|
+
300: '#D1D5DB',
|
|
17
|
+
400: '#9CA3AF',
|
|
18
|
+
500: '#6B7280',
|
|
19
|
+
600: '#4B5563',
|
|
20
|
+
700: '#374151',
|
|
21
|
+
800: '#1F2937',
|
|
22
|
+
900: '#111827',
|
|
23
|
+
},
|
|
24
|
+
red: {
|
|
25
|
+
400: '#F87171',
|
|
26
|
+
500: '#EF4444',
|
|
27
|
+
600: '#DC2626',
|
|
28
|
+
700: '#B91C1C',
|
|
29
|
+
900: '#7F1D1D',
|
|
30
|
+
},
|
|
31
|
+
white: '#FFFFFF',
|
|
32
|
+
black: '#000000',
|
|
33
|
+
transparent: 'transparent',
|
|
34
|
+
};
|
|
35
|
+
exports.cssVars = {
|
|
36
|
+
colors: {
|
|
37
|
+
primary: {
|
|
38
|
+
main: 'var(--color-primary-main)',
|
|
39
|
+
hover: 'var(--color-primary-hover)',
|
|
40
|
+
focus: 'var(--color-primary-focus)',
|
|
41
|
+
contrastText: 'var(--color-primary-contrast)',
|
|
42
|
+
},
|
|
43
|
+
secondary: {
|
|
44
|
+
main: 'var(--color-secondary-main)',
|
|
45
|
+
hover: 'var(--color-secondary-hover)',
|
|
46
|
+
focus: 'var(--color-secondary-focus)',
|
|
47
|
+
contrastText: 'var(--color-secondary-contrast)',
|
|
48
|
+
},
|
|
49
|
+
danger: {
|
|
50
|
+
main: 'var(--color-danger-main)',
|
|
51
|
+
hover: 'var(--color-danger-hover)',
|
|
52
|
+
focus: 'var(--color-danger-focus)',
|
|
53
|
+
contrastText: 'var(--color-danger-contrast)',
|
|
54
|
+
},
|
|
55
|
+
neutral: {
|
|
56
|
+
border: 'var(--color-neutral-border)',
|
|
57
|
+
text: 'var(--color-neutral-text)',
|
|
58
|
+
textSecondary: 'var(--color-neutral-text-secondary)',
|
|
59
|
+
bg: 'var(--color-neutral-bg)',
|
|
60
|
+
bgSurface: 'var(--color-neutral-bg-surface)',
|
|
61
|
+
}
|
|
62
|
+
},
|
|
63
|
+
shadows: {
|
|
64
|
+
focusRing: 'var(--shadow-focus-ring)',
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
exports.themes = {
|
|
68
|
+
light: {
|
|
69
|
+
'--color-primary-main': exports.palette.blue[600],
|
|
70
|
+
'--color-primary-hover': exports.palette.blue[700],
|
|
71
|
+
'--color-primary-focus': exports.palette.blue[500],
|
|
72
|
+
'--color-primary-contrast': exports.palette.white,
|
|
73
|
+
'--color-secondary-main': exports.palette.gray[100],
|
|
74
|
+
'--color-secondary-hover': exports.palette.gray[200],
|
|
75
|
+
'--color-secondary-focus': exports.palette.gray[500],
|
|
76
|
+
'--color-secondary-contrast': exports.palette.gray[900],
|
|
77
|
+
'--color-danger-main': exports.palette.red[600],
|
|
78
|
+
'--color-danger-hover': exports.palette.red[700],
|
|
79
|
+
'--color-danger-focus': exports.palette.red[500],
|
|
80
|
+
'--color-danger-contrast': exports.palette.white,
|
|
81
|
+
'--color-neutral-border': exports.palette.gray[300],
|
|
82
|
+
'--color-neutral-text': exports.palette.gray[700],
|
|
83
|
+
'--color-neutral-text-secondary': exports.palette.gray[500],
|
|
84
|
+
'--color-neutral-bg': exports.palette.gray[50],
|
|
85
|
+
'--color-neutral-bg-surface': exports.palette.white,
|
|
86
|
+
'--shadow-focus-ring': '0 0 0 2px',
|
|
87
|
+
},
|
|
88
|
+
dark: {
|
|
89
|
+
'--color-primary-main': exports.palette.blue[500],
|
|
90
|
+
'--color-primary-hover': exports.palette.blue[400],
|
|
91
|
+
'--color-primary-focus': exports.palette.blue[600],
|
|
92
|
+
'--color-primary-contrast': exports.palette.white,
|
|
93
|
+
'--color-secondary-main': exports.palette.gray[800],
|
|
94
|
+
'--color-secondary-hover': exports.palette.gray[700],
|
|
95
|
+
'--color-secondary-focus': exports.palette.gray[600],
|
|
96
|
+
'--color-secondary-contrast': exports.palette.gray[100],
|
|
97
|
+
'--color-danger-main': exports.palette.red[500],
|
|
98
|
+
'--color-danger-hover': exports.palette.red[400],
|
|
99
|
+
'--color-danger-focus': exports.palette.red[600],
|
|
100
|
+
'--color-danger-contrast': exports.palette.white,
|
|
101
|
+
'--color-neutral-border': exports.palette.gray[600],
|
|
102
|
+
'--color-neutral-text': exports.palette.gray[100],
|
|
103
|
+
'--color-neutral-text-secondary': exports.palette.gray[400],
|
|
104
|
+
'--color-neutral-bg': exports.palette.gray[900],
|
|
105
|
+
'--color-neutral-bg-surface': exports.palette.gray[800],
|
|
106
|
+
'--shadow-focus-ring': '0 0 0 2px',
|
|
107
|
+
}
|
|
108
|
+
};
|
|
109
|
+
exports.tokens = {
|
|
110
|
+
colors: {
|
|
111
|
+
...exports.cssVars.colors,
|
|
112
|
+
transparent: 'transparent',
|
|
113
|
+
white: '#FFFFFF',
|
|
114
|
+
black: '#000000',
|
|
115
|
+
},
|
|
116
|
+
shadows: exports.cssVars.shadows,
|
|
117
|
+
ui: {
|
|
118
|
+
outlineOffset: '2px',
|
|
119
|
+
outlineWidth: '2px',
|
|
120
|
+
},
|
|
121
|
+
borderRadius: {
|
|
122
|
+
sm: '4px',
|
|
123
|
+
md: '6px',
|
|
124
|
+
lg: '8px',
|
|
125
|
+
full: '9999px',
|
|
126
|
+
},
|
|
127
|
+
spacing: {
|
|
128
|
+
2: '8px',
|
|
129
|
+
3: '12px',
|
|
130
|
+
4: '16px',
|
|
131
|
+
6: '24px',
|
|
132
|
+
},
|
|
133
|
+
sizing: {
|
|
134
|
+
8: '32px',
|
|
135
|
+
10: '40px',
|
|
136
|
+
12: '48px',
|
|
137
|
+
icon: {
|
|
138
|
+
sm: '14px',
|
|
139
|
+
md: '16px',
|
|
140
|
+
lg: '20px',
|
|
141
|
+
},
|
|
142
|
+
},
|
|
143
|
+
typography: {
|
|
144
|
+
fontFamily: {
|
|
145
|
+
sans: 'ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif',
|
|
146
|
+
mono: 'ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace',
|
|
147
|
+
},
|
|
148
|
+
fontSize: {
|
|
149
|
+
xs: '0.75rem',
|
|
150
|
+
sm: '0.875rem',
|
|
151
|
+
base: '1rem',
|
|
152
|
+
lg: '1.125rem',
|
|
153
|
+
xl: '1.25rem',
|
|
154
|
+
},
|
|
155
|
+
fontWeight: {
|
|
156
|
+
normal: '400',
|
|
157
|
+
medium: '500',
|
|
158
|
+
semibold: '600',
|
|
159
|
+
bold: '700',
|
|
160
|
+
},
|
|
161
|
+
lineHeight: {
|
|
162
|
+
none: '1',
|
|
163
|
+
tight: '1.25',
|
|
164
|
+
snug: '1.375',
|
|
165
|
+
normal: '1.5',
|
|
166
|
+
relaxed: '1.625',
|
|
167
|
+
loose: '2',
|
|
168
|
+
}
|
|
169
|
+
},
|
|
170
|
+
opacity: {
|
|
171
|
+
disabled: '0.5',
|
|
172
|
+
},
|
|
173
|
+
transition: {
|
|
174
|
+
base: 'all 0.2s ease',
|
|
175
|
+
}
|
|
176
|
+
};
|
|
177
|
+
//# sourceMappingURL=design-tokens.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"design-tokens.js","sourceRoot":"","sources":["../../../src/theme/design-tokens.ts"],"names":[],"mappings":";;;AAIa,QAAA,OAAO,GAAG;IACrB,IAAI,EAAE;QACJ,GAAG,EAAE,SAAS;QACd,GAAG,EAAE,SAAS;QACd,GAAG,EAAE,SAAS;QACd,GAAG,EAAE,SAAS;QACd,GAAG,EAAE,SAAS;KACf;IACD,IAAI,EAAE;QACJ,EAAE,EAAE,SAAS;QACb,GAAG,EAAE,SAAS;QACd,GAAG,EAAE,SAAS;QACd,GAAG,EAAE,SAAS;QACd,GAAG,EAAE,SAAS;QACd,GAAG,EAAE,SAAS;QACd,GAAG,EAAE,SAAS;QACd,GAAG,EAAE,SAAS;QACd,GAAG,EAAE,SAAS;QACd,GAAG,EAAE,SAAS;KACf;IACD,GAAG,EAAE;QACH,GAAG,EAAE,SAAS;QACd,GAAG,EAAE,SAAS;QACd,GAAG,EAAE,SAAS;QACd,GAAG,EAAE,SAAS;QACd,GAAG,EAAE,SAAS;KACf;IACD,KAAK,EAAE,SAAS;IAChB,KAAK,EAAE,SAAS;IAChB,WAAW,EAAE,aAAa;CAClB,CAAC;AAGE,QAAA,OAAO,GAAG;IACrB,MAAM,EAAE;QACN,OAAO,EAAE;YACP,IAAI,EAAE,2BAA2B;YACjC,KAAK,EAAE,4BAA4B;YACnC,KAAK,EAAE,4BAA4B;YACnC,YAAY,EAAE,+BAA+B;SAC9C;QACD,SAAS,EAAE;YACT,IAAI,EAAE,6BAA6B;YACnC,KAAK,EAAE,8BAA8B;YACrC,KAAK,EAAE,8BAA8B;YACrC,YAAY,EAAE,iCAAiC;SAChD;QACD,MAAM,EAAE;YACN,IAAI,EAAE,0BAA0B;YAChC,KAAK,EAAE,2BAA2B;YAClC,KAAK,EAAE,2BAA2B;YAClC,YAAY,EAAE,8BAA8B;SAC7C;QACD,OAAO,EAAE;YACP,MAAM,EAAE,6BAA6B;YACrC,IAAI,EAAE,2BAA2B;YACjC,aAAa,EAAE,qCAAqC;YACpD,EAAE,EAAE,yBAAyB;YAC7B,SAAS,EAAE,iCAAiC;SAC7C;KACF;IACD,OAAO,EAAE;QACP,SAAS,EAAE,0BAA0B;KACtC;CACO,CAAC;AAGE,QAAA,MAAM,GAAG;IACpB,KAAK,EAAE;QAEL,sBAAsB,EAAE,eAAO,CAAC,IAAI,CAAC,GAAG,CAAC;QACzC,uBAAuB,EAAE,eAAO,CAAC,IAAI,CAAC,GAAG,CAAC;QAC1C,uBAAuB,EAAE,eAAO,CAAC,IAAI,CAAC,GAAG,CAAC;QAC1C,0BAA0B,EAAE,eAAO,CAAC,KAAK;QAGzC,wBAAwB,EAAE,eAAO,CAAC,IAAI,CAAC,GAAG,CAAC;QAC3C,yBAAyB,EAAE,eAAO,CAAC,IAAI,CAAC,GAAG,CAAC;QAC5C,yBAAyB,EAAE,eAAO,CAAC,IAAI,CAAC,GAAG,CAAC;QAC5C,4BAA4B,EAAE,eAAO,CAAC,IAAI,CAAC,GAAG,CAAC;QAG/C,qBAAqB,EAAE,eAAO,CAAC,GAAG,CAAC,GAAG,CAAC;QACvC,sBAAsB,EAAE,eAAO,CAAC,GAAG,CAAC,GAAG,CAAC;QACxC,sBAAsB,EAAE,eAAO,CAAC,GAAG,CAAC,GAAG,CAAC;QACxC,yBAAyB,EAAE,eAAO,CAAC,KAAK;QAGxC,wBAAwB,EAAE,eAAO,CAAC,IAAI,CAAC,GAAG,CAAC;QAC3C,sBAAsB,EAAE,eAAO,CAAC,IAAI,CAAC,GAAG,CAAC;QACzC,gCAAgC,EAAE,eAAO,CAAC,IAAI,CAAC,GAAG,CAAC;QACnD,oBAAoB,EAAE,eAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACtC,4BAA4B,EAAE,eAAO,CAAC,KAAK;QAG3C,qBAAqB,EAAE,WAAW;KACnC;IACD,IAAI,EAAE;QAEJ,sBAAsB,EAAE,eAAO,CAAC,IAAI,CAAC,GAAG,CAAC;QACzC,uBAAuB,EAAE,eAAO,CAAC,IAAI,CAAC,GAAG,CAAC;QAC1C,uBAAuB,EAAE,eAAO,CAAC,IAAI,CAAC,GAAG,CAAC;QAC1C,0BAA0B,EAAE,eAAO,CAAC,KAAK;QAGzC,wBAAwB,EAAE,eAAO,CAAC,IAAI,CAAC,GAAG,CAAC;QAC3C,yBAAyB,EAAE,eAAO,CAAC,IAAI,CAAC,GAAG,CAAC;QAC5C,yBAAyB,EAAE,eAAO,CAAC,IAAI,CAAC,GAAG,CAAC;QAC5C,4BAA4B,EAAE,eAAO,CAAC,IAAI,CAAC,GAAG,CAAC;QAG/C,qBAAqB,EAAE,eAAO,CAAC,GAAG,CAAC,GAAG,CAAC;QACvC,sBAAsB,EAAE,eAAO,CAAC,GAAG,CAAC,GAAG,CAAC;QACxC,sBAAsB,EAAE,eAAO,CAAC,GAAG,CAAC,GAAG,CAAC;QACxC,yBAAyB,EAAE,eAAO,CAAC,KAAK;QAGxC,wBAAwB,EAAE,eAAO,CAAC,IAAI,CAAC,GAAG,CAAC;QAC3C,sBAAsB,EAAE,eAAO,CAAC,IAAI,CAAC,GAAG,CAAC;QACzC,gCAAgC,EAAE,eAAO,CAAC,IAAI,CAAC,GAAG,CAAC;QACnD,oBAAoB,EAAE,eAAO,CAAC,IAAI,CAAC,GAAG,CAAC;QACvC,4BAA4B,EAAE,eAAO,CAAC,IAAI,CAAC,GAAG,CAAC;QAG/C,qBAAqB,EAAE,WAAW;KACnC;CACF,CAAC;AAIW,QAAA,MAAM,GAAG;IACpB,MAAM,EAAE;QACN,GAAG,eAAO,CAAC,MAAM;QACjB,WAAW,EAAE,aAAa;QAC1B,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,SAAS;KACjB;IACD,OAAO,EAAE,eAAO,CAAC,OAAO;IAGxB,EAAE,EAAE;QACF,aAAa,EAAE,KAAK;QACpB,YAAY,EAAE,KAAK;KACpB;IAGD,YAAY,EAAE;QACZ,EAAE,EAAE,KAAK;QACT,EAAE,EAAE,KAAK;QACT,EAAE,EAAE,KAAK;QACT,IAAI,EAAE,QAAQ;KACf;IACD,OAAO,EAAE;QACP,CAAC,EAAE,KAAK;QACR,CAAC,EAAE,MAAM;QACT,CAAC,EAAE,MAAM;QACT,CAAC,EAAE,MAAM;KACV;IACD,MAAM,EAAE;QACN,CAAC,EAAE,MAAM;QACT,EAAE,EAAE,MAAM;QACV,EAAE,EAAE,MAAM;QACV,IAAI,EAAE;YACJ,EAAE,EAAE,MAAM;YACV,EAAE,EAAE,MAAM;YACV,EAAE,EAAE,MAAM;SACX;KACF;IACD,UAAU,EAAE;QACV,UAAU,EAAE;YACV,IAAI,EAAE,sHAAsH;YAC5H,IAAI,EAAE,oGAAoG;SAC3G;QACD,QAAQ,EAAE;YACR,EAAE,EAAE,SAAS;YACb,EAAE,EAAE,UAAU;YACd,IAAI,EAAE,MAAM;YACZ,EAAE,EAAE,UAAU;YACd,EAAE,EAAE,SAAS;SACd;QACD,UAAU,EAAE;YACV,MAAM,EAAE,KAAK;YACb,MAAM,EAAE,KAAK;YACb,QAAQ,EAAE,KAAK;YACf,IAAI,EAAE,KAAK;SACZ;QACD,UAAU,EAAE;YACV,IAAI,EAAE,GAAG;YACT,KAAK,EAAE,MAAM;YACb,IAAI,EAAE,OAAO;YACb,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,OAAO;YAChB,KAAK,EAAE,GAAG;SACX;KACF;IACD,OAAO,EAAE;QACP,QAAQ,EAAE,KAAK;KAChB;IACD,UAAU,EAAE;QACV,IAAI,EAAE,eAAe;KACtB;CACO,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/theme/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./design-tokens"), exports);
|
|
18
|
+
__exportStar(require("./theme-provider"), exports);
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/theme/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAAgC;AAChC,mDAAiC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import React, { ReactNode } from 'react';
|
|
2
|
+
type ThemeMode = 'light' | 'dark';
|
|
3
|
+
interface ThemeContextType {
|
|
4
|
+
mode: ThemeMode;
|
|
5
|
+
setMode: (mode: ThemeMode) => void;
|
|
6
|
+
toggleMode: () => void;
|
|
7
|
+
}
|
|
8
|
+
interface ThemeProviderProps {
|
|
9
|
+
children: ReactNode;
|
|
10
|
+
defaultMode?: ThemeMode;
|
|
11
|
+
themeOverrides?: Partial<Record<ThemeMode, Record<string, string>>>;
|
|
12
|
+
}
|
|
13
|
+
export declare const ThemeProvider: React.FC<ThemeProviderProps>;
|
|
14
|
+
export declare const useTheme: () => ThemeContextType;
|
|
15
|
+
export {};
|
|
16
|
+
//# sourceMappingURL=theme-provider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme-provider.d.ts","sourceRoot":"","sources":["../../../src/theme/theme-provider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAkD,SAAS,EAAE,MAAM,OAAO,CAAC;AAGzF,KAAK,SAAS,GAAG,OAAO,GAAG,MAAM,CAAC;AAElC,UAAU,gBAAgB;IACxB,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,CAAC;IACnC,UAAU,EAAE,MAAM,IAAI,CAAC;CACxB;AAID,UAAU,kBAAkB;IAC1B,QAAQ,EAAE,SAAS,CAAC;IACpB,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,cAAc,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;CACrE;AAED,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAsCtD,CAAC;AAEF,eAAO,MAAM,QAAQ,QAAO,gBAM3B,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useTheme = exports.ThemeProvider = void 0;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const react_1 = require("react");
|
|
6
|
+
const design_tokens_1 = require("./design-tokens");
|
|
7
|
+
const ThemeContext = (0, react_1.createContext)(undefined);
|
|
8
|
+
const ThemeProvider = ({ children, defaultMode = 'light', themeOverrides = {} }) => {
|
|
9
|
+
const [mode, setMode] = (0, react_1.useState)(defaultMode);
|
|
10
|
+
(0, react_1.useEffect)(() => {
|
|
11
|
+
const root = document.documentElement;
|
|
12
|
+
const defaultThemeValues = design_tokens_1.themes[mode];
|
|
13
|
+
const overrideValues = themeOverrides[mode] || {};
|
|
14
|
+
const finalThemeValues = { ...defaultThemeValues, ...overrideValues };
|
|
15
|
+
Object.entries(finalThemeValues).forEach(([key, value]) => {
|
|
16
|
+
root.style.setProperty(key, value);
|
|
17
|
+
});
|
|
18
|
+
if (mode === 'dark') {
|
|
19
|
+
root.classList.add('dark');
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
root.classList.remove('dark');
|
|
23
|
+
}
|
|
24
|
+
}, [mode]);
|
|
25
|
+
const toggleMode = () => {
|
|
26
|
+
setMode((prev) => (prev === 'light' ? 'dark' : 'light'));
|
|
27
|
+
};
|
|
28
|
+
return ((0, jsx_runtime_1.jsx)(ThemeContext.Provider, { value: { mode, setMode, toggleMode }, children: children }));
|
|
29
|
+
};
|
|
30
|
+
exports.ThemeProvider = ThemeProvider;
|
|
31
|
+
const useTheme = () => {
|
|
32
|
+
const context = (0, react_1.useContext)(ThemeContext);
|
|
33
|
+
if (!context) {
|
|
34
|
+
throw new Error('useTheme must be used within a ThemeProvider');
|
|
35
|
+
}
|
|
36
|
+
return context;
|
|
37
|
+
};
|
|
38
|
+
exports.useTheme = useTheme;
|
|
39
|
+
//# sourceMappingURL=theme-provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme-provider.js","sourceRoot":"","sources":["../../../src/theme/theme-provider.tsx"],"names":[],"mappings":";;;;AAAA,iCAAyF;AACzF,mDAAyC;AAUzC,MAAM,YAAY,GAAG,IAAA,qBAAa,EAA+B,SAAS,CAAC,CAAC;AAQrE,MAAM,aAAa,GAAiC,CAAC,EAC1D,QAAQ,EACR,WAAW,GAAG,OAAO,EACrB,cAAc,GAAG,EAAE,EACpB,EAAE,EAAE;IACH,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,IAAA,gBAAQ,EAAY,WAAW,CAAC,CAAC;IAGzD,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,MAAM,IAAI,GAAG,QAAQ,CAAC,eAAe,CAAC;QACtC,MAAM,kBAAkB,GAAG,sBAAM,CAAC,IAAI,CAAC,CAAC;QACxC,MAAM,cAAc,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QAElD,MAAM,gBAAgB,GAAG,EAAE,GAAG,kBAAkB,EAAE,GAAG,cAAc,EAAE,CAAC;QAEtE,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;YACxD,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;QAIH,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;YACpB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC7B,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAChC,CAAC;IAEH,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAEX,MAAM,UAAU,GAAG,GAAG,EAAE;QACtB,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IAC3D,CAAC,CAAC;IAEF,OAAO,CACL,uBAAC,YAAY,CAAC,QAAQ,IAAC,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,YACxD,QAAQ,GACa,CACzB,CAAC;AACJ,CAAC,CAAC;AAtCW,QAAA,aAAa,iBAsCxB;AAEK,MAAM,QAAQ,GAAG,GAAqB,EAAE;IAC7C,MAAM,OAAO,GAAG,IAAA,kBAAU,EAAC,YAAY,CAAC,CAAC;IACzC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;IAClE,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AANW,QAAA,QAAQ,YAMnB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usage-example.d.ts","sourceRoot":"","sources":["../../src/usage-example.tsx"],"names":[],"mappings":"AAwFA,wBAAgB,GAAG,4CAMlB"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.App = App;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const index_1 = require("./index");
|
|
6
|
+
const DemoContent = () => {
|
|
7
|
+
const { mode, toggleMode } = (0, index_1.useTheme)();
|
|
8
|
+
return ((0, jsx_runtime_1.jsx)("div", { className: `min-h-screen p-8 transition-colors duration-300 ${mode === 'dark' ? 'bg-gray-900 text-white' : 'bg-gray-50 text-gray-900'}`, children: (0, jsx_runtime_1.jsxs)("div", { className: "max-w-3xl mx-auto space-y-12", children: [(0, jsx_runtime_1.jsxs)("header", { className: "flex items-center justify-between border-b border-gray-200 pb-6 dark:border-gray-700", children: [(0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)("h1", { className: "text-3xl font-bold", children: "UI Library Demo" }), (0, jsx_runtime_1.jsxs)("p", { className: "mt-2 text-gray-500 dark:text-gray-400", children: ["Powered by ", (0, jsx_runtime_1.jsx)("span", { className: "font-semibold text-primary-main", children: "Global Design Tokens" }), " \u2022 Current Theme: ", (0, jsx_runtime_1.jsx)("span", { className: "font-mono font-bold uppercase", children: mode })] })] }), (0, jsx_runtime_1.jsx)(index_1.Button, { onClick: toggleMode, variant: "outline", children: mode === 'light' ? '🌙 Switch to Dark' : '☀️ Switch to Light' })] }), (0, jsx_runtime_1.jsxs)("section", { className: "space-y-4", children: [(0, jsx_runtime_1.jsx)("h2", { className: "text-xl font-semibold", children: "1. Buttons (Themed)" }), (0, jsx_runtime_1.jsx)("p", { className: "text-gray-600 dark:text-gray-400", children: "These buttons automatically adapt to the current theme colors." }), (0, jsx_runtime_1.jsxs)("div", { className: "space-y-4 p-6 bg-white rounded-lg shadow-sm border border-gray-100 dark:bg-gray-800 dark:border-gray-700", children: [(0, jsx_runtime_1.jsxs)("div", { className: "flex flex-wrap gap-4 items-center", children: [(0, jsx_runtime_1.jsx)(index_1.Button, { variant: "primary", children: "Primary" }), (0, jsx_runtime_1.jsx)(index_1.Button, { variant: "secondary", children: "Secondary" }), (0, jsx_runtime_1.jsx)(index_1.Button, { variant: "outline", children: "Outline" }), (0, jsx_runtime_1.jsx)(index_1.Button, { variant: "ghost", children: "Ghost" }), (0, jsx_runtime_1.jsx)(index_1.Button, { variant: "danger", children: "Danger" }), (0, jsx_runtime_1.jsx)(index_1.Button, { variant: "primary", disabled: true, children: "Disabled" }), (0, jsx_runtime_1.jsx)(index_1.Button, { variant: "primary", isLoading: true, children: "Loading" })] }), (0, jsx_runtime_1.jsxs)("div", { className: "flex flex-wrap gap-4 items-center border-t border-gray-100 dark:border-gray-700 pt-4", children: [(0, jsx_runtime_1.jsx)("span", { className: "text-sm text-gray-500 w-full sm:w-auto", children: "Sizes:" }), (0, jsx_runtime_1.jsx)(index_1.Button, { variant: "primary", size: "sm", children: "Small" }), (0, jsx_runtime_1.jsx)(index_1.Button, { variant: "primary", size: "md", children: "Medium" }), (0, jsx_runtime_1.jsx)(index_1.Button, { variant: "primary", size: "lg", children: "Large" })] })] })] }), (0, jsx_runtime_1.jsxs)("section", { className: "space-y-4", children: [(0, jsx_runtime_1.jsx)("h2", { className: "text-xl font-semibold", children: "2. Inputs (Themed)" }), (0, jsx_runtime_1.jsx)("p", { className: "text-gray-600 dark:text-gray-400", children: "Inputs with support for icons and validation states." }), (0, jsx_runtime_1.jsxs)("div", { className: "space-y-6 p-6 bg-white rounded-lg shadow-sm border border-gray-100 dark:bg-gray-800 dark:border-gray-700", children: [(0, jsx_runtime_1.jsxs)("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-6", children: [(0, jsx_runtime_1.jsx)(index_1.Input, { placeholder: "Default Input" }), (0, jsx_runtime_1.jsx)(index_1.Input, { placeholder: "Filled Input", variant: "filled" }), (0, jsx_runtime_1.jsx)(index_1.Input, { placeholder: "Flushed Input", variant: "flushed" }), (0, jsx_runtime_1.jsx)(index_1.Input, { placeholder: "Invalid Input", isInvalid: true }), (0, jsx_runtime_1.jsx)(index_1.Input, { placeholder: "With Left Icon", leftIcon: (0, jsx_runtime_1.jsx)("span", { children: "\uD83D\uDD0D" }) }), (0, jsx_runtime_1.jsx)(index_1.Input, { placeholder: "With Right Icon", rightIcon: (0, jsx_runtime_1.jsx)("span", { children: "\uD83D\uDC41\uFE0F" }) }), (0, jsx_runtime_1.jsx)(index_1.Input, { placeholder: "Disabled Input", disabled: true })] }), (0, jsx_runtime_1.jsxs)("div", { className: "border-t border-gray-100 dark:border-gray-700 pt-4", children: [(0, jsx_runtime_1.jsx)("span", { className: "block mb-4 text-sm text-gray-500", children: "Sizes:" }), (0, jsx_runtime_1.jsxs)("div", { className: "grid grid-cols-1 md:grid-cols-3 gap-6", children: [(0, jsx_runtime_1.jsx)(index_1.Input, { placeholder: "Small Input", size: "sm" }), (0, jsx_runtime_1.jsx)(index_1.Input, { placeholder: "Medium Input", size: "md" }), (0, jsx_runtime_1.jsx)(index_1.Input, { placeholder: "Large Input", size: "lg" })] })] })] })] }), (0, jsx_runtime_1.jsxs)("section", { className: "space-y-4", children: [(0, jsx_runtime_1.jsx)("h2", { className: "text-xl font-semibold", children: "3. Native Components" }), (0, jsx_runtime_1.jsx)("p", { className: "text-gray-600 dark:text-gray-400", children: "Framework-agnostic components using inline styles." }), (0, jsx_runtime_1.jsxs)("div", { className: "flex flex-wrap gap-4 items-center p-6 bg-white rounded-lg shadow-sm border border-gray-100 dark:bg-gray-800 dark:border-gray-700", children: [(0, jsx_runtime_1.jsx)(index_1.ButtonNative, { variant: "primary", children: "Native Primary" }), (0, jsx_runtime_1.jsx)(index_1.ButtonNative, { variant: "outline", children: "Native Outline" })] })] })] }) }));
|
|
9
|
+
};
|
|
10
|
+
function App() {
|
|
11
|
+
return ((0, jsx_runtime_1.jsx)(index_1.ThemeProvider, { defaultMode: "light", children: (0, jsx_runtime_1.jsx)(DemoContent, {}) }));
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=usage-example.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usage-example.js","sourceRoot":"","sources":["../../src/usage-example.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"button-base.d.ts","sourceRoot":"","sources":["../../../../src/components/button/button-base.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAanD,eAAO,MAAM,UAAU,8GAuEtB,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { forwardRef } from 'react';
|
|
3
|
+
import { buttonSkinContractDef } from './button-skin-contract';
|
|
4
|
+
export const ButtonBase = forwardRef(({ children, disabled, isLoading, leftIcon, rightIcon, type = 'button', className, ...props }, ref) => {
|
|
5
|
+
const isDisabled = disabled || isLoading;
|
|
6
|
+
const handleKeyDown = (event) => {
|
|
7
|
+
if (isDisabled)
|
|
8
|
+
return;
|
|
9
|
+
if (event.key === 'Enter' || event.key === ' ') {
|
|
10
|
+
event.preventDefault();
|
|
11
|
+
event.currentTarget.click();
|
|
12
|
+
}
|
|
13
|
+
props.onKeyDown?.(event);
|
|
14
|
+
};
|
|
15
|
+
return (_jsxs("button", { ref: ref, type: type, disabled: isDisabled, "aria-disabled": isDisabled, "aria-busy": isLoading, className: className, onKeyDown: handleKeyDown, ...props, children: [isLoading && (_jsx("span", { className: "button-loader-wrapper", "aria-hidden": "true", children: _jsx("span", { className: "button-loader" }) })), !isLoading && leftIcon && (_jsx("span", { className: "button-icon-left", "aria-hidden": buttonSkinContractDef.icons.ariaHidden, children: leftIcon })), _jsx("span", { className: "button-content", children: children }), !isLoading && rightIcon && (_jsx("span", { className: "button-icon-right", "aria-hidden": buttonSkinContractDef.icons.ariaHidden, children: rightIcon }))] }));
|
|
16
|
+
});
|
|
17
|
+
ButtonBase.displayName = 'ButtonBase';
|
|
18
|
+
//# sourceMappingURL=button-base.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"button-base.js","sourceRoot":"","sources":["../../../../src/components/button/button-base.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAEnC,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAY/D,MAAM,CAAC,MAAM,UAAU,GAAG,UAAU,CAClC,CACE,EACE,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,SAAS,EACT,IAAI,GAAG,QAAQ,EACf,SAAS,EACT,GAAG,KAAK,EACT,EACD,GAAG,EACH,EAAE;IAEF,MAAM,UAAU,GAAG,QAAQ,IAAI,SAAS,CAAC;IAGzC,MAAM,aAAa,GAAG,CAAC,KAA6C,EAAE,EAAE;QACtE,IAAI,UAAU;YAAE,OAAO;QAGvB,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG,EAAE,CAAC;YAC/C,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;QAC9B,CAAC;QAGD,KAAK,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC,CAAC;IAEF,OAAO,CACL,kBACE,GAAG,EAAE,GAAG,EACR,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,UAAU,mBACL,UAAU,eACd,SAAS,EACpB,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE,aAAa,KACpB,KAAK,aAER,SAAS,IAAI,CACZ,eAAM,SAAS,EAAC,uBAAuB,iBAAa,MAAM,YAExD,eAAM,SAAS,EAAC,eAAe,GAAG,GAC7B,CACR,EAEA,CAAC,SAAS,IAAI,QAAQ,IAAI,CACzB,eACE,SAAS,EAAC,kBAAkB,iBACf,qBAAqB,CAAC,KAAK,CAAC,UAAU,YAElD,QAAQ,GACJ,CACR,EAED,eAAM,SAAS,EAAC,gBAAgB,YAAE,QAAQ,GAAQ,EAEjD,CAAC,SAAS,IAAI,SAAS,IAAI,CAC1B,eACE,SAAS,EAAC,mBAAmB,iBAChB,qBAAqB,CAAC,KAAK,CAAC,UAAU,YAElD,SAAS,GACL,CACR,IACM,CACV,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,UAAU,CAAC,WAAW,GAAG,YAAY,CAAC"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { ReactNode, ButtonHTMLAttributes } from 'react';
|
|
2
|
+
export declare const buttonContractDef: {
|
|
3
|
+
readonly id: "contract_button_v1";
|
|
4
|
+
readonly name: "button";
|
|
5
|
+
readonly category: "ui.component";
|
|
6
|
+
readonly description: "A button component with various variants and sizes";
|
|
7
|
+
readonly variants: readonly [{
|
|
8
|
+
readonly name: "variant";
|
|
9
|
+
readonly type: "intent";
|
|
10
|
+
readonly values: readonly ["primary", "secondary", "outline", "ghost", "danger"];
|
|
11
|
+
readonly defaultValue: "primary";
|
|
12
|
+
readonly description: "Visual style of the button";
|
|
13
|
+
}, {
|
|
14
|
+
readonly name: "size";
|
|
15
|
+
readonly type: "size";
|
|
16
|
+
readonly values: readonly ["sm", "md", "lg"];
|
|
17
|
+
readonly defaultValue: "md";
|
|
18
|
+
readonly description: "Size of the button";
|
|
19
|
+
}];
|
|
20
|
+
readonly props: readonly [{
|
|
21
|
+
readonly name: "children";
|
|
22
|
+
readonly type: "object";
|
|
23
|
+
readonly required: true;
|
|
24
|
+
}, {
|
|
25
|
+
readonly name: "isLoading";
|
|
26
|
+
readonly type: "boolean";
|
|
27
|
+
readonly required: false;
|
|
28
|
+
readonly defaultValue: false;
|
|
29
|
+
}, {
|
|
30
|
+
readonly name: "leftIcon";
|
|
31
|
+
readonly type: "object";
|
|
32
|
+
readonly required: false;
|
|
33
|
+
}, {
|
|
34
|
+
readonly name: "rightIcon";
|
|
35
|
+
readonly type: "object";
|
|
36
|
+
readonly required: false;
|
|
37
|
+
}];
|
|
38
|
+
};
|
|
39
|
+
type ExtractValues<T, Name> = T extends ReadonlyArray<infer U> ? U extends {
|
|
40
|
+
name: Name;
|
|
41
|
+
values: ReadonlyArray<infer V>;
|
|
42
|
+
} ? V : never : never;
|
|
43
|
+
export type ButtonVariant = ExtractValues<typeof buttonContractDef.variants, "variant">;
|
|
44
|
+
export type ButtonSize = ExtractValues<typeof buttonContractDef.variants, "size">;
|
|
45
|
+
export interface ButtonContract extends ButtonHTMLAttributes<HTMLButtonElement> {
|
|
46
|
+
children: ReactNode;
|
|
47
|
+
variant?: ButtonVariant;
|
|
48
|
+
size?: ButtonSize;
|
|
49
|
+
isLoading?: boolean;
|
|
50
|
+
leftIcon?: ReactNode;
|
|
51
|
+
rightIcon?: ReactNode;
|
|
52
|
+
}
|
|
53
|
+
export {};
|
|
54
|
+
//# sourceMappingURL=button-contract.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"button-contract.d.ts","sourceRoot":"","sources":["../../../../src/components/button/button-contract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,OAAO,CAAC;AAMxD,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2BpB,CAAC;AAoBX,KAAK,aAAa,CAAC,CAAC,EAAE,IAAI,IAAI,CAAC,SAAS,aAAa,CAAC,MAAM,CAAC,CAAC,GAC1D,CAAC,SAAS;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC,CAAA;CAAE,GAAG,CAAC,GAAG,KAAK,GAAG,KAAK,CAAC;AAMjF,MAAM,MAAM,aAAa,GAAG,aAAa,CAAC,OAAO,iBAAiB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;AAMxF,MAAM,MAAM,UAAU,GAAG,aAAa,CAAC,OAAO,iBAAiB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AAKlF,MAAM,WAAW,cAAe,SAAQ,oBAAoB,CAAC,iBAAiB,CAAC;IAI7E,QAAQ,EAAE,SAAS,CAAC;IAMpB,OAAO,CAAC,EAAE,aAAa,CAAC;IAMxB,IAAI,CAAC,EAAE,UAAU,CAAC;IAKlB,SAAS,CAAC,EAAE,OAAO,CAAC;IAKpB,QAAQ,CAAC,EAAE,SAAS,CAAC;IAKrB,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
export const buttonContractDef = {
|
|
2
|
+
id: "contract_button_v1",
|
|
3
|
+
name: "button",
|
|
4
|
+
category: "ui.component",
|
|
5
|
+
description: "A button component with various variants and sizes",
|
|
6
|
+
variants: [
|
|
7
|
+
{
|
|
8
|
+
name: "variant",
|
|
9
|
+
type: "intent",
|
|
10
|
+
values: ["primary", "secondary", "outline", "ghost", "danger"],
|
|
11
|
+
defaultValue: "primary",
|
|
12
|
+
description: "Visual style of the button"
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
name: "size",
|
|
16
|
+
type: "size",
|
|
17
|
+
values: ["sm", "md", "lg"],
|
|
18
|
+
defaultValue: "md",
|
|
19
|
+
description: "Size of the button"
|
|
20
|
+
}
|
|
21
|
+
],
|
|
22
|
+
props: [
|
|
23
|
+
{ name: "children", type: "object", required: true },
|
|
24
|
+
{ name: "isLoading", type: "boolean", required: false, defaultValue: false },
|
|
25
|
+
{ name: "leftIcon", type: "object", required: false },
|
|
26
|
+
{ name: "rightIcon", type: "object", required: false }
|
|
27
|
+
]
|
|
28
|
+
};
|
|
29
|
+
//# sourceMappingURL=button-contract.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"button-contract.js","sourceRoot":"","sources":["../../../../src/components/button/button-contract.ts"],"names":[],"mappings":"AAMA,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,EAAE,EAAE,oBAAoB;IACxB,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,cAAc;IACxB,WAAW,EAAE,oDAAoD;IACjE,QAAQ,EAAE;QACR;YACE,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,QAAQ;YACd,MAAM,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,CAAC;YAC9D,YAAY,EAAE,SAAS;YACvB,WAAW,EAAE,4BAA4B;SAC1C;QACD;YACE,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,MAAM;YACZ,MAAM,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;YAC1B,YAAY,EAAE,IAAI;YAClB,WAAW,EAAE,oBAAoB;SAClC;KACF;IACD,KAAK,EAAE;QACL,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;QACpD,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE;QAC5E,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE;QACrD,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE;KACvD;CACO,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export declare function ButtonVariantExamples(): import("react/jsx-runtime").JSX.Element;
|
|
2
|
+
export declare function ButtonSizeExamples(): import("react/jsx-runtime").JSX.Element;
|
|
3
|
+
export declare function ButtonIconExamples(): import("react/jsx-runtime").JSX.Element;
|
|
4
|
+
export declare function ButtonStateExamples(): import("react/jsx-runtime").JSX.Element;
|
|
5
|
+
export declare function ButtonCombinedExamples(): import("react/jsx-runtime").JSX.Element;
|
|
6
|
+
export declare function ButtonNativeSkinExamples(): import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export declare function ButtonInteractiveExamples(): import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
export declare function ButtonAccessibilityExamples(): import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
export declare function ButtonCustomStylingExamples(): import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
export declare function AllButtonExamples(): import("react/jsx-runtime").JSX.Element;
|
|
11
|
+
//# sourceMappingURL=button-examples.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"button-examples.d.ts","sourceRoot":"","sources":["../../../../src/components/button/button-examples.tsx"],"names":[],"mappings":"AAeA,wBAAgB,qBAAqB,4CAUpC;AAMD,wBAAgB,kBAAkB,4CAQjC;AAMD,wBAAgB,kBAAkB,4CAajC;AAMD,wBAAgB,mBAAmB,4CAQlC;AAMD,wBAAgB,sBAAsB,4CA8BrC;AAMD,wBAAgB,wBAAwB,4CA4BvC;AAMD,wBAAgB,yBAAyB,4CAwCxC;AAMD,wBAAgB,2BAA2B,4CAgB1C;AAMD,wBAAgB,2BAA2B,4CA4B1C;AAMD,wBAAgB,iBAAiB,4CAiDhC"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { ButtonTailwind } from './button-skin-tailwind';
|
|
4
|
+
import { ButtonNative } from './button-skin-native';
|
|
5
|
+
export function ButtonVariantExamples() {
|
|
6
|
+
return (_jsxs("div", { className: "flex gap-4 flex-wrap", children: [_jsx(ButtonTailwind, { variant: "primary", children: "Primary" }), _jsx(ButtonTailwind, { variant: "secondary", children: "Secondary" }), _jsx(ButtonTailwind, { variant: "outline", children: "Outline" }), _jsx(ButtonTailwind, { variant: "ghost", children: "Ghost" }), _jsx(ButtonTailwind, { variant: "danger", children: "Danger" })] }));
|
|
7
|
+
}
|
|
8
|
+
export function ButtonSizeExamples() {
|
|
9
|
+
return (_jsxs("div", { className: "flex gap-4 items-center flex-wrap", children: [_jsx(ButtonTailwind, { size: "sm", children: "Small" }), _jsx(ButtonTailwind, { size: "md", children: "Medium" }), _jsx(ButtonTailwind, { size: "lg", children: "Large" })] }));
|
|
10
|
+
}
|
|
11
|
+
export function ButtonIconExamples() {
|
|
12
|
+
return (_jsxs("div", { className: "flex gap-4 flex-wrap", children: [_jsx(ButtonTailwind, { leftIcon: _jsx("span", { children: "\u2190" }), children: "Back" }), _jsx(ButtonTailwind, { rightIcon: _jsx("span", { children: "\u2192" }), children: "Next" }), _jsx(ButtonTailwind, { leftIcon: _jsx("span", { children: "\u2713" }), rightIcon: _jsx("span", { children: "\u2193" }), children: "Confirm" })] }));
|
|
13
|
+
}
|
|
14
|
+
export function ButtonStateExamples() {
|
|
15
|
+
return (_jsxs("div", { className: "flex gap-4 flex-wrap", children: [_jsx(ButtonTailwind, { children: "Normal" }), _jsx(ButtonTailwind, { disabled: true, children: "Disabled" }), _jsx(ButtonTailwind, { isLoading: true, children: "Loading..." })] }));
|
|
16
|
+
}
|
|
17
|
+
export function ButtonCombinedExamples() {
|
|
18
|
+
return (_jsxs("div", { className: "space-y-4", children: [_jsxs("div", { className: "flex gap-4 items-center flex-wrap", children: [_jsx(ButtonTailwind, { variant: "primary", size: "sm", children: "Small Primary" }), _jsx(ButtonTailwind, { variant: "primary", size: "md", children: "Medium Primary" }), _jsx(ButtonTailwind, { variant: "primary", size: "lg", children: "Large Primary" })] }), _jsxs("div", { className: "flex gap-4 flex-wrap", children: [_jsx(ButtonTailwind, { variant: "secondary", leftIcon: _jsx("span", { children: "+" }), children: "Add" }), _jsx(ButtonTailwind, { variant: "secondary", rightIcon: _jsx("span", { children: "\u2715" }), children: "Close" })] }), _jsxs("div", { className: "flex gap-4 flex-wrap", children: [_jsx(ButtonTailwind, { variant: "outline", children: "Normal" }), _jsx(ButtonTailwind, { variant: "outline", disabled: true, children: "Disabled" }), _jsx(ButtonTailwind, { variant: "outline", isLoading: true, children: "Loading..." })] }), _jsxs("div", { className: "flex gap-4 flex-wrap", children: [_jsx(ButtonTailwind, { variant: "danger", leftIcon: _jsx("span", { children: "\u26A0" }), children: "Warning" }), _jsx(ButtonTailwind, { variant: "danger", rightIcon: _jsx("span", { children: "\uD83D\uDDD1" }), children: "Delete" })] })] }));
|
|
19
|
+
}
|
|
20
|
+
export function ButtonNativeSkinExamples() {
|
|
21
|
+
return (_jsxs("div", { className: "space-y-4", children: [_jsxs("div", { className: "flex gap-4 flex-wrap", children: [_jsx(ButtonNative, { variant: "primary", children: "Primary Native" }), _jsx(ButtonNative, { variant: "secondary", children: "Secondary Native" }), _jsx(ButtonNative, { variant: "outline", children: "Outline Native" }), _jsx(ButtonNative, { variant: "ghost", children: "Ghost Native" }), _jsx(ButtonNative, { variant: "danger", children: "Danger Native" })] }), _jsxs("div", { className: "flex gap-4 items-center flex-wrap", children: [_jsx(ButtonNative, { size: "sm", children: "Small" }), _jsx(ButtonNative, { size: "md", children: "Medium" }), _jsx(ButtonNative, { size: "lg", children: "Large" })] }), _jsxs("div", { className: "flex gap-4 flex-wrap", children: [_jsx(ButtonNative, { leftIcon: _jsx("span", { children: "\u2190" }), children: "Back" }), _jsx(ButtonNative, { rightIcon: _jsx("span", { children: "\u2192" }), children: "Next" })] }), _jsxs("div", { className: "flex gap-4 flex-wrap", children: [_jsx(ButtonNative, { disabled: true, children: "Disabled" }), _jsx(ButtonNative, { isLoading: true, children: "Loading..." })] })] }));
|
|
22
|
+
}
|
|
23
|
+
export function ButtonInteractiveExamples() {
|
|
24
|
+
const [isLoading, setIsLoading] = React.useState(false);
|
|
25
|
+
const [count, setCount] = React.useState(0);
|
|
26
|
+
const handleClick = () => {
|
|
27
|
+
setIsLoading(true);
|
|
28
|
+
setTimeout(() => {
|
|
29
|
+
setIsLoading(false);
|
|
30
|
+
setCount(c => c + 1);
|
|
31
|
+
}, 1000);
|
|
32
|
+
};
|
|
33
|
+
return (_jsxs("div", { className: "space-y-4", children: [_jsxs("div", { className: "flex gap-4 items-center flex-wrap", children: [_jsx(ButtonTailwind, { onClick: () => alert('Clicked!'), children: "Click Me" }), _jsx(ButtonTailwind, { isLoading: isLoading, onClick: handleClick, children: isLoading ? 'Loading...' : `Click to increment (${count})` })] }), _jsx("div", { className: "flex gap-4 items-center flex-wrap", children: _jsx(ButtonTailwind, { variant: "danger", onClick: () => {
|
|
34
|
+
if (confirm('Are you sure?')) {
|
|
35
|
+
alert('Deleted!');
|
|
36
|
+
}
|
|
37
|
+
}, children: "Delete with Confirmation" }) })] }));
|
|
38
|
+
}
|
|
39
|
+
export function ButtonAccessibilityExamples() {
|
|
40
|
+
return (_jsxs("div", { className: "space-y-4", children: [_jsxs("div", { className: "flex gap-4 flex-wrap", children: [_jsx(ButtonTailwind, { "aria-label": "Close dialog", children: "\u2715" }), _jsx(ButtonTailwind, { "aria-describedby": "help-text", children: "Submit" })] }), _jsx("p", { id: "help-text", className: "text-sm text-gray-600", children: "This button submits the form" })] }));
|
|
41
|
+
}
|
|
42
|
+
export function ButtonCustomStylingExamples() {
|
|
43
|
+
return (_jsxs("div", { className: "space-y-4", children: [_jsxs("div", { className: "flex gap-4 flex-wrap", children: [_jsx(ButtonTailwind, { className: "shadow-lg", children: "With Shadow" }), _jsx(ButtonTailwind, { className: "rounded-full", children: "Rounded Full" }), _jsx(ButtonTailwind, { className: "w-full", children: "Full Width" })] }), _jsx("div", { className: "flex gap-4 items-center flex-wrap", children: _jsx(ButtonTailwind, { style: {
|
|
44
|
+
backgroundColor: '#8B5CF6',
|
|
45
|
+
color: 'white',
|
|
46
|
+
borderRadius: '8px',
|
|
47
|
+
}, children: "Custom Style" }) })] }));
|
|
48
|
+
}
|
|
49
|
+
export function AllButtonExamples() {
|
|
50
|
+
return (_jsxs("div", { className: "space-y-8 p-6", children: [_jsxs("div", { className: "p-4 border rounded space-y-2", children: [_jsx("h3", { className: "font-bold", children: "Variants" }), _jsx(ButtonVariantExamples, {})] }), _jsxs("div", { className: "p-4 border rounded space-y-2", children: [_jsx("h3", { className: "font-bold", children: "Sizes" }), _jsx(ButtonSizeExamples, {})] }), _jsxs("div", { className: "p-4 border rounded space-y-2", children: [_jsx("h3", { className: "font-bold", children: "Icons" }), _jsx(ButtonIconExamples, {})] }), _jsxs("div", { className: "p-4 border rounded space-y-2", children: [_jsx("h3", { className: "font-bold", children: "States" }), _jsx(ButtonStateExamples, {})] }), _jsxs("div", { className: "p-4 border rounded space-y-2", children: [_jsx("h3", { className: "font-bold", children: "Combined" }), _jsx(ButtonCombinedExamples, {})] }), _jsxs("div", { className: "p-4 border rounded space-y-2", children: [_jsx("h3", { className: "font-bold", children: "Native Skin" }), _jsx(ButtonNativeSkinExamples, {})] }), _jsxs("div", { className: "p-4 border rounded space-y-2", children: [_jsx("h3", { className: "font-bold", children: "Interactive" }), _jsx(ButtonInteractiveExamples, {})] }), _jsxs("div", { className: "p-4 border rounded space-y-2", children: [_jsx("h3", { className: "font-bold", children: "Accessibility" }), _jsx(ButtonAccessibilityExamples, {})] }), _jsxs("div", { className: "p-4 border rounded space-y-2", children: [_jsx("h3", { className: "font-bold", children: "Custom Styling" }), _jsx(ButtonCustomStylingExamples, {})] })] }));
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=button-examples.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"button-examples.js","sourceRoot":"","sources":["../../../../src/components/button/button-examples.tsx"],"names":[],"mappings":"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"}
|