@robuust-digital/vue-components 2.0.0-rc.5 → 2.0.0-rc.6

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 (36) hide show
  1. package/dist/_shared/{ButtonBase-CQjlJ85F.js → ButtonBase-DfkwHIhN.js} +10 -10
  2. package/dist/_shared/Modal-BXOR8t7c.js +199 -0
  3. package/dist/_shared/{Tooltip-BKXJoJ1x.js → Tooltip-B93ZF7IF.js} +16 -16
  4. package/dist/combobox/combobox.css +65 -34
  5. package/dist/combobox/index.js +46 -46
  6. package/dist/core/accordion.css +21 -10
  7. package/dist/core/alert.css +26 -20
  8. package/dist/core/badge.css +10 -10
  9. package/dist/core/button.css +31 -19
  10. package/dist/core/checkbox.css +14 -10
  11. package/dist/core/empty-state.css +6 -6
  12. package/dist/core/index.js +296 -300
  13. package/dist/core/input.css +13 -13
  14. package/dist/core/pagination.css +68 -9
  15. package/dist/core/radio.css +14 -10
  16. package/dist/core/select.css +15 -16
  17. package/dist/core/styles.css +3 -35
  18. package/dist/core/table.css +66 -5
  19. package/dist/core/tabs.css +20 -9
  20. package/dist/core/textarea.css +10 -10
  21. package/dist/core/utilities.css +12 -0
  22. package/dist/dialogs/drawer.css +140 -4
  23. package/dist/dialogs/index.js +93 -96
  24. package/dist/dialogs/modal.css +118 -22
  25. package/dist/dialogs/styles.css +20 -0
  26. package/dist/dropdown/dropdown.css +79 -49
  27. package/dist/dropdown/index.js +38 -38
  28. package/dist/lightswitch/lightswitch.css +8 -8
  29. package/dist/rich-text-editor/index.js +9 -9
  30. package/dist/rich-text-editor/rich-text.css +15 -10
  31. package/dist/toast/index.js +35 -34
  32. package/dist/toast/toast.css +54 -28
  33. package/dist/tooltip/index.js +1 -1
  34. package/dist/tooltip/tooltip.css +18 -16
  35. package/package.json +9 -2
  36. package/dist/_shared/Modal-CsI5mZlJ.js +0 -202
@@ -26,23 +26,23 @@
26
26
  grid-template-columns: 1fr;
27
27
 
28
28
  input {
29
- border-radius: var(--rvc-input-border-radius);
29
+ position: relative;
30
+ grid-column-start: 1;
31
+ grid-row-start: 1;
32
+ width: 100%;
33
+ height: var(--rvc-input-height);
34
+ padding-inline: var(--rvc-input-padding-x);
30
35
  border-width: var(--rvc-input-border-width);
36
+ border-radius: var(--rvc-input-border-radius);
31
37
  border-color: var(--rvc-input-border-color);
32
- padding-inline: var(--rvc-input-padding-x);
38
+ outline-width: 0;
33
39
  background-color: var(--rvc-input-bg-color);
40
+ background-image: none;
41
+ box-shadow: var(--rvc-input-box-shadow);
42
+ color: var(--rvc-input-color);
34
43
  font-size: var(--rvc-input-font-size);
35
44
  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
45
  appearance: none;
45
- outline-width: 0;
46
46
 
47
47
  &:nth-child(2) {
48
48
  padding-left: calc(var(--rvc-input-padding-x) + var(--rvc-input-icon-size) + 0.25rem);
@@ -58,13 +58,13 @@
58
58
  }
59
59
 
60
60
  .rvc-input-prefix, svg {
61
- color: var(--rvc-input-icon-color);
62
61
  position: relative;
62
+ z-index: 1;
63
63
  grid-column-start: 1;
64
64
  grid-row-start: 1;
65
65
  align-self: center;
66
+ color: var(--rvc-input-icon-color);
66
67
  pointer-events: none;
67
- z-index: 1;
68
68
  }
69
69
 
70
70
  .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
  }
@@ -15,47 +15,51 @@
15
15
 
