@mintplayer/ng-bootstrap 21.30.0 → 21.31.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 (153) hide show
  1. package/fesm2022/mintplayer-ng-bootstrap-a11y.mjs +455 -0
  2. package/fesm2022/mintplayer-ng-bootstrap-a11y.mjs.map +1 -0
  3. package/fesm2022/mintplayer-ng-bootstrap-accordion.mjs +8 -5
  4. package/fesm2022/mintplayer-ng-bootstrap-accordion.mjs.map +1 -1
  5. package/fesm2022/mintplayer-ng-bootstrap-breadcrumb.mjs +10 -4
  6. package/fesm2022/mintplayer-ng-bootstrap-breadcrumb.mjs.map +1 -1
  7. package/fesm2022/mintplayer-ng-bootstrap-button-group.mjs +7 -4
  8. package/fesm2022/mintplayer-ng-bootstrap-button-group.mjs.map +1 -1
  9. package/fesm2022/mintplayer-ng-bootstrap-calendar.mjs +131 -3
  10. package/fesm2022/mintplayer-ng-bootstrap-calendar.mjs.map +1 -1
  11. package/fesm2022/mintplayer-ng-bootstrap-carousel.mjs +80 -48
  12. package/fesm2022/mintplayer-ng-bootstrap-carousel.mjs.map +1 -1
  13. package/fesm2022/mintplayer-ng-bootstrap-code-snippet.mjs +4 -1
  14. package/fesm2022/mintplayer-ng-bootstrap-code-snippet.mjs.map +1 -1
  15. package/fesm2022/mintplayer-ng-bootstrap-color-picker.mjs +218 -14
  16. package/fesm2022/mintplayer-ng-bootstrap-color-picker.mjs.map +1 -1
  17. package/fesm2022/mintplayer-ng-bootstrap-datatable.mjs +4 -3
  18. package/fesm2022/mintplayer-ng-bootstrap-datatable.mjs.map +1 -1
  19. package/fesm2022/mintplayer-ng-bootstrap-datepicker.mjs +2 -2
  20. package/fesm2022/mintplayer-ng-bootstrap-datepicker.mjs.map +1 -1
  21. package/fesm2022/mintplayer-ng-bootstrap-dock.mjs +294 -3
  22. package/fesm2022/mintplayer-ng-bootstrap-dock.mjs.map +1 -1
  23. package/fesm2022/mintplayer-ng-bootstrap-dropdown-menu.mjs +163 -18
  24. package/fesm2022/mintplayer-ng-bootstrap-dropdown-menu.mjs.map +1 -1
  25. package/fesm2022/mintplayer-ng-bootstrap-dropdown.mjs +179 -7
  26. package/fesm2022/mintplayer-ng-bootstrap-dropdown.mjs.map +1 -1
  27. package/fesm2022/mintplayer-ng-bootstrap-file-upload.mjs +14 -4
  28. package/fesm2022/mintplayer-ng-bootstrap-file-upload.mjs.map +1 -1
  29. package/fesm2022/mintplayer-ng-bootstrap-has-overlay.mjs +14 -0
  30. package/fesm2022/mintplayer-ng-bootstrap-has-overlay.mjs.map +1 -1
  31. package/fesm2022/mintplayer-ng-bootstrap-list-group.mjs +2 -1
  32. package/fesm2022/mintplayer-ng-bootstrap-list-group.mjs.map +1 -1
  33. package/fesm2022/mintplayer-ng-bootstrap-marquee.mjs +7 -4
  34. package/fesm2022/mintplayer-ng-bootstrap-marquee.mjs.map +1 -1
  35. package/fesm2022/mintplayer-ng-bootstrap-modal.mjs +70 -6
  36. package/fesm2022/mintplayer-ng-bootstrap-modal.mjs.map +1 -1
  37. package/fesm2022/mintplayer-ng-bootstrap-multiselect.mjs +5 -4
  38. package/fesm2022/mintplayer-ng-bootstrap-multiselect.mjs.map +1 -1
  39. package/fesm2022/mintplayer-ng-bootstrap-navbar-toggler.mjs +6 -6
  40. package/fesm2022/mintplayer-ng-bootstrap-navbar-toggler.mjs.map +1 -1
  41. package/fesm2022/mintplayer-ng-bootstrap-navbar.mjs +45 -13
  42. package/fesm2022/mintplayer-ng-bootstrap-navbar.mjs.map +1 -1
  43. package/fesm2022/mintplayer-ng-bootstrap-offcanvas.mjs +51 -5
  44. package/fesm2022/mintplayer-ng-bootstrap-offcanvas.mjs.map +1 -1
  45. package/fesm2022/mintplayer-ng-bootstrap-pagination.mjs +5 -3
  46. package/fesm2022/mintplayer-ng-bootstrap-pagination.mjs.map +1 -1
  47. package/fesm2022/mintplayer-ng-bootstrap-placeholder.mjs +18 -4
  48. package/fesm2022/mintplayer-ng-bootstrap-placeholder.mjs.map +1 -1
  49. package/fesm2022/mintplayer-ng-bootstrap-playlist-toggler.mjs +6 -6
  50. package/fesm2022/mintplayer-ng-bootstrap-playlist-toggler.mjs.map +1 -1
  51. package/fesm2022/mintplayer-ng-bootstrap-popover.mjs +61 -6
  52. package/fesm2022/mintplayer-ng-bootstrap-popover.mjs.map +1 -1
  53. package/fesm2022/mintplayer-ng-bootstrap-priority-nav.mjs +19 -4
  54. package/fesm2022/mintplayer-ng-bootstrap-priority-nav.mjs.map +1 -1
  55. package/fesm2022/mintplayer-ng-bootstrap-progress-bar.mjs +8 -5
  56. package/fesm2022/mintplayer-ng-bootstrap-progress-bar.mjs.map +1 -1
  57. package/fesm2022/mintplayer-ng-bootstrap-range.mjs +4 -3
  58. package/fesm2022/mintplayer-ng-bootstrap-range.mjs.map +1 -1
  59. package/fesm2022/mintplayer-ng-bootstrap-rating.mjs +34 -4
  60. package/fesm2022/mintplayer-ng-bootstrap-rating.mjs.map +1 -1
  61. package/fesm2022/mintplayer-ng-bootstrap-reduced-motion.mjs +59 -0
  62. package/fesm2022/mintplayer-ng-bootstrap-reduced-motion.mjs.map +1 -0
  63. package/fesm2022/mintplayer-ng-bootstrap-resizable.mjs +91 -2
  64. package/fesm2022/mintplayer-ng-bootstrap-resizable.mjs.map +1 -1
  65. package/fesm2022/mintplayer-ng-bootstrap-scheduler.mjs +16 -5
  66. package/fesm2022/mintplayer-ng-bootstrap-scheduler.mjs.map +1 -1
  67. package/fesm2022/mintplayer-ng-bootstrap-scrollspy.mjs +2 -2
  68. package/fesm2022/mintplayer-ng-bootstrap-scrollspy.mjs.map +1 -1
  69. package/fesm2022/mintplayer-ng-bootstrap-searchbox.mjs +28 -5
  70. package/fesm2022/mintplayer-ng-bootstrap-searchbox.mjs.map +1 -1
  71. package/fesm2022/mintplayer-ng-bootstrap-select.mjs +4 -3
  72. package/fesm2022/mintplayer-ng-bootstrap-select.mjs.map +1 -1
  73. package/fesm2022/mintplayer-ng-bootstrap-select2.mjs +18 -4
  74. package/fesm2022/mintplayer-ng-bootstrap-select2.mjs.map +1 -1
  75. package/fesm2022/mintplayer-ng-bootstrap-signature-pad.mjs +4 -3
  76. package/fesm2022/mintplayer-ng-bootstrap-signature-pad.mjs.map +1 -1
  77. package/fesm2022/mintplayer-ng-bootstrap-tab-control.mjs +2 -2
  78. package/fesm2022/mintplayer-ng-bootstrap-tab-control.mjs.map +1 -1
  79. package/fesm2022/mintplayer-ng-bootstrap-table.mjs +10 -3
  80. package/fesm2022/mintplayer-ng-bootstrap-table.mjs.map +1 -1
  81. package/fesm2022/mintplayer-ng-bootstrap-tile-manager.mjs +143 -29
  82. package/fesm2022/mintplayer-ng-bootstrap-tile-manager.mjs.map +1 -1
  83. package/fesm2022/mintplayer-ng-bootstrap-timepicker.mjs +2 -2
  84. package/fesm2022/mintplayer-ng-bootstrap-timepicker.mjs.map +1 -1
  85. package/fesm2022/mintplayer-ng-bootstrap-toast.mjs +7 -4
  86. package/fesm2022/mintplayer-ng-bootstrap-toast.mjs.map +1 -1
  87. package/fesm2022/mintplayer-ng-bootstrap-toggle-button.mjs +42 -21
  88. package/fesm2022/mintplayer-ng-bootstrap-toggle-button.mjs.map +1 -1
  89. package/fesm2022/mintplayer-ng-bootstrap-tooltip.mjs +33 -4
  90. package/fesm2022/mintplayer-ng-bootstrap-tooltip.mjs.map +1 -1
  91. package/fesm2022/mintplayer-ng-bootstrap-treeview.mjs +17 -7
  92. package/fesm2022/mintplayer-ng-bootstrap-treeview.mjs.map +1 -1
  93. package/fesm2022/mintplayer-ng-bootstrap-typeahead.mjs +50 -8
  94. package/fesm2022/mintplayer-ng-bootstrap-typeahead.mjs.map +1 -1
  95. package/fesm2022/mintplayer-ng-bootstrap-virtual-datatable.mjs +34 -12
  96. package/fesm2022/mintplayer-ng-bootstrap-virtual-datatable.mjs.map +1 -1
  97. package/fesm2022/mintplayer-ng-bootstrap-web-components-a11y.mjs +74 -0
  98. package/fesm2022/mintplayer-ng-bootstrap-web-components-a11y.mjs.map +1 -0
  99. package/fesm2022/mintplayer-ng-bootstrap-web-components-scheduler.mjs +1476 -71
  100. package/fesm2022/mintplayer-ng-bootstrap-web-components-scheduler.mjs.map +1 -1
  101. package/fesm2022/mintplayer-ng-bootstrap-web-components-splitter.mjs +194 -2
  102. package/fesm2022/mintplayer-ng-bootstrap-web-components-splitter.mjs.map +1 -1
  103. package/fesm2022/mintplayer-ng-bootstrap-web-components-tab-control.mjs +4 -0
  104. package/fesm2022/mintplayer-ng-bootstrap-web-components-tab-control.mjs.map +1 -1
  105. package/package.json +14 -2
  106. package/types/mintplayer-ng-bootstrap-a11y.d.ts +196 -0
  107. package/types/mintplayer-ng-bootstrap-accordion.d.ts +4 -2
  108. package/types/mintplayer-ng-bootstrap-breadcrumb.d.ts +2 -1
  109. package/types/mintplayer-ng-bootstrap-button-group.d.ts +2 -1
  110. package/types/mintplayer-ng-bootstrap-calendar.d.ts +32 -0
  111. package/types/mintplayer-ng-bootstrap-carousel.d.ts +56 -3
  112. package/types/mintplayer-ng-bootstrap-code-snippet.d.ts +1 -0
  113. package/types/mintplayer-ng-bootstrap-color-picker.d.ts +75 -4
  114. package/types/mintplayer-ng-bootstrap-datatable.d.ts +1 -1
  115. package/types/mintplayer-ng-bootstrap-dock.d.ts +51 -0
  116. package/types/mintplayer-ng-bootstrap-dropdown-menu.d.ts +54 -9
  117. package/types/mintplayer-ng-bootstrap-dropdown.d.ts +57 -2
  118. package/types/mintplayer-ng-bootstrap-file-upload.d.ts +4 -1
  119. package/types/mintplayer-ng-bootstrap-has-overlay.d.ts +14 -0
  120. package/types/mintplayer-ng-bootstrap-marquee.d.ts +2 -1
  121. package/types/mintplayer-ng-bootstrap-modal.d.ts +25 -1
  122. package/types/mintplayer-ng-bootstrap-multiselect.d.ts +2 -1
  123. package/types/mintplayer-ng-bootstrap-navbar-toggler.d.ts +4 -2
  124. package/types/mintplayer-ng-bootstrap-navbar.d.ts +25 -1
  125. package/types/mintplayer-ng-bootstrap-offcanvas.d.ts +23 -1
  126. package/types/mintplayer-ng-bootstrap-pagination.d.ts +3 -1
  127. package/types/mintplayer-ng-bootstrap-placeholder.d.ts +5 -1
  128. package/types/mintplayer-ng-bootstrap-playlist-toggler.d.ts +4 -2
  129. package/types/mintplayer-ng-bootstrap-popover.d.ts +21 -1
  130. package/types/mintplayer-ng-bootstrap-priority-nav.d.ts +4 -1
  131. package/types/mintplayer-ng-bootstrap-progress-bar.d.ts +4 -2
  132. package/types/mintplayer-ng-bootstrap-range.d.ts +2 -1
  133. package/types/mintplayer-ng-bootstrap-rating.d.ts +3 -0
  134. package/types/mintplayer-ng-bootstrap-reduced-motion.d.ts +36 -0
  135. package/types/mintplayer-ng-bootstrap-resizable.d.ts +4 -0
  136. package/types/mintplayer-ng-bootstrap-scheduler.d.ts +42 -9
  137. package/types/mintplayer-ng-bootstrap-scrollspy.d.ts +1 -1
  138. package/types/mintplayer-ng-bootstrap-searchbox.d.ts +8 -1
  139. package/types/mintplayer-ng-bootstrap-select.d.ts +2 -1
  140. package/types/mintplayer-ng-bootstrap-select2.d.ts +3 -0
  141. package/types/mintplayer-ng-bootstrap-signature-pad.d.ts +2 -1
  142. package/types/mintplayer-ng-bootstrap-table.d.ts +8 -1
  143. package/types/mintplayer-ng-bootstrap-tile-manager.d.ts +21 -2
  144. package/types/mintplayer-ng-bootstrap-toast.d.ts +6 -1
  145. package/types/mintplayer-ng-bootstrap-toggle-button.d.ts +11 -0
  146. package/types/mintplayer-ng-bootstrap-tooltip.d.ts +5 -0
  147. package/types/mintplayer-ng-bootstrap-treeview.d.ts +12 -1
  148. package/types/mintplayer-ng-bootstrap-typeahead.d.ts +11 -3
  149. package/types/mintplayer-ng-bootstrap-virtual-datatable.d.ts +14 -1
  150. package/types/mintplayer-ng-bootstrap-web-components-a11y.d.ts +34 -0
  151. package/types/mintplayer-ng-bootstrap-web-components-scheduler-core.d.ts +35 -11
  152. package/types/mintplayer-ng-bootstrap-web-components-scheduler.d.ts +246 -0
  153. package/types/mintplayer-ng-bootstrap-web-components-splitter.d.ts +95 -37
