tonkean-tcltext 1.0.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.
Files changed (67) hide show
  1. package/README.md +114 -0
  2. package/dist/components/ButtonToken.d.ts +17 -0
  3. package/dist/components/ButtonToken.d.ts.map +1 -0
  4. package/dist/components/ButtonToken.js +234 -0
  5. package/dist/components/ButtonToken.js.map +1 -0
  6. package/dist/components/ColorSelectToken.d.ts +17 -0
  7. package/dist/components/ColorSelectToken.d.ts.map +1 -0
  8. package/dist/components/ColorSelectToken.js +499 -0
  9. package/dist/components/ColorSelectToken.js.map +1 -0
  10. package/dist/components/ColorSwatch.d.ts +9 -0
  11. package/dist/components/ColorSwatch.d.ts.map +1 -0
  12. package/dist/components/ColorSwatch.js +12 -0
  13. package/dist/components/ColorSwatch.js.map +1 -0
  14. package/dist/components/IconItem.d.ts +17 -0
  15. package/dist/components/IconItem.d.ts.map +1 -0
  16. package/dist/components/IconItem.js +64 -0
  17. package/dist/components/IconItem.js.map +1 -0
  18. package/dist/components/InputToken.d.ts +15 -0
  19. package/dist/components/InputToken.d.ts.map +1 -0
  20. package/dist/components/InputToken.js +203 -0
  21. package/dist/components/InputToken.js.map +1 -0
  22. package/dist/components/MultiSelectToken.d.ts +18 -0
  23. package/dist/components/MultiSelectToken.d.ts.map +1 -0
  24. package/dist/components/MultiSelectToken.js +568 -0
  25. package/dist/components/MultiSelectToken.js.map +1 -0
  26. package/dist/components/NumericInputToken.d.ts +16 -0
  27. package/dist/components/NumericInputToken.d.ts.map +1 -0
  28. package/dist/components/NumericInputToken.js +322 -0
  29. package/dist/components/NumericInputToken.js.map +1 -0
  30. package/dist/components/SelectToken.d.ts +18 -0
  31. package/dist/components/SelectToken.d.ts.map +1 -0
  32. package/dist/components/SelectToken.js +357 -0
  33. package/dist/components/SelectToken.js.map +1 -0
  34. package/dist/components/TCLText.d.ts +28 -0
  35. package/dist/components/TCLText.d.ts.map +1 -0
  36. package/dist/components/TCLText.js +89 -0
  37. package/dist/components/TCLText.js.map +1 -0
  38. package/dist/components/hooks/useTooltipOnTruncation.d.ts +20 -0
  39. package/dist/components/hooks/useTooltipOnTruncation.d.ts.map +1 -0
  40. package/dist/components/hooks/useTooltipOnTruncation.js +62 -0
  41. package/dist/components/hooks/useTooltipOnTruncation.js.map +1 -0
  42. package/dist/components/iconLibrary.d.ts +3 -0
  43. package/dist/components/iconLibrary.d.ts.map +1 -0
  44. package/dist/components/iconLibrary.js +58 -0
  45. package/dist/components/iconLibrary.js.map +1 -0
  46. package/dist/components/iconLoader.d.ts +5 -0
  47. package/dist/components/iconLoader.d.ts.map +1 -0
  48. package/dist/components/iconLoader.js +113 -0
  49. package/dist/components/iconLoader.js.map +1 -0
  50. package/dist/index.d.ts +5 -0
  51. package/dist/index.d.ts.map +1 -0
  52. package/dist/index.js +7 -0
  53. package/dist/index.js.map +1 -0
  54. package/dist/tokens/buttons.json +198 -0
  55. package/dist/tokens/colors.json +93 -0
  56. package/dist/tokens/index.d.ts +7 -0
  57. package/dist/tokens/index.d.ts.map +1 -0
  58. package/dist/tokens/index.js +6 -0
  59. package/dist/tokens/index.js.map +1 -0
  60. package/dist/tokens/inputs.json +304 -0
  61. package/dist/tokens/types.d.ts +9 -0
  62. package/dist/tokens/types.d.ts.map +1 -0
  63. package/dist/tokens/types.js +2 -0
  64. package/dist/tokens/types.js.map +1 -0
  65. package/dist/tokens/typography.json +37 -0
  66. package/package.json +59 -0
  67. package/src/styles/tokens.css +274 -0
