@usefui/components 1.6.0 → 1.7.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 (69) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/dist/index.d.mts +380 -52
  3. package/dist/index.d.ts +380 -52
  4. package/dist/index.js +2534 -511
  5. package/dist/index.mjs +2520 -508
  6. package/package.json +3 -3
  7. package/src/__tests__/Avatar.test.tsx +55 -55
  8. package/src/accordion/Accordion.stories.tsx +6 -4
  9. package/src/accordion/index.tsx +1 -2
  10. package/src/avatar/Avatar.stories.tsx +37 -7
  11. package/src/avatar/index.tsx +90 -19
  12. package/src/avatar/styles/index.ts +58 -12
  13. package/src/badge/Badge.stories.tsx +27 -5
  14. package/src/badge/index.tsx +21 -13
  15. package/src/badge/styles/index.ts +69 -40
  16. package/src/button/Button.stories.tsx +40 -27
  17. package/src/button/index.tsx +13 -9
  18. package/src/button/styles/index.ts +308 -47
  19. package/src/card/index.tsx +2 -4
  20. package/src/checkbox/Checkbox.stories.tsx +72 -33
  21. package/src/checkbox/index.tsx +8 -6
  22. package/src/checkbox/styles/index.ts +239 -19
  23. package/src/collapsible/Collapsible.stories.tsx +6 -4
  24. package/src/dialog/Dialog.stories.tsx +173 -31
  25. package/src/dialog/styles/index.ts +15 -8
  26. package/src/dropdown/Dropdown.stories.tsx +61 -23
  27. package/src/dropdown/index.tsx +42 -31
  28. package/src/dropdown/styles/index.ts +30 -19
  29. package/src/field/Field.stories.tsx +183 -24
  30. package/src/field/index.tsx +930 -13
  31. package/src/field/styles/index.ts +246 -14
  32. package/src/field/types/index.ts +31 -0
  33. package/src/field/utils/index.ts +201 -0
  34. package/src/index.ts +2 -1
  35. package/src/message-bubble/MessageBubble.stories.tsx +59 -12
  36. package/src/message-bubble/index.tsx +22 -4
  37. package/src/message-bubble/styles/index.ts +4 -7
  38. package/src/otp-field/OTPField.stories.tsx +22 -24
  39. package/src/otp-field/index.tsx +9 -0
  40. package/src/otp-field/styles/index.ts +114 -16
  41. package/src/otp-field/types/index.ts +9 -1
  42. package/src/overlay/styles/index.ts +1 -0
  43. package/src/ruler/Ruler.stories.tsx +43 -0
  44. package/src/ruler/constants/index.ts +3 -0
  45. package/src/ruler/hooks/index.tsx +53 -0
  46. package/src/ruler/index.tsx +239 -0
  47. package/src/ruler/styles/index.tsx +154 -0
  48. package/src/ruler/types/index.ts +17 -0
  49. package/src/select/Select.stories.tsx +91 -0
  50. package/src/select/hooks/index.tsx +71 -0
  51. package/src/select/index.tsx +331 -0
  52. package/src/select/styles/index.tsx +156 -0
  53. package/src/shimmer/Shimmer.stories.tsx +6 -4
  54. package/src/skeleton/index.tsx +7 -6
  55. package/src/spinner/Spinner.stories.tsx +29 -4
  56. package/src/spinner/index.tsx +16 -6
  57. package/src/spinner/styles/index.ts +41 -22
  58. package/src/switch/Switch.stories.tsx +46 -17
  59. package/src/switch/index.tsx +5 -8
  60. package/src/switch/styles/index.ts +45 -45
  61. package/src/tabs/Tabs.stories.tsx +43 -15
  62. package/src/text-area/Textarea.stories.tsx +45 -8
  63. package/src/text-area/index.tsx +9 -6
  64. package/src/text-area/styles/index.ts +1 -1
  65. package/src/toggle/Toggle.stories.tsx +6 -4
  66. package/src/tree/Tree.stories.tsx +6 -4
  67. package/src/privacy-field/PrivacyField.stories.tsx +0 -29
  68. package/src/privacy-field/index.tsx +0 -56
  69. package/src/privacy-field/styles/index.ts +0 -17
@@ -79,39 +79,158 @@ const ButtonIconStyles = css`
79
79
  }
80
80
  }
81
81
  `;
