@keenmate/pure-admin-core 2.3.1 → 2.3.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/README.md +5 -5
- package/dist/css/main.css +187 -178
- package/package.json +1 -1
- package/snippets/buttons.html +375 -365
- package/src/scss/_base-css-variables.scss +8 -0
- package/src/scss/_core.scss +121 -121
- package/src/scss/core-components/_alerts.scss +227 -227
- package/src/scss/core-components/_badges.scss +16 -16
- package/src/scss/core-components/_base.scss +125 -125
- package/src/scss/core-components/_buttons.scss +31 -16
- package/src/scss/core-components/_callouts.scss +152 -152
- package/src/scss/core-components/_cards.scss +488 -488
- package/src/scss/core-components/_checkbox-lists.scss +289 -289
- package/src/scss/core-components/_code.scss +141 -141
- package/src/scss/core-components/_command-palette.scss +509 -509
- package/src/scss/core-components/_comparison.scss +172 -172
- package/src/scss/core-components/_data-display.scss +9 -9
- package/src/scss/core-components/_data-viz.scss +9 -9
- package/src/scss/core-components/_detail-panel.scss +1 -1
- package/src/scss/core-components/_file-selector.scss +780 -780
- package/src/scss/core-components/_filter-card.scss +58 -58
- package/src/scss/core-components/_forms.scss +16 -16
- package/src/scss/core-components/_grid.scss +293 -293
- package/src/scss/core-components/_layout.scss +15 -15
- package/src/scss/core-components/_lists.scss +211 -211
- package/src/scss/core-components/_loaders.scss +277 -277
- package/src/scss/core-components/_logic-tree.scss +280 -280
- package/src/scss/core-components/_modals.scss +203 -203
- package/src/scss/core-components/_notifications.scss +320 -320
- package/src/scss/core-components/_pagers.scss +141 -141
- package/src/scss/core-components/_popconfirm.scss +170 -170
- package/src/scss/core-components/_profile.scss +405 -405
- package/src/scss/core-components/_scrollbars.scss +40 -40
- package/src/scss/core-components/_settings-panel.scss +141 -141
- package/src/scss/core-components/_statistics.scss +200 -201
- package/src/scss/core-components/_tables.scss +900 -900
- package/src/scss/core-components/_tabs.scss +504 -504
- package/src/scss/core-components/_timeline.scss +589 -589
- package/src/scss/core-components/_toasts.scss +425 -425
- package/src/scss/core-components/_tooltips.scss +605 -605
- package/src/scss/core-components/_utilities.scss +1 -1
- package/src/scss/core-components/_web-components-theme.scss +21 -21
- package/src/scss/core-components/badges/_badge-base.scss +121 -121
- package/src/scss/core-components/badges/_badge-group.scss +25 -25
- package/src/scss/core-components/badges/_composite-badge-variants.scss +396 -396
- package/src/scss/core-components/badges/_composite-badge.scss +70 -70
- package/src/scss/core-components/badges/_index.scss +10 -10
- package/src/scss/core-components/badges/_labels.scss +155 -155
- package/src/scss/core-components/forms/_checkboxes-radios.scss +205 -205
- package/src/scss/core-components/forms/_form-inputs.scss +3 -3
- package/src/scss/core-components/forms/_form-layout.scss +66 -66
- package/src/scss/core-components/forms/_form-states.scss +115 -115
- package/src/scss/core-components/forms/_index.scss +12 -12
- package/src/scss/core-components/forms/_input-groups.scss +154 -154
- package/src/scss/core-components/forms/_input-wrapper.scss +89 -89
- package/src/scss/core-components/forms/_query-editor.scss +313 -313
- package/src/scss/core-components/layout/_index.scss +11 -11
- package/src/scss/core-components/layout/_layout-container.scss +168 -168
- package/src/scss/core-components/layout/_layout-responsive.scss +99 -99
- package/src/scss/core-components/layout/_navbar-elements.scss +250 -250
- package/src/scss/core-components/layout/_navbar.scss +83 -83
- package/src/scss/core-components/layout/_sidebar-states.scss +237 -237
- package/src/scss/core-components/layout/_sidebar.scss +234 -234
- package/src/scss/main.scss +7 -7
- package/src/scss/utilities.scss +740 -740
- package/src/scss/variables/_base.scss +228 -228
- package/src/scss/variables/_components.scss +748 -748
- package/src/scss/variables/_layout.scss +65 -65
- package/src/scss/variables/_typography.scss +37 -37
|
@@ -1,115 +1,115 @@
|
|
|
1
|
-
/* ========================================
|
|
2
|
-
Form Validation States
|
|
3
|
-
Input states (error, success, warning), form groups with states, help text
|
|
4
|
-
======================================== */
|
|
5
|
-
@use '../../variables' as *;
|
|
6
|
-
|
|
7
|
-
// Input States
|
|
8
|
-
.pa-input--error,
|
|
9
|
-
.pa-select--error {
|
|
10
|
-
border-color: var(--pa-danger-bg);
|
|
11
|
-
|
|
12
|
-
&:focus {
|
|
13
|
-
border-color: var(--pa-danger-bg);
|
|
14
|
-
box-shadow: 0 0 0 $focus-ring-width var(--pa-danger-bg-light);
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
.pa-input--success,
|
|
19
|
-
.pa-select--success {
|
|
20
|
-
border-color: var(--pa-success-bg);
|
|
21
|
-
|
|
22
|
-
&:focus {
|
|
23
|
-
border-color: var(--pa-success-bg);
|
|
24
|
-
box-shadow: 0 0 0 $focus-ring-width var(--pa-success-bg-light);
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
.pa-input--warning,
|
|
29
|
-
.pa-select--warning {
|
|
30
|
-
border-color: var(--pa-warning-bg);
|
|
31
|
-
|
|
32
|
-
&:focus {
|
|
33
|
-
border-color: var(--pa-warning-bg);
|
|
34
|
-
box-shadow: 0 0 0 $focus-ring-width var(--pa-warning-bg-light);
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
// Form Groups with States
|
|
39
|
-
.pa-form-group--error {
|
|
40
|
-
.pa-input,
|
|
41
|
-
.pa-select {
|
|
42
|
-
border-color: var(--pa-danger-bg);
|
|
43
|
-
|
|
44
|
-
&:focus {
|
|
45
|
-
border-color: var(--pa-danger-bg);
|
|
46
|
-
box-shadow: 0 0 0 $focus-ring-width var(--pa-danger-bg-light);
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
.pa-form-group--success {
|
|
52
|
-
.pa-input,
|
|
53
|
-
.pa-select {
|
|
54
|
-
border-color: var(--pa-success-bg);
|
|
55
|
-
|
|
56
|
-
&:focus {
|
|
57
|
-
border-color: var(--pa-success-bg);
|
|
58
|
-
box-shadow: 0 0 0 $focus-ring-width var(--pa-success-bg-light);
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
.pa-form-group--warning {
|
|
64
|
-
.pa-input,
|
|
65
|
-
.pa-select {
|
|
66
|
-
border-color: var(--pa-warning-bg);
|
|
67
|
-
|
|
68
|
-
&:focus {
|
|
69
|
-
border-color: var(--pa-warning-bg);
|
|
70
|
-
box-shadow: 0 0 0 $focus-ring-width var(--pa-warning-bg-light);
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
// Form Help Text
|
|
76
|
-
.pa-form-help {
|
|
77
|
-
display: block;
|
|
78
|
-
margin-top: $form-help-margin-top;
|
|
79
|
-
font-size: $font-size-xs;
|
|
80
|
-
color: var(--pa-text-color-2);
|
|
81
|
-
|
|
82
|
-
&--error {
|
|
83
|
-
color: var(--pa-danger-bg);
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
&--success {
|
|
87
|
-
color: var(--pa-success-bg);
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
&--warning {
|
|
91
|
-
color: var(--pa-warning-bg);
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
// Theme Color Variants for Help Text (color-1 through color-9)
|
|
96
|
-
@for $i from 1 through 9 {
|
|
97
|
-
.pa-form-help--color-#{$i} {
|
|
98
|
-
color: var(--pa-color-#{$i});
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
// Theme Color Variants for Inputs (color-1 through color-9)
|
|
103
|
-
// These use theme-customizable colors from --pa-color-* CSS variables
|
|
104
|
-
@for $i from 1 through 9 {
|
|
105
|
-
.pa-input--color-#{$i},
|
|
106
|
-
.pa-select--color-#{$i},
|
|
107
|
-
.pa-textarea--color-#{$i} {
|
|
108
|
-
border-color: var(--pa-color-#{$i});
|
|
109
|
-
|
|
110
|
-
&:focus {
|
|
111
|
-
border-color: var(--pa-color-#{$i});
|
|
112
|
-
box-shadow: 0 0 0 $focus-ring-width color-mix(in srgb, var(--pa-color-#{$i}) 25%, transparent);
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
}
|
|
1
|
+
/* ========================================
|
|
2
|
+
Form Validation States
|
|
3
|
+
Input states (error, success, warning), form groups with states, help text
|
|
4
|
+
======================================== */
|
|
5
|
+
@use '../../variables' as *;
|
|
6
|
+
|
|
7
|
+
// Input States
|
|
8
|
+
.pa-input--error,
|
|
9
|
+
.pa-select--error {
|
|
10
|
+
border-color: var(--pa-danger-bg);
|
|
11
|
+
|
|
12
|
+
&:focus {
|
|
13
|
+
border-color: var(--pa-danger-bg);
|
|
14
|
+
box-shadow: 0 0 0 $focus-ring-width var(--pa-danger-bg-light);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
.pa-input--success,
|
|
19
|
+
.pa-select--success {
|
|
20
|
+
border-color: var(--pa-success-bg);
|
|
21
|
+
|
|
22
|
+
&:focus {
|
|
23
|
+
border-color: var(--pa-success-bg);
|
|
24
|
+
box-shadow: 0 0 0 $focus-ring-width var(--pa-success-bg-light);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
.pa-input--warning,
|
|
29
|
+
.pa-select--warning {
|
|
30
|
+
border-color: var(--pa-warning-bg);
|
|
31
|
+
|
|
32
|
+
&:focus {
|
|
33
|
+
border-color: var(--pa-warning-bg);
|
|
34
|
+
box-shadow: 0 0 0 $focus-ring-width var(--pa-warning-bg-light);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
// Form Groups with States
|
|
39
|
+
.pa-form-group--error {
|
|
40
|
+
.pa-input,
|
|
41
|
+
.pa-select {
|
|
42
|
+
border-color: var(--pa-danger-bg);
|
|
43
|
+
|
|
44
|
+
&:focus {
|
|
45
|
+
border-color: var(--pa-danger-bg);
|
|
46
|
+
box-shadow: 0 0 0 $focus-ring-width var(--pa-danger-bg-light);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
.pa-form-group--success {
|
|
52
|
+
.pa-input,
|
|
53
|
+
.pa-select {
|
|
54
|
+
border-color: var(--pa-success-bg);
|
|
55
|
+
|
|
56
|
+
&:focus {
|
|
57
|
+
border-color: var(--pa-success-bg);
|
|
58
|
+
box-shadow: 0 0 0 $focus-ring-width var(--pa-success-bg-light);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
.pa-form-group--warning {
|
|
64
|
+
.pa-input,
|
|
65
|
+
.pa-select {
|
|
66
|
+
border-color: var(--pa-warning-bg);
|
|
67
|
+
|
|
68
|
+
&:focus {
|
|
69
|
+
border-color: var(--pa-warning-bg);
|
|
70
|
+
box-shadow: 0 0 0 $focus-ring-width var(--pa-warning-bg-light);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
// Form Help Text
|
|
76
|
+
.pa-form-help {
|
|
77
|
+
display: block;
|
|
78
|
+
margin-top: $form-help-margin-top;
|
|
79
|
+
font-size: $font-size-xs;
|
|
80
|
+
color: var(--pa-text-color-2);
|
|
81
|
+
|
|
82
|
+
&--error {
|
|
83
|
+
color: var(--pa-danger-bg);
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
&--success {
|
|
87
|
+
color: var(--pa-success-bg);
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
&--warning {
|
|
91
|
+
color: var(--pa-warning-bg);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
// Theme Color Variants for Help Text (color-1 through color-9)
|
|
96
|
+
@for $i from 1 through 9 {
|
|
97
|
+
.pa-form-help--color-#{$i} {
|
|
98
|
+
color: var(--pa-color-#{$i});
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
// Theme Color Variants for Inputs (color-1 through color-9)
|
|
103
|
+
// These use theme-customizable colors from --pa-color-* CSS variables
|
|
104
|
+
@for $i from 1 through 9 {
|
|
105
|
+
.pa-input--color-#{$i},
|
|
106
|
+
.pa-select--color-#{$i},
|
|
107
|
+
.pa-textarea--color-#{$i} {
|
|
108
|
+
border-color: var(--pa-color-#{$i});
|
|
109
|
+
|
|
110
|
+
&:focus {
|
|
111
|
+
border-color: var(--pa-color-#{$i});
|
|
112
|
+
box-shadow: 0 0 0 $focus-ring-width color-mix(in srgb, var(--pa-color-#{$i}) 25%, transparent);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
/* ========================================
|
|
2
|
-
Forms Index
|
|
3
|
-
Central import point for all form component modules
|
|
4
|
-
======================================== */
|
|
5
|
-
|
|
6
|
-
@forward 'form-layout';
|
|
7
|
-
@forward 'form-inputs';
|
|
8
|
-
@forward 'form-states';
|
|
9
|
-
@forward 'input-groups';
|
|
10
|
-
@forward 'input-wrapper';
|
|
11
|
-
@forward 'query-editor';
|
|
12
|
-
@forward 'checkboxes-radios';
|
|
1
|
+
/* ========================================
|
|
2
|
+
Forms Index
|
|
3
|
+
Central import point for all form component modules
|
|
4
|
+
======================================== */
|
|
5
|
+
|
|
6
|
+
@forward 'form-layout';
|
|
7
|
+
@forward 'form-inputs';
|
|
8
|
+
@forward 'form-states';
|
|
9
|
+
@forward 'input-groups';
|
|
10
|
+
@forward 'input-wrapper';
|
|
11
|
+
@forward 'query-editor';
|
|
12
|
+
@forward 'checkboxes-radios';
|
|
@@ -1,154 +1,154 @@
|
|
|
1
|
-
/* ========================================
|
|
2
|
-
Input Groups
|
|
3
|
-
Input groups with prepend/append addons and buttons
|
|
4
|
-
RTL-aware using CSS logical properties
|
|
5
|
-
======================================== */
|
|
6
|
-
@use '../../variables' as *;
|
|
7
|
-
|
|
8
|
-
.pa-input-group {
|
|
9
|
-
display: flex;
|
|
10
|
-
align-items: stretch;
|
|
11
|
-
|
|
12
|
-
.pa-input {
|
|
13
|
-
border-radius: 0;
|
|
14
|
-
flex: 1;
|
|
15
|
-
|
|
16
|
-
&:first-child {
|
|
17
|
-
border-start-start-radius:
|
|
18
|
-
border-end-start-radius:
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
&:last-child {
|
|
22
|
-
border-start-end-radius:
|
|
23
|
-
border-end-end-radius:
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
&:not(:first-child) {
|
|
27
|
-
border-inline-start: none; // RTL: flips to border-right
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
&:not(:last-child) {
|
|
31
|
-
border-inline-end: none; // RTL: flips to border-left
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
&__prepend,
|
|
36
|
-
&__append {
|
|
37
|
-
display: flex;
|
|
38
|
-
align-items: center;
|
|
39
|
-
height: #{$base-input-size-md-height}rem;
|
|
40
|
-
line-height: #{$base-input-size-md-height}rem;
|
|
41
|
-
padding: 0 $input-padding-h;
|
|
42
|
-
border: $border-width-base solid var(--pa-border-color);
|
|
43
|
-
font-size: $font-size-sm;
|
|
44
|
-
white-space: nowrap;
|
|
45
|
-
border-radius: 0;
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
&__prepend {
|
|
49
|
-
background-color: var(--pa-input-group-prepend-bg);
|
|
50
|
-
color: var(--pa-input-group-prepend-text);
|
|
51
|
-
border-color: var(--pa-input-group-prepend-bg);
|
|
52
|
-
border-inline-end: none; // RTL: flips to border-left
|
|
53
|
-
|
|
54
|
-
&:first-child {
|
|
55
|
-
border-start-start-radius:
|
|
56
|
-
border-end-start-radius:
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
&__append {
|
|
61
|
-
background-color: var(--pa-input-group-append-bg);
|
|
62
|
-
color: var(--pa-input-group-append-text);
|
|
63
|
-
border-color: var(--pa-input-group-append-bg);
|
|
64
|
-
border-inline-start: none; // RTL: flips to border-right
|
|
65
|
-
|
|
66
|
-
&:last-child {
|
|
67
|
-
border-start-end-radius:
|
|
68
|
-
border-end-end-radius:
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
// Adjacent prepends/appends need borders between them
|
|
73
|
-
&__prepend + &__prepend {
|
|
74
|
-
border-inline-start: $border-width-base solid var(--pa-input-group-prepend-bg); // RTL: flips
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
&__append + &__append {
|
|
78
|
-
border-inline-start: $border-width-base solid var(--pa-input-group-append-bg); // RTL: flips
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
// When input is focused, show focus border on adjacent prepend/append
|
|
82
|
-
&:has(.pa-input:focus) {
|
|
83
|
-
// Last prepend (one before input) gets focus border
|
|
84
|
-
.pa-input-group__prepend {
|
|
85
|
-
border-inline-end: $border-width-base solid var(--pa-input-focus-border-color); // RTL: flips
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
// But prepends followed by another prepend keep normal border
|
|
89
|
-
.pa-input-group__prepend:has(+ .pa-input-group__prepend) {
|
|
90
|
-
border-inline-end: none; // RTL: flips
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
// First append (one after input) gets focus border
|
|
94
|
-
.pa-input-group__append {
|
|
95
|
-
border-inline-start: $border-width-base solid var(--pa-input-focus-border-color); // RTL: flips
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
// But appends following another append keep normal border
|
|
99
|
-
.pa-input-group__append + .pa-input-group__append {
|
|
100
|
-
border-inline-start: $border-width-base solid var(--pa-border-color); // RTL: flips
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
&__button {
|
|
105
|
-
border-radius: 0;
|
|
106
|
-
|
|
107
|
-
&:first-child {
|
|
108
|
-
border-start-start-radius:
|
|
109
|
-
border-end-start-radius:
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
&:last-child {
|
|
113
|
-
border-start-end-radius:
|
|
114
|
-
border-end-end-radius:
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
// Input group sizes - match prepend/append to input sizes
|
|
119
|
-
&--xs {
|
|
120
|
-
.pa-input-group__prepend,
|
|
121
|
-
.pa-input-group__append {
|
|
122
|
-
height: #{$base-input-size-xs-height}rem;
|
|
123
|
-
line-height: #{$base-input-size-xs-height}rem;
|
|
124
|
-
font-size: $font-size-xs;
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
&--sm {
|
|
129
|
-
.pa-input-group__prepend,
|
|
130
|
-
.pa-input-group__append {
|
|
131
|
-
height: #{$base-input-size-sm-height}rem;
|
|
132
|
-
line-height: #{$base-input-size-sm-height}rem;
|
|
133
|
-
font-size: $font-size-sm;
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
&--lg {
|
|
138
|
-
.pa-input-group__prepend,
|
|
139
|
-
.pa-input-group__append {
|
|
140
|
-
height: #{$base-input-size-lg-height}rem;
|
|
141
|
-
line-height: #{$base-input-size-lg-height}rem;
|
|
142
|
-
font-size: $font-size-base;
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
&--xl {
|
|
147
|
-
.pa-input-group__prepend,
|
|
148
|
-
.pa-input-group__append {
|
|
149
|
-
height: #{$base-input-size-xl-height}rem;
|
|
150
|
-
line-height: #{$base-input-size-xl-height}rem;
|
|
151
|
-
font-size: $font-size-lg;
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
}
|
|
1
|
+
/* ========================================
|
|
2
|
+
Input Groups
|
|
3
|
+
Input groups with prepend/append addons and buttons
|
|
4
|
+
RTL-aware using CSS logical properties
|
|
5
|
+
======================================== */
|
|
6
|
+
@use '../../variables' as *;
|
|
7
|
+
|
|
8
|
+
.pa-input-group {
|
|
9
|
+
display: flex;
|
|
10
|
+
align-items: stretch;
|
|
11
|
+
|
|
12
|
+
.pa-input {
|
|
13
|
+
border-radius: 0;
|
|
14
|
+
flex: 1;
|
|
15
|
+
|
|
16
|
+
&:first-child {
|
|
17
|
+
border-start-start-radius: var(--pa-border-radius); // RTL: top-right in RTL
|
|
18
|
+
border-end-start-radius: var(--pa-border-radius); // RTL: bottom-right in RTL
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
&:last-child {
|
|
22
|
+
border-start-end-radius: var(--pa-border-radius); // RTL: top-left in RTL
|
|
23
|
+
border-end-end-radius: var(--pa-border-radius); // RTL: bottom-left in RTL
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
&:not(:first-child) {
|
|
27
|
+
border-inline-start: none; // RTL: flips to border-right
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
&:not(:last-child) {
|
|
31
|
+
border-inline-end: none; // RTL: flips to border-left
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
&__prepend,
|
|
36
|
+
&__append {
|
|
37
|
+
display: flex;
|
|
38
|
+
align-items: center;
|
|
39
|
+
height: #{$base-input-size-md-height}rem;
|
|
40
|
+
line-height: #{$base-input-size-md-height}rem;
|
|
41
|
+
padding: 0 $input-padding-h;
|
|
42
|
+
border: $border-width-base solid var(--pa-border-color);
|
|
43
|
+
font-size: $font-size-sm;
|
|
44
|
+
white-space: nowrap;
|
|
45
|
+
border-radius: 0;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
&__prepend {
|
|
49
|
+
background-color: var(--pa-input-group-prepend-bg);
|
|
50
|
+
color: var(--pa-input-group-prepend-text);
|
|
51
|
+
border-color: var(--pa-input-group-prepend-bg);
|
|
52
|
+
border-inline-end: none; // RTL: flips to border-left
|
|
53
|
+
|
|
54
|
+
&:first-child {
|
|
55
|
+
border-start-start-radius: var(--pa-border-radius); // RTL: top-right in RTL
|
|
56
|
+
border-end-start-radius: var(--pa-border-radius); // RTL: bottom-right in RTL
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
&__append {
|
|
61
|
+
background-color: var(--pa-input-group-append-bg);
|
|
62
|
+
color: var(--pa-input-group-append-text);
|
|
63
|
+
border-color: var(--pa-input-group-append-bg);
|
|
64
|
+
border-inline-start: none; // RTL: flips to border-right
|
|
65
|
+
|
|
66
|
+
&:last-child {
|
|
67
|
+
border-start-end-radius: var(--pa-border-radius); // RTL: top-left in RTL
|
|
68
|
+
border-end-end-radius: var(--pa-border-radius); // RTL: bottom-left in RTL
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
// Adjacent prepends/appends need borders between them
|
|
73
|
+
&__prepend + &__prepend {
|
|
74
|
+
border-inline-start: $border-width-base solid var(--pa-input-group-prepend-bg); // RTL: flips
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
&__append + &__append {
|
|
78
|
+
border-inline-start: $border-width-base solid var(--pa-input-group-append-bg); // RTL: flips
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
// When input is focused, show focus border on adjacent prepend/append
|
|
82
|
+
&:has(.pa-input:focus) {
|
|
83
|
+
// Last prepend (one before input) gets focus border
|
|
84
|
+
.pa-input-group__prepend {
|
|
85
|
+
border-inline-end: $border-width-base solid var(--pa-input-focus-border-color); // RTL: flips
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
// But prepends followed by another prepend keep normal border
|
|
89
|
+
.pa-input-group__prepend:has(+ .pa-input-group__prepend) {
|
|
90
|
+
border-inline-end: none; // RTL: flips
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
// First append (one after input) gets focus border
|
|
94
|
+
.pa-input-group__append {
|
|
95
|
+
border-inline-start: $border-width-base solid var(--pa-input-focus-border-color); // RTL: flips
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
// But appends following another append keep normal border
|
|
99
|
+
.pa-input-group__append + .pa-input-group__append {
|
|
100
|
+
border-inline-start: $border-width-base solid var(--pa-border-color); // RTL: flips
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
&__button {
|
|
105
|
+
border-radius: 0;
|
|
106
|
+
|
|
107
|
+
&:first-child {
|
|
108
|
+
border-start-start-radius: var(--pa-border-radius); // RTL: top-right in RTL
|
|
109
|
+
border-end-start-radius: var(--pa-border-radius); // RTL: bottom-right in RTL
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
&:last-child {
|
|
113
|
+
border-start-end-radius: var(--pa-border-radius); // RTL: top-left in RTL
|
|
114
|
+
border-end-end-radius: var(--pa-border-radius); // RTL: bottom-left in RTL
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
// Input group sizes - match prepend/append to input sizes
|
|
119
|
+
&--xs {
|
|
120
|
+
.pa-input-group__prepend,
|
|
121
|
+
.pa-input-group__append {
|
|
122
|
+
height: #{$base-input-size-xs-height}rem;
|
|
123
|
+
line-height: #{$base-input-size-xs-height}rem;
|
|
124
|
+
font-size: $font-size-xs;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
&--sm {
|
|
129
|
+
.pa-input-group__prepend,
|
|
130
|
+
.pa-input-group__append {
|
|
131
|
+
height: #{$base-input-size-sm-height}rem;
|
|
132
|
+
line-height: #{$base-input-size-sm-height}rem;
|
|
133
|
+
font-size: $font-size-sm;
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
&--lg {
|
|
138
|
+
.pa-input-group__prepend,
|
|
139
|
+
.pa-input-group__append {
|
|
140
|
+
height: #{$base-input-size-lg-height}rem;
|
|
141
|
+
line-height: #{$base-input-size-lg-height}rem;
|
|
142
|
+
font-size: $font-size-base;
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
&--xl {
|
|
147
|
+
.pa-input-group__prepend,
|
|
148
|
+
.pa-input-group__append {
|
|
149
|
+
height: #{$base-input-size-xl-height}rem;
|
|
150
|
+
line-height: #{$base-input-size-xl-height}rem;
|
|
151
|
+
font-size: $font-size-lg;
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
}
|