inviton-powerduck 0.0.217 → 0.0.219

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.
@@ -0,0 +1,422 @@
1
+ .gopass-filter-wrapper {
2
+ /* ... [Previous variables and base styles] ... */
3
+ --bs-blue: #0d6efd;
4
+ --bs-btn-bg: #0d6efd;
5
+ --bs-btn-color: #fff;
6
+ --bs-btn-hover: #0b5ed7;
7
+ --bs-btn-disabled-bg: #0d6efd;
8
+ --bs-btn-disabled-opacity: 0.65;
9
+ --bs-border-radius: 0.375rem;
10
+
11
+ font-family:
12
+ system-ui,
13
+ -apple-system,
14
+ 'Segoe UI',
15
+ Roboto,
16
+ sans-serif;
17
+ position: relative;
18
+ width: 100%;
19
+
20
+ * {
21
+ box-sizing: border-box;
22
+ }
23
+
24
+ /* --- TRIGGER --- */
25
+ .filter-trigger {
26
+ display: flex;
27
+ align-items: center;
28
+ justify-content: space-between;
29
+ width: 100%;
30
+ min-height: 38px;
31
+ padding: 0.375rem 0.75rem;
32
+ font-size: 1rem;
33
+ color: #212529;
34
+ background: #fff;
35
+ border: 1px solid #ced4da;
36
+ border-radius: var(--bs-border-radius);
37
+ cursor: pointer;
38
+ transition: all 0.15s;
39
+
40
+ &:hover {
41
+ border-color: #b3b3b3;
42
+ }
43
+
44
+ &.is-open {
45
+ border-color: #86b7fe;
46
+ box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);
47
+ }
48
+ }
49
+
50
+ .result-image {
51
+ width: 32px;
52
+ height: 32px;
53
+ border-radius: 50%;
54
+ /* Circle image */
55
+ object-fit: cover;
56
+ margin-right: 12px;
57
+ background-color: #f0f0f0;
58
+ flex-shrink: 0;
59
+ }
60
+
61
+ /* INPUT MODE TRIGGER STYLES */
62
+ .trigger-input {
63
+ width: 100%;
64
+ border: none;
65
+ outline: none;
66
+ background: transparent;
67
+ font-size: 1rem;
68
+ color: #212529;
69
+ padding: 0;
70
+ margin: 0;
71
+
72
+ &::placeholder {
73
+ color: #6c757d;
74
+ }
75
+ }
76
+
77
+ .trigger-input-inline {
78
+ border: none;
79
+ outline: none;
80
+ background: transparent;
81
+ font-size: 1rem;
82
+ min-width: 50px;
83
+ flex-grow: 1;
84
+ }
85
+
86
+ /* ... [Chips, Placeholder, Caret styles - No Change] ... */
87
+ .trigger-content {
88
+ flex-grow: 1;
89
+ display: flex;
90
+ flex-wrap: wrap;
91
+ gap: 4px;
92
+ overflow: hidden;
93
+ }
94
+
95
+ .placeholder-text {
96
+ color: #6c757d;
97
+ }
98
+
99
+ .caret {
100
+ margin-left: 8px;
101
+ border-top: 4px solid #666;
102
+ border-right: 4px solid transparent;
103
+ border-left: 4px solid transparent;
104
+ }
105
+
106
+ .chip {
107
+ background: #e9ecef;
108
+ color: #495057;
109
+ padding: 2px 8px;
110
+ border-radius: 12px;
111
+ font-size: 0.85rem;
112
+ display: inline-flex;
113
+ align-items: center;
114
+ font-weight: 500;
115
+ }
116
+
117
+ .chip-remove {
118
+ margin-left: 6px;
119
+ cursor: pointer;
120
+ font-weight: bold;
121
+ color: #888;
122
+ width: 16px;
123
+ height: 16px;
124
+ display: flex;
125
+ align-items: center;
126
+ justify-content: center;
127
+ border-radius: 50%;
128
+
129
+ &:hover {
130
+ background: #ccc;
131
+ color: #000;
132
+ }
133
+ }
134
+
135
+ /* --- DROPDOWN --- */
136
+ .filter-dropdown {
137
+ position: absolute;
138
+ top: calc(100% + 4px);
139
+ left: 0;
140
+ width: 100%;
141
+ min-width: 300px;
142
+ background: white;
143
+ border: 1px solid rgba(0, 0, 0, 0.15);
144
+ border-radius: var(--bs-border-radius);
145
+ box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
146
+ z-index: 1050;
147
+ display: flex;
148
+ flex-direction: column;
149
+ max-height: 450px;
150
+ animation: fadeIn 0.1s ease-out;
151
+ }
152
+
153
+ @keyframes fadeIn {
154
+ from {
155
+ opacity: 0;
156
+ transform: translateY(-5px);
157
+ }
158
+
159
+ to {
160
+ opacity: 1;
161
+ transform: translateY(0);
162
+ }
163
+ }
164
+
165
+ .search-header {
166
+ padding: 10px;
167
+ border-bottom: 1px solid #e9ecef;
168
+ background-color: #fff;
169
+ flex-shrink: 0;
170
+ display: flex;
171
+ gap: 8px;
172
+ align-items: center;
173
+ }
174
+
175
+ .search-input {
176
+ flex-grow: 1;
177
+ width: auto;
178
+ padding: 0.375rem 0.75rem 0.375rem 34px;
179
+ border: 1px solid #ced4da;
180
+ border-radius: 4px;
181
+ outline: none;
182
+ background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%23999' viewBox='0 0 16 16'%3E%3Cpath d='M11.742 10.344a6.5 6.5 0 1 0-1.397 1.398h-.001c.03.04.062.078.098.115l3.85 3.85a1 1 0 0 0 1.415-1.414l-3.85-3.85a1.007 1.007 0 0 0-.115-.1zM12 6.5a5.5 5.5 0 1 1-11 0 5.5 5.5 0 0 1 11 0z'/%3E%3C/svg%3E");
183
+ background-repeat: no-repeat;
184
+ background-position: 10px center;
185
+
186
+ &:focus {
187
+ border-color: #86b7fe;
188
+ }
189
+ }
190
+
191
+ /* ... [Button, List, Footer, Item styles - No Change] ... */
192
+ .btn-confirm {
193
+ display: inline-block;
194
+ font-weight: 500;
195
+ text-align: center;
196
+ vertical-align: middle;
197
+ user-select: none;
198
+ border: 1px solid transparent;
199
+ padding: 0.375rem 0.75rem;
200
+ font-size: 1rem;
201
+ line-height: 1.5;
202
+ border-radius: var(--bs-border-radius);
203
+ color: var(--bs-btn-color);
204
+ background-color: var(--bs-btn-bg);
205
+ cursor: pointer;
206
+ transition: all 0.15s;
207
+ white-space: nowrap;
208
+
209
+ &:hover:not(:disabled) {
210
+ background-color: var(--bs-btn-hover);
211
+ }
212
+
213
+ &:active:not(:disabled) {
214
+ background-color: #0a58ca;
215
+ }
216
+
217
+ &:disabled {
218
+ opacity: var(--bs-btn-disabled-opacity);
219
+ cursor: not-allowed;
220
+ }
221
+ }
222
+
223
+ .dropdown-footer {
224
+ padding: 10px;
225
+ border-top: 1px solid #e9ecef;
226
+ background-color: #f8f9fa;
227
+ flex-shrink: 0;
228
+
229
+ .btn-confirm {
230
+ width: 100%;
231
+ }
232
+ }
233
+
234
+ .list-container {
235
+ overflow-y: auto;
236
+ flex-grow: 1;
237
+ min-height: 150px;
238
+ }
239
+
240
+ .list-group-label {
241
+ padding: 8px 16px;
242
+ font-size: 0.75rem;
243
+ font-weight: 700;
244
+ text-transform: uppercase;
245
+ color: #adb5bd;
246
+ background: #fff;
247
+ border-bottom: 1px solid #f0f0f0;
248
+ position: sticky;
249
+ top: 0;
250
+ z-index: 5;
251
+ }
252
+
253
+ .sticky-selected {
254
+ background: #f8f9fa;
255
+ color: var(--bs-blue);
256
+ border-bottom: 2px solid #e9ecef;
257
+ }
258
+
259
+ .list-item-custom-container {
260
+ cursor: pointer;
261
+ border-bottom: 1px solid #f8f9fa;
262
+ transition: background-color 0.15s;
263
+
264
+ &:hover {
265
+ background-color: #e9ecef;
266
+ }
267
+
268
+ &.selected {
269
+ background-color: #e7f1ff;
270
+ }
271
+ }
272
+
273
+ .list-item {
274
+ padding: 8px 16px;
275
+ cursor: pointer;
276
+ display: flex;
277
+ align-items: center;
278
+ border-bottom: 1px solid #f8f9fa;
279
+
280
+ &:hover {
281
+ background: #e9ecef;
282
+ }
283
+
284
+ &.selected {
285
+ background: #e7f1ff;
286
+ }
287
+ }
288
+
289
+ .checkbox-visual {
290
+ width: 16px;
291
+ height: 16px;
292
+ border: 1px solid #adb5bd;
293
+ border-radius: 3px;
294
+ margin-right: 12px;
295
+ display: flex;
296
+ align-items: center;
297
+ justify-content: center;
298
+ background: #fff;
299
+ flex-shrink: 0;
300
+
301
+ &.checked {
302
+ background: var(--bs-blue);
303
+ border-color: var(--bs-blue);
304
+
305
+ &::after {
306
+ content: '';
307
+ width: 4px;
308
+ height: 8px;
309
+ border: solid white;
310
+ border-width: 0 2px 2px 0;
311
+ transform: rotate(45deg);
312
+ margin-top: -2px;
313
+ }
314
+ }
315
+ }
316
+
317
+ .no-checkbox .checkbox-visual {
318
+ display: none;
319
+ }
320
+
321
+ .item-content {
322
+ flex: 1;
323
+ }
324
+
325
+ .item-text {
326
+ display: block;
327
+ font-size: 0.95rem;
328
+ color: #212529;
329
+ }
330
+
331
+ .item-subtitle {
332
+ display: block;
333
+ font-size: 0.8rem;
334
+ color: #6c757d;
335
+ }
336
+
337
+ .loading-state,
338
+ .empty-state {
339
+ padding: 1.5rem;
340
+ text-align: center;
341
+ color: #6c757d;
342
+ font-size: 0.9rem;
343
+ }
344
+
345
+ .view-mobile-only {
346
+ width: 100%;
347
+ }
348
+
349
+ .view-desktop-only {
350
+ width: 100%;
351
+ }
352
+
353
+ /* Desktop View ( > 768px ) */
354
+ @media (min-width: 769px) {
355
+ .view-mobile-only {
356
+ display: none !important;
357
+ }
358
+
359
+ .view-desktop-only {
360
+ display: block !important;
361
+ }
362
+ }
363
+
364
+ /* Mobile View ( <= 768px ) */
365
+ @media (max-width: 768px) {
366
+ .view-mobile-only {
367
+ display: block !important;
368
+ }
369
+
370
+ .view-desktop-only {
371
+ display: none !important;
372
+ }
373
+ }
374
+
375
+ /* --- MODE LOGIC (Desktop) --- */
376
+
377
+ /* When in 'input' mode on Desktop: Hide internal search header and footer */
378
+ @media (min-width: 769px) {
379
+ &.mode-input {
380
+ .internal-search-header {
381
+ display: none !important;
382
+ }
383
+
384
+ .dropdown-footer {
385
+ display: none !important;
386
+ }
387
+ }
388
+ }
389
+
390
+ /* --- MOBILE RESPONSIVE --- */
391
+ @media (max-width: 768px) {
392
+ .filter-dropdown {
393
+ position: fixed;
394
+ top: 0;
395
+ left: 0;
396
+ width: 100vw;
397
+ height: 100vh;
398
+ border-radius: 0;
399
+ border: none;
400
+ z-index: 9999;
401
+ max-height: none;
402
+ }
403
+
404
+ .list-container {
405
+ height: auto;
406
+ }
407
+
408
+ /* On Mobile, always show the internal search/footer even if in 'input' mode */
409
+ /* because the external input is behind the modal */
410
+ &.mode-input {
411
+ .internal-search-header {
412
+ display: flex !important;
413
+ }
414
+
415
+ .dropdown-footer {
416
+ display: block !important;
417
+ }
418
+ }
419
+
420
+ /* Optional: Hide external input caretaker on mobile if it looks weird */
421
+ }
422
+ }