@thalassic/themes 0.7.0 → 0.8.2
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.
- package/package.json +1 -1
- package/themes/thalassic/components/_password.scss +18 -0
- package/themes/thalassic/components/_pin-input.scss +6 -0
- package/themes/thalassic/components/_popover.scss +21 -0
- package/themes/thalassic/components/_table.scss +78 -0
- package/themes/thalassic/components/date-time-picker/_calendar.scss +85 -0
- package/themes/thalassic/components/date-time-picker/_date-time-picker.scss +63 -0
- package/themes/thalassic/components/date-time-picker/_index.scss +5 -0
- package/themes/thalassic/components/date-time-picker/_mixins.scss +108 -0
- package/themes/thalassic/components/date-time-picker/_month-picker.scss +32 -0
- package/themes/thalassic/components/date-time-picker/_time-picker.scss +61 -0
- package/themes/thalassic/components/date-time-picker/_year-picker.scss +34 -0
- package/themes/thalassic/components/dialog/_dialog-size.scss +29 -0
- package/themes/thalassic/components/dialog/_dialog.scss +85 -0
- package/themes/thalassic/components/dialog/_index.scss +2 -0
- package/themes/thalassic/components/form/_form-control-group.scss +2 -1
- package/themes/thalassic/components/form/_form-control.scss +10 -3
- package/themes/thalassic/components/index.scss +7 -0
- package/themes/thalassic/components/pagination/_index.scss +2 -0
- package/themes/thalassic/components/pagination/_pagination-size.scss +22 -0
- package/themes/thalassic/components/pagination/_pagination.scss +79 -0
- package/themes/thalassic/components/select/_index.scss +3 -0
- package/themes/thalassic/components/select/_select-panel.scss +68 -0
- package/themes/thalassic/components/select/_select-size.scss +16 -0
- package/themes/thalassic/components/select/_select.scss +94 -0
package/package.json
CHANGED
|
@@ -18,6 +18,8 @@
|
|
|
18
18
|
line-height: var(--font-label-large-line-height);
|
|
19
19
|
letter-spacing: var(--font-label-large-letter-spacing);
|
|
20
20
|
|
|
21
|
+
background-color: var(--color-surface-container-lowest);
|
|
22
|
+
|
|
21
23
|
border: 1px solid var(--tls-pin-input-border-color);
|
|
22
24
|
border-radius: var(--tls-pin-border-radius);
|
|
23
25
|
|
|
@@ -36,6 +38,10 @@
|
|
|
36
38
|
opacity: 0;
|
|
37
39
|
}
|
|
38
40
|
}
|
|
41
|
+
|
|
42
|
+
&::placeholder {
|
|
43
|
+
color: var(--color-outline);
|
|
44
|
+
}
|
|
39
45
|
}
|
|
40
46
|
|
|
41
47
|
&.tls-pin-input--disabled {
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
.tls-popover {
|
|
2
|
+
--tls-popover-padding: var(--spacing-4);
|
|
3
|
+
|
|
4
|
+
--tls-popover-border-radius: var(--radius-lg);
|
|
5
|
+
--tls-popover-border-width: 1px;
|
|
6
|
+
|
|
7
|
+
--tls-popover-box-shadow: var(--shadow-sm);
|
|
8
|
+
--tls-popover-background-color: var(--color-surface-container-lowest);
|
|
9
|
+
--tls-popover-color: var(--color-on-surface);
|
|
10
|
+
--tls-popover-border-color: var(--color-outline-variant);
|
|
11
|
+
|
|
12
|
+
padding: var(--tls-popover-padding);
|
|
13
|
+
|
|
14
|
+
border-radius: var(--tls-popover-border-radius);
|
|
15
|
+
border: var(--tls-popover-border-width) solid var(--tls-popover-border-color);
|
|
16
|
+
|
|
17
|
+
color: var(--tls-popover-color);
|
|
18
|
+
background-color: var(--tls-popover-background-color);
|
|
19
|
+
|
|
20
|
+
box-shadow: var(--tls-popover-box-shadow);
|
|
21
|
+
}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
.tls-table {
|
|
2
|
+
--tls-table-background: var(--color-surface-container-lowest);
|
|
3
|
+
--tls-table-color: var(--color-on-surface);
|
|
4
|
+
|
|
5
|
+
--tls-table-header-background: var(--color-surface-container-lowest);
|
|
6
|
+
--tls-table-header-color: var(--color-on-surface-variant);
|
|
7
|
+
--tls-table-header-weight: var(--font-weight-medium);
|
|
8
|
+
|
|
9
|
+
--tls-table-border-color: var(--color-outline-variant);
|
|
10
|
+
|
|
11
|
+
--tls-table-row-hover-bg: var(--color-surface-container);
|
|
12
|
+
--tls-table-stripe-background: var(--color-surface-container-low);
|
|
13
|
+
|
|
14
|
+
--tls-table-cell-padding-x: var(--spacing-4);
|
|
15
|
+
--tls-table-cell-padding-y: var(--spacing-3);
|
|
16
|
+
|
|
17
|
+
--tls-table-font-size: var(--font-body-medium-size);
|
|
18
|
+
--tls-table-font-weight: var(--font-body-medium-weight);
|
|
19
|
+
--tls-table-line-height: var(--font-body-medium-line-height);
|
|
20
|
+
--tls-table-letter-spacing: var(--font-body-medium-letter-spacing);
|
|
21
|
+
|
|
22
|
+
--tls-table-radius: var(--radius-md);
|
|
23
|
+
|
|
24
|
+
width: 100%;
|
|
25
|
+
|
|
26
|
+
border-collapse: collapse;
|
|
27
|
+
border-radius: var(--tls-table-radius);
|
|
28
|
+
overflow: hidden;
|
|
29
|
+
|
|
30
|
+
font-size: var(--tls-table-font-size);
|
|
31
|
+
font-weight: var(--tls-table-font-weight);
|
|
32
|
+
line-height: var(--tls-table-line-height);
|
|
33
|
+
letter-spacing: var(--tls-table-letter-spacing);
|
|
34
|
+
color: var(--tls-table-color);
|
|
35
|
+
|
|
36
|
+
&__header-row {
|
|
37
|
+
background: var(--tls-table-header-background);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
&--hide-header &__header-row {
|
|
41
|
+
display: none;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
&--striped &__row:nth-child(even) &__cell {
|
|
45
|
+
background-color: var(--tls-table-stripe-background);
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
&__header-cell {
|
|
49
|
+
padding: var(--tls-table-cell-padding-y) var(--tls-table-cell-padding-x);
|
|
50
|
+
|
|
51
|
+
color: var(--tls-table-header-color);
|
|
52
|
+
|
|
53
|
+
border-bottom: 1px solid var(--tls-table-border-color);
|
|
54
|
+
|
|
55
|
+
text-align: start;
|
|
56
|
+
font-size: var(--font-label-small-size);
|
|
57
|
+
font-weight: var(--tls-table-header-weight);
|
|
58
|
+
letter-spacing: var(--font-label-small-letter-spacing);
|
|
59
|
+
white-space: nowrap;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
&__row {
|
|
63
|
+
transition: background var(--motion-fast) var(--motion-ease-in-out);
|
|
64
|
+
|
|
65
|
+
&:not(:last-child) {
|
|
66
|
+
border-bottom: 1px solid var(--tls-table-border-color);
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
&:hover {
|
|
70
|
+
background: var(--tls-table-row-hover-bg);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
&__cell {
|
|
75
|
+
padding: var(--tls-table-cell-padding-y) var(--tls-table-cell-padding-x);
|
|
76
|
+
background-color: var(--tls-table-background);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
@use 'mixins' as picker-mixins;
|
|
2
|
+
@use '../../mixins' as mixins;
|
|
3
|
+
|
|
4
|
+
.tls-calendar {
|
|
5
|
+
display: block;
|
|
6
|
+
width: fit-content;
|
|
7
|
+
|
|
8
|
+
&__header {
|
|
9
|
+
@include picker-mixins.header;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
&__header-button {
|
|
13
|
+
@include picker-mixins.header-button;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
&__nav {
|
|
17
|
+
@include picker-mixins.nav;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
&__grid {
|
|
21
|
+
display: grid;
|
|
22
|
+
grid-template-columns: repeat(7, var(--spacing-9));
|
|
23
|
+
gap: 2px;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
&__weekday {
|
|
27
|
+
display: flex;
|
|
28
|
+
align-items: center;
|
|
29
|
+
justify-content: center;
|
|
30
|
+
|
|
31
|
+
height: var(--spacing-9);
|
|
32
|
+
|
|
33
|
+
font-size: var(--font-label-medium-size);
|
|
34
|
+
font-weight: var(--font-weight-medium);
|
|
35
|
+
color: var(--color-on-surface-variant);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
&__day {
|
|
39
|
+
width: var(--spacing-9);
|
|
40
|
+
height: var(--spacing-9);
|
|
41
|
+
|
|
42
|
+
display: flex;
|
|
43
|
+
align-items: center;
|
|
44
|
+
justify-content: center;
|
|
45
|
+
|
|
46
|
+
font-size: var(--font-label-large-size);
|
|
47
|
+
|
|
48
|
+
border: none;
|
|
49
|
+
border-radius: 50%;
|
|
50
|
+
|
|
51
|
+
background: transparent;
|
|
52
|
+
color: var(--color-on-surface);
|
|
53
|
+
|
|
54
|
+
cursor: pointer;
|
|
55
|
+
transition: background-color var(--motion-fast) var(--motion-ease-in-out);
|
|
56
|
+
|
|
57
|
+
&:hover {
|
|
58
|
+
background-color: var(--color-surface-container-high);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
&:focus-visible {
|
|
62
|
+
@include mixins.focus-ring;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
&--outside {
|
|
66
|
+
color: var(--color-on-surface-variant);
|
|
67
|
+
opacity: 0.4;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
&--today {
|
|
71
|
+
color: var(--color-primary);
|
|
72
|
+
font-weight: var(--font-weight-semibold);
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
&--selected {
|
|
76
|
+
background-color: var(--color-primary);
|
|
77
|
+
color: var(--color-on-primary);
|
|
78
|
+
|
|
79
|
+
&:hover {
|
|
80
|
+
background-color: var(--color-primary);
|
|
81
|
+
filter: brightness(0.9);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
.tls-date-time-picker {
|
|
2
|
+
--tls-date-time-picker-width: 200px;
|
|
3
|
+
|
|
4
|
+
display: inline-block;
|
|
5
|
+
|
|
6
|
+
&__panel {
|
|
7
|
+
padding: var(--spacing-3);
|
|
8
|
+
background-color: var(--color-surface-container-lowest);
|
|
9
|
+
border: 1px solid var(--color-outline-variant);
|
|
10
|
+
border-radius: var(--radius-lg);
|
|
11
|
+
box-shadow: 0 2px 8px rgba(var(--color-shadow), 0.12);
|
|
12
|
+
|
|
13
|
+
&--disabled {
|
|
14
|
+
opacity: 0.5;
|
|
15
|
+
pointer-events: none;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
&--readonly {
|
|
19
|
+
pointer-events: none;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
&--invalid {
|
|
23
|
+
border-color: var(--color-danger);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
&.tls-form-control {
|
|
28
|
+
--tls-form-control-width: var(--tls-date-time-picker-width);
|
|
29
|
+
|
|
30
|
+
display: inline-flex;
|
|
31
|
+
align-items: stretch;
|
|
32
|
+
padding-inline: 0;
|
|
33
|
+
|
|
34
|
+
cursor: pointer;
|
|
35
|
+
|
|
36
|
+
&.tls-form-control--disabled {
|
|
37
|
+
cursor: not-allowed;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
&:focus-within {
|
|
41
|
+
border: var(--tls-form-control-border-width) solid var(--color-primary);
|
|
42
|
+
box-shadow: 0 0 3px -1px var(--color-primary);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
&__trigger {
|
|
47
|
+
flex: 1;
|
|
48
|
+
|
|
49
|
+
display: flex;
|
|
50
|
+
align-items: center;
|
|
51
|
+
|
|
52
|
+
padding-inline: var(--tls-form-control-padding-inline);
|
|
53
|
+
|
|
54
|
+
appearance: none;
|
|
55
|
+
outline: none;
|
|
56
|
+
border: none;
|
|
57
|
+
background: transparent;
|
|
58
|
+
color: inherit;
|
|
59
|
+
font: inherit;
|
|
60
|
+
|
|
61
|
+
cursor: inherit;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
@use '../../mixins' as mixins;
|
|
2
|
+
|
|
3
|
+
@mixin header {
|
|
4
|
+
display: flex;
|
|
5
|
+
align-items: center;
|
|
6
|
+
justify-content: space-between;
|
|
7
|
+
margin-bottom: var(--spacing-2);
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
@mixin cell {
|
|
11
|
+
display: flex;
|
|
12
|
+
justify-content: center;
|
|
13
|
+
align-items: center;
|
|
14
|
+
|
|
15
|
+
font-size: var(--font-label-large-size);
|
|
16
|
+
|
|
17
|
+
border-radius: var(--radius-md);
|
|
18
|
+
|
|
19
|
+
color: var(--color-on-surface);
|
|
20
|
+
|
|
21
|
+
cursor: pointer;
|
|
22
|
+
transition: background-color var(--motion-fast) var(--motion-ease-in-out);
|
|
23
|
+
|
|
24
|
+
&:hover {
|
|
25
|
+
background-color: var(--color-surface-container-high);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
&:focus-visible {
|
|
29
|
+
@include mixins.focus-ring;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
&--current {
|
|
33
|
+
color: var(--color-primary);
|
|
34
|
+
font-weight: var(--font-weight-medium);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
&--selected {
|
|
38
|
+
background-color: var(--color-primary);
|
|
39
|
+
color: var(--color-on-primary);
|
|
40
|
+
|
|
41
|
+
&:hover {
|
|
42
|
+
background-color: var(--color-primary);
|
|
43
|
+
filter: brightness(0.9);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
@mixin header-button {
|
|
49
|
+
align-self: stretch;
|
|
50
|
+
|
|
51
|
+
flex-grow: 1;
|
|
52
|
+
display: flex;
|
|
53
|
+
align-items: center;
|
|
54
|
+
justify-content: center;
|
|
55
|
+
|
|
56
|
+
font-size: var(--font-label-large-size);
|
|
57
|
+
font-weight: var(--font-weight-medium);
|
|
58
|
+
color: var(--color-on-surface);
|
|
59
|
+
|
|
60
|
+
border: none;
|
|
61
|
+
border-radius: var(--radius-sm);
|
|
62
|
+
|
|
63
|
+
background: transparent;
|
|
64
|
+
|
|
65
|
+
cursor: pointer;
|
|
66
|
+
|
|
67
|
+
transition: background-color var(--motion-fast) var(--motion-ease-in-out);
|
|
68
|
+
|
|
69
|
+
&:hover {
|
|
70
|
+
background-color: var(--color-surface-container-high);
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
&:focus-visible {
|
|
74
|
+
@include mixins.focus-ring;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
@mixin nav {
|
|
79
|
+
width: var(--spacing-7);
|
|
80
|
+
height: var(--spacing-7);
|
|
81
|
+
|
|
82
|
+
display: flex;
|
|
83
|
+
align-items: center;
|
|
84
|
+
justify-content: center;
|
|
85
|
+
|
|
86
|
+
border: none;
|
|
87
|
+
border-radius: var(--radius-sm);
|
|
88
|
+
|
|
89
|
+
background: transparent;
|
|
90
|
+
color: var(--color-on-surface-variant);
|
|
91
|
+
|
|
92
|
+
cursor: pointer;
|
|
93
|
+
|
|
94
|
+
transition: background-color var(--motion-fast) var(--motion-ease-in-out);
|
|
95
|
+
|
|
96
|
+
svg {
|
|
97
|
+
width: 8px;
|
|
98
|
+
height: 14px;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
&:hover {
|
|
102
|
+
background-color: var(--color-surface-container-high);
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
&:focus-visible {
|
|
106
|
+
@include mixins.focus-ring;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
@use 'mixins' as picker-mixins;
|
|
2
|
+
|
|
3
|
+
.tls-month-picker {
|
|
4
|
+
--tls-month-picker-cell-height: var(--spacing-10);
|
|
5
|
+
|
|
6
|
+
display: block;
|
|
7
|
+
width: fit-content;
|
|
8
|
+
|
|
9
|
+
&__header {
|
|
10
|
+
@include picker-mixins.header;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
&__header-button {
|
|
14
|
+
@include picker-mixins.header-button;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
&__nav {
|
|
18
|
+
@include picker-mixins.nav;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
&__grid {
|
|
22
|
+
display: grid;
|
|
23
|
+
grid-template-columns: repeat(4, var(--spacing-15));
|
|
24
|
+
gap: var(--spacing-1);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
&__cell {
|
|
28
|
+
height: var(--tls-month-picker-cell-height);
|
|
29
|
+
|
|
30
|
+
@include picker-mixins.cell;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
@use '../../mixins' as mixins;
|
|
2
|
+
|
|
3
|
+
.tls-time-picker {
|
|
4
|
+
display: flex;
|
|
5
|
+
justify-content: center;
|
|
6
|
+
align-items: center;
|
|
7
|
+
gap: var(--spacing-1);
|
|
8
|
+
|
|
9
|
+
&__column {
|
|
10
|
+
display: flex;
|
|
11
|
+
flex-direction: column;
|
|
12
|
+
align-items: center;
|
|
13
|
+
gap: var(--spacing-1);
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
&__value {
|
|
17
|
+
font-size: var(--font-title-medium-size);
|
|
18
|
+
font-weight: var(--font-weight-medium);
|
|
19
|
+
color: var(--color-on-surface);
|
|
20
|
+
min-width: var(--spacing-9);
|
|
21
|
+
text-align: center;
|
|
22
|
+
line-height: 1;
|
|
23
|
+
padding: var(--spacing-1) 0;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
&__separator {
|
|
27
|
+
font-size: var(--font-title-medium-size);
|
|
28
|
+
font-weight: var(--font-weight-medium);
|
|
29
|
+
color: var(--color-on-surface-variant);
|
|
30
|
+
align-self: center;
|
|
31
|
+
padding-bottom: var(--spacing-2);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
&__arrow {
|
|
35
|
+
display: flex;
|
|
36
|
+
align-items: center;
|
|
37
|
+
justify-content: center;
|
|
38
|
+
width: var(--spacing-7);
|
|
39
|
+
height: var(--spacing-7);
|
|
40
|
+
border: none;
|
|
41
|
+
background: transparent;
|
|
42
|
+
border-radius: 50%;
|
|
43
|
+
cursor: pointer;
|
|
44
|
+
color: var(--color-on-surface-variant);
|
|
45
|
+
transition: background-color var(--motion-fast) var(--motion-ease-in-out);
|
|
46
|
+
|
|
47
|
+
svg {
|
|
48
|
+
width: 14px;
|
|
49
|
+
height: 8px;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
&:hover {
|
|
53
|
+
background-color: var(--color-surface-container-high);
|
|
54
|
+
color: var(--color-on-surface);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
&:focus-visible {
|
|
58
|
+
@include mixins.focus-ring;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
@use 'mixins' as picker-mixins;
|
|
2
|
+
|
|
3
|
+
.tls-year-picker {
|
|
4
|
+
--tls-year-picker-cell-height: var(--spacing-10);
|
|
5
|
+
|
|
6
|
+
display: block;
|
|
7
|
+
width: fit-content;
|
|
8
|
+
|
|
9
|
+
&__header {
|
|
10
|
+
@include picker-mixins.header;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
&__range {
|
|
14
|
+
font-size: var(--font-label-large-size);
|
|
15
|
+
font-weight: var(--font-weight-medium);
|
|
16
|
+
color: var(--color-on-surface);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
&__nav {
|
|
20
|
+
@include picker-mixins.nav;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
&__grid {
|
|
24
|
+
display: grid;
|
|
25
|
+
grid-template-columns: repeat(4, var(--spacing-15));
|
|
26
|
+
gap: var(--spacing-1);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
&__cell {
|
|
30
|
+
height: var(--tls-year-picker-cell-height);
|
|
31
|
+
|
|
32
|
+
@include picker-mixins.cell;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
.tls-dialog {
|
|
2
|
+
&.tls-dialog--sm {
|
|
3
|
+
--tls-dialog-width: 400px;
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
&.tls-dialog--md {
|
|
7
|
+
--tls-dialog-width: 560px;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
&.tls-dialog--lg {
|
|
11
|
+
--tls-dialog-width: 720px;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
&.tls-dialog--xl {
|
|
15
|
+
--tls-dialog-width: 920px;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
&.tls-dialog--wide {
|
|
19
|
+
--tls-dialog-width: calc(100svw - var(--spacing-12));
|
|
20
|
+
max-height: calc(100dvh - var(--spacing-12));
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
&.tls-dialog--full {
|
|
24
|
+
--tls-dialog-width: 100svw;
|
|
25
|
+
--tls-dialog-border-radius: 0;
|
|
26
|
+
height: 100dvh;
|
|
27
|
+
max-height: 100dvh;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
.tls-dialog-backdrop {
|
|
2
|
+
--tls-dialog-backdrop: rgb(0 0 0 / 0.4);
|
|
3
|
+
|
|
4
|
+
background-color: var(--tls-dialog-backdrop);
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
.tls-dialog {
|
|
8
|
+
--tls-dialog-background: var(--color-surface-container-lowest);
|
|
9
|
+
--tls-dialog-color: var(--color-on-surface);
|
|
10
|
+
--tls-dialog-border-radius: var(--radius-xl);
|
|
11
|
+
--tls-dialog-shadow: var(--shadow-lg);
|
|
12
|
+
--tls-dialog-padding: var(--spacing-6);
|
|
13
|
+
--tls-dialog-close-size: 16px;
|
|
14
|
+
--tls-dialog-close-padding: var(--spacing-4);
|
|
15
|
+
|
|
16
|
+
position: relative;
|
|
17
|
+
|
|
18
|
+
width: var(--tls-dialog-width);
|
|
19
|
+
|
|
20
|
+
display: flex;
|
|
21
|
+
flex-direction: column;
|
|
22
|
+
|
|
23
|
+
pointer-events: auto;
|
|
24
|
+
|
|
25
|
+
border-radius: var(--tls-dialog-border-radius);
|
|
26
|
+
background-color: var(--tls-dialog-background);
|
|
27
|
+
color: var(--tls-dialog-color);
|
|
28
|
+
box-shadow: var(--tls-dialog-shadow);
|
|
29
|
+
|
|
30
|
+
&__close {
|
|
31
|
+
position: absolute;
|
|
32
|
+
top: var(--tls-dialog-close-padding);
|
|
33
|
+
right: var(--tls-dialog-close-padding);
|
|
34
|
+
z-index: 1;
|
|
35
|
+
|
|
36
|
+
display: flex;
|
|
37
|
+
align-items: center;
|
|
38
|
+
justify-content: center;
|
|
39
|
+
|
|
40
|
+
width: var(--tls-dialog-close-size);
|
|
41
|
+
height: var(--tls-dialog-close-size);
|
|
42
|
+
|
|
43
|
+
color: var(--color-outline);
|
|
44
|
+
background: transparent;
|
|
45
|
+
border: none;
|
|
46
|
+
cursor: pointer;
|
|
47
|
+
|
|
48
|
+
transition: color var(--motion-fast) var(--motion-ease-in-out);
|
|
49
|
+
|
|
50
|
+
&:hover {
|
|
51
|
+
color: var(--color-on-surface);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
svg {
|
|
55
|
+
width: 100%;
|
|
56
|
+
height: 100%;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
&__header {
|
|
61
|
+
padding: var(--tls-dialog-padding) var(--tls-dialog-padding) 0;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
&__title {
|
|
65
|
+
font-size: var(--font-title-large-size);
|
|
66
|
+
font-weight: var(--font-weight-medium);
|
|
67
|
+
line-height: var(--font-title-large-line-height);
|
|
68
|
+
color: var(--color-on-surface);
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
&__body {
|
|
72
|
+
flex: 1;
|
|
73
|
+
padding: var(--spacing-4) var(--tls-dialog-padding);
|
|
74
|
+
overflow-y: auto;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
&__footer {
|
|
78
|
+
padding: 0 var(--tls-dialog-padding) var(--tls-dialog-padding);
|
|
79
|
+
|
|
80
|
+
display: flex;
|
|
81
|
+
align-items: center;
|
|
82
|
+
justify-content: flex-end;
|
|
83
|
+
gap: var(--spacing-3);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
--tls-form-control-border-color: var(--color-outline-variant);
|
|
5
5
|
|
|
6
6
|
color: var(--color-on-surface);
|
|
7
|
-
background-color: var(--color-surface);
|
|
7
|
+
background-color: var(--color-surface-container-lowest);
|
|
8
8
|
|
|
9
9
|
border-radius: var(--radius-md);
|
|
10
10
|
border: var(--tls-form-control-border-width) var(--tls-form-control-border-style)
|
|
@@ -20,10 +20,16 @@
|
|
|
20
20
|
}
|
|
21
21
|
|
|
22
22
|
&:focus {
|
|
23
|
-
|
|
23
|
+
outline: none;
|
|
24
|
+
border: var(--tls-form-control-border-width) solid var(--color-primary);
|
|
24
25
|
box-shadow: 0 0 3px -1px var(--color-primary);
|
|
25
26
|
}
|
|
26
27
|
|
|
28
|
+
&::placeholder,
|
|
29
|
+
.tls-form-control__placeholder {
|
|
30
|
+
color: var(--color-outline);
|
|
31
|
+
}
|
|
32
|
+
|
|
27
33
|
// Form control
|
|
28
34
|
&.tls-form-control--disabled {
|
|
29
35
|
background-color: var(--color-surface-variant);
|
|
@@ -38,7 +44,8 @@
|
|
|
38
44
|
|
|
39
45
|
color: var(--color-danger);
|
|
40
46
|
|
|
41
|
-
&::placeholder
|
|
47
|
+
&::placeholder,
|
|
48
|
+
.tls-form-control__placeholder {
|
|
42
49
|
color: var(--color-danger);
|
|
43
50
|
}
|
|
44
51
|
}
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
@forward 'alert';
|
|
2
2
|
@forward 'button';
|
|
3
3
|
@forward 'chart';
|
|
4
|
+
@forward 'date-time-picker';
|
|
5
|
+
@forward 'dialog';
|
|
4
6
|
@forward 'loader';
|
|
7
|
+
@forward 'pagination';
|
|
8
|
+
@forward 'select';
|
|
5
9
|
@forward 'form';
|
|
6
10
|
@forward 'stepper';
|
|
7
11
|
@forward 'switch';
|
|
@@ -11,6 +15,9 @@
|
|
|
11
15
|
@forward 'checkbox';
|
|
12
16
|
@forward 'divider';
|
|
13
17
|
@forward 'icon';
|
|
18
|
+
@forward 'password';
|
|
14
19
|
@forward 'pin-input';
|
|
20
|
+
@forward 'popover';
|
|
15
21
|
@forward 'radio-button';
|
|
16
22
|
@forward 'skeleton';
|
|
23
|
+
@forward 'table';
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
.tls-pagination {
|
|
2
|
+
&--sm {
|
|
3
|
+
--tls-pagination-item-size: var(--control-height-sm);
|
|
4
|
+
--tls-pagination-button-height: var(--control-height-sm);
|
|
5
|
+
--tls-pagination-button-padding-inline: var(--spacing-3);
|
|
6
|
+
--tls-pagination-button-icon-size: 14px;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
&--md {
|
|
10
|
+
--tls-pagination-item-size: var(--control-height-md);
|
|
11
|
+
--tls-pagination-button-height: var(--control-height-md);
|
|
12
|
+
--tls-pagination-button-padding-inline: var(--spacing-4);
|
|
13
|
+
--tls-pagination-button-icon-size: 16px;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
&--lg {
|
|
17
|
+
--tls-pagination-item-size: var(--control-height-lg);
|
|
18
|
+
--tls-pagination-button-height: var(--control-height-lg);
|
|
19
|
+
--tls-pagination-button-padding-inline: var(--spacing-5);
|
|
20
|
+
--tls-pagination-button-icon-size: 18px;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
.tls-pagination {
|
|
2
|
+
--tls-pagination-gap: 16px;
|
|
3
|
+
--tls-pagination-color: var(--color-secondary);
|
|
4
|
+
--tls-pagination-radius: 4px;
|
|
5
|
+
--tls-pagination-hover-outline: 1px solid var(--color-lines);
|
|
6
|
+
|
|
7
|
+
--tls-pagination-item-border-color: var(--color-outline-variant);
|
|
8
|
+
|
|
9
|
+
--tls-pagination-active-color: var(--color-on-primary);
|
|
10
|
+
--tls-pagination-active-background: var(--color-primary);
|
|
11
|
+
|
|
12
|
+
display: flex;
|
|
13
|
+
align-items: center;
|
|
14
|
+
|
|
15
|
+
&__list {
|
|
16
|
+
display: flex;
|
|
17
|
+
gap: var(--tls-pagination-gap);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
&__button {
|
|
21
|
+
height: var(--tls-pagination-button-height);
|
|
22
|
+
padding-inline: var(--tls-pagination-button-padding-inline);
|
|
23
|
+
|
|
24
|
+
display: flex;
|
|
25
|
+
justify-content: center;
|
|
26
|
+
align-items: center;
|
|
27
|
+
|
|
28
|
+
color: var(--tls-pagination-color);
|
|
29
|
+
|
|
30
|
+
border-radius: var(--tls-pagination-radius);
|
|
31
|
+
|
|
32
|
+
cursor: pointer;
|
|
33
|
+
|
|
34
|
+
&:hover {
|
|
35
|
+
outline: var(--tls-pagination-hover-outline);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
&-icon {
|
|
39
|
+
width: var(--tls-pagination-button-icon-size);
|
|
40
|
+
height: var(--tls-pagination-button-icon-size);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
&__gap {
|
|
45
|
+
width: var(--tls-pagination-item-size);
|
|
46
|
+
height: var(--tls-pagination-item-size);
|
|
47
|
+
|
|
48
|
+
display: flex;
|
|
49
|
+
justify-content: center;
|
|
50
|
+
align-items: center;
|
|
51
|
+
|
|
52
|
+
color: var(--tls-pagination-color);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
&__item-button {
|
|
56
|
+
width: var(--tls-pagination-item-size);
|
|
57
|
+
height: var(--tls-pagination-item-size);
|
|
58
|
+
|
|
59
|
+
display: flex;
|
|
60
|
+
justify-content: center;
|
|
61
|
+
align-items: center;
|
|
62
|
+
|
|
63
|
+
color: var(--tls-pagination-color);
|
|
64
|
+
|
|
65
|
+
border: 1px solid var(--tls-pagination-item-border-color);
|
|
66
|
+
border-radius: var(--tls-pagination-radius);
|
|
67
|
+
|
|
68
|
+
cursor: pointer;
|
|
69
|
+
|
|
70
|
+
&:hover {
|
|
71
|
+
outline: var(--tls-pagination-hover-outline);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
&--active {
|
|
75
|
+
color: var(--tls-pagination-active-color);
|
|
76
|
+
background-color: var(--tls-pagination-active-background);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
.tls-select__panel {
|
|
2
|
+
--tls-select-panel-max-height: 240px;
|
|
3
|
+
--tls-select-panel-padding-block: var(--spacing-1);
|
|
4
|
+
--tls-select-panel-background: var(--color-surface-container-lowest);
|
|
5
|
+
--tls-select-panel-border-radius: var(--radius-md);
|
|
6
|
+
--tls-select-panel-shadow: var(--shadow-sm);
|
|
7
|
+
|
|
8
|
+
width: 100%;
|
|
9
|
+
max-height: var(--tls-select-panel-max-height);
|
|
10
|
+
|
|
11
|
+
margin: 0;
|
|
12
|
+
padding: var(--tls-select-panel-padding-block) 0;
|
|
13
|
+
|
|
14
|
+
background-color: var(--tls-select-panel-background);
|
|
15
|
+
border-radius: var(--tls-select-panel-border-radius);
|
|
16
|
+
box-shadow: var(--tls-select-panel-shadow);
|
|
17
|
+
|
|
18
|
+
overflow-y: auto;
|
|
19
|
+
list-style: none;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
.tls-select__option {
|
|
23
|
+
--tls-select-option-color: var(--color-on-surface);
|
|
24
|
+
--tls-select-option-background: transparent;
|
|
25
|
+
--tls-select-option-padding-block: var(--spacing-2);
|
|
26
|
+
--tls-select-option-padding-inline: var(--spacing-3);
|
|
27
|
+
|
|
28
|
+
&.tls-select__option--active {
|
|
29
|
+
--tls-select-option-background: var(--color-surface-variant);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
&.tls-select__option--selected {
|
|
33
|
+
--tls-select-option-color: var(--color-primary);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
&.tls-select__option--disabled .tls-select__option-button {
|
|
37
|
+
opacity: 0.4;
|
|
38
|
+
cursor: not-allowed;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
.tls-select__option-button {
|
|
42
|
+
width: 100%;
|
|
43
|
+
padding-block: var(--tls-select-option-padding-block);
|
|
44
|
+
padding-inline: var(--tls-select-option-padding-inline);
|
|
45
|
+
|
|
46
|
+
display: flex;
|
|
47
|
+
align-items: center;
|
|
48
|
+
|
|
49
|
+
appearance: none;
|
|
50
|
+
cursor: pointer;
|
|
51
|
+
text-align: left;
|
|
52
|
+
|
|
53
|
+
color: var(--tls-select-option-color);
|
|
54
|
+
background: var(--tls-select-option-background);
|
|
55
|
+
border: none;
|
|
56
|
+
|
|
57
|
+
font-size: var(--font-body-medium-size);
|
|
58
|
+
font-weight: var(--font-body-medium-weight);
|
|
59
|
+
line-height: var(--font-body-medium-line-height);
|
|
60
|
+
letter-spacing: var(--font-body-medium-letter-spacing);
|
|
61
|
+
|
|
62
|
+
transition: background-color var(--motion-fast) var(--motion-ease-in-out);
|
|
63
|
+
|
|
64
|
+
&:focus-visible {
|
|
65
|
+
outline: none;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
.tls-select {
|
|
2
|
+
&.tls-form-control--sm {
|
|
3
|
+
--tls-select-icon-size: 0.625rem;
|
|
4
|
+
--tls-select-clear-size: 0.625rem;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
&.tls-form-control--md {
|
|
8
|
+
--tls-select-icon-size: 0.75rem;
|
|
9
|
+
--tls-select-clear-size: 0.75rem;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
&.tls-form-control--lg {
|
|
13
|
+
--tls-select-icon-size: 0.875rem;
|
|
14
|
+
--tls-select-clear-size: 0.875rem;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
.tls-select {
|
|
2
|
+
--tls-select-width: 200px;
|
|
3
|
+
--tls-select-gap: var(--spacing-2);
|
|
4
|
+
|
|
5
|
+
position: relative;
|
|
6
|
+
display: inline-block;
|
|
7
|
+
|
|
8
|
+
&.tls-form-control {
|
|
9
|
+
--tls-form-control-width: var(--tls-select-width);
|
|
10
|
+
|
|
11
|
+
display: inline-flex;
|
|
12
|
+
align-items: stretch;
|
|
13
|
+
padding-inline: 0;
|
|
14
|
+
|
|
15
|
+
cursor: pointer;
|
|
16
|
+
|
|
17
|
+
&.tls-form-control--fluid {
|
|
18
|
+
--tls-form-control-width: 100%;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
&.tls-form-control--disabled {
|
|
22
|
+
cursor: not-allowed;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
&:focus-within {
|
|
26
|
+
border: var(--tls-form-control-border-width) solid var(--color-primary);
|
|
27
|
+
box-shadow: 0 0 3px -1px var(--color-primary);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
&.tls-select--open {
|
|
31
|
+
.tls-select__chevron {
|
|
32
|
+
transform: rotate(180deg);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
.tls-select__trigger {
|
|
37
|
+
flex: 1;
|
|
38
|
+
min-width: 0;
|
|
39
|
+
|
|
40
|
+
display: flex;
|
|
41
|
+
align-items: center;
|
|
42
|
+
gap: var(--tls-select-gap);
|
|
43
|
+
|
|
44
|
+
padding-inline: var(--tls-form-control-padding-inline);
|
|
45
|
+
|
|
46
|
+
appearance: none;
|
|
47
|
+
outline: none;
|
|
48
|
+
|
|
49
|
+
.tls-select__value {
|
|
50
|
+
flex: 1;
|
|
51
|
+
|
|
52
|
+
overflow: hidden;
|
|
53
|
+
white-space: nowrap;
|
|
54
|
+
text-overflow: ellipsis;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
.tls-select__icon {
|
|
58
|
+
width: var(--tls-select-icon-size);
|
|
59
|
+
height: var(--tls-select-icon-size);
|
|
60
|
+
|
|
61
|
+
flex-shrink: 0;
|
|
62
|
+
display: flex;
|
|
63
|
+
align-items: center;
|
|
64
|
+
|
|
65
|
+
.tls-select__chevron {
|
|
66
|
+
transition: transform var(--motion-fast) var(--motion-ease-in-out);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
// Clear button
|
|
72
|
+
.tls-select__clear {
|
|
73
|
+
position: absolute;
|
|
74
|
+
top: 50%;
|
|
75
|
+
right: calc(var(--tls-form-control-padding-inline) * 2 + var(--tls-select-icon-size));
|
|
76
|
+
|
|
77
|
+
display: flex;
|
|
78
|
+
align-items: center;
|
|
79
|
+
|
|
80
|
+
color: var(--color-outline);
|
|
81
|
+
|
|
82
|
+
transform: translateY(-50%);
|
|
83
|
+
|
|
84
|
+
&:hover {
|
|
85
|
+
color: var(--color-on-surface);
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
.tls-select__clear-icon {
|
|
89
|
+
width: var(--tls-select-clear-size);
|
|
90
|
+
height: var(--tls-select-clear-size);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|