@design-factory/design-factory 17.0.2 → 18.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 (240) hide show
  1. package/README.md +55 -4
  2. package/assets/fonts/df-icons/df-icons-light.woff2 +0 -0
  3. package/assets/fonts/df-icons/df-icons-solid.woff2 +0 -0
  4. package/assets/fonts/font-awesome/fa-brands-400.woff2 +0 -0
  5. package/assets/fonts/font-awesome/fa-light-300.woff2 +0 -0
  6. package/assets/fonts/font-awesome/fa-solid-900.woff2 +0 -0
  7. package/assets/waves_of_progress/arrowRight.svg +34 -0
  8. package/assets/waves_of_progress/arrowUp.svg +35 -0
  9. package/assets/waves_of_progress/circleDiagonal.svg +29 -0
  10. package/assets/waves_of_progress/circleUp.svg +24 -0
  11. package/design-factory-initial-branding.css +13 -1
  12. package/design-factory.css +13 -1
  13. package/design-factory.scss +3 -0
  14. package/esm2022/lib/angular/accessibility/accessibility.module.mjs +4 -4
  15. package/esm2022/lib/angular/accessibility/components/skip-links-container/skip-links-container.component.mjs +4 -4
  16. package/esm2022/lib/angular/accessibility/directives/skip-link.directive.mjs +4 -4
  17. package/esm2022/lib/angular/alert/alert.module.mjs +4 -4
  18. package/esm2022/lib/angular/animation/ngbTransition.mjs +1 -1
  19. package/esm2022/lib/angular/card/card-advanced.module.mjs +4 -4
  20. package/esm2022/lib/angular/card/manage-card-selection.directive.mjs +4 -4
  21. package/esm2022/lib/angular/datepicker/closedatepicker.directive.mjs +4 -4
  22. package/esm2022/lib/angular/datepicker/datepicker-keyboard-nav.service.mjs +4 -4
  23. package/esm2022/lib/angular/datepicker/datepicker-range.directive.mjs +12 -12
  24. package/esm2022/lib/angular/datepicker/datepicker-range.service.mjs +4 -4
  25. package/esm2022/lib/angular/datepicker/datepicker.module.mjs +4 -4
  26. package/esm2022/lib/angular/df.module.mjs +4 -4
  27. package/esm2022/lib/angular/footer/footer.module.mjs +4 -4
  28. package/esm2022/lib/angular/icon/amadeus-icon.mjs +3 -3
  29. package/esm2022/lib/angular/icon/icon.module.mjs +4 -4
  30. package/esm2022/lib/angular/icon/insert/insert-icon.directive.mjs +9 -9
  31. package/esm2022/lib/angular/icon/insert/insert-icon.module.mjs +4 -4
  32. package/esm2022/lib/angular/inputs/click/trigger-click.directive.mjs +3 -3
  33. package/esm2022/lib/angular/inputs/icon/inputicon.directive.mjs +4 -4
  34. package/esm2022/lib/angular/inputs/input-advanced.module.mjs +4 -4
  35. package/esm2022/lib/angular/mediaqueries/ifMedia.directive.mjs +4 -4
  36. package/esm2022/lib/angular/mediaqueries/media.module.mjs +4 -4
  37. package/esm2022/lib/angular/mediaqueries/media.service.mjs +4 -4
  38. package/esm2022/lib/angular/mediaqueries/mediaUtils.service.mjs +10 -10
  39. package/esm2022/lib/angular/modal/modal.service.mjs +4 -4
  40. package/esm2022/lib/angular/popover/config/popover.config.mjs +3 -3
  41. package/esm2022/lib/angular/popover/popover.module.mjs +4 -4
  42. package/esm2022/lib/angular/progressbar/progressbar.component.mjs +4 -4
  43. package/esm2022/lib/angular/progressbar/progressbar.module.mjs +4 -4
  44. package/esm2022/lib/angular/progressindicator/default/default-spinner.component.mjs +3 -3
  45. package/esm2022/lib/angular/progressindicator/progressindicator-backdrop.component.mjs +3 -3
  46. package/esm2022/lib/angular/progressindicator/progressindicator-container.component.mjs +4 -4
  47. package/esm2022/lib/angular/progressindicator/progressindicator.directive.mjs +4 -4
  48. package/esm2022/lib/angular/progressindicator/progressindicator.module.mjs +4 -4
  49. package/esm2022/lib/angular/progressindicator/progressindicator.service.mjs +4 -4
  50. package/esm2022/lib/angular/right-to-left/directionDetection.service.mjs +4 -4
  51. package/esm2022/lib/angular/selects/events/manage-badge-events.directive.mjs +3 -3
  52. package/esm2022/lib/angular/selects/nav/manage-nav-select.directive.mjs +4 -4
  53. package/esm2022/lib/angular/selects/option-highlight.directive.mjs +4 -4
  54. package/esm2022/lib/angular/selects/select.module.mjs +4 -4
  55. package/esm2022/lib/angular/sidenav/dfSideNavAnimation.mjs +1 -1
  56. package/esm2022/lib/angular/sidenav/dfSideNavCollapse.mjs +4 -4
  57. package/esm2022/lib/angular/sidenav/dfSideNavCollapse.module.mjs +4 -4
  58. package/esm2022/lib/angular/sidenav/dfSideNavCollapse.service.mjs +3 -3
  59. package/esm2022/lib/angular/sidenav/dfSideNavCollapseConfig.mjs +3 -3
  60. package/esm2022/lib/angular/sidenav/excludeTrap.directive.mjs +4 -4
  61. package/esm2022/lib/angular/sidenav/manage-sidenav.directive.mjs +4 -4
  62. package/esm2022/lib/angular/sidenav/sidenav-config.mjs +3 -3
  63. package/esm2022/lib/angular/sidenav/sidenav.component.mjs +12 -12
  64. package/esm2022/lib/angular/sidenav/sidenav.module.mjs +4 -4
  65. package/esm2022/lib/angular/sidenav/sidenav.service.mjs +10 -9
  66. package/esm2022/lib/angular/sidenav/sidenavlist.component.mjs +5 -5
  67. package/esm2022/lib/angular/slider/direction/sliderdirection.directive.mjs +7 -4
  68. package/esm2022/lib/angular/slider/lib/compatibility-helper.mjs +1 -1
  69. package/esm2022/lib/angular/slider/lib/event-listener-helper.mjs +1 -1
  70. package/esm2022/lib/angular/slider/lib/slider-element.directive.mjs +8 -5
  71. package/esm2022/lib/angular/slider/lib/slider-handle.directive.mjs +10 -7
  72. package/esm2022/lib/angular/slider/lib/slider-label.directive.mjs +7 -4
  73. package/esm2022/lib/angular/slider/lib/slider.component.mjs +103 -125
  74. package/esm2022/lib/angular/slider/lib/tooltip-wrapper.component.mjs +7 -4
  75. package/esm2022/lib/angular/slider/lib/value-helper.mjs +1 -1
  76. package/esm2022/lib/angular/slider/slider.module.mjs +16 -8
  77. package/esm2022/lib/angular/stepper/stepper.component.mjs +8 -8
  78. package/esm2022/lib/angular/stepper/stepper.directive.mjs +7 -7
  79. package/esm2022/lib/angular/stepper/stepper.module.mjs +4 -4
  80. package/esm2022/lib/angular/stepper/stepper.service.mjs +8 -8
  81. package/esm2022/lib/angular/toast/toast.module.mjs +4 -4
  82. package/esm2022/lib/angular/tooltip/tooltip.module.mjs +4 -4
  83. package/esm2022/lib/angular/tooltip/truncate/tooltipTruncate.directive.mjs +3 -3
  84. package/esm2022/lib/angular/utils/scrollbar.service.mjs +3 -3
  85. package/esm2022/lib/angular/utils/titleTruncate.directive.mjs +4 -4
  86. package/esm2022/lib/angular/waves-of-progress/waves.directive.mjs +88 -0
  87. package/esm2022/lib/angular/waves-of-progress/waves.module.mjs +16 -0
  88. package/esm2022/lib/index.mjs +4 -1
  89. package/fesm2022/design-factory.mjs +496 -395
  90. package/fesm2022/design-factory.mjs.map +1 -1
  91. package/lib/angular/sidenav/sidenav.service.d.ts +1 -0
  92. package/lib/angular/slider/direction/sliderdirection.directive.d.ts +3 -0
  93. package/lib/angular/slider/lib/slider-element.directive.d.ts +3 -0
  94. package/lib/angular/slider/lib/slider-handle.directive.d.ts +4 -1
  95. package/lib/angular/slider/lib/slider-label.directive.d.ts +3 -0
  96. package/lib/angular/slider/lib/slider.component.d.ts +3 -0
  97. package/lib/angular/slider/lib/tooltip-wrapper.component.d.ts +3 -0
  98. package/lib/angular/slider/slider.module.d.ts +4 -0
  99. package/lib/angular/stepper/stepper.service.d.ts +2 -1
  100. package/lib/angular/waves-of-progress/waves.directive.d.ts +35 -0
  101. package/lib/angular/waves-of-progress/waves.module.d.ts +7 -0
  102. package/lib/index.d.ts +2 -0
  103. package/package.json +11 -17
  104. package/schematics/migrations/15_0_0/remove-ngx-slider/index.js +3 -2
  105. package/schematics/migrations/16_0_0/navbar-logo-dark/index.js +1 -1
  106. package/schematics/migrations/16_0_0/revert-to-old-brand/index.js +1 -1
  107. package/schematics/migrations/16_0_0/scss-var/index.js +1 -1
  108. package/schematics/migrations/16_0_0/stepper-classes/index.js +1 -1
  109. package/schematics/migrations/18_0_0/font-awesome-6/index.d.ts +11 -0
  110. package/schematics/migrations/18_0_0/font-awesome-6/index.js +748 -0
  111. package/schematics/migrations/18_0_0/media-object-border-0/index.d.ts +6 -0
  112. package/schematics/migrations/18_0_0/media-object-border-0/index.js +40 -0
  113. package/schematics/migrations/18_0_0/stepper-classes-18.0.0/index.d.ts +13 -0
  114. package/schematics/migrations/18_0_0/stepper-classes-18.0.0/index.js +59 -0
  115. package/schematics/migrations/helpers.js +1 -2
  116. package/schematics/migrations/migration.json +15 -0
  117. package/schematics/migrations/utils/component-resource-collector.js +2 -1
  118. package/schematics/migrations/utils/project_tsconfig_paths.js +1 -2
  119. package/schematics/migrations/utils/style-updater.js +2 -1
  120. package/schematics/migrations/utils/template-updater.js +2 -1
  121. package/schematics/migrations/utils/typescript/compiler_host.js +5 -5
  122. package/schematics/migrations/utils/typescript/decorators.js +4 -4
  123. package/schematics/migrations/utils/typescript/functions.js +3 -3
  124. package/schematics/migrations/utils/typescript/imports.js +3 -3
  125. package/schematics/migrations/utils/typescript/line-mappings.js +2 -3
  126. package/schematics/migrations/utils/typescript/parse_tsconfig.js +4 -4
  127. package/schematics/migrations/utils/typescript/property-name.js +4 -4
  128. package/schematics/ng-add/index.js +5 -6
  129. package/styles/scss/_common.mixins.scss +12 -1
  130. package/styles/scss/_common.root.scss +1 -0
  131. package/styles/scss/_common.variables.scss +10 -6
  132. package/styles/scss/_variables.scss +2 -0
  133. package/styles/scss/agnosui/_variables.scss +18 -59
  134. package/styles/scss/bootstrap/_maps.scss +7 -6
  135. package/styles/scss/bootstrap/_rtl-styles-override.scss +6 -4
  136. package/styles/scss/bootstrap/_variables-dark.scss +86 -0
  137. package/styles/scss/bootstrap/_variables.scss +93 -29
  138. package/styles/scss/components/accordion/_accordion.scss +76 -11
  139. package/styles/scss/components/accordion/_accordion.variables.scss +9 -0
  140. package/styles/scss/components/alert/_alert.scss +8 -10
  141. package/styles/scss/components/alert/_alert.variables.scss +0 -3
  142. package/styles/scss/components/badge/_badge.mixins.scss +13 -0
  143. package/styles/scss/components/badge/_badge.scss +130 -78
  144. package/styles/scss/components/badge/_badge.variables.scss +3 -0
  145. package/styles/scss/components/brand-color/_brand-color.mixins.scss +14 -1
  146. package/styles/scss/components/brand-color/_brand-color.scss +4 -0
  147. package/styles/scss/components/breadcrumbs/_breadcrumbs.scss +38 -17
  148. package/styles/scss/components/breadcrumbs/_breadcrumbs.variables.scss +8 -2
  149. package/styles/scss/components/button/_button.scss +125 -7
  150. package/styles/scss/components/button/_button.variables.scss +6 -0
  151. package/styles/scss/components/card/_card.scss +102 -31
  152. package/styles/scss/components/card/_card.variables.scss +13 -4
  153. package/styles/scss/components/checkbox/_checkbox.scss +14 -4
  154. package/styles/scss/components/checkbox/_checkbox.variables.scss +2 -1
  155. package/styles/scss/components/collapse/_collapse.scss +0 -5
  156. package/styles/scss/components/datepicker/_datepicker.scss +84 -28
  157. package/styles/scss/components/datepicker/_datepicker.variables.scss +8 -3
  158. package/styles/scss/components/dropdown/_dropdown.mixins.scss +2 -20
  159. package/styles/scss/components/dropdown/_dropdown.scss +70 -18
  160. package/styles/scss/components/dropdown/_dropdown.variables.scss +7 -3
  161. package/styles/scss/components/fonts/_font-awesome-icons-brands.scss +1585 -0
  162. package/styles/scss/components/fonts/_font-awesome-icons.scss +12886 -0
  163. package/styles/scss/components/fonts/_fonts-family.scss +106 -50
  164. package/styles/scss/components/fonts/_fonts.root.scss +2 -1
  165. package/styles/scss/components/fonts/_fonts.scss +20 -1
  166. package/styles/scss/components/fonts/_fonts.variables.scss +2 -0
  167. package/styles/scss/components/fonts/_icon-font.scss +22 -5036
  168. package/styles/scss/components/footer/_footer.scss +3 -4
  169. package/styles/scss/components/form/_form.scss +4 -3
  170. package/styles/scss/components/inputs/_inputs.mixin.scss +7 -3
  171. package/styles/scss/components/inputs/_inputs.scss +9 -25
  172. package/styles/scss/components/inputs/_inputs.variables.scss +1 -4
  173. package/styles/scss/components/link/_link.mixins.scss +13 -6
  174. package/styles/scss/components/link/_link.scss +44 -28
  175. package/styles/scss/components/link/_link.variables.scss +7 -13
  176. package/styles/scss/components/list-group/_list-group.scss +26 -17
  177. package/styles/scss/components/media/_media.scss +52 -24
  178. package/styles/scss/components/media/_media.variables.scss +11 -3
  179. package/styles/scss/components/modal/_modal.scss +7 -3
  180. package/styles/scss/components/modal/_modal.variables.scss +6 -0
  181. package/styles/scss/components/navbar/_navbar.scss +22 -16
  182. package/styles/scss/components/pagination/_pagination.scss +26 -8
  183. package/styles/scss/components/pagination/_pagination.variables.scss +12 -5
  184. package/styles/scss/components/popover/_popover.mixin.scss +2 -0
  185. package/styles/scss/components/popover/_popover.scss +2 -0
  186. package/styles/scss/components/popover/_popover.variables.scss +3 -0
  187. package/styles/scss/components/radio/_radio.scss +15 -2
  188. package/styles/scss/components/scrollspy/_scrollspy.scss +68 -41
  189. package/styles/scss/components/scrollspy/_scrollspy.variables.scss +17 -6
  190. package/styles/scss/components/select/_select.scss +9 -7
  191. package/styles/scss/components/select/_select.variables.scss +5 -3
  192. package/styles/scss/components/sidenav/_sidenav.scss +93 -81
  193. package/styles/scss/components/sidenav/_sidenav.variables.scss +27 -11
  194. package/styles/scss/components/skip-links/_skip-links.scss +9 -8
  195. package/styles/scss/components/skip-links/_skip-links.variables.scss +2 -0
  196. package/styles/scss/components/slider/_slider.scss +15 -1
  197. package/styles/scss/components/stepper/_stepper.mixins.scss +40 -24
  198. package/styles/scss/components/stepper/_stepper.scss +15 -11
  199. package/styles/scss/components/stepper/_stepper.variables.scss +13 -3
  200. package/styles/scss/components/table/_advancedtables.scss +58 -10
  201. package/styles/scss/components/table/_table.scss +8 -2
  202. package/styles/scss/components/table/_table.variables.scss +9 -0
  203. package/styles/scss/components/tabs/_tabs.scss +78 -1
  204. package/styles/scss/components/tabs/_tabs.variables.scss +2 -0
  205. package/styles/scss/components/toast/_toast.scss +128 -58
  206. package/styles/scss/components/toast/_toast.variables.scss +7 -2
  207. package/styles/scss/components/toggle/_toggle.scss +23 -19
  208. package/styles/scss/components/toggle/_toggle.variables.scss +6 -4
  209. package/styles/scss/components/tooltip/_tooltip.scss +12 -0
  210. package/styles/scss/components/tooltip/_tooltip.variables.scss +2 -0
  211. package/styles/scss/components/typeahead/_typeahead.scss +5 -3
  212. package/styles/scss/components/typeahead/_typeahead.variables.scss +1 -0
  213. package/styles/scss/components/waves/_waves.scss +15 -0
  214. package/styles/scss/components/waves/_waves.variables.scss +86 -0
  215. package/styles/scss/df-styles-namespace.scss +1 -1
  216. package/styles/scss/df-styles.scss +4 -1
  217. package/styles/scss/themes/brand2023/_variables.scss +495 -75
  218. package/styles/scss/utilities/_common.utilities.scss +28 -14
  219. package/assets/fonts/amadeus-bold/amadeus-bold.svg +0 -5131
  220. package/assets/fonts/amadeus-bold/amadeus-bold.ttf +0 -0
  221. package/assets/fonts/amadeus-regular/amadeus-regular.svg +0 -5131
  222. package/assets/fonts/amadeus-regular/amadeus-regular.ttf +0 -0
  223. package/assets/fonts/amadeus-thin/amadeus-thin.svg +0 -5131
  224. package/assets/fonts/amadeus-thin/amadeus-thin.ttf +0 -0
  225. package/assets/fonts/icon-font/light/df-light-300.svg +0 -1709
  226. package/assets/fonts/icon-font/light/df-light-300.ttf +0 -0
  227. package/assets/fonts/icon-font/light/df-light-300.woff +0 -0
  228. package/assets/fonts/icon-font/light/df-light-300.woff2 +0 -0
  229. package/assets/fonts/icon-font/solid/df-solid-900.svg +0 -1709
  230. package/assets/fonts/icon-font/solid/df-solid-900.ttf +0 -0
  231. package/assets/fonts/icon-font/solid/df-solid-900.woff +0 -0
  232. package/assets/fonts/icon-font/solid/df-solid-900.woff2 +0 -0
  233. package/assets/fonts/source-sans-pro-bold/source-sans-pro-bold.svg +0 -19926
  234. package/assets/fonts/source-sans-pro-bold/source-sans-pro-bold.ttf +0 -0
  235. package/assets/fonts/source-sans-pro-light/source-sans-pro-light.svg +0 -19165
  236. package/assets/fonts/source-sans-pro-light/source-sans-pro-light.ttf +0 -0
  237. package/assets/fonts/source-sans-pro-regular/source-sans-pro-regular.svg +0 -20412
  238. package/assets/fonts/source-sans-pro-regular/source-sans-pro-regular.ttf +0 -0
  239. package/assets/fonts/source-sans-pro-semibold/source-sans-pro-semibold.svg +0 -20019
  240. package/assets/fonts/source-sans-pro-semibold/source-sans-pro-semibold.ttf +0 -0
