@cityway/basic-ui 1.0.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.
Files changed (130) hide show
  1. package/README.md +75 -0
  2. package/cityway-basic-ui-1.0.1.tgz +0 -0
  3. package/fesm2022/cityway-basic-ui.mjs +2092 -0
  4. package/fesm2022/cityway-basic-ui.mjs.map +1 -0
  5. package/index.d.ts +766 -0
  6. package/lib/assets/fonts/bo/_variables.scss +43 -0
  7. package/lib/assets/fonts/bo/bo.scss +61 -0
  8. package/lib/assets/fonts/bo/bo.woff +0 -0
  9. package/lib/assets/fonts/bo/bo.woff2 +0 -0
  10. package/lib/assets/fonts/nunito/_nunito.scss +39 -0
  11. package/lib/assets/fonts/nunito/nunito-bold.woff +0 -0
  12. package/lib/assets/fonts/nunito/nunito-bold.woff2 +0 -0
  13. package/lib/assets/fonts/nunito/nunito-extrabold.woff +0 -0
  14. package/lib/assets/fonts/nunito/nunito-extrabold.woff2 +0 -0
  15. package/lib/assets/fonts/nunito/nunito-light.woff +0 -0
  16. package/lib/assets/fonts/nunito/nunito-light.woff2 +0 -0
  17. package/lib/assets/fonts/nunito/nunito-regular.woff +0 -0
  18. package/lib/assets/fonts/nunito/nunito-regular.woff2 +0 -0
  19. package/lib/assets/fonts/nunito/nunito-semi-bold.woff +0 -0
  20. package/lib/assets/fonts/nunito/nunito-semi-bold.woff2 +0 -0
  21. package/lib/assets/fonts/optyweb/_variables.scss +405 -0
  22. package/lib/assets/fonts/optyweb/optyweb.scss +1571 -0
  23. package/lib/assets/fonts/optyweb/optyweb.woff +0 -0
  24. package/lib/assets/fonts/optyweb/optyweb.woff2 +0 -0
  25. package/lib/assets/i18n/common.en.json +248 -0
  26. package/lib/assets/i18n/common.fr.json +242 -0
  27. package/lib/assets/i18n/label.en.json +29 -0
  28. package/lib/assets/i18n/label.fr.json +29 -0
  29. package/lib/assets/images/common/check-mark.svg +3 -0
  30. package/lib/assets/images/favicon/android-chrome-192x192.png +0 -0
  31. package/lib/assets/images/favicon/android-chrome-512x512.png +0 -0
  32. package/lib/assets/images/favicon/apple-touch-icon.png +0 -0
  33. package/lib/assets/images/favicon/favicon-16x16.png +0 -0
  34. package/lib/assets/images/favicon/favicon-32x32.png +0 -0
  35. package/lib/assets/images/favicon/favicon-96x96.png +0 -0
  36. package/lib/assets/images/favicon/favicon.ico +0 -0
  37. package/lib/assets/images/favicon/site.webmanifest +19 -0
  38. package/lib/assets/images/icon/referential-icon.svg +1 -0
  39. package/lib/assets/images/login/login-bg.jpg +0 -0
  40. package/lib/assets/images/login/logo-cityway-baseline.svg +16 -0
  41. package/lib/assets/images/toast/warning.svg +3 -0
  42. package/lib/assets/styles/scss/_components.scss +14 -0
  43. package/lib/assets/styles/scss/_custom-bootstrap.scss +22 -0
  44. package/lib/assets/styles/scss/bootstrap/_accordion.scss +1 -0
  45. package/lib/assets/styles/scss/bootstrap/_alert.scss +32 -0
  46. package/lib/assets/styles/scss/bootstrap/_badge.scss +36 -0
  47. package/lib/assets/styles/scss/bootstrap/_breadcrumb.scss +46 -0
  48. package/lib/assets/styles/scss/bootstrap/_button-group.scss +107 -0
  49. package/lib/assets/styles/scss/bootstrap/_buttons.scss +324 -0
  50. package/lib/assets/styles/scss/bootstrap/_card.scss +107 -0
  51. package/lib/assets/styles/scss/bootstrap/_close.scss +8 -0
  52. package/lib/assets/styles/scss/bootstrap/_dropdown.scss +53 -0
  53. package/lib/assets/styles/scss/bootstrap/_forms.scss +259 -0
  54. package/lib/assets/styles/scss/bootstrap/_input-group.scss +61 -0
  55. package/lib/assets/styles/scss/bootstrap/_lists.scss +30 -0
  56. package/lib/assets/styles/scss/bootstrap/_modal.scss +152 -0
  57. package/lib/assets/styles/scss/bootstrap/_pagination.scss +21 -0
  58. package/lib/assets/styles/scss/bootstrap/_popover.scss +5 -0
  59. package/lib/assets/styles/scss/bootstrap/_progress.scss +6 -0
  60. package/lib/assets/styles/scss/bootstrap/_reboot.scss +5 -0
  61. package/lib/assets/styles/scss/bootstrap/_tables.scss +155 -0
  62. package/lib/assets/styles/scss/bootstrap/_tabs.scss +71 -0
  63. package/lib/assets/styles/scss/bootstrap/_tooltip.scss +3 -0
  64. package/lib/assets/styles/scss/bootstrap/_type.scss +55 -0
  65. package/lib/assets/styles/scss/components/_forms-firefox.scss +17 -0
  66. package/lib/assets/styles/scss/components/_leaflet.scss +41 -0
  67. package/lib/assets/styles/scss/components/_legend.scss +36 -0
  68. package/lib/assets/styles/scss/components/_ng-select.scss +148 -0
  69. package/lib/assets/styles/scss/components/_ng2-dragula.scss +36 -0
  70. package/lib/assets/styles/scss/components/_ng2-validation.scss +39 -0
  71. package/lib/assets/styles/scss/components/_ng5-slider.scss +28 -0
  72. package/lib/assets/styles/scss/components/_ngb-datepicker.scss +165 -0
  73. package/lib/assets/styles/scss/components/_ngb-timepicker.scss +19 -0
  74. package/lib/assets/styles/scss/components/_ngx-chips.scss +102 -0
  75. package/lib/assets/styles/scss/components/_ngx-editor.scss +10 -0
  76. package/lib/assets/styles/scss/components/_ngx-file-drop.scss +15 -0
  77. package/lib/assets/styles/scss/components/_ngx-intl-tel-input.scss +21 -0
  78. package/lib/assets/styles/scss/components/_ngx-slider.scss +34 -0
  79. package/lib/assets/styles/scss/components/_ngx-toast.scss +74 -0
  80. package/lib/assets/styles/scss/components/_pwd-policy.scss +18 -0
  81. package/lib/assets/styles/scss/components/_table.scss +8 -0
  82. package/lib/assets/styles/scss/components/_vis.scss +50 -0
  83. package/lib/assets/styles/scss/components/_wizard-stepper.scss +82 -0
  84. package/lib/assets/styles/scss/components/table/_table-action.scss +77 -0
  85. package/lib/assets/styles/scss/components/table/_table-bg-cell.scss +6 -0
  86. package/lib/assets/styles/scss/components/table/_table-double-scroll.scss +38 -0
  87. package/lib/assets/styles/scss/components/table/_table-filter.scss +128 -0
  88. package/lib/assets/styles/scss/components/table/_table-pagination.scss +34 -0
  89. package/lib/assets/styles/scss/components/table/_table-popover.scss +39 -0
  90. package/lib/assets/styles/scss/components/table/_table-sorting.scss +64 -0
  91. package/lib/assets/styles/scss/cw-ds/_reboot.scss +551 -0
  92. package/lib/assets/styles/scss/cw-ds/_root-bo.scss +9 -0
  93. package/lib/assets/styles/scss/cw-ds/_root-fo.scss +9 -0
  94. package/lib/assets/styles/scss/cw-ds/components/_alert.scss +76 -0
  95. package/lib/assets/styles/scss/cw-ds/components/_badge.scss +107 -0
  96. package/lib/assets/styles/scss/cw-ds/components/_btn-collapse.scss +15 -0
  97. package/lib/assets/styles/scss/cw-ds/components/_card.scss +66 -0
  98. package/lib/assets/styles/scss/cw-ds/components/_close.scss +6 -0
  99. package/lib/assets/styles/scss/cw-ds/components/_file-to-download.scss +46 -0
  100. package/lib/assets/styles/scss/cw-ds/components/_icon-notification.scss +30 -0
  101. package/lib/assets/styles/scss/cw-ds/components/_icon.scss +112 -0
  102. package/lib/assets/styles/scss/cw-ds/components/_numerical-range.scss +60 -0
  103. package/lib/assets/styles/scss/cw-ds/components/_stepper.scss +78 -0
  104. package/lib/assets/styles/scss/cw-ds/components/_tab.scss +81 -0
  105. package/lib/assets/styles/scss/cw-ds/components/_toast.scss +27 -0
  106. package/lib/assets/styles/scss/cw-ds/components/button/_button-bo-variant.scss +46 -0
  107. package/lib/assets/styles/scss/cw-ds/components/button/_button-fo-variant.scss +112 -0
  108. package/lib/assets/styles/scss/cw-ds/components/button/_button.scss +95 -0
  109. package/lib/assets/styles/scss/cw-ds/helpers/_spinner.scss +30 -0
  110. package/lib/assets/styles/scss/cw-ds/helpers/_stretched-link.scss +9 -0
  111. package/lib/assets/styles/scss/cw-ds/helpers/_visually-hidden.scss +18 -0
  112. package/lib/assets/styles/scss/cw-ds/mixins/_color.scss +16 -0
  113. package/lib/assets/styles/scss/cw-ds/mixins/_flex.scss +11 -0
  114. package/lib/assets/styles/scss/cw-ds/mixins/_root.scss +26 -0
  115. package/lib/assets/styles/scss/cw-ds/mixins/_spacing.scss +84 -0
  116. package/lib/assets/styles/scss/cw-ds/mixins/_type.scss +27 -0
  117. package/lib/assets/styles/scss/cw-ds/utilities/_alignment.scss +23 -0
  118. package/lib/assets/styles/scss/cw-ds/utilities/_flex.scss +96 -0
  119. package/lib/assets/styles/scss/cw-ds/utilities/_spacing.scss +3 -0
  120. package/lib/assets/styles/scss/cw-ds/utilities/_type.scss +3 -0
  121. package/lib/assets/styles/scss/styles-bo.scss +115 -0
  122. package/lib/assets/styles/scss/styles-fo.scss +115 -0
  123. package/lib/assets/styles/scss/variables/_colors.scss +43 -0
  124. package/lib/assets/styles/scss/variables/_custom.scss +451 -0
  125. package/lib/assets/styles/scss/variables/_site.scss +68 -0
  126. package/package.json +33 -0
  127. package/styles-bo.min.css +5 -0
  128. package/styles-bo.min.css.map +1 -0
  129. package/styles-fo.min.css +5 -0
  130. package/styles-fo.min.css.map +1 -0
