@cityway/basic-ui 1.0.1 → 1.0.2-beta001

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 (49) hide show
  1. package/README.md +1 -2
  2. package/cityway-basic-ui-1.0.2-beta001.tgz +0 -0
  3. package/fesm2022/cityway-basic-ui.mjs +849 -194
  4. package/fesm2022/cityway-basic-ui.mjs.map +1 -1
  5. package/index.d.ts +574 -42
  6. package/lib/assets/fonts/nunito/_nunito.scss +10 -10
  7. package/lib/assets/icons/sprite.ids.txt +467 -0
  8. package/lib/assets/icons/sprite.preview.html +4966 -0
  9. package/lib/assets/icons/sprite.svg +1404 -0
  10. package/lib/assets/styles/scss/_custom-bootstrap.scss +1 -1
  11. package/lib/assets/styles/scss/bootstrap/_breadcrumb.scss +6 -6
  12. package/lib/assets/styles/scss/cw-ds/_reboot.scss +3 -11
  13. package/lib/assets/styles/scss/cw-ds/_root-bo.scss +1 -0
  14. package/lib/assets/styles/scss/cw-ds/_root-fo.scss +1 -0
  15. package/lib/assets/styles/scss/cw-ds/components/_accordion.scss +35 -0
  16. package/lib/assets/styles/scss/cw-ds/components/_alert.scss +10 -10
  17. package/lib/assets/styles/scss/cw-ds/components/_badge.scss +22 -22
  18. package/lib/assets/styles/scss/cw-ds/components/_close.scss +5 -0
  19. package/lib/assets/styles/scss/cw-ds/components/_icon-notification.scss +10 -10
  20. package/lib/assets/styles/scss/cw-ds/components/_icon.scss +35 -9
  21. package/lib/assets/styles/scss/cw-ds/components/_modal.scss +161 -0
  22. package/lib/assets/styles/scss/cw-ds/components/_numerical-range.scss +4 -4
  23. package/lib/assets/styles/scss/cw-ds/components/button/_button-bo-variant.scss +87 -21
  24. package/lib/assets/styles/scss/cw-ds/components/button/_button-fo-variant.scss +21 -87
  25. package/lib/assets/styles/scss/cw-ds/components/button/_button.scss +11 -1
  26. package/lib/assets/styles/scss/cw-ds/components/tab/_tab-bo.scss +96 -0
  27. package/lib/assets/styles/scss/cw-ds/components/{_tab.scss → tab/_tab-fo.scss} +6 -4
  28. package/lib/assets/styles/scss/cw-ds/helpers/_skeleton.scss +67 -0
  29. package/lib/assets/styles/scss/cw-ds/helpers/_spinner.scss +15 -9
  30. package/lib/assets/styles/scss/cw-ds/mixins/_type.scss +17 -0
  31. package/lib/assets/styles/scss/cw-ds/utilities/_breakpoints.scss +30 -0
  32. package/lib/assets/styles/scss/cw-ds/utilities/_flex.scss +4 -0
  33. package/lib/assets/styles/scss/cw-ds/utilities/_grid.scss +65 -0
  34. package/lib/assets/styles/scss/cw-ds/utilities/type/_type-bo.scss +40 -0
  35. package/lib/assets/styles/scss/cw-ds/utilities/type/_type-fo.scss +1 -0
  36. package/lib/assets/styles/scss/cw-ds/utilities/type/_type.scss +18 -0
  37. package/lib/assets/styles/scss/styles-bo.scss +18 -10
  38. package/lib/assets/styles/scss/styles-fo.scss +18 -10
  39. package/package.json +3 -4
  40. package/styles/styles-bo.min.css +5 -0
  41. package/styles/styles-bo.min.css.map +1 -0
  42. package/styles/styles-fo.min.css +5 -0
  43. package/styles/styles-fo.min.css.map +1 -0
  44. package/cityway-basic-ui-1.0.1.tgz +0 -0
  45. package/lib/assets/styles/scss/cw-ds/utilities/_type.scss +0 -3
  46. package/styles-bo.min.css +0 -5
  47. package/styles-bo.min.css.map +0 -1
  48. package/styles-fo.min.css +0 -5
  49. package/styles-fo.min.css.map +0 -1
@@ -7,104 +7,38 @@
7
7
  // ---------------------------------
