@granto-umbrella/umbrella-components 3.0.33 → 3.0.36

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 (156) hide show
  1. package/README.md +165 -27
  2. package/dist/umbrella-components.css +1 -1
  3. package/dist/umbrella-components.es.js +28129 -29249
  4. package/dist/umbrella-components.umd.js +1234 -2181
  5. package/package.json +135 -106
  6. package/src/assets.d.ts +19 -19
  7. package/src/components/atoms/Badge/Badge.styles.ts +88 -86
  8. package/src/components/atoms/Badge/Badge.tsx +42 -44
  9. package/src/components/atoms/Badge/Badge.types.ts +15 -15
  10. package/src/components/atoms/Breadcrumb/Breadcrumb.styles.ts +43 -43
  11. package/src/components/atoms/Breadcrumb/Breadcrumb.tsx +46 -48
  12. package/src/components/atoms/Breadcrumb/Breadcrumb.types.ts +12 -12
  13. package/src/components/atoms/Button/Button.styles.ts +279 -280
  14. package/src/components/atoms/Button/Button.tsx +76 -76
  15. package/src/components/atoms/Button/Button.types.ts +28 -28
  16. package/src/components/atoms/Button/index.ts +1 -1
  17. package/src/components/atoms/Checkbox/Checkbox.styles.ts +72 -72
  18. package/src/components/atoms/Checkbox/Checkbox.tsx +36 -36
  19. package/src/components/atoms/Checkbox/Checkbox.types.ts +14 -14
  20. package/src/components/atoms/Checkbox/CheckboxGroup.tsx +30 -30
  21. package/src/components/atoms/Checkbox/CheckboxSelectAll.tsx +32 -32
  22. package/src/components/atoms/CodeInput/CodeInput.styles.tsx +38 -39
  23. package/src/components/atoms/CodeInput/CodeInput.tsx +13 -19
  24. package/src/components/atoms/CodeInput/CodeInput.types.ts +3 -3
  25. package/src/components/atoms/CodeInput/index.tsx +1 -1
  26. package/src/components/atoms/DropDownMenu/DropdownMenu.tsx +48 -48
  27. package/src/components/atoms/DropDownMenu/DropdownMenu.types.ts +15 -15
  28. package/src/components/atoms/DropDownMenu/index.tsx +5 -2
  29. package/src/components/atoms/ErrorMessage/ErrorMessage.styles.tsx +28 -28
  30. package/src/components/atoms/ErrorMessage/ErrorMessage.tsx +12 -12
  31. package/src/components/atoms/ErrorMessage/ErrorMessage.types.ts +6 -6
  32. package/src/components/atoms/ErrorMessage/index.tsx +1 -1
  33. package/src/components/atoms/Footer/Footer.styles.tsx +22 -22
  34. package/src/components/atoms/Footer/Footer.tsx +9 -9
  35. package/src/components/atoms/Footer/Footer.types.tsx +5 -5
  36. package/src/components/atoms/Footer/index.tsx +1 -1
  37. package/src/components/atoms/GenericContainer/GenericContainer.styles.tsx +21 -21
  38. package/src/components/atoms/GenericContainer/GenericContainer.tsx +9 -9
  39. package/src/components/atoms/GenericContainer/GenericContainer.types.ts +5 -5
  40. package/src/components/atoms/GenericContainer/index.tsx +1 -1
  41. package/src/components/atoms/Icon/Icon.styles.ts +11 -11
  42. package/src/components/atoms/Icon/Icon.tsx +22 -22
  43. package/src/components/atoms/Icon/Icon.types.ts +6 -6
  44. package/src/components/atoms/Icon/index.ts +1 -1
  45. package/src/components/atoms/Input/Input.styles.ts +106 -101
  46. package/src/components/atoms/Input/index.ts +1 -1
  47. package/src/components/atoms/Label/Label.tsx +16 -16
  48. package/src/components/atoms/Loading/Loading.styles.tsx +25 -23
  49. package/src/components/atoms/Loading/Loading.tsx +8 -8
  50. package/src/components/atoms/LogoContainer/LogoContainer.Types.tsx +5 -5
  51. package/src/components/atoms/LogoContainer/LogoContainer.styles.tsx +11 -11
  52. package/src/components/atoms/LogoContainer/LogoContainer.tsx +11 -11
  53. package/src/components/atoms/LogoContainer/index.tsx +1 -1
  54. package/src/components/atoms/ModalAviso/ModalAviso.styles.tsx +56 -55
  55. package/src/components/atoms/ModalAviso/ModalAviso.tsx +43 -37
  56. package/src/components/atoms/ModalAviso/ModalAviso.types.ts +5 -5
  57. package/src/components/atoms/ModalAviso/index.tsx +1 -1
  58. package/src/components/atoms/MultiSelect/MultiSelect.styles.tsx +100 -92
  59. package/src/components/atoms/MultiSelect/MultiSelect.tsx +346 -346
  60. package/src/components/atoms/MultiSelect/MultiSelect.types.ts +38 -38
  61. package/src/components/atoms/Pill/Pill.styles.ts +46 -46
  62. package/src/components/atoms/Pill/Pill.tsx +35 -36
  63. package/src/components/atoms/Pill/Pill.types.ts +14 -18
  64. package/src/components/atoms/RadioButton/RadioButton.styles.ts +44 -43
  65. package/src/components/atoms/RadioButton/RadioButton.tsx +31 -31
  66. package/src/components/atoms/ResendLink/ResendLink.styles.tsx +19 -20
  67. package/src/components/atoms/ResendLink/ResendLink.tsx +21 -21
  68. package/src/components/atoms/ResendLink/ResendLink.types.ts +8 -9
  69. package/src/components/atoms/ResendLink/index.tsx +1 -2
  70. package/src/components/atoms/Select/Select.styles.ts +153 -149
  71. package/src/components/atoms/Select/Select.tsx +52 -43
  72. package/src/components/atoms/Select/index.tsx +1 -1
  73. package/src/components/atoms/Subtitle/Subtitle.tsx +7 -7
  74. package/src/components/atoms/Subtitle/Subtitle.types.ts +5 -5
  75. package/src/components/atoms/Subtitle/index.tsx +1 -1
  76. package/src/components/atoms/Switch/Switch.tsx +25 -25
  77. package/src/components/atoms/TabBar/TabBar.styles.tsx +64 -57
  78. package/src/components/atoms/TabBar/index.tsx +2 -2
  79. package/src/components/atoms/Text/Text.styles.tsx +35 -35
  80. package/src/components/atoms/Text/Text.tsx +32 -31
  81. package/src/components/atoms/Text/Text.types.ts +8 -8
  82. package/src/components/atoms/Text/index.ts +1 -1
  83. package/src/components/atoms/Textarea/Textarea.styles.ts +52 -52
  84. package/src/components/atoms/Textarea/Textarea.tsx +31 -31
  85. package/src/components/atoms/Title/Title.tsx +7 -7
  86. package/src/components/atoms/Title/Title.types.ts +5 -5
  87. package/src/components/atoms/Title/index.tsx +1 -1
  88. package/src/components/molecules/BannerAjuda/BannerAjuda.styles.tsx +9 -9
  89. package/src/components/molecules/BannerAjuda/BannerAjuda.tsx +18 -19
  90. package/src/components/molecules/BannerAjuda/index.tsx +1 -1
  91. package/src/components/molecules/ButtonGroup/ButtonGroup.styles.ts +10 -10
  92. package/src/components/molecules/ButtonGroup/ButtonGroup.types.ts +22 -22
  93. package/src/components/molecules/Calendar/Calendar.styles.ts +143 -143
  94. package/src/components/molecules/Calendar/Calendar.tsx +31 -31
  95. package/src/components/molecules/CodeInputContainer/CodeInputContainer.styles.tsx +7 -7
  96. package/src/components/molecules/CodeInputContainer/CodeInputContainer.types.ts +13 -13
  97. package/src/components/molecules/CodeInputContainer/index.tsx +1 -3
  98. package/src/components/molecules/ExcludeModal/ExcludeModal.styles.tsx +123 -118
  99. package/src/components/molecules/ExcludeModal/ExcludeModal.tsx +48 -48
  100. package/src/components/molecules/ExcludeModal/ExcludeModal.types.ts +10 -10
  101. package/src/components/molecules/ExcludeModal/index.tsx +1 -1
  102. package/src/components/molecules/FieldSelector/FieldSelector.styles.ts +59 -0
  103. package/src/components/molecules/FieldSelector/FieldSelector.tsx +167 -0
  104. package/src/components/molecules/HighlightsCard/HighlightsCard.styles.tsx +67 -68
  105. package/src/components/molecules/HighlightsCard/HighlightsCard.tsx +35 -26
  106. package/src/components/molecules/HighlightsCard/HighlightsCard.types.ts +10 -10
  107. package/src/components/molecules/HighlightsCard/index.tsx +1 -1
  108. package/src/components/molecules/InsuranceCard/InsuranceCard.styles.tsx +237 -237
  109. package/src/components/molecules/InsuranceCard/index.tsx +1 -1
  110. package/src/components/molecules/PieChartComponent/PieChartComponent.styles.tsx +7 -8
  111. package/src/components/molecules/PieChartComponent/PieChartComponent.tsx +70 -73
  112. package/src/components/molecules/PieChartComponent/PieChartComponent.types.ts +11 -11
  113. package/src/components/molecules/PieChartComponent/index.tsx +1 -1
  114. package/src/components/molecules/Popover/Popover.styles.ts +66 -65
  115. package/src/components/molecules/Popover/Popover.tsx +23 -23
  116. package/src/components/molecules/RadioBoxGroup/RadioBoxGroup.styles.ts +11 -11
  117. package/src/components/molecules/RadioBoxGroup/RadioBoxGroup.tsx +43 -43
  118. package/src/components/molecules/RadioGroupField/RadioGroupField.styles.tsx +65 -64
  119. package/src/components/molecules/RadioGroupField/RadioGroupField.tsx +69 -69
  120. package/src/components/molecules/RadioGroupField/RadioGroupField.types.ts +17 -17
  121. package/src/components/molecules/RadioGroupField/index.tsx +1 -1
  122. package/src/components/molecules/RefuseModal/RefuseModal.styles.tsx +139 -139
  123. package/src/components/molecules/RefuseModal/RefuseModal.tsx +92 -76
  124. package/src/components/molecules/RefuseModal/RefuseModal.types.ts +15 -15
  125. package/src/components/molecules/RefuseModal/index.tsx +2 -2
  126. package/src/components/molecules/ResultsChart/ResultsChart.tsx +23 -19
  127. package/src/components/molecules/ResultsChart/ResultsChart.types.ts +3 -3
  128. package/src/components/molecules/ResultsChart/index.tsx +2 -2
  129. package/src/components/molecules/TabToggle/TabToggle.styles.ts +54 -54
  130. package/src/components/molecules/TabToggle/TabToggle.tsx +35 -35
  131. package/src/components/organisms/AlertDialog/AlertDialog.styles.tsx +61 -61
  132. package/src/components/organisms/AlertDialog/AlertDialog.tsx +70 -70
  133. package/src/components/organisms/Dialog/Dialog.styles.ts +107 -106
  134. package/src/components/organisms/Dialog/Dialog.tsx +69 -69
  135. package/src/components/organisms/DonutEmissionsChart/DonutEmissionsChart.styles.tsx +113 -113
  136. package/src/components/organisms/DonutEmissionsChart/DonutEmissionsChart.tsx +75 -71
  137. package/src/components/organisms/DonutEmissionsChart/DonutEmissionsChart.types.ts +9 -9
  138. package/src/components/organisms/DonutEmissionsChart/index.tsx +5 -2
  139. package/src/components/organisms/Form/Form.styles.ts +35 -35
  140. package/src/components/organisms/Form/Form.tsx +160 -160
  141. package/src/components/organisms/ListagemUltimasEmissoes/ListagemUltimasEmissoes.styles.tsx +115 -114
  142. package/src/components/organisms/ListagemUltimasEmissoes/ListagemUltimasEmissoes.tsx +89 -89
  143. package/src/components/organisms/ListagemUltimasEmissoes/ListagemUltimasEmissoes.types.ts +16 -16
  144. package/src/components/organisms/ListagemUltimasEmissoes/index.tsx +1 -1
  145. package/src/components/organisms/Navbar/Navbar.styles.tsx +243 -243
  146. package/src/global.d.ts +9 -9
  147. package/src/index.ts +2 -0
  148. package/src/lib/utils.ts +6 -6
  149. package/src/styles/tokens/borders.ts +17 -17
  150. package/src/styles/tokens/index.tsx +6 -6
  151. package/src/styles/tokens/radius.ts +22 -22
  152. package/src/styles/tokens/shadows.ts +22 -22
  153. package/src/styles/tokens/sizes.ts +60 -64
  154. package/src/types/radius.types.ts +1 -1
  155. package/src/types/shadows.types.ts +1 -1
  156. package/src/utils/renderHighlightsCard.tsx +21 -0