16
16
  @layer components {
17
17
  .rvc-radio {
18
- gap: var(--rvc-radio-gap);
19
- position: relative;
20
18
  display: flex;
19
+ position: relative;
21
20
  align-items: flex-start;
22
21
  cursor: pointer;
22
+ gap: var(--rvc-radio-gap);
23
23
 
24
24
  label {
25
+ color: var(--rvc-radio-color);
25
26
  font-size: var(--rvc-radio-font-size);
26
27
  font-weight: var(--rvc-radio-font-weight);
27
- color: var(--rvc-radio-color);
28
28
  }
29
29
 
30
30
  .rvc-radio-input {
31
+ display: inline-flex;
32
+ align-items: center;
33
+ justify-content: center;
31
34
  width: var(--rvc-radio-input-size);
32
35
  height: var(--rvc-radio-input-size);
33
- border-radius: var(--rvc-radio-input-border-radius);
36
+ margin-top: calc(var(--spacing) * 1);
34
37
  border-width: var(--rvc-radio-input-border-width);
38
+ border-radius: var(--rvc-radio-input-border-radius);
35
39
  border-color: var(--rvc-radio-input-border-color);
36
40
  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
41
 
42
42
  &::before {
43
43
  content: "";
44
44
  width: calc(var(--spacing) * 1.5);
45
45
  height: calc(var(--spacing) * 1.5);
46
46
  border-radius: calc(infinity * 1px);
47
- background-color: var(--rvc-radio-input-checked-icon-color);
48
47
  opacity: 0;
48
+ background-color: var(--rvc-radio-input-checked-icon-color);
49
49
  }
50
50
  }
51
51
 
52
52
  input:checked + .rvc-radio-input {
53
- background-color: var(--rvc-radio-input-checked-bg-color);
54
53
  border-color: var(--rvc-radio-input-checked-border-color);
54
+ background-color: var(--rvc-radio-input-checked-bg-color);
55
55
 
56
56
  &::before {
57
57
  opacity: 1;
58
58
  }
59
59
  }
60
+
61
+ input:focus + .rvc-radio-input {
62
+ @apply rvc-focus;
63
+ }
60
64
  }
61
65
  }
@@ -26,23 +26,23 @@
26
26
  grid-template-columns: 1fr;
27
27
 
28
28
  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);
29
+ grid-column-start: 1;
30
+ grid-row-start: 1;
31
+ width: 100%;
32
+ height: var(--rvc-select-height);
32
33
  padding-right: calc(var(--rvc-select-padding-x) + var(--rvc-select-icon-size) + 0.25rem);
33
34
  padding-left: var(--rvc-select-padding-x);
35
+ border-width: var(--rvc-select-border-width);
36
+ border-radius: var(--rvc-select-border-radius);
37
+ border-color: var(--rvc-select-border-color);
38
+ outline-width: 0;
34
39
  background-color: var(--rvc-select-bg-color);
35
40
  background-image: none;
41
+ box-shadow: var(--rvc-select-box-shadow);
42
+ color: var(--rvc-select-color);
36
43
  font-size: var(--rvc-select-font-size);
37
44
  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
45
  appearance: none;
45
- outline-width: 0;
46
46
 
47
47
  &:nth-child(2) {
48
48
  padding-left: calc(var(--rvc-select-padding-x) + var(--rvc-select-icon-size) + 0.25rem);
@@ -50,16 +50,15 @@
50
50
  }
51
51
 
52
52
  svg {
53
- width: var(--rvc-select-icon-size);
54
- height: var(--rvc-select-icon-size);
55
- color: var(--rvc-select-icon-color);
56
53
  position: relative;
54
+ z-index: 1;
57
55
  grid-column-start: 1;
58
56
  grid-row-start: 1;
59
- align-self: center;
60
- justify-self: end;
57
+ place-self: center end;
58
+ width: var(--rvc-select-icon-size);
59
+ height: var(--rvc-select-icon-size);
60
+ color: var(--rvc-select-icon-color);
61
61
  pointer-events: none;
62
- z-index: 1;
63
62
 
64
63
  &:first-child {
65
64
  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,22 +33,6 @@
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);
@@ -60,7 +45,7 @@
60
45
  --rvc-base-input-placeholder-color: var(--color-slate-400);
61
46
  }
62
47
 
63
- @media (width >= 40rem) {
48
+ @media (width >= theme(--breakpoint-sm)) {
64
49
  :root {
65
50
  --rvc-dialog-padding-x: calc(var(--spacing) * 6);
66
51
  --rvc-dialog-padding-y: calc(var(--spacing) * 4);
@@ -68,25 +53,8 @@
68
53
  }
69
54
  }
70
55
 
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
56
  @layer base {
89
- button, [role=button] {
57
+ button, [role="button"] {
90
58
  cursor: pointer;
91
59
  }
92
60
  }
@@ -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
  }
@@ -21,22 +21,22 @@
21
21
 
22
22
  @layer components {
23
23
  .rvc-textarea {
24
- border-radius: var(--rvc-textarea-border-radius);
24
+ display: block;
25
+ position: relative;
26
+ width: 100%;
27
+ min-height: var(--rvc-textarea-height);
28
+ padding: var(--rvc-textarea-padding-y) var(--rvc-textarea-padding-x);
25
29
  border-width: var(--rvc-textarea-border-width);
30
+ border-radius: var(--rvc-textarea-border-radius);
26
31
  border-color: var(--rvc-textarea-border-color);
27
- padding: var(--rvc-textarea-padding-y) var(--rvc-textarea-padding-x);
32
+ outline-width: 0;
28
33
  background-color: var(--rvc-textarea-bg-color);
34
+ background-image: none;
35
+ box-shadow: var(--rvc-textarea-box-shadow);
36
+ color: var(--rvc-textarea-color);
29
37
  font-size: var(--rvc-textarea-font-size);
30
38
  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
39
  appearance: none;
39
- outline-width: 0;
40
40
 
41
41
  &.rvc-textarea-sm {
42
42
  --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
+ }