@@ -35,7 +35,6 @@ $df-alert-border-color-opacity: 0.4 !default;
35
35
  $df-alert-size-default-insert-alert-icon: 2.5rem !default;
36
36
  $df-alert-size-default-font-size: 1rem !default;
37
37
  $df-alert-size-default-border-start-width: 3px !default;
38
- $df-alert-size-default-icon-top: 0.9375rem !default;
39
38
  $df-alert-size-default-icon-margin-start: -1.558rem !default;
40
39
  $df-alert-tip-size-default-icon-margin-start: -1.40175rem !default;
41
40
  $df-alert-collapse-icon-margin-start: 1rem !default;
@@ -45,7 +44,6 @@ $df-alert-size-sm-insert-alert-icon: $df-alert-size-default-insert-alert-icon *
45
44
  $df-alert-size-sm-font-size: $df-alert-size-default-font-size * map.get($df-size-ratios, 'sm') !default;
46
45
  $df-alert-size-sm-padding-y: $alert-padding-y * map.get($df-size-ratios, 'sm') !default;
47
46
  $df-alert-size-sm-padding-x: $alert-padding-x * map.get($df-size-ratios, 'sm') !default;
48
- $df-alert-size-sm-icon-top: $df-alert-size-default-icon-top * map.get($df-size-ratios, 'sm') !default;
49
47
  $df-alert-size-sm-icon-margin-start: $df-alert-size-default-icon-margin-start * map.get($df-size-ratios, 'sm') !default;