@@ -1,280 +1,279 @@
1
- import styled, { css } from 'styled-components';
2
- import {
3
- semanticColors,
4
- semanticSizes,
5
- semanticRadius,
6
- typographyTokens,
7
- } from '../../../styles/tokens';
8
-
9
- const buttonSizes = {
10
- sm: css`
11
- padding: ${semanticSizes.global.padding.md};
12
- font-size: ${typographyTokens.fontSizes.labelS};
13
-
14
- `,
15
- md: css`
16
- padding: ${semanticSizes.global.padding.md}${' '}${semanticSizes.global.padding.xl};
17
- font-size: ${typographyTokens.fontSizes.bodyS};
18
-
19
- `,
20
- lg: css`
21
- padding: ${semanticSizes.global.padding.md}${' '}${semanticSizes.global.padding.xl};
22
- font-size: ${typographyTokens.fontSizes.bodyL};
23
-
24
- `,
25
- };
26
-
27
- const buttonVariants = {
28
- primary: css`
29
- background: ${semanticColors.branding.surface.enabled};
30
- color: ${semanticColors.base.background};
31
- border: none;
32
- &:hover {
33
- background: ${semanticColors.branding.surface.hover};
34
- }
35
- &:active {
36
- background: ${semanticColors.branding.surface.pressed};
37
- }
38
- &:disabled {
39
- background: ${semanticColors.branding.surface.disabled};
40
- }
41
- `,
42
- outline: css`
43
- border: 1px solid ${semanticColors.branding.border.enabled};
44
- color: ${semanticColors.branding.text.accent.enabled};
45
- background: transparent;
46
- &:hover {
47
- border: 1px solid ${semanticColors.branding.border.hover};
48
- color: ${semanticColors.branding.text.accent.hover};
49
- }
50
- &:active {
51
- border: 1px solid ${semanticColors.branding.border.pressed};
52
- color: ${semanticColors.branding.text.accent.pressed};
53
- }
54
- &:disabled {
55
- color: ${semanticColors.branding.text.accent.disabled};
56
- border: 1px solid ${semanticColors.branding.border.disabled};
57
- }
58
- `,
59
- outline_ghost: css`
60
- border: 1px solid ${semanticColors.global.text.subtitle.enabled};
61
- color: ${semanticColors.global.text.subtitle.enabled};
62
- background: transparent;
63
- &:hover {
64
- border: 1px solid ${semanticColors.global.text.subtitle.enabled};
65
- color: ${semanticColors.global.text.subtitle.enabled};
66
- }
67
- &:active {
68
- border: 1px solid ${semanticColors.global.text.subtitle.enabled};
69
- color: ${semanticColors.global.text.subtitle.enabled};
70
- }
71
- &:disabled {
72
- color: ${semanticColors.global.text.onSurface.enabled};
73
- border: 1px solid ${semanticColors.global.text.onSurface.enabled};
74
- background: ${semanticColors.global.surface.disabled};
75
- }
76
- `,
77
- outline_ghost_disabled: css`
78
- border: 1px solid ${semanticColors.global.border.medium};
79
- color: ${semanticColors.global.text.subtitle.enabled};
80
- background: transparent;
81
- &:hover {
82
- border: 1px solid ${semanticColors.global.text.subtitle.enabled};
83
- color: ${semanticColors.global.text.subtitle.enabled};
84
- }
85
- &:active {
86
- border: 1px solid ${semanticColors.global.text.subtitle.enabled};
87
- color: ${semanticColors.global.text.subtitle.enabled};
88
- }
89
- &:disabled {
90
- color: ${semanticColors.global.text.onSurface.enabled};
91
- border: 1px solid ${semanticColors.global.text.onSurface.enabled};
92
- background: ${semanticColors.global.surface.disabled};
93
- }
94
- `,
95
- outline_danger: css`
96
- border: 1px solid ${semanticColors.danger.surface.enabled};
97
- color: ${semanticColors.danger.text.enabled};
98
- background: transparent;
99
- &:hover {
100
- border: 1px solid ${semanticColors.danger.surface.hover};
101
- color: ${semanticColors.danger.text.hover};
102
- }
103
- &:active {
104
- border: 1px solid ${semanticColors.danger.surface.pressed};
105
- color: ${semanticColors.danger.text.pressed};
106
- }
107
- &:disabled {
108
- border: 1px solid ${semanticColors.danger.surface.disabled};
109
- color: ${semanticColors.danger.text.disabled};
110
- }
111
- `,
112
- ghost: css`
113
- background: transparent;
114
- color: ${semanticColors.branding.text.accent.enabled};
115
- border: none;
116
- &:hover {
117
- color: ${semanticColors.branding.text.accent.hover};
118
- }
119
- &:active {
120
- color: ${semanticColors.branding.text.accent.pressed};
121
- }
122
- &:disabled {
123
- color: ${semanticColors.branding.text.accent.disabled};
124
- }
125
- `,
126
-
127
- ghost_alert: css`
128
- background: transparent;
129
- color: ${semanticColors.danger.text.enabled};
130
- border: none;
131
- &:hover {
132
- color: ${semanticColors.danger.text.hover};
133
- }
134
- &:active {
135
- color: ${semanticColors.danger.text.pressed};
136
- }
137
- &:disabled {
138
- color: ${semanticColors.danger.text.disabled};
139
- }
140
- `,
141
- danger: css`
142
- background: ${semanticColors.danger.surface.enabled};
143
- color: ${semanticColors.danger.text.onSurface};
144
- border: none;
145
- &:hover {
146
- background: ${semanticColors.danger.surface.hover};
147
- }
148
- &:active {
149
- background: ${semanticColors.danger.surface.pressed};
150
- }
151
- &:disabled {
152
- background: ${semanticColors.danger.surface.disabled};
153
- }
154
- `,
155
- alert: css`
156
- background: transparent;
157
- color: ${semanticColors.neutral[700]};
158
- border: 1px solid ${semanticColors.neutral[700]};
159
- &:hover {
160
- background: ${semanticColors.neutral[200]};
161
- color: ${semanticColors.neutral[600]};
162
- }
163
- &:active {
164
- background: ${semanticColors.neutral[300]};
165
- }
166
- &:disabled {
167
- color: ${semanticColors.neutral[400]};
168
- }
169
- `,
170
-
171
- 'danger-no-fill': css`
172
- background: transparent;
173
- color: ${semanticColors.danger.text.enabled};
174
- border: none;
175
- &:hover {
176
- color: ${semanticColors.danger.text.hover};
177
- }
178
- &:active {
179
- color: ${semanticColors.danger.text.pressed};
180
- }
181
- &:disabled {
182
- color: ${semanticColors.danger.text.disabled};
183
- }
184
- `,
185
- 'accent-outline': css`
186
- background: transparent;
187
- color: ${semanticColors.branding.text.accent.enabled};
188
- border: 1px solid ${semanticColors.branding.border.enabled};
189
- &:hover {
190
- color: ${semanticColors.branding.text.accent.hover};
191
- border: 1px solid ${semanticColors.branding.border.hover};
192
- }
193
- &:active {
194
- color: ${semanticColors.branding.text.accent.pressed};
195
- border: 1px solid ${semanticColors.branding.border.pressed};
196
- }
197
- &:disabled {
198
- color: ${semanticColors.branding.text.accent.disabled};
199
- border: 1px solid ${semanticColors.branding.border.disabled};
200
- }
201
- `,
202
- 'accent-fill': css`
203
- background: ${semanticColors.branding.surface.enabled};
204
- color: ${semanticColors.branding.text.onSurfaceAccent.enabled};
205
- border: none;
206
- &:hover {
207
- background: ${semanticColors.branding.surface.hover};
208
- }
209
- &:active {
210
- background: ${semanticColors.branding.surface.pressed};
211
- }
212
- &:disabled {
213
- background: ${semanticColors.branding.surface.disabled};
214
- }
215
- `,
216
- 'secondary-outline': css`
217
- background: transparent;
218
- color: ${semanticColors.global.text.subtitle.enabled};
219
- border: 1px solid ${semanticColors.global.border.strong};
220
- &:hover {
221
- background: ${semanticColors.neutral[200]};
222
- }
223
- &:active {
224
- background: ${semanticColors.neutral[300]};
225
- }
226
- &:disabled {
227
- color: ${semanticColors.global.text.onSurface.enabled};
228
- border: 1px solid ${semanticColors.global.text.onSurface.enabled};
229
- background: ${semanticColors.global.surface.disabled};
230
- }
231
- `,
232
- 'danger-fill': css`
233
- background: ${semanticColors.danger.surface.enabled};
234
- color: ${semanticColors.danger.text.onSurface};
235
- border: none;
236
- &:hover {
237
- background: ${semanticColors.danger.surface.hover};
238
- }
239
- &:active {
240
- background: ${semanticColors.danger.surface.pressed};
241
- }
242
- &:disabled {
243
- background: ${semanticColors.danger.surface.disabled};
244
- }
245
- `,
246
- };
247
-
248
- export const StyledButton = styled.button<{
249
- $size: keyof typeof buttonSizes;
250
- $variant: keyof typeof buttonVariants;
251
- $width?: string;
252
- $height?: string;
253
- $radius?: string;
254
- $fontSize?: string;
255
- $disabled?: boolean;
256
- }>`
257
- display: flex;
258
- align-items: center;
259
- justify-content: center;
260
- font-weight: 500;
261
- border-radius: ${({ $radius }) =>
262
- semanticRadius.global.radius[
263
- ($radius as keyof typeof semanticRadius.global.radius) || 'md'
264
- ]};
265
- cursor: pointer;
266
- transition: all 0.2s ease-in-out;
267
-
268
- gap: ${semanticSizes.global.gap.sm};
269
-
270
- ${({ $size }) => buttonSizes[$size]}
271
- ${({ $variant }) => buttonVariants[$variant]}
272
-
273
- width: ${({ $width }) => $width || 'auto'};
274
- height: ${({ $height }) => $height || 'auto'};
275
-
276
- &:disabled {
277
- cursor: not-allowed;
278
- opacity: 0.6;
279
- }
280
- `;
1
+ import styled, { css } from 'styled-components';
2
+ import {
3
+ semanticColors,
4
+ semanticSizes,
5
+ semanticRadius,
6
+ typographyTokens,
7
+ } from '../../../styles/tokens';
8
+
9
+ const buttonSizes = {
10
+ sm: css`
11
+ padding: ${semanticSizes.global.padding.md};
12
+ font-size: ${typographyTokens.fontSizes.labelS};
13
+ `,
14
+ md: css`
15
+ padding: ${semanticSizes.global.padding.md}${' '}${semanticSizes.global
16
+ .padding.xl};
17
+ font-size: ${typographyTokens.fontSizes.bodyS};
18
+ `,
19
+ lg: css`
20
+ padding: ${semanticSizes.global.padding.md}${' '}${semanticSizes.global
21
+ .padding.xl};
22
+ font-size: ${typographyTokens.fontSizes.bodyL};
23
+ `,
24
+ };
25
+
26
+ const buttonVariants = {
27
+ primary: css`
28
+ background: ${semanticColors.branding.surface.enabled};
29
+ color: ${semanticColors.base.background};
30
+ border: none;
31
+ &:hover {
32
+ background: ${semanticColors.branding.surface.hover};
33
+ }
34
+ &:active {
35
+ background: ${semanticColors.branding.surface.pressed};
36
+ }
37
+ &:disabled {
38
+ background: ${semanticColors.branding.surface.disabled};
39
+ }
40
+ `,
41
+ outline: css`
42
+ border: 1px solid ${semanticColors.branding.border.enabled};
43
+ color: ${semanticColors.branding.text.accent.enabled};
44
+ background: transparent;
45
+ &:hover {
46
+ border: 1px solid ${semanticColors.branding.border.hover};
47
+ color: ${semanticColors.branding.text.accent.hover};
48
+ }
49
+ &:active {
50
+ border: 1px solid ${semanticColors.branding.border.pressed};
51
+ color: ${semanticColors.branding.text.accent.pressed};
52
+ }
53
+ &:disabled {
54
+ color: ${semanticColors.branding.text.accent.disabled};
55
+ border: 1px solid ${semanticColors.branding.border.disabled};
56
+ }
57
+ `,
58
+ outline_ghost: css`
59
+ border: 1px solid ${semanticColors.global.text.subtitle.enabled};
60
+ color: ${semanticColors.global.text.subtitle.enabled};
61
+ background: transparent;
62
+ &:hover {
63
+ border: 1px solid ${semanticColors.global.text.subtitle.enabled};
64
+ color: ${semanticColors.global.text.subtitle.enabled};
65
+ }
66
+ &:active {
67
+ border: 1px solid ${semanticColors.global.text.subtitle.enabled};
68
+ color: ${semanticColors.global.text.subtitle.enabled};
69
+ }
70
+ &:disabled {
71
+ color: ${semanticColors.global.text.onSurface.enabled};
72
+ border: 1px solid ${semanticColors.global.text.onSurface.enabled};
73
+ background: ${semanticColors.global.surface.disabled};
74
+ }
75
+ `,
76
+ outline_ghost_disabled: css`
77
+ border: 1px solid ${semanticColors.global.border.medium};
78
+ color: ${semanticColors.global.text.subtitle.enabled};
79
+ background: transparent;
80
+ &:hover {
81
+ border: 1px solid ${semanticColors.global.text.subtitle.enabled};
82
+ color: ${semanticColors.global.text.subtitle.enabled};
83
+ }
84
+ &:active {
85
+ border: 1px solid ${semanticColors.global.text.subtitle.enabled};
86
+ color: ${semanticColors.global.text.subtitle.enabled};
87
+ }
88
+ &:disabled {
89
+ color: ${semanticColors.global.text.onSurface.enabled};
90
+ border: 1px solid ${semanticColors.global.text.onSurface.enabled};
91
+ background: ${semanticColors.global.surface.disabled};
92
+ }
93
+ `,
94
+ outline_danger: css`
95
+ border: 1px solid ${semanticColors.danger.surface.enabled};
96
+ color: ${semanticColors.danger.text.enabled};
97
+ background: transparent;
98
+ &:hover {
99
+ border: 1px solid ${semanticColors.danger.surface.hover};
100
+ color: ${semanticColors.danger.text.hover};
101
+ }
102
+ &:active {
103
+ border: 1px solid ${semanticColors.danger.surface.pressed};
104
+ color: ${semanticColors.danger.text.pressed};
105
+ }
106
+ &:disabled {
107
+ border: 1px solid ${semanticColors.danger.surface.disabled};
108
+ color: ${semanticColors.danger.text.disabled};
109
+ }
110
+ `,
111
+ ghost: css`
112
+ background: transparent;
113
+ color: ${semanticColors.branding.text.accent.enabled};
114
+ border: none;
115
+ &:hover {
116
+ color: ${semanticColors.branding.text.accent.hover};
117
+ }
118
+ &:active {
119
+ color: ${semanticColors.branding.text.accent.pressed};
120
+ }
121
+ &:disabled {
122
+ color: ${semanticColors.branding.text.accent.disabled};
123
+ }
124
+ `,
125
+
126
+ ghost_alert: css`
127
+ background: transparent;
128
+ color: ${semanticColors.danger.text.enabled};
129
+ border: none;
130
+ &:hover {
131
+ color: ${semanticColors.danger.text.hover};
132
+ }
133
+ &:active {
134
+ color: ${semanticColors.danger.text.pressed};
135
+ }
136
+ &:disabled {
137
+ color: ${semanticColors.danger.text.disabled};
138
+ }
139
+ `,
140
+ danger: css`
141
+ background: ${semanticColors.danger.surface.enabled};
142
+ color: ${semanticColors.danger.text.onSurface};
143
+ border: none;
144
+ &:hover {
145
+ background: ${semanticColors.danger.surface.hover};
146
+ }
147
+ &:active {
148
+ background: ${semanticColors.danger.surface.pressed};
149
+ }
150
+ &:disabled {
151
+ background: ${semanticColors.danger.surface.disabled};
152
+ }
153
+ `,
154
+ alert: css`
155
+ background: transparent;
156
+ color: ${semanticColors.neutral[700]};
157
+ border: 1px solid ${semanticColors.neutral[700]};
158
+ &:hover {
159
+ background: ${semanticColors.neutral[200]};
160
+ color: ${semanticColors.neutral[600]};
161
+ }
162
+ &:active {
163
+ background: ${semanticColors.neutral[300]};
164
+ }
165
+ &:disabled {
166
+ color: ${semanticColors.neutral[400]};
167
+ }
168
+ `,
169
+
170
+ 'danger-no-fill': css`
171
+ background: transparent;
172
+ color: ${semanticColors.danger.text.enabled};
173
+ border: none;
174
+ &:hover {
175
+ color: ${semanticColors.danger.text.hover};
176
+ }
177
+ &:active {
178
+ color: ${semanticColors.danger.text.pressed};
179
+ }
180
+ &:disabled {
181
+ color: ${semanticColors.danger.text.disabled};
182
+ }
183
+ `,
184
+ 'accent-outline': css`
185
+ background: transparent;
186
+ color: ${semanticColors.branding.text.accent.enabled};
187
+ border: 1px solid ${semanticColors.branding.border.enabled};
188
+ &:hover {
189
+ color: ${semanticColors.branding.text.accent.hover};
190
+ border: 1px solid ${semanticColors.branding.border.hover};
191
+ }
192
+ &:active {
193
+ color: ${semanticColors.branding.text.accent.pressed};
194
+ border: 1px solid ${semanticColors.branding.border.pressed};
195
+ }
196
+ &:disabled {
197
+ color: ${semanticColors.branding.text.accent.disabled};
198
+ border: 1px solid ${semanticColors.branding.border.disabled};
199
+ }
200
+ `,
201
+ 'accent-fill': css`
202
+ background: ${semanticColors.branding.surface.enabled};
203
+ color: ${semanticColors.branding.text.onSurfaceAccent.enabled};
204
+ border: none;
205
+ &:hover {
206
+ background: ${semanticColors.branding.surface.hover};
207
+ }
208
+ &:active {
209
+ background: ${semanticColors.branding.surface.pressed};
210
+ }
211
+ &:disabled {
212
+ background: ${semanticColors.branding.surface.disabled};
213
+ }
214
+ `,
215
+ 'secondary-outline': css`
216
+ background: transparent;
217
+ color: ${semanticColors.global.text.subtitle.enabled};
218
+ border: 1px solid ${semanticColors.global.border.strong};
219
+ &:hover {
220
+ background: ${semanticColors.neutral[200]};
221
+ }
222
+ &:active {
223
+ background: ${semanticColors.neutral[300]};
224
+ }
225
+ &:disabled {
226
+ color: ${semanticColors.global.text.onSurface.enabled};
227
+ border: 1px solid ${semanticColors.global.text.onSurface.enabled};
228
+ background: ${semanticColors.global.surface.disabled};
229
+ }
230
+ `,
231
+ 'danger-fill': css`
232
+ background: ${semanticColors.danger.surface.enabled};
233
+ color: ${semanticColors.danger.text.onSurface};
234
+ border: none;
235
+ &:hover {
236
+ background: ${semanticColors.danger.surface.hover};
237
+ }
238
+ &:active {
239
+ background: ${semanticColors.danger.surface.pressed};
240
+ }
241
+ &:disabled {
242
+ background: ${semanticColors.danger.surface.disabled};
243
+ }
244
+ `,
245
+ };
246
+
247
+ export const StyledButton = styled.button<{
248
+ $size: keyof typeof buttonSizes;
249
+ $variant: keyof typeof buttonVariants;
250
+ $width?: string;
251
+ $height?: string;
252
+ $radius?: string;
253
+ $fontSize?: string;
254
+ $disabled?: boolean;
255
+ }>`
256
+ display: flex;
257
+ align-items: center;
258
+ justify-content: center;
259
+ font-weight: 500;
260
+ border-radius: ${({ $radius }) =>
261
+ semanticRadius.global.radius[
262
+ ($radius as keyof typeof semanticRadius.global.radius) || 'md'
263
+ ]};
264
+ cursor: pointer;
265
+ transition: all 0.2s ease-in-out;
266
+
267
+ gap: ${semanticSizes.global.gap.sm};
268
+
269
+ ${({ $size }) => buttonSizes[$size]}
270
+ ${({ $variant }) => buttonVariants[$variant]}
271
+
272
+ width: ${({ $width }) => $width || 'auto'};
273
+ height: ${({ $height }) => $height || 'auto'};
274
+
275
+ &:disabled {
276
+ cursor: not-allowed;
277
+ opacity: 0.6;
278
+ }
279
+ `;