8
8
  $buttons: (
9
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),
10
+ surface: var(--#{p.$prefix}-primary),
11
+ text: var(--#{p.$prefix}-primary-contrasted),
12
+ border: var(--#{p.$prefix}-primary),
13
+ surface-hover: var(--#{p.$prefix}-primary-hover),
14
+ text-hover: var(--#{p.$prefix}-primary-contrasted),
15
+ border-hover: var(--#{p.$prefix}-primary-hover),
16
+ surface-disabled: var(--#{p.$prefix}-disabled),
17
+ text-disabled: var(--#{p.$prefix}-disabled-contrasted),
18
+ border-disabled: var(--#{p.$prefix}-disabled),
19
19
  ),
20
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),
21
+ surface: var(--#{p.$prefix}-primary-contrasted),
22
+ text: var(--#{p.$prefix}-primary),
23
+ border: var(--#{p.$prefix}-primary),
24
+ surface-hover: var(--#{p.$prefix}-primary-contrasted),
25
+ text-hover: var(--#{p.$prefix}-primary-hover),
26
+ border-hover: var(--#{p.$prefix}-primary-hover),
27
+ surface-disabled: var(--#{p.$prefix}-disabled-contrasted),
28
+ text-disabled: var(--#{p.$prefix}-disabled),
29
+ border-disabled: var(--#{p.$prefix}-disabled),
30
30
  ),
31
31
  link: (
32
32
  surface: transparent,
33
- text: var(--cw-primary),
33
+ text: var(--#{p.$prefix}-primary),
34
34
  border: transparent,
35
35
  surface-hover: transparent,
36
- text-hover: var(--cw-primary-hover),
36
+ text-hover: var(--#{p.$prefix}-primary-hover),
37
37
  border-hover: transparent,
38
38
  surface-disabled: transparent,
39
- text-disabled: var(--cw-disabled),
39
+ text-disabled: var(--#{p.$prefix}-disabled),
40
40
  border-disabled: transparent,
41
41
  ),
42
- info: (
43
- surface: var(--cw-info),
44
- text: var(--cw-info-contrasted),
45
- border: var(--cw-info),
46
- surface-hover: var(--cw-info-hover),
47
- text-hover: var(--cw-info-contrasted),
48
- border-hover: var(--cw-info-hover),
49
- surface-disabled: var(--cw-disabled),
50
- text-disabled: var(--cw-disabled-contrasted),
51
- border-disabled: var(--cw-disabled),
52
- ),
53
- success: (
54
- surface: var(--cw-success),
55
- text: var(--cw-success-contrasted),
56
- border: var(--cw-success),
57
- surface-hover: var(--cw-success-hover),
58
- text-hover: var(--cw-success-contrasted),
59
- border-hover: var(--cw-success-hover),
60
- surface-disabled: var(--cw-disabled),
61
- text-disabled: var(--cw-disabled-contrasted),
62
- border-disabled: var(--cw-disabled),
63
- ),
64
- warning: (
65
- surface: var(--cw-warning),
66
- text: var(--cw-warning-contrasted),
67
- border: var(--cw-warning),
68
- surface-hover: var(--cw-warning-hover),
69
- text-hover: var(--cw-warning-contrasted),
70
- border-hover: var(--cw-warning-hover),
71
- surface-disabled: var(--cw-disabled),
72
- text-disabled: var(--cw-disabled-contrasted),
73
- border-disabled: var(--cw-disabled),
74
- ),
75
- danger: (
76
- surface: var(--cw-danger),
77
- text: var(--cw-danger-contrasted),
78
- border: var(--cw-danger),
79
- surface-hover: var(--cw-danger-hover),
80
- text-hover: var(--cw-danger-contrasted),
81
- border-hover: var(--cw-danger-hover),
82
- surface-disabled: var(--cw-disabled),
83
- text-disabled: var(--cw-disabled-contrasted),
84
- border-disabled: var(--cw-disabled),
85
- ),
86
- danger-outline: (
87
- surface: var(--cw-danger-contrasted),
88
- text: var(--cw-danger),
89
- border: var(--cw-danger),
90
- surface-hover: var(--cw-danger-contrasted),
91
- text-hover: var(--cw-danger-hover),
92
- border-hover: var(--cw-danger-hover),
93
- surface-disabled: var(--cw-disabled-contrasted),
94
- text-disabled: var(--cw-disabled),
95
- border-disabled: var(--cw-disabled),
96
- ),
97
- light: (
98
- surface: var(--cw-light),
99
- text: var(--cw-light-contrasted),
100
- border: var(--cw-light),
101
- surface-hover: var(--cw-light-hover),
102
- text-hover: var(--cw-light-contrasted),
103
- border-hover: var(--cw-light-hover),
104
- surface-disabled: var(--cw-disabled),
105
- text-disabled: var(--cw-disabled-contrasted),
106
- border-disabled: var(--cw-disabled),
107
- ),
108
42
  );
109
43
 
110
44
  // Générer toutes les variantes
@@ -5,17 +5,23 @@
5
5
  .btn {
6
6
  --#{p.$prefix}-btn-padding-x: #{size(2xl)};
7
7
  --#{p.$prefix}-btn-padding-y: #{size(sm)};
8
- --#{p.$prefix}-btn-color: #{color(base, "dark")};
8
+ --#{p.$prefix}-btn-min-width: 17rem;
9
+
9
10
  --#{p.$prefix}-btn-bg: #{color(base, "white")};
11
+ --#{p.$prefix}-btn-color: #{color(base, "dark")};
12
+
10
13
  --#{p.$prefix}-btn-fs: #{font(fs, md)};
11
14
  --#{p.$prefix}-btn-lh: #{font(lh, md)};
12
15
  --#{p.$prefix}-btn-fw: #{font(fw, semibold)};
16
+
13
17
  --#{p.$prefix}-btn-border-color: #{color(base, "white")};
14
18
  --#{p.$prefix}-btn-border-width: #{size(5xs)};
15
19
  --#{p.$prefix}-btn-br: var(--#{p.$prefix}-border-radius-input);
20
+
16
21
  --#{p.$prefix}-btn-hover-color: #{color(base, "dark")};
17
22
  --#{p.$prefix}-btn-hover-bg: #{color(base, "white")};
18
23
  --#{p.$prefix}-btn-hover-border-color: #{color(base, "white")};
24
+
19
25
  --#{p.$prefix}-btn-disabled-color: #{color(base, "white")};
20
26
  --#{p.$prefix}-btn-disabled-bg: #{color("grey", 700)};
21
27
  --#{p.$prefix}-btn-disabled-border-color: #{color("grey", 700)};
@@ -50,6 +56,10 @@
50
56
  border-color: var(--#{p.$prefix}-btn-disabled-bg);
51
57
  }
52
58
 
59
+ &.btn-min-width {
60
+ min-width: var(--#{p.$prefix}-btn-min-width);
61
+ }
62
+
53
63
  &-link {
54
64
  text-decoration: underline;
55
65
  &:hover, &:active {
@@ -0,0 +1,96 @@
1
+ @use "sass:map";
2
+ @use "@cityway/design-tokens/primitives" as p;
3
+ @use "@cityway/design-tokens/functions" as *;
4
+
5
+ .tab {
6
+ --#{p.$prefix}-tab-padding: #{size(sm)} #{size(lg)};
7
+ --#{p.$prefix}-tab-bg: var(--#{p.$prefix}-base-white);
8
+ --#{p.$prefix}-tab-fs: #{font(fs, sm)};
9
+
10
+ h2,.h2 {
11
+ margin: 0;
12
+ padding: var(--#{p.$prefix}-tab-padding);
13
+ border-bottom: 1px solid #{color('grey', 200)};
14
+ }
15
+
16
+ .tab-items {
17
+ list-style: none;
18
+ margin: 0;
19
+ padding: #{size(2xs)} 0;
20
+ }
21
+
22
+ .tab-link {
23
+ padding: var(--#{p.$prefix}-tab-padding);
24
+ color: var(--#{p.$prefix}-primary);
25
+ font-size: var(--#{p.$prefix}-tab-fs);
26
+ font-weight: font(fw, semibold);
27
+ text-decoration: none;
28
+ border: 0;
29
+
30
+ &:hover,
31
+ &:active {
32
+ color: var(--#{p.$prefix}-primary-hover);
33
+ }
34
+
35
+ &.active {
36
+ color: var(--#{p.$prefix}-body-color);
37
+
38
+ &:hover,
39
+ &:active {
40
+ color: inherit;
41
+ }
42
+ }
43
+ }
44
+ }
45
+
46
+ .tab-card {
47
+ @extend .tab;
48
+
49
+ --#{p.$prefix}-tab-br: #{border(br, xs)};
50
+ --#{p.$prefix}-tab-bs: #{border(bs, md)};
51
+
52
+ margin-bottom: size(lg);
53
+ border-radius: var(--#{p.$prefix}-tab-br);
54
+ box-shadow: var(--#{p.$prefix}-tab-bs);
55
+ background-color: var(--#{p.$prefix}-tab-bg);
56
+
57
+ .tab-items {
58
+ gap: size(md);
59
+ }
60
+ }
61
+
62
+ .tab-basic {
63
+ @extend .tab;
64
+
65
+ --#{p.$prefix}-tab-br: #{border(br, xs)} #{border(br, xs)} 0 0;
66
+ --#{p.$prefix}-tab-bs: 0 #{size(md)} 0 #fff,
67
+ #{border(bs, md)};
68
+
69
+ .tab-items {
70
+ gap: size(lg);
71
+ }
72
+
73
+ .tab-link {
74
+ border-radius: 0;
75
+
76
+ &.active {
77
+ border-radius: var(--#{p.$prefix}-tab-br);
78
+ box-shadow: var(--#{p.$prefix}-tab-bs);
79
+ background-color: var(--#{p.$prefix}-tab-bg);
80
+ }
81
+ }
82
+ }
83
+
84
+ .tab-content-basic {
85
+ --#{p.$prefix}-tab-content-bg: var(--#{p.$prefix}-base-white);
86
+ --#{p.$prefix}-tab-content-br: #{border(br, md)};
87
+ --#{p.$prefix}-tab-content-bs: #{border(bs, md)};
88
+ --#{p.$prefix}-tab-content-padding-y: #{size(md)};
89
+ --#{p.$prefix}-tab-content-padding-x: #{size(md)};
90
+
91
+ padding: var(--#{p.$prefix}-tab-content-padding-y) var(--#{p.$prefix}-tab-content-padding-x);
92
+
93
+ border-radius: var(--#{p.$prefix}-tab-content-br);
94
+ box-shadow: var(--#{p.$prefix}-tab-content-bs);
95
+ background-color: var(--#{p.$prefix}-tab-content-bg);
96
+ }
@@ -6,6 +6,8 @@
6
6
  .tab {
7
7
  --#{p.$prefix}-tab-fs: #{font(fs, md)};
8
8
 
9
+ margin-bottom: size(xl);
10
+
9
11
  &-default-xl {
10
12
  --#{p.$prefix}-tab-fs: #{font(fs, xl)};
11
13
  }
@@ -25,7 +27,7 @@
25
27
  width: 100%;
26
28
  height: size(3xs);
27
29
  border-radius: 100rem;
28
- background-color: var(--cw-base-white);
30
+ background-color: var(--#{p.$prefix}-base-white);
29
31
  }
30
32
  }
31
33
 
@@ -50,12 +52,12 @@
50
52
  &.active,
51
53
  &:active,
52
54
  &:hover {
53
- background-color: var(--cw-base-white);
55
+ background-color: var(--#{p.$prefix}-base-white);
54
56
  }
55
57
 
56
58
  &:active,
57
59
  &:hover {
58
- color: var(--cw-primary);
60
+ color: var(--#{p.$prefix}-primary);
59
61
  }
60
62
 
61
63
  &.active {
@@ -74,7 +76,7 @@
74
76
  width: 100%;
75
77
  height: size(3xs);
76
78
  border-radius: border(br, round);
77
- background-color: var(--cw-primary);
79
+ background-color: var(--#{p.$prefix}-primary);
78
80
  }
79
81
  }
80
82
  }
@@ -0,0 +1,67 @@
1
+ @use "sass:map";
2
+ @use "@cityway/design-tokens/primitives" as p;
3
+ @use "@cityway/design-tokens/functions" as *;
4
+
5
+ @keyframes sk-shimmer {
6
+ 100% {
7
+ transform: translateX(100%);
8
+ }
9
+ }
10
+
11
+ .skeleton {
12
+ display: block;
13
+ position: relative;
14
+ overflow: hidden;
15
+ max-width: 50%;
16
+ min-height: 16px;
17
+
18
+ background-color: #e8e8e8 !important;
19
+
20
+ /* Masquer le contenu sans casser le layout */
21
+ color: transparent !important;
22
+ -webkit-text-fill-color: transparent !important;
23
+ pointer-events: none;
24
+ user-select: none;
25
+
26
+ /* Cacher les enfants (textes, icônes…) */
27
+ * {
28
+ visibility: hidden !important;
29
+ }
30
+
31
+ /* Cacher les images sans les retirer du flux */
32
+ img,
33
+ picture,
34
+ svg {
35
+ opacity: 0 !important;
36
+ }
37
+
38
+ &::after {
39
+ content: "";
40
+ position: absolute;
41
+ inset: 0;
42
+
43
+ background: linear-gradient(90deg,
44
+ transparent,
45
+ rgba(255, 255, 255, 0.6),
46
+ transparent);
47
+
48
+ transform: translateX(-100%);
49
+ animation: sk-shimmer 1.4s infinite;
50
+ }
51
+
52
+ &.btn,
53
+ &.badge {
54
+ display: inline-flex;
55
+ max-width: 100%;
56
+ min-width: 5rem;
57
+ padding: 0;
58
+ }
59
+
60
+ &.btn {
61
+ min-width: 7rem;
62
+ }
63
+
64
+ &.form-control {
65
+ border: 0;
66
+ }
67
+ }
@@ -3,17 +3,17 @@
3
3
  @use "@cityway/design-tokens/functions" as *;
4
4
 
5
5
  .spinner-border {
6
- --#{p.$prefix}spinner-width: #{size(3xl)};
7
- --#{p.$prefix}spinner-height: #{size(3xl)};
8
- --#{p.$prefix}spinner-border-width: #{size(4xs)};
6
+ --#{p.$prefix}-spinner-width: #{size(3xl)};
7
+ --#{p.$prefix}-spinner-height: #{size(3xl)};
8
+ --#{p.$prefix}-spinner-border-width: #{size(4xs)};
9
9
 
10
10
  display: inline-block;
11
11
  flex-shrink: 0;
12
- width: var(--#{p.$prefix}spinner-width);
13
- height: var(--#{p.$prefix}spinner-height);
12
+ width: var(--#{p.$prefix}-spinner-width);
13
+ height: var(--#{p.$prefix}-spinner-height);
14
14
  vertical-align: -0.125em;
15
15
 
16
- border: var(--#{p.$prefix}spinner-border-width) solid currentcolor;
16
+ border: var(--#{p.$prefix}-spinner-border-width) solid var(--#{p.$prefix}-primary);
17
17
  border-right-color: transparent;
18
18
  border-radius: 50%;
19
19
  animation: 0.75s linear infinite spinner-border;
@@ -24,7 +24,13 @@
24
24
  }
25
25
 
26
26
  .spinner-border-sm {
27
- --#{p.$prefix}spinner-width: #{size(lg)};
28
- --#{p.$prefix}spinner-height: #{size(lg)};
29
- --#{p.$prefix}spinner-border-width: 0.188rem;
27
+ --#{p.$prefix}-spinner-width: #{size(lg)};
28
+ --#{p.$prefix}-spinner-height: #{size(lg)};
29
+ --#{p.$prefix}-spinner-border-width: 0.188rem;
30
+ }
31
+
32
+ .spinner-border-lg {
33
+ --#{p.$prefix}-spinner-width: #{size(7xl)};
34
+ --#{p.$prefix}-spinner-height: #{size(7xl)};
35
+ --#{p.$prefix}-spinner-border-width: 0.5rem;
30
36
  }
@@ -24,4 +24,21 @@
24
24
  font-weight: font(fw, $key);
25
25
  }
26
26
  }
27
+
28
+ // Font color (text)
29
+ $text-colors: (
30
+ info: info,
31
+ success: success,
32
+ warning: warning,
33
+ danger: danger,
34
+ primary: primary,
35
+ secondary: secondary,
36
+ light: disabled
37
+ );
38
+
39
+ @each $key, $value in $text-colors {
40
+ .text-#{$key} {
41
+ color: var(--#{p.$prefix}-#{$value});
42
+ }
43
+ }
27
44
  }
@@ -0,0 +1,30 @@
1
+
2
+ @use "sass:map";
3
+ @use "@cityway/design-tokens/primitives" as p;
4
+
5
+ @mixin media-breakpoint-up($name) {
6
+ $min: map.get(p.$grid, "breakpoints", $name);
7
+
8
+ @if $min and $min != 0 {
9
+ @media (min-width: $min) {
10
+ @content;
11
+ }
12
+ } @else if $min == 0 {
13
+ // Pour 'xs', on n'enveloppe pas dans une media query (Mobile First)
14
+ @content;
15
+ } @else {
16
+ @warn "Le breakpoint '#{$name}' n'existe pas dans p.$grid.";
17
+ }
18
+ }
19
+
20
+ @mixin media-breakpoint-down($name) {
21
+ $breakpoint-value: map.get(p.$grid, "breakpoints", $name);
22
+ @if $breakpoint-value and $breakpoint-value != 0 {
23
+ // On retire 0.02px pour éviter les conflits de précision sur les écrans Retina
24
+ @media (max-width: ($breakpoint-value - 0.02px)) {
25
+ @content;
26
+ }
27
+ } @else {
28
+ @warn "Le breakpoint '#{$name}' n'est pas valide pour un down (ou est à 0).";
29
+ }
30
+ }
@@ -7,6 +7,10 @@
7
7
  display: flex;
8
8
  }
9
9
 
10
+ .d-flex-h {
11
+ align-items: center;
12
+ }
13
+
10
14
  .d-flex-v {
11
15
  flex-direction: column;
12
16
  }
@@ -0,0 +1,65 @@
1
+ @use "sass:map";
2
+ @use "@cityway/design-tokens/primitives" as p;
3
+
4
+ // --- Mixins de Breakpoints ---
5
+ @mixin media-breakpoint-up($name) {
6
+ $min: map.get(p.$grid, "breakpoints", $name);
7
+ @if $min and $min != 0 {
8
+ @media (min-width: $min) { @content; }
9
+ } @else {
10
+ @content;
11
+ }
12
+ }
13
+
14
+ // --- Container ---
15
+ .container, .container-fluid {
16
+ width: 100%;
17
+ margin-right: auto;
18
+ margin-left: auto;
19
+ // Utilise la gutter de ta map colonnes
20
+ padding-right: var(--#{p.$prefix}-columns-gutter);
21
+ padding-left: var(--#{p.$prefix}-columns-gutter);
22
+ }
23
+
24
+ .container {
25
+ width: 100%;
26
+ margin-inline: auto;
27
+ padding-inline: var(--#{p.$prefix}-columns-gutter);
28
+
29
+ @each $bp, $value in map.get(p.$grid, "breakpoints") {
30
+ @if $value > 0 {
31
+ @include media-breakpoint-up($bp) {
32
+ max-width: calc(#{$value} - (var(--#{p.$prefix}-columns-gutter) * 2));
33
+ }
34
+ }
35
+ }
36
+ }
37
+
38
+ // --- Row & Columns (Grid) ---
39
+ .row {
40
+ display: grid;
41
+ grid-template-columns: repeat(var(--#{p.$prefix}-columns-number), 1fr);
42
+ gap: var(--#{p.$prefix}-columns-gutter);
43
+ }
44
+
45
+ [class^="col-"] {
46
+ grid-column: span var(--#{p.$prefix}-columns-number);
47
+ }
48
+
49
+ // --- Générateur de colonnes et offsets ---
50
+ @each $name, $width in map.get(p.$grid, "breakpoints") {
51
+ @include media-breakpoint-up($name) {
52
+ @for $i from 1 through map.get(p.$grid, "columns", "number") {
53
+ .col-#{$name}-#{$i} {
54
+ grid-column: span #{$i};
55
+ }
56
+ .offset-#{$name}-#{$i} {
57
+ grid-column-start: #{$i + 1};
58
+ }
59
+ }
60
+ // Reset offset
61
+ .offset-#{$name}-0 {
62
+ grid-column-start: auto;
63
+ }
64
+ }
65
+ }
@@ -0,0 +1,40 @@
1
+ @use "@cityway/design-tokens/primitives" as p;
2
+ @use "@cityway/design-tokens/functions" as *;
3
+ @use "type" as mixin;
4
+
5
+ // Variables
6
+ // ---------------------------------
7
+ $heading: (
8
+ h1: (
9
+ ff: var(--#{p.$prefix}-body-ff-heading),
10
+ fw: font(fw, normal),
11
+ fs: font(fs, xl),
12
+ lh: font(lh, xl),
13
+ color: var(--#{p.$prefix}-body-color)
14
+ ),
15
+ h2: (
16
+ ff: var(--#{p.$prefix}-body-ff-heading),
17
+ fw: font(fw, normal),
18
+ fs: font(fs, xl),
19
+ lh: font(lh, xl),
20
+ color: var(--#{p.$prefix}-body-color)
21
+ ),
22
+ h3: (
23
+ ff: var(--#{p.$prefix}-body-ff-heading),
24
+ fw: font(fw, normal),
25
+ fs: font(fs, lg),
26
+ lh: font(lh, lg),
27
+ color: var(--#{p.$prefix}-base-disabled)
28
+ ),
29
+ h4: (
30
+ ff: var(--#{p.$prefix}-body-ff-heading),
31
+ fw: font(fw, bold),
32
+ fs: font(fs, md),
33
+ lh: font(lh, md),
34
+ color: var(--#{p.$prefix}-body-color)
35
+ )
36
+ );
37
+
38
+ // Générer toutes les variantes
39
+ // ---------------------------------
40
+ @include mixin.heading-variants($heading);
@@ -0,0 +1,18 @@
1
+ @use "sass:map";
2
+ @use "../../mixins/type" as *;
3
+
4
+ @include generate-type-utilities();
5
+
6
+ // MIXIN - Variantes
7
+ // ---------------------------------
8
+ @mixin heading-variants($variants) {
9
+ @each $tag, $props in $variants {
10
+ #{$tag}, .#{$tag} {
11
+ font-family: #{map.get($props, ff)};
12
+ font-weight: #{map.get($props, fw)};
13
+ font-size: #{map.get($props, fs)};
14
+ line-height: #{map.get($props, lh)};
15
+ color: #{map.get($props, color)};
16
+ }
17
+ }
18
+ }
@@ -1,18 +1,13 @@
1
1
  @use "cw-ds/reboot";
2
2
  @use "cw-ds/root-bo";
3
3
 
4
- // Utilities
5
- @use "cw-ds/utilities/flex";
6
- @use "cw-ds/utilities/spacing";
7
- @use "cw-ds/utilities/type";
8
- @use "cw-ds/utilities/alignment";
9
-
10
4
  // Helpers
11
5
  @use "cw-ds/helpers/visually-hidden";
12
6
  @use "cw-ds/helpers/stretched-link";
13
7
  @use "cw-ds/helpers/spinner";
14
8
 
15
9
  // Components
10
+ @use "cw-ds/components/accordion";
16
11
  @use "cw-ds/components/button/button";
17
12
  @use "cw-ds/components/button/button-bo-variant";
18
13
  @use "cw-ds/components/badge";
@@ -23,10 +18,23 @@
23
18
  @use "cw-ds/components/close";
24
19
  @use "cw-ds/components/btn-collapse";
25
20
  @use "cw-ds/components/card";
26
- @use "cw-ds/components/tab";
21
+ @use "cw-ds/components/tab/tab-bo";
27
22
  @use "cw-ds/components/stepper";
28
23
  @use "cw-ds/components/file-to-download";
29
24
  @use "cw-ds/components/numerical-range";
25
+ @use "cw-ds/components/modal";
26
+
27
+ // Utilities
28
+ @use "cw-ds/utilities/breakpoints";
29
+ @use "cw-ds/utilities/grid";
30
+ @use "cw-ds/utilities/flex";
31
+ @use "cw-ds/utilities/spacing";
32
+ @use "cw-ds/utilities/type/type";
33
+ @use "cw-ds/utilities/type/type-bo";
34
+ @use "cw-ds/utilities/alignment";
35
+
36
+ // En surcharge
37
+ @use "cw-ds/helpers/skeleton";
30
38
 
31
39
 
32
40
  //## Import des variables de couleurs
@@ -75,7 +83,7 @@
75
83
  @import "bootstrap/scss/list-group";
76
84
  //@import "bootstrap/scss/close";
77
85
  //@import "bootstrap/scss/toasts";
78
- @import "bootstrap/scss/modal";
86
+ //@import "bootstrap/scss/modal";
79
87
  @import "bootstrap/scss/tooltip";
80
88
  @import "bootstrap/scss/popover";
81
89
  //@import "bootstrap/scss/carousel";
@@ -100,8 +108,8 @@
100
108
  //## Import des fonts
101
109
  //--------------------------------------------------------
102
110
  @import "../../fonts/nunito/nunito";
103
- @import "../../fonts/optyweb/optyweb";
104
- @import "../../fonts/bo/bo";
111
+ // @import "../../fonts/optyweb/optyweb";
112
+ // @import "../../fonts/bo/bo";
105
113
 
106
114
 
107
115
  //## Import styles