@design-factory/design-factory 20.0.0-next.0 → 20.0.0-next.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 (43) hide show
  1. package/design-factory-initial-branding.css +1 -1
  2. package/design-factory.css +2 -2
  3. package/fesm2022/design-factory.mjs +364 -371
  4. package/fesm2022/design-factory.mjs.map +1 -1
  5. package/index.d.ts +39 -121
  6. package/package.json +1 -1
  7. package/styles/scss/_common.variables.scss +2 -1
  8. package/styles/scss/_variables.scss +1 -0
  9. package/styles/scss/agnosui/_variables.scss +1 -1
  10. package/styles/scss/components/accordion/_accordion.scss +7 -0
  11. package/styles/scss/components/alert/_alert.scss +9 -6
  12. package/styles/scss/components/badge/_badge.mixins.scss +10 -0
  13. package/styles/scss/components/badge/_badge.scss +106 -50
  14. package/styles/scss/components/badge/_badge.variables.scss +8 -0
  15. package/styles/scss/components/brand-color/_brand-color.mixins.scss +2 -2
  16. package/styles/scss/components/breadcrumbs/_breadcrumbs.scss +4 -1
  17. package/styles/scss/components/breadcrumbs/_breadcrumbs.variables.scss +3 -1
  18. package/styles/scss/components/button/_button.scss +8 -0
  19. package/styles/scss/components/card/_card.scss +14 -0
  20. package/styles/scss/components/card/_card.variables.scss +2 -0
  21. package/styles/scss/components/carousel/_carousel.scss +2 -2
  22. package/styles/scss/components/datepicker/_datepicker.scss +2 -1
  23. package/styles/scss/components/dropdown/_dropdown.scss +1 -1
  24. package/styles/scss/components/icon/_amadeus-icon.scss +2 -2
  25. package/styles/scss/components/inputs/_inputs.mixin.scss +2 -2
  26. package/styles/scss/components/inputs/_inputs.scss +3 -3
  27. package/styles/scss/components/modal/_modal.scss +17 -4
  28. package/styles/scss/components/modal/_modal.variables.scss +1 -0
  29. package/styles/scss/components/pagination/_pagination.scss +5 -0
  30. package/styles/scss/components/rating/_rating.scss +18 -2
  31. package/styles/scss/components/scrollspy/_scrollspy.scss +1 -1
  32. package/styles/scss/components/sidenav/_sidenav.scss +2 -2
  33. package/styles/scss/components/stepper/_stepper.variables.scss +3 -3
  34. package/styles/scss/components/tabs/_tabs.scss +5 -1
  35. package/styles/scss/components/timepicker/_timepicker.scss +5 -0
  36. package/styles/scss/components/timepicker/_timepicker.variables.scss +1 -0
  37. package/styles/scss/components/toggle/_toggle.scss +2 -1
  38. package/styles/scss/components/toggle/_toggle.variables.scss +1 -0
  39. package/styles/scss/components/tooltip/_tooltip.scss +5 -0
  40. package/styles/scss/components/tooltip/_tooltip.variables.scss +4 -0
  41. package/styles/scss/df-styles.scss +1 -0
  42. package/styles/scss/themes/brand2023/_variables.scss +111 -12
  43. package/styles/scss/themes/brand2023/tokens/_figma.gen.scss +13 -13
package/index.d.ts CHANGED
@@ -1,11 +1,10 @@
1
1
  import * as i0 from '@angular/core';
2
- import { AfterViewInit, ElementRef, Renderer2, OnInit, OnDestroy, DoCheck, RendererFactory2, ComponentRef, EmbeddedViewRef, TemplateRef, Type, ComponentFactoryResolver, ApplicationRef, Injector, OnChanges, EventEmitter, ChangeDetectorRef, NgZone, SimpleChanges, AfterViewChecked, AfterContentInit, InjectionToken } from '@angular/core';
2
+ import { AfterViewInit, ElementRef, Renderer2, OnInit, OnDestroy, AfterViewChecked, DoCheck, ComponentRef, EmbeddedViewRef, TemplateRef, Type, OnChanges, EventEmitter, ChangeDetectorRef, NgZone, SimpleChanges, AfterContentInit, InjectionToken } from '@angular/core';
3
3
  import * as i2 from '@ng-bootstrap/ng-bootstrap';
4
- import { NgbDate, NgbDropdown, NgbDatepicker, NgbCalendar, NgbDateParserFormatter, NgbModal, NgbModalOptions, NgbModalRef, NgbPopoverConfig, NgbConfig } from '@ng-bootstrap/ng-bootstrap';
4
+ import { NgbDate, NgbDropdown, NgbDatepicker, NgbModalOptions, NgbModalRef, NgbPopoverConfig } from '@ng-bootstrap/ng-bootstrap';
5
5
  import { Observable } from 'rxjs';
6
6
  import { ControlValueAccessor } from '@angular/forms';
7
7
  import * as i4 from '@ng-select/ng-select';
8
- import { NgSelectComponent } from '@ng-select/ng-select';
9
8
 
