@keenmate/web-multiselect 1.5.1 → 1.6.0

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,144 +0,0 @@
1
- // ==============================================================================
2
- // RTL (Right-to-Left) SUPPORT
3
- // ==============================================================================
4
- // Styles for RTL languages (Arabic, Hebrew, etc.)
5
- // Applied when .ms--rtl class is present
6
-
7
- @use 'variables' as *;
8
-
9
- // ==============================================================================
10
- // INPUT & TOGGLE ICON
11
- // ==============================================================================
12
-
13
- .ms--rtl {
14
- .ms__input-wrapper {
15
- direction: rtl;
16
- }
17
-
18
- .ms__input {
19
- text-align: right;
20
- padding-left: var(--ms-input-padding-right, $ms-input-padding-right);
21
- padding-right: var(--ms-input-padding-h, $ms-input-padding-h);
22
- }
23
-
24
- // Move toggle icon to left side
25
- .ms__toggle {
26
- left: var(--ms-toggle-right, $ms-toggle-right) !important;
27
- right: auto !important;
28
- }
29
-
30
- // Move count badge to left side
31
- .ms__counter {
32
- left: var(--ms-counter-offset, $ms-counter-offset) !important;
33
- right: auto !important;
34
- }
35
-
36
- // ==============================================================================
37
- // DROPDOWN OPTIONS
38
- // ==============================================================================
39
-
40
- .ms__dropdown {
41
- direction: rtl;
42
- text-align: right;
43
- }
44
-
45
- // Checkbox on right side
46
- .ms__option {
47
- flex-direction: row-reverse;
48
- }
49
-
50
- .ms__checkbox {
51
- margin-left: var(--ms-spacing-sm, $ms-spacing-sm);
52
- margin-right: 0;
53
- }
54
-
55
- .ms__option-content {
56
- text-align: right;
57
- }
58
-
59
- .ms__option-icon {
60
- margin-left: var(--ms-spacing-xs, $ms-spacing-xs);
61
- margin-right: 0;
62
- }
63
-
64
- // ==============================================================================
65
- // BADGES LAYOUT
66
- // ==============================================================================
67
-
68
- .ms__badges {
69
- direction: rtl;
70
- }
71
-
72
- // Badges flow right-to-left
73
- .ms__badge {
74
- flex-direction: row-reverse;
75
- }
76
-
77
- // Remove button on left side of badge (RTL)
78
- .ms__badge-remove {
79
- border-radius: var(--ms-badge-border-radius, $ms-badge-border-radius) 0 0 var(--ms-badge-border-radius, $ms-badge-border-radius);
80
- border-left: var(--ms-badge-remove-border, $ms-badge-remove-border);
81
- border-right: none;
82
- }
83
-
84
- // Badge text rounded on right (RTL)
85
- .ms__badge-text {
86
- border-radius: 0 var(--ms-badge-border-radius, $ms-badge-border-radius) var(--ms-badge-border-radius, $ms-badge-border-radius) 0;
87
- border-right: var(--ms-badge-text-border, $ms-badge-text-border);
88
- border-left: none;
89
- }
90
-
91
- // ==============================================================================
92
- // COUNT DISPLAY
93
- // ==============================================================================
94
-
95
- .ms__count-display {
96
- direction: rtl;
97
- }
98
-
99
- .ms__counter-wrapper {
100
- flex-direction: row-reverse;
101
- }
102
-
103
- // ==============================================================================
104
- // SELECTED POPOVER
105
- // ==============================================================================
106
-
107
- .ms__selected-popover {
108
- direction: rtl;
109
- text-align: right;
110
- }
111
-
112
- // ==============================================================================
113
- // ACTIONS
114
- // ==============================================================================
115
-
116
- .ms__actions {
117
- direction: rtl;
118
- }
119
-
120
- // ==============================================================================
121
- // GROUPS
122
- // ==============================================================================
123
-
124
- .ms__group-label {
125
- text-align: right;
126
- }
127
-
128
- // ==============================================================================
129
- // EMPTY STATE
130
- // ==============================================================================
131
-
132
- .ms__empty {
133
- text-align: right;
134
- }
135
-
136
- // ==============================================================================
137
- // HINT
138
- // ==============================================================================
139
-
140
- .ms__hint {
141
- direction: rtl;
142
- text-align: right;
143
- }
144
- }
@@ -1,172 +0,0 @@
1
- // ==============================================================================
2
- // TOOLTIPS & POPOVER
3
- // ==============================================================================
4
- // Badge tooltips and selected items popover
5
-
6
- @use 'variables' as *;
7
-
8
- // ==============================================================================
9
- // BADGE TOOLTIPS
10
- // ==============================================================================
11
-
12
- .ms__badge-tooltip {
13
- position: fixed;
14
- z-index: var(--ms-tooltip-z-index, $ms-tooltip-z-index);
15
- opacity: 0;
16
- visibility: hidden;
17
- transition: opacity var(--ms-transition-normal, $ms-transition-normal) ease, visibility var(--ms-transition-normal, $ms-transition-normal) ease;
18
-
19
- background: var(--ms-tooltip-background, $ms-tooltip-bg);
20
- color: var(--ms-tooltip-text-color, $ms-tooltip-color);
21
- padding: var(--ms-tooltip-padding, $ms-tooltip-padding);
22
- border-radius: var(--ms-tooltip-border-radius, $ms-tooltip-border-radius);
23
- font-size: var(--ms-tooltip-font-size, $ms-tooltip-font-size);
24
- line-height: var(--ms-line-height-relaxed, $ms-line-height-relaxed);
25
- max-width: var(--ms-tooltip-max-width, $ms-tooltip-max-width);
26
- word-wrap: break-word;
27
- white-space: pre-wrap;
28
- box-shadow: var(--ms-tooltip-shadow, $ms-tooltip-shadow);
29
- pointer-events: none; // Prevent tooltip from interfering with mouse events
30
-
31
- &--visible {
32
- opacity: 1;
33
- visibility: visible;
34
- }
35
- }
36
-
37
- // ==============================================================================
38
- // SELECTED ITEMS POPOVER
39
- // ==============================================================================
40
-
41
- // Selected items popover (for count display mode)
42
- .ms__selected-popover {
43
- display: none;
44
- position: absolute;
45
- z-index: var(--ms-z-index-popover, $ms-z-index-popover);
46
- background: var(--ms-selected-popover-background, $ms-selected-popover-bg);
47
- border: var(--ms-selected-popover-border, $ms-selected-popover-border);
48
- border-radius: var(--ms-selected-popover-border-radius, $ms-selected-popover-border-radius);
49
- box-shadow: var(--ms-selected-popover-box-shadow, $ms-selected-popover-box-shadow);
50
- width: var(--ms-selected-popover-width, $ms-selected-popover-width);
51
- max-height: var(--ms-selected-popover-max-height, $ms-selected-popover-max-height);
52
- overflow: hidden;
53
-
54
- &--visible {
55
- display: flex;
56
- flex-direction: column;
57
- }
58
-
59
- &--virtual {
60
- // In virtual scroll mode, let the body container handle scrolling (matches dropdown pattern)
61
- display: block; // Change from flex to block (like dropdown)
62
- overflow: visible;
63
- max-height: none;
64
- }
65
- }
66
-
67
- .ms__selected-popover-header {
68
- display: flex;
69
- align-items: center;
70
- justify-content: space-between;
71
- padding: var(--ms-selected-popover-header-padding, $ms-selected-popover-header-padding);
72
- background: var(--ms-selected-popover-header-background, $ms-selected-popover-header-bg);
73
- border-bottom: var(--ms-selected-popover-header-border-bottom, $ms-selected-popover-header-border-bottom);
74
- font-size: var(--ms-selected-popover-header-font-size, $ms-selected-popover-header-font-size);
75
- font-weight: var(--ms-selected-popover-header-font-weight, $ms-selected-popover-header-font-weight);
76
- color: var(--ms-selected-popover-header-color, $ms-selected-popover-header-color);
77
- }
78
-
79
- .ms__selected-popover-close {
80
- display: flex;
81
- align-items: center;
82
- justify-content: center;
83
- width: var(--ms-popover-close-size, $ms-popover-close-size);
84
- height: var(--ms-popover-close-size, $ms-popover-close-size);
85
- padding: 0;
86
- border: none;
87
- background: var(--ms-selected-popover-close-background, $ms-selected-popover-close-bg);
88
- color: var(--ms-selected-popover-close-color, $ms-selected-popover-close-color);
89
- font-size: var(--ms-selected-popover-close-font-size, $ms-selected-popover-close-font-size);
90
- line-height: var(--ms-line-height-none, $ms-line-height-none);
91
- cursor: pointer;
92
- border-radius: var(--ms-selected-popover-close-border-radius, $ms-selected-popover-close-border-radius);
93
- transition: all var(--ms-transition-fast, $ms-transition-fast) var(--ms-easing-snappy, $ms-easing-snappy);
94
-
95
- &:hover {
96
- background: var(--ms-selected-popover-close-background-hover, $ms-selected-popover-close-bg-hover);
97
- color: var(--ms-selected-popover-close-color-hover, $ms-selected-popover-close-color-hover);
98
- }
99
- }
100
-
101
- .ms__selected-popover-body {
102
- display: flex;
103
- flex-direction: column;
104
- gap: var(--ms-selected-popover-body-gap, $ms-selected-popover-body-gap);
105
- padding: var(--ms-selected-popover-body-padding, $ms-selected-popover-body-padding);
106
- overflow-y: auto;
107
- max-height: var(--ms-selected-popover-body-max-height, $ms-selected-popover-body-max-height);
108
-
109
- // Scrollbar styling
110
- scrollbar-width: thin; // Firefox
111
- scrollbar-color: var(--ms-scrollbar-thumb-bg, $ms-scrollbar-thumb-bg) var(--ms-scrollbar-track-bg, $ms-scrollbar-track-bg);
112
-
113
- &::-webkit-scrollbar {
114
- width: var(--ms-scrollbar-width, $ms-scrollbar-width);
115
- }
116
-
117
- &::-webkit-scrollbar-track {
118
- background: var(--ms-scrollbar-track-bg, $ms-scrollbar-track-bg);
119
- }
120
-
121
- &::-webkit-scrollbar-thumb {
122
- background: var(--ms-scrollbar-thumb-bg, $ms-scrollbar-thumb-bg);
123
- border-radius: var(--ms-scrollbar-thumb-border-radius, $ms-scrollbar-thumb-border-radius);
124
- }
125
-
126
- &::-webkit-scrollbar-thumb:hover {
127
- background: var(--ms-scrollbar-thumb-bg-hover, $ms-scrollbar-thumb-bg-hover);
128
- }
129
-
130
- // Badges inside popover (non-virtual mode)
131
- .ms__badge {
132
- width: 100%;
133
- min-height: fit-content; // Allow badges to expand based on content
134
- line-height: var(--ms-line-height-relaxed, $ms-line-height-relaxed); // Override line-height: 1 to allow multi-line content
135
- }
136
-
137
- .ms__badge-text {
138
- flex: 1;
139
- min-width: 0; // Allow proper flex sizing
140
- white-space: normal; // Explicitly allow wrapping
141
- word-wrap: break-word; // Break long words
142
- // Remove overflow constraints to allow multi-line content
143
- // overflow: hidden;
144
- // text-overflow: ellipsis;
145
- // white-space: nowrap;
146
- }
147
-
148
- // Virtual scroll mode
149
- &--virtual {
150
- // Let inline styles control overflow-y: auto (like dropdown does)
151
- display: block; // Override flex display for virtual scroll
152
- max-height: none; // Remove max-height constraint
153
- padding: 0; // Remove padding as virtual scroll has its own spacing
154
-
155
- .ms__badge {
156
- // Fixed height for virtual scroll (default: 36px, configurable via badge-height attribute)
157
- height: var(--ms-badge-height-virtual, 36px);
158
- min-height: var(--ms-badge-height-virtual, 36px);
159
- max-height: var(--ms-badge-height-virtual, 36px);
160
- margin-bottom: var(--ms-selected-popover-body-gap, $ms-selected-popover-body-gap); // Add gap between badges
161
- overflow: hidden;
162
- box-sizing: border-box;
163
- }
164
-
165
- .ms__badge-text {
166
- // Enforce single-line truncation for virtual scroll fixed heights
167
- white-space: nowrap;
168
- overflow: hidden;
169
- text-overflow: ellipsis;
170
- }
171
- }
172
- }