82
+ const ButtonSizeStyles = css`
83
+ &[data-size="small"] {
84
+ font-size: var(--fontsize-small-60);
85
+
86
+ gap: var(--measurement-medium-10);
87
+ padding: var(--measurement-medium-10) var(--measurement-medium-30);
88
+ min-width: var(--measurement-medium-60);
89
+ min-height: var(--measurement-medium-60);
90
+
91
+ svg {
92
+ width: var(--fontsize-medium-10);
93
+ height: var(--fontsize-medium-10);
94
+ }
95
+ }
96
+ &[data-size="medium"] {
97
+ padding: var(--measurement-medium-10) var(--measurement-medium-60);
98
+ min-width: var(--measurement-medium-60);
99
+ min-height: var(--measurement-medium-80);
100
+ }
101
+ &[data-size="large"] {
102
+ padding: var(--measurement-medium-10) var(--measurement-medium-60);
103
+ min-width: var(--measurement-medium-60);
104
+ min-height: var(--measurement-medium-90);
105
+ }
106
+ `;
107
+ const ButtonShapeStyles = css`
108
+ &[data-shape="square"] {
109
+ border-radius: 0;
110
+ }
111
+ &[data-shape="smooth"] {
112
+ border-radius: var(--measurement-medium-20);
113
+ }
114
+ &[data-shape="round"] {
115
+ border-radius: var(--measurement-large-90);
116
+ }
117
+ `;
118
+ const ButtonBeforeDefaultStyles = css`
119
+ content: "";
120
+ inset: 0;
121
+
122
+ border-radius: inherit;
123
+ border: var(--measurement-small-10) solid transparent;
124
+ position: absolute;
125
+ box-sizing: border-box;
126
+ margin: 0;
127
+ padding: 0;
128
+
129
+ mask-composite: intersect;
130
+
131
+ transition: all ease-in-out 0.2s;
132
+ `;
82
133
  const ButtonVariantsStyles = css`
83
134
  &[data-variant="primary"] {
84
- color: var(--body-color) !important;
135
+ color: var(--body-color-alpha-80);
85
136
  background-color: var(--font-color);
137
+ background: linear-gradient(
138
+ 180deg,
139
+ var(--font-color) 50%,
140
+ var(--font-color-alpha-60) 100%
141
+ );
142
+ background-size: 100% 200%;
143
+ background-position: 0% 50%;
144
+
145
+ ::before {
146
+ ${ButtonBeforeDefaultStyles}
147
+ border-color: var(--body-color-alpha-20);
148
+ mask-image: linear-gradient(var(--body-color-alpha-90), transparent);
149
+ }
86
150
 
87
151
  &:hover,
88
152
  &:focus,
89
153
  &:active {
90
154
  color: var(--body-color);
155
+ background-position: 0% 25%;
156
+
157
+ ::before {
158
+ border-color: var(--body-color-alpha-10);
159
+ }
91
160
  }
92
161
  }
93
162
  &[data-variant="secondary"] {
94
163
  color: var(--font-color-alpha-60);
95
- background-color: transparent;
96
164
  border-color: var(--font-color-alpha-10);
97
165
 
166
+ background-color: var(--body-color);
167
+ background: linear-gradient(
168
+ 180deg,
169
+ transparent 50%,
170
+ var(--contrast-color) 100%
171
+ );
172
+ background-size: 100% 200%;
173
+ background-position: 0% 50%;
174
+
175
+ ::before {
176
+ ${ButtonBeforeDefaultStyles}
177
+ border-color: var(--font-color-alpha-10);
178
+ mask-image: linear-gradient(var(--font-color-alpha-30), transparent);
179
+ }
180
+
98
181
  &:hover,
99
182
  &:focus,
100
183
  &:active {
101
184
  color: var(--font-color);
102
185
  background-color: var(--font-color-alpha-10);
186
+ background-position: 0% 75%;
103
187
  border-color: transparent;
104
188
  }
105
189
  }
106
190
  &[data-variant="tertiary"] {
107
- color: var(--font-color-alpha-80);
191
+ color: var(--font-color-alpha-60);
192
+
108
193
  background-color: transparent;
194
+ background: linear-gradient(
195
+ -180deg,
196
+ transparent 50%,
197
+ var(--font-color-alpha-10) 100%
198
+ );
199
+ background-size: 100% 200%;
200
+ background-position: 0% 10%;
109
201
 
110
202
  &:hover,
111
203
  &:focus,
112
204
  &:active {
113
205
  color: var(--font-color);
114
206
  background-color: var(--font-color-alpha-10);
207
+ background-position: 0% 75%;
208
+
209
+ ::before {
210
+ ${ButtonBeforeDefaultStyles}
211
+ border-color: var(--font-color-alpha-10);
212
+ mask-image: linear-gradient(var(--font-color-alpha-30), transparent);
213
+ }
214
+ }
215
+ }
216
+ &[data-variant="mono"] {
217
+ color: var(--font-color-alpha-80);
218
+ background-color: var(--contrast-color);
219
+
220
+ ::before {
221
+ ${ButtonBeforeDefaultStyles}
222
+ border-color: var(--font-color-alpha-10);
223
+ mask-image: linear-gradient(var(--font-color-alpha-30), transparent);
224
+ }
225
+
226
+ &:hover,
227
+ &:focus,
228
+ &:active {
229
+ color: var(--font-color);
230
+
231
+ ::before {
232
+ border-color: var(--font-color-alpha-30);
233
+ }
115
234
  }
116
235
  }
117
236
  &[data-variant="border"] {
@@ -125,36 +244,213 @@ const ButtonVariantsStyles = css`
125
244
  color: var(--font-color);
