@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,14 @@
1
+ // Import only used components
2
+
3
+ // Eternal css from lib components
4
+ //@import "ngx-toastr/toastr-bs5-alert";
5
+ @import "@ng-select/ng-select/themes/default.theme.css";
6
+
7
+ // Custom scss product
8
+ @import "components/forms-firefox";
9
+ //@import "components/ng-select";
10
+ @import "components/ngx-intl-tel-input";
11
+ //@import "components/ngx-toast";
12
+ @import "components/legend";
13
+ @import "components/pwd-policy";
14
+
@@ -0,0 +1,22 @@
1
+
2
+ @import "bootstrap/accordion";
3
+ //@import "bootstrap/alert";
4
+ //@import "bootstrap/badge";
5
+ @import "bootstrap/breadcrumb";
6
+ //@import "bootstrap/button-group";
7
+ //@import "bootstrap/buttons";
8
+ //@import "bootstrap/card";
9
+ //@import "bootstrap/close";
10
+ @import "bootstrap/dropdown";
11
+ @import "bootstrap/forms";
12
+ @import "bootstrap/input-group";
13
+ @import "bootstrap/lists";
14
+ @import "bootstrap/modal";
15
+ @import "bootstrap/pagination";
16
+ @import "bootstrap/popover";
17
+ @import "bootstrap/progress";
18
+ @import "bootstrap/reboot";
19
+ @import "bootstrap/tables";
20
+ //@import "bootstrap/tabs";
21
+ @import "bootstrap/tooltip";
22
+ @import "bootstrap/type";
@@ -0,0 +1,32 @@
1
+ //
2
+ // Base styles
3
+ //
4
+
5
+ // Dismissible alerts
6
+ //
7
+ // Expand the right padding and account for the close button's positioning.
8
+
9
+ .alert-dismissible {
10
+ // Adjust close link position
11
+ .close {
12
+ position: absolute;
13
+ top: 0;
14
+ right: 0;
15
+ padding: 0.5rem $alert-padding-x;
16
+ font-size: 2rem;
17
+ color: inherit;
18
+ }
19
+ }
20
+
21
+ @each $color, $value in $theme-colors {
22
+ .alert-#{$color} {
23
+ .alert-link {
24
+ color: inherit;
25
+ }
26
+
27
+ .btn-close {
28
+ $emphasis-color: map-get($emphasis-colors, "#{$color}");
29
+ background-image: escape-svg(url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='#{$emphasis-color}'><path d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/></svg>"))
30
+ }
31
+ }
32
+ }
@@ -0,0 +1,36 @@
1
+
2
+ // Colors
3
+ //
4
+ // Contextual variations (linked badges get darker on :hover).
5
+
6
+ .badge {
7
+ display: inline-flex;
8
+ align-items: center;
9
+ min-height: 1.25rem;
10
+ color: var(--bs-alert-color);
11
+ background-color: var(--bs-alert-bg);
12
+
13
+ .icon {
14
+ margin-right: 0.25rem;
15
+ font-size: 1rem;
16
+ }
17
+ }
18
+
19
+ @each $state in map-keys($theme-colors) {
20
+ .badge-#{$state} {
21
+ --#{$prefix}alert-color: var(--#{$prefix}#{$state}-text-emphasis);
22
+ --#{$prefix}alert-bg: var(--#{$prefix}#{$state}-bg-subtle);
23
+ }
24
+ }
25
+
26
+ .badge-light {
27
+ color: var(--bs-body-color);
28
+ border-color: var(--bs-grey3);
29
+ background-color: var(--bs-grey3);
30
+ }
31
+
32
+ .badge-dark {
33
+ color: color-contrast($dark);
34
+ background-color: var(--bs-dark);
35
+ }
36
+
@@ -0,0 +1,46 @@
1
+ .breadcrumb {
2
+ @include media-breakpoint-down(sm) {
3
+ flex-wrap: nowrap;
4
+ .optyweb {
5
+ color: var(--bs-primary);
6
+ &:hover,
7
+ &:active,
8
+ &:focus {
9
+ color: var(--bs-primary-hover);
10
+ }
11
+ }
12
+ }
13
+ }
14
+ .breadcrumb-item {
15
+ display: flex;
16
+ align-items: baseline;
17
+ color: var(--bs-grey9);
18
+
19
+ + .breadcrumb-item {
20
+ &::before {
21
+ font-family: $cw-font-transinfo;
22
+ font-size: 0.75rem;
23
+ }
24
+ }
25
+
26
+ // Breadcrumb h1 title
27
+ h1 {
28
+ display: flex;
29
+ margin: 0;
30
+ font-size: 1.125rem;
31
+ line-height: 1;
32
+ @include media-breakpoint-down(sm) {
33
+ font-size: 1rem;
34
+ }
35
+ }
36
+
37
+ // Cache tous les éléments en rwd sauf titre
38
+ @include media-breakpoint-down(sm) {
39
+ &:first-child a {
40
+ text-decoration: none;
41
+ }
42
+ &:not(:first-child):not(:last-child) {
43
+ display: none;
44
+ }
45
+ }
46
+ }
@@ -0,0 +1,107 @@
1
+ .btn-group {
2
+ .btn-secondary:not(:disabled):not(.disabled) {
3
+ &:active,
4
+ &.active {
5
+ color: color-contrast($primary);
6
+ background-color: var(--bs-primary);
7
+ }
8
+ }
9
+
10
+ .btn-form {
11
+ color: var(--bs-body-color);
12
+ border-color: $input-border-color;
13
+ &:not(:disabled):not(.disabled) {
14
+ &:active,
15
+ &.active {
16
+ background-color: var(--bs-grey4);
17
+ }
18
+ }
19
+ .bo-icon,
20
+ .optyweb {
21
+ color: var(--bs-primary);
22
+ }
23
+
24
+ .btn {
25
+ margin-bottom: 0;
26
+ }
27
+ }
28
+
29
+ .btn-secondary,
30
+ .btn-form {
31
+ &:disabled:not(.btn-link),
32
+ &.disabled {
33
+ pointer-events: none;
34
+ color: var(--bs-grey10);
35
+ border-color: $input-border-color;
36
+ background-color: $input-bg;
37
+
38
+ .optyweb {
39
+ color: var(--bs-grey10);
40
+ }
41
+ }
42
+ }
43
+ }
44
+
45
+ // button group en checkbox ou radio
46
+ .btn-group {
47
+ // Prevent double borders when buttons are next to each other
48
+ > label:first-of-type {
49
+ border-top-left-radius: $btn-border-radius !important;
50
+ border-bottom-left-radius: $btn-border-radius !important;
51
+ }
52
+
53
+ > label {
54
+ .optyweb {
55
+ color: var(--bs-primary);
56
+ }
57
+ }
58
+
59
+ input:checked + label {
60
+ &.btn-form {
61
+ background-color: var(--bs-primary);
62
+ color: color-contrast($primary);
63
+ }
64
+ &.btn-secondary:not(:disabled):not(.disabled) {
65
+ color: color-contrast($primary);
66
+ background-color: var(--bs-primary);
67
+ }
68
+ }
69
+
70
+ input:focus + label {
71
+ &.btn-form {
72
+ border-color: $input-focus-border-color;
73
+ box-shadow: $input-focus-box-shadow;
74
+ }
75
+ }
76
+
77
+ input:disabled + label {
78
+ &.btn-secondary {
79
+ pointer-events: none;
80
+ color: $btn-disabled-color;
81
+ border-color: $btn-disabled-bg;
82
+ background-color: $btn-disabled-bg;
83
+ }
84
+ &.btn-form {
85
+ pointer-events: none;
86
+ color: var(--bs-grey10);
87
+ border-color: $input-border-color;
88
+ background-color: $input-bg;
89
+
90
+ .optyweb {
91
+ color: var(--bs-grey10);
92
+ }
93
+ }
94
+ }
95
+
96
+ input:disabled:checked + label {
97
+ &.btn-form {
98
+ color: $white;
99
+ background-color: rgba-to-rgb($form-check-input-checked-bg-color, $form-check-input-disabled-opacity);
100
+ border-color: rgba-to-rgb($form-check-input-checked-bg-color, $form-check-input-disabled-opacity);
101
+
102
+ .optyweb {
103
+ color: $white;
104
+ }
105
+ }
106
+ }
107
+ }
@@ -0,0 +1,324 @@
1
+ @use "sass:map";
2
+
3
+ // Responsive des btn
4
+ .btn {
5
+ width: 100%;
6
+ display: inline-flex;
7
+ align-items: center;
8
+ justify-content: center;
9
+ @include media-breakpoint-up(sm) {
10
+ width: auto;
11
+ }
12
+ }
13
+
14
+ // btn secondary style entièrement custom custom
15
+ .btn-secondary {
16
+ @include button-variant(
17
+ $white, // bg
18
+ $primary, //border
19
+ $grey2, //hover-background
20
+ $primary-hover, //$hover-border
21
+ $grey2, // active-background
22
+ $primary-hover); // $active-border
23
+
24
+ color: var(--bs-primary);
25
+ &:hover, &:focus {
26
+ border-color: var(--bs-primary);
27
+ background-color: var(--bs-grey2);
28
+ }
29
+
30
+ &:not(:disabled):not(.disabled):active,
31
+ &:not(:disabled):not(.disabled).active {
32
+ border-color: var(--bs-primary);
33
+ }
34
+
35
+ }
36
+
37
+ // btn primary hover custom
38
+ // .btn-primary {
39
+ // &:hover, &:focus, &:active {
40
+ // background-color: var(--bs-primary-hover);
41
+ // border-color: var(--bs-primary-hover);
42
+ // }
43
+ // }
44
+
45
+ // btn danger default outline style
46
+ .btn-danger {
47
+ color: var(--bs-danger);
48
+ background-color: $white;
49
+ &:hover, &:focus, &:active {
50
+ &:hover, &:focus, &:active {
51
+ background-color: var(--bs-grey2);
52
+ border-color: var(--bs-danger-hover);
53
+ color:var(--bs-danger-hover);
54
+ }
55
+ }
56
+ }
57
+
58
+ // btn danger (action cell)
59
+ .btn-link.text-danger {
60
+ &:hover, &:focus, &:active {
61
+ color: var(--bs-danger-hover) !important;
62
+ }
63
+ }
64
+
65
+ // btn info hover custom
66
+ .btn-info {
67
+ &:hover, &:focus, &:active {
68
+ background-color: var(--bs-info-hover);
69
+ border-color: var(--bs-info-hover);
70
+ }
71
+ }
72
+
73
+ // btn warning hover custom
74
+ .btn-warning {
75
+ &:hover, &:focus, &:active {
76
+ background-color: var(--bs-warning-hover);
77
+ border-color: var(--bs-warning-hover);
78
+ color: var(--bs-body-color);
79
+ }
80
+ }
81
+
82
+ // btn success hover custom
83
+ .btn-success {
84
+ &:hover, &:focus, &:active {
85
+ background-color: var(--bs-success-hover);
86
+ border-color: var(--bs-success-hover);
87
+ }
88
+ }
89
+
90
+ // btn light hover custom
91
+ .btn-light {
92
+ &:hover, &:focus, &:active {
93
+ background-color: var(--bs-light-hover);
94
+ border-color: var(--bs-light-hover);
95
+ }
96
+ }
97
+
98
+ .modal-footer {
99
+ .btn-danger {
100
+ color: $white;
101
+ background-color: var(--bs-danger);
102
+ &:hover, &:focus, &:active {
103
+ &:hover, &:focus, &:active {
104
+ color: $white;
105
+ background-color: var(--bs-danger-hover);
106
+ border-color: var(--bs-danger-hover);
107
+ }
108
+ }
109
+ }
110
+ }
111
+
112
+ // btn large, use border-radius base instead of large
113
+ .btn-lg {
114
+ border-radius: $border-radius;
115
+ }
116
+
117
+ // possibilité d'affecter une largeur min aux bouton (input sur composant)
118
+ .btn-min-width {
119
+ min-width: $btn-min-width;
120
+ }
121
+
122
+ // Spinner button
123
+ .spinner-border {
124
+ position: relative;
125
+ pointer-events: none;
126
+ &::before {
127
+ content: "";
128
+ position: absolute;
129
+ top: 50%;
130
+ left: 50%;
131
+ display: inline-block;
132
+ width: 1.2rem;
133
+ height: 1.2rem;
134
+ margin-top: -0.6rem;
135
+ margin-left: -0.6rem;
136
+ vertical-align: text-bottom;
137
+ border-radius: 50%;
138
+ -webkit-animation: spinner-border 0.75s linear infinite;
139
+ animation: spinner-border 0.75s linear infinite;
140
+ }
141
+
142
+ @each $color, $value in $theme-colors {
143
+ &.btn-#{$color} {
144
+ color: map.get($theme-colors, "#{$color}");
145
+ &::before {
146
+ border: 0.2em solid color-contrast(map.get($theme-colors, "#{$color}"));
147
+ border-right-color: transparent;
148
+ }
149
+ }
150
+ }
151
+
152
+ &.btn-secondary {
153
+ &,
154
+ &:focus {
155
+ color: $white;
156
+ }
157
+ &::before {
158
+ border: 0.2em solid var(--bs-primary);
159
+ border-right-color: transparent;
160
+ }
161
+ &.btn-actions-on-table {
162
+ &.btn-import {
163
+ pointer-events: auto;
164
+ }
165
+ &,
166
+ &:focus {
167
+ color: lighten($body-color, 50%);
168
+ }
169
+ }
170
+ }
171
+ }
172
+ @-webkit-keyframes spinner-border {
173
+ to {
174
+ -webkit-transform: rotate(360deg);
175
+ transform: rotate(360deg);
176
+ }
177
+ }
178
+ @keyframes spinner-border {
179
+ to {
180
+ -webkit-transform: rotate(360deg);
181
+ transform: rotate(360deg);
182
+ }
183
+ }
184
+
185
+ // Import buttons
186
+ .btn-import {
187
+ &.btn-secondary {
188
+ &::before {
189
+ content: "";
190
+ position: relative;
191
+ display: inline-block;
192
+ width: 1.2rem;
193
+ height: 1.2rem;
194
+ margin-top: -0.7rem;
195
+ vertical-align: text-bottom;
196
+ border: 0.2em solid var(--bs-primary);
197
+ border-right-color: transparent;
198
+ border-radius: 50%;
199
+ -webkit-animation: spinner-border 0.75s linear infinite;
200
+ animation: spinner-border 0.75s linear infinite;
201
+ }
202
+ }
203
+ &.btn-success {
204
+ &::before {
205
+ content: "\f071";
206
+ position: relative;
207
+ top: 0.15rem;
208
+ left: -0.15rem;
209
+ font-family: "font-bo";
210
+ }
211
+ }
212
+ &.btn-warning {
213
+ &::before {
214
+ content: "\e129";
215
+ position: relative;
216
+ top: 0.15rem;
217
+ left: -0.15rem;
218
+ font-family: "optyweb";
219
+ }
220
+ }
221
+ &.btn-danger {
222
+ &::before {
223
+ content: "\e132";
224
+ position: relative;
225
+ top: 0.15rem;
226
+ left: -0.15rem;
227
+ font-family: "optyweb";
228
+ }
229
+ }
230
+ }
231
+
232
+ // Disabled buttons
233
+ // Serves on clickable elements that cannot be with point-event: none
234
+ // ex: disabled element with a tooltip on hover
235
+ .btn-disabled {
236
+ opacity: 0.65;
237
+ cursor: default !important;
238
+ &:hover, &:focus {
239
+ text-decoration: none;
240
+ }
241
+ }
242
+ // If used in table-action-cell
243
+ .table-action-cell .btn-disabled.btn-link:not(.dropdown-toggle) {
244
+ &:hover, &:focus {
245
+ text-decoration: none;
246
+ }
247
+ }
248
+
249
+ // Disabled buttons
250
+ .btn.disabled:not(.btn-link),
251
+ .btn:disabled:not(.btn-link) {
252
+ opacity: 1;
253
+ color: $btn-disabled-color;
254
+ border-color: $btn-disabled-bg;
255
+ background-color: $btn-disabled-bg;
256
+ }
257
+ .btn.disabled.btn-link,
258
+ .btn:disabled.btn-link {
259
+ color: $btn-disabled-bg !important;
260
+ opacity: 1;
261
+ }
262
+
263
+ // Btn popover
264
+ .btn-popover {
265
+ line-height: 1;
266
+ padding: 0 !important;
267
+ border-radius: 1rem; // For focus-visible
268
+ border: none;
269
+ legend &,
270
+ label & {
271
+ width: auto;
272
+ margin-top: -0.25rem;
273
+ margin-left: 0.5rem;
274
+ text-decoration: none;
275
+ }
276
+ }
277
+ .btn-popover-icon {
278
+ color: var(--bs-primary);
279
+ &:hover, &:focus, &:active {
280
+ color: var(--bs-primary-hover);
281
+ }
282
+ }
283
+
284
+ // Outline buttons
285
+ .btn-outline-primary {
286
+ background-color: $white;
287
+ }
288
+
289
+ // comme un lien
290
+ .btn-link-like {
291
+ appearance: none;
292
+ display: inline;
293
+ padding: 0;
294
+ line-height: $line-height-base;
295
+ text-align: left;;
296
+ border: 0;
297
+ }
298
+
299
+ .btn-container {
300
+ text-align: right;
301
+ .btn {
302
+ margin-bottom: 0.5rem;
303
+ margin-left: 0;
304
+ }
305
+
306
+ @include media-breakpoint-between(sm, md) {
307
+ display: flex;
308
+ .btn {
309
+ min-width: auto;
310
+ flex: 1 1 auto;
311
+ margin-left: 0.5rem;
312
+ &:first-child {
313
+ margin-left: 0;
314
+ }
315
+ }
316
+ }
317
+
318
+ @include media-breakpoint-up(md) {
319
+ .btn {
320
+ margin-bottom: 0;
321
+ margin-left: 0.5rem;
322
+ }
323
+ }
324
+ }
@@ -0,0 +1,107 @@
1
+ app-card {
2
+ display: block;
3
+ }
4
+
5
+ app-card,
6
+ .card {
7
+ border: 0;
8
+ margin-bottom: 1rem;
9
+ @include media-breakpoint-up(md) {
10
+ margin-bottom: $grid-gutter-width;
11
+ }
12
+ }
13
+
14
+ .card-header {
15
+ margin-top: 0; // Removes the default margin-top of <hN>
16
+
17
+ .card-body + & {
18
+ border-top: $card-border-width solid $card-border-color;
19
+ }
20
+ }
21
+
22
+ .card-body {
23
+ padding: $card-spacer-y $card-spacer-x;
24
+ > :last-child {
25
+ margin-bottom: 0;
26
+ }
27
+
28
+ .card-body + & {
29
+ border-top: $card-border-width solid $card-border-color;
30
+ }
31
+ }
32
+
33
+ .card-footer {
34
+ display: flex;
35
+ flex-direction: column;
36
+ justify-content: flex-end;
37
+ gap: 0.5rem;
38
+ padding: 0 $card-spacer-x $card-spacer-y;
39
+ min-height: 3.5rem;
40
+ border: 0;
41
+ @include media-breakpoint-up(sm) {
42
+ flex-direction: row;
43
+ }
44
+ }
45
+
46
+ .card {
47
+ box-shadow: $box-shadow;
48
+ }
49
+
50
+
51
+ // Grey cards in modals for description list
52
+ .custom-card-light {
53
+ margin-bottom: calc($grid-gutter-width + 0.5rem);
54
+ padding: 1rem;
55
+ background-color: var(--bs-grey1);;
56
+ border-radius: $border-radius;
57
+ h3:first-child {
58
+ margin-top: 0;
59
+ }
60
+ }
61
+
62
+
63
+ // Card avec grid présentation
64
+ .card-body-grid {
65
+ display: grid;
66
+ gap: 0 calc($grid-gutter-width * 3);
67
+ flex: 1 1 auto;
68
+ min-height: 1px;
69
+
70
+ padding: $card-spacer-y $card-spacer-x 0.25rem $card-spacer-x;
71
+
72
+ @include media-breakpoint-up(md) {
73
+ grid-template-columns: auto auto;
74
+ grid-template-rows: max-content;
75
+ }
76
+
77
+ > :last-child {
78
+ margin-bottom: 0;
79
+ }
80
+
81
+ &.card-body-grid-3-cols {
82
+
83
+ @include media-breakpoint-between(md, xl) {
84
+ grid-template-columns: auto auto;
85
+ grid-template-rows: max-content;
86
+ > div:last-child {
87
+ grid-column-start: 1;
88
+ grid-column-end: span 2;
89
+ }
90
+ }
91
+
92
+ @include media-breakpoint-up(xl) {
93
+ grid-template-columns: max-content max-content auto;
94
+ grid-template-rows: max-content;
95
+ }
96
+ }
97
+
98
+ .card-body-grid-item {
99
+ margin-bottom: $form-group-margin-bottom;
100
+ }
101
+ }
102
+
103
+ .map-within {
104
+ .card-body {
105
+ padding: 0;
106
+ }
107
+ }
@@ -0,0 +1,8 @@
1
+ .close {
2
+
3
+ &:focus,
4
+ &:focus:active {
5
+ border-radius: $border-radius;
6
+ }
7
+
8
+ }