@leaflink/stash 43.5.1 → 44.0.0-beta.1

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.
@@ -1,235 +0,0 @@
1
- /**
2
-
3
- Site button styles and variations.
4
-
5
- ◡◠ ✥ ◠◡
6
-
7
- Table of Contents:
8
-
9
- • Composables
10
- • Base
11
- • Types
12
- - Primary
13
- - Secondary
14
- - Tertiary
15
- - Icon
16
- - Inline
17
- • Colors
18
- • Button Grid helper
19
-
20
-
21
- */
22
-
23
- @function hexToRGB($hexColor) {
24
- @return "#{red($hexColor)},#{green($hexColor)},#{blue($hexColor)}";
25
- }
26
-
27
- /* ---------------------------------------
28
- Composables
29
- ---------------------------------------- */
30
-
31
- @mixin solid {
32
- background-color: rgba(var(--button-color-rgb), var(--button-opacity, 1));
33
- border-color: transparent;
34
- color: rgba(var(--text-color-rgb), 1);
35
-
36
- &:hover,
37
- &:active {
38
- --button-opacity: 0.75;
39
- }
40
-
41
- &[disabled] {
42
- --button-color-rgb: #{ hexToRGB($ice) } !important;
43
- }
44
- }
45
-
46
- @mixin ghost {
47
- background-color: rgba(0, 0, 0, 0);
48
- border-color: rgba(var(--button-color-rgb), 1);
49
- color: rgba(var(--text-color-rgb), 1);
50
-
51
- &:hover,
52
- &:active {
53
- background-color: rgba(var(--button-hover-color-rgb, var(--button-color-rgb)), .12);
54
- }
55
-
56
- &[disabled] {
57
- --button-color-rgb: #{ hexToRGB($ice) } !important;
58
- --text-color-rgb: #{ hexToRGB($ice) } !important;
59
- }
60
- }
61
-
62
-
63
- /* ---------------------------------------
64
- Base
65
- ---------------------------------------- */
66
-
67
- button {
68
- display: inline-block;
69
- font-size: typo('button', 'size');
70
- vertical-align: middle;
71
- }
72
-
73
- .button {
74
- border-radius: $border-radius;
75
- border-width: get($borders, 'thin');
76
- display: inline-block;
77
- font-size: typo('button', 'size');
78
- font-weight: typo('button', 'weight');
79
- line-height: (input('height') - (get($borders, 'thin') * 2));
80
- margin: 0;
81
- min-width: input('min-width');
82
- padding: 0 space(2);
83
- text-align: center;
84
- text-decoration: none;
85
- white-space: nowrap;
86
-
87
- &:focus {
88
- box-shadow: 0 0 0 3px rgba(0, 123, 255, 0.14);
89
- outline: none;
90
- }
91
-
92
- &:hover {
93
- text-decoration: none;
94
- }
95
-
96
- &[disabled] {
97
- cursor: default;
98
- pointer-events: none;
99
- }
100
- }
101
-
102
-
103
- /* ---------------------------------------
104
- Types
105
- ---------------------------------------- */
106
-
107
- .button {
108
- &--primary {
109
- @include solid;
110
- --button-color-rgb: #{ hexToRGB($blue) };
111
- --text-color-rgb: #{ hexToRGB($white) };
112
- }
113
-
114
- &--secondary {
115
- @include ghost;
116
- --button-color-rgb: #{ hexToRGB($ice) };
117
- --button-hover-color-rgb: #{ hexToRGB($ice-700) };
118
- --text-color-rgb: #{ hexToRGB($ice-700) };
119
- }
120
-
121
- &--tertiary {
122
- @include ghost;
123
- --button-color-rgb: #{ hexToRGB($white) };
124
- --text-color-rgb: #{ hexToRGB($white) };
125
- }
126
-
127
- &--icon {
128
- // https://developers.google.com/web/fundamentals/accessibility/accessible-styles
129
- border: 0;
130
- border-radius: 50%;
131
- height: space(5);
132
- min-width: 0;
133
- padding: space(2);
134
- width: space(5);
135
-
136
- svg {
137
- display: block;
138
- margin-left: auto;
139
- margin-right: auto;
140
- }
141
-
142
- &[disabled] svg {
143
- color: $ice;
144
- }
145
- }
146
-
147
- &--inline {
148
- border: 0;
149
- color: $blue;
150
- font-weight: font-weight('medium');
151
- line-height: $line-height;
152
- min-width: 0;
153
- padding: 0;
154
-
155
- &:hover {
156
- text-decoration: underline;
157
- }
158
-
159
- &[disabled] {
160
- color: $ice-700;
161
- }
162
- }
163
- }
164
-
165
-
166
- /* ---------------------------------------
167
- Colors
168
- ---------------------------------------- */
169
-
170
- @mixin color-overrides($hex-color) {
171
- &.button--primary,
172
- &.button--secondary {
173
- --button-color-rgb: #{ hexToRGB($hex-color) };
174
- }
175
-
176
- &.button--secondary {
177
- --text-color-rgb: #{ hexToRGB($hex-color) };
178
- --button-hover-color-rgb: #{ hexToRGB($hex-color) };
179
- }
180
- }
181
-
182
- .button {
183
- &--blue {
184
- @include color-overrides($blue);
185
- }
186
-
187
- &--red {
188
- @include color-overrides($red);
189
- }
190
- }
191
-
192
-
193
- /* ---------------------------------------
194
- Button Grid
195
- TODO: Create ButtonGrid component with styles below and remove button grid styles from LLButton.vue
196
- https://leaflink.atlassian.net/browse/STASH-230
197
- ---------------------------------------- */
198
-
199
- .button-grid {
200
- display: flex;
201
- grid-column-end: -1 !important;
202
-
203
- > .button {
204
- width: 50%;
205
- }
206
-
207
- > .button + .button {
208
- margin-left: space(3);
209
- }
210
-
211
- @include breakpoint('md') {
212
- display: inline-flex;
213
-
214
- > .button {
215
- width: auto;
216
- }
217
- }
218
- }
219
-
220
- .header-button-grid {
221
- display: flex;
222
- grid-column-end: -1 !important;
223
-
224
- > .button {
225
- width: 50%;
226
-
227
- @include breakpoint('lg') {
228
- width: auto;
229
- }
230
- }
231
-
232
- > .button + .button {
233
- margin-left: space(3);
234
- }
235
- }
@@ -1,300 +0,0 @@
1
- /**
2
-
3
- Forms
4
-
5
- ◡◠ ✥ ◠◡
6
-
7
- Table of Contents:
8
-
9
- • Form
10
- • Base
11
- • Input
12
- • Checkbox & Radio
13
-
14
- */
15
-
16
-
17
- /* ---------------------------------------
18
- Form
19
- ---------------------------------------- */
20
-
21
- .form {
22
- &__errors {
23
- border: border(thin) var(--color-red);
24
- color: var(--color-red);
25
- display: inline-block;
26
- font-size: typo('body', 'size');
27
- min-width: 300px;
28
- padding: space(2);
29
- text-align: center;
30
- }
31
- }
32
-
33
-
34
- /* ---------------------------------------
35
- Base
36
- ---------------------------------------- */
37
-
38
- input {
39
- &[disabled],
40
- &[readonly] {
41
- @include input-disabled;
42
- }
43
-
44
- &::placeholder {
45
- text-transform: none;
46
- }
47
- }
48
-
49
- input,
50
- select,
51
- textarea {
52
- &::placeholder {
53
- color: var(--color-ice);
54
- opacity: 1;
55
- }
56
- }
57
-
58
- select {
59
- border: border(thin);
60
- color: var(--color-ice-900);
61
- }
62
-
63
- textarea {
64
- min-height: 100px;
65
- resize: none;
66
- }
67
-
68
- /* ---------------------------------------
69
- Input
70
- ---------------------------------------- */
71
-
72
- .input {
73
- position: relative;
74
-
75
- input,
76
- select {
77
- height: input(height);
78
- }
79
-
80
- // TODO remove:
81
- input,
82
- select,
83
- textarea {
84
- @extend .input-field;
85
- }
86
-
87
- &.has-error {
88
- color: var(--color-red);
89
-
90
- .input-field,
91
- &.input--radio label::before,
92
- &.input--checkbox label::before,
93
- input,
94
- select,
95
- textarea {
96
- border-color: var(--color-red);
97
- }
98
- }
99
- }
100
-
101
- .input-field {
102
- background: var(--color-white);
103
- border: border(thin);
104
- border-radius: $border-radius;
105
- color: var(--color-ice-700);
106
- display: block;
107
- font-family: $font-family-primary;
108
- font-size: typo('button', 'size');
109
- font-weight: font-weight('regular');
110
- outline: none;
111
- padding: 0 input('padding-x');
112
- width: 100%;
113
-
114
- &:hover {
115
- border-color: var(--color-ice);
116
- }
117
-
118
- &:active,
119
- &:focus {
120
- border-color: var(--color-blue);
121
- }
122
- }
123
-
124
- // deprecated; use .label.block.truncate instead
125
- .input-label {
126
- color: var(--color-ice-900);
127
- display: block;
128
- font-size: var(--text-xs);
129
- font-weight: var(--font-weight-medium);
130
- line-height: space(3);
131
- overflow: hidden;
132
- text-overflow: ellipsis;
133
- white-space: nowrap;
134
- }
135
-
136
-
137
- /* ---------------------------------------
138
- Checkbox & Radio
139
- ---------------------------------------- */
140
-
141
- /* stylelint-disable no-descending-specificity */
142
- .input--checkbox,
143
- .input--radio {
144
- display: block;
145
- margin: space(1) 0;
146
-
147
- @include breakpoint('lg') {
148
- margin: 0;
149
- }
150
-
151
- input {
152
- @include screenreader-only;
153
- }
154
-
155
- .input-label,
156
- label {
157
- cursor: pointer;
158
- display: inline-block;
159
- line-height: input('inner-height');
160
- min-height: input('height');
161
- overflow: visible;
162
- padding:
163
- input('padding-y')
164
- 0
165
- input('padding-y')
166
- (input('selection-control-size') + input('padding-x'));
167
-
168
- position: relative;
169
- vertical-align: top;
170
-
171
- &::before {
172
- background: var(--color-white);
173
- border: border('thin');
174
- content: '';
175
- display: inline-block;
176
- vertical-align: top;
177
- }
178
-
179
- &::before,
180
- &::after {
181
- height: input('selection-control-size');
182
- left: 0;
183
- position: absolute;
184
- top: 50%;
185
- transform: translateY(-50%);
186
- width: input('selection-control-size');
187
- }
188
-
189
- span {
190
- color: var(--color-ice-900);
191
- }
192
- }
193
-
194
- input:focus + label::before {
195
- // TODO: create function that generates these focus styles; the Button component shares this already
196
- outline: none;
197
- }
198
-
199
- input:focus:not(:disabled) + label::before {
200
- border-color: var(--color-blue);
201
- }
202
-
203
- input:disabled,
204
- input:disabled + label {
205
- cursor: auto;
206
- }
207
-
208
- input:disabled + label::before {
209
- background: var(--color-ice-200);
210
- }
211
-
212
- input:not(:disabled):not(:checked) + label:hover::before {
213
- border-color: var(--color-blue);
214
- }
215
- }
216
-
217
- .input--checkbox {
218
- label::before {
219
- border-radius: $border-radius;
220
- }
221
-
222
- input:checked + label::before,
223
- input:indeterminate + label::before {
224
- background: var(--color-blue);
225
- border: none;
226
- }
227
-
228
- input:checked + label::after {
229
- content: url('data:image/svg+xml; utf8, <svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M17.89 8.281a.723.723 0 0 1 .22.531.723.723 0 0 1-.22.532l-6.718 6.719a.723.723 0 0 1-.531.218.723.723 0 0 1-.532-.218l-3.89-3.891A.723.723 0 0 1 6 11.64c0-.209.073-.386.219-.532l1.062-1.062a.723.723 0 0 1 .532-.219.72.72 0 0 1 .53.219l2.298 2.305 5.125-5.133a.723.723 0 0 1 .53-.219c.21 0 .386.073.532.219l1.063 1.062z" fill="white"/></svg>');
230
- }
231
-
232
- input:indeterminate + label::after {
233
- content: url('data:image/svg+xml; utf8, <svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M6 10.4C6 10.1791 6.17909 10 6.4 10H17.6C17.8209 10 18 10.1791 18 10.4V12.6C18 12.8209 17.8209 13 17.6 13H6.4C6.17909 13 6 12.8209 6 12.6V10.4Z" fill="white"/></svg>');
234
- }
235
-
236
- input:disabled:checked + label::before,
237
- input:disabled:indeterminate + label::before {
238
- background: var(--color-ice);
239
- }
240
- }
241
-
242
- .input--radio {
243
- label::before,
244
- label::after {
245
- border-radius: 50%;
246
- }
247
-
248
- input:checked + label::after {
249
- background: var(--color-blue);
250
- content: '';
251
- height: 14px;
252
- left: 3px;
253
- width: 14px;
254
- }
255
-
256
- input:checked:disabled + label::after {
257
- background: var(--color-ice);
258
- }
259
- }
260
- /* stylelint-enable */
261
-
262
- .input__icon {
263
- align-items: center;
264
- cursor: pointer;
265
- display: flex;
266
- height: input(height);
267
- justify-content: center;
268
- position: absolute;
269
- right: 0;
270
- top: 0;
271
- width: input(height);
272
- }
273
-
274
- .input__symbol {
275
- align-items: center;
276
- display: flex;
277
- height: input(height);
278
- justify-content: center;
279
- overflow: hidden;
280
- position: absolute;
281
- top: 0;
282
- width: input(height);
283
-
284
- &--prepend {
285
- border-bottom-left-radius: $border-radius;
286
- border-top-left-radius: $border-radius;
287
- left: 0;
288
- }
289
-
290
- &--append {
291
- border-bottom-right-radius: $border-radius;
292
- border-top-right-radius: $border-radius;
293
- right: 0;
294
- }
295
- }
296
-
297
- .hint {
298
- display: inline-block;
299
- margin-top: 4px;
300
- }
@@ -1,80 +0,0 @@
1
- /**
2
-
3
- Table
4
-
5
- ◡◠ ✥ ◠◡
6
-
7
- Table of Contents:
8
-
9
- • Table
10
-
11
- */
12
-
13
- /* ---------------------------------------
14
- Table
15
- ---------------------------------------- */
16
- /* stylelint-disable no-descending-specificity */
17
-
18
- .table {
19
- &--bordered {
20
- border: border(thin);
21
- border-collapse: separate;
22
- border-radius: $border-radius;
23
- border-spacing: 0;
24
-
25
- td,
26
- th {
27
- &:last-child {
28
- border-right: none;
29
- }
30
- }
31
-
32
- thead {
33
- td,
34
- th {
35
- border-bottom: none;
36
- }
37
- }
38
- }
39
- }
40
-
41
- table {
42
- border-collapse: collapse;
43
- border-spacing: 0;
44
- max-width: 100%;
45
- width: 100%;
46
-
47
- td,
48
- th {
49
- border-top: border(thin);
50
- padding: 0.766rem;
51
- }
52
-
53
- thead {
54
- td,
55
- th {
56
- background-color: var(--color-ice-200);
57
- border-bottom: border(medium);
58
- border-top: none;
59
- color: var(--color-ice-900);
60
- font-weight: font-weight(medium);
61
- text-align: left;
62
- user-select: none;
63
- white-space: nowrap;
64
- }
65
- }
66
-
67
- tbody {
68
- td {
69
- font-weight: font-weight(regular);
70
- }
71
- }
72
-
73
- tfoot {
74
- tr {
75
- td {
76
- border: none;
77
- }
78
- }
79
- }
80
- }
@@ -1,110 +0,0 @@
1
- // The tooltips position relative to the toggle element
2
- $tooltip-position: calc(100% + #{space(2)});
3
- // Centers arrow horizontally or vertically along tooltip on arrow's center
4
- $arrow-position-centered: calc(50% - #{space(1)});
5
- // Background color of tooltip
6
- $tooltip-bg-color: rgba($ice-900, 0.95);
7
-
8
- .tooltip {
9
- --offset: 0;
10
-
11
- background: $tooltip-bg-color;
12
- border-radius: $border-radius;
13
- box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.25);
14
- color: var(--color-white);
15
- font-size: typo('small', 'size');
16
- line-height: typo('small', 'line-height');
17
- opacity: 0;
18
- padding: space(2);
19
- pointer-events: none; // Tooltips should disappear once the user hovers away
20
- position: absolute;
21
- text-align: center;
22
- transition: opacity $primary-transition, visibility $primary-transition;
23
- visibility: hidden;
24
- white-space: normal;
25
- width: 148px;
26
-
27
- &::after {
28
- background-color: $tooltip-bg-color;
29
- border-radius: 0 2px 0 0;
30
- clip-path: polygon(100% 0%, 100% 100%, 0% 0%);
31
- content: '';
32
- display: inline-block;
33
- height: 12px;
34
- position: absolute;
35
- top: -#{space(1)};
36
- transform: rotate(135deg);
37
- z-index: z-index('behind');
38
- width: 12px;
39
- }
40
-
41
- &--bottom,
42
- &--top {
43
- left: calc(50% + calc(var(--offset) * 1px));
44
- transform: translateX(-50%);
45
-
46
- &::after {
47
- left: calc(#{$arrow-position-centered} + calc(var(--offset) * -1px));
48
- }
49
- }
50
-
51
- &--bottom {
52
- top: $tooltip-position;
53
-
54
- &::after {
55
- transform: rotate(-45deg);
56
- }
57
- }
58
-
59
- &--top {
60
- bottom: $tooltip-position;
61
-
62
- &::after {
63
- top: calc(100% - space(1));
64
- }
65
- }
66
-
67
- &--left,
68
- &--right {
69
- top: 50%;
70
- transform: translateY(-50%);
71
-
72
- &::after {
73
- top: $arrow-position-centered;
74
- }
75
- }
76
-
77
- &--left {
78
- right: $tooltip-position;
79
-
80
- &::after {
81
- left: calc(100% - space(1));
82
- transform: rotate(45deg);
83
- }
84
- }
85
-
86
- &--right {
87
- left: $tooltip-position;
88
-
89
- &::after {
90
- left: -#{space(1)};
91
- transform: rotate(-135deg);
92
- }
93
- }
94
- }
95
-
96
- .tooltip-toggle {
97
- display: inline-block;
98
- position: relative;
99
- z-index: 0;
100
-
101
- &:hover {
102
- outline: none;
103
- z-index: z-index('modal');
104
-
105
- .tooltip {
106
- opacity: 1;
107
- visibility: visible;
108
- }
109
- }
110
- }
@@ -1,12 +0,0 @@
1
- /**
2
-
3
- Helper and utility classes, these form the core
4
- of the Stash Design system styles
5
-
6
- */
7
-
8
- @import 'grid';
9
- @import 'animations';
10
- @import 'display';
11
- @import 'icons';
12
- @import 'transitions';