@startinblox/components-ds4go 3.2.2 → 3.3.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.
@@ -0,0 +1,431 @@
1
+ @use "sass:meta";
2
+
3
+ :host {
4
+ --provider-logo-width: 48px;
5
+ --provider-logo-height: 22px;
6
+ --modal-logo-width: 152px;
7
+ --modal-logo-height: 48px;
8
+ }
9
+
10
+ svg {
11
+ vertical-align: middle;
12
+ }
13
+
14
+ @include meta.load-css("../_helpers/flex");
15
+
16
+ .modal {
17
+ width: 90vw;
18
+ height: 90vh;
19
+ border-radius: var(--border-radius-lg);
20
+ background-color: var(--color-surface-primary);
21
+ border: var(--border-width-sm) solid var(--color-border-primary);
22
+ display: flex;
23
+ flex-direction: column;
24
+ gap: var(--scale-600);
25
+ padding: var(--scale-600) var(--scale-900);
26
+
27
+ color: var(--color-text-body);
28
+ font-family: var(--font-family-body);
29
+ font-size: var(--typography-size-body-md);
30
+ font-style: normal;
31
+ font-weight: var(--font-weight-regular);
32
+ line-height: var(--line-height-body-md);
33
+ letter-spacing: var(--font-letter-spacing-default);
34
+
35
+ .topbar {
36
+ width: 100%;
37
+ display: flex;
38
+ flex-direction: row;
39
+ gap: var(--scale-400);
40
+
41
+ tems-button:nth-child(2) {
42
+ margin-left: auto;
43
+ }
44
+ }
45
+
46
+ .modal-content-wrapper {
47
+ overflow: hidden;
48
+ flex: 1;
49
+ display: flex;
50
+
51
+ .modal-box {
52
+ flex: 1;
53
+ display: flex;
54
+ overflow-y: scroll;
55
+ overflow-x: hidden;
56
+ }
57
+
58
+ .modal-content {
59
+ display: flex;
60
+ flex-direction: column;
61
+ gap: var(--scale-400);
62
+ height: fit-content;
63
+ width: 100%;
64
+ }
65
+
66
+ .provider-line {
67
+ display: flex;
68
+ flex-direction: row;
69
+ align-items: center;
70
+ flex-wrap: wrap;
71
+
72
+ > div {
73
+ display: flex;
74
+ flex-direction: row;
75
+ align-items: center;
76
+ }
77
+ }
78
+
79
+ .provider-logo {
80
+ background-repeat: no-repeat;
81
+ background-size: contain;
82
+ background-position: center;
83
+ width: var(--provider-logo-width);
84
+ height: var(--provider-logo-height);
85
+ }
86
+
87
+ .default-image-grid {
88
+ display: flex;
89
+ gap: 8px;
90
+ flex-wrap: wrap;
91
+ }
92
+
93
+ .default-img {
94
+ max-width: 100%;
95
+ max-height: 10vh;
96
+ width: max-content;
97
+ }
98
+
99
+ tems-division {
100
+ width: fit-content;
101
+ div {
102
+ display: block;
103
+ height: auto;
104
+ overflow: hidden;
105
+ text-overflow: ellipsis;
106
+ }
107
+ }
108
+
109
+ a {
110
+ margin: 0px;
111
+ }
112
+
113
+ a:has(svg) {
114
+ display: flex;
115
+ flex-direction: row;
116
+ gap: var(--typography-spacing-xs);
117
+ align-items: center;
118
+
119
+ svg {
120
+ display: flex;
121
+ width: 20px;
122
+ height: 20px;
123
+ color: var(--color-icon-information);
124
+ }
125
+ }
126
+
127
+ .badges {
128
+ display: flex;
129
+ gap: var(--scale-200);
130
+ flex-direction: row;
131
+ flex-wrap: wrap;
132
+ padding: 8px;
133
+ }
134
+
135
+ .badges:has(+ .badges) {
136
+ padding-right: 0;
137
+ }
138
+
139
+ .badges + .badges {
140
+ padding-left: 0;
141
+ }
142
+
143
+ .metadata-section {
144
+ border-top: var(--border-width-sm) solid var(--color-border-primary);
145
+ padding-top: --scale-200;
146
+ gap: var(--scale-400);
147
+ tems-division[type="h2"] {
148
+ padding-top: var(--scale-400);
149
+ }
150
+ .metadata-provider {
151
+ gap: var(--scale-400);
152
+ }
153
+ }
154
+ }
155
+
156
+ > .modal-content-wrapper:has(iframe, .main-img) {
157
+ flex-direction: row;
158
+ gap: var(--scale-900);
159
+ iframe,
160
+ .main-img {
161
+ width: 50%;
162
+ min-width: 50%;
163
+ padding: var(--scale-600);
164
+ background-repeat: no-repeat;
165
+ background-position: top;
166
+ background-size: 100%;
167
+ > div[style] {
168
+ border-radius: var(--border-radius-lg);
169
+ border: var(--border-width-sm) solid var(--color-border-primary);
170
+ }
171
+ }
172
+
173
+ iframe {
174
+ border-radius: var(--border-radius-lg);
175
+ border: var(--border-width-sm) solid var(--color-border-primary);
176
+ }
177
+
178
+ .logo {
179
+ background-repeat: no-repeat;
180
+ background-size: contain;
181
+ background-position: center;
182
+ width: var(--modal-logo-width);
183
+ height: var(--modal-logo-height);
184
+ }
185
+ }
186
+
187
+ .modal-content-wrapper:not(:has(iframe, .main-img)) {
188
+ flex-direction: column;
189
+ }
190
+
191
+ .case-2,
192
+ .case-3,
193
+ .case-4 {
194
+ display: flex;
195
+ flex-direction: column;
196
+ flex-wrap: wrap;
197
+ width: 50%;
198
+ gap: var(--scale-400);
199
+ * {
200
+ background-repeat: no-repeat;
201
+ background-position: center;
202
+ background-size: cover;
203
+ }
204
+ .full-width {
205
+ flex-grow: 1;
206
+ width: 100%;
207
+ border-radius: var(--border-radius-md);
208
+ border: var(--border-width-sm) solid var(--color-border-primary);
209
+ }
210
+ .img-inner-row {
211
+ display: flex;
212
+ flex-direction: row;
213
+ flex-grow: 1;
214
+ gap: var(--scale-400);
215
+ .double-image {
216
+ display: flex;
217
+ gap: var(--scale-400);
218
+ > div {
219
+ flex: 1;
220
+ width: 100%;
221
+ background-repeat: no-repeat;
222
+ background-position: center;
223
+ background-size: cover;
224
+ border-radius: var(--border-radius-md);
225
+ border: var(--border-width-sm) solid var(--color-border-primary);
226
+ }
227
+ }
228
+ }
229
+ }
230
+ .case-3 {
231
+ .double-image {
232
+ width: 100%;
233
+ flex-direction: row;
234
+ }
235
+ }
236
+ .case-4 {
237
+ .img-inner-row {
238
+ display: flex;
239
+ flex-direction: row;
240
+ flex-grow: 1;
241
+ gap: var(--scale-400);
242
+ .double-image {
243
+ width: 50%;
244
+ flex-direction: column;
245
+ }
246
+ .last-img {
247
+ width: 50%;
248
+ margin-right: auto;
249
+ flex: 1;
250
+ height: 100%;
251
+ border-radius: var(--border-radius-md);
252
+ border: var(--border-width-sm) solid var(--color-border-primary);
253
+ }
254
+ }
255
+ }
256
+
257
+ .multiple-columns {
258
+ gap: var(--scale-800);
259
+
260
+ > .half {
261
+ gap: var(--scale-400);
262
+ &:empty {
263
+ display: none;
264
+ }
265
+ }
266
+ }
267
+
268
+ .badge-row {
269
+ gap: var(--scale-200);
270
+ }
271
+ .assets-rows {
272
+ gap: 0px;
273
+ .asset-row {
274
+ text-overflow: ellipsis;
275
+ background-color: var(--color-surface-primary);
276
+ color: var(--color-text-body);
277
+ border: var(--border-width-sm) solid var(--color-border-primary);
278
+ border-bottom: 0px;
279
+ padding: var(--scale-200);
280
+ gap: var(--scale-300);
281
+ }
282
+ p {
283
+ margin: 0px;
284
+ font-family: var(--font-family-body);
285
+ font-size: var(--typography-size-body-sm);
286
+ font-weight: var(--font-weight-medium);
287
+ line-height: var(--line-height-body-sm);
288
+
289
+ overflow: hidden;
290
+ text-overflow: ellipsis;
291
+ }
292
+ .asset-row:first-of-type {
293
+ border-radius: var(--border-radius-xl) var(--border-radius-xl) 0px 0px;
294
+ }
295
+ .asset-row:last-of-type {
296
+ border-radius: 0px 0px var(--border-radius-xl) var(--border-radius-xl);
297
+ border-bottom: var(--border-width-sm) solid var(--color-border-primary);
298
+ }
299
+
300
+ .asset-row:only-of-type {
301
+ border-radius: var(--border-radius-xl);
302
+ border-bottom: var(--border-width-sm) solid var(--color-border-primary);
303
+ }
304
+ .asset-format {
305
+ width: 40px;
306
+ min-width: 40px;
307
+ height: 48px;
308
+ display: flex;
309
+ justify-content: flex-end;
310
+ align-items: flex-end;
311
+ padding: 6px;
312
+ background-color: var(--color-surface-disabled);
313
+ border-radius: var(--border-radius-md);
314
+ p {
315
+ font-size: var(--typography-size-body-xs);
316
+ font-weight: var(--font-weight-bold);
317
+ text-transform: low ercase;
318
+ }
319
+ }
320
+ .flex-column {
321
+ overflow: hidden;
322
+ }
323
+ }
324
+
325
+ .metadata-section .half:empty {
326
+ display: none;
327
+ }
328
+
329
+ // Policy selection UI
330
+ .policy-selection-modal {
331
+ display: flex;
332
+ flex-direction: column;
333
+ gap: var(--scale-500);
334
+ padding: var(--scale-400);
335
+ background: var(--color-surface-primary);
336
+ border-radius: var(--border-radius-md);
337
+ border: var(--border-width-sm) solid var(--color-border-primary);
338
+
339
+ .policy-selection-header {
340
+ h3 {
341
+ margin: 0 0 var(--scale-300) 0;
342
+ font-size: var(--typography-size-heading-md);
343
+ font-weight: var(--font-weight-bold);
344
+ }
345
+
346
+ p {
347
+ margin: 0;
348
+ color: var(--color-text-secondary);
349
+ }
350
+ }
351
+
352
+ .policy-selection-list {
353
+ display: flex;
354
+ flex-direction: column;
355
+ gap: var(--scale-400);
356
+ max-height: 400px;
357
+ overflow-y: auto;
358
+ }
359
+
360
+ .policy-option {
361
+ padding: var(--scale-400);
362
+ border: var(--border-width-sm) solid var(--color-border-primary);
363
+ border-radius: var(--border-radius-md);
364
+ cursor: pointer;
365
+ transition: all 0.2s ease;
366
+
367
+ &:hover {
368
+ border-color: var(--color-primary);
369
+ background: var(--color-surface-secondary);
370
+ }
371
+
372
+ .policy-option-header {
373
+ display: flex;
374
+ justify-content: space-between;
375
+ align-items: center;
376
+ margin-bottom: var(--scale-300);
377
+ flex-wrap: wrap;
378
+ gap: var(--scale-200);
379
+
380
+ strong {
381
+ font-weight: var(--font-weight-bold);
382
+ }
383
+
384
+ code {
385
+ font-family: monospace;
386
+ font-size: 0.85em;
387
+ background: var(--color-surface-tertiary);
388
+ padding: 2px 6px;
389
+ border-radius: var(--border-radius-sm);
390
+ word-break: break-all;
391
+ }
392
+ }
393
+
394
+ .policy-option-details {
395
+ font-size: 0.9em;
396
+ color: var(--color-text-secondary);
397
+
398
+ .policy-detail {
399
+ margin: var(--scale-200) 0;
400
+
401
+ strong {
402
+ color: var(--color-text-body);
403
+ }
404
+
405
+ ul {
406
+ margin: var(--scale-100) 0;
407
+ padding-left: var(--scale-400);
408
+
409
+ li {
410
+ margin: var(--scale-100) 0;
411
+ }
412
+ }
413
+ }
414
+ }
415
+ }
416
+
417
+ .policy-selection-actions {
418
+ display: flex;
419
+ justify-content: flex-end;
420
+ gap: var(--scale-300);
421
+ margin-top: var(--scale-300);
422
+ }
423
+ }
424
+ }
425
+
426
+ @media screen and (min-width: 1100px) {
427
+ div.modal {
428
+ width: 80vw;
429
+ height: 80vh;
430
+ }
431
+ }