@@ -0,0 +1,551 @@
1
+
2
+ @use "@cityway/design-tokens/primitives" as p;
3
+
4
+ // ============================================
5
+ // REBOOT - Reset CSS
6
+ // ============================================
7
+ // Inspiré de Bootstrap Reboot, Normalize.css et modern-css-reset
8
+
9
+ // ============================================
10
+ // 1. DOCUMENT & BOX-SIZING
11
+ // ============================================
12
+
13
+ *,
14
+ *::before,
15
+ *::after {
16
+ box-sizing: border-box;
17
+ }
18
+
19
+ // ============================================
20
+ // 2. ROOT
21
+ // ============================================
22
+
23
+ :root {
24
+ // Améliore la lisibilité du texte
25
+ -webkit-text-size-adjust: 100%;
26
+ -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
27
+
28
+ // Smooth scrolling (optionnel, peut être désactivé pour certains users)
29
+ @media (prefers-reduced-motion: no-preference) {
30
+ scroll-behavior: smooth;
31
+ }
32
+ }
33
+
34
+ // ============================================
35
+ // 3. BODY
36
+ // ============================================
37
+
38
+ body {
39
+ margin: 0;
40
+ font-family: var(--#{p.$prefix}-body-ff-text, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);
41
+ font-size: var(--#{p.$prefix}-body-fs, 1rem);
42
+ font-weight: var(--#{p.$prefix}-body-fw, 400);
43
+ line-height: var(--#{p.$prefix}-body-lh, 1.5);
44
+ color: var(--#{p.$prefix}-body-color, #212529);
45
+ background-color: var(--#{p.$prefix}-body-bg, #fff);
46
+ -webkit-font-smoothing: antialiased;
47
+ -moz-osx-font-smoothing: grayscale;
48
+ text-rendering: optimizeLegibility;
49
+ }
50
+
51
+ // ============================================
52
+ // 4. TYPOGRAPHIE
53
+ // ============================================
54
+
55
+ // Reset des margins pour les headings et paragraphes
56
+ h1, h2, h3, h4, h5, h6,
57
+ p, blockquote, pre,
58
+ dl, dd, ol, ul,
59
+ figure, hr {
60
+ margin: 0;
61
+ margin-block: 0;
62
+ }
63
+
64
+ // Headings
65
+ h1, h2, h3, h4, h5, h6 {
66
+ margin-top: 0;
67
+ margin-bottom: 0.5rem;
68
+ font-weight: 600;
69
+ line-height: 1.2;
70
+ color: inherit;
71
+ }
72
+
73
+ h1 { font-size: 2.5rem; }
74
+ h2 { font-size: 2rem; }
75
+ h3 { font-size: 1.75rem; }
76
+ h4 { font-size: 1.5rem; }
77
+ h5 { font-size: 1.25rem; }
78
+ h6 { font-size: 1rem; }
79
+
80
+ // Paragraphes
81
+ p {
82
+ margin-top: 0;
83
+ margin-bottom: 1rem;
84
+ }
85
+
86
+ // Listes
87
+ ol, ul {
88
+ padding-left: 2rem;
89
+ margin-bottom: 1rem;
90
+ }
91
+
92
+ ol ol,
93
+ ul ul,
94
+ ol ul,
95
+ ul ol {
96
+ margin-bottom: 0;
97
+ }
98
+
99
+ // Supprimer les styles de liste par défaut
100
+ ol.list-unstyled,
101
+ ul.list-unstyled {
102
+ list-style: none;
103
+ padding: 0;
104
+ }
105
+
106
+ // Description lists
107
+ dt {
108
+ font-weight: 600;
109
+ }
110
+
111
+ dd {
112
+ margin-bottom: 0.5rem;
113
+ margin-left: 0;
114
+ }
115
+
116
+ // ============================================
117
+ // 5. LIENS
118
+ // ============================================
119
+
120
+ a {
121
+ color: var(--#{p.$prefix}-link-color, #0066cc);
122
+ text-decoration: var(--#{p.$prefix}-link-decoration, underline);
123
+ background-color: transparent;
124
+
125
+ &:hover {
126
+ color: var(--#{p.$prefix}-link-hover, #0052a3);
127
+ text-decoration: none;
128
+ }
129
+ }
130
+
131
+ // Liens sans href
132
+ a:not([href]):not([class]) {
133
+ &,
134
+ &:hover {
135
+ color: inherit;
136
+ text-decoration: none;
137
+ }
138
+ }
139
+
140
+ // ============================================
141
+ // 6. CODE
142
+ // ============================================
143
+
144
+ pre,
145
+ code,
146
+ kbd,
147
+ samp {
148
+ font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
149
+ font-size: 0.875em;
150
+ }
151
+
152
+ pre {
153
+ display: block;
154
+ margin-top: 0;
155
+ margin-bottom: 1rem;
156
+ overflow: auto;
157
+ font-size: 0.875rem;
158
+
159
+ code {
160
+ font-size: inherit;
161
+ color: inherit;
162
+ word-break: normal;
163
+ }
164
+ }
165
+
166
+ code {
167
+ font-size: 0.875em;
168
+ color: var(--code-color, #d63384);
169
+ word-wrap: break-word;
170
+ }
171
+
172
+ kbd {
173
+ padding: 0.1875rem 0.375rem;
174
+ font-size: 0.875em;
175
+ color: var(--kbd-color, #fff);
176
+ background-color: var(--kbd-bg, #212529);
177
+ border-radius: 0.25rem;
178
+
179
+ kbd {
180
+ padding: 0;
181
+ font-size: 1em;
182
+ }
183
+ }
184
+
185
+ // ============================================
186
+ // 7. IMAGES ET MÉDIAS
187
+ // ============================================
188
+
189
+ img,
190
+ svg,
191
+ video,
192
+ canvas,
193
+ audio,
194
+ iframe,
195
+ embed,
196
+ object {
197
+ display: block;
198
+ max-width: 100%;
199
+ height: auto;
200
+ vertical-align: middle;
201
+ }
202
+
203
+ img {
204
+ border-style: none;
205
+ }
206
+
207
+ svg {
208
+ overflow: hidden;
209
+ }
210
+
211
+ // ============================================
212
+ // 8. TABLEAUX
213
+ // ============================================
214
+
215
+ table {
216
+ caption-side: bottom;
217
+ border-collapse: collapse;
218
+ width: 100%;
219
+ }
220
+
221
+ caption {
222
+ padding-top: 0.5rem;
223
+ padding-bottom: 0.5rem;
224
+ text-align: left;
225
+ }
226
+
227
+ th {
228
+ text-align: inherit;
229
+ text-align: -webkit-match-parent;
230
+ }
231
+
232
+ thead,
233
+ tbody,
234
+ tfoot,
235
+ tr,
236
+ td,
237
+ th {
238
+ border-color: inherit;
239
+ border-style: solid;
240
+ border-width: 0;
241
+ }
242
+
243
+ // ============================================
244
+ // 9. FORMULAIRES
245
+ // ============================================
246
+
247
+ button,
248
+ input,
249
+ optgroup,
250
+ select,
251
+ textarea {
252
+ margin: 0;
253
+ font-family: inherit;
254
+ font-size: inherit;
255
+ line-height: inherit;
256
+ }
257
+
258
+ button,
259
+ select {
260
+ text-transform: none;
261
+ }
262
+
263
+ // Styles du bouton
264
+ button,
265
+ [type="button"],
266
+ [type="reset"],
267
+ [type="submit"] {
268
+ appearance: none;
269
+ -webkit-appearance: none;
270
+ padding: 0;
271
+ border: 0;
272
+ cursor: pointer;
273
+ background-color: transparent;
274
+ background-image: none;
275
+
276
+ &:not(:disabled) {
277
+ cursor: pointer;
278
+ }
279
+ }
280
+
281
+ // Reset du style natif pour les boutons
282
+ button {
283
+ border: none;
284
+ padding: 0;
285
+ background: none;
286
+ font: inherit;
287
+ color: inherit;
288
+
289
+ &::-moz-focus-inner {
290
+ border-style: none;
291
+ padding: 0;
292
+ }
293
+ }
294
+
295
+ // Input
296
+ input[type="text"],
297
+ input[type="email"],
298
+ input[type="url"],
299
+ input[type="password"],
300
+ input[type="number"],
301
+ input[type="date"],
302
+ input[type="datetime-local"],
303
+ input[type="month"],
304
+ input[type="search"],
305
+ input[type="tel"],
306
+ input[type="time"],
307
+ input[type="week"],
308
+ select,
309
+ textarea {
310
+ width: 100%;
311
+ padding: 0.375rem 0.75rem;
312
+ font-size: 1rem;
313
+ font-weight: 400;
314
+ line-height: 1.5;
315
+ color: var(--input-color, #212529);
316
+ background-color: var(--input-bg, #fff);
317
+ background-clip: padding-box;
318
+ border: 1px solid var(--input-border-color, #dee2e6);
319
+ appearance: none;
320
+ border-radius: 0.375rem;
321
+ transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
322
+ }
323
+
324
+ // Textarea
325
+ textarea {
326
+ resize: vertical;
327
+ min-height: 6rem;
328
+ }
329
+
330
+ // Placeholder
331
+ ::placeholder {
332
+ color: var(--placeholder-color, #6c757d);
333
+ opacity: 1;
334
+ }
335
+
336
+ // Désactiver le spinner pour les inputs number
337
+ input[type="number"]::-webkit-inner-spin-button,
338
+ input[type="number"]::-webkit-outer-spin-button {
339
+ height: auto;
340
+ }
341
+
342
+ input[type="search"] {
343
+ outline-offset: -2px;
344
+ -webkit-appearance: textfield;
345
+
346
+ &::-webkit-search-decoration {
347
+ -webkit-appearance: none;
348
+ }
349
+ }
350
+
351
+ // File input
352
+ ::-webkit-file-upload-button {
353
+ font: inherit;
354
+ -webkit-appearance: button;
355
+ }
356
+
357
+ // Fieldset
358
+ fieldset {
359
+ min-width: 0;
360
+ padding: 0;
361
+ margin: 0;
362
+ border: 0;
363
+ }
364
+
365
+ legend {
366
+ float: left;
367
+ width: 100%;
368
+ padding: 0;
369
+ margin-bottom: 0.5rem;
370
+ font-size: 1.5rem;
371
+ font-weight: 600;
372
+ line-height: inherit;
373
+
374
+ + * {
375
+ clear: left;
376
+ }
377
+ }
378
+
379
+ // Label
380
+ label {
381
+ display: inline-block;
382
+ margin-bottom: 0.5rem;
383
+ }
384
+
385
+ // ============================================
386
+ // 10. ÉLÉMENTS INTERACTIFS
387
+ // ============================================
388
+
389
+ // Summary (details)
390
+ summary {
391
+ display: list-item;
392
+ cursor: pointer;
393
+ }
394
+
395
+ // Progress
396
+ progress {
397
+ vertical-align: baseline;
398
+ }
399
+
400
+ // Disabled
401
+ [disabled],
402
+ [aria-disabled="true"] {
403
+ cursor: not-allowed;
404
+ opacity: 0.6;
405
+ }
406
+
407
+ // Hidden
408
+ [hidden] {
409
+ display: none !important;
410
+ }
411
+
412
+ // ============================================
413
+ // 11. AUTRES ÉLÉMENTS
414
+ // ============================================
415
+
416
+ // HR
417
+ hr {
418
+ margin: 1rem 0;
419
+ color: inherit;
420
+ border: 0;
421
+ border-top: 1px solid currentColor;
422
+ opacity: 0.25;
423
+ }
424
+
425
+ // Blockquote
426
+ blockquote {
427
+ margin: 0 0 1rem;
428
+ padding-left: 1rem;
429
+ border-left: 0.25rem solid var(--border-color, #dee2e6);
430
+ }
431
+
432
+ // Abbr
433
+ abbr[title] {
434
+ text-decoration: underline dotted;
435
+ cursor: help;
436
+ text-decoration-skip-ink: none;
437
+ }
438
+
439
+ // Mark
440
+ mark {
441
+ padding: 0.1875em;
442
+ background-color: var(--mark-bg, #fcf8e3);
443
+ color: var(--mark-color, inherit);
444
+ }
445
+
446
+ // Small
447
+ small {
448
+ font-size: 0.875em;
449
+ }
450
+
451
+ // Sub et Sup
452
+ sub,
453
+ sup {
454
+ position: relative;
455
+ font-size: 0.75em;
456
+ line-height: 0;
457
+ vertical-align: baseline;
458
+ }
459
+
460
+ sub {
461
+ bottom: -0.25em;
462
+ }
463
+
464
+ sup {
465
+ top: -0.5em;
466
+ }
467
+
468
+ // ============================================
469
+ // 12. ACCESSIBILITÉ
470
+ // ============================================
471
+
472
+ // Respecter les préférences d'animation
473
+ @media (prefers-reduced-motion: reduce) {
474
+ *,
475
+ *::before,
476
+ *::after {
477
+ animation-duration: 0.01ms !important;
478
+ animation-iteration-count: 1 !important;
479
+ transition-duration: 0.01ms !important;
480
+ scroll-behavior: auto !important;
481
+ }
482
+ }
483
+
484
+ // Skip links pour l'accessibilité
485
+ .skip-link {
486
+ position: absolute;
487
+ top: -40px;
488
+ left: 0;
489
+ background: #000;
490
+ color: white;
491
+ padding: 8px;
492
+ text-decoration: none;
493
+ z-index: 100;
494
+
495
+ &:focus {
496
+ top: 0;
497
+ }
498
+ }
499
+
500
+ // ============================================
501
+ // 13. PRINT
502
+ // ============================================
503
+
504
+ @media print {
505
+ *,
506
+ *::before,
507
+ *::after {
508
+ text-shadow: none !important;
509
+ box-shadow: none !important;
510
+ }
511
+
512
+ a:not(.btn) {
513
+ text-decoration: underline;
514
+ }
515
+
516
+ abbr[title]::after {
517
+ content: " (" attr(title) ")";
518
+ }
519
+
520
+ pre {
521
+ white-space: pre-wrap !important;
522
+ border: 1px solid #adb5bd;
523
+ page-break-inside: avoid;
524
+ }
525
+
526
+ thead {
527
+ display: table-header-group;
528
+ }
529
+
530
+ tr,
531
+ img {
532
+ page-break-inside: avoid;
533
+ }
534
+
535
+ p,
536
+ h2,
537
+ h3 {
538
+ orphans: 3;
539
+ widows: 3;
540
+ }
541
+
542
+ h2,
543
+ h3 {
544
+ page-break-after: avoid;
545
+ }
546
+
547
+ // Hide elements not needed in print
548
+ .no-print {
549
+ display: none !important;
550
+ }
551
+ }
@@ -0,0 +1,9 @@
1
+ @use "sass:map";
2
+ @use "@cityway/design-tokens/primitives" as p;
3
+ @use "@cityway/design-tokens/functions" as f;
4
+ @use "@cityway/design-tokens/theme-mapping" as tm;
5
+
6
+ :root, [data-cw-theme=cw-bo] {
7
+ @include tm.generate-theme-colors(tm.$theme-bo-colors);
8
+ @include tm.generate-theme-props(tm.$theme-bo-props);
9
+ }
@@ -0,0 +1,9 @@
1
+ @use "sass:map";
2
+ @use "@cityway/design-tokens/primitives" as p;
3
+ @use "@cityway/design-tokens/functions" as f;
4
+ @use "@cityway/design-tokens/theme-mapping" as tm;
5
+
6
+ :root, [data-cw-theme=cw-fo] {
7
+ @include tm.generate-theme-colors(tm.$theme-fo-colors);
8
+ @include tm.generate-theme-props(tm.$theme-fo-props);
9
+ }
@@ -0,0 +1,76 @@
1
+ @use "sass:map";
2
+ @use "@cityway/design-tokens/primitives" as p;
3
+ @use "@cityway/design-tokens/functions" as *;
4
+
5
+ .alert {
6
+ --#{p.$prefix}-alert-color: #{color(base, "black")};
7
+ --#{p.$prefix}-alert-bg-color: #{color(base, "white")};
8
+
9
+ display: flex;
10
+ align-items: center;
11
+ gap: size(md);
12
+ padding: size(md);
13
+ font-size: font(fs, xs);
14
+ line-height: font(lh, xs);
15
+ color: var(--#{p.$prefix}-alert-color);
16
+ border-radius: var(--#{p.$prefix}-border-radius);
17
+ background-color: var(--#{p.$prefix}-alert-bg-color);
18
+
19
+ &-content {
20
+ display: flex;
21
+ flex-direction: column;
22
+ flex-grow: 1;
23
+
24
+ a {
25
+ color: currentColor;
26
+ }
27
+ }
28
+
29
+ .btn-close {
30
+ align-self: flex-start;
31
+
32
+ &:hover, &:active {
33
+ color: #{color(base, disabled)};
34
+ }
35
+ }
36
+ }
37
+
38
+ // MIXIN - Variantes
39
+ // ---------------------------------
40
+ @mixin alert-variants($variants) {
41
+ @each $variant, $colors in $variants {
42
+ .alert-#{$variant} {
43
+ --#{p.$prefix}-alert-bg-color: #{map.get($colors, surface)};
44
+ --#{p.$prefix}-alert-color: #{map.get($colors, text)};
45
+ }
46
+ }
47
+ }
48
+
49
+ // Variables
50
+ // ---------------------------------
51
+ $alert: (
52
+ info: (
53
+ surface: var(--cw-info-light),
54
+ text: var(--cw-body-color)
55
+ ),
56
+ success: (
57
+ surface: var(--cw-success-light),
58
+ text: var(--cw-body-color)
59
+ ),
60
+ warning: (
61
+ surface: var(--cw-warning-light),
62
+ text: var(--cw-body-color)
63
+ ),
64
+ danger: (
65
+ surface: var(--cw-danger-light),
66
+ text: var(--cw-body-color)
67
+ ),
68
+ light: (
69
+ surface: var(--cw-light-light),
70
+ text: var(--cw-body-color)
71
+ )
72
+ );
73
+
74
+ // Générer toutes les variantes
75
+ // ---------------------------------
76
+ @include alert-variants($alert);