cats-data-grid 2.0.53 → 2.0.55

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,371 +1,371 @@
1
- @use "../sass-utils" as *;
2
-
3
- //========== CUSTOM SCROLL BAR ======================
4
- #table_scroll::-webkit-scrollbar {
5
- @include box(rem(14px), rem(14px));
6
- }
7
- #table_scroll::-webkit-scrollbar-track {
8
- background-color: var(--neutral-200);
9
- @include border($width: rem(3px), $radius: rem(100px), $color: transparent);
10
- background-clip: padding-box;
11
- }
12
- #table_scroll::-webkit-scrollbar-thumb {
13
- background-color: var(--neutral-500);
14
- @include border($width: rem(3px), $radius: rem(100px), $color: transparent);
15
- background-clip: padding-box;
16
- }
17
- #table_scroll::-webkit-scrollbar-corner {
18
- background: transparent;
19
- }
20
- #table_scroll::-webkit-scrollbar-button {
21
- @include box(rem(14px), rem(14px));
22
- background-color: var(--neutral-100);
23
- border-radius: rem(2px);
24
- cursor: pointer;
25
- display: none;
26
- background-repeat: no-repeat;
27
- background-position: center;
28
- background-size: rem(10px);
29
- }
30
- #table_scroll::-webkit-scrollbar-button:hover {
31
- background-color: var(--neutral-300);
32
- }
33
- #table_scroll::-webkit-scrollbar-button:single-button:vertical:decrement {
34
- background-image: url("/images/chevron-up.svg");
35
- display: block;
36
- // border-top-right-radius: 8px;
37
- }
38
- #table_scroll::-webkit-scrollbar-button:single-button:vertical:increment {
39
- background-image: url("/images/chevron-down.svg");
40
- display: block;
41
- }
42
- #table_scroll::-webkit-scrollbar-button:single-button:horizontal:decrement {
43
- background-image: url("/images/chevron-left.svg");
44
- display: block;
45
- // border-bottom-left-radius: 8px;
46
- }
47
- #table_scroll::-webkit-scrollbar-button:single-button:horizontal:increment {
48
- background-image: url("/images/chevron-right.svg");
49
- display: block;
50
- }
51
- #table_scroll.global::-webkit-scrollbar-button:single-button:vertical:decrement {
52
- display: block;
53
- height: rem(55px);
54
- background:
55
- url("/images/chevron-up.svg") bottom / rem(15px) no-repeat,
56
- linear-gradient(
57
- to bottom,
58
- rgb(240, 240, 240) 0%,
59
- rgb(240, 240, 240) 70.5%,
60
- var(--neutral-200) 70.5%,
61
- var(--neutral-200) 72.5%,
62
- var(--neutral-100) 72.5%,
63
- var(--neutral-100) 100%
64
- );
65
- border-top-left-radius: 0;
66
- border-top-right-radius: 0;
67
- &:hover {
68
- background:
69
- url("/images/chevron-up.svg") bottom / rem(15px) no-repeat,
70
- linear-gradient(
71
- to bottom,
72
- rgb(240, 240, 240) 0%,
73
- rgb(240, 240, 240) 70.5%,
74
- var(--neutral-200) 70.5%,
75
- var(--neutral-200) 72.5%,
76
- var(--neutral-300) 72.5%,
77
- var(--neutral-300) 100%
78
- );
79
- }
80
- }
81
-
82
- // ---------------- CUSTOM RADIO INPUT START HERE--------
83
- .radio_option {
84
- display: flex;
85
- @include box(rem(16px), rem(16px));
86
- [type="radio"]:not(:checked)[disabled] + label {
87
- color: var(--neutral-300);
88
- cursor: default;
89
- &::before {
90
- background-color: var(--neutral-100);
91
- }
92
- }
93
- [type="radio"]:is(:checked)[disabled] + label {
94
- color: var(--neutral-300);
95
- cursor: default;
96
- &::before {
97
- border-color: var(--neutral-100);
98
- }
99
- &::after {
100
- background-color: var(--neutral-100);
101
- }
102
- }
103
- %check-style {
104
- content: "";
105
- position: absolute;
106
- @include positioning(0, 0);
107
- @include box(rem(16px), rem(16px));
108
- background: var(--white);
109
- }
110
- [type="radio"]:checked,
111
- [type="radio"]:not(:checked) {
112
- position: absolute;
113
- left: -9999px;
114
- }
115
- [type="radio"]:checked + label,
116
- [type="radio"]:not(:checked) + label {
117
- position: relative;
118
- padding-left: rem(24px);
119
- cursor: pointer;
120
- display: inline-block;
121
- color: var(--neutral-600);
122
- line-height: rem(16px);
123
- }
124
- [type="radio"]:checked + label:before {
125
- @extend %check-style;
126
- @include border($width: rem(1.5px), $color: var(--blue-600), $radius: 100%);
127
- }
128
- [type="radio"]:not(:checked) + label:before {
129
- @extend %check-style;
130
- @include border($width: rem(1.5px), $radius: 100%);
131
- }
132
- [type="radio"]:checked + label:after,
133
- [type="radio"]:not(:checked) + label:after {
134
- content: "";
135
- @include box(rem(6px), rem(6px));
136
- background: var(--blue-600);
137
- position: absolute;
138
- @include positioning(rem(5px), rem(5px));
139
- border-radius: 100%;
140
- transition: all 0.2s ease;
141
- }
142
- [type="radio"]:not(:checked) + label:after {
143
- opacity: 0;
144
- transform: scale(0);
145
- }
146
- [type="radio"]:checked + label:after {
147
- opacity: 1;
148
- transform: scale(1);
149
- }
150
- }
151
-
152
- // ---------------- CUSTOM CHECKBOX INPUT START HERE--------
153
- .checkbox_container {
154
- @include flex(flex-start, center, rem(8px));
155
- @include fontStyle(var(--fs-14), rem(20px), 400);
156
- color: var(--neutral-600);
157
- // --- Disabled (check & uncheck) ---
158
- input[type="checkbox"],
159
- input[type="checkbox"]:checked {
160
- &[disabled] {
161
- cursor: default;
162
- background-color: var(--neutral-300);
163
- border-color: var(--neutral-300);
164
- & + span {
165
- color: var(--neutral-300);
166
- }
167
- }
168
- }
169
- input[type="checkbox"] {
170
- appearance: none;
171
- -webkit-appearance: none;
172
- @include box(rem(16px), rem(16px));
173
- min-width: rem(16px);
174
- @include border();
175
- cursor: pointer;
176
- background-color: var(--white);
177
- position: relative;
178
- transition: all 0.2s ease;
179
-
180
- // --- Default (unchecked) ---
181
- &::after {
182
- content: "";
183
- display: none;
184
- position: absolute;
185
- @include positioning(rem(-1px), rem(-1px));
186
- @include box(rem(16px), rem(16px));
187
- background-size: auto;
188
- background-repeat: no-repeat;
189
- background-position: center;
190
- }
191
- // --- Checked State ---
192
- &:checked {
193
- border-color: var(--blue-600);
194
- background-color: var(--blue-600);
195
- &::after {
196
- display: block;
197
- background-image: url("/images/check-white.svg");
198
- background-size: rem(8px) rem(6px);
199
- }
200
- }
201
- // --- Indeterminate (minus) state ---
202
- &:indeterminate {
203
- border-color: var(--blue-600);
204
- background-color: var(--white);
205
- &::after {
206
- display: block;
207
- top: 0;
208
- background-image: url("/images/minus-blue.svg");
209
- background-size: rem(7px) rem(1px);
210
- }
211
- }
212
- }
213
- }
214
-
215
- // ---------------- CUSTOM SINGLE SELECT DROPDOWN START HERE--------
216
- .text_filter_section {
217
- position: relative;
218
- width: 100%;
219
- .single_select_dropdown {
220
- @include flex(space-between, center);
221
- @include box(100%, rem(40px));
222
- @include border();
223
- padding: rem(10px) rem(12px);
224
- @include fontStyle(var(--fs-14), rem(20px));
225
- background-color: var(--white);
226
- color: var(--neutral-600);
227
- cursor: pointer;
228
-
229
- .left_details {
230
- @include flex("", center);
231
- @include box(calc(100% - rem(20px)), "");
232
- }
233
- .arrow_icon {
234
- img {
235
- max-width: rem(20px);
236
- }
237
- }
238
- }
239
-
240
- .dropdown_list {
241
- @include border();
242
- width: 100%;
243
- max-height: rem(172px);
244
- overflow: auto;
245
- position: absolute;
246
- z-index: 2;
247
- background: var(--white);
248
- box-shadow: rem(0px) rem(12px) rem(16px) rem(-4px) var(--box-shadow);
249
- top: rem(40px);
250
-
251
- ul {
252
- list-style-type: none;
253
- padding: rem(4px) 0;
254
-
255
- &:has(.no_data) li:hover {
256
- background-color: unset;
257
- cursor: default;
258
- }
259
- li {
260
- height: rem(40px);
261
- @include flex(space-between, center);
262
- @include fontStyle(var(--fs-14), rem(20px));
263
- padding: rem(10px) rem(12px);
264
- cursor: pointer;
265
- color: var(--neutral-600);
266
- &:hover {
267
- background-color: var(--neutral-50);
268
- }
269
- &.disabled_option {
270
- opacity: 0.3;
271
- pointer-events: none;
272
- }
273
- }
274
- }
275
- }
276
- }
277
-
278
- // --------------Searchbox with icon-------------
279
- .search_input {
280
- position: relative;
281
- @include box(100%, rem(40px));
282
- @include border();
283
- padding: rem(10px) rem(12px);
284
- background-color: var(--white);
285
- @include flex(flex-start, center, rem(4px));
286
-
287
- img {
288
- @include box(rem(20px), rem(20px));
289
- opacity: 0.5;
290
- }
291
- input {
292
- @include box(100%, 100%);
293
- border: 0;
294
- @include fontStyle(var(--fs-14), rem(20px), 400);
295
- color: var(--neutral-600);
296
- &::placeholder {
297
- color: var(--neutral-500);
298
- }
299
- }
300
- }
301
-
302
- // --------------Toggle Switch css-------------
303
- .table_switch_wrapper {
304
- display: flex;
305
- .switch {
306
- position: relative;
307
- display: inline-block;
308
- @include box(rem(28px), rem(16px)); /* default size */
309
- input {
310
- display: none;
311
- }
312
- .slider {
313
- position: absolute;
314
- cursor: pointer;
315
- background-color: var(--neutral-100);
316
- border-radius: rem(16px);
317
- inset: 0;
318
- transition: 0.3s;
319
- &:before {
320
- content: "";
321
- position: absolute;
322
- @include box(rem(12px), rem(12px));
323
- left: rem(2px);
324
- bottom: rem(2px);
325
- background-color: var(--white);
326
- border-radius: 50%;
327
- transition: 0.3s;
328
- box-shadow: 0 rem(0.8px) rem(2.4px) 0 var(--box-shadow);
329
- }
330
- }
331
-
332
- input:checked + .slider {
333
- background-color: var(--blue-600);
334
- &:before {
335
- transform: translateX(rem(12px));
336
- }
337
- }
338
- }
339
- }
340
- .tableArea.big {
341
- .table_wrapper {
342
- table {
343
- tbody {
344
- tr {
345
- :host .table_switch_wrapper {
346
- .switch {
347
- @include box(rem(38px), rem(20px)); /* big size */
348
- .slider {
349
- &:before {
350
- @include box(rem(16px), rem(16px));
351
- }
352
- }
353
- input:checked + .slider {
354
- &:before {
355
- transform: translateX(rem(18px));
356
- }
357
- }
358
- }
359
- }
360
- }
361
- }
362
- }
363
- }
364
- }
365
-
366
- .text-primary {
367
- color: var(--blue-600);
368
- }
369
- .text-danger {
370
- color: var(--red) !important;
371
- }
1
+ @use "../sass-utils" as *;
2
+
3
+ //========== CUSTOM SCROLL BAR ======================
4
+ #table_scroll::-webkit-scrollbar {
5
+ @include box(rem(14px), rem(14px));
6
+ }
7
+ #table_scroll::-webkit-scrollbar-track {
8
+ background-color: var(--neutral-200);
9
+ @include border($width: rem(3px), $radius: rem(100px), $color: transparent);
10
+ background-clip: padding-box;
11
+ }
12
+ #table_scroll::-webkit-scrollbar-thumb {
13
+ background-color: var(--neutral-500);
14
+ @include border($width: rem(3px), $radius: rem(100px), $color: transparent);
15
+ background-clip: padding-box;
16
+ }
17
+ #table_scroll::-webkit-scrollbar-corner {
18
+ background: transparent;
19
+ }
20
+ #table_scroll::-webkit-scrollbar-button {
21
+ @include box(rem(14px), rem(14px));
22
+ background-color: var(--neutral-100);
23
+ border-radius: rem(2px);
24
+ cursor: pointer;
25
+ display: none;
26
+ background-repeat: no-repeat;
27
+ background-position: center;
28
+ background-size: rem(10px);
29
+ }
30
+ #table_scroll::-webkit-scrollbar-button:hover {
31
+ background-color: var(--neutral-300);
32
+ }
33
+ #table_scroll::-webkit-scrollbar-button:single-button:vertical:decrement {
34
+ background-image: url("/images/chevron-up.svg");
35
+ display: block;
36
+ // border-top-right-radius: 8px;
37
+ }
38
+ #table_scroll::-webkit-scrollbar-button:single-button:vertical:increment {
39
+ background-image: url("/images/chevron-down.svg");
40
+ display: block;
41
+ }
42
+ #table_scroll::-webkit-scrollbar-button:single-button:horizontal:decrement {
43
+ background-image: url("/images/chevron-left.svg");
44
+ display: block;
45
+ // border-bottom-left-radius: 8px;
46
+ }
47
+ #table_scroll::-webkit-scrollbar-button:single-button:horizontal:increment {
48
+ background-image: url("/images/chevron-right.svg");
49
+ display: block;
50
+ }
51
+ #table_scroll.global::-webkit-scrollbar-button:single-button:vertical:decrement {
52
+ display: block;
53
+ height: rem(55px);
54
+ background:
55
+ url("/images/chevron-up.svg") bottom / rem(15px) no-repeat,
56
+ linear-gradient(
57
+ to bottom,
58
+ rgb(240, 240, 240) 0%,
59
+ rgb(240, 240, 240) 70.5%,
60
+ var(--neutral-200) 70.5%,
61
+ var(--neutral-200) 72.5%,
62
+ var(--neutral-100) 72.5%,
63
+ var(--neutral-100) 100%
64
+ );
65
+ border-top-left-radius: 0;
66
+ border-top-right-radius: 0;
67
+ &:hover {
68
+ background:
69
+ url("/images/chevron-up.svg") bottom / rem(15px) no-repeat,
70
+ linear-gradient(
71
+ to bottom,
72
+ rgb(240, 240, 240) 0%,
73
+ rgb(240, 240, 240) 70.5%,
74
+ var(--neutral-200) 70.5%,
75
+ var(--neutral-200) 72.5%,
76
+ var(--neutral-300) 72.5%,
77
+ var(--neutral-300) 100%
78
+ );
79
+ }
80
+ }
81
+
82
+ // ---------------- CUSTOM RADIO INPUT START HERE--------
83
+ .radio_option {
84
+ display: flex;
85
+ @include box(rem(16px), rem(16px));
86
+ [type="radio"]:not(:checked)[disabled] + label {
87
+ color: var(--neutral-300);
88
+ cursor: default;
89
+ &::before {
90
+ background-color: var(--neutral-100);
91
+ }
92
+ }
93
+ [type="radio"]:is(:checked)[disabled] + label {
94
+ color: var(--neutral-300);
95
+ cursor: default;
96
+ &::before {
97
+ border-color: var(--neutral-100);
98
+ }
99
+ &::after {
100
+ background-color: var(--neutral-100);
101
+ }
102
+ }
103
+ %check-style {
104
+ content: "";
105
+ position: absolute;
106
+ @include positioning(0, 0);
107
+ @include box(rem(16px), rem(16px));
108
+ background: var(--white);
109
+ }
110
+ [type="radio"]:checked,
111
+ [type="radio"]:not(:checked) {
112
+ position: absolute;
113
+ left: -9999px;
114
+ }
115
+ [type="radio"]:checked + label,
116
+ [type="radio"]:not(:checked) + label {
117
+ position: relative;
118
+ padding-left: rem(24px);
119
+ cursor: pointer;
120
+ display: inline-block;
121
+ color: var(--neutral-600);
122
+ line-height: rem(16px);
123
+ }
124
+ [type="radio"]:checked + label:before {
125
+ @extend %check-style;
126
+ @include border($width: rem(1.5px), $color: var(--blue-600), $radius: 100%);
127
+ }
128
+ [type="radio"]:not(:checked) + label:before {
129
+ @extend %check-style;
130
+ @include border($width: rem(1.5px), $radius: 100%);
131
+ }
132
+ [type="radio"]:checked + label:after,
133
+ [type="radio"]:not(:checked) + label:after {
134
+ content: "";
135
+ @include box(rem(6px), rem(6px));
136
+ background: var(--blue-600);
137
+ position: absolute;
138
+ @include positioning(rem(5px), rem(5px));
139
+ border-radius: 100%;
140
+ transition: all 0.2s ease;
141
+ }
142
+ [type="radio"]:not(:checked) + label:after {
143
+ opacity: 0;
144
+ transform: scale(0);
145
+ }
146
+ [type="radio"]:checked + label:after {
147
+ opacity: 1;
148
+ transform: scale(1);
149
+ }
150
+ }
151
+
152
+ // ---------------- CUSTOM CHECKBOX INPUT START HERE--------
153
+ .checkbox_container {
154
+ @include flex(flex-start, center, rem(8px));
155
+ @include fontStyle(var(--fs-14), rem(20px), 400);
156
+ color: var(--neutral-600);
157
+ // --- Disabled (check & uncheck) ---
158
+ input[type="checkbox"].custom_check_box,
159
+ input[type="checkbox"].custom_check_box:checked {
160
+ &[disabled] {
161
+ cursor: default;
162
+ background-color: var(--neutral-300);
163
+ border-color: var(--neutral-300);
164
+ & + span {
165
+ color: var(--neutral-300);
166
+ }
167
+ }
168
+ }
169
+ input[type="checkbox"].custom_check_box {
170
+ appearance: none;
171
+ -webkit-appearance: none;
172
+ @include box(rem(16px), rem(16px));
173
+ min-width: rem(16px);
174
+ @include border();
175
+ cursor: pointer;
176
+ background-color: var(--white);
177
+ position: relative;
178
+ transition: all 0.2s ease;
179
+
180
+ // --- Default (unchecked) ---
181
+ &::after {
182
+ content: "";
183
+ display: none;
184
+ position: absolute;
185
+ @include positioning(rem(-1px), rem(-1px));
186
+ @include box(rem(16px), rem(16px));
187
+ background-size: auto;
188
+ background-repeat: no-repeat;
189
+ background-position: center;
190
+ }
191
+ // --- Checked State ---
192
+ &:checked {
193
+ border-color: var(--blue-600);
194
+ background-color: var(--blue-600);
195
+ &::after {
196
+ display: block;
197
+ background-image: url("/images/check-white.svg");
198
+ background-size: rem(8px) rem(6px);
199
+ }
200
+ }
201
+ // --- Indeterminate (minus) state ---
202
+ &:indeterminate {
203
+ border-color: var(--blue-600);
204
+ background-color: var(--white);
205
+ &::after {
206
+ display: block;
207
+ top: 0;
208
+ background-image: url("/images/minus-blue.svg");
209
+ background-size: rem(7px) rem(1px);
210
+ }
211
+ }
212
+ }
213
+ }
214
+
215
+ // ---------------- CUSTOM SINGLE SELECT DROPDOWN START HERE--------
216
+ .text_filter_section {
217
+ position: relative;
218
+ width: 100%;
219
+ .single_select_dropdown {
220
+ @include flex(space-between, center);
221
+ @include box(100%, rem(40px));
222
+ @include border();
223
+ padding: rem(10px) rem(12px);
224
+ @include fontStyle(var(--fs-14), rem(20px));
225
+ background-color: var(--white);
226
+ color: var(--neutral-600);
227
+ cursor: pointer;
228
+
229
+ .left_details {
230
+ @include flex("", center);
231
+ @include box(calc(100% - rem(20px)), "");
232
+ }
233
+ .arrow_icon {
234
+ img {
235
+ max-width: rem(20px);
236
+ }
237
+ }
238
+ }
239
+
240
+ .dropdown_list {
241
+ @include border();
242
+ width: 100%;
243
+ max-height: rem(172px);
244
+ overflow: auto;
245
+ position: absolute;
246
+ z-index: 2;
247
+ background: var(--white);
248
+ box-shadow: rem(0px) rem(12px) rem(16px) rem(-4px) var(--box-shadow);
249
+ top: rem(40px);
250
+
251
+ ul {
252
+ list-style-type: none;
253
+ padding: rem(4px) 0;
254
+
255
+ &:has(.no_data) li:hover {
256
+ background-color: unset;
257
+ cursor: default;
258
+ }
259
+ li {
260
+ height: rem(40px);
261
+ @include flex(space-between, center);
262
+ @include fontStyle(var(--fs-14), rem(20px));
263
+ padding: rem(10px) rem(12px);
264
+ cursor: pointer;
265
+ color: var(--neutral-600);
266
+ &:hover {
267
+ background-color: var(--neutral-50);
268
+ }
269
+ &.disabled_option {
270
+ opacity: 0.3;
271
+ pointer-events: none;
272
+ }
273
+ }
274
+ }
275
+ }
276
+ }
277
+
278
+ // --------------Searchbox with icon-------------
279
+ .search_input {
280
+ position: relative;
281
+ @include box(100%, rem(40px));
282
+ @include border();
283
+ padding: rem(10px) rem(12px);
284
+ background-color: var(--white);
285
+ @include flex(flex-start, center, rem(4px));
286
+
287
+ img {
288
+ @include box(rem(20px), rem(20px));
289
+ opacity: 0.5;
290
+ }
291
+ input {
292
+ @include box(100%, 100%);
293
+ border: 0;
294
+ @include fontStyle(var(--fs-14), rem(20px), 400);
295
+ color: var(--neutral-600);
296
+ &::placeholder {
297
+ color: var(--neutral-500);
298
+ }
299
+ }
300
+ }
301
+
302
+ // --------------Toggle Switch css-------------
303
+ .table_switch_wrapper {
304
+ display: flex;
305
+ .switch {
306
+ position: relative;
307
+ display: inline-block;
308
+ @include box(rem(28px), rem(16px)); /* default size */
309
+ input {
310
+ display: none;
311
+ }
312
+ .slider {
313
+ position: absolute;
314
+ cursor: pointer;
315
+ background-color: var(--neutral-100);
316
+ border-radius: rem(16px);
317
+ inset: 0;
318
+ transition: 0.3s;
319
+ &:before {
320
+ content: "";
321
+ position: absolute;
322
+ @include box(rem(12px), rem(12px));
323
+ left: rem(2px);
324
+ bottom: rem(2px);
325
+ background-color: var(--white);
326
+ border-radius: 50%;
327
+ transition: 0.3s;
328
+ box-shadow: 0 rem(0.8px) rem(2.4px) 0 var(--box-shadow);
329
+ }
330
+ }
331
+
332
+ input:checked + .slider {
333
+ background-color: var(--blue-600);
334
+ &:before {
335
+ transform: translateX(rem(12px));
336
+ }
337
+ }
338
+ }
339
+ }
340
+ .tableArea.big {
341
+ .table_wrapper {
342
+ table {
343
+ tbody {
344
+ tr {
345
+ :host .table_switch_wrapper {
346
+ .switch {
347
+ @include box(rem(38px), rem(20px)); /* big size */
348
+ .slider {
349
+ &:before {
350
+ @include box(rem(16px), rem(16px));
351
+ }
352
+ }
353
+ input:checked + .slider {
354
+ &:before {
355
+ transform: translateX(rem(18px));
356
+ }
357
+ }
358
+ }
359
+ }
360
+ }
361
+ }
362
+ }
363
+ }
364
+ }
365
+
366
+ .text-primary {
367
+ color: var(--blue-600);
368
+ }
369
+ .text-danger {
370
+ color: var(--red) !important;
371
+ }