@@ -19,6 +19,8 @@ declare class BsPaginationComponent {
19
19
  showArrows: _angular_core.InputSignal<boolean>;
20
20
  /** Page number size. */
21
21
  size: _angular_core.InputSignal<Size>;
22
+ /** Accessible name on the surrounding `<nav>` landmark. */
23
+ ariaLabel: _angular_core.InputSignal<string>;
22
24
  /** The number of boxes (excluding arrows) that's being shown on the pagination component. */
23
25
  visibleNumberOfNumberBoxes: _angular_core.Signal<number>;
24
26
  /** Page numbers to be displayed to the user, with ellipsis entries where pages are omitted. */
@@ -31,7 +33,7 @@ declare class BsPaginationComponent {
31
33
  onPrevious(): boolean;
32
34
  onNext(): boolean;
33
35
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<BsPaginationComponent, never>;
34
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<BsPaginationComponent, "bs-pagination", never, { "pageNumbers": { "alias": "pageNumbers"; "required": false; "isSignal": true; }; "selectedPageNumber": { "alias": "selectedPageNumber"; "required": false; "isSignal": true; }; "numberOfBoxes": { "alias": "numberOfBoxes"; "required": false; "isSignal": true; }; "showArrows": { "alias": "showArrows"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; }, { "selectedPageNumber": "selectedPageNumberChange"; }, never, never, true, never>;
36
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<BsPaginationComponent, "bs-pagination", never, { "pageNumbers": { "alias": "pageNumbers"; "required": false; "isSignal": true; }; "selectedPageNumber": { "alias": "selectedPageNumber"; "required": false; "isSignal": true; }; "numberOfBoxes": { "alias": "numberOfBoxes"; "required": false; "isSignal": true; }; "showArrows": { "alias": "showArrows"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, { "selectedPageNumber": "selectedPageNumberChange"; }, never, never, true, never>;
35
37
  }
36
38
 
37
39
  export { BsPaginationComponent };
@@ -1,9 +1,13 @@
1
1
  import * as i0 from '@angular/core';
2
2
 
3
3
  declare class BsPlaceholderComponent {
4
+ private announcer;
4
5
  isLoading: i0.ModelSignal<boolean>;
6
+ loadingCompleteText: i0.InputSignal<string>;
7
+ private wasLoading;
8
+ constructor();
5
9
  static ɵfac: i0.ɵɵFactoryDeclaration<BsPlaceholderComponent, never>;
6
- static ɵcmp: i0.ɵɵComponentDeclaration<BsPlaceholderComponent, "bs-placeholder", never, { "isLoading": { "alias": "isLoading"; "required": false; "isSignal": true; }; }, { "isLoading": "isLoadingChange"; }, never, ["*"], true, never>;
10
+ static ɵcmp: i0.ɵɵComponentDeclaration<BsPlaceholderComponent, "bs-placeholder", never, { "isLoading": { "alias": "isLoading"; "required": false; "isSignal": true; }; "loadingCompleteText": { "alias": "loadingCompleteText"; "required": false; "isSignal": true; }; }, { "isLoading": "isLoadingChange"; }, never, ["*"], true, never>;
7
11
  }
8
12
 
9
13
  declare class BsPlaceholderFieldDirective {
@@ -3,9 +3,11 @@ import * as _angular_core from '@angular/core';
3
3
  declare class BsPlaylistTogglerComponent {
4
4
  state: _angular_core.ModelSignal<boolean>;
5
5
  toggleOnClick: _angular_core.InputSignal<boolean>;
6
- toggleState(ev: MouseEvent): void;
6
+ ariaLabel: _angular_core.InputSignal<string>;
7
+ controls: _angular_core.InputSignal<string | null>;
8
+ toggleState(): void;
7
9
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<BsPlaylistTogglerComponent, never>;
8
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<BsPlaylistTogglerComponent, "bs-playlist-toggler", never, { "state": { "alias": "state"; "required": false; "isSignal": true; }; "toggleOnClick": { "alias": "toggleOnClick"; "required": false; "isSignal": true; }; }, { "state": "stateChange"; }, never, never, true, never>;
10
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<BsPlaylistTogglerComponent, "bs-playlist-toggler", never, { "state": { "alias": "state"; "required": false; "isSignal": true; }; "toggleOnClick": { "alias": "toggleOnClick"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "controls": { "alias": "controls"; "required": false; "isSignal": true; }; }, { "state": "stateChange"; }, never, never, true, never>;
9
11
  }
10
12
 
11
13
  export { BsPlaylistTogglerComponent };
@@ -1,10 +1,25 @@
1
1
  import * as _angular_core from '@angular/core';
2
- import { TemplateRef, AfterViewInit, OnDestroy } from '@angular/core';
2
+ import { TemplateRef, Injector, AfterViewInit, OnDestroy } from '@angular/core';
3
3
  import { Position } from '@mintplayer/ng-bootstrap';
4
4
  import { ConnectedPosition } from '@angular/cdk/overlay';
5
5
 
6
+ /**
7
+ * Component-scoped state shared between BsPopoverComponent (the dialog renderer)
8
+ * and the bsPopoverHeader / bsPopoverBody directives applied to the user's
9
+ * template. Provides the ids for aria-labelledby and aria-describedby.
10
+ */
11
+ declare class BsPopoverContextService {
12
+ readonly headerId: _angular_core.WritableSignal<string | null>;
13
+ readonly bodyId: _angular_core.WritableSignal<string | null>;
14
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<BsPopoverContextService, never>;
15
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<BsPopoverContextService>;
16
+ }
17
+
6
18
  declare class BsPopoverComponent {
7
19
  template: TemplateRef<any>;
20
+ popoverId: string;
21
+ context: BsPopoverContextService;
22
+ injector: Injector;
8
23
  position: _angular_core.InputSignal<Position>;
9
24
  isVisible: _angular_core.InputSignal<boolean>;
10
25
  marginClass: _angular_core.Signal<"mb-2" | "me-2" | "ms-2" | "mt-2">;
@@ -19,6 +34,10 @@ declare class BsPopoverDirective implements AfterViewInit, OnDestroy {
19
34
  private parentInjector;
20
35
  private portalFactory;
21
36
  private parent;
37
+ private ids;
38
+ private overlayStack;
39
+ private readonly popoverId;
40
+ private stackToken;
22
41
  bsPopover: _angular_core.InputSignal<Position>;
23
42
  updatePosition: _angular_core.InputSignal<boolean>;
24
43
  private localInjector;
@@ -29,6 +48,7 @@ declare class BsPopoverDirective implements AfterViewInit, OnDestroy {
29
48
  connectedPosition: _angular_core.Signal<ConnectedPosition>;
30
49
  constructor();
31
50
  ngAfterViewInit(): void;
51
+ onEscape(): void;
32
52
  ngOnDestroy(): void;
33
53
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<BsPopoverDirective, never>;
34
54
  static ɵdir: _angular_core.ɵɵDirectiveDeclaration<BsPopoverDirective, "*[bsPopover]", never, { "bsPopover": { "alias": "bsPopover"; "required": false; "isSignal": true; }; "updatePosition": { "alias": "updatePosition"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
@@ -16,6 +16,8 @@ declare class BsPriorityNavItemDirective {
16
16
  declare class BsPriorityNavComponent {
17
17
  private platformId;
18
18
  private element;
19
+ private overlayStack;
20
+ private stackToken;
19
21
  isServerSide: boolean;
20
22
  private static counter;
21
23
  uid: string;
@@ -26,6 +28,7 @@ declare class BsPriorityNavComponent {
26
28
  collapseAt: _angular_core.InputSignal<Breakpoint | null>;
27
29
  overflowFrom: _angular_core.InputSignal<"start" | "end">;
28
30
  hideEmptyMore: _angular_core.InputSignal<boolean>;
31
+ ariaLabel: _angular_core.InputSignal<string>;
29
32
  overflowChange: _angular_core.OutputEmitterRef<BsPriorityNavItemDirective[]>;
30
33
  readonly items: _angular_core.Signal<readonly BsPriorityNavItemDirective[]>;
31
34
  private measureSizers;
@@ -55,7 +58,7 @@ declare class BsPriorityNavComponent {
55
58
  onEscape(): void;
56
59
  onDocumentClick(event: MouseEvent): void;
57
60
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<BsPriorityNavComponent, never>;
58
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<BsPriorityNavComponent, "bs-priority-nav", never, { "moreLabel": { "alias": "moreLabel"; "required": false; "isSignal": true; }; "moreLabelTemplate": { "alias": "moreLabelTemplate"; "required": false; "isSignal": true; }; "collapseAt": { "alias": "collapseAt"; "required": false; "isSignal": true; }; "overflowFrom": { "alias": "overflowFrom"; "required": false; "isSignal": true; }; "hideEmptyMore": { "alias": "hideEmptyMore"; "required": false; "isSignal": true; }; }, { "overflowChange": "overflowChange"; }, ["items"], never, true, never>;
61
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<BsPriorityNavComponent, "bs-priority-nav", never, { "moreLabel": { "alias": "moreLabel"; "required": false; "isSignal": true; }; "moreLabelTemplate": { "alias": "moreLabelTemplate"; "required": false; "isSignal": true; }; "collapseAt": { "alias": "collapseAt"; "required": false; "isSignal": true; }; "overflowFrom": { "alias": "overflowFrom"; "required": false; "isSignal": true; }; "hideEmptyMore": { "alias": "hideEmptyMore"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, { "overflowChange": "overflowChange"; }, ["items"], never, true, never>;
59
62
  }
60
63
 
61
64
  export { BsPriorityNavComponent, BsPriorityNavItemDirective };
@@ -4,8 +4,9 @@ import { Color } from '@mintplayer/ng-bootstrap';
4
4
  declare class BsProgressComponent {
5
5
  readonly height: _angular_core.InputSignal<number | null>;
6
6
  readonly isIndeterminate: _angular_core.InputSignal<boolean>;
7
+ readonly ariaLabel: _angular_core.InputSignal<string>;
7
8
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<BsProgressComponent, never>;
8
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<BsProgressComponent, "bs-progress", never, { "height": { "alias": "height"; "required": false; "isSignal": true; }; "isIndeterminate": { "alias": "isIndeterminate"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
9
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<BsProgressComponent, "bs-progress", never, { "height": { "alias": "height"; "required": false; "isSignal": true; }; "isIndeterminate": { "alias": "isIndeterminate"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
9
10
  }
10
11
 
11
12
  declare class BsProgressBarComponent {
@@ -15,11 +16,12 @@ declare class BsProgressBarComponent {
15
16
  color: _angular_core.InputSignal<Color>;
16
17
  striped: _angular_core.InputSignal<boolean>;
17
18
  animated: _angular_core.InputSignal<boolean>;
19
+ ariaLabel: _angular_core.InputSignal<string | null>;
18
20
  percentage: _angular_core.Signal<number>;
19
21
  width: _angular_core.Signal<string>;
20
22
  colorClassComputed: _angular_core.Signal<string>;
21
23
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<BsProgressBarComponent, never>;
22
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<BsProgressBarComponent, "bs-progress-bar", never, { "minimum": { "alias": "minimum"; "required": false; "isSignal": true; }; "maximum": { "alias": "maximum"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "striped": { "alias": "striped"; "required": false; "isSignal": true; }; "animated": { "alias": "animated"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
24
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<BsProgressBarComponent, "bs-progress-bar", never, { "minimum": { "alias": "minimum"; "required": false; "isSignal": true; }; "maximum": { "alias": "maximum"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "striped": { "alias": "striped"; "required": false; "isSignal": true; }; "animated": { "alias": "animated"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
23
25
  }
24
26
 
25
27
  export { BsProgressBarComponent, BsProgressComponent };
@@ -20,8 +20,9 @@ declare class BsRangeComponent {
20
20
  readonly min: _angular_core.InputSignal<number>;
21
21
  readonly max: _angular_core.InputSignal<number>;
22
22
  readonly step: _angular_core.InputSignal<number>;
23
+ readonly ariaLabel: _angular_core.InputSignal<string | null>;
23
24
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<BsRangeComponent, never>;
24
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<BsRangeComponent, "bs-range", never, { "min": { "alias": "min"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "step": { "alias": "step"; "required": false; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof BsRangeValueAccessor; inputs: {}; outputs: {}; }]>;
25
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<BsRangeComponent, "bs-range", never, { "min": { "alias": "min"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "step": { "alias": "step"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof BsRangeValueAccessor; inputs: {}; outputs: {}; }]>;
25
26
  }
26
27
 
27
28
  export { BsRangeComponent, BsRangeValueAccessor };
@@ -1,4 +1,5 @@
1
1
  import * as _angular_core from '@angular/core';
2
+ import { ElementRef } from '@angular/core';
2
3
 
3
4
  declare class BsRatingComponent {
4
5
  constructor();
@@ -6,10 +7,12 @@ declare class BsRatingComponent {
6
7
  value: _angular_core.ModelSignal<number>;
7
8
  previewValue: _angular_core.WritableSignal<number | null>;
8
9
  starsChange: _angular_core.OutputEmitterRef<number>;
10
+ readonly starButtons: _angular_core.Signal<readonly ElementRef<HTMLButtonElement>[]>;
9
11
  stars: _angular_core.Signal<boolean[]>;
10
12
  hoverValue(index: number): void;
11
13
  selectValue(index: number): void;
12
14
  onMouseLeave(): void;
15
+ onKeydown(event: KeyboardEvent): void;
13
16
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<BsRatingComponent, never>;
14
17
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<BsRatingComponent, "bs-rating", never, { "maximum": { "alias": "maximum"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "starsChange": "starsChange"; }, never, never, true, never>;
15
18
  }
@@ -0,0 +1,36 @@
1
+ import * as i0 from '@angular/core';
2
+ import { Signal } from '@angular/core';
3
+
4
+ /**
5
+ * Tracks `(prefers-reduced-motion: reduce)` live and exposes the result as a
6
+ * signal. Designed to be composed onto a host component via `hostDirectives`
7
+ * so the host can `inject(BsReducedMotionDirective)` and read `matches()` to
8
+ * gate animations / auto-advance / non-essential motion. SSR-safe — on the
9
+ * server (or in environments without `matchMedia`) the signal stays `false`.
10
+ *
11
+ * Usage:
12
+ * @Component({
13
+ * // ...
14
+ * hostDirectives: [BsReducedMotionDirective],
15
+ * })
16
+ * export class MyComponent {
17
+ * private readonly reducedMotion = inject(BsReducedMotionDirective);
18
+ * readonly animationsDisabled = computed(() => this.reducedMotion.matches());
19
+ * }
20
+ *
21
+ * Or attach as a template attribute and read via a template reference:
22
+ * <div bsReducedMotion #rm="bsReducedMotion">
23
+ * <span *ngIf="!rm.matches()">animated content</span>
24
+ * </div>
25
+ */
26
+ declare class BsReducedMotionDirective {
27
+ private readonly platformId;
28
+ private readonly destroyRef;
29
+ private readonly _matches;
30
+ readonly matches: Signal<boolean>;
31
+ constructor();
32
+ static ɵfac: i0.ɵɵFactoryDeclaration<BsReducedMotionDirective, never>;
33
+ static ɵdir: i0.ɵɵDirectiveDeclaration<BsReducedMotionDirective, "[bsReducedMotion]", ["bsReducedMotion"], {}, {}, never, never, true, never>;
34
+ }
35
+
36
+ export { BsReducedMotionDirective };
@@ -65,6 +65,8 @@ declare class BsResizeGlyphDirective {
65
65
  positions: _angular_core.WritableSignal<string>;
66
66
  activeClass: _angular_core.WritableSignal<boolean>;
67
67
  readonly bsResizeGlyph: _angular_core.InputSignal<Position[]>;
68
+ readonly ariaOrientation: _angular_core.Signal<"horizontal" | "vertical" | null>;
69
+ readonly ariaLabel: _angular_core.Signal<"Resize from top edge" | "Resize from bottom edge" | "Resize from left edge" | "Resize from right edge" | "Resize from top-left corner" | "Resize from top-right corner" | "Resize from bottom-left corner" | "Resize from bottom-right corner" | "Resize">;
68
70
  onMouseDown(ev: MouseEvent): void;
69
71
  onTouchStart(ev: TouchEvent): void;
70
72
  onMouseMove(ev: MouseEvent): void;
@@ -75,6 +77,8 @@ declare class BsResizeGlyphDirective {
75
77
  private isBusy;
76
78
  onPointerMove(ev: PointerData): void;
77
79
  onPointerUp(): void;
80
+ /** Keyboard alternative to drag. Arrow keys resize by 10px from the corresponding edge. */
81
+ onKeydown(event: KeyboardEvent): void;
78
82
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<BsResizeGlyphDirective, never>;
79
83
  static ɵdir: _angular_core.ɵɵDirectiveDeclaration<BsResizeGlyphDirective, "[bsResizeGlyph]", never, { "bsResizeGlyph": { "alias": "bsResizeGlyph"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
80
84
  }
@@ -4,20 +4,46 @@ import { ViewType, SchedulerEvent, Resource, ResourceGroup, SchedulerOptions } f
4
4
  export { PreviewEvent, Resource, ResourceGroup, SchedulerEvent, SchedulerEventPart, SchedulerOptions, TimeSlot, ViewType, generateEventId, generateGroupId, generateResourceId } from '@mintplayer/ng-bootstrap/web-components/scheduler-core';
5
5
 
6
6
  /**
7
- * Event click event detail
7
+ * Event-selected event detail. Fires on mouse click and on keyboard Tab
8
+ * landing on an event (PRD scheduler-keyboard-grid-nav D3 — renamed from
9
+ * `event-click` because keyboard now triggers the same notification).
8
10
  */
9
- interface SchedulerEventClickEvent {
11
+ interface SchedulerEventSelectedEvent {
10
12
  event: SchedulerEvent;
11
13
  originalEvent?: Event;
12
14
  }
13
15
  /**
14
- * Event create event detail
16
+ * Event create *request* event. Per PRD scheduler-controlled-selection, the
17
+ * `mp-scheduler` web-component no longer constructs an event itself on drag-end
18
+ * or `Enter` — it emits the selected range and the consumer decides whether
19
+ * to push a `SchedulerEvent` into its `[events]` input.
15
20
  */
16
21
  interface SchedulerEventCreateEvent {
17
- event: SchedulerEvent;
18
- resource?: Resource;
22
+ /** The selected time range. */
23
+ range: {
24
+ start: Date;
25
+ end: Date;
26
+ };
27
+ /** Resource the request targets (timeline view only). */
28
+ resourceId?: string;
29
+ /** View that produced the request. */
30
+ view: ViewType;
19
31
  originalEvent?: Event;
20
32
  }
33
+ /**
34
+ * Selection-change event. Fires on every transition — including the
35
+ * transition to an empty selection. `selectedEvent` and `range` are
36
+ * independent dimensions of the selection state.
37
+ */
38
+ interface SchedulerSelectionChangeEvent {
39
+ selectedEvent: SchedulerEvent | null;
40
+ range: {
41
+ start: Date;
42
+ end: Date;
43
+ } | null;
44
+ view: ViewType;
45
+ resourceId?: string;
46
+ }
21
47
  /**
22
48
  * Event update event detail
23
49
  */
@@ -73,14 +99,15 @@ declare class BsSchedulerComponent implements AfterViewInit, OnDestroy {
73
99
  start: Date;
74
100
  end: Date;
75
101
  } | null>;
76
- readonly eventClick: _angular_core.OutputEmitterRef<SchedulerEventClickEvent>;
77
- readonly eventDblClick: _angular_core.OutputEmitterRef<SchedulerEventClickEvent>;
102
+ readonly eventSelected: _angular_core.OutputEmitterRef<SchedulerEventSelectedEvent>;
103
+ readonly eventDblClick: _angular_core.OutputEmitterRef<SchedulerEventSelectedEvent>;
78
104
  readonly eventCreate: _angular_core.OutputEmitterRef<SchedulerEventCreateEvent>;
79
105
  readonly eventUpdate: _angular_core.OutputEmitterRef<SchedulerEventUpdateEvent>;
80
106
  readonly eventDelete: _angular_core.OutputEmitterRef<SchedulerEventDeleteEvent>;
81
107
  readonly dateClick: _angular_core.OutputEmitterRef<DateClickEvent>;
82
108
  readonly dateSelect: _angular_core.OutputEmitterRef<DateSelectEvent>;
83
109
  readonly viewChange: _angular_core.OutputEmitterRef<ViewChangeEvent>;
110
+ readonly selectionChange: _angular_core.OutputEmitterRef<SchedulerSelectionChangeEvent>;
84
111
  readonly currentWeekStart: _angular_core.Signal<Date>;
85
112
  readonly currentWeekEnd: _angular_core.Signal<Date>;
86
113
  readonly visibleEvents: _angular_core.Signal<SchedulerEvent[]>;
@@ -110,6 +137,12 @@ declare class BsSchedulerComponent implements AfterViewInit, OnDestroy {
110
137
  * Change the current view
111
138
  */
112
139
  changeView(view: ViewType): void;
140
+ /**
141
+ * Clear the time-range selection and the focused-cell selection. Call this
142
+ * from your `(eventCreate)` handler if you want the post-create selection
143
+ * cleared — the scheduler no longer auto-clears (PRD: scheduler-controlled-selection).
144
+ */
145
+ clearSelection(): void;
113
146
  /**
114
147
  * Add an event
115
148
  */
@@ -131,8 +164,8 @@ declare class BsSchedulerComponent implements AfterViewInit, OnDestroy {
131
164
  */
132
165
  refetchEvents(): void;
133
166
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<BsSchedulerComponent, never>;
134
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<BsSchedulerComponent, "bs-scheduler", never, { "view": { "alias": "view"; "required": false; "isSignal": true; }; "date": { "alias": "date"; "required": false; "isSignal": true; }; "events": { "alias": "events"; "required": false; "isSignal": true; }; "resources": { "alias": "resources"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": false; "isSignal": true; }; "selectedEvent": { "alias": "selectedEvent"; "required": false; "isSignal": true; }; "selectedRange": { "alias": "selectedRange"; "required": false; "isSignal": true; }; }, { "selectedEvent": "selectedEventChange"; "selectedRange": "selectedRangeChange"; "eventClick": "eventClick"; "eventDblClick": "eventDblClick"; "eventCreate": "eventCreate"; "eventUpdate": "eventUpdate"; "eventDelete": "eventDelete"; "dateClick": "dateClick"; "dateSelect": "dateSelect"; "viewChange": "viewChange"; }, never, never, true, never>;
167
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<BsSchedulerComponent, "bs-scheduler", never, { "view": { "alias": "view"; "required": false; "isSignal": true; }; "date": { "alias": "date"; "required": false; "isSignal": true; }; "events": { "alias": "events"; "required": false; "isSignal": true; }; "resources": { "alias": "resources"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": false; "isSignal": true; }; "selectedEvent": { "alias": "selectedEvent"; "required": false; "isSignal": true; }; "selectedRange": { "alias": "selectedRange"; "required": false; "isSignal": true; }; }, { "selectedEvent": "selectedEventChange"; "selectedRange": "selectedRangeChange"; "eventSelected": "eventSelected"; "eventDblClick": "eventDblClick"; "eventCreate": "eventCreate"; "eventUpdate": "eventUpdate"; "eventDelete": "eventDelete"; "dateClick": "dateClick"; "dateSelect": "dateSelect"; "viewChange": "viewChange"; "selectionChange": "selectionChange"; }, never, never, true, never>;
135
168
  }
136
169
 
137
170
  export { BsSchedulerComponent };
138
- export type { DateClickEvent, DateSelectEvent, SchedulerEventClickEvent, SchedulerEventCreateEvent, SchedulerEventDeleteEvent, SchedulerEventUpdateEvent, ViewChangeEvent };
171
+ export type { DateClickEvent, DateSelectEvent, SchedulerEventCreateEvent, SchedulerEventDeleteEvent, SchedulerEventSelectedEvent, SchedulerEventUpdateEvent, SchedulerSelectionChangeEvent, ViewChangeEvent };
@@ -13,7 +13,7 @@ declare class BsScrollspyComponent implements AfterViewInit, AfterContentInit {
13
13
  private viewInit;
14
14
  private contentInit;
15
15
  readonly directives: i0.Signal<readonly BsScrollspyDirective[]>;
16
- readonly anchors: i0.Signal<readonly ElementRef<HTMLSpanElement>[]>;
16
+ readonly anchors: i0.Signal<readonly ElementRef<HTMLButtonElement>[]>;
17
17
  activeDirective: i0.WritableSignal<BsScrollspyDirective | null>;
18
18
  constructor();
19
19
  ngAfterViewInit(): void;
@@ -32,6 +32,7 @@ declare class BsSuggestionTemplateContext<TData extends HasId<U>, U> {
32
32
  declare class BsSearchboxComponent<T extends HasId<U>, U> implements OnDestroy {
33
33
  private bsForm;
34
34
  private sanitizer;
35
+ private announcer;
35
36
  caretUpFill: _angular_core.WritableSignal<SafeHtml | undefined>;
36
37
  caretDownFill: _angular_core.WritableSignal<SafeHtml | undefined>;
37
38
  colors: typeof Color;
@@ -40,19 +41,25 @@ declare class BsSearchboxComponent<T extends HasId<U>, U> implements OnDestroy {
40
41
  isOpen: _angular_core.ModelSignal<boolean>;
41
42
  selectedItem: _angular_core.ModelSignal<T | undefined>;
42
43
  searchterm: _angular_core.ModelSignal<string>;
44
+ ariaLabel: _angular_core.InputSignal<string>;
43
45
  suggestions: _angular_core.ModelSignal<T[]>;
44
46
  readonly suggestionTemplate: _angular_core.WritableSignal<TemplateRef<BsSuggestionTemplateContext<T, U>> | undefined>;
45
47
  readonly enterSearchtermTemplate: _angular_core.WritableSignal<TemplateRef<T> | undefined>;
46
48
  readonly noResultsTemplate: _angular_core.WritableSignal<TemplateRef<T> | undefined>;
49
+ noResultsAnnouncement: _angular_core.InputSignal<string>;
50
+ resultsAnnouncementSingular: _angular_core.InputSignal<string>;
51
+ resultsAnnouncementPlural: _angular_core.InputSignal<(count: number) => string>;
47
52
  provideSuggestions: _angular_core.OutputEmitterRef<string>;
48
53
  private debouncedSearchterm;
49
54
  private debounceTimeout;
55
+ private requestInFlight;
50
56
  constructor();
51
57
  ngOnDestroy(): void;
58
+ private announceResults;
52
59
  onSearchtermChange(searchterm: string): void;
53
60
  onSuggestionClicked(suggestion: T): void;
54
61
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<BsSearchboxComponent<any, any>, never>;
55
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<BsSearchboxComponent<any, any>, "bs-searchbox", never, { "isOpen": { "alias": "isOpen"; "required": false; "isSignal": true; }; "selectedItem": { "alias": "selectedItem"; "required": false; "isSignal": true; }; "searchterm": { "alias": "searchterm"; "required": false; "isSignal": true; }; "suggestions": { "alias": "suggestions"; "required": false; "isSignal": true; }; }, { "isOpen": "isOpenChange"; "selectedItem": "selectedItemChange"; "searchterm": "searchtermChange"; "suggestions": "suggestionsChange"; "provideSuggestions": "provideSuggestions"; }, never, ["*"], true, never>;
62
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<BsSearchboxComponent<any, any>, "bs-searchbox", never, { "isOpen": { "alias": "isOpen"; "required": false; "isSignal": true; }; "selectedItem": { "alias": "selectedItem"; "required": false; "isSignal": true; }; "searchterm": { "alias": "searchterm"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "suggestions": { "alias": "suggestions"; "required": false; "isSignal": true; }; "noResultsAnnouncement": { "alias": "noResultsAnnouncement"; "required": false; "isSignal": true; }; "resultsAnnouncementSingular": { "alias": "resultsAnnouncementSingular"; "required": false; "isSignal": true; }; "resultsAnnouncementPlural": { "alias": "resultsAnnouncementPlural"; "required": false; "isSignal": true; }; }, { "isOpen": "isOpenChange"; "selectedItem": "selectedItemChange"; "searchterm": "searchtermChange"; "suggestions": "suggestionsChange"; "provideSuggestions": "provideSuggestions"; }, never, ["*"], true, never>;
56
63
  }
57
64
 
58
65
  export { BsEnterSearchTermTemplateDirective, BsNoResultsTemplateDirective, BsSearchboxComponent, BsSuggestionTemplateContext, BsSuggestionTemplateDirective };
@@ -54,10 +54,11 @@ declare class BsSelectComponent {
54
54
  multiple: _angular_core.InputSignal<boolean>;
55
55
  numberVisible: _angular_core.InputSignal<number | null>;
56
56
  disabled: _angular_core.InputSignal<boolean>;
57
+ ariaLabel: _angular_core.InputSignal<string | null>;
57
58
  sizeClass: _angular_core.Signal<string | null>;
58
59
  multipleValue: _angular_core.Signal<true | null>;
59
60
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<BsSelectComponent, never>;
60
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<BsSelectComponent, "bs-select", never, { "identifier": { "alias": "identifier"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "numberVisible": { "alias": "numberVisible"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, [{ directive: typeof BsSelectValueAccessor; inputs: { "compareWith": "compareWith"; }; outputs: {}; }]>;
61
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<BsSelectComponent, "bs-select", never, { "identifier": { "alias": "identifier"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "numberVisible": { "alias": "numberVisible"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, [{ directive: typeof BsSelectValueAccessor; inputs: { "compareWith": "compareWith"; }; outputs: {}; }]>;
61
62
  }
62
63
 
63
64
  export { BsSelectComponent, BsSelectOption, BsSelectValueAccessor };
@@ -1,5 +1,6 @@
1
1
  import * as _angular_core from '@angular/core';
2
2
  import { TemplateRef, ElementRef, WritableSignal } from '@angular/core';
3
+ import { BsRovingFocusDirective } from '@mintplayer/ng-bootstrap/a11y';
3
4
  import { HasId } from '@mintplayer/ng-bootstrap/has-id';
4
5
 
5
6
  declare class BsSelect2Component<T extends HasId<U>, U> {
@@ -9,6 +10,7 @@ declare class BsSelect2Component<T extends HasId<U>, U> {
9
10
  readonly defaultItemTemplate: _angular_core.Signal<TemplateRef<any>>;
10
11
  readonly searchBox: _angular_core.Signal<ElementRef<HTMLInputElement>>;
11
12
  readonly itemsBox: _angular_core.Signal<ElementRef<HTMLDivElement>>;
13
+ readonly rovingFocus: _angular_core.Signal<BsRovingFocusDirective | undefined>;
12
14
  searchterm: _angular_core.ModelSignal<string>;
13
15
  provideSuggestions: _angular_core.OutputEmitterRef<string>;
14
16
  isFocused: _angular_core.WritableSignal<boolean>;
@@ -20,6 +22,7 @@ declare class BsSelect2Component<T extends HasId<U>, U> {
20
22
  constructor();
21
23
  onProvideSuggestions(value: string): void;
22
24
  onSuggestionClicked(suggestion: T): void;
25
+ onActivate(): void;
23
26
  onRemoveItem(item: T, event: MouseEvent): void;
24
27
  focus(): void;
25
28
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<BsSelect2Component<any, any>, never>;
@@ -18,6 +18,7 @@ declare class BsSignaturePadComponent implements AfterViewInit {
18
18
  signature: _angular_core.ModelSignal<Signature>;
19
19
  width: _angular_core.InputSignal<number>;
20
20
  height: _angular_core.InputSignal<number>;
21
+ ariaLabel: _angular_core.InputSignal<string>;
21
22
  readonly minHeight = 5;
22
23
  readonly isDrawing: _angular_core.WritableSignal<boolean>;
23
24
  readonly canvas: _angular_core.Signal<ElementRef<HTMLCanvasElement>>;
@@ -28,7 +29,7 @@ declare class BsSignaturePadComponent implements AfterViewInit {
28
29
  onPointerMove(ev: PointerEvent): void;
29
30
  onPointerEnd(ev: PointerEvent): void;
30
31
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<BsSignaturePadComponent, never>;
31
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<BsSignaturePadComponent, "bs-signature-pad", never, { "signature": { "alias": "signature"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; "height": { "alias": "height"; "required": false; "isSignal": true; }; }, { "signature": "signatureChange"; }, never, never, true, never>;
32
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<BsSignaturePadComponent, "bs-signature-pad", never, { "signature": { "alias": "signature"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; "height": { "alias": "height"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, { "signature": "signatureChange"; }, never, never, true, never>;
32
33
  }
33
34
 
34
35
  export { BsSignaturePadComponent };
@@ -5,8 +5,15 @@ declare class BsTableComponent {
5
5
  striped: _angular_core.InputSignal<boolean>;
6
6
  hover: _angular_core.InputSignal<boolean>;
7
7
  border: _angular_core.InputSignal<boolean>;
8
+ /**
9
+ * Forwards `aria-rowcount` onto the wrapped `<table>` element. Used by
10
+ * virtualised consumers (e.g. virtual-datatable) that need SR users to
11
+ * hear "row N of Y" with Y matching the full record set, not the DOM
12
+ * slice. `null` (default) leaves the attribute off entirely.
13
+ */
14
+ ariaRowCount: _angular_core.InputSignal<number | null>;
8
15
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<BsTableComponent, never>;
9
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<BsTableComponent, "bs-table", never, { "isResponsive": { "alias": "isResponsive"; "required": false; "isSignal": true; }; "striped": { "alias": "striped"; "required": false; "isSignal": true; }; "hover": { "alias": "hover"; "required": false; "isSignal": true; }; "border": { "alias": "border"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
16
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<BsTableComponent, "bs-table", never, { "isResponsive": { "alias": "isResponsive"; "required": false; "isSignal": true; }; "striped": { "alias": "striped"; "required": false; "isSignal": true; }; "hover": { "alias": "hover"; "required": false; "isSignal": true; }; "border": { "alias": "border"; "required": false; "isSignal": true; }; "ariaRowCount": { "alias": "ariaRowCount"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
10
17
  }
11
18
 
12
19
  declare class BsTableStylesComponent {
@@ -164,7 +164,7 @@ declare class MintTileManagerElement extends LitElement {
164
164
  keyboardMode: {
165
165
  state: boolean;
166
166
  };
167
- liveRegionMessage: {
167
+ focusedTileId: {
168
168
  state: boolean;
169
169
  };
170
170
  };
@@ -183,7 +183,10 @@ declare class MintTileManagerElement extends LitElement {
183
183
  protected gestureKind: GestureState['kind'];
184
184
  protected blocked: boolean;
185
185
  protected effectiveColumnCount: number;
186
- protected liveRegionMessage: string;
186
+ protected focusedTileId: string | null;
187
+ private readonly liveAnnouncer;
188
+ private readonly instanceId;
189
+ private get instructionsId();
187
190
  private hostResizeObserver;
188
191
  private flipPreviousRects;
189
192
  private cellMetrics;
@@ -218,6 +221,8 @@ declare class MintTileManagerElement extends LitElement {
218
221
  private beginDragFromTouchArm;
219
222
  private beginDrag;
220
223
  private beginResize;
224
+ private announceDragBegin;
225
+ private announceResizeBegin;
221
226
  private attachWindowListeners;
222
227
  private detachWindowListeners;
223
228
  private handleEscapeKey;
@@ -242,6 +247,20 @@ declare class MintTileManagerElement extends LitElement {
242
247
  */
243
248
  get isGestureActive(): boolean;
244
249
  private onTileKeyDown;
250
+ /**
251
+ * Outside move mode, arrow keys move *focus* between tiles (row-major
252
+ * order — top-to-bottom, left-to-right by gridcell position). Home/End
253
+ * jump to first/last enabled tile. Returns true if the event was handled.
254
+ */
255
+ private handleFocusNavigation;
256
+ private onTileFocus;
257
+ /**
258
+ * The single tile that should carry `tabindex="0"` to act as the board's
259
+ * tab stop. Defaults to the previously-focused tile, then the first tile in
260
+ * row-major order. All other tiles render with `tabindex="-1"` so Tab from
261
+ * outside the board lands on exactly one tile.
262
+ */
263
+ private resolveFocusableTileId;
245
264
  private applyKeyboardStep;
246
265
  }
247
266
  declare global {
@@ -3,10 +3,14 @@ import { TemplateRef, PipeTransform, InjectionToken, Injector, EnvironmentProvid
3
3
  import { OverlayRef } from '@angular/cdk/overlay';
4
4
  import { ComponentPortal } from '@angular/cdk/portal';
5
5
 
6
+ type BsToastPoliteness = 'polite' | 'assertive';
6
7
  declare class BsToastComponent {
7
8
  isVisible: i0.InputSignal<boolean>;
9
+ /** SR announcement urgency. 'assertive' for time-critical (errors), 'polite' for everything else. */
10
+ politeness: i0.InputSignal<BsToastPoliteness>;
11
+ readonly toastRole: i0.Signal<"alert" | "status">;
8
12
  static ɵfac: i0.ɵɵFactoryDeclaration<BsToastComponent, never>;
9
- static ɵcmp: i0.ɵɵComponentDeclaration<BsToastComponent, "bs-toast", never, { "isVisible": { "alias": "isVisible"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
13
+ static ɵcmp: i0.ɵɵComponentDeclaration<BsToastComponent, "bs-toast", never, { "isVisible": { "alias": "isVisible"; "required": false; "isSignal": true; }; "politeness": { "alias": "politeness"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
10
14
  }
11
15
 
12
16
  declare class BsToastHeaderComponent {
@@ -60,3 +64,4 @@ declare const PORTAL_FACTORY: InjectionToken<(injector: Injector) => ComponentPo
60
64
  declare function provideToast(): EnvironmentProviders;
61
65
 
62
66
  export { BsAddPropertiesPipe, BsToastBodyComponent, BsToastCloseDirective, BsToastComponent, BsToastContainerComponent, BsToastHeaderComponent, BsToastService, PORTAL_FACTORY, provideToast };
67
+ export type { BsToastPoliteness };
@@ -36,7 +36,18 @@ declare class BsToggleButtonComponent implements AfterViewInit {
36
36
  inputClass: _angular_core.Signal<"form-check-input" | "btn-check">;
37
37
  labelClass: _angular_core.Signal<"form-check-label" | "btn btn-primary" | "btn btn-secondary">;
38
38
  checkOrRadio: _angular_core.Signal<"checkbox" | "radio">;
39
+ /**
40
+ * ARIA role override per type. We let `checkbox`, `radio`, and `radio_toggle_button`
41
+ * keep their implicit roles (`checkbox` / `radio`) — those are already correct.
42
+ * `switch` gets `role="switch"`. `toggle_button` is exposed as the ARIA toggle-button
43
+ * pattern (`role="button"` + `aria-pressed`), which is how SRs announce it as a
44
+ * toggle button rather than a checkbox.
45
+ */
46
+ ariaRole: _angular_core.Signal<string | null>;
47
+ /** Only meaningful for the toggle-button (role=button) variant. */
48
+ ariaPressed: _angular_core.Signal<string | null>;
39
49
  nameResult: _angular_core.Signal<string | null>;
50
+ onInputChange(ev: Event): void;
40
51
  ngAfterViewInit(): void;
41
52
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<BsToggleButtonComponent, never>;
42
53
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<BsToggleButtonComponent, "bs-toggle-button", never, { "type": { "alias": "type"; "required": false; "isSignal": true; }; "isToggled": { "alias": "isToggled"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "group": { "alias": "group"; "required": false; "isSignal": true; }; }, { "isToggled": "isToggledChange"; }, never, ["*"], true, [{ directive: typeof BsToggleButtonValueAccessor; inputs: {}; outputs: {}; }]>;
@@ -8,12 +8,17 @@ declare class BsTooltipDirective implements OnDestroy {
8
8
  private templateRef;
9
9
  private parentInjector;
10
10
  private parent;
11
+ private ids;
12
+ private overlayStack;
13
+ private readonly tooltipId;
14
+ private stackToken;
11
15
  constructor(overlay: Overlay, templateRef: TemplateRef<any>, parentInjector: Injector, parent: ElementRef);
12
16
  readonly bsTooltip: i0.InputSignal<Position>;
13
17
  private injector;
14
18
  private portal;
15
19
  private overlayRef;
16
20
  onBlur(): void;
21
+ onEscape(): void;
17
22
  showTooltip(): void;
18
23
  hideTooltip(): void;
19
24
  ngOnDestroy(): void;
@@ -8,6 +8,12 @@ declare class BsTreeviewItemComponent {
8
8
  readonly childTree: _angular_core.Signal<BsTreeviewComponent | undefined>;
9
9
  chevronRight: _angular_core.WritableSignal<SafeHtml | undefined>;
10
10
  tabIndex: _angular_core.Signal<0 | -1>;
11
+ /** APG tree pattern: 1-based depth. Root tree has level=0; items inside it are level=1. */
12
+ ariaLevel: _angular_core.Signal<number>;
13
+ /** Total siblings at this level (within this immediate tree). */
14
+ ariaSetSize: _angular_core.Signal<number>;
15
+ /** 1-based position within siblings. */
16
+ ariaPosInSet: _angular_core.Signal<number>;
11
17
  constructor();
12
18
  onClick(ev: MouseEvent): void;
13
19
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<BsTreeviewItemComponent, never>;
@@ -19,7 +25,12 @@ declare class BsTreeviewComponent {
19
25
  level: _angular_core.Signal<number>;
20
26
  indentation: _angular_core.Signal<number>;
21
27
  isExpanded: _angular_core.ModelSignal<boolean>;
22
- private items;
28
+ /**
29
+ * Direct-child items of THIS tree (not descendants). Used to compute
30
+ * aria-setsize and aria-posinset for each item among its siblings.
31
+ */
32
+ items: _angular_core.WritableSignal<BsTreeviewItemComponent[]>;
33
+ /** Roving tabindex tracking — only stored on the root tree. */
23
34
  focusedItem: _angular_core.WritableSignal<BsTreeviewItemComponent | null>;
24
35
  private getRootTree;
25
36
  registerItem(item: BsTreeviewItemComponent): void;