10
9
  declare class SkipLinkDirective {
11
10
  readonly inFocus: i0.WritableSignal<boolean>;
@@ -61,7 +60,7 @@ declare class DfAlertModule {
61
60
  /**
62
61
  * My dfDatepickerRange directive
63
62
  */
64
- declare class DfDatepickerRangeDirective implements OnInit, OnDestroy, DoCheck, AfterViewInit {
63
+ declare class DfDatepickerRangeDirective implements OnInit, OnDestroy, AfterViewChecked, AfterViewInit {
65
64
  private inputsElements;
66
65
  private isDisabled;
67
66
  private readonly siblingsNode;
@@ -81,7 +80,7 @@ declare class DfDatepickerRangeDirective implements OnInit, OnDestroy, DoCheck,
81
80
  * if the direction (rtl / ltr) is changing dynamically
82
81
  */
83
82
  updateDirection(): void;
84
- ngDoCheck(): void;
83
+ ngAfterViewChecked(): void;
85
84
  ngOnDestroy(): void;
86
85
  static ɵfac: i0.ɵɵFactoryDeclaration<DfDatepickerRangeDirective, never>;
87
86
  static ɵdir: i0.ɵɵDirectiveDeclaration<DfDatepickerRangeDirective, "[dfDatepickerRange]", ["dfDatepickerRange"], {}, {}, never, never, true, never>;
@@ -89,7 +88,6 @@ declare class DfDatepickerRangeDirective implements OnInit, OnDestroy, DoCheck,
89
88
 
90
89
  declare class DfTriggerClickDirective {
91
90
  private readonly elementRef;
92
- constructor(elementRef: ElementRef);
93
91
  triggerClick(event: KeyboardEvent | MouseEvent): void;
94
92
  static ɵfac: i0.ɵɵFactoryDeclaration<DfTriggerClickDirective, never>;
95
93
  static ɵdir: i0.ɵɵDirectiveDeclaration<DfTriggerClickDirective, "[dfTriggerClick]", never, {}, {}, never, never, true, never>;
@@ -136,8 +134,6 @@ declare class DfDatePickerModule {
136
134
  }
137
135
 
138
136
  declare class DfDatepickerRangeService {
139
- private readonly calendar;
140
- private readonly formatter;
141
137
  fromDate: NgbDate | null;
142
138
  toDate: NgbDate | null;
143
139
  hoveredDate: NgbDate | null;
@@ -148,7 +144,8 @@ declare class DfDatepickerRangeService {
148
144
  dropDown?: NgbDropdown;
149
145
  isClosingOnToDate: boolean;
150
146
  datepicker: NgbDatepicker | null;
151
- constructor(calendar: NgbCalendar, formatter: NgbDateParserFormatter);
147
+ private readonly calendar;
148
+ private readonly formatter;
152
149
  onDateSelection(date: NgbDate): void;
153
150
  setFocus(): void;
154
151
  returnFocus(): void;
@@ -218,10 +215,8 @@ declare class DfIconModule {
218
215
  * Please note that `NgbModal` adds 'modal-open' class to the body while DfModalService adds 'df-modal-open' class. Both classes include the same styles, but you may need to update your stylesheets if you were overriding 'df-modal-open' in your application.
219
216
  */
220
217
  declare class DfModalService {
221
- private modalService;
222
- private rendererFactory;
223
- private renderer;
224
- constructor(modalService: NgbModal, rendererFactory: RendererFactory2);
218
+ private readonly renderer;
219
+ private readonly modalService;
225
220
  open(content: any, options?: NgbModalOptions): NgbModalRef;
226
221
  static ɵfac: i0.ɵɵFactoryDeclaration<DfModalService, never>;
227
222
  static ɵprov: i0.ɵɵInjectableDeclaration<DfModalService>;
@@ -392,60 +387,8 @@ declare class DfProgressIndicatorRef {
392
387
  constructor(containerRef: ComponentRef<DfProgressIndicatorContainerComponent>, contentRef: ComponentRef<unknown> | EmbeddedViewRef<unknown>, backdropRef?: ComponentRef<DfProgressIndicatorBackdropComponent> | undefined);
393
388
  }
394
389
 
395
- /** Type for the callback used to revert the scrollbar compensation. */
396
- type CompensationReverter = () => void;
397
- /**
398
- * Utility to handle the scrollbar.
399
- *
400
- * It allows to compensate the lack of a vertical scrollbar by adding an
401
- * equivalent padding on the right of the body, and to remove this compensation.
402
- *
403
- * It is a copy of https://github.com/ng-bootstrap/ng-bootstrap/blob/master/src/util/scrollbar.ts
404
- */
405
- declare class ScrollBar {
406
- private readonly _document;
407
- constructor(_document: any);
408
- /**
409
- * To be called right before a potential vertical scrollbar would be removed:
410
- *
411
- * - if there was a scrollbar, adds some compensation padding to the body
412
- * to keep the same layout as when the scrollbar is there
413
- * - if there was none, there is nothing to do
414
- *
415
- * @return a callback used to revert the compensation (noop if there was none,
416
- * otherwise a function removing the padding)
417
- */
418
- compensate(): CompensationReverter;
419
- /**
420
- * Adds a padding of the given width on the right of the body.
421
- *
422
- * @return a callback used to revert the padding to its previous value
423
- */
424
- private _adjustBody;
425
- /**
426
- * Tells whether a scrollbar is currently present on the body.
427
- *
428
- * @return true if scrollbar is present, false otherwise
429
- */
430
- private _isPresent;
431
- /**
432
- * Calculates and returns the width of a scrollbar.
433
- *
434
- * @return the width of a scrollbar on this page
435
- */
436
- private _getWidth;
437
- static ɵfac: i0.ɵɵFactoryDeclaration<ScrollBar, never>;
438
- static ɵprov: i0.ɵɵInjectableDeclaration<ScrollBar>;
439
- }
440
-
441
390
  type DfProgressIndicatorContent<T> = undefined | TemplateRef<T> | Type<T> | DfProgressIndicatorContentSpinner | DfProgressIndicatorContentProgressBar;
442
391
  declare class DfProgressIndicatorService {
443
- private readonly document;
444
- private readonly rendererFactory;
445
- private readonly componentFactoryResolver;
446
- private readonly appRef;
447
- private readonly injector;
448
- private readonly scrollbar;
449
392
  private readonly renderer;
450
393
  private readonly BODY_CLASS;
451
394
  private readonly containerAttributes;
@@ -453,7 +396,10 @@ declare class DfProgressIndicatorService {
453
396
  private readonly defaultSpinnerAttributes;
454
397
  private readonly defaultProgressBarAttributes;
455
398
  private readonly activeInstances;
456
- constructor(document: Document, rendererFactory: RendererFactory2, componentFactoryResolver: ComponentFactoryResolver, appRef: ApplicationRef, injector: Injector, scrollbar: ScrollBar);
399
+ private readonly document;
400
+ private readonly appRef;
401
+ private readonly environmentInjector;
402
+ private readonly scrollbar;
457
403
  open<T>(content: DfProgressIndicatorContent<T>, options?: DfProgressIndicatorOptions): DfProgressIndicatorRef;
458
404
  close(progressIndicatorRef: DfProgressIndicatorRef): void;
459
405
  /**
@@ -1058,23 +1004,6 @@ declare class DfSliderModule {
1058
1004
  static ɵinj: i0.ɵɵInjectorDeclaration<DfSliderModule>;
1059
1005
  }
1060
1006
 
1061
- /**
1062
- * A configuration service for the [DfSideNavService](#/components/sidenav/api#DfSideNavComponent) component.
1063
- *
1064
- * You can inject this service, typically in your root component, and customize its properties
1065
- * to provide default values for your sidenav used in the application.
1066
- */
1067
- declare class DfSideNavConfig {
1068
- isMinmized: boolean;
1069
- isCollapsed: boolean;
1070
- isPresent: boolean;
1071
- isInMenuOverlay: boolean;
1072
- isAppOverlay: boolean;
1073
- isAppOverlayMode: boolean;
1074
- static ɵfac: i0.ɵɵFactoryDeclaration<DfSideNavConfig, never>;
1075
- static ɵprov: i0.ɵɵInjectableDeclaration<DfSideNavConfig>;
1076
- }
1077
-
1078
1007
  interface DfSideNavItem {
1079
1008
  value: string;
1080
1009
  title?: string;
@@ -1104,8 +1033,8 @@ declare enum DfNavItemType {
1104
1033
  * Creating a sidenav is straightforward: use [DfSideNavComponent](#/components/sidenav/api#DfSideNavComponent) component
1105
1034
  */
1106
1035
  declare class DfSideNavService implements OnDestroy {
1107
- private readonly config;
1108
1036
  type: typeof DfNavItemType;
1037
+ private readonly config;
1109
1038
  private readonly _sideNavItems$;
1110
1039
  private readonly _isMinmized$;
1111
1040
  private readonly _isCollapsed$;
@@ -1116,7 +1045,7 @@ declare class DfSideNavService implements OnDestroy {
1116
1045
  private _isAppOverlayMode;
1117
1046
  private _items;
1118
1047
  private readonly subscription;
1119
- constructor(config: DfSideNavConfig);
1048
+ constructor();
1120
1049
  ngOnDestroy(): void;
1121
1050
  /**
1122
1051
  * Use this to init the list of Elements from your sidenav
@@ -1253,20 +1182,17 @@ declare class DfSideNavService implements OnDestroy {
1253
1182
  }
1254
1183
 
1255
1184
  declare class DfSideNavHeaderDirective {
1256
- templateRef: TemplateRef<any>;
1257
- constructor(templateRef: TemplateRef<any>);
1185
+ readonly templateRef: TemplateRef<any>;
1258
1186
  static ɵfac: i0.ɵɵFactoryDeclaration<DfSideNavHeaderDirective, never>;
1259
1187
  static ɵdir: i0.ɵɵDirectiveDeclaration<DfSideNavHeaderDirective, "ng-template[dfSideNavHeader]", never, {}, {}, never, never, true, never>;
1260
1188
  }
1261
1189
  declare class DfSideNavIconDirective {
1262
- templateRef: TemplateRef<any>;
1263
- constructor(templateRef: TemplateRef<any>);
1190
+ readonly templateRef: TemplateRef<any>;
1264
1191
  static ɵfac: i0.ɵɵFactoryDeclaration<DfSideNavIconDirective, never>;
1265
1192
  static ɵdir: i0.ɵɵDirectiveDeclaration<DfSideNavIconDirective, "ng-template[dfSideNavIcon]", never, {}, {}, never, never, true, never>;
1266
1193
  }
1267
1194
  declare class DfSideNavItemDirective {
1268
- templateRef: TemplateRef<any>;
1269
- constructor(templateRef: TemplateRef<any>);
1195
+ readonly templateRef: TemplateRef<any>;
1270
1196
  static ɵfac: i0.ɵɵFactoryDeclaration<DfSideNavItemDirective, never>;
1271
1197
  static ɵdir: i0.ɵɵDirectiveDeclaration<DfSideNavItemDirective, "ng-template[dfSideNavItem]", never, {}, {}, never, never, true, never>;
1272
1198
  }
@@ -1296,7 +1222,6 @@ declare class DfSideNavComponent implements OnDestroy {
1296
1222
  declare class DfManageSideNavDirective implements AfterViewChecked {
1297
1223
  private readonly element;
1298
1224
  private readonly renderer;
1299
- constructor(element: ElementRef, renderer: Renderer2);
1300
1225
  ngAfterViewChecked(): void;
1301
1226
  static ɵfac: i0.ɵɵFactoryDeclaration<DfManageSideNavDirective, never>;
1302
1227
  static ɵdir: i0.ɵɵDirectiveDeclaration<DfManageSideNavDirective, "[dfManageSideNav]", never, {}, {}, never, never, true, never>;
@@ -1331,19 +1256,18 @@ declare class DfExcludeTrapDirective implements OnDestroy, OnInit {
1331
1256
  }
1332
1257
 
1333
1258
  declare class DfManageNavSelectDirective implements OnInit {
1259
+ private direction;
1334
1260
  private readonly select;
1335
1261
  private readonly element;
1336
1262
  private readonly rtlDirectionService;
1337
1263
  private readonly renderer;
1338
- private direction;
1339
- constructor(select: NgSelectComponent, element: ElementRef, rtlDirectionService: DfDirectionDetectionService, renderer: Renderer2);
1340
1264
  ngOnInit(): void;
1341
1265
  handleKeyDown(event: any): void;
1342
1266
  handleKeyDownBackspace(event: any): void;
1343
1267
  handleKeyDownRight(event: any): void;
1344
1268
  arrowRightInnerHandler(event: any): void;
1345
1269
  arrowLeftInnerHandler(event: any): void;
1346
- static ɵfac: i0.ɵɵFactoryDeclaration<DfManageNavSelectDirective, [{ host: true; }, null, null, null]>;
1270
+ static ɵfac: i0.ɵɵFactoryDeclaration<DfManageNavSelectDirective, never>;
1347
1271
  static ɵdir: i0.ɵɵDirectiveDeclaration<DfManageNavSelectDirective, "[dfManageNavSelect]", never, {}, {}, never, never, true, never>;
1348
1272
  }
1349
1273
 
@@ -1647,22 +1571,6 @@ declare class DfSideNavCollapseDirective implements OnInit {
1647
1571
  static ɵdir: i0.ɵɵDirectiveDeclaration<DfSideNavCollapseDirective, "[dfSideNavCollapse]", ["dfSideNavCollapse"], { "dfSideNavCollapse": { "alias": "dfSideNavCollapse"; "required": true; "isSignal": true; }; "minimized": { "alias": "minimized"; "required": false; "isSignal": true; }; }, { "dfSideNavCollapseChange": "dfSideNavCollapseChange"; "shown": "shown"; "hidden": "hidden"; }, never, never, true, never>;
1648
1572
  }
1649
1573
 
1650
- /**
1651
- * A configuration service for the [DfSideNavCollapseDirective](#/components/sidenav/api#DfSideNavCollapseDirective) component.
1652
- *
1653
- * You can inject this service, typically in your root component, and customize its properties
1654
- * to provide default values for the sideNav used in the application.
1655
- */
1656
- declare class DfSideNavCollapseConfig {
1657
- private readonly _ngbConfig;
1658
- private _animation?;
1659
- constructor(_ngbConfig: NgbConfig);
1660
- get animation(): boolean;
1661
- set animation(animation: boolean);
1662
- static ɵfac: i0.ɵɵFactoryDeclaration<DfSideNavCollapseConfig, never>;
1663
- static ɵprov: i0.ɵɵInjectableDeclaration<DfSideNavCollapseConfig>;
1664
- }
1665
-
1666
1574
  declare class DfSideNavCollapseModule {
1667
1575
  static ɵfac: i0.ɵɵFactoryDeclaration<DfSideNavCollapseModule, never>;
1668
1576
  static ɵmod: i0.ɵɵNgModuleDeclaration<DfSideNavCollapseModule, never, [typeof DfSideNavCollapseDirective], [typeof DfSideNavCollapseDirective]>;
@@ -1675,6 +1583,23 @@ declare class DfSideNavModule {
1675
1583
  static ɵinj: i0.ɵɵInjectorDeclaration<DfSideNavModule>;
1676
1584
  }
1677
1585
 
1586
+ /**
1587
+ * A configuration service for the [DfSideNavService](#/components/sidenav/api#DfSideNavComponent) component.
1588
+ *
1589
+ * You can inject this service, typically in your root component, and customize its properties
1590
+ * to provide default values for your sidenav used in the application.
1591
+ */
1592
+ declare class DfSideNavConfig {
1593
+ isMinmized: boolean;
1594
+ isCollapsed: boolean;
1595
+ isPresent: boolean;
1596
+ isInMenuOverlay: boolean;
1597
+ isAppOverlay: boolean;
1598
+ isAppOverlayMode: boolean;
1599
+ static ɵfac: i0.ɵɵFactoryDeclaration<DfSideNavConfig, never>;
1600
+ static ɵprov: i0.ɵɵInjectableDeclaration<DfSideNavConfig>;
1601
+ }
1602
+
1678
1603
  /**
1679
1604
  * A service for managing the sidenav panel animation.
1680
1605
  * This service is included at root level
@@ -1682,9 +1607,7 @@ declare class DfSideNavModule {
1682
1607
  * Creating a sidenav is straightforward: use [DfSideNavComponent](#/components/sidenav/api#DfSideNavComponent) component
1683
1608
  */
1684
1609
  declare class DfSideNavCollapseService {
1685
- private readonly _config;
1686
1610
  private readonly _sideNavAnimation$;
1687
- constructor(_config: DfSideNavCollapseConfig);
1688
1611
  get sideNavAnimation$(): Observable<boolean>;
1689
1612
  /**
1690
1613
  * Use this to activate or desactivate the animation for the sideNav
@@ -1716,12 +1639,10 @@ declare const BREAKPOINTS_VARS: InjectionToken<{
1716
1639
  xxxl: string;
1717
1640
  }>;
1718
1641
  declare class DfBreakpoints {
1642
+ private readonly _breakPoints$;
1719
1643
  private readonly _breakPointsVar;
1720
1644
  private readonly platformID;
1721
- private readonly _breakPoints$;
1722
- constructor(_breakPointsVar: {
1723
- [breakpoint: string]: string;
1724
- }, platformID: Object);
1645
+ constructor();
1725
1646
  get breakPoints$(): Observable<{} | null>;
1726
1647
  private initBreakpoints;
1727
1648
  generate(sizes: any[][]): {};
@@ -1736,17 +1657,15 @@ interface MediaBreakpointsState {
1736
1657
  }
1737
1658
  declare class DfMediaQuery {
1738
1659
  private readonly _isBrowser;
1739
- constructor(platformId: Object);
1740
1660
  notSupported(query: string): Partial<MediaQueryList>;
1741
1661
  matchMedia(query: string): MediaQueryList;
1742
1662
  static ɵfac: i0.ɵɵFactoryDeclaration<DfMediaQuery, never>;
1743
1663
  static ɵprov: i0.ɵɵInjectableDeclaration<DfMediaQuery>;
1744
1664
  }
1745
1665
  declare class DfMediaObserver implements OnDestroy {
1746
- private readonly _mediaQuery;
1747
1666
  private readonly _subscription;
1748
1667
  private readonly _queries;
1749
- constructor(_mediaQuery: DfMediaQuery);
1668
+ private readonly _mediaQuery;
1750
1669
  /**
1751
1670
  * Verifies if at least one of the provided media-queries is matching
1752
1671
  * the current viewport
@@ -1773,7 +1692,6 @@ declare class DfMediaObserver implements OnDestroy {
1773
1692
  declare class DfMedia {
1774
1693
  private readonly mediaObserver;
1775
1694
  private readonly _breakPointsService;
1776
- constructor(mediaObserver: DfMediaObserver, _breakPointsService: DfBreakpoints);
1777
1695
  initQueries(mediaOrBreakpoints: string | string[], breakPoints?: {
1778
1696
  [key: string]: string;
1779
1697
  }): string[];
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@design-factory/design-factory",
3
3
  "description": "Amadeus design system",
4
4
  "license": "BSD-3-Clause",
5
- "version": "20.0.0-next.0",
5
+ "version": "20.0.0-next.1",
6
6
  "dependencies": {
7
7
  "tslib": "^2.0.0"
8
8
  },
@@ -16,11 +16,12 @@ $df-zindex-topmost: 10000 !default;
16
16
  $df-font-size-xs: $font-size-sm !default;
17
17
  $df-form-placeholder-font-style: italic !default;
18
18
  // Merge DF Spacer with BS ones
19
+ // @deprecated - will be removed in version 21, use $spacer-4 instead of '75'
19
20
  // stylelint-disable-next-line scss/dollar-variable-pattern, scss/dollar-variable-default
20
21
  $spacers: map.merge(
21
22
  (
22
23
  '75': (
23
- $spacer * 0.75
24
+ calc($spacer * 0.75)
24
25
  )
25
26
  ),
26
27
  $spacers
@@ -55,6 +55,7 @@
55
55
  @import 'components/sidenav/sidenav.variables';
56
56
  @import 'components/footer/footer.variables';
57
57
  @import 'components/separator/separator.variables';
58
+ @import 'components/timepicker/timepicker.variables';
58
59
  @import 'components/toast/toast.variables';
59
60
  @import 'components/scrollspy/scrollspy.variables';
60
61
  @import 'components/tooltip/tooltip.variables';
@@ -23,6 +23,6 @@
23
23
  $au-tree-expand-icon-color-default: $primary !default,
24
24
  $au-tree-expand-icon-color-hover: $primary-800 !default,
25
25
  $au-tree-expand-icon-background-color-hover: var(--#{$prefix}primary-200) !default,
26
-
26
+ $au-tree-expand-icon-margin-inline-end: var(--#{$prefix}spacing-3) !default,
27
27
  $au-slider-tick-neutral-color: $gray-600 !default
28
28
  );
@@ -72,6 +72,13 @@
72
72
  .df-accordion-number {
73
73
  color: var(--#{$prefix}accordion-title-number-color);
74
74
  }
75
+
76
+ &:focus {
77
+ box-shadow: none;
78
+ }
79
+ &:focus-visible {
80
+ box-shadow: var(--#{$prefix}accordion-btn-focus-box-shadow);
81
+ }
75
82
  }
76
83
 
77
84
  // Reverse accordion
@@ -73,12 +73,8 @@
73
73
  }
74
74
 
75
75
  .df-alert-collapsed-text {
76
- @include ltr {
77
- margin-left: var(--#{$prefix}alert-icon-margin-start);
78
- }
79
- @include rtl {
80
- margin-right: var(--#{$prefix}alert-icon-margin-start);
81
- }
76
+ margin-block-start: var(--#{$prefix}spacing-5);
77
+ margin-inline-start: var(--#{$prefix}alert-icon-margin-start);
82
78
  }
83
79
  }
84
80
 
@@ -86,6 +82,13 @@
86
82
  .btn-close {
87
83
  padding-top: var(--#{$prefix}alert-btn-close-padding-y);
88
84
  padding-bottom: var(--#{$prefix}alert-btn-close-padding-y);
85
+
86
+ &:focus {
87
+ box-shadow: none;
88
+ }
89
+ &:focus-visible {
90
+ box-shadow: var(--#{$prefix}btn-close-focus-shadow);
91
+ }
89
92
  }
90
93
 
91
94
  // Variants of the alerts
@@ -13,3 +13,13 @@
13
13
  box-shadow: none;
14
14
  }
15
15
  }
16
+
17
+ @mixin df-badge-sizing($height, $font-size, $padding-inline, $close-btn-width) {
18
+ font-size: $font-size;
19
+ height: $height;
20
+ --#{$prefix}badge-padding-x: #{$padding-inline};
21
+
22
+ button {
23
+ width: $close-btn-width;
24
+ }
25
+ }
@@ -24,6 +24,7 @@ $df-lightMappedColors: () !default;
24
24
  @if meta.variable-exists($name: 'df-enableBranding2023') and $df-enableBranding2023 {
25
25
  background-color: var(--#{$prefix}badge-background-color) !important;
26
26
  }
27
+
27
28
  &:not(.rounded-pill):not(.df-badge-dot) {
28
29
  &:not(.df-closable) {
29
30
  &:hover:not([disabled]):not(.disabled) {
@@ -93,7 +94,7 @@ $df-lightMappedColors: () !default;
93
94
  // interactive badges
94
95
  &:not(.rounded-pill):not(.df-badge-dot) {
95
96
  cursor: pointer;
96
- align-items: stretch;
97
+
97
98
  &[disabled],
98
99
  &.disabled,
99
100
  &:has([disabled]),
@@ -102,7 +103,7 @@ $df-lightMappedColors: () !default;
102
103
  }
103
104
  }
104
105
 
105
- &:focus,
106
+ &:focus-visible,
106
107
  &.focus {
107
108
  outline: $df-badge-button-focus-outline;
108
109
  box-shadow: var(--#{$prefix}badge-focus-box-shadow);
@@ -231,11 +232,13 @@ $df-lightMappedColors: () !default;
231
232
  }
232
233
  }
233
234
  }
235
+
234
236
  &[disabled],
235
237
  &.disabled,
236
238
  &:has([disabled]),
237
239
  &:has(.disabled) {
238
240
  @include df-disable-badge(var(--#{$prefix}disabled-color), var(--#{$prefix}badge-background-color), true);
241
+
239
242
  & > *:hover {
240
243
  cursor: var(--#{$prefix}disabled-cursor);
241
244
  }
@@ -304,63 +307,116 @@ $df-lightMappedColors: () !default;
304
307
  }
305
308
  }
306
309
  }
307
- }
308
310
 
309
- .badge.df-closable {
310
- // badge interactive closable
311
- --#{$prefix}badge-interactive-container-padding-y: 0;
312
- --#{$prefix}badge-interactive-container-padding-start: 0;
313
- --#{$prefix}badge-interactive-container-padding-end: 0;
314
- --#{$prefix}badge-interactive-button-start-radius: #{$badge-border-radius};
315
- --#{$prefix}badge-interactive-button-padding-end: #{$df-badge-interactive-button-padding-end};
316
- --#{$prefix}badge-interactive-close-box-shadow: #{$df-btn-focus-box-shadow};
317
- --#{$prefix}badge-interactive-close-end-radius: #{$badge-border-radius};
318
- --#{$prefix}badge-interactive-close-padding: #{$df-badge-interactive-close-padding};
319
- --#{$prefix}badge-interactive-close-border: #{$df-badge-interactive-close-border};
320
- --#{$prefix}badge-interactive-close-outline: #{$df-badge-button-focus-outline};
321
- padding-block: var(--#{$prefix}badge-interactive-container-padding-y);
322
- padding-inline: var(--#{$prefix}badge-interactive-container-padding-start)
323
- var(--#{$prefix}badge-interactive-container-padding-end);
324
-
325
- &:focus-within {
326
- outline: var(--#{$prefix}badge-interactive-close-outline);
327
- box-shadow: var(--#{$prefix}badge-interactive-close-box-shadow);
328
- }
311
+ &.df-closable {
312
+ // badge interactive closable
313
+ --#{$prefix}badge-interactive-container-padding-y: 0;
314
+ --#{$prefix}badge-interactive-container-padding-start: 0;
315
+ --#{$prefix}badge-interactive-container-padding-end: 0;
316
+ --#{$prefix}badge-interactive-button-start-radius: #{$badge-border-radius};
317
+ --#{$prefix}badge-interactive-button-padding-end: #{$df-badge-interactive-button-padding-end};
318
+ --#{$prefix}badge-interactive-close-box-shadow: #{$df-btn-focus-box-shadow};
319
+ --#{$prefix}badge-interactive-close-end-radius: #{$badge-border-radius};
320
+ --#{$prefix}badge-interactive-close-padding: #{$df-badge-interactive-close-padding};
321
+ --#{$prefix}badge-interactive-close-border: #{$df-badge-interactive-close-border};
322
+ --#{$prefix}badge-interactive-close-outline: #{$df-badge-button-focus-outline};
323
+ padding-block: var(--#{$prefix}badge-interactive-container-padding-y);
324
+ padding-inline: var(--#{$prefix}badge-interactive-container-padding-start)
325
+ var(--#{$prefix}badge-interactive-container-padding-end);
326
+
327
+ &:has(button:focus-visible) {
328
+ outline: var(--#{$prefix}badge-interactive-close-outline);
329
+ box-shadow: var(--#{$prefix}badge-interactive-close-box-shadow);
330
+ }
329
331
 
330
- *:focus,
331
- *.focus {
332
- outline: var(--#{$prefix}badge-interactive-close-outline);
333
- box-shadow: var(--#{$prefix}badge-inner-elements-focus-box-shadow);
334
- }
332
+ *:focus-visible,
333
+ *.focus {
334
+ outline: var(--#{$prefix}badge-interactive-close-outline);
335
+ box-shadow: var(--#{$prefix}badge-inner-elements-focus-box-shadow);
336
+ }
337
+
338
+ button {
339
+ background-color: inherit;
340
+ color: inherit;
341
+
342
+ &:hover {
343
+ cursor: pointer;
344
+ }
335
345
 
336
- button {
337
- background-color: inherit;
338
- color: inherit;
346
+ border: var(--#{$prefix}badge-interactive-close-border);
347
+ padding: var(--#{$prefix}badge-interactive-close-padding);
348
+ border-start-end-radius: var(--#{$prefix}badge-interactive-close-end-radius);
349
+ border-end-end-radius: var(--#{$prefix}badge-interactive-close-end-radius);
350
+ }
339
351
 
340
- &:hover {
341
- cursor: pointer;
352
+ &:not(.rounded-pill) {
353
+ // round-pill does not have internal button as span
354
+ // add
355
+ span[role='button'] {
356
+ // We put the badge padding on the button except for the side that touches the close button
357
+ padding-block: var(--#{$prefix}badge-padding-y);
358
+ padding-inline: var(--#{$prefix}badge-padding-x) var(--#{$prefix}badge-interactive-button-padding-end);
359
+ border-start-start-radius: var(--#{$prefix}badge-interactive-button-start-radius);
360
+ border-end-start-radius: var(--#{$prefix}badge-interactive-button-start-radius);
361
+ }
342
362
  }
343
363
 
344
- border: var(--#{$prefix}badge-interactive-close-border);
345
- padding: var(--#{$prefix}badge-interactive-close-padding);
346
- border-start-end-radius: var(--#{$prefix}badge-interactive-close-end-radius);
347
- border-end-end-radius: var(--#{$prefix}badge-interactive-close-end-radius);
364
+ &.rounded-pill {
365
+ --#{$prefix}badge-interactive-close-end-radius: #{$border-radius-pill};
366
+ --#{$prefix}badge-interactive-container-padding-start: var(--#{$prefix}badge-padding-x);
367
+ }
348
368
  }
349
369
 
350
- &:not(.rounded-pill) {
351
- // round-pill does not have internal button as span
352
- // add
353
- span[role='button'] {
354
- // We put the badge padding on the button except for the side that touches the close button
355
- padding-block: var(--#{$prefix}badge-padding-y);
356
- padding-inline: var(--#{$prefix}badge-padding-x) var(--#{$prefix}badge-interactive-button-padding-end);
357
- border-start-start-radius: var(--#{$prefix}badge-interactive-button-start-radius);
358
- border-end-start-radius: var(--#{$prefix}badge-interactive-button-start-radius);
370
+ //sizing
371
+ @if meta.variable-exists($name: 'df-enableBranding2023') and $df-enableBranding2023 {
372
+ // TODO: when removing old branding move it to the .df-closable class and merge the padding
373
+ &,
374
+ &.df-closable {
375
+ &.rounded-pill > button {
376
+ margin-inline-start: var(--#{$prefix}spacing-1);
377
+ }
378
+
379
+ button,
380
+ [role='button'] {
381
+ height: 100%;
382
+ padding: unset;
383
+ display: flex;
384
+ justify-content: center;
385
+ align-items: center;
386
+ }
359
387
  }
360
- }
361
388
 
362
- &.rounded-pill {
363
- --#{$prefix}badge-interactive-close-end-radius: #{$border-radius-pill};
364
- --#{$prefix}badge-interactive-container-padding-start: var(--#{$prefix}badge-padding-x);
389
+ font-weight: var(--#{$prefix}typo-weight-medium);
390
+
391
+ @include df-badge-sizing(
392
+ $df-badge-height,
393
+ var(--#{$prefix}typo-sizing-xsmall),
394
+ var(--#{$prefix}spacing-3),
395
+ $df-badge-close-button-width
396
+ );
397
+ &.df-badge-sm {
398
+ @include df-badge-sizing(
399
+ $df-badge-height-sm,
400
+ var(--#{$prefix}typo-sizing-xsmall),
401
+ var(--#{$prefix}spacing-3),
402
+ $df-badge-close-button-width
403
+ );
404
+ }
405
+ &.df-badge-lg {
406
+ @include df-badge-sizing(
407
+ $df-badge-height-lg,
408
+ var(--#{$prefix}typo-sizing-small),
409
+ var(--#{$prefix}spacing-4),
410
+ $df-badge-close-button-width-lg
411
+ );
412
+ }
413
+ &.df-badge-xl {
414
+ @include df-badge-sizing(
415
+ $df-badge-height-xl,
416
+ var(--#{$prefix}typo-sizing-default),
417
+ var(--#{$prefix}spacing-5),
418
+ $df-badge-close-button-width-xl
419
+ );
420
+ }
365
421
  }
366
422
  }
@@ -18,3 +18,11 @@ $df-badge-box-shadow-color: var(--#{$prefix}box-shadow-color) !default;
18
18
 
19
19
  $df-badge-inner-elements-focus-box-shadow: none !default;
20
20
  $df-badge-text-transform: none !default;
21
+
22
+ $df-badge-height-sm: 1.25rem !default; // 20px
23
+ $df-badge-height: 1.5rem !default; // 24px
24
+ $df-badge-height-lg: 1.875rem !default; // 30px
25
+ $df-badge-height-xl: 2.5rem !default; // 40px
26
+ $df-badge-close-button-width: 1.5rem !default; // 24px
27
+ $df-badge-close-button-width-lg: 1.75rem !default; // 26px
28
+ $df-badge-close-button-width-xl: 2rem !default; // 28px
@@ -7,7 +7,7 @@
7
7
  button#{$parent} {
8
8
  @if meta.variable-exists($name: 'df-enableBranding2023') and $df-enableBranding2023 {
9
9
  --#{$prefix}box-shadow-color: #{shades-css-var($colorName, 'bg-color', true)};
10
- &:focus {
10
+ &:focus-visible {
11
11
  background-color: shades-css-var($colorName, 'bg-color') !important;
12
12
  }
13
13
  &:hover {
@@ -20,7 +20,7 @@
20
20
  }
21
21
  } @else {
22
22
  &:hover,
23
- &:focus {
23
+ &:focus-visible {
24
24
  background-color: color.adjust($color, $lightness: -10%) !important;
25
25
  }
26
26
  }