126
245
  border-color: var(--font-color-alpha-20);
127
246
  }
247
+
248
+ ::before {
249
+ ${ButtonBeforeDefaultStyles}
250
+ border-color: var(--font-color-alpha-10);
251
+ mask-image: linear-gradient(var(--font-color-alpha-20), transparent);
252
+ }
253
+ }
254
+
255
+ &[data-variant="accent"] {
256
+ background-color: var(--color-accent);
257
+ background: linear-gradient(
258
+ 180deg,
259
+ var(--color-accent) 50%,
260
+ var(--shade-accent-30) 100%
261
+ );
262
+ background-size: 100% 200%;
263
+ background-position: 0% 50%;
264
+
265
+ ::before {
266
+ ${ButtonBeforeDefaultStyles}
267
+ border-color: var(--shade-accent-10);
268
+ mask-image: linear-gradient(var(--shade-accent-10), transparent);
269
+ }
270
+
271
+ &:hover,
272
+ &:focus,
273
+ &:active {
274
+ background-color: var(--tint-accent-10);
275
+
276
+ background-position: 0% 75%;
277
+ }
278
+ }
279
+
280
+ &[data-variant="meta"] {
281
+ color: var(--alpha-mono-white-80);
282
+ background-color: var(--color-blue);
283
+ background: linear-gradient(
284
+ 180deg,
285
+ var(--tint-blue-10) 50%,
286
+ var(--alpha-blue-60) 100%
287
+ );
288
+ background-size: 100% 200%;
289
+ background-position: 0% 50%;
290
+
291
+ ::before {
292
+ ${ButtonBeforeDefaultStyles}
293
+ border-color: var(--tint-blue-30);
294
+ mask-image: linear-gradient(var(--tint-blue-10), transparent);
295
+ }
296
+
297
+ &:hover,
298
+ &:focus,
299
+ &:active {
300
+ color: var(--color-mono-white);
301
+ background-color: var(--shade-blue-10);
302
+
303
+ background-position: 0% 25%;
304
+
305
+ ::before {
306
+ border-color: var(--tint-blue-40);
307
+ }
308
+ }
309
+ }
310
+ &[data-variant="hint"] {
311
+ color: var(--alpha-mono-white-80);
312
+ background-color: var(--color-purple);
313
+ background: linear-gradient(
314
+ 180deg,
315
+ var(--shade-purple-10) 50%,
316
+ var(--alpha-purple-60) 100%
317
+ );
318
+ background-size: 100% 200%;
319
+ background-position: 0% 50%;
320
+
321
+ ::before {
322
+ ${ButtonBeforeDefaultStyles}
323
+ border-color: var(--shade-purple-20);
324
+ mask-image: linear-gradient(var(--shade-purple-10), transparent);
325
+ }
326
+
327
+ &:hover,
328
+ &:focus,
329
+ &:active {
330
+ color: var(--color-mono-white);
331
+ background-color: var(--shade-purple-10);
332
+
333
+ background-position: 0% 25%;
334
+ }
335
+ }
336
+ &[data-variant="success"] {
337
+ color: var(--alpha-mono-white-90);
338
+ background-color: var(--shade-green-30);
339
+ background: linear-gradient(
340
+ 180deg,
341
+ var(--shade-green-10) 50%,
342
+ var(--alpha-green-60) 100%
343
+ );
344
+ background-size: 100% 200%;
345
+ background-position: 0% 50%;
346
+
347
+ ::before {
348
+ ${ButtonBeforeDefaultStyles}
349
+ border-color: var(--shade-green-20);
350
+ mask-image: linear-gradient(var(--shade-green-10), transparent);
351
+ }
352
+
353
+ &:hover,
354
+ &:focus,
355
+ &:active {
356
+ color: var(--color-mono-white);
357
+ background-color: var(--shade-green-10);
358
+
359
+ background-position: 0% 75%;
360
+ }
128
361
  }
