@cityway/bo-ui 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (112) hide show
  1. package/README.md +75 -0
  2. package/cityway-bo-ui-1.0.0.tgz +0 -0
  3. package/fesm2022/cityway-bo-ui.mjs +1598 -0
  4. package/fesm2022/cityway-bo-ui.mjs.map +1 -0
  5. package/index.d.ts +509 -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 +15 -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-regular.woff +0 -0
  16. package/lib/assets/fonts/nunito/nunito-regular.woff2 +0 -0
  17. package/lib/assets/fonts/nunito/nunito-semi-bold.woff +0 -0
  18. package/lib/assets/fonts/nunito/nunito-semi-bold.woff2 +0 -0
  19. package/lib/assets/fonts/optyweb/_variables.scss +336 -0
  20. package/lib/assets/fonts/optyweb/optyweb.scss +358 -0
  21. package/lib/assets/fonts/optyweb/optyweb.woff +0 -0
  22. package/lib/assets/fonts/optyweb/optyweb.woff2 +0 -0
  23. package/lib/assets/i18n/common.en.json +247 -0
  24. package/lib/assets/i18n/common.fr.json +241 -0
  25. package/lib/assets/i18n/label.en.json +29 -0
  26. package/lib/assets/i18n/label.fr.json +29 -0
  27. package/lib/assets/images/common/bg-loader.svg +3 -0
  28. package/lib/assets/images/common/bg-menu.svg +6 -0
  29. package/lib/assets/images/common/bg-round.svg +3 -0
  30. package/lib/assets/images/common/check-mark.svg +3 -0
  31. package/lib/assets/images/common/loader.svg +3 -0
  32. package/lib/assets/images/common/logo-en-bw.svg +7 -0
  33. package/lib/assets/images/common/logo-en.svg +8 -0
  34. package/lib/assets/images/common/logo-fr-bw.svg +4 -0
  35. package/lib/assets/images/common/logo-fr.svg +8 -0
  36. package/lib/assets/images/favicon/android-chrome-192x192.png +0 -0
  37. package/lib/assets/images/favicon/android-chrome-512x512.png +0 -0
  38. package/lib/assets/images/favicon/apple-touch-icon.png +0 -0
  39. package/lib/assets/images/favicon/favicon-16x16.png +0 -0
  40. package/lib/assets/images/favicon/favicon-32x32.png +0 -0
  41. package/lib/assets/images/favicon/favicon-96x96.png +0 -0
  42. package/lib/assets/images/favicon/favicon.ico +0 -0
  43. package/lib/assets/images/favicon/site.webmanifest +19 -0
  44. package/lib/assets/images/icon/referential-icon.svg +1 -0
  45. package/lib/assets/images/login/login-bg.jpg +0 -0
  46. package/lib/assets/images/login/logo-cityway-baseline.svg +16 -0
  47. package/lib/assets/images/toast/warning.svg +3 -0
  48. package/lib/assets/styles/scss/_components.scss +23 -0
  49. package/lib/assets/styles/scss/_core.scss +5 -0
  50. package/lib/assets/styles/scss/_custom-bootstrap.scss +22 -0
  51. package/lib/assets/styles/scss/bootstrap/_accordion.scss +1 -0
  52. package/lib/assets/styles/scss/bootstrap/_alert.scss +32 -0
  53. package/lib/assets/styles/scss/bootstrap/_badge.scss +36 -0
  54. package/lib/assets/styles/scss/bootstrap/_breadcrumb.scss +46 -0
  55. package/lib/assets/styles/scss/bootstrap/_button-group.scss +107 -0
  56. package/lib/assets/styles/scss/bootstrap/_buttons.scss +324 -0
  57. package/lib/assets/styles/scss/bootstrap/_card.scss +107 -0
  58. package/lib/assets/styles/scss/bootstrap/_close.scss +8 -0
  59. package/lib/assets/styles/scss/bootstrap/_dropdown.scss +53 -0
  60. package/lib/assets/styles/scss/bootstrap/_forms.scss +259 -0
  61. package/lib/assets/styles/scss/bootstrap/_input-group.scss +61 -0
  62. package/lib/assets/styles/scss/bootstrap/_lists.scss +30 -0
  63. package/lib/assets/styles/scss/bootstrap/_modal.scss +152 -0
  64. package/lib/assets/styles/scss/bootstrap/_pagination.scss +21 -0
  65. package/lib/assets/styles/scss/bootstrap/_popover.scss +5 -0
  66. package/lib/assets/styles/scss/bootstrap/_progress.scss +6 -0
  67. package/lib/assets/styles/scss/bootstrap/_reboot.scss +5 -0
  68. package/lib/assets/styles/scss/bootstrap/_tables.scss +155 -0
  69. package/lib/assets/styles/scss/bootstrap/_tabs.scss +71 -0
  70. package/lib/assets/styles/scss/bootstrap/_tooltip.scss +3 -0
  71. package/lib/assets/styles/scss/bootstrap/_type.scss +55 -0
  72. package/lib/assets/styles/scss/components/_forms-firefox.scss +17 -0
  73. package/lib/assets/styles/scss/components/_leaflet.scss +41 -0
  74. package/lib/assets/styles/scss/components/_legend.scss +36 -0
  75. package/lib/assets/styles/scss/components/_ng-select.scss +148 -0
  76. package/lib/assets/styles/scss/components/_ng2-dragula.scss +36 -0
  77. package/lib/assets/styles/scss/components/_ng2-validation.scss +39 -0
  78. package/lib/assets/styles/scss/components/_ng5-slider.scss +28 -0
  79. package/lib/assets/styles/scss/components/_ngb-datepicker.scss +165 -0
  80. package/lib/assets/styles/scss/components/_ngb-timepicker.scss +19 -0
  81. package/lib/assets/styles/scss/components/_ngx-chips.scss +102 -0
  82. package/lib/assets/styles/scss/components/_ngx-editor.scss +10 -0
  83. package/lib/assets/styles/scss/components/_ngx-file-drop.scss +15 -0
  84. package/lib/assets/styles/scss/components/_ngx-intl-tel-input.scss +21 -0
  85. package/lib/assets/styles/scss/components/_ngx-slider.scss +34 -0
  86. package/lib/assets/styles/scss/components/_ngx-toast.scss +74 -0
  87. package/lib/assets/styles/scss/components/_pwd-policy.scss +18 -0
  88. package/lib/assets/styles/scss/components/_table.scss +8 -0
  89. package/lib/assets/styles/scss/components/_vis.scss +50 -0
  90. package/lib/assets/styles/scss/components/_wizard-stepper.scss +82 -0
  91. package/lib/assets/styles/scss/components/table/_table-action.scss +77 -0
  92. package/lib/assets/styles/scss/components/table/_table-bg-cell.scss +6 -0
  93. package/lib/assets/styles/scss/components/table/_table-double-scroll.scss +38 -0
  94. package/lib/assets/styles/scss/components/table/_table-filter.scss +128 -0
  95. package/lib/assets/styles/scss/components/table/_table-pagination.scss +34 -0
  96. package/lib/assets/styles/scss/components/table/_table-popover.scss +39 -0
  97. package/lib/assets/styles/scss/components/table/_table-sorting.scss +64 -0
  98. package/lib/assets/styles/scss/core/_footer.scss +15 -0
  99. package/lib/assets/styles/scss/core/_header.scss +170 -0
  100. package/lib/assets/styles/scss/core/_layout.scss +59 -0
  101. package/lib/assets/styles/scss/core/_menu.scss +253 -0
  102. package/lib/assets/styles/scss/core/_sidebar.scss +195 -0
  103. package/lib/assets/styles/scss/mixins/_utilities.scss +9 -0
  104. package/lib/assets/styles/scss/styles.scss +86 -0
  105. package/lib/assets/styles/scss/tools/_focus.scss +39 -0
  106. package/lib/assets/styles/scss/tools/_loader.scss +106 -0
  107. package/lib/assets/styles/scss/variables/_colors.scss +43 -0
  108. package/lib/assets/styles/scss/variables/_custom.scss +448 -0
  109. package/lib/assets/styles/scss/variables/_site.scss +68 -0
  110. package/package.json +32 -0
  111. package/styles.min.css +5 -0
  112. package/styles.min.css.map +1 -0
