@robuust-digital/vue-components 2.0.0-rc.0 → 2.0.0-rc.10

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 (37) hide show
  1. package/CHANGELOG.md +246 -0
  2. package/dist/_shared/{ButtonBase-CQjlJ85F.js → ButtonBase-DfkwHIhN.js} +10 -10
  3. package/dist/_shared/Modal-DdpJnce6.js +200 -0
  4. package/dist/_shared/{Tooltip-BKXJoJ1x.js → Tooltip-B93ZF7IF.js} +16 -16
  5. package/dist/combobox/combobox.css +76 -34
  6. package/dist/combobox/index.js +46 -46
  7. package/dist/core/accordion.css +21 -10
  8. package/dist/core/alert.css +26 -20
  9. package/dist/core/badge.css +10 -10
  10. package/dist/core/button.css +31 -19
  11. package/dist/core/checkbox.css +35 -10
  12. package/dist/core/empty-state.css +6 -6
  13. package/dist/core/index.js +351 -347
  14. package/dist/core/input.css +23 -13
  15. package/dist/core/pagination.css +68 -9
  16. package/dist/core/radio.css +35 -10
  17. package/dist/core/select.css +25 -16
  18. package/dist/core/styles.css +5 -35
  19. package/dist/core/table.css +66 -5
  20. package/dist/core/tabs.css +20 -9
  21. package/dist/core/textarea.css +17 -10
  22. package/dist/core/utilities.css +12 -0
  23. package/dist/dialogs/drawer.css +140 -4
  24. package/dist/dialogs/index.js +100 -93
  25. package/dist/dialogs/modal.css +124 -22
  26. package/dist/dialogs/styles.css +20 -0
  27. package/dist/dropdown/dropdown.css +79 -49
  28. package/dist/dropdown/index.js +38 -38
  29. package/dist/lightswitch/lightswitch.css +19 -8
  30. package/dist/rich-text-editor/index.js +42 -39
  31. package/dist/rich-text-editor/rich-text.css +28 -10
  32. package/dist/toast/index.js +35 -34
  33. package/dist/toast/toast.css +54 -28
  34. package/dist/tooltip/index.js +1 -1
  35. package/dist/tooltip/tooltip.css +18 -16
  36. package/package.json +22 -8
  37. package/dist/_shared/Modal-COVlUEud.js +0 -193
@@ -7,6 +7,8 @@
7
7
  --rvc-input-box-shadow: var(--rvc-base-box-shadow);
8
8
  --rvc-input-color: var(--rvc-base-input-color);
9
9
  --rvc-input-bg-color: var(--rvc-base-input-bg-color);
10
+ --rvc-input-bg-color-disabled: var(--rvc-base-input-bg-color-disabled);
11
+ --rvc-input-disabled-opacity: var(--rvc-base-input-disabled-opacity);
10
12
  --rvc-input-icon-size: var(--rvc-base-input-icon-size);
11
13
  --rvc-input-icon-color: var(--rvc-base-input-icon-color);
12
14
  --rvc-input-padding-x: var(--rvc-base-input-padding-x);
@@ -26,23 +28,23 @@
26
28
  grid-template-columns: 1fr;
27
29
 