129
362
  &[data-variant="danger"] {
130
- color: var(--color-mono-white);
363
+ color: var(--alpha-mono-white-80);
131
364
  background-color: var(--color-red);
365
+ background: linear-gradient(
366
+ 180deg,
367
+ var(--tint-red-10) 50%,
368
+ var(--alpha-red-60) 100%
369
+ );
370
+ background-size: 100% 200%;
371
+ background-position: 0% 50%;
372
+
373
+ ::before {
374
+ ${ButtonBeforeDefaultStyles}
375
+ border-color: var(--tint-red-60);
376
+ mask-image: linear-gradient(var(--tint-red-10), transparent);
377
+ }
132
378
 
133
379
  &:hover,
134
380
  &:focus,
135
381
  &:active {
382
+ color: var(--color-mono-white);
136
383
  background-color: var(--shade-red-10);
384
+ background-position: 0% 25%;
385
+
386
+ ::before {
387
+ border-color: var(--tint-red-80);
388
+ }
137
389
  }
138
390
  }
139
391
  &[data-variant="warning"] {
140
- color: var(--color-mono-dark);
392
+ color: var(--alpha-mono-dark-80);
141
393
  background-color: var(--color-orange);
394
+ background: linear-gradient(
395
+ 180deg,
396
+ var(--tint-orange-10) 50%,
397
+ var(--alpha-orange-60) 100%
398
+ );
399
+ background-size: 100% 200%;
400
+ background-position: 0% 50%;
401
+
402
+ ::before {
403
+ ${ButtonBeforeDefaultStyles}
404
+ border-color: var(--tint-orange-30);
405
+ mask-image: linear-gradient(var(--tint-orange-10), transparent);
406
+ }
142
407
 
143
408
  &:hover,
144
409
  &:focus,
145
410
  &:active {
411
+ color: var(--color-mono-dark);
146
412
  background-color: var(--shade-orange-10);
413
+
414
+ background-position: 0% 25%;
415
+
416
+ ::before {
417
+ border-color: var(--tint-orange-40);
418
+ }
147
419
  }
148
420
  }
149
- &[data-variant="mono"] {
150
- color: var(--font-color-alpha-80);
151
- background-color: var(--font-color-alpha-10);
421
+
422
+ &[data-variant="link"] {
423
+ position: relative;
424
+ border: none;
425
+ padding: 0;
426
+ background-color: transparent;
427
+ min-width: fit-content;
428
+ min-height: var(--measurement-medium-60);
429
+ color: currentColor;
430
+ opacity: 0.6;
431
+
432
+ ::before {
433
+ content: "";
434
+ position: absolute;
435
+ width: 0;
436
+ height: var(--measurement-small-30);
437
+ background-color: transparent;
438
+ bottom: calc(var(--measurement-small-80) * -1);
439
+ left: var(--measurement-small-10);
440
+
441
+ transition: all ease-in-out 0.2s;
442
+ transform-origin: left left;
443
+ }
152
444
 
153
445
  &:hover,
154
446
  &:focus,
155
447
  &:active {
156
- color: var(--font-color);
157
- border-color: var(--font-color-alpha-10);
448
+ opacity: 1;
449
+
450
+ ::before {
451
+ width: calc(100% - var(--measurement-small-10));
452
+ background-color: currentColor;
453
+ }
158
454
  }
159
455
  }
160
456
  &[data-variant="ghost"] {
@@ -162,8 +458,9 @@ const ButtonVariantsStyles = css`
162
458
  padding: 0;
163
459
  background-color: transparent;
164
460
  min-width: fit-content;
165
- min-height: var(--measurement-medium-60);
461
+ min-height: fit-content;
166
462
  color: var(--font-color-alpha-60);
463
+ line-height: 0;
167
464
 
168
465
  &:hover,
169
466
  &:focus,
@@ -172,42 +469,6 @@ const ButtonVariantsStyles = css`
172
469
  }
173
470
  }
