@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,107 @@
1
+ @use "sass:map";
2
+ @use "@cityway/design-tokens/primitives" as p;
3
+ @use "@cityway/design-tokens/functions" as *;
4
+
5
+ .badge {
6
+ --#{p.$prefix}-badge-padding-x: #{size(xs)};
7
+ --#{p.$prefix}-badge-padding-y: #{size(4xs)};
8
+ --#{p.$prefix}-badge-font-size: #{font(fs, sm)};
9
+ --#{p.$prefix}-badge-font-weight: #{font(fw, normal)};
10
+ --#{p.$prefix}-badge-color: #{color(base, "black")};
11
+ --#{p.$prefix}-badge-bg-color: #{color(base, "white")};
12
+ --#{p.$prefix}-badge-border-radius: #{border(br, round)};
13
+
14
+ display: inline-flex;
15
+ justify-content: center;
16
+ align-items: center;
17
+ gap: size(4xs);
18
+ padding: size(4xs) size(xs);
19
+ font-size: font(fs, sm);
20
+ line-height: font(lh, sm);
21
+ font-weight: font(fw, normal);
22
+ color: var(--#{p.$prefix}-badge-color);
23
+ white-space: nowrap;
24
+ vertical-align: baseline;
25
+ border-radius: border(br, round);
26
+ background-color: var(--#{p.$prefix}-badge-bg-color);
27
+
28
+ &:empty {
29
+ display: none;
30
+ }
31
+ }
32
+
33
+ // MIXIN - Variantes
34
+ // ---------------------------------
35
+ @mixin badge-variants($type, $variants) {
36
+ @each $variant, $colors in $variants {
37
+ .badge-#{$type}-#{$variant} {
38
+ --#{p.$prefix}-badge-bg-color: #{map.get($colors, surface)};
39
+ --#{p.$prefix}-badge-color: #{map.get($colors, text)};
40
+ }
41
+ }
42
+ }
43
+
44
+ // Variables
45
+ // ---------------------------------
46
+ $badge-light: (
47
+ info: (
48
+ surface: var(--cw-info-light),
49
+ text: color("grey", 950)
50
+ ),
51
+ success: (
52
+ surface: var(--cw-success-light),
53
+ text: color("grey", 950)
54
+ ),
55
+ warning: (
56
+ surface: var(--cw-warning-light),
57
+ text: color("grey", 950)
58
+ ),
59
+ danger: (
60
+ surface: var(--cw-danger-light),
61
+ text: color("grey", 950)
62
+ ),
63
+ light: (
64
+ surface: var(--cw-light),
65
+ text: var(--cw-light-contrasted)
66
+ )
67
+ );
68
+
69
+ $badge-heavy: (
70
+ primary: (
71
+ surface: var(--cw-primary),
72
+ text: var(--cw-primary-contrasted)
73
+ ),
74
+ info: (
75
+ surface: var(--cw-info),
76
+ text: var(--cw-info-contrasted)
77
+ ),
78
+ success: (
79
+ surface: var(--cw-success),
80
+ text: var(--cw-success-contrasted)
81
+ ),
82
+ warning: (
83
+ surface: var(--cw-warning),
84
+ text: var(--cw-warning-contrasted)
85
+ ),
86
+ danger: (
87
+ surface: var(--cw-danger),
88
+ text: var(--cw-danger-contrasted)
89
+ ),
90
+ dark: (
91
+ surface: var(--cw-dark),
92
+ text: var(--cw-dark-contrasted)
93
+ ),
94
+ light: (
95
+ surface: var(--cw-light),
96
+ text: var(--cw-light-contrasted)
97
+ ),
98
+ disabled: (
99
+ surface: var(--cw-disabled),
100
+ text: var(--cw-disabled-contrasted)
101
+ )
102
+ );
103
+
104
+ // Générer toutes les variantes
105
+ // ---------------------------------
106
+ @include badge-variants("light", $badge-light);
107
+ @include badge-variants("heavy", $badge-heavy);
@@ -0,0 +1,15 @@
1
+ .btn-collapse {
2
+ display: inline-block;
3
+ appearance: none;
4
+ padding: 0;
5
+ border: 0;
6
+ background-color: transparent;
7
+
8
+ &:hover, &:active {
9
+ color: initial;
10
+ }
11
+
12
+ &.collapsed .icon {
13
+ transform: rotate(180deg);
14
+ }
15
+ }
@@ -0,0 +1,66 @@
1
+ @use "sass:map";
2
+ @use "@cityway/design-tokens/primitives" as p;
3
+ @use "@cityway/design-tokens/functions" as *;
4
+
5
+ .card {
6
+ --#{p.$prefix}-card-padding: #{size(md)};
7
+ --#{p.$prefix}-card-bg: var(--#{p.$prefix}-base-white);
8
+ --#{p.$prefix}-card-br: #{border(br, 2xl)};
9
+ --#{p.$prefix}-card-bs: #{border(bs, md)};
10
+
11
+ display: flex;
12
+ flex-direction: column;
13
+ border-radius: var(--#{p.$prefix}-card-br);
14
+ box-shadow: var(--#{p.$prefix}-card-bs);
15
+ background-color: var(--#{p.$prefix}-card-bg);
16
+
17
+ &-header {
18
+ position: relative;
19
+ display: flex;
20
+ align-items: center;
21
+ gap: size(md);
22
+ margin: 0;
23
+ padding: var(--#{p.$prefix}-card-padding);
24
+
25
+ h2, .h2, h3, .h3, h4, .h4 {
26
+ margin: 0;
27
+ }
28
+
29
+ &-collapse {
30
+ &:hover, &:active &.card-header-collapsed {
31
+ color: var(--#{p.$prefix}-primary);
32
+ }
33
+ }
34
+
35
+ &-custom-area {
36
+ flex: 1;
37
+ }
38
+
39
+ .btn-collapse {
40
+ align-self: flex-end;
41
+ }
42
+
43
+ + .card-body {
44
+ padding-top: 0;
45
+ }
46
+ }
47
+
48
+ &-body {
49
+ padding: var(--#{p.$prefix}-card-padding);
50
+
51
+ .card {
52
+ border-radius: calc(var(--#{p.$prefix}-card-br) - 0.25rem);
53
+ }
54
+ }
55
+
56
+ &-footer {
57
+ padding: 0 var(--#{p.$prefix}-card-padding) var(--#{p.$prefix}-card-padding) var(--#{p.$prefix}-card-padding);
58
+ }
59
+
60
+ &-light {
61
+ --#{p.$prefix}-card-bg: var(--#{p.$prefix}-light);
62
+ --#{p.$prefix}-card-bs: none;
63
+ }
64
+ }
65
+
66
+ // TODO comportement des boutons dans le footer
@@ -0,0 +1,6 @@
1
+ .btn-close {
2
+ appearance: none;
3
+ padding: 0;
4
+ border: 0;
5
+ background-color: transparent;
6
+ }
@@ -0,0 +1,46 @@
1
+ @use "sass:map";
2
+ @use "@cityway/design-tokens/primitives" as p;
3
+ @use "@cityway/design-tokens/functions" as *;
4
+
5
+ .file-to-download {
6
+
7
+ &-items {
8
+ display: flex;
9
+ flex-direction: column;
10
+ gap: size(md);
11
+ margin-bottom: 0;
12
+ }
13
+
14
+ &-link {
15
+ display: flex;
16
+ gap: size(md);
17
+ align-items: center;
18
+
19
+ padding: size(sm) size(md);
20
+ font-size: font(fs, sm);
21
+ color: var(--#{p.$prefix}-body-color);
22
+ text-decoration: none;
23
+ border-radius: var(--#{p.$prefix}-border-radius);
24
+ background-color: var(--#{p.$prefix}-base-white);
25
+ box-shadow: var(--#{p.$prefix}-shadow-default);
26
+
27
+ &:hover, &:active, &:active {
28
+ color: var(--#{p.$prefix}-body-color);
29
+ .file-to-download-name {
30
+ color: var(--#{p.$prefix}-primary);
31
+ }
32
+ }
33
+ }
34
+
35
+ &-name {
36
+ flex-grow: 1;
37
+ }
38
+
39
+ &-info {
40
+ display: flex;
41
+ gap: size(md);
42
+ align-items: center;
43
+ font-size: font(fs, xs);
44
+ color: var(--#{p.$prefix}-shadow-disabled);
45
+ }
46
+ }
@@ -0,0 +1,30 @@
1
+ @use "sass:map";
2
+ @use "@cityway/design-tokens/primitives" as p;
3
+ @use "@cityway/design-tokens/functions" as *;
4
+
5
+ .icon-notification {
6
+ &-info {
7
+ --#{p.$prefix}-icon-rounded-bg: var(--cw-info);
8
+ --#{p.$prefix}-icon-rounded-color: var(--cw-info-contrasted);
9
+ }
10
+
11
+ &-success {
12
+ --#{p.$prefix}-icon-rounded-bg: var(--cw-success);
13
+ --#{p.$prefix}-icon-rounded-color: var(--cw-success-contrasted);
14
+ }
15
+
16
+ &-warning {
17
+ --#{p.$prefix}-icon-rounded-bg: var(--cw-warning);
18
+ --#{p.$prefix}-icon-rounded-color: var(--cw-base-white);
19
+ }
20
+
21
+ &-danger {
22
+ --#{p.$prefix}-icon-rounded-bg: var(--cw-danger);
23
+ --#{p.$prefix}-icon-rounded-color: var(--cw-danger-contrasted);
24
+ }
25
+
26
+ &-careful {
27
+ --#{p.$prefix}-icon-rounded-bg: var(--cw-danger);
28
+ --#{p.$prefix}-icon-rounded-color: var(--cw-danger-contrasted);
29
+ }
30
+ }
@@ -0,0 +1,112 @@
1
+ @use "sass:map";
2
+ @use "@cityway/design-tokens/primitives" as p;
3
+ @use "@cityway/design-tokens/functions" as *;
4
+
5
+ // Default
6
+ .icon {
7
+ --#{p.$prefix}-icon-size: #{size(md)};
8
+
9
+ display: inline-flex;
10
+ justify-content: center;
11
+ align-items: center;
12
+ flex-shrink: 0;
13
+ container-type: inline-size;
14
+ width: var(--#{p.$prefix}-icon-size);
15
+ height: var(--#{p.$prefix}-icon-size);
16
+
17
+ &-span {
18
+ font-size: 83.3cqi;
19
+ }
20
+ }
21
+
22
+ // Rounded
23
+ .icon-rounded {
24
+ --#{p.$prefix}-icon-rounded-size: #{size(md)}; // Taille du rond
25
+ --#{p.$prefix}-icon-rounded-bg: var(--cw-base-white); // Couleur de fond
26
+ --#{p.$prefix}-icon-rounded-color: var(--cw-base-dark); // Couleur de l'icône
27
+
28
+ display: inline-flex;
29
+ justify-content: center;
30
+ align-items: center;
31
+ width: var(--#{p.$prefix}-icon-rounded-size);
32
+ height: var(--#{p.$prefix}-icon-rounded-size);
33
+ border-radius: 50%;
34
+ background-color: var(--#{p.$prefix}-icon-rounded-bg);
35
+ color: var(--#{p.$prefix}-icon-rounded-color);
36
+ flex-shrink: 0;
37
+ }
38
+
39
+ // MIXIN - Variantes
40
+ // ---------------------------------
41
+ // Default
42
+ @mixin icon-variants($sizes) {
43
+ @each $key, $value in $sizes {
44
+ .icon-#{$key} {
45
+ --#{p.$prefix}-icon-size: #{$value};
46
+ }
47
+ }
48
+ }
49
+
50
+ // Rounded
51
+ @mixin icon-rounded-variants($sizes, $mapping) {
52
+ @each $rounded-size, $icon-size in $mapping {
53
+ .icon-rounded-#{$rounded-size} {
54
+ --#{p.$prefix}-icon-rounded-size: #{map.get($sizes, $rounded-size)};
55
+
56
+ // L'icône interne prend automatiquement la taille mappée
57
+ .icon {
58
+ --#{p.$prefix}-icon-size: #{map.get($sizes, $icon-size)};
59
+ }
60
+ }
61
+ }
62
+ }
63
+
64
+ // Variables
65
+ // ---------------------------------
66
+ $icon: (
67
+ 5xl: size(7xl),
68
+ 4xl: size(6xl),
69
+ 3xl: size(4xl),
70
+ 2xl: size(3xl),
71
+ xl: size(2xl),
72
+ lg: 1.75rem,
73
+ md: size(xl),
74
+ sm: size(lg),
75
+ xs: size(md),
76
+ 2xs: size(sm),
77
+ 3xs: size(xs)
78
+ );
79
+
80
+ // Mapping : Taille du rond → Taille de l'icône à l'intérieur
81
+ $icon-rounded-mapping: (
82
+ 5xl: 3xl, // Rond 5xl → Icône 3xl
83
+ 4xl: 2xl, // Rond 4xl → Icône 2xl
84
+ 3xl: xl, // Rond 3xl → Icône xl
85
+ 2xl: lg, // Rond 2xl → Icône lg
86
+ xl: md, // Rond xl → Icône md
87
+ lg: sm, // Rond lg → Icône sm
88
+ md: xs, // Rond md → Icône xs
89
+ sm: 2xs, // Rond sm → Icône 2xs
90
+ 2xs: 3xs // Rond 2xs → Icône 3xs
91
+ );
92
+
93
+ // Générer toutes les variantes
94
+ // ---------------------------------
95
+ @include icon-variants($icon);
96
+ @include icon-rounded-variants($icon, $icon-rounded-mapping);
97
+
98
+ .icon-rounded {
99
+ &-light {
100
+ --#{p.$prefix}-icon-rounded-bg: var(--cw-light);
101
+ }
102
+
103
+ &-primary {
104
+ --#{p.$prefix}-icon-rounded-bg: var(--cw-primary);
105
+ --#{p.$prefix}-icon-rounded-color: var(--cw-primary-contrasted);
106
+ }
107
+
108
+ &-invert {
109
+ --#{p.$prefix}-icon-rounded-bg: var(--cw-dark);
110
+ --#{p.$prefix}-icon-rounded-color: var(--cw-dark-contrasted);
111
+ }
112
+ }
@@ -0,0 +1,60 @@
1
+ @use "sass:map";
2
+ @use "@cityway/design-tokens/primitives" as p;
3
+ @use "@cityway/design-tokens/functions" as *;
4
+
5
+ .numerical-range {
6
+ --#{p.$prefix}-range-bg: transparent;
7
+ --#{p.$prefix}-range-container-bg: var(--cw-base-white);
8
+
9
+ display: inline-flex;
10
+ align-items: center;
11
+ gap: size(md);
12
+ border-radius: border(br, round);
13
+ background-color: var(--#{p.$prefix}-range-bg);
14
+
15
+ &-large-grey,
16
+ &-small-grey,
17
+ &-default-grey {
18
+ --#{p.$prefix}-range-bg: var(--cw-light);
19
+ --#{p.$prefix}-range-container-bg: var(--cw-light);
20
+ }
21
+
22
+ &-large-grey {
23
+ .numerical-range-label {
24
+ padding-left: size(md);
25
+ }
26
+ }
27
+
28
+ &-container {
29
+ display: flex;
30
+ align-items: center;
31
+ gap: size(sm);
32
+ padding: size(2xs);
33
+ background-color: var(--#{p.$prefix}-range-container-bg);
34
+ border-radius: border(br, round);
35
+ }
36
+
37
+ &-wrapper {
38
+ flex-grow: 1;
39
+ display: flex;
40
+ align-items: center;
41
+ justify-content: center;
42
+ gap: size(2xs);
43
+ }
44
+
45
+ &-amount {
46
+ font-size: font(fs, md);
47
+ font-weight: font(fw, bold);
48
+ color: var(--#{p.$prefix}-body-color);
49
+ text-align: center;
50
+ }
51
+
52
+ &-label {
53
+ display: flex;
54
+ align-items: center;
55
+ gap: size(4xs);
56
+
57
+ font-size: font(fs, md);
58
+ color: var(--#{p.$prefix}-body-color);
59
+ }
60
+ }
@@ -0,0 +1,78 @@
1
+ @use "sass:map";
2
+ @use "@cityway/design-tokens/primitives" as p;
3
+ @use "@cityway/design-tokens/functions" as *;
4
+
5
+ .stepper {
6
+ display: flex;
7
+ justify-content: center;
8
+ overflow: hidden;
9
+
10
+ &-item {
11
+ position: relative;
12
+ display: inline-flex;
13
+ flex-direction: column;
14
+ flex: 1;
15
+ align-items: center;
16
+ font-size: font(fs, 2xs);
17
+ line-height: font(lh, 2xs);
18
+ color: var(--#{p.$prefix}-base-disabled);
19
+ text-transform: uppercase;
20
+
21
+ &::before {
22
+ content: "";
23
+ position: relative;
24
+ z-index: 2;
25
+ display: block;
26
+ width: size(md);
27
+ height: size(md);
28
+ margin-bottom: size(2xs);
29
+ border: 0.3rem solid var(--#{p.$prefix}-base-disabled);
30
+ background-color: var(--#{p.$prefix}-base-disabled);
31
+ border-radius: border(br,round);
32
+ }
33
+
34
+ &::after {
35
+ content: "";
36
+ position: absolute;
37
+ top: calc(size(md) / 2);
38
+ z-index: 1;
39
+ display: block;
40
+ width: 100%;
41
+ height: size(4xs);
42
+ background-color: var(--#{p.$prefix}-base-disabled);
43
+ transform: translate(50%, -50%);
44
+ }
45
+
46
+ &-completed {
47
+ color: var(--#{p.$prefix}-primary);
48
+
49
+ &::before {
50
+ border-color: var(--#{p.$prefix}-primary);
51
+ background-color: var(--#{p.$prefix}-primary);
52
+ }
53
+
54
+ &::after {
55
+ background-color: var(--#{p.$prefix}-primary);
56
+ }
57
+ }
58
+
59
+ &-current {
60
+ color: var(--#{p.$prefix}-primary);
61
+
62
+ &::before {
63
+ border-color: var(--#{p.$prefix}-primary);
64
+ background-color: var(--#{p.$prefix}-base-white);
65
+ }
66
+
67
+ &::after {
68
+ background-image: linear-gradient(to right, var(--#{p.$prefix}-primary), var(--#{p.$prefix}-base-disabled));
69
+ }
70
+ }
71
+
72
+ &:last-child {
73
+ &::after {
74
+ content: none;
75
+ }
76
+ }
77
+ }
78
+ }
@@ -0,0 +1,81 @@
1
+ @use "sass:map";
2
+ @use "@cityway/design-tokens/primitives" as p;
3
+ @use "@cityway/design-tokens/functions" as *;
4
+
5
+
6
+ .tab {
7
+ --#{p.$prefix}-tab-fs: #{font(fs, md)};
8
+
9
+ &-default-xl {
10
+ --#{p.$prefix}-tab-fs: #{font(fs, xl)};
11
+ }
12
+
13
+ &-items {
14
+ position: relative;
15
+ height: size(4xl);
16
+ margin: 0;
17
+ padding: 0;
18
+ list-style: none;
19
+
20
+ &::before {
21
+ content: '';
22
+ position: absolute;
23
+ bottom: 0;
24
+ display: block;
25
+ width: 100%;
26
+ height: size(3xs);
27
+ border-radius: 100rem;
28
+ background-color: var(--cw-base-white);
29
+ }
30
+ }
31
+
32
+ &-item {
33
+ flex: 1;
34
+ margin-bottom: size(3xs);
35
+ }
36
+
37
+ &-link {
38
+ position: relative;
39
+ display: flex;
40
+ align-items: center;
41
+ justify-content: center;
42
+ gap: size(2xs);
43
+ width: 100%;
44
+ height: 100%;
45
+ padding: size(2xs);
46
+ font-size: var(--#{p.$prefix}-tab-fs);
47
+ font-weight: font(fw, semibold);
48
+ border-radius: size(2xs) size(2xs) 0 0;
49
+
50
+ &.active,
51
+ &:active,
52
+ &:hover {
53
+ background-color: var(--cw-base-white);
54
+ }
55
+
56
+ &:active,
57
+ &:hover {
58
+ color: var(--cw-primary);
59
+ }
60
+
61
+ &.active {
62
+
63
+ &:active,
64
+ &:hover {
65
+ color: inherit;
66
+ }
67
+
68
+ &::after {
69
+ content: '';
70
+ position: absolute;
71
+ bottom: -(size(3xs));
72
+ z-index: 1;
73
+ display: block;
74
+ width: 100%;
75
+ height: size(3xs);
76
+ border-radius: border(br, round);
77
+ background-color: var(--cw-primary);
78
+ }
79
+ }
80
+ }
81
+ }
@@ -0,0 +1,27 @@
1
+ @use "sass:map";
2
+ @use "@cityway/design-tokens/functions" as *;
3
+
4
+ .toast {
5
+ position: fixed;
6
+ left: #{size(md)};
7
+ right: #{size(md)};
8
+ z-index: 2000; // TODO
9
+ display: flex;
10
+ flex-direction: column;
11
+ gap: #{size(md)};
12
+ max-width: 100%;
13
+
14
+ @media (min-width: 920px) {
15
+ top: #{size(md)};
16
+ left: 50%;
17
+ right: inherit;
18
+ min-width: 21.25rem;
19
+ max-width: 25rem;
20
+ transform: translateX(-50%);
21
+
22
+ &.is-absolute {
23
+ position: absolute;
24
+ top: inherit;
25
+ }
26
+ }
27
+ }
@@ -0,0 +1,46 @@
1
+ @use "sass:map";
2
+ @use "@cityway/design-tokens/primitives" as p;
3
+ @use "@cityway/design-tokens/functions" as *;
4
+ @use "button" as mixin;
5
+
6
+ // Variables
7
+ // ---------------------------------
8
+ $buttons: (
9
+ primary: (
10
+ surface: var(--cw-primary),
11
+ text: var(--cw-primary-contrasted),
12
+ border: var(--cw-primary),
13
+ surface-hover: var(--cw-primary-hover),
14
+ text-hover: var(--cw-primary-contrasted),
15
+ border-hover: var(--cw-primary-hover),
16
+ surface-disabled: var(--cw-disabled),
17
+ text-disabled: var(--cw-disabled-contrasted),
18
+ border-disabled: var(--cw-disabled),
19
+ ),
20
+ secondary: (
21
+ surface: var(--cw-primary-contrasted),
22
+ text: var(--cw-primary),
23
+ border: var(--cw-primary),
24
+ surface-hover: var(--cw-primary-contrasted),
25
+ text-hover: var(--cw-primary-hover),
26
+ border-hover: var(--cw-primary-hover),
27
+ surface-disabled: var(--cw-disabled-contrasted),
28
+ text-disabled: var(--cw-disabled),
29
+ border-disabled: var(--cw-disabled),
30
+ ),
31
+ link: (
32
+ surface: transparent,
33
+ text: var(--cw-primary),
34
+ border: transparent,
35
+ surface-hover: transparent,
36
+ text-hover: var(--cw-primary-hover),
37
+ border-hover: transparent,
38
+ surface-disabled: transparent,
39
+ text-disabled: var(--cw-disabled),
40
+ border-disabled: transparent,
41
+ ),
42
+ );
43
+
44
+ // Générer toutes les variantes
45
+ // ---------------------------------
46
+ @include mixin.button-variants($buttons);