package/README.md ADDED
@@ -0,0 +1,114 @@
1
+ # Tonkean Design System
2
+
3
+ Design system components and tokens for Tonkean app, including the TCLText component with truncation and tooltip functionality.
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ npm install tonkean-design-system
9
+ ```
10
+
11
+ ## Usage
12
+
13
+ ### TCLText Component
14
+
15
+ The TCLText component provides text truncation with automatic tooltip display on hover.
16
+
17
+ ```tsx
18
+ import { TCLText, TCLFontSize } from 'tonkean-design-system';
19
+ import 'tonkean-design-system/tokens.css';
20
+
21
+ function App() {
22
+ return (
23
+ <div style={{ width: '200px' }}>
24
+ <TCLText
25
+ text="This is a very long text that will be truncated and show a tooltip on hover"
26
+ fontSize={TCLFontSize.NORMAL}
27
+ />
28
+ </div>
29
+ );
30
+ }
31
+ ```
32
+
33
+ ### Using Storybook Typography Tokens Directly
34
+
35
+ ```tsx
36
+ import { TCLText } from 'tonkean-design-system';
37
+
38
+ function App() {
39
+ return (
40
+ <TCLText
41
+ text="Sample text"
42
+ fontSize="base" // Can use: 'xs', 'sm', 'base', 'lg', 'xl', '2xl'
43
+ fontFamily="roboto" // or 'lato'
44
+ color="#000000"
45
+ />
46
+ );
47
+ }
48
+ ```
49
+
50
+ ### Importing Tokens
51
+
52
+ ```tsx
53
+ import { colors, typography, buttons, inputs } from 'tonkean-design-system';
54
+
55
+ // Access token values
56
+ const primaryColor = colors.colors.purple[600];
57
+ const baseFontSize = typography.typography.fontSizes.base;
58
+ ```
59
+
60
+ ### CSS Tokens
61
+
62
+ Import the CSS file to use CSS variables:
63
+
64
+ ```tsx
65
+ import 'tonkean-design-system/tokens.css';
66
+
67
+ // Then use in your CSS:
68
+ .my-element {
69
+ color: var(--color-purple-600);
70
+ font-size: var(--font-size-base);
71
+ font-family: var(--font-family-roboto);
72
+ }
73
+ ```
74
+
75
+ ## TCLText Props
76
+
77
+ | Prop | Type | Default | Description |
78
+ |------|------|---------|-------------|
79
+ | `text` | `string` | - | Text content to display |
80
+ | `children` | `ReactNode` | - | Alternative to text prop |
81
+ | `fontSize` | `TCLFontSize \| 'xs' \| 'sm' \| 'base' \| 'lg' \| 'xl' \| '2xl'` | `'base'` | Font size variant |
82
+ | `fontFamily` | `'roboto' \| 'lato'` | `'roboto'` | Font family |
83
+ | `color` | `string` | `'var(--color-gray-900)'` | Text color |
84
+ | `className` | `string` | `''` | Additional CSS classes |
85
+ | `tooltipConfig` | `object` | - | Tooltip configuration |
86
+ | `tooltipConfig.margin` | `number` | `10` | Tooltip margin |
87
+ | `tooltipConfig.maxWidth` | `number` | `300` | Maximum tooltip width |
88
+
89
+ ## TCLFontSize Enum
90
+
91
+ - `TCLFontSize.NORMAL` - Maps to 'base' (14px)
92
+ - `TCLFontSize.TEXT_MEDIUM` - Maps to 'base' (14px)
93
+ - `TCLFontSize.MSMALL` - Maps to 'sm' (12px)
94
+ - `TCLFontSize.SMALL` - Maps to 'sm' (12px)
95
+ - `TCLFontSize.XSMALL` - Maps to 'xs' (10px)
96
+ - `TCLFontSize.MEDIUM` - Maps to 'lg' (16px)
97
+ - `TCLFontSize.LARGE` - Maps to 'xl' (20px)
98
+
99
+ ## Features
100
+
101
+ - ✅ Automatic text truncation detection
102
+ - ✅ Tooltip on hover for truncated text
103
+ - ✅ Uses Storybook design tokens
104
+ - ✅ TypeScript support
105
+ - ✅ Fully typed
106
+
107
+ ## Requirements
108
+
109
+ - React 18.2.0 or higher
110
+ - React DOM 18.2.0 or higher
111
+
112
+ ## License
113
+
114
+ MIT
@@ -0,0 +1,17 @@
1
+ import React from 'react';
2
+ import { buttons } from '../tokens';
3
+ import { IconData } from './IconItem';
4
+ interface ButtonTokenProps {
5
+ variant: keyof typeof buttons.buttons.variants;
6
+ size: 'small' | 'regular' | 'large';
7
+ state: 'default' | 'hover' | 'disabled';
8
+ showLabel?: boolean;
9
+ showTokens?: boolean;
10
+ iconPosition?: 'lead' | 'end' | 'both' | 'none';
11
+ label?: string;
12
+ leadIcon?: IconData | null;
13
+ endIcon?: IconData | null;
14
+ }
15
+ export declare const ButtonToken: React.FC<ButtonTokenProps>;
16
+ export {};
17
+ //# sourceMappingURL=ButtonToken.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ButtonToken.d.ts","sourceRoot":"","sources":["../../src/components/ButtonToken.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAU,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAOtC,UAAU,gBAAgB;IACxB,OAAO,EAAE,MAAM,OAAO,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC;IAC/C,IAAI,EAAE,OAAO,GAAG,SAAS,GAAG,OAAO,CAAC;IACpC,KAAK,EAAE,SAAS,GAAG,OAAO,GAAG,UAAU,CAAC;IACxC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;IAChD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC3B,OAAO,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;CAC3B;AAoCD,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAoTlD,CAAC"}
@@ -0,0 +1,234 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import React from 'react';
3
+ import { buttons, colors } from '../tokens';
4
+ import { loadAllIcons } from './iconLoader';
5
+ // Load all icons once at module level and get default circle icon
6
+ const allIconsCache = loadAllIcons();
7
+ const defaultCircleIcon = allIconsCache.find(icon => icon.name === 'circle') || null;
8
+ // Helper function to resolve color references from tokens
9
+ const resolveColor = (colorRef) => {
10
+ // If it's already a hex color or CSS value, return as-is
11
+ if (colorRef.startsWith('#') || colorRef === 'transparent' || colorRef === 'none') {
12
+ return colorRef;
13
+ }
14
+ // Parse reference like "purple.600" or "basic.white"
15
+ const parts = colorRef.split('.');
16
+ if (parts.length === 2) {
17
+ const [category, shade] = parts;
18
+ const colorCategory = colors.colors[category];
19
+ if (colorCategory && typeof colorCategory === 'object') {
20
+ const colorValue = colorCategory[shade];
21
+ if (colorValue) {
22
+ return colorValue;
23
+ }
24
+ }
25
+ }
26
+ // Fallback: return the original reference if not found
27
+ return colorRef;
28
+ };
29
+ // Helper function to resolve border string (may contain color references)
30
+ const resolveBorder = (border) => {
31
+ if (border === 'none' || border === 'transparent') {
32
+ return border;
33
+ }
34
+ // Handle "1px solid gray.300" format
35
+ return border.replace(/(\w+\.\w+)/g, (match) => resolveColor(match));
36
+ };
37
+ export const ButtonToken = ({ variant, size, state, showLabel = true, showTokens = false, iconPosition = 'lead', label = 'Button', leadIcon, endIcon, }) => {
38
+ const variantTokens = buttons.buttons.variants[variant];
39
+ const stateTokens = variantTokens[state];
40
+ const sizeTokens = buttons.buttons.sizes[size];
41
+ // Resolve colors from token references
42
+ const resolvedBackground = resolveColor(stateTokens.background);
43
+ const resolvedText = resolveColor(stateTokens.text);
44
+ const resolvedIcon = resolveColor(stateTokens.icon);
45
+ const resolvedBorder = resolveBorder(stateTokens.border);
46
+ // Calculate icon size based on button size (proportional to font size)
47
+ const iconSize = size === 'small' ? '12px' : size === 'regular' ? '14px' : '16px';
48
+ const chevronSize = size === 'small' ? '10px' : size === 'regular' ? '12px' : '14px';
49
+ // For multiaction, we need special styling with two sections
50
+ const isMultiaction = variant === 'multiaction';
51
+ // For multiaction, we need to resolve purple colors for borders
52
+ const purple500 = resolveColor('purple.500');
53
+ const purple600 = resolveColor('purple.600');
54
+ const buttonStyle = {
55
+ padding: isMultiaction ? '0' : `${sizeTokens.padding.vertical} ${sizeTokens.padding.horizontal}`,
56
+ fontSize: sizeTokens.fontSize,
57
+ minHeight: sizeTokens.minHeight,
58
+ borderRadius: isMultiaction ? '0' : buttons.buttons.borderRadius,
59
+ border: isMultiaction ? 'none' : resolvedBorder,
60
+ backgroundColor: isMultiaction ? 'transparent' : resolvedBackground,
61
+ color: resolvedText,
62
+ cursor: state === 'disabled' ? 'not-allowed' : 'pointer',
63
+ textDecoration: ('textDecoration' in stateTokens ? stateTokens.textDecoration : undefined) || 'none',
64
+ display: 'inline-flex',
65
+ alignItems: 'center',
66
+ justifyContent: isMultiaction ? 'stretch' : 'center',
67
+ gap: isMultiaction ? '0' : '6px',
68
+ fontFamily: 'var(--font-family-roboto)',
69
+ fontWeight: 'var(--font-weight-medium)',
70
+ transition: 'all 0.2s ease',
71
+ opacity: state === 'disabled' ? 0.6 : 1,
72
+ lineHeight: '1',
73
+ overflow: 'hidden',
74
+ };
75
+ // Helper function to render icon (from library or default circle)
76
+ const renderIcon = (iconData, position) => {
77
+ // Use circle icon as default if no icon is provided
78
+ const iconToRender = iconData || defaultCircleIcon;
79
+ if (!iconToRender) {
80
+ // Fallback: render a simple circle if circle icon not found
81
+ const iconStyle = {
82
+ width: iconSize,
83
+ height: iconSize,
84
+ backgroundColor: isMultiaction ? 'transparent' : resolvedIcon,
85
+ border: isMultiaction ? `1px solid ${resolvedIcon}` : 'none',
86
+ borderRadius: '50%',
87
+ display: 'inline-block',
88
+ flexShrink: 0,
89
+ };
90
+ return _jsx("span", { style: iconStyle });
91
+ }
92
+ // Render icon from library (SVG string or React component)
93
+ if (iconToRender.svg) {
94
+ // Process SVG string from icon tokens - update size, color, and stroke width
95
+ let processedSvg = iconToRender.svg;
96
+ // Update width and height attributes
97
+ processedSvg = processedSvg.replace(/width="[^"]*"/gi, `width="${iconSize}"`);
98
+ processedSvg = processedSvg.replace(/height="[^"]*"/gi, `height="${iconSize}"`);
99
+ // If SVG doesn't have width/height, add them
100
+ if (!processedSvg.match(/width\s*=/i)) {
101
+ processedSvg = processedSvg.replace(/<svg([^>]*?)>/i, (match, attrs) => `<svg${attrs} width="${iconSize}" height="${iconSize}">`);
102
+ }
103
+ // Replace currentColor with actual icon color
104
+ processedSvg = processedSvg.replace(/stroke="currentColor"/gi, `stroke="${resolvedIcon}"`);
105
+ processedSvg = processedSvg.replace(/fill="currentColor"/gi, `fill="${resolvedIcon}"`);
106
+ // Set stroke-width to 2px for all stroke elements
107
+ processedSvg = processedSvg.replace(/stroke-width="[^"]*"/gi, 'stroke-width="2"');
108
+ processedSvg = processedSvg.replace(/strokeWidth="[^"]*"/gi, 'strokeWidth="2"');
109
+ // Add stroke-width="2" to all elements that have stroke but no stroke-width
110
+ processedSvg = processedSvg.replace(/(<(path|line|polyline|polygon|circle|ellipse|rect)[^>]*stroke="[^"]*"[^>]*?)(?![^>]*stroke-width)(?![^>]*strokeWidth)([^>]*>)/gi, (match, before, tag, after) => {
111
+ return `${before} stroke-width="2"${after}`;
112
+ });
113
+ // Render SVG string from icon tokens
114
+ return (_jsx("span", { style: {
115
+ width: iconSize,
116
+ height: iconSize,
117
+ display: 'inline-flex',
118
+ alignItems: 'center',
119
+ justifyContent: 'center',
120
+ flexShrink: 0,
121
+ color: resolvedIcon,
122
+ lineHeight: 0,
123
+ verticalAlign: 'middle',
124
+ }, dangerouslySetInnerHTML: { __html: processedSvg } }));
125
+ }
126
+ if (iconToRender.component) {
127
+ // Render React component
128
+ return (_jsx("span", { style: {
129
+ width: iconSize,
130
+ height: iconSize,
131
+ display: 'inline-flex',
132
+ alignItems: 'center',
133
+ justifyContent: 'center',
134
+ flexShrink: 0,
135
+ color: resolvedIcon,
136
+ }, children: React.cloneElement(iconToRender.component, {
137
+ width: iconSize,
138
+ height: iconSize,
139
+ style: { color: resolvedIcon },
140
+ }) }));
141
+ }
142
+ // Fallback to circle if icon has no component
143
+ const iconStyle = {
144
+ width: iconSize,
145
+ height: iconSize,
146
+ backgroundColor: isMultiaction ? 'transparent' : resolvedIcon,
147
+ border: isMultiaction ? `1px solid ${resolvedIcon}` : 'none',
148
+ borderRadius: '50%',
149
+ display: 'inline-block',
150
+ flexShrink: 0,
151
+ };
152
+ return _jsx("span", { style: iconStyle });
153
+ };
154
+ // Determine if icon should be shown and where
155
+ const showIcon = iconPosition !== 'none';
156
+ const iconAtLead = (iconPosition === 'lead' || iconPosition === 'both') || (isMultiaction && iconPosition !== 'end');
157
+ const iconAtEnd = (iconPosition === 'end' || iconPosition === 'both') && !isMultiaction;
158
+ // Get hover and disabled colors for multiaction
159
+ const hoverBackground = isMultiaction ? resolveColor('purple.700') : null;
160
+ const disabledBackground = isMultiaction ? resolveColor(variantTokens.disabled.background) : null;
161
+ const disabledBorder = isMultiaction ? resolveColor(variantTokens.disabled.text) : null;
162
+ // Main button content wrapper for multiaction - left piece with border-radius: 4px 0 0 4px
163
+ const mainButtonContent = isMultiaction ? (_jsxs("div", { className: state === 'default' ? 'multiaction-left-default' : state === 'hover' ? 'multiaction-left-hover' : 'multiaction-left-disabled', style: {
164
+ display: 'inline-flex',
165
+ alignItems: 'center',
166
+ gap: '6px',
167
+ padding: `${sizeTokens.padding.vertical} ${sizeTokens.padding.horizontal}`,
168
+ flex: '1',
169
+ borderRadius: '4px 0 0 4px',
170
+ border: `1px solid ${state === 'disabled' ? disabledBorder : purple600}`,
171
+ background: state === 'disabled' ? disabledBackground : state === 'hover' ? hoverBackground : purple500,
172
+ minHeight: sizeTokens.minHeight,
173
+ height: sizeTokens.minHeight,
174
+ boxSizing: 'border-box',
175
+ }, children: [showIcon && iconAtLead && renderIcon(leadIcon, 'lead'), _jsx("span", { children: label }), showIcon && iconAtEnd && renderIcon(endIcon || leadIcon, 'end')] })) : (_jsxs(_Fragment, { children: [showIcon && iconAtLead && renderIcon(leadIcon, 'lead'), _jsx("span", { children: label }), showIcon && iconAtEnd && renderIcon(endIcon || leadIcon, 'end')] }));
176
+ // Trailing chevron for multiaction variant - right piece with border-radius: 0 4px 4px 0
177
+ const dropdownIcon = isMultiaction ? (_jsx("div", { className: state === 'default' ? 'multiaction-right-default' : state === 'hover' ? 'multiaction-right-hover' : 'multiaction-right-disabled', style: {
178
+ display: 'inline-flex',
179
+ alignItems: 'center',
180
+ justifyContent: 'center',
181
+ padding: `${sizeTokens.padding.vertical} ${size === 'small' ? '4px' : size === 'regular' ? '4px' : '6px'}`,
182
+ flexShrink: 0,
183
+ minHeight: sizeTokens.minHeight,
184
+ height: sizeTokens.minHeight,
185
+ borderRadius: '0 4px 4px 0',
186
+ borderTop: `1px solid ${state === 'disabled' ? disabledBorder : purple600}`,
187
+ borderRight: `1px solid ${state === 'disabled' ? disabledBorder : purple600}`,
188
+ borderBottom: `1px solid ${state === 'disabled' ? disabledBorder : purple600}`,
189
+ borderLeft: 'none',
190
+ background: state === 'disabled' ? disabledBackground : state === 'hover' ? hoverBackground : purple500,
191
+ boxSizing: 'border-box',
192
+ }, children: _jsx("svg", { width: chevronSize, height: chevronSize, viewBox: "0 0 12 12", fill: "none", xmlns: "http://www.w3.org/2000/svg", style: { display: 'block' }, children: _jsx("path", { d: "M2 4L6 8L10 4", stroke: resolvedIcon, strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" }) }) })) : null;
193
+ return (_jsxs("div", { style: { marginBottom: '1rem' }, children: [showLabel && (_jsxs("div", { style: { fontSize: '0.875rem', color: '#6b7280', marginBottom: '0.5rem', fontFamily: 'monospace' }, children: [variant, "-", size, "-", state] })), _jsxs("button", { style: buttonStyle, disabled: state === 'disabled', onMouseEnter: (e) => {
194
+ if (state === 'default') {
195
+ if (isMultiaction) {
196
+ // Update both pieces for multiaction
197
+ const leftPiece = e.currentTarget.querySelector('.multiaction-left-default');
198
+ const rightPiece = e.currentTarget.querySelector('.multiaction-right-default');
199
+ if (leftPiece) {
200
+ leftPiece.style.background = hoverBackground || purple500;
201
+ }
202
+ if (rightPiece) {
203
+ rightPiece.style.background = hoverBackground || purple500;
204
+ }
205
+ }
206
+ else {
207
+ const hoverTokens = variantTokens.hover;
208
+ e.currentTarget.style.backgroundColor = resolveColor(hoverTokens.background);
209
+ e.currentTarget.style.color = resolveColor(hoverTokens.text);
210
+ e.currentTarget.style.border = resolveBorder(hoverTokens.border);
211
+ }
212
+ }
213
+ }, onMouseLeave: (e) => {
214
+ if (state === 'default') {
215
+ if (isMultiaction) {
216
+ // Reset both pieces for multiaction
217
+ const leftPiece = e.currentTarget.querySelector('.multiaction-left-default');
218
+ const rightPiece = e.currentTarget.querySelector('.multiaction-right-default');
219
+ if (leftPiece) {
220
+ leftPiece.style.background = purple500;
221
+ }
222
+ if (rightPiece) {
223
+ rightPiece.style.background = purple500;
224
+ }
225
+ }
226
+ else {
227
+ e.currentTarget.style.backgroundColor = resolvedBackground;
228
+ e.currentTarget.style.color = resolvedText;
229
+ e.currentTarget.style.border = resolvedBorder;
230
+ }
231
+ }
232
+ }, children: [mainButtonContent, dropdownIcon] }), showTokens && (_jsxs("div", { style: { marginTop: '0.5rem', fontSize: '0.75rem', color: '#6b7280', fontFamily: 'monospace' }, children: [_jsxs("div", { children: ["Background: ", stateTokens.background] }), _jsxs("div", { children: ["Text: ", stateTokens.text] }), _jsxs("div", { children: ["Icon: ", stateTokens.icon] }), _jsxs("div", { children: ["Border: ", stateTokens.border] }), 'textDecoration' in stateTokens && stateTokens.textDecoration && _jsxs("div", { children: ["Decoration: ", stateTokens.textDecoration] }), _jsx("div", { style: { marginTop: '0.25rem', color: '#9ca3af', fontSize: '0.7rem' }, children: `CSS: var(--button-${variant}-${state}-background), var(--button-${variant}-${state}-text), etc.` })] }))] }));
233
+ };
234
+ //# sourceMappingURL=ButtonToken.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ButtonToken.js","sourceRoot":"","sources":["../../src/components/ButtonToken.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import React from 'react';
2
+ interface ColorSelectTokenProps {
3
+ state: 'empty' | 'focus' | 'filled' | 'disabled' | 'hover' | 'open';
4
+ showLabel?: boolean;
5
+ label?: string;
6
+ placeholder?: string;
7
+ value?: string;
8
+ selectedColor?: string | null;
9
+ options?: Array<{
10
+ label: string;
11
+ color: string;
12
+ }>;
13
+ onSelect?: (value: string, color: string) => void;
14
+ }
15
+ export declare const ColorSelectToken: React.FC<ColorSelectTokenProps>;
16
+ export {};
17
+ //# sourceMappingURL=ColorSelectToken.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ColorSelectToken.d.ts","sourceRoot":"","sources":["../../src/components/ColorSelectToken.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAI3D,UAAU,qBAAqB;IAC7B,KAAK,EAAE,OAAO,GAAG,OAAO,GAAG,QAAQ,GAAG,UAAU,GAAG,OAAO,GAAG,MAAM,CAAC;IACpE,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,OAAO,CAAC,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAClD,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACnD;AAyJD,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,qBAAqB,CAyf5D,CAAC"}