174
471
  `;
175
- const ButtonSizeStyles = css`
176
- &[data-size="small"] {
177
- font-size: var(--fontsize-small-60);
178
-
179
- gap: var(--measurement-medium-10);
180
- padding: var(--measurement-medium-10) var(--measurement-medium-30);
181
- min-width: var(--measurement-medium-60);
182
- min-height: var(--measurement-medium-60);
183
-
184
- svg {
185
- width: var(--fontsize-medium-10);
186
- height: var(--fontsize-medium-10);
187
- }
188
- }
189
- &[data-size="medium"] {
190
- padding: var(--measurement-medium-10) var(--measurement-medium-60);
191
- min-width: var(--measurement-medium-90);
192
- min-height: var(--measurement-medium-80);
193
- }
194
- &[data-size="large"] {
195
- padding: var(--measurement-medium-10) var(--measurement-medium-60);
196
- min-width: var(--measurement-medium-90);
197
- min-height: var(--measurement-medium-90);
198
- }
199
- `;
200
- const ButtonShapeStyles = css`
201
- &[data-shape="square"] {
202
- border-radius: 0;
203
- }
204
- &[data-shape="smooth"] {
205
- border-radius: var(--measurement-medium-20);
206
- }
207
- &[data-shape="round"] {
208
- border-radius: var(--measurement-large-90);
209
- }
210
- `;
211
472
 
212
473
  export const ButtonWrapper = styled.button`