@@ -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
+ }
@@ -0,0 +1,53 @@
1
+ .dropdown-toggle::after {
2
+ margin-left: 0.5rem;
3
+ }
4
+
5
+ .show {
6
+ .dropdown-toggle {
7
+ &::after {
8
+ border-top: 0;
9
+ border-right: 0.3em solid transparent;
10
+ border-bottom: 0.3em solid;
11
+ border-left: 0.3em solid transparent;
12
+ }
13
+ }
14
+ }
15
+
16
+ .input-group {
17
+ .dropdown-toggle {
18
+ color: var(--bs-body-color);
19
+ }
20
+ }
21
+
22
+ .dropdown-header {
23
+ padding: $dropdown-item-padding-y $dropdown-item-padding-x;
24
+ }
25
+
26
+ .dropdown-item {
27
+ cursor: pointer;
28
+ &,
29
+ > a { text-decoration: none; }
30
+ &:focus {
31
+ outline: dotted 1px $input-border-color;
32
+ }
33
+ &:active {
34
+ .btn {
35
+ color: $dropdown-link-active-color;
36
+ }
37
+ }
38
+ &.disabled,
39
+ &:disabled {
40
+ opacity: 0.65;
41
+ }
42
+ }
43
+
44
+
45
+ .dropdown-nocaret,
46
+ .dropup.dropdown-nocaret {
47
+ &::after { content: none !important; }
48
+ }
49
+ .dropdown-xs-nocaret {
50
+ @include media-breakpoint-down(xs) {
51
+ &::after { content: none; }
52
+ }
53
+ }