50
48
  $df-alert-tip-size-sm-icon-margin-start: $df-alert-tip-size-default-icon-margin-start * map.get($df-size-ratios, 'sm') !default;
51
49
 
@@ -54,6 +52,5 @@ $df-alert-size-lg-insert-alert-icon: $df-alert-size-default-insert-alert-icon *
54
52
  $df-alert-size-lg-font-size: $df-alert-size-default-font-size * map.get($df-size-ratios, 'lg') !default;
55
53
  $df-alert-size-lg-padding-y: $alert-padding-y * map.get($df-size-ratios, 'lg') !default;
56
54
  $df-alert-size-lg-padding-x: $alert-padding-x * map.get($df-size-ratios, 'lg') !default;
57
- $df-alert-size-lg-icon-top: $df-alert-size-default-icon-top * map.get($df-size-ratios, 'lg') !default;
58
55
  $df-alert-size-lg-icon-margin-start: $df-alert-size-default-icon-margin-start * map.get($df-size-ratios, 'lg') !default;
59
56
  $df-alert-tip-size-lg-icon-margin-start: $df-alert-tip-size-default-icon-margin-start * map.get($df-size-ratios, 'lg') !default;
@@ -0,0 +1,13 @@
1
+ @mixin df-disable-badge($color, $bg-color, $changeBorder: false) {
2
+ cursor: var(--#{$prefix}disabled-cursor);
3
+ color: $color !important;
4
+ background-color: $bg-color !important;
5
+ @if $changeBorder {
6
+ border-color: $color;
7
+ }
8
+ &:focus-visible,
9
+ &:focus,
10
+ &:focus-within {
11
+ box-shadow: none;
12
+ }
13
+ }
@@ -1,4 +1,44 @@
1
1
  @use 'sass:map';
2
+ @import 'badge.mixins';
3
+
4
+ %bg-badge-common {
5
+ &:not(.rounded-pill):not(.df-badge-dot) {
6
+ &:not(.df-closable) {
7
+ &:hover:not([disabled]):not(.disabled) {
8
+ color: var(--#{$prefix}badge-hover-color);
9
+ background-color: var(--#{$prefix}badge-hover-background-color) !important;
10
+ }
11
+
12
+ &:active:not([disabled]):not(.disabled) {
13
+ color: var(--#{$prefix}badge-active-color);
14
+ background-color: var(--#{$prefix}badge-active-background-color) !important;
15
+ }
16
+ }
17
+ }
18
+
19
+ &.df-closable {
20
+ button:hover,
21
+ span[role='button']:hover {
22
+ color: var(--#{$prefix}badge-hover-color);
23
+ background-color: var(--#{$prefix}badge-hover-background-color);
24
+ }
25
+ }
26
+
27
+ &[disabled],
28
+ &.disabled,
29
+ &:has([disabled]),
30
+ &:has(.disabled) {
31
+ @include df-disable-badge(var(--#{$prefix}disabled-color), var(--#{$prefix}disabled-bg-color));
32
+
33
+ & > *:hover {
34
+ @include df-disable-badge(var(--#{$prefix}disabled-color), var(--#{$prefix}disabled-bg-color));
35
+ }
36
+ }
37
+
38
+ &.df-badge-dot::before {
39
+ background-color: var(--#{$prefix}badge-dot-background-color);
40
+ }
41
+ }
2
42
 
3
43
  .badge {
4
44
  --#{$prefix}badge-focus-box-shadow: #{$df-badge-focus-box-shadow};
@@ -7,6 +47,8 @@
7
47
  --#{$prefix}badge-icon-margin-end: #{$df-badge-icon-margin-end};
8
48
  --#{$prefix}badge-dot-font-size: #{$df-badge-dot-font-size};
9
49
  --#{$prefix}badge-dot-margin-end: #{$df-badge-dot-margin-end};
50
+ --#{$prefix}box-shadow-color: #{$df-badge-box-shadow-color};
51
+ --#{$prefix}badge-inner-elements-focus-box-shadow: #{$df-badge-inner-elements-focus-box-shadow};
10
52
  // override
11
53
  text-transform: var(--#{$prefix}badge-text-transform);
12
54
  display: inline-flex;
@@ -17,9 +59,17 @@
17
59
  &.df-badge-dot {
18
60
  cursor: text;
19
61
  }
62
+
20
63
  // interactive badges
21
64
  &:not(.rounded-pill):not(.df-badge-dot) {
22
65
  cursor: pointer;
66
+ align-items: stretch;
67
+ &[disabled],
68
+ &.disabled,
69
+ &:has([disabled]),
70
+ &:has(.disabled) {
71
+ cursor: var(--#{$prefix}disabled-cursor);
72
+ }
23
73
  }
24
74
 
25
75
  &:focus,
@@ -29,144 +79,146 @@
29
79
  }
30
80
 
31
81
  .df-badge-icon {
32
- @include ltr {
33
- margin-left: var(--#{$prefix}badge-icon-margin-start);
34
- margin-right: var(--#{$prefix}badge-icon-margin-end);
35
- }
36
- @include rtl {
37
- margin-left: var(--#{$prefix}badge-icon-margin-end);
38
- margin-right: var(--#{$prefix}badge-icon-margin-start);
39
- }
82
+ margin-inline-start: var(--#{$prefix}badge-icon-margin-start);
83
+ margin-inline-end: var(--#{$prefix}badge-icon-margin-end);
40
84
  }
41
85
 
42
86
  &.df-badge-dot {
43
87
  background-color: transparent !important;
44
88
  color: inherit !important;
89
+
45
90
  &::before {
46
91
  content: '';
47
92
  height: var(--#{$prefix}badge-dot-font-size);
48
93
  width: var(--#{$prefix}badge-dot-font-size);
49
94
  border-radius: 50%;
50
95
  display: inline-block;
51
- @include ltr {
52
- margin-right: var(--#{$prefix}badge-dot-margin-end);
53
- }
54
- @include rtl {
55
- margin-left: var(--#{$prefix}badge-dot-margin-end);
56
- }
96
+ margin-inline-end: var(--#{$prefix}badge-dot-margin-end);
57
97
  }
58
98
  }
59
99
 
60
100
  @each $color, $value in $utilities-bg-colors {
61
101
  &.bg-#{$color} {
102
+ --#{$prefix}body-bg: unset; // need it to fix the focus internal box-shadow color
62
103
  --#{$prefix}badge-color: #{shades-css-var($color, 'bg-color', true)};
63
104
  --#{$prefix}badge-hover-background-color: #{shades-css-var($color, 'bg-hover-color')};
64
105
  --#{$prefix}badge-hover-color: #{shades-css-var($color, 'bg-hover-color', true)};
65
106
  --#{$prefix}badge-active-background-color: #{shades-css-var($color, 'bg-active-color')};
66
107
  --#{$prefix}badge-active-color: #{shades-css-var($color, 'bg-active-color', true)};
67
108
  --#{$prefix}badge-dot-background-color: #{shades-css-var($color, 'bg-color')};
68
- &:not(.rounded-pill):not(.df-badge-dot) {
69
- &:not(.df-closable) {
70
- &:hover {
71
- color: var(--#{$prefix}badge-hover-color);
72
- background-color: var(--#{$prefix}badge-hover-background-color) !important;
73
- }
74
- &:active {
75
- color: var(--#{$prefix}badge-active-color);
76
- background-color: var(--#{$prefix}badge-active-background-color) !important;
77
- }
109
+ --#{$prefix}badge-disabled-color: var(--#{$prefix}disabled-color);
110
+ @extend %bg-badge-common;
111
+ }
112
+
113
+ &.df-badge-outline-#{$color} {
114
+ --#{$prefix}badge-color: #{shades-css-var($color, 'text-color')};
115
+ --#{$prefix}badge-background-color: transparent;
116
+ --#{$prefix}badge-border-color: #{shades-css-var($color, 'border-color')};
117
+ --#{$prefix}badge-hover-background-color: #{shades-css-var($color, 'bg-hover-alt-color')};
118
+ --#{$prefix}badge-hover-color: #{shades-css-var($color, 'text-hover-color')};
119
+ background-color: var(--#{$prefix}badge-background-color);
120
+ color: var(--#{$prefix}badge-color);
121
+ border: var(--#{$prefix}border-width) solid var(--#{$prefix}badge-border-color);
122
+
123
+ &.df-badge-dot {
124
+ color: var(--#{$prefix}badge-color) !important; //important needed to override 'important' in df-badge-dot
125
+ &::before {
126
+ background-color: var(--#{$prefix}badge-color);
78
127
  }
79
128
  }
80
- &.df-closable {
81
- button:hover, span[role='button']:hover {
82
- color: var(--#{$prefix}badge-hover-color);
83
- background-color: var(--#{$prefix}badge-hover-background-color);
129
+
130
+ &:not([disabled]):not(.disabled) {
131
+ button,
132
+ span[role='button'],
133
+ &[role='button'] {
134
+ &:hover:not([disabled]):not(.disabled) {
135
+ color: var(--#{$prefix}badge-hover-color);
136
+ background-color: var(
137
+ --#{$prefix}badge-hover-background-color
138
+ ) !important; // overriding the bg-#{$color} utility background-color
139
+ }
84
140
  }
85
141
  }
86
- &.df-badge-dot::before {
87
- background-color: var(--#{$prefix}badge-dot-background-color);
88
- }
89
- @if variable-exists($name: 'df-enableBranding2023') and $df-enableBranding2023 {
90
- &:focus {
91
- --#{$prefix}box-shadow-color: #{shades-css-var($color, 'bg-color')};
92
- &:hover:not(:active) {
93
- --#{$prefix}box-shadow-color: #{shades-css-var($color, 'bg-hover-color')};
94
- }
95
- &:active {
96
- --#{$prefix}box-shadow-color: #{shades-css-var($color, 'bg-active-color')};
97
- }
142
+ &[disabled],
143
+ &.disabled,
144
+ &:has([disabled]),
145
+ &:has(.disabled) {
146
+ @include df-disable-badge(var(--#{$prefix}disabled-color), var(--#{$prefix}badge-background-color), true);
147
+ & > *:hover {
148
+ cursor: var(--#{$prefix}disabled-cursor);
98
149
  }
99
150
  }
100
151
  }
152
+
153
+ &.bg-#{$color}-light {
154
+ --#{$prefix}body-bg: unset; // need it to fix the focus internal box-shadow color
155
+ --#{$prefix}badge-color: #{shades-css-var($color, 'bg-light-color', true)};
156
+ --#{$prefix}badge-hover-background-color: #{shades-css-var($color, 'bg-light-hover-color')};
157
+ --#{$prefix}badge-hover-color: #{shades-css-var($color, 'bg-light-hover-color', true)};
158
+ --#{$prefix}badge-active-background-color: #{shades-css-var($color, 'bg-light-active-color')};
159
+ --#{$prefix}badge-active-color: #{shades-css-var($color, 'bg-light-active-color', true)};
160
+ --#{$prefix}badge-dot-background-color: #{shades-css-var($color, 'bg-light-color')};
161
+ background-color: #{shades-css-var($color, 'bg-light-color')};
162
+ @extend %bg-badge-common;
163
+ }
101
164
  }
102
165
  }
103
166
 
104
- .badge.df-closable { // badge interactive closable
167
+ .badge.df-closable {
168
+ // badge interactive closable
105
169
  --#{$prefix}badge-interactive-container-padding-y: 0;
106
170
  --#{$prefix}badge-interactive-container-padding-start: 0;
107
171
  --#{$prefix}badge-interactive-container-padding-end: 0;
108
172
  --#{$prefix}badge-interactive-button-start-radius: #{$badge-border-radius};
109
173
  --#{$prefix}badge-interactive-button-padding-end: #{$df-badge-interactive-button-padding-end};
110
- --#{$prefix}badge-interactive-close-box-shadow: #{$btn-focus-box-shadow};
174
+ --#{$prefix}badge-interactive-close-box-shadow: #{$df-btn-focus-box-shadow};
111
175
  --#{$prefix}badge-interactive-close-end-radius: #{$badge-border-radius};
112
176
  --#{$prefix}badge-interactive-close-padding: #{$df-badge-interactive-close-padding};
113
177
  --#{$prefix}badge-interactive-close-border: #{$df-badge-interactive-close-border};
114
178
  --#{$prefix}badge-interactive-close-outline: #{$df-badge-button-focus-outline};
115
- padding: var(--#{$prefix}badge-interactive-container-padding-y) var(--#{$prefix}badge-interactive-container-padding-end) var(--#{$prefix}badge-interactive-container-padding-y) var(--#{$prefix}badge-interactive-container-padding-start);
179
+ padding-block: var(--#{$prefix}badge-interactive-container-padding-y);
180
+ padding-inline: var(--#{$prefix}badge-interactive-container-padding-start)
181
+ var(--#{$prefix}badge-interactive-container-padding-end);
182
+
183
+ &:focus-within {
184
+ outline: var(--#{$prefix}badge-interactive-close-outline);
185
+ box-shadow: var(--#{$prefix}badge-interactive-close-box-shadow);
186
+ }
187
+
188
+ *:focus,
189
+ *.focus {
190
+ outline: var(--#{$prefix}badge-interactive-close-outline);
191
+ box-shadow: var(--#{$prefix}badge-inner-elements-focus-box-shadow);
192
+ }
116
193
 
117
194
  button {
118
195
  background-color: inherit;
119
196
  color: inherit;
120
-
197
+
121
198
  &:hover {
122
199
  cursor: pointer;
123
200
  }
201
+
124
202
  border: var(--#{$prefix}badge-interactive-close-border);
125
203
  padding: var(--#{$prefix}badge-interactive-close-padding);
126
-
127
- &:focus,
128
- &.focus {
129
- outline: var(--#{$prefix}badge-interactive-close-outline);
130
- box-shadow: var(--#{$prefix}badge-interactive-close-box-shadow);
131
- }
132
- @include ltr {
133
- border-top-right-radius: var(--#{$prefix}badge-interactive-close-end-radius);
134
- border-bottom-right-radius: var(--#{$prefix}badge-interactive-close-end-radius);
135
- }
136
- @include rtl {
137
- border-top-left-radius: var(--#{$prefix}badge-interactive-close-end-radius);
138
- border-bottom-left-radius: var(--#{$prefix}badge-interactive-close-end-radius);
139
- }
204
+ border-start-end-radius: var(--#{$prefix}badge-interactive-close-end-radius);
205
+ border-end-end-radius: var(--#{$prefix}badge-interactive-close-end-radius);
140
206
  }
141
207
 
142
- &:not(.rounded-pill) { // round-pill does not have internal button as span
208
+ &:not(.rounded-pill) {
209
+ // round-pill does not have internal button as span
143
210
  // add
144
211
  span[role='button'] {
145
212
  // We put the badge padding on the button except for the side that touches the close button
146
- @include ltr {
147
- padding: var(--#{$prefix}badge-padding-y) var(--#{$prefix}badge-interactive-button-padding-end) var(--#{$prefix}badge-padding-y) var(--#{$prefix}badge-padding-x);
148
- }
149
- @include rtl {
150
- padding: var(--#{$prefix}badge-padding-y) var(--#{$prefix}badge-padding-x) var(--#{$prefix}badge-padding-y) var(--#{$prefix}badge-interactive-button-padding-end);
151
- }
152
- @include ltr {
153
- border-top-left-radius: var(--#{$prefix}badge-interactive-button-start-radius);
154
- border-bottom-left-radius: var(--#{$prefix}badge-interactive-button-start-radius);
155
- }
156
- @include rtl {
157
- border-top-right-radius: var(--#{$prefix}badge-interactive-button-start-radius);
158
- border-bottom-right-radius: var(--#{$prefix}badge-interactive-button-start-radius);
159
- }
213
+ padding-block: var(--#{$prefix}badge-padding-y);
214
+ padding-inline: var(--#{$prefix}badge-padding-x) var(--#{$prefix}badge-interactive-button-padding-end);
215
+ border-start-start-radius: var(--#{$prefix}badge-interactive-button-start-radius);
216
+ border-end-start-radius: var(--#{$prefix}badge-interactive-button-start-radius);
160
217
  }
161
218
  }
162
219
 
163
220
  &.rounded-pill {
164
221
  --#{$prefix}badge-interactive-close-end-radius: #{$border-radius-pill};
165
222
  --#{$prefix}badge-interactive-container-padding-start: var(--#{$prefix}badge-padding-x);
166
- @include rtl {
167
- --#{$prefix}badge-interactive-container-padding-start: 0;
168
- --#{$prefix}badge-interactive-container-padding-end: var(--#{$prefix}badge-padding-x);
169
- }
170
223
  }
171
224
  }
172
-
@@ -14,3 +14,6 @@ $df-badge-icon-margin-start: -0.17em !default;
14
14
  $df-badge-icon-margin-end: 0.3em !default;
15
15
  $df-badge-button-focus-outline: var(--#{$prefix}focus-outline) !default;
16
16
  $df-badge-focus-box-shadow: $btn-focus-box-shadow !default;
17
+ $df-badge-box-shadow-color: var(--#{$prefix}box-shadow-color) !default;
18
+
19
+ $df-badge-inner-elements-focus-box-shadow: none !default;
@@ -1,9 +1,11 @@
1
1
  @use 'sass:color';
2
+ @use 'sass:map';
3
+ @use 'sass:meta';
2
4
 
3
5
  @mixin df-bg-variant($parent, $color, $colorName) {
4
6
  a#{$parent},
5
7
  button#{$parent} {
6
- @if variable-exists($name: 'df-enableBranding2023') and $df-enableBranding2023 {
8
+ @if meta.variable-exists($name: 'df-enableBranding2023') and $df-enableBranding2023 {
7
9
  --#{$prefix}box-shadow-color: #{shades-css-var($colorName, 'bg-color', true)};
8
10
  &:focus {
9
11
  background-color: shades-css-var($colorName, 'bg-color') !important;
@@ -24,3 +26,14 @@
24
26
  }
25
27
  }
26
28
  }
29
+
30
+ @mixin df-bg-color-css-var($utility) {
31
+ @if map.has-key($utility, class) and map.get($utility, class) == 'bg' {
32
+ $values: map.get($utility, values);
33
+ @each $color, $value in $values {
34
+ .bg-#{$color} {
35
+ --#{$prefix}body-bg: #{$value};
36
+ }
37
+ }
38
+ }
39
+ }
@@ -14,3 +14,7 @@
14
14
  @each $color, $value in $colors {
15
15
  @include df-bg-variant('.bg-#{$color}', $value, $color);
16
16
  }
17
+ // We need this mixin to achieve the outline focus in buttons on different backgrounds
18
+ @each $key, $utility in $utilities {
19
+ @include df-bg-color-css-var($utility);
20
+ }
@@ -12,16 +12,25 @@
12
12
 
13
13
  &.breadcrumb-sm {
14
14
  --#{$prefix}breadcrumb-font-size: #{$font-size-sm};
15
+ --#{$prefix}breadcrumb-item-before-padding: #{$df-breadcrumb-item-before-padding-sm};
15
16
  }
16
17
 
17
18
  &.breadcrumb-lg {
18
19
  // todo create a css variable for body-font-size-lg and sm
19
20
  --#{$prefix}breadcrumb-font-size: #{$font-size-lg};
21
+ --#{$prefix}breadcrumb-item-before-padding: #{$df-breadcrumb-item-before-padding-lg};
20
22
  }
21
23
 
22
24
  .breadcrumb-item {
25
+ & + .breadcrumb-item + .breadcrumb-item:before {
26
+ @include rtl {
27
+ content: var(--#{prefix}breadcrumb-divider, $breadcrumb-divider-flipped);
28
+ }
29
+ }
30
+
23
31
  &:before {
24
32
  padding: var(--#{$prefix}breadcrumb-item-before-padding);
33
+ font-family: $df-breadcrumb-separator-font;
25
34
  }
26
35
 
27
36
  @include rtl {
@@ -31,10 +40,19 @@
31
40
  }
32
41
 
33
42
  a {
34
- &:focus {
43
+ &:focus-visible {
35
44
  box-shadow: $df-breadcrumb-item-link-focus-box-shadow;
36
45
  outline: $df-breadcrumb-item-link-outline;
37
46
  }
47
+
48
+ &:hover:not([aria-disabled='true']) {
49
+ border-bottom-style: solid;
50
+ @include df-link-hover;
51
+ }
52
+ }
53
+
54
+ .df-breadcrumb-item-icon {
55
+ margin-inline-end: $df-breadcrumb-item-icon-margin-inline-end;
38
56
  }
39
57
 
40
58
  &:nth-of-type(2):before {
@@ -57,21 +75,25 @@
57
75
  // hidden by default
58
76
  display: var(--#{$prefix}breadcrumb-icon-display);
59
77
  color: var(--#{$prefix}breadcrumb-icon-color);
60
- margin: var(--#{$prefix}breadcrumb-icon-margin);
61
78
 
62
- &:before {
63
- // custom df class for breadcrumb icon
64
- // extends icon-angle-(left or right) class depending on the direction
65
- @extend %df-icon-style;
66
-
67
- @include ltr {
68
- // content cannot be a CSS variable
69
- content: $df-breadcrumb-icon-angle-left-content;
70
- }
71
-
72
- @include rtl {
73
- content: $df-breadcrumb-icon-angle-right-content;
74
- }
79
+ &:before,
80
+ &:after {
81
+ margin: var(--#{$prefix}breadcrumb-icon-margin);
82
+ // custom df class for breadcrumb icon
83
+ // extends icon-angle-(left or right) class depending on the direction
84
+ @extend %df-icon-style;
85
+ }
86
+
87
+ @include ltr {
88
+ &:before {
89
+ // content cannot be a CSS variable
90
+ content: $df-breadcrumb-icon-angle-left-content;
91
+ }
92
+ }
93
+ @include rtl {
94
+ &:after {
95
+ content: $df-breadcrumb-icon-angle-right-content;
96
+ }
75
97
  }
76
98
  }
77
99
 
@@ -83,9 +105,8 @@
83
105
  display: var(--#{$prefix}breadcrumb-item-display);
84
106
  }
85
107
 
86
- &:nth-last-of-type(2),
87
108
  &:nth-last-of-type(1) {
88
- // two last items are displayed
109
+ // only last items is displayed
89
110
  display: var(--#{$prefix}breadcrumb-item-two-last-items-display);
90
111
  }
91
112
 
@@ -1,4 +1,6 @@
1
1
  $df-breadcrumb-item-before-padding: 0rem 0.5rem !default;
2
+ $df-breadcrumb-item-before-padding-sm: 0rem 0.5rem !default;
3
+ $df-breadcrumb-item-before-padding-lg: 0rem 0.5rem !default;
2
4
  $df-breadcrumb-item-before-content: none !default;
3
5
  $df-breadcrumb-item-active-font-weight: 500 !default;
4
6
  $df-breadcrumb-item-before-font-weight: normal !default;
@@ -6,10 +8,14 @@ $df-breadcrumb-item-display: none !default;
6
8
  $df-breadcrumb-icon-display: none !default;
7
9
  $df-breadcrumb-item-two-last-items-display: inline !default;
8
10
 
11
+ $df-breadcrumb-item-icon-margin-inline-end: 0.125rem !default;
12
+
9
13
  $df-breadcrumb-icon-xs-display: inline !default;
10
14
  $df-breadcrumb-icon-color: shades-css-var('primary', 'inert-color') !default;
11
15
  $df-breadcrumb-icon-margin: 0rem 0.5rem !default;
12
- $df-breadcrumb-icon-angle-left-content: '\e92a' !default; // icon-angle-left
13
- $df-breadcrumb-icon-angle-right-content: '\e92b' !default; // icon-angle-right
16
+ $df-breadcrumb-icon-angle-left-content: '\f104' !default; // fa-angle-left
17
+ $df-breadcrumb-icon-angle-right-content: '\f105' !default; // fa-angle-right
14
18
  $df-breadcrumb-item-link-focus-box-shadow: var(--#{$prefix}link-focus-box-shadow) !default;
15
19
  $df-breadcrumb-item-link-outline: none !default;
20
+
21
+ $df-breadcrumb-separator-font: Font Awesome 6 Pro !default;