213
474
  &[data-raw="false"] {
@@ -3,7 +3,7 @@
3
3
  import React from "react";
4
4
  import { CardContainer, CardWrapper, CardsGrid } from "./styles";
5
5
 
6
- import type { IComponentSize, TComponentShape } from "../../../../types";
6
+ import type { IComponentShape, IComponentSize } from "../../../../types";
7
7
 
8
8
  export interface CardComposition {
9
9
  Body: typeof CardBody;
@@ -12,9 +12,7 @@ export interface CardComposition {
12
12
  }
13
13
 
14
14
  interface CardGridProps extends React.ComponentProps<"div">, IComponentSize {}
15
- interface CardProps extends React.ComponentProps<"div"> {
16
- shape?: TComponentShape;
17
- }
15
+ interface CardProps extends IComponentShape, React.ComponentProps<"div"> {}
18
16
 
19
17
  const CardGrid = (props: CardGridProps) => {
20
18
  const { sizing = "medium", children } = props;
@@ -1,7 +1,7 @@
1
1
  import React from "react";
2
2
  import type { Meta, StoryObj } from "@storybook/react";
3
3
 
4
- import { Checkbox } from "..";
4
+ import { Checkbox, Field, Page } from "..";
5
5
  import { ComponentVariantEnum, ComponentSizeEnum } from "../../../../types";
6
6
 
7
7
  const meta = {
@@ -10,9 +10,13 @@ const meta = {
10
10
  tags: ["autodocs"],
11
11
  decorators: [
12
12
  (Story) => (
13
- <div className="m-medium-30">
14
- <Story />
15
- </div>
13
+ <Page>
14
+ <Page.Content className="p-medium-30">
15
+ <div className="flex flex-column align-center justify-center h-100 g-medium-30">
16
+ <Story />
17
+ </div>
18
+ </Page.Content>
19
+ </Page>
16
20
  ),
17
21
  ],
18
22
  } satisfies Meta<typeof Checkbox>;
@@ -41,7 +45,7 @@ export const Default: Story = {
41
45
  },
42
46
  render: ({ ...args }) => (
43
47
  <Checkbox.Root>
44
- <Checkbox>
48
+ <Checkbox variant="primary">
45
49
  <Checkbox.Indicator />
46
50
  </Checkbox>
47
51
  </Checkbox.Root>
@@ -56,43 +60,78 @@ export const DefaultChecked: Story = {
56
60
  </Checkbox.Root>
57
61
  ),
58
62
  };
59
- export const Group: Story = {
60
- render: ({ ...args }) => (
61
- <div className="flex g-medium-30">
62
- {[false, false, true].map((item: boolean, key: number) => (
63
- <Checkbox.Root key={`${item}-${key}`}>
64
- <Checkbox defaultChecked={item} onChange={() => null}>
65
- <Checkbox.Indicator />
66
- </Checkbox>
67
- </Checkbox.Root>
68
- ))}
69
- </div>
70
- ),
71
- };
63
+
72
64
  export const Sizes: Story = {
73
65
  render: ({ ...args }) => (
74
66
  <div className="flex g-medium-30">
75
- {["large", "medium", "small"].map((item: string) => (
76
- <Checkbox.Root key={item}>
77
- <Checkbox sizing={item} onChange={() => null}>
78
- <Checkbox.Indicator />
79
- </Checkbox>
80
- </Checkbox.Root>
81
- ))}
67
+ <div className="flex flex-column g-medium-30">
68
+ {["small", "medium", "large"].map((item: string) => (
69
+ <Checkbox.Root key={item}>
70
+ <Field.Label
71
+ id={`${item}-label`}
72
+ htmlFor={item}
73
+ className="flex align-center g-medium-30"
74
+ optional
75
+ >
76
+ <Checkbox
77
+ defaultChecked
78
+ id={item}
79
+ name={item}
80
+ sizing={item as "small"}
81
+ >
82
+ <Checkbox.Indicator />
83
+ </Checkbox>
84
+
85
+ <div className="flex flex-column">
86
+ <Field.Meta variant="emphasis">{item}</Field.Meta>
87
+ <Field.Meta variant="hint" className="fs-small-60">
88
+ The {item} Checkbox variant
89
+ </Field.Meta>
90
+ </div>
91
+ </Field.Label>
92
+ </Checkbox.Root>
93
+ ))}
94
+ </div>
82
95
  </div>
83
96
  ),
84
97
  };
85
98
  export const Variants: Story = {
86
99
  render: ({ ...args }) => (
87
- <div className="flex g-medium-30">
88
- {["primary", "mono", "border", "ghost"].map((item: string) => (
100
+ <div className="flex flex-column g-medium-30">
101
+ {[
102
+ "accent",
103
+ "primary",
104
+ "secondary",
105
+ "tertiary",
106
+ "hint",
107
+ "meta",
108
+ "success",
109
+ "danger",
110
+ "warning",
111
+ ].map((item: string) => (
89
112
  <Checkbox.Root key={item}>
90
- <Checkbox name={item} variant={item}>
91
- <Checkbox.Indicator />
92
- </Checkbox>
93
- <label id={`${item}-label`} htmlFor={item}>
94
- <small>{item}</small>
95
- </label>
113
+ <Field.Label
114
+ id={`${item}-label`}
115
+ htmlFor={item}
116
+ className="flex align-center g-medium-30"
117
+ optional
118
+ >
119
+ <Checkbox
120
+ defaultChecked
121
+ id={item}
122
+ name={item}
123
+ variant={item as "primary"}
124
+ >
125
+ <Checkbox.Indicator />
126
+ </Checkbox>
127
+
128
+ <div className="flex flex-column">
129
+ <Field.Meta variant="emphasis">{item}</Field.Meta>
130
+ <Field.Meta variant="hint" className="fs-small-60">
131
+ The {item} Checkbox variant
132
+ </Field.Meta>
133
+ </div>
134
+ </Field.Label>
96
135
  </Checkbox.Root>
97
136
  ))}
98
137
  </div>
@@ -1,15 +1,18 @@
1
1
  "use client";
2
2
 
3
3
  import React from "react";
4
+
4
5
  import { CheckboxProvider, useCheckbox } from "./hooks";
5
6
  import { CheckboxWrapper, NativeInput, Indicator } from "./styles";
7
+
6
8
  import {
7
9
  IReactChildren,
8
10
  IComponentStyling,
9
11
  ComponentSizeEnum,
10
12
  IComponentSize,
11
13
  ComponentVariantEnum,
12
- IComponentVariant,
14
+ TComponentVariant,
15
+ TComponentVariantExtended,
13
16
  } from "../../../../types";
14
17
 
15
18
  export interface ICheckboxComposition {
@@ -18,10 +21,9 @@ export interface ICheckboxComposition {
18
21
  }
19
22
 
20
23
  export interface ICheckboxProperties
21
- extends IComponentStyling,
22
- IComponentSize,
23
- IComponentVariant,
24
- React.ComponentProps<"input"> {}
24
+ extends IComponentStyling, IComponentSize, React.ComponentProps<"input"> {
25
+ variant?: TComponentVariant | TComponentVariantExtended | "accent";
26
+ }
25
27
 
26
28
  /**
27
29
  * Checkbox are used to select one or more options from a set.
@@ -44,7 +46,7 @@ const Checkbox = (props: ICheckboxProperties) => {
44
46
  const {
45
47
  raw,
46
48
  sizing = ComponentSizeEnum.Medium,
47
- variant = ComponentVariantEnum.Mono,
49
+ variant = ComponentVariantEnum.Secondary,
48
50
  name,
49
51
  disabled,
50
52
  required,