28
30
  input {
29
- border-radius: var(--rvc-input-border-radius);
31
+ position: relative;
32
+ grid-column-start: 1;
33
+ grid-row-start: 1;
34
+ width: 100%;
35
+ height: var(--rvc-input-height);
36
+ padding-inline: var(--rvc-input-padding-x);
30
37
  border-width: var(--rvc-input-border-width);
38
+ border-radius: var(--rvc-input-border-radius);
31
39
  border-color: var(--rvc-input-border-color);
32
- padding-inline: var(--rvc-input-padding-x);
40
+ outline-width: 0;
33
41
  background-color: var(--rvc-input-bg-color);
42
+ background-image: none;
43
+ box-shadow: var(--rvc-input-box-shadow);
44
+ color: var(--rvc-input-color);
34
45
  font-size: var(--rvc-input-font-size);
35
46
  font-weight: var(--rvc-input-font-weight);
36
- color: var(--rvc-input-color);
37
- box-shadow: var(--rvc-input-box-shadow);
38
- height: var(--rvc-input-height);
39
- background-image: none;
40
- width: 100%;
41
- position: relative;
42
- grid-column-start: 1;
43
- grid-row-start: 1;
44
47
  appearance: none;
45
- outline-width: 0;
46
48
 
47
49
  &:nth-child(2) {
48
50
  padding-left: calc(var(--rvc-input-padding-x) + var(--rvc-input-icon-size) + 0.25rem);
@@ -51,20 +53,28 @@
51
53
  &::placeholder {
52
54
  color: var(--rvc-input-placeholder-color);
53
55
  }
56
+
57
+ &:disabled {
58
+ background-color: var(--rvc-input-bg-color-disabled);
59
+ }
54
60
  }
55
61
 
56
62
  &:has(svg:last-child) input {
57
63
  padding-right: calc(var(--rvc-input-padding-x) + var(--rvc-input-icon-size) + 0.25rem);
58
64
  }
59
65
 
66
+ &:has(:disabled) {
67
+ opacity: var(--rvc-input-disabled-opacity);
68
+ }
69
+
60
70
  .rvc-input-prefix, svg {
61
- color: var(--rvc-input-icon-color);
62
71
  position: relative;
72
+ z-index: 1;
63
73
  grid-column-start: 1;
64
74
  grid-row-start: 1;
65
75
  align-self: center;
76
+ color: var(--rvc-input-icon-color);
66
77
  pointer-events: none;
67
- z-index: 1;
68
78
  }
69
79
 
70
80
  .rvc-input-prefix {
@@ -16,23 +16,36 @@
16
16
 
17
17
  @layer components {
18
18
  .rvc-pagination {
19
+ display: grid;
20
+ grid-template-columns: repeat(2, minmax(0, 1fr));
21
+ align-items: center;
22
+ justify-content: space-between;
23
+
24
+ @media (width >= theme(--breakpoint-md)) {
25
+ grid-template-columns: repeat(3, minmax(0, 1fr));
26
+ }
27
+
28
+ .rvc-pagination-per-page {
29
+ width: fit-content;
30
+ }
31
+
19
32
  .rvc-pagination-button {
20
- border-radius: var(--rvc-pagination-border-radius);
33
+ display: flex;
34
+ align-items: center;
35
+ justify-content: center;
21
36
  width: var(--rvc-pagination-size);
22
37
  height: var(--rvc-pagination-size);
38
+ transition: color, background-color var(--rvc-pagination-transition-duration) var(--rvc-pagination-transition-timing-function);
39
+ border-radius: var(--rvc-pagination-border-radius);
40
+ background-color: var(--rvc-pagination-bg-color);
41
+ color: var(--rvc-pagination-color);
23
42
  font-size: var(--rvc-pagination-font-size);
24
43
  font-weight: var(--rvc-pagination-font-weight);
25
- color: var(--rvc-pagination-color);
26
- background-color: var(--rvc-pagination-bg-color);
27
- display: flex;
28
- align-items: center;
29
- justify-content: center;
30
44
  text-align: center;
31
- transition: color, background-color var(--rvc-pagination-transition-duration) var(--rvc-pagination-transition-timing-function);
32
45
 
33
46
  &.rvc-pagination-button-active {
34
- font-weight: var(--rvc-pagination-font-weight-active);
35
47
  color: var(--rvc-pagination-color-active);
48
+ font-weight: var(--rvc-pagination-font-weight-active);
36
49
  }
37
50
 
38
51
  &:not([disabled]):hover {
@@ -41,8 +54,54 @@
41
54
  }
42
55
 
43
56
  .rvc-pagination-info {
44
- font-size: var(--rvc-pagination-info-font-size);
57
+ display: none;
45
58
  color: var(--rvc-pagination-info-color);
59
+ font-size: var(--rvc-pagination-info-font-size);
60
+
61
+ @media (width >= theme(--breakpoint-md)) {
62
+ display: flex;
63
+ justify-content: center;
64
+ }
65
+ }
66
+
67
+ .rvc-pagination-nav-list {
68
+ display: flex;
69
+ align-items: center;
70
+ justify-content: flex-end;
71
+
72
+ @media (width >= theme(--breakpoint-md)) {
73
+ gap: calc(var(--spacing) * 0.5);
74
+ }
75
+
76
+ @media (width >= theme(--breakpoint-xl)) {
77
+ gap: calc(var(--spacing) * 1);
78
+ }
79
+ }
80
+
81
+ .rvc-pagination-nav-list-item {
82
+ display: none;
83
+
84
+ @media (width >= theme(--breakpoint-md)) {
85
+ display: block;
86
+ }
87
+
88
+ &:first-child {
89
+ display: block;
90
+ }
91
+
92
+ &:last-child {
93
+ display: block;
94
+ }
95
+ }
96
+
97
+ .rvc-pagination-button-icon {
98
+ width: calc(var(--spacing) * 5);
99
+ height: calc(var(--spacing) * 5);
100
+ color: var(--color-slate-800);
101
+
102
+ &.rvc-pagination-button-icon-disabled {
103
+ opacity: 0.5;
104
+ }
46
105
  }
47
106
  }
48
107
  }
@@ -5,6 +5,9 @@
5
5
  --rvc-radio-font-size: var(--text-base);
6
6
  --rvc-radio-font-weight: var(--font-weight-medium);
7
7
  --rvc-radio-color: var(--color-slate-950);
8
+ --rvc-radio-input-bg-color: var(--rvc-base-input-bg-color);
9
+ --rvc-radio-input-bg-color-disabled: var(--rvc-base-input-bg-color-disabled);
10
+ --rvc-radio-input-disabled-opacity: var(--rvc-base-input-disabled-opacity);
8
11
  --rvc-radio-input-size: calc(var(--spacing) * 4);
9
12
  --rvc-radio-input-border-radius: calc(infinity * 1px);
10
13
  --rvc-radio-input-border-width: 1px;
@@ -15,47 +18,69 @@
15
18
 
16
19
  @layer components {
17
20
  .rvc-radio {
18
- gap: var(--rvc-radio-gap);
19
- position: relative;
20
21
  display: flex;
22
+ position: relative;
21
23
  align-items: flex-start;
22
24
  cursor: pointer;
25
+ gap: var(--rvc-radio-gap);
23
26
 
24
27
  label {
28
+ color: var(--rvc-radio-color);
25
29
  font-size: var(--rvc-radio-font-size);
26
30
  font-weight: var(--rvc-radio-font-weight);
27
- color: var(--rvc-radio-color);
28
31
  }
29
32
 
30
33
  .rvc-radio-input {
34
+ display: inline-flex;
35
+ align-items: center;
36
+ justify-content: center;
31
37
  width: var(--rvc-radio-input-size);
32
38
  height: var(--rvc-radio-input-size);
33
- border-radius: var(--rvc-radio-input-border-radius);
39
+ margin-top: calc(var(--spacing) * 1);
34
40
  border-width: var(--rvc-radio-input-border-width);
41
+ border-radius: var(--rvc-radio-input-border-radius);
35
42
  border-color: var(--rvc-radio-input-border-color);
43
+ background-color: var(--rvc-radio-input-bg-color);
36
44
  box-shadow: var(--rvc-radio-input-box-shadow);
37
- margin-top: calc(var(--spacing) * 1);
38
- display: inline-flex;
39
- align-items: center;
40
- justify-content: center;
41
45
 
42
46
  &::before {
43
47
  content: "";
44
48
  width: calc(var(--spacing) * 1.5);
45
49
  height: calc(var(--spacing) * 1.5);
46
50
  border-radius: calc(infinity * 1px);
47
- background-color: var(--rvc-radio-input-checked-icon-color);
48
51
  opacity: 0;
52
+ background-color: var(--rvc-radio-input-checked-icon-color);
53
+ }
54
+ }
55
+
56
+ input {
57
+ position: absolute;
58
+ opacity: 0;
59
+ inset: 0;
60
+ cursor: pointer;
61
+
62
+ &:disabled {
63
+ cursor: default;
49
64
  }
50
65
  }
51
66
 
52
67
  input:checked + .rvc-radio-input {
53
- background-color: var(--rvc-radio-input-checked-bg-color);
54
68
  border-color: var(--rvc-radio-input-checked-border-color);
69
+ background-color: var(--rvc-radio-input-checked-bg-color);
55
70
 
56
71
  &::before {
57
72
  opacity: 1;
58
73
  }
59
74
  }
75
+
76
+ input:disabled + .rvc-radio-input {
77
+ opacity: var(--rvc-radio-input-disabled-opacity);
78
+ background-color: var(--rvc-radio-input-bg-color-disabled);
79
+ cursor: default;
80
+ }
81
+
82
+ input:focus + .rvc-radio-input {
83
+ @apply rvc-focus;
84
+ }
60
85
  }
61
86
  }
@@ -7,6 +7,8 @@
7
7
  --rvc-select-box-shadow: var(--rvc-base-box-shadow);
8
8
  --rvc-select-color: var(--rvc-base-input-color);
9
9
  --rvc-select-bg-color: var(--rvc-base-input-bg-color);
10
+ --rvc-select-bg-color-disabled: var(--rvc-base-input-bg-color-disabled);
11
+ --rvc-select-disabled-opacity: var(--rvc-base-input-disabled-opacity);
10
12
  --rvc-select-icon-size: var(--rvc-base-input-icon-size);
11
13
  --rvc-select-icon-color: var(--rvc-base-input-icon-color);
12
14
  --rvc-select-padding-x: var(--rvc-base-input-padding-x);
@@ -26,40 +28,47 @@
26
28
  grid-template-columns: 1fr;
27
29
 
28
30
  select {
29
- border-radius: var(--rvc-select-border-radius);
30
- border-width: var(--rvc-select-border-width);
31
- border-color: var(--rvc-select-border-color);
31
+ grid-column-start: 1;
32
+ grid-row-start: 1;
33
+ width: 100%;
34
+ height: var(--rvc-select-height);
32
35
  padding-right: calc(var(--rvc-select-padding-x) + var(--rvc-select-icon-size) + 0.25rem);
33
36
  padding-left: var(--rvc-select-padding-x);
37
+ border-width: var(--rvc-select-border-width);
38
+ border-radius: var(--rvc-select-border-radius);
39
+ border-color: var(--rvc-select-border-color);
40
+ outline-width: 0;
34
41
  background-color: var(--rvc-select-bg-color);
35
42
  background-image: none;
43
+ box-shadow: var(--rvc-select-box-shadow);
44
+ color: var(--rvc-select-color);
36
45
  font-size: var(--rvc-select-font-size);
37
46
  font-weight: var(--rvc-select-font-weight);
38
- color: var(--rvc-select-color);
39
- box-shadow: var(--rvc-select-box-shadow);
40
- height: var(--rvc-select-height);
41
- width: 100%;
42
- grid-column-start: 1;
43
- grid-row-start: 1;
44
47
  appearance: none;
45
- outline-width: 0;
46
48
 
47
49
  &:nth-child(2) {
48
50
  padding-left: calc(var(--rvc-select-padding-x) + var(--rvc-select-icon-size) + 0.25rem);
49
51
  }
52
+
53
+ &:disabled {
54
+ background-color: var(--rvc-select-bg-color-disabled);
55
+ }
56
+ }
57
+
58
+ &:has(:disabled) {
59
+ opacity: var(--rvc-select-disabled-opacity);
50
60
  }
51
61
 
52
62
  svg {
53
- width: var(--rvc-select-icon-size);
54
- height: var(--rvc-select-icon-size);
55
- color: var(--rvc-select-icon-color);
56
63
  position: relative;
64
+ z-index: 1;
57
65
  grid-column-start: 1;
58
66
  grid-row-start: 1;
59
- align-self: center;
60
- justify-self: end;
67
+ place-self: center end;
68
+ width: var(--rvc-select-icon-size);
69
+ height: var(--rvc-select-icon-size);
70
+ color: var(--rvc-select-icon-color);
61
71
  pointer-events: none;
62
- z-index: 1;
63
72
 
64
73
  &:first-child {
65
74
  justify-self: start;
@@ -11,6 +11,7 @@
11
11
  @import "./table.css";
12
12
  @import "./tabs.css";
13
13
  @import "./textarea.css";
14
+ @import "./utilities.css";
14
15
 
15
16
  :root {
16
17
  /* Base Focus Variables */
@@ -32,25 +33,11 @@
32
33
  --rvc-base-font-size: 0.9375rem;
33
34
  --rvc-base-line-height: 1.5rem;
34
35
 
35
- /* Dialogs Variables */
36
- --rvc-dialog-backdrop-bg-color: --alpha(var(--color-slate-900) / 50%);
37
- --rvc-dialog-padding-x: calc(var(--spacing) * 4);
38
- --rvc-dialog-padding-y: calc(var(--spacing) * 4);
39
- --rvc-dialog-header-bg-color: var(--color-white);
40
- --rvc-dialog-close-size: calc(var(--spacing) * 6);
41
- --rvc-dialog-close-color: var(--color-slate-700);
42
- --rvc-dialog-close-color-hover: var(--color-slate-900);
43
- --rvc-dialog-title-color: var(--color-slate-900);
44
- --rvc-dialog-title-font-size: var(--text-xl);
45
- --rvc-dialog-title-font-weight: var(--font-weight-bold);
46
- --rvc-dialog-title-font-family: var(--font-sans);
47
- --rvc-dialog-content-bg-color: var(--color-white);
48
- --rvc-dialog-footer-bg-color: var(--color-slate-50);
49
- --rvc-dialog-footer-gap: calc(var(--spacing) * 2);
50
-
51
36
  /* Input Variables */
52
37
  --rvc-base-input-color: var(--color-slate-600);
53
38
  --rvc-base-input-bg-color: var(--color-white);
39
+ --rvc-base-input-bg-color-disabled: var(--color-slate-100);
40
+ --rvc-base-input-disabled-opacity: 0.7;
54
41
  --rvc-base-input-icon-color: var(--color-slate-400);
55
42
  --rvc-base-input-icon-size: calc(var(--spacing) * 5);
56
43
  --rvc-base-input-padding-x: calc(var(--spacing) * 3);
@@ -60,7 +47,7 @@
60
47
  --rvc-base-input-placeholder-color: var(--color-slate-400);
61
48
  }
62
49
 
63
- @media (width >= 40rem) {
50
+ @media (width >= theme(--breakpoint-sm)) {
64
51
  :root {
65
52
  --rvc-dialog-padding-x: calc(var(--spacing) * 6);
66
53
  --rvc-dialog-padding-y: calc(var(--spacing) * 4);
@@ -68,25 +55,8 @@
68
55
  }
69
56
  }
70
57
 
71
- @layer utilities {
72
- [class^="rvc-"] *:focus,
73
- [class^="rvc-"]:focus {
74
- outline-style: var(--rvc-base-focus-outline-style);
75
- outline-width: var(--rvc-base-focus-outline-offset);
76
- outline-offset: var(--rvc-base-focus-outline-width);
77
- outline-color: var(--rvc-base-focus-outline-color);
78
- }
79
- }
80
-
81
- @utility rvc-focus {
82
- outline-style: var(--rvc-base-focus-outline-style);
83
- outline-width: var(--rvc-base-focus-outline-offset);
84
- outline-offset: var(--rvc-base-focus-outline-width);
85
- outline-color: var(--rvc-base-focus-outline-color);
86
- }
87
-
88
58
  @layer base {
89
- button, [role=button] {
59
+ button, [role="button"] {
90
60
  cursor: pointer;
91
61
  }
92
62
  }
@@ -19,12 +19,14 @@
19
19
 
20
20
  @layer components {
21
21
  .rvc-table-wrapper {
22
- overflow-x: auto;
23
22
  padding-bottom: calc(var(--spacing) * 4);
23
+ overflow-x: auto;
24
24
  border-radius: var(--rvc-table-wrapper-border-radius);
25
25
  }
26
26
 
27
27
  .rvc-table {
28
+ width: 100%;
29
+
28
30
  &.rvc-table-striped {
29
31
  thead th {
30
32
  padding-inline: var(--rvc-table-padding-x);
@@ -50,7 +52,7 @@
50
52
  }
51
53
 
52
54
  tr:not(:last-child) td {
53
- border-bottom: var(--rvc-table-border-width) var (--rvc-table-border-style) var(--rvc-table-border-color);
55
+ border-bottom: var(--rvc-table-border-width) var(--rvc-table-border-style) var(--rvc-table-border-color);
54
56
  }
55
57
 
56
58
  td:not(:first-child,:last-child) {
@@ -60,28 +62,87 @@
60
62
 
61
63
  th {
62
64
  padding-block: var(--rvc-table-padding-y);
63
- font-weight: var(--rvc-table-head-font-weight);
64
65
  font-size: var(--rvc-table-head-font-size);
66
+ font-weight: var(--rvc-table-head-font-weight);
65
67
  line-height: var(--rvc-table-line-height);
66
68
  white-space: var(--rvc-table-white-space);
67
69
  }
68
70
 
69
71
  td {
70
72
  padding-block: var(--rvc-table-padding-y);
71
- font-weight: var(--rvc-table-font-weight);
72
73
  font-size: var(--rvc-table-font-size);
74
+ font-weight: var(--rvc-table-font-weight);
73
75
  line-height: var(--rvc-table-line-height);
74
76
  white-space: var(--rvc-table-white-space);
75
77
  }
76
78
 
79
+ .rvc-table-spinner-wrapper {
80
+ display: flex;
81
+ align-items: center;
82
+ column-gap: calc(var(--spacing) * 2);
83
+ }
84
+
77
85
  .rvc-table-spinner {
78
- animation: spin 1s linear infinite;
79
86
  width: var(--rvc-table-spinner-size);
80
87
  height: var(--rvc-table-spinner-size);
88
+ animation: spin 1s linear infinite;
89
+ }
90
+
91
+ .rvc-table-sort-button {
92
+ display: flex;
93
+ width: 100%;
94
+ column-gap: calc(var(--spacing) * 1.5);
95
+
96
+ &:hover {
97
+ text-decoration: underline;
98
+ }
99
+
100
+ &:hover .rvc-table-sort-icon-invisible {
101
+ opacity: 0.3;
102
+ }
103
+ }
104
+
105
+ .rvc-table-sort-button-center {
106
+ justify-content: center;
107
+ }
108
+
109
+ .rvc-table-sort-button-right {
110
+ flex-direction: row-reverse;
111
+ justify-content: flex-start;
112
+ }
113
+
114
+ .rvc-table-sort-icon {
115
+ flex-shrink: 0;
116
+ width: calc(var(--spacing) * 4);
117
+ height: calc(var(--spacing) * 4);
118
+ transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, opacity, transform, translate, scale, rotate;
119
+ transition-duration: var(--rvc-base-transition-duration);
120
+ transition-timing-function: var(--rvc-base-transition-timing-function);
121
+ opacity: 0;
122
+
123
+ &.rvc-table-sort-icon-visible {
124
+ opacity: 1;
125
+ }
126
+
127
+ &.rvc-table-sort-icon-rotated {
128
+ rotate: 180deg;
129
+ }
81
130
  }
82
131
 
83
132
  td.rvc-table-state {
84
133
  border-bottom: var(--rvc-table-border-width) var(--rvc-table-border-style) var(--rvc-table-border-color);
85
134
  }
135
+
136
+ .rvc-table-text-left {
137
+ text-align: left;
138
+ }
139
+
140
+ .rvc-table-text-center {
141
+ text-align: center;
142
+ }
143
+
144
+ .rvc-table-text-right {
145
+ text-align: right;
146
+ }
86
147
  }
87
148
  }
@@ -21,8 +21,13 @@
21
21
 
22
22
  @layer components {
23
23
  .rvc-tabs {
24
+ display: none;
24
25
  border-bottom: var(--rvc-tabs-border-width) solid var(--rvc-tabs-border-color);
25
26
 
27
+ @media (width >= theme(--breakpoint-md)) {
28
+ display: flex;
29
+ }
30
+
26
31
  &.rvc-tabs-buttons {
27
32
  border-bottom: 0;
28
33
 
@@ -32,14 +37,14 @@
32
37
  }
33
38
 
34
39
  .rvc-tab {
35
- padding-inline: var(--rvc-tabs-tab-button-padding-x);
36
- height: var(--rvc-tabs-tab-button-height);
37
- border-radius: var(--rvc-tabs-tab-button-border-radius);
38
40
  display: inline-flex;
39
41
  align-items: center;
40
42
  justify-content: center;
41
- border-bottom: 0;
43
+ height: var(--rvc-tabs-tab-button-height);
42
44
  padding-bottom: 0;
45
+ padding-inline: var(--rvc-tabs-tab-button-padding-x);
46
+ border-bottom: 0;
47
+ border-radius: var(--rvc-tabs-tab-button-border-radius);
43
48
 
44
49
  &.rvc-tab-active {
45
50
  background-color: var(--rvc-tabs-tab-active-button-bg-color);
@@ -54,20 +59,26 @@
54
59
  }
55
60
 
56
61
  .rvc-tab {
57
- color: var(--rvc-tabs-tab-color);
58
- font-weight: var(--rvc-tabs-tab-font-weight);
59
- border-bottom: var(--rvc-tabs-tab-border-width) solid transparent;
60
62
  padding-bottom: var(--rvc-tabs-tab-padding-bottom);
61
63
  transition: all var(--rvc-tabs-tab-transition-duration) var(--rvc-tabs-tab-transition-timing-function);
64
+ border-bottom: var(--rvc-tabs-tab-border-width) solid transparent;
65
+ color: var(--rvc-tabs-tab-color);
66
+ font-weight: var(--rvc-tabs-tab-font-weight);
62
67
 
63
68
  &:hover {
64
- color: var(--rvc-tabs-tab-color-hover);
65
69
  border-color: var(--rvc-tabs-tab-border-color-hover);
70
+ color: var(--rvc-tabs-tab-color-hover);
66
71
  }
67
72
 
68
73
  &.rvc-tab-active {
69
- color: var(--rvc-tabs-tab-active-color);
70
74
  border-color: var(--rvc-tabs-tab-active-border-color);
75
+ color: var(--rvc-tabs-tab-active-color);
76
+ }
77
+ }
78
+
79
+ & + .rvc-tabs-select {
80
+ @media (width >= theme(--breakpoint-md)) {
81
+ display: none;
71
82
  }
72
83
  }
73
84
  }
@@ -7,6 +7,8 @@
7
7
  --rvc-textarea-box-shadow: var(--rvc-base-box-shadow);
8
8
  --rvc-textarea-color: var(--rvc-base-input-color);
9
9
  --rvc-textarea-bg-color: var(--rvc-base-input-bg-color);
10
+ --rvc-textarea-bg-color-disabled: var(--rvc-base-input-bg-color-disabled);
11
+ --rvc-textarea-disabled-opacity: var(--rvc-base-input-disabled-opacity);
10
12
  --rvc-textarea-padding-x: var(--rvc-base-input-padding-x);
11
13
  --rvc-textarea-padding-y: calc(var(--spacing) * 1.5);
12
14
  --rvc-textarea-height: var(--rvc-base-input-height);
@@ -21,22 +23,27 @@
21
23
 
22
24
  @layer components {
23
25
  .rvc-textarea {
24
- border-radius: var(--rvc-textarea-border-radius);
26
+ display: block;
27
+ position: relative;
28
+ width: 100%;
29
+ min-height: var(--rvc-textarea-height);
30
+ padding: var(--rvc-textarea-padding-y) var(--rvc-textarea-padding-x);
25
31
  border-width: var(--rvc-textarea-border-width);
32
+ border-radius: var(--rvc-textarea-border-radius);
26
33
  border-color: var(--rvc-textarea-border-color);
27
- padding: var(--rvc-textarea-padding-y) var(--rvc-textarea-padding-x);
34
+ outline-width: 0;
28
35
  background-color: var(--rvc-textarea-bg-color);
36
+ background-image: none;
37
+ box-shadow: var(--rvc-textarea-box-shadow);
38
+ color: var(--rvc-textarea-color);
29
39
  font-size: var(--rvc-textarea-font-size);
30
40
  font-weight: var(--rvc-textarea-font-weight);
31
- color: var(--rvc-textarea-color);
32
- box-shadow: var(--rvc-textarea-box-shadow);
33
- min-height: var(--rvc-textarea-height);
34
- display: block;
35
- background-image: none;
36
- width: 100%;
37
- position: relative;
38
41
  appearance: none;
39
- outline-width: 0;
42
+
43
+ &:disabled {
44
+ opacity: var(--rvc-textarea-disabled-opacity);
45
+ background-color: var(--rvc-textarea-bg-color-disabled);
46
+ }
40
47
 
41
48
  &.rvc-textarea-sm {
42
49
  --rvc-textarea-font-size: var(--rvc-textarea-font-size-sm);
@@ -0,0 +1,12 @@
1
+ @layer utilities {
2
+ [class^="rvc-"] *:focus,
3
+ [class^="rvc-"]:focus {
4
+ outline: var(--rvc-base-focus-outline-color) var(--rvc-base-focus-outline-style) var(--rvc-base-focus-outline-offset);
5
+ outline-offset: var(--rvc-base-focus-outline-width);
6
+ }
7
+ }
8
+
9
+ @utility rvc-focus {
10
+ outline: var(--rvc-base-focus-outline-color) var(--rvc-base-focus-outline-style) var(--rvc-base-focus-outline-offset);
11
+ outline-offset: var(--rvc-base-focus-outline-width);
12
+ }