@keenmate/web-multiselect 1.5.1 → 1.6.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,247 +0,0 @@
1
- // ==============================================================================
2
- // BADGES & DISPLAY MODES
3
- // ==============================================================================
4
- // Badges container, count display, individual badges, and remove buttons
5
-
6
- @use 'variables' as *;
7
-
8
- // ==============================================================================
9
- // BADGES CONTAINER
10
- // ==============================================================================
11
-
12
- // Selected badges container
13
- .ms__badges {
14
- display: flex;
15
- flex-wrap: wrap;
16
- gap: var(--ms-badges-gap, $ms-badges-gap);
17
- padding: 0;
18
-
19
- &:empty {
20
- display: none;
21
- }
22
-
23
- // Position variants
24
- &--bottom {
25
- margin-top: var(--ms-badges-margin-bottom, $ms-badges-margin-bottom);
26
- }
27
-
28
- &--top {
29
- margin-bottom: var(--ms-badges-margin-top, $ms-badges-margin-top);
30
- order: var(--ms-order-first, $ms-order-first); // Place before multiselect in flex container
31
- }
32
-
33
- &--left {
34
- order: var(--ms-order-first, $ms-order-first); // Place before multiselect
35
- margin-right: var(--ms-badges-margin-left, $ms-badges-margin-left);
36
- justify-content: flex-end; // Badges at right edge of container, close to input
37
- }
38
-
39
- &--right {
40
- margin-left: var(--ms-badges-margin-right, $ms-badges-margin-right);
41
- justify-content: flex-start; // Badges at left edge of container, close to input
42
- }
43
- }
44
-
45
- // ==============================================================================
46
- // COUNT DISPLAY MODE
47
- // ==============================================================================
48
-
49
- // Count display (alternative to badges)
50
- .ms__count-display {
51
- display: flex;
52
- align-items: center;
53
-
54
- &:empty {
55
- display: none;
56
- }
57
-
58
- // Position variants
59
- &--bottom {
60
- margin-top: var(--ms-count-display-margin-bottom, $ms-count-display-margin-bottom);
61
- }
62
-
63
- &--top {
64
- margin-bottom: var(--ms-count-display-margin-top, $ms-count-display-margin-top);
65
- order: var(--ms-order-first, $ms-order-first); // Place before multiselect in flex container
66
- }
67
-
68
- &--left {
69
- order: var(--ms-order-first, $ms-order-first); // Place before multiselect
70
- margin-right: var(--ms-count-display-margin-left, $ms-count-display-margin-left);
71
- justify-content: flex-start;
72
- }
73
-
74
- &--right {
75
- margin-left: var(--ms-count-display-margin-right, $ms-count-display-margin-right);
76
- justify-content: flex-end;
77
- }
78
- }
79
-
80
- // Wrapper containing count text and clear button
81
- .ms__counter-wrapper {
82
- display: inline-flex;
83
- align-items: center;
84
- gap: var(--ms-counter-wrapper-gap, $ms-counter-wrapper-gap);
85
- background: var(--ms-counter-wrapper-background, $ms-counter-wrapper-bg);
86
- border: var(--ms-counter-wrapper-border, $ms-counter-wrapper-border);
87
- border-radius: var(--ms-counter-wrapper-border-radius, $ms-counter-wrapper-border-radius);
88
- padding: var(--ms-counter-wrapper-padding, $ms-counter-wrapper-padding);
89
- transition: all var(--ms-transition-fast, $ms-transition-fast) var(--ms-easing-snappy, $ms-easing-snappy);
90
-
91
- &:hover {
92
- background: var(--ms-counter-wrapper-background-hover, $ms-counter-wrapper-bg-hover);
93
- border-color: var(--ms-counter-wrapper-border-color-hover, $ms-counter-wrapper-border-color-hover);
94
- }
95
- }
96
-
97
- .ms__count-text {
98
- display: inline-flex;
99
- align-items: center;
100
- background: var(--ms-count-text-bg, $ms-count-text-bg);
101
- border: var(--ms-count-text-border, $ms-count-text-border);
102
- padding: 0;
103
- font-size: var(--ms-count-text-font-size, $ms-count-text-font-size);
104
- color: var(--ms-count-text-color, $ms-count-text-color);
105
- cursor: pointer;
106
- transition: color var(--ms-transition-fast, $ms-transition-fast) var(--ms-easing-snappy, $ms-easing-snappy);
107
- }
108
-
109
- .ms__count-clear {
110
- flex-shrink: 0;
111
- display: flex;
112
- align-items: center;
113
- justify-content: center;
114
- width: var(--ms-count-clear-size, $ms-count-clear-size);
115
- height: var(--ms-count-clear-size, $ms-count-clear-size);
116
- padding: 0;
117
- border: none;
118
- background: var(--ms-count-clear-background, $ms-count-clear-bg);
119
- color: var(--ms-count-clear-color, $ms-count-clear-color);
120
- font-size: var(--ms-count-clear-font-size, $ms-count-clear-font-size);
121
- line-height: var(--ms-line-height-none, $ms-line-height-none);
122
- cursor: pointer;
123
- border-radius: var(--ms-count-clear-border-radius, $ms-count-clear-border-radius);
124
- transition: all var(--ms-transition-fast, $ms-transition-fast) var(--ms-easing-snappy, $ms-easing-snappy);
125
-
126
- &:hover {
127
- background: var(--ms-count-clear-background-hover, $ms-count-clear-bg-hover);
128
- color: var(--ms-count-clear-color-hover, $ms-count-clear-color-hover);
129
- }
130
-
131
- &::before {
132
- content: var(--ms-icon-clear, $ms-icon-clear);
133
- }
134
- }
135
-
136
- // ==============================================================================
137
- // INDIVIDUAL BADGES
138
- // ==============================================================================
139
-
140
- // Individual badge (styled like Pure Admin composite badge)
141
- .ms__badge {
142
- display: inline-flex;
143
- align-items: center;
144
- height: var(--ms-badge-height, $ms-badge-height); // Match composite badge height
145
- font-size: var(--ms-badge-font-size, $ms-badge-font-size);
146
- font-weight: var(--ms-badge-font-weight, $ms-badge-font-weight);
147
- line-height: var(--ms-line-height-none, $ms-line-height-none);
148
- border-radius: var(--ms-badge-border-radius, $ms-badge-border-radius);
149
- overflow: hidden;
150
- max-width: 100%;
151
- }
152
-
153
- // Badge text (like composite badge label)
154
- .ms__badge-text {
155
- display: flex;
156
- align-items: center;
157
- height: 100%;
158
- padding: var(--ms-badge-text-padding, $ms-badge-text-padding);
159
- background: var(--ms-badge-text-background, $ms-badge-text-bg);
160
- color: var(--ms-badge-text-color, $ms-badge-text-color);
161
- border: var(--ms-badge-text-border, $ms-badge-text-border);
162
- border-right: none; // No double border between text and button
163
- border-radius: var(--ms-badge-border-radius, $ms-badge-border-radius) 0 0 var(--ms-badge-border-radius, $ms-badge-border-radius);
164
- overflow: hidden;
165
- text-overflow: ellipsis;
166
- white-space: nowrap;
167
- transition: background-color var(--ms-transition-normal, $ms-transition-normal) ease,
168
- color var(--ms-transition-normal, $ms-transition-normal) ease;
169
- }
170
-
171
- // Badge hover state
172
- .ms__badge:hover {
173
- .ms__badge-text {
174
- background: var(--ms-badge-text-background-hover, var(--ms-badge-text-background, $ms-badge-text-bg));
175
- color: var(--ms-badge-text-color-hover, var(--ms-badge-text-color, $ms-badge-text-color));
176
- }
177
- }
178
-
179
- // Badge remove button (like composite badge button)
180
- .ms__badge-remove {
181
- display: flex;
182
- align-items: center;
183
- justify-content: center;
184
- font-family: inherit; // Form elements don't inherit font by default
185
- width: var(--ms-badge-remove-width, $ms-badge-remove-width);
186
- height: 100%;
187
- flex-shrink: 0;
188
- background: var(--ms-badge-remove-background, $ms-badge-remove-bg);
189
- color: var(--ms-badge-remove-color, $ms-badge-remove-color);
190
- border: var(--ms-badge-remove-border, $ms-badge-remove-border);
191
- border-left: none; // No double border between text and button
192
- border-radius: 0 var(--ms-badge-border-radius, $ms-badge-border-radius) var(--ms-badge-border-radius, $ms-badge-border-radius) 0;
193
- cursor: pointer;
194
- transition: background-color var(--ms-transition-normal, $ms-transition-normal) ease;
195
- font-size: var(--ms-badge-remove-font-size, $ms-badge-remove-font-size);
196
-
197
- &:hover {
198
- background: var(--ms-badge-remove-background-hover, $ms-badge-remove-bg-hover);
199
- }
200
-
201
- &:focus {
202
- outline: none;
203
- box-shadow: var(--ms-badge-remove-box-shadow-focus, $ms-badge-remove-box-shadow-focus);
204
- }
205
-
206
- &::before {
207
- content: var(--ms-icon-remove, $ms-icon-remove);
208
- font-size: var(--ms-font-size-base, $ms-font-size-base);
209
- line-height: var(--ms-line-height-none, $ms-line-height-none);
210
- }
211
- }
212
-
213
- // ==============================================================================
214
- // INDICATOR BADGE VARIANT (for "+ X more", "3 selected", compact mode)
215
- // ==============================================================================
216
- // Gray/neutral styling to distinguish from regular blue badges
217
- .ms__badge--counter {
218
- cursor: pointer;
219
-
220
- .ms__badge-text {
221
- background: var(--ms-badge-counter-text-background, $ms-badge-counter-text-bg);
222
- color: var(--ms-badge-counter-text-color, $ms-badge-counter-text-color);
223
- border: var(--ms-badge-counter-border, $ms-badge-counter-border);
224
- border-right: none;
225
- }
226
-
227
- .ms__badge-remove {
228
- background: var(--ms-badge-counter-remove-background, $ms-badge-counter-remove-bg);
229
- color: var(--ms-badge-counter-remove-color, $ms-badge-counter-remove-color);
230
- border: var(--ms-badge-counter-border, $ms-badge-counter-border);
231
- border-left: none;
232
-
233
- &:hover {
234
- background: var(--ms-badge-counter-remove-background-hover, $ms-badge-counter-remove-bg-hover);
235
- }
236
- }
237
- }
238
-
239
- // ==============================================================================
240
- // "+X MORE" BADGE VARIANT
241
- // ==============================================================================
242
-
243
- // "+X more" badge variant (partial mode)
244
- // Now uses .ms__badge--counter for styling, this just adds cursor
245
- .ms__badge--more {
246
- cursor: pointer;
247
- }
@@ -1,42 +0,0 @@
1
- // ==============================================================================
2
- // BASE STYLES
3
- // ==============================================================================
4
- // Foundation styles: FOUC prevention and layout containers
5
-
6
- @use 'variables' as *;
7
-
8
- // ==============================================================================
9
- // FOUC PREVENTION
10
- // ==============================================================================
11
- // Prevent Flash of Unstyled Content by hiding undefined custom elements
12
- // Keep element visible to prevent layout shift, but hide any text content
13
- multi-select:not(:defined) {
14
- display: block;
15
- min-height: calc(3.5 * var(--ms-rem)); // 35px (md size)
16
- color: transparent !important;
17
- background: transparent;
18
- }
19
-
20
- // ==============================================================================
21
- // LAYOUT CONTAINERS
22
- // ==============================================================================
23
-
24
- // Wrapper (contains multiselect + badges)
25
- .ms-wrapper {
26
- display: flex;
27
- flex-direction: column; // Default: badges above/below input
28
- align-items: stretch;
29
-
30
- // Inline layout for left/right positioning
31
- &--inline {
32
- flex-direction: row;
33
- align-items: flex-start;
34
- }
35
- }
36
-
37
- // Main container
38
- // Note: font-family is set on :host in _css-variables.scss so all shadow DOM content inherits
39
- .ms {
40
- position: relative;
41
- width: 100%;
42
- }