@ptsecurity/mosaic 15.6.0 → 15.8.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 (217) hide show
  1. package/_theming.scss +140 -4
  2. package/_visual.scss +2 -0
  3. package/autocomplete/autocomplete-trigger.directive.d.ts +5 -15
  4. package/checkbox/_checkbox-theme.scss +4 -0
  5. package/checkbox/checkbox.scss +4 -7
  6. package/core/formatters/index.d.ts +1 -1
  7. package/core/formatters/number/formatter.d.ts +25 -0
  8. package/core/forms/_forms-theme.scss +112 -0
  9. package/core/locales/en-US.d.ts +1 -2
  10. package/core/locales/es-LA.d.ts +9 -0
  11. package/core/locales/fa-IR.d.ts +9 -0
  12. package/core/locales/index.d.ts +0 -2
  13. package/core/locales/locale-service.d.ts +39 -5
  14. package/core/locales/pt-BR.d.ts +9 -0
  15. package/core/locales/ru-RU.d.ts +1 -2
  16. package/core/locales/zh-CN.d.ts +9 -0
  17. package/core/option/option.d.ts +36 -7
  18. package/core/overlay/overlay-position-map.d.ts +7 -1
  19. package/core/pop-up/pop-up.d.ts +3 -0
  20. package/core/selection/pseudo-checkbox/pseudo-checkbox.scss +3 -5
  21. package/core/styles/_core.scss +0 -1
  22. package/core/styles/_variables.scss +1 -0
  23. package/core/styles/theming/_scrollbars.scss +9 -3
  24. package/core/styles/theming/_theming.scss +1 -0
  25. package/datepicker/calendar-header.component.d.ts +8 -2
  26. package/datepicker/calendar.component.d.ts +3 -4
  27. package/datepicker/month-view.component.d.ts +3 -4
  28. package/esm2020/autocomplete/autocomplete-trigger.directive.mjs +27 -24
  29. package/esm2020/button/button.component.mjs +6 -3
  30. package/esm2020/checkbox/checkbox.mjs +2 -2
  31. package/esm2020/code-block/actionbar.component.mjs +1 -1
  32. package/esm2020/core/formatters/index.mjs +9 -4
  33. package/esm2020/core/formatters/number/formatter.mjs +90 -1
  34. package/esm2020/core/locales/en-US.mjs +3 -4
  35. package/esm2020/core/locales/es-LA.mjs +11 -2
  36. package/esm2020/core/locales/fa-IR.mjs +11 -2
  37. package/esm2020/core/locales/index.mjs +1 -3
  38. package/esm2020/core/locales/locale-service.mjs +4 -4
  39. package/esm2020/core/locales/pt-BR.mjs +11 -2
  40. package/esm2020/core/locales/ru-RU.mjs +3 -4
  41. package/esm2020/core/locales/zh-CN.mjs +11 -2
  42. package/esm2020/core/option/option.mjs +43 -7
  43. package/esm2020/core/overlay/overlay-position-map.mjs +7 -1
  44. package/esm2020/core/pop-up/pop-up.mjs +1 -1
  45. package/esm2020/core/selection/pseudo-checkbox/pseudo-checkbox.mjs +2 -2
  46. package/esm2020/core/version.mjs +2 -2
  47. package/esm2020/datepicker/calendar-header.component.mjs +8 -7
  48. package/esm2020/datepicker/calendar.component.mjs +5 -14
  49. package/esm2020/datepicker/datepicker-input.directive.mjs +7 -6
  50. package/esm2020/datepicker/month-view.component.mjs +6 -15
  51. package/esm2020/dropdown/dropdown-trigger.directive.mjs +3 -2
  52. package/esm2020/file-upload/file-drop.mjs +40 -3
  53. package/esm2020/file-upload/file-upload.mjs +1 -1
  54. package/esm2020/file-upload/multiple-file-upload.component.mjs +11 -7
  55. package/esm2020/file-upload/single-file-upload.component.mjs +10 -6
  56. package/esm2020/form-field/form-field.mjs +2 -2
  57. package/esm2020/form-field/validate.directive.mjs +9 -3
  58. package/esm2020/loader-overlay/loader-overlay.component.mjs +2 -2
  59. package/esm2020/modal/modal.component.mjs +7 -11
  60. package/esm2020/modal/modal.module.mjs +8 -4
  61. package/esm2020/navbar/navbar.component.mjs +20 -10
  62. package/esm2020/navbar/vertical-navbar.animation.mjs +2 -2
  63. package/esm2020/navbar/vertical-navbar.component.mjs +11 -7
  64. package/esm2020/popover/popover.component.mjs +2 -2
  65. package/esm2020/select/select-option.directive.mjs +15 -3
  66. package/esm2020/select/select.component.mjs +49 -22
  67. package/esm2020/tabs/tab-group.component.mjs +1 -1
  68. package/esm2020/tabs/tab.component.mjs +13 -4
  69. package/esm2020/tags/tag-list.component.mjs +5 -4
  70. package/esm2020/timezone/timezone-select.component.mjs +3 -3
  71. package/esm2020/title/title.directive.mjs +2 -2
  72. package/esm2020/toast/toast-animations.mjs +2 -1
  73. package/esm2020/toast/toast-container.component.mjs +21 -7
  74. package/esm2020/toast/toast.component.mjs +7 -2
  75. package/esm2020/toast/toast.module.mjs +10 -4
  76. package/esm2020/toast/toast.service.mjs +2 -1
  77. package/esm2020/toggle/toggle.component.mjs +3 -3
  78. package/esm2020/tooltip/tooltip.component.mjs +16 -4
  79. package/esm2020/tree/control/base-tree-control.mjs +1 -1
  80. package/esm2020/tree/control/flat-tree-control.filters.mjs +46 -0
  81. package/esm2020/tree/control/flat-tree-control.mjs +26 -44
  82. package/esm2020/tree/control/tree-control.mjs +1 -1
  83. package/esm2020/tree/padding.directive.mjs +2 -2
  84. package/esm2020/tree/public-api.mjs +2 -1
  85. package/esm2020/tree/toggle.mjs +2 -4
  86. package/esm2020/tree/tree-option.component.mjs +6 -3
  87. package/esm2020/tree/tree-selection.component.mjs +6 -5
  88. package/esm2020/tree-select/tree-select.component.mjs +28 -12
  89. package/esm2020/tree-select/tree-select.module.mjs +6 -6
  90. package/fesm2015/ptsecurity-mosaic-autocomplete.mjs +30 -24
  91. package/fesm2015/ptsecurity-mosaic-autocomplete.mjs.map +1 -1
  92. package/fesm2015/ptsecurity-mosaic-button.mjs +5 -2
  93. package/fesm2015/ptsecurity-mosaic-button.mjs.map +1 -1
  94. package/fesm2015/ptsecurity-mosaic-checkbox.mjs +2 -2
  95. package/fesm2015/ptsecurity-mosaic-checkbox.mjs.map +1 -1
  96. package/fesm2015/ptsecurity-mosaic-code-block.mjs +1 -1
  97. package/fesm2015/ptsecurity-mosaic-code-block.mjs.map +1 -1
  98. package/fesm2015/ptsecurity-mosaic-core.mjs +196 -31
  99. package/fesm2015/ptsecurity-mosaic-core.mjs.map +1 -1
  100. package/fesm2015/ptsecurity-mosaic-datepicker.mjs +20 -36
  101. package/fesm2015/ptsecurity-mosaic-datepicker.mjs.map +1 -1
  102. package/fesm2015/ptsecurity-mosaic-dropdown.mjs +2 -1
  103. package/fesm2015/ptsecurity-mosaic-dropdown.mjs.map +1 -1
  104. package/fesm2015/ptsecurity-mosaic-file-upload.mjs +57 -11
  105. package/fesm2015/ptsecurity-mosaic-file-upload.mjs.map +1 -1
  106. package/fesm2015/ptsecurity-mosaic-form-field.mjs +10 -3
  107. package/fesm2015/ptsecurity-mosaic-form-field.mjs.map +1 -1
  108. package/fesm2015/ptsecurity-mosaic-loader-overlay.mjs +2 -2
  109. package/fesm2015/ptsecurity-mosaic-loader-overlay.mjs.map +1 -1
  110. package/fesm2015/ptsecurity-mosaic-modal.mjs +12 -12
  111. package/fesm2015/ptsecurity-mosaic-modal.mjs.map +1 -1
  112. package/fesm2015/ptsecurity-mosaic-navbar.mjs +28 -18
  113. package/fesm2015/ptsecurity-mosaic-navbar.mjs.map +1 -1
  114. package/fesm2015/ptsecurity-mosaic-popover.mjs +1 -1
  115. package/fesm2015/ptsecurity-mosaic-popover.mjs.map +1 -1
  116. package/fesm2015/ptsecurity-mosaic-select.mjs +64 -24
  117. package/fesm2015/ptsecurity-mosaic-select.mjs.map +1 -1
  118. package/fesm2015/ptsecurity-mosaic-tabs.mjs +13 -4
  119. package/fesm2015/ptsecurity-mosaic-tabs.mjs.map +1 -1
  120. package/fesm2015/ptsecurity-mosaic-tags.mjs +4 -3
  121. package/fesm2015/ptsecurity-mosaic-tags.mjs.map +1 -1
  122. package/fesm2015/ptsecurity-mosaic-timezone.mjs +2 -2
  123. package/fesm2015/ptsecurity-mosaic-timezone.mjs.map +1 -1
  124. package/fesm2015/ptsecurity-mosaic-title.mjs +1 -1
  125. package/fesm2015/ptsecurity-mosaic-title.mjs.map +1 -1
  126. package/fesm2015/ptsecurity-mosaic-toast.mjs +35 -10
  127. package/fesm2015/ptsecurity-mosaic-toast.mjs.map +1 -1
  128. package/fesm2015/ptsecurity-mosaic-toggle.mjs +2 -2
  129. package/fesm2015/ptsecurity-mosaic-toggle.mjs.map +1 -1
  130. package/fesm2015/ptsecurity-mosaic-tooltip.mjs +15 -3
  131. package/fesm2015/ptsecurity-mosaic-tooltip.mjs.map +1 -1
  132. package/fesm2015/ptsecurity-mosaic-tree-select.mjs +33 -16
  133. package/fesm2015/ptsecurity-mosaic-tree-select.mjs.map +1 -1
  134. package/fesm2015/ptsecurity-mosaic-tree.mjs +85 -54
  135. package/fesm2015/ptsecurity-mosaic-tree.mjs.map +1 -1
  136. package/fesm2020/ptsecurity-mosaic-autocomplete.mjs +27 -24
  137. package/fesm2020/ptsecurity-mosaic-autocomplete.mjs.map +1 -1
  138. package/fesm2020/ptsecurity-mosaic-button.mjs +5 -2
  139. package/fesm2020/ptsecurity-mosaic-button.mjs.map +1 -1
  140. package/fesm2020/ptsecurity-mosaic-checkbox.mjs +2 -2
  141. package/fesm2020/ptsecurity-mosaic-checkbox.mjs.map +1 -1
  142. package/fesm2020/ptsecurity-mosaic-code-block.mjs +1 -1
  143. package/fesm2020/ptsecurity-mosaic-code-block.mjs.map +1 -1
  144. package/fesm2020/ptsecurity-mosaic-core.mjs +196 -30
  145. package/fesm2020/ptsecurity-mosaic-core.mjs.map +1 -1
  146. package/fesm2020/ptsecurity-mosaic-datepicker.mjs +20 -36
  147. package/fesm2020/ptsecurity-mosaic-datepicker.mjs.map +1 -1
  148. package/fesm2020/ptsecurity-mosaic-dropdown.mjs +2 -1
  149. package/fesm2020/ptsecurity-mosaic-dropdown.mjs.map +1 -1
  150. package/fesm2020/ptsecurity-mosaic-file-upload.mjs +56 -11
  151. package/fesm2020/ptsecurity-mosaic-file-upload.mjs.map +1 -1
  152. package/fesm2020/ptsecurity-mosaic-form-field.mjs +10 -4
  153. package/fesm2020/ptsecurity-mosaic-form-field.mjs.map +1 -1
  154. package/fesm2020/ptsecurity-mosaic-loader-overlay.mjs +2 -2
  155. package/fesm2020/ptsecurity-mosaic-loader-overlay.mjs.map +1 -1
  156. package/fesm2020/ptsecurity-mosaic-modal.mjs +11 -11
  157. package/fesm2020/ptsecurity-mosaic-modal.mjs.map +1 -1
  158. package/fesm2020/ptsecurity-mosaic-navbar.mjs +28 -18
  159. package/fesm2020/ptsecurity-mosaic-navbar.mjs.map +1 -1
  160. package/fesm2020/ptsecurity-mosaic-popover.mjs +1 -1
  161. package/fesm2020/ptsecurity-mosaic-popover.mjs.map +1 -1
  162. package/fesm2020/ptsecurity-mosaic-select.mjs +62 -23
  163. package/fesm2020/ptsecurity-mosaic-select.mjs.map +1 -1
  164. package/fesm2020/ptsecurity-mosaic-tabs.mjs +13 -4
  165. package/fesm2020/ptsecurity-mosaic-tabs.mjs.map +1 -1
  166. package/fesm2020/ptsecurity-mosaic-tags.mjs +4 -3
  167. package/fesm2020/ptsecurity-mosaic-tags.mjs.map +1 -1
  168. package/fesm2020/ptsecurity-mosaic-timezone.mjs +2 -2
  169. package/fesm2020/ptsecurity-mosaic-timezone.mjs.map +1 -1
  170. package/fesm2020/ptsecurity-mosaic-title.mjs +1 -1
  171. package/fesm2020/ptsecurity-mosaic-title.mjs.map +1 -1
  172. package/fesm2020/ptsecurity-mosaic-toast.mjs +33 -10
  173. package/fesm2020/ptsecurity-mosaic-toast.mjs.map +1 -1
  174. package/fesm2020/ptsecurity-mosaic-toggle.mjs +2 -2
  175. package/fesm2020/ptsecurity-mosaic-toggle.mjs.map +1 -1
  176. package/fesm2020/ptsecurity-mosaic-tooltip.mjs +15 -3
  177. package/fesm2020/ptsecurity-mosaic-tooltip.mjs.map +1 -1
  178. package/fesm2020/ptsecurity-mosaic-tree-select.mjs +32 -16
  179. package/fesm2020/ptsecurity-mosaic-tree-select.mjs.map +1 -1
  180. package/fesm2020/ptsecurity-mosaic-tree.mjs +84 -54
  181. package/fesm2020/ptsecurity-mosaic-tree.mjs.map +1 -1
  182. package/file-upload/file-drop.d.ts +2 -1
  183. package/file-upload/file-upload.d.ts +4 -1
  184. package/file-upload/multiple-file-upload.component.d.ts +6 -5
  185. package/file-upload/single-file-upload.component.d.ts +6 -5
  186. package/form-field/_form-field-theme.scss +4 -0
  187. package/form-field/form-field.scss +0 -2
  188. package/loader-overlay/loader-overlay.scss +3 -0
  189. package/modal/modal.module.d.ts +2 -1
  190. package/modal/modal.scss +14 -2
  191. package/navbar/navbar.component.d.ts +5 -2
  192. package/navbar/vertical-navbar.component.d.ts +4 -2
  193. package/package.json +4 -7
  194. package/prebuilt-themes/dark-theme.css +1 -1
  195. package/prebuilt-themes/default-theme.css +1 -1
  196. package/prebuilt-visual/default-visual.css +1 -1
  197. package/radio/_radio-theme.scss +4 -0
  198. package/select/select-option.directive.d.ts +2 -0
  199. package/select/select.component.d.ts +15 -11
  200. package/select/select.scss +5 -1
  201. package/tags/tag-list.scss +4 -0
  202. package/toast/toast-animations.d.ts +1 -0
  203. package/toast/toast-container.component.d.ts +7 -3
  204. package/toast/toast.component.d.ts +2 -0
  205. package/toast/toast.service.d.ts +2 -0
  206. package/toggle/_toggle-theme.scss +13 -1
  207. package/toggle/toggle.scss +6 -2
  208. package/tooltip/tooltip.component.d.ts +4 -1
  209. package/tree/control/base-tree-control.d.ts +1 -1
  210. package/tree/control/flat-tree-control.d.ts +5 -3
  211. package/tree/control/flat-tree-control.filters.d.ts +26 -0
  212. package/tree/control/tree-control.d.ts +1 -1
  213. package/tree/public-api.d.ts +1 -0
  214. package/tree/tree-option.scss +4 -2
  215. package/tree-select/tree-select.component.d.ts +9 -3
  216. package/tree-select/tree-select.module.d.ts +1 -1
  217. package/core/forms/_forms.scss +0 -109
@@ -1,10 +1,11 @@
1
1
  import { Directionality } from '@angular/cdk/bidi';
2
2
  import { SelectionModel } from '@angular/cdk/collections';
3
3
  import { CdkConnectedOverlay, ConnectedPosition } from '@angular/cdk/overlay';
4
+ import { CdkVirtualForOf } from '@angular/cdk/scrolling';
4
5
  import { AfterContentInit, AfterViewInit, ChangeDetectorRef, DoCheck, ElementRef, EventEmitter, NgZone, OnChanges, OnDestroy, OnInit, QueryList, Renderer2, SimpleChanges, TemplateRef } from '@angular/core';
5
6
  import { ControlValueAccessor, FormGroupDirective, NgControl, NgForm } from '@angular/forms';
6
7
  import { ActiveDescendantKeyManager } from '@ptsecurity/cdk/a11y';
7
- import { CanDisable, CanDisableCtor, CanUpdateErrorState, CanUpdateErrorStateCtor, ErrorStateMatcher, HasTabIndex, HasTabIndexCtor, McOptgroup, McOption, McOptionSelectionChange, McLocaleService } from '@ptsecurity/mosaic/core';
8
+ import { CanDisable, CanDisableCtor, CanUpdateErrorState, CanUpdateErrorStateCtor, ErrorStateMatcher, HasTabIndex, HasTabIndexCtor, McOptgroup, McOption, McOptionSelectionChange, McLocaleService, McOptionBase } from '@ptsecurity/mosaic/core';
8
9
  import { McCleaner, McFormField, McFormFieldControl } from '@ptsecurity/mosaic/form-field';
9
10
  import { McInput } from '@ptsecurity/mosaic/input';
10
11
  import { McTag } from '@ptsecurity/mosaic/tags';
@@ -18,7 +19,7 @@ export declare class McSelectChange {
18
19
  }
19
20
  export declare class McSelectFooter {
20
21
  static ɵfac: i0.ɵɵFactoryDeclaration<McSelectFooter, never>;
21
- static ɵdir: i0.ɵɵDirectiveDeclaration<McSelectFooter, "mc-select-footer", never, {}, {}, never, never, false, never>;
22
+ static ɵdir: i0.ɵɵDirectiveDeclaration<McSelectFooter, "mc-select-footer, [mc-select-footer]", never, {}, {}, never, never, false, never>;
22
23
  }
23
24
  export declare class McSelectSearch implements AfterContentInit, OnDestroy {
24
25
  input: McInput;
@@ -78,8 +79,8 @@ export declare class McSelect extends McSelectMixinBase implements AfterContentI
78
79
  /** The cached font-size of the trigger element. */
79
80
  triggerFontSize: number;
80
81
  /** Deals with the selection logic. */
81
- selectionModel: SelectionModel<McOption>;
82
- previousSelectionModelSelected: McOption[];
82
+ selectionModel: SelectionModel<McOptionBase>;
83
+ previousSelectionModelSelected: McOptionBase[];
83
84
  /** Manages keyboard events for options in the panel. */
84
85
  keyManager: ActiveDescendantKeyManager<McOption>;
85
86
  /** The value of the select panel's transform-origin property. */
@@ -105,12 +106,14 @@ export declare class McSelect extends McSelectMixinBase implements AfterContentI
105
106
  panel: ElementRef;
106
107
  optionsContainer: ElementRef;
107
108
  overlayDir: CdkConnectedOverlay;
109
+ cdkVirtualForOf?: CdkVirtualForOf<any>;
108
110
  tags: QueryList<McTag>;
109
111
  /** User-supplied override of the trigger element. */
110
112
  customTrigger: McSelectTrigger;
111
113
  customMatcher: McSelectMatcher;
112
114
  customTagTemplateRef: TemplateRef<HTMLElement>;
113
115
  cleaner: McCleaner;
116
+ footer: McSelectFooter;
114
117
  /** All of the defined select options. */
115
118
  options: QueryList<McOption>;
116
119
  /** All of the defined groups of options. */
@@ -128,7 +131,7 @@ export declare class McSelect extends McSelectMixinBase implements AfterContentI
128
131
  * Function used to sort the values in a select in multiple mode.
129
132
  * Follows the same logic as `Array.prototype.sort`.
130
133
  */
131
- sortComparator: (a: McOption, b: McOption, options: McOption[]) => number;
134
+ sortComparator: (a: McOptionBase, b: McOptionBase, options: McOptionBase[]) => number;
132
135
  /** Combined stream of all of the child options' change events. */
133
136
  readonly optionSelectionChanges: Observable<McOptionSelectionChange>;
134
137
  /** Event emitted when the select panel has been toggled. */
@@ -177,13 +180,14 @@ export declare class McSelect extends McSelectMixinBase implements AfterContentI
177
180
  /** Whether the select is focused. */
178
181
  get focused(): boolean;
179
182
  set focused(value: boolean);
180
- private _focused;
181
183
  panelOpen: boolean;
184
+ private _focused;
185
+ private withVirtualScroll;
182
186
  get isEmptySearchResult(): boolean;
183
187
  get canShowCleaner(): boolean;
184
- get selected(): McOption | McOption[];
188
+ get selected(): McOptionBase | McOptionBase[];
185
189
  get triggerValue(): string;
186
- get triggerValues(): McOption[];
190
+ get triggerValues(): McOptionBase[];
187
191
  get empty(): boolean;
188
192
  private closeSubscription;
189
193
  /** The scroll position of the overlay panel, calculated to center the selected option. */
@@ -265,7 +269,7 @@ export declare class McSelect extends McSelectMixinBase implements AfterContentI
265
269
  */
266
270
  onContainerClick(): void;
267
271
  /** Invoked when an option is clicked. */
268
- onRemoveMatcherItem(option: McOption, $event: any): void;
272
+ onRemoveMatcherItem(option: McOptionBase, $event: any): void;
269
273
  calculateHiddenItems(): void;
270
274
  getItemHeight(): number;
271
275
  private updateLocaleParams;
@@ -281,7 +285,7 @@ export declare class McSelect extends McSelectMixinBase implements AfterContentI
281
285
  private handleOpenKeydown;
282
286
  private initializeSelection;
283
287
  /**
284
- * Sets the selected option based on a value. If no option can be
288
+ * Sets the selected option based on a value and updates triggerValue(s). If no option can be
285
289
  * found with the designated value, the select trigger is cleared.
286
290
  */
287
291
  private setSelectionByValue;
@@ -325,6 +329,6 @@ export declare class McSelect extends McSelectMixinBase implements AfterContentI
325
329
  private getTotalVisibleItems;
326
330
  private buildTriggerClone;
327
331
  static ɵfac: i0.ɵɵFactoryDeclaration<McSelect, [null, null, null, null, null, { optional: true; }, { optional: true; }, { optional: true; }, { optional: true; }, { optional: true; self: true; }, null, { optional: true; }]>;
328
- static ɵcmp: i0.ɵɵComponentDeclaration<McSelect, "mc-select", ["mcSelect"], { "disabled": "disabled"; "tabIndex": "tabIndex"; "hiddenItemsText": "hiddenItemsText"; "panelClass": "panelClass"; "backdropClass": "backdropClass"; "errorStateMatcher": "errorStateMatcher"; "sortComparator": "sortComparator"; "hasBackdrop": "hasBackdrop"; "placeholder": "placeholder"; "required": "required"; "multiple": "multiple"; "compareWith": "compareWith"; "value": "value"; "id": "id"; "hiddenItemsTextFormatter": "hiddenItemsTextFormatter"; }, { "openedChange": "openedChange"; "openedStream": "opened"; "closedStream": "closed"; "selectionChange": "selectionChange"; "valueChange": "valueChange"; }, ["customTrigger", "customMatcher", "customTagTemplateRef", "cleaner", "search", "options", "optionGroups"], ["mc-select-trigger, [mc-select-trigger]", "mc-cleaner", "mc-select-matcher, [mc-select-matcher]", "[mcSelectSearch]", "[mc-select-search-empty-result]", "*", "mc-select-footer,[mc-select-footer]"], false, never>;
332
+ static ɵcmp: i0.ɵɵComponentDeclaration<McSelect, "mc-select", ["mcSelect"], { "disabled": "disabled"; "tabIndex": "tabIndex"; "hiddenItemsText": "hiddenItemsText"; "panelClass": "panelClass"; "backdropClass": "backdropClass"; "errorStateMatcher": "errorStateMatcher"; "sortComparator": "sortComparator"; "hasBackdrop": "hasBackdrop"; "placeholder": "placeholder"; "required": "required"; "multiple": "multiple"; "compareWith": "compareWith"; "value": "value"; "id": "id"; "hiddenItemsTextFormatter": "hiddenItemsTextFormatter"; }, { "openedChange": "openedChange"; "openedStream": "opened"; "closedStream": "closed"; "selectionChange": "selectionChange"; "valueChange": "valueChange"; }, ["cdkVirtualForOf", "customTrigger", "customMatcher", "customTagTemplateRef", "cleaner", "footer", "search", "options", "optionGroups"], ["mc-select-trigger, [mc-select-trigger]", "mc-cleaner", "mc-select-matcher, [mc-select-matcher]", "[mcSelectSearch]", "[mc-select-search-empty-result]", "*", "mc-select-footer,[mc-select-footer]"], false, never>;
329
333
  }
330
334
  export {};
@@ -201,7 +201,7 @@ $tokens: meta.module-variables(tokens) !default;
201
201
  padding: var(--mc-select-panel-size-vertical-padding, map.get($tokens, select-panel-size-vertical-padding)) 0;
202
202
  overflow: hidden auto;
203
203
 
204
- & .cdk-virtual-scroll-viewport {
204
+ &:not(:has(> .mc-select__no-options-message)) .cdk-virtual-scroll-viewport {
205
205
  $paddings: (map.get($tokens, select-panel-size-vertical-padding) * 2);
206
206
 
207
207
  min-height: calc(
@@ -210,6 +210,10 @@ $tokens: meta.module-variables(tokens) !default;
210
210
  max-height: calc(
211
211
  var(--mc-select-panel-size-max-height, map.get($tokens, select-panel-size-max-height)) - $paddings
212
212
  );
213
+
214
+ &.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper {
215
+ max-width: 100%;
216
+ }
213
217
  }
214
218
  }
215
219
 
@@ -11,6 +11,10 @@ $tokens: meta.module-variables(tokens) !default;
11
11
  flex-direction: row;
12
12
 
13
13
  box-sizing: border-box;
14
+
15
+ &:focus-visible {
16
+ outline: none;
17
+ }
14
18
  }
15
19
 
16
20
  .mc-tag-input {
@@ -2,3 +2,4 @@ import { AnimationTriggerMetadata } from '@angular/animations';
2
2
  export declare const mcToastAnimations: {
3
3
  readonly toastState: AnimationTriggerMetadata;
4
4
  };
5
+ export declare const toastState: AnimationTriggerMetadata;
@@ -1,15 +1,19 @@
1
- import { ChangeDetectorRef, ComponentRef, EmbeddedViewRef, Injector, TemplateRef, ViewContainerRef, ViewRef } from '@angular/core';
1
+ import { CdkScrollable, ScrollDispatcher } from '@angular/cdk/overlay';
2
+ import { ChangeDetectorRef, ComponentRef, ElementRef, EmbeddedViewRef, Injector, NgZone, TemplateRef, ViewContainerRef, ViewRef } from '@angular/core';
3
+ import { McToastService } from './toast.service';
2
4
  import { McToastData } from './toast.type';
3
5
  import * as i0 from "@angular/core";
4
- export declare class McToastContainerComponent {
6
+ export declare class McToastContainerComponent extends CdkScrollable {
5
7
  private injector;
6
8
  private changeDetectorRef;
9
+ readonly service: McToastService;
7
10
  viewContainer: ViewContainerRef;
8
- constructor(injector: Injector, changeDetectorRef: ChangeDetectorRef);
11
+ constructor(injector: Injector, changeDetectorRef: ChangeDetectorRef, service: McToastService, elementRef: ElementRef<HTMLElement>, scrollDispatcher: ScrollDispatcher, ngZone: NgZone);
9
12
  createToast<C>(data: McToastData, componentType: any, onTop: boolean): ComponentRef<C>;
10
13
  createTemplate<C>(data: McToastData, template: TemplateRef<any>, onTop: boolean): EmbeddedViewRef<C>;
11
14
  remove(viewRef: ViewRef): void;
12
15
  getInjector(data: McToastData): Injector;
16
+ dispatchScrollEvent: () => void;
13
17
  static ɵfac: i0.ɵɵFactoryDeclaration<McToastContainerComponent, never>;
14
18
  static ɵcmp: i0.ɵɵComponentDeclaration<McToastContainerComponent, "mc-toast-container", never, {}, {}, never, never, false, never>;
15
19
  }
@@ -1,3 +1,4 @@
1
+ import { AnimationEvent } from '@angular/animations';
1
2
  import { FocusMonitor } from '@angular/cdk/a11y';
2
3
  import { ElementRef, OnDestroy } from '@angular/core';
3
4
  import { ThemePalette } from '@ptsecurity/mosaic/core';
@@ -28,6 +29,7 @@ export declare class McToastComponent implements OnDestroy {
28
29
  ngOnDestroy(): void;
29
30
  close(): void;
30
31
  isTemplateRef(value: any): boolean;
32
+ onAnimation($event: AnimationEvent): void;
31
33
  private runFocusMonitor;
32
34
  private stopFocusMonitor;
33
35
  static ɵfac: i0.ɵɵFactoryDeclaration<McToastComponent, never>;
@@ -1,3 +1,4 @@
1
+ import { AnimationEvent } from '@angular/animations';
1
2
  import { Overlay } from '@angular/cdk/overlay';
2
3
  import { Injector, ComponentRef, TemplateRef, EmbeddedViewRef, InjectionToken } from '@angular/core';
3
4
  import { BehaviorSubject } from 'rxjs';
@@ -15,6 +16,7 @@ export declare class McToastService<T extends McToastComponent = McToastComponen
15
16
  get templates(): EmbeddedViewRef<T>[];
16
17
  readonly hovered: BehaviorSubject<boolean>;
17
18
  readonly focused: BehaviorSubject<boolean>;
19
+ readonly animation: BehaviorSubject<AnimationEvent | null>;
18
20
  private containerInstance;
19
21
  private overlayRef;
20
22
  private portal;
@@ -60,7 +60,11 @@
60
60
  color: map.get($foreground, text-disabled);
61
61
 
62
62
  & .mc-toggle__overlay {
63
- background: mc-color($background, overlay-disabled);
63
+ background: rgba(255, 255, 255, 0.3);
64
+ }
65
+
66
+ &.mc-active .mc-toggle__circle {
67
+ background: white;
64
68
  }
65
69
  }
66
70
  }
@@ -71,9 +75,17 @@
71
75
 
72
76
  .mc-toggle:not(.mc-toggle_small) {
73
77
  @include mc-typography-level-to-styles($config, map.get($tokens, toggle-font-default));
78
+
79
+ .mc-toggle-bar-outer-container {
80
+ height: mc-line-height($config, map.get($tokens, toggle-font-default));
81
+ }
74
82
  }
75
83
 
76
84
  .mc-toggle.mc-toggle_small {
77
85
  @include mc-typography-level-to-styles($config, map.get($tokens, toggle-small-font-default));
86
+
87
+ .mc-toggle-bar-outer-container {
88
+ height: mc-line-height($config, map.get($tokens, toggle-small-font-default));
89
+ }
78
90
  }
79
91
  }
@@ -32,14 +32,18 @@ $tokens: meta.module-variables(tokens) !default;
32
32
  }
33
33
  }
34
34
 
35
- .mc-toggle-bar-container {
35
+ .mc-toggle-bar-outer-container {
36
+ display: flex;
37
+ align-items: center;
38
+ }
39
+
40
+ .mc-toggle-bar-inner-container {
36
41
  position: relative;
37
42
  }
38
43
  }
39
44
 
40
45
  .mc-toggle__container {
41
46
  display: flex;
42
- align-items: center;
43
47
  position: relative;
44
48
 
45
49
  &.left {
@@ -55,6 +55,9 @@ export declare class McTooltipTrigger extends McPopUpTrigger<McTooltipComponent>
55
55
  protected _trigger: string;
56
56
  get customClass(): string;
57
57
  set customClass(value: string);
58
+ get context(): any;
59
+ set context(ctx: any);
60
+ private _context;
58
61
  placementChange: EventEmitter<any>;
59
62
  visibleChange: EventEmitter<boolean>;
60
63
  private get hasClickInTrigger();
@@ -67,7 +70,7 @@ export declare class McTooltipTrigger extends McPopUpTrigger<McTooltipComponent>
67
70
  getOverlayHandleComponentType(): Type<McTooltipComponent>;
68
71
  updateClassMap(newPlacement?: string): void;
69
72
  static ɵfac: i0.ɵɵFactoryDeclaration<McTooltipTrigger, [null, null, null, null, null, null, { optional: true; }]>;
70
- static ɵdir: i0.ɵɵDirectiveDeclaration<McTooltipTrigger, "[mcTooltip]", ["mcTooltip"], { "tooltipVisible": "mcVisible"; "tooltipPlacement": "mcPlacement"; "tooltipPlacementPriority": "mcPlacementPriority"; "content": "mcTooltip"; "disabled": "mcTooltipDisabled"; "enterDelay": "mcEnterDelay"; "leaveDelay": "mcLeaveDelay"; "trigger": "mcTrigger"; "customClass": "mcTooltipClass"; }, { "placementChange": "mcPlacementChange"; "visibleChange": "mcVisibleChange"; }, never, never, false, never>;
73
+ static ɵdir: i0.ɵɵDirectiveDeclaration<McTooltipTrigger, "[mcTooltip]", ["mcTooltip"], { "tooltipVisible": "mcVisible"; "tooltipPlacement": "mcPlacement"; "tooltipPlacementPriority": "mcPlacementPriority"; "content": "mcTooltip"; "disabled": "mcTooltipDisabled"; "enterDelay": "mcEnterDelay"; "leaveDelay": "mcLeaveDelay"; "trigger": "mcTrigger"; "customClass": "mcTooltipClass"; "context": "mcTooltipContext"; }, { "placementChange": "mcPlacementChange"; "visibleChange": "mcVisibleChange"; }, never, never, false, never>;
71
74
  }
72
75
  export declare class McWarningTooltipTrigger extends McTooltipTrigger {
73
76
  get content(): string | TemplateRef<any>;
@@ -7,7 +7,7 @@ export declare abstract class BaseTreeControl<T> implements TreeControl<T> {
7
7
  /** A selection model with multi-selection to track expansion status. */
8
8
  expansionModel: SelectionModel<T>;
9
9
  filterModel: SelectionModel<T>;
10
- filterValue: BehaviorSubject<string>;
10
+ filterValue: BehaviorSubject<string | null>;
11
11
  /** Get depth of a given data node, return the level number. This is for flat tree node. */
12
12
  getLevel: (dataNode: T) => number;
13
13
  /**
@@ -1,4 +1,5 @@
1
1
  import { BaseTreeControl } from './base-tree-control';
2
+ import { TreeControlFilter } from './flat-tree-control.filters';
2
3
  export declare function defaultCompareValues(firstValue: string, secondValue: string): boolean;
3
4
  export declare function defaultCompareViewValues(firstViewValue: string, secondViewValue: string): boolean;
4
5
  /** Flat tree control. Able to expand/collapse a subtree recursively for flattened tree. */
@@ -16,6 +17,7 @@ export declare class FlatTreeControl<T> extends BaseTreeControl<T> {
16
17
  /** isDisabled will be used to determine if the node is disabled. */
17
18
  isDisabled: (dataNode: T) => boolean;
18
19
  expandedItemsBeforeFiltration: T[];
20
+ private filters;
19
21
  /** Construct with flat tree data node functions getLevel, isExpandable, getValue and getViewValue. */
20
22
  constructor(getLevel: (dataNode: T) => number, isExpandable: (dataNode: T) => boolean,
21
23
  /** getValue will be used to determine if the tree contains value or not. Used in method hasValue */
@@ -44,10 +46,10 @@ export declare class FlatTreeControl<T> extends BaseTreeControl<T> {
44
46
  expandAll(): void;
45
47
  getParents(node: any, result: T[]): T[];
46
48
  hasValue(value: string): T | undefined;
47
- filterNodes(value: string): void;
49
+ filterNodes(value?: string | null): void;
50
+ getFilters(): TreeControlFilter<T>[];
51
+ setFilters(...filters: TreeControlFilter<T>[]): void;
48
52
  private updateFilterValue;
49
- private expandDataNode;
50
53
  private saveExpansionState;
51
54
  private restoreExpansionState;
52
- private hasFilteredDescendant;
53
55
  }
@@ -0,0 +1,26 @@
1
+ import { FlatTreeControl } from './flat-tree-control';
2
+ export interface TreeControlFilter<T> {
3
+ result: T[];
4
+ handle(value: string | null, prevFilter?: TreeControlFilter<T> | null): T[];
5
+ }
6
+ export declare class FilterByViewValue<T> implements TreeControlFilter<T> {
7
+ private control;
8
+ result: T[];
9
+ constructor(control: FlatTreeControl<T>);
10
+ handle(value: string | null): T[];
11
+ }
12
+ export declare class FilterParentsForNodes<T> implements TreeControlFilter<T> {
13
+ private control;
14
+ result: T[];
15
+ constructor(control: FlatTreeControl<T>);
16
+ handle(_: any, prevFilter: TreeControlFilter<T>): T[];
17
+ }
18
+ export declare class FilterByValues<T> implements TreeControlFilter<T> {
19
+ private control;
20
+ result: T[];
21
+ private values;
22
+ constructor(control: FlatTreeControl<T>);
23
+ handle(_: any, prevFilter?: TreeControlFilter<T>): T[];
24
+ setValues: (values: string[]) => void;
25
+ getValues(): string[];
26
+ }
@@ -11,7 +11,7 @@ export interface TreeControl<T> {
11
11
  /** The expansion model */
12
12
  expansionModel: SelectionModel<T>;
13
13
  filterModel: SelectionModel<T>;
14
- filterValue: BehaviorSubject<string>;
14
+ filterValue: BehaviorSubject<string | null>;
15
15
  /** Get depth of a given data node, return the level number. This is for flat tree node. */
16
16
  getLevel(dataNode: T): number;
17
17
  /**
@@ -10,6 +10,7 @@ export * from './tree-option.component';
10
10
  export * from './control/base-tree-control';
11
11
  export * from './control/tree-control';
12
12
  export * from './control/flat-tree-control';
13
+ export * from './control/flat-tree-control.filters';
13
14
  export * from './control/nested-tree-control';
14
15
  export * from './data-source/flat-data-source';
15
16
  export * from './data-source/nested-data-source';
@@ -2,11 +2,14 @@
2
2
  @use 'sass:map';
3
3
 
4
4
  @use '../core/styles/tokens';
5
+ @use '../core/styles/common/list';
5
6
 
6
7
 
7
8
  $tokens: meta.module-variables(tokens) !default;
8
9
 
9
10
  .mc-tree-option {
11
+ @include list.mc-no-select;
12
+
10
13
  box-sizing: border-box;
11
14
 
12
15
  display: flex;
@@ -48,8 +51,7 @@ $tokens: meta.module-variables(tokens) !default;
48
51
  cursor: pointer;
49
52
  }
50
53
 
51
- & > .mc-pseudo-checkbox,
52
- & > .mc-checkbox {
54
+ & > .mc-pseudo-checkbox {
53
55
  margin-right: var(--mc-tree-size-icon-padding, map.get($tokens, tree-size-icon-padding));
54
56
  }
55
57
 
@@ -24,11 +24,15 @@ export declare class McTreeSelectChange {
24
24
  }
25
25
  export declare class McTreeSelectTrigger {
26
26
  static ɵfac: i0.ɵɵFactoryDeclaration<McTreeSelectTrigger, never>;
27
- static ɵdir: i0.ɵɵDirectiveDeclaration<McTreeSelectTrigger, "mc-tree-select-trigger", never, {}, {}, never, never, false, never>;
27
+ static ɵdir: i0.ɵɵDirectiveDeclaration<McTreeSelectTrigger, "mc-tree-select-trigger,[mc-tree-select-trigger]", never, {}, {}, never, never, false, never>;
28
+ }
29
+ export declare class McTreeSelectMatcher {
30
+ static ɵfac: i0.ɵɵFactoryDeclaration<McTreeSelectMatcher, never>;
31
+ static ɵdir: i0.ɵɵDirectiveDeclaration<McTreeSelectMatcher, "mc-tree-select-matcher,[mc-tree-select-matcher]", never, {}, {}, never, never, false, never>;
28
32
  }
29
33
  export declare class McTreeSelectFooter {
30
34
  static ɵfac: i0.ɵɵFactoryDeclaration<McTreeSelectFooter, never>;
31
- static ɵdir: i0.ɵɵDirectiveDeclaration<McTreeSelectFooter, "mc-tree-select-footer, [mc-tree-select-footer], [mc-tree-selection-footer]", never, {}, {}, never, never, false, never>;
35
+ static ɵdir: i0.ɵɵDirectiveDeclaration<McTreeSelectFooter, "mc-tree-select-footer, [mc-tree-select-footer]", never, {}, {}, never, never, false, never>;
32
36
  }
33
37
  /** @docs-private */
34
38
  declare class McTreeSelectBase {
@@ -91,8 +95,10 @@ export declare class McTreeSelect extends McTreeSelectMixinBase implements After
91
95
  cleaner: McCleaner;
92
96
  /** User-supplied override of the trigger element. */
93
97
  customTrigger: McTreeSelectTrigger;
98
+ customMatcher: McTreeSelectMatcher;
94
99
  tree: McTreeSelection;
95
100
  search: McSelectSearch;
101
+ footer: McTreeSelectFooter;
96
102
  hiddenItemsText: string;
97
103
  /** Event emitted when the select panel has been toggled. */
98
104
  readonly openedChange: EventEmitter<boolean>;
@@ -278,6 +284,6 @@ export declare class McTreeSelect extends McTreeSelectMixinBase implements After
278
284
  private _compareWith;
279
285
  private subscribeOnSearchChanges;
280
286
  static ɵfac: i0.ɵɵFactoryDeclaration<McTreeSelect, [null, null, null, null, null, null, null, { optional: true; }, { optional: true; }, { optional: true; }, { optional: true; }, { optional: true; self: true; }]>;
281
- static ɵcmp: i0.ɵɵComponentDeclaration<McTreeSelect, "mc-tree-select", ["mcTreeSelect"], { "disabled": "disabled"; "tabIndex": "tabIndex"; "hiddenItemsText": "hiddenItemsText"; "panelClass": "panelClass"; "backdropClass": "backdropClass"; "errorStateMatcher": "errorStateMatcher"; "sortComparator": "sortComparator"; "placeholder": "placeholder"; "required": "required"; "multiple": "multiple"; "autoSelect": "autoSelect"; "compareWith": "compareWith"; "id": "id"; "hasBackdrop": "hasBackdrop"; "hiddenItemsTextFormatter": "hiddenItemsTextFormatter"; }, { "openedChange": "openedChange"; "openedStream": "opened"; "closedStream": "closed"; "selectionChange": "selectionChange"; "valueChange": "valueChange"; }, ["cleaner", "customTrigger", "tree", "search"], ["mc-tree-select-trigger", "mc-cleaner", "[mcSelectSearch]", "[mc-select-search-empty-result]", "mc-tree-selection", "mc-tree-select-footer,[mc-tree-select-footer],[mc-tree-selection-footer]"], false, never>;
287
+ static ɵcmp: i0.ɵɵComponentDeclaration<McTreeSelect, "mc-tree-select", ["mcTreeSelect"], { "disabled": "disabled"; "tabIndex": "tabIndex"; "hiddenItemsText": "hiddenItemsText"; "panelClass": "panelClass"; "backdropClass": "backdropClass"; "errorStateMatcher": "errorStateMatcher"; "sortComparator": "sortComparator"; "placeholder": "placeholder"; "required": "required"; "multiple": "multiple"; "autoSelect": "autoSelect"; "compareWith": "compareWith"; "id": "id"; "hasBackdrop": "hasBackdrop"; "hiddenItemsTextFormatter": "hiddenItemsTextFormatter"; }, { "openedChange": "openedChange"; "openedStream": "opened"; "closedStream": "closed"; "selectionChange": "selectionChange"; "valueChange": "valueChange"; }, ["cleaner", "customTrigger", "customMatcher", "tree", "search", "footer"], ["mc-tree-select-trigger", "mc-cleaner", "mc-tree-select-matcher, [mc-tree-select-matcher]", "[mcSelectSearch]", "[mc-select-search-empty-result]", "mc-tree-selection", "mc-tree-select-footer,[mc-tree-select-footer]"], false, never>;
282
288
  }
283
289
  export {};
@@ -9,6 +9,6 @@ import * as i7 from "@ptsecurity/mosaic/core";
9
9
  import * as i8 from "@ptsecurity/mosaic/select";
10
10
  export declare class McTreeSelectModule {
11
11
  static ɵfac: i0.ɵɵFactoryDeclaration<McTreeSelectModule, never>;
12
- static ɵmod: i0.ɵɵNgModuleDeclaration<McTreeSelectModule, [typeof i1.McTreeSelect, typeof i1.McTreeSelectTrigger, typeof i1.McTreeSelectFooter], [typeof i2.CommonModule, typeof i3.OverlayModule, typeof i4.McTreeModule, typeof i5.McIconModule, typeof i6.McTagsModule, typeof i7.McPseudoCheckboxModule, typeof i8.McSelectModule], [typeof i1.McTreeSelect, typeof i1.McTreeSelectTrigger, typeof i1.McTreeSelectFooter, typeof i2.CommonModule]>;
12
+ static ɵmod: i0.ɵɵNgModuleDeclaration<McTreeSelectModule, [typeof i1.McTreeSelect, typeof i1.McTreeSelectTrigger, typeof i1.McTreeSelectMatcher, typeof i1.McTreeSelectFooter], [typeof i2.CommonModule, typeof i3.OverlayModule, typeof i4.McTreeModule, typeof i5.McIconModule, typeof i6.McTagsModule, typeof i7.McPseudoCheckboxModule, typeof i8.McSelectModule], [typeof i1.McTreeSelect, typeof i1.McTreeSelectTrigger, typeof i1.McTreeSelectMatcher, typeof i1.McTreeSelectFooter, typeof i2.CommonModule]>;
13
13
  static ɵinj: i0.ɵɵInjectorDeclaration<McTreeSelectModule>;
14
14
  }
@@ -1,109 +0,0 @@
1
- @use 'sass:meta';
2
- @use 'sass:map';
3
-
4
- @use '../styles/common/vendor-prefixes';
5
- @use '../styles/typography/typography' as *;
6
- @use '../styles/typography/typography-utils' as *;
7
- @use '../styles/tokens';
8
-
9
- $tokens: meta.module-variables(tokens) !default;
10
-
11
- .mc-form {
12
- display: flex;
13
- flex-direction: column;
14
- }
15
-
16
- .mc-form__row {
17
- display: flex;
18
- flex-direction: row;
19
- }
20
-
21
- .mc-form-horizontal {
22
- $config: mc-typography-config($tokens);
23
-
24
- $line-height: mc-line-height($config, body);
25
-
26
- $form-field-size-height: map.get($tokens, form-field-size-height);
27
-
28
- $label-padding-top: calc(($form-field-size-height - $line-height) / 2);
29
-
30
- & .mc-form-row_margin {
31
- margin-bottom: var(
32
- --mc-forms-size-horizontal-row-margin-bottom, #{map.get($tokens, forms-size-horizontal-row-margin-bottom)}
33
- );
34
- }
35
-
36
- & .mc-form__label {
37
- padding-top: var(--mc-forms-size-horizontal-label-padding-top, #{$label-padding-top});
38
-
39
- text-align: start;
40
- }
41
-
42
- & .mc-form__control {
43
- padding-left: var(
44
- --mc-forms-size-horizontal-control-padding-left,
45
- #{map.get($tokens, forms-size-horizontal-control-padding-left)}
46
- );
47
- }
48
-
49
- & .mc-form__legend {
50
- margin-top: var(
51
- --mc-forms-size-horizontal-legend-margin-top, #{map.get($tokens, forms-size-horizontal-legend-margin-top)}
52
- );
53
- margin-bottom: var(
54
- --mc-forms-size-horizontal-legend-margin-bottom,
55
- #{map.get($tokens, forms-size-horizontal-legend-margin-bottom)}
56
- );
57
- }
58
- }
59
-
60
- .mc-form-vertical {
61
- & .mc-form__row {
62
- flex-direction: column;
63
- }
64
-
65
- & .mc-form-row_margin {
66
- margin-bottom: var(
67
- --mc-forms-size-vertical-row-margin-bottom, #{map.get($tokens, forms-size-vertical-row-margin-bottom)}
68
- );
69
- }
70
-
71
- & .mc-form__label {
72
- padding-top: var(
73
- --mc-forms-size-vertical-label-padding-top, #{map.get($tokens, forms-size-vertical-label-padding-top)}
74
- );
75
- padding-bottom: var(
76
- --mc-forms-size-vertical-label-padding-bottom, #{map.get($tokens, forms-size-vertical-label-padding-bottom)}
77
- );
78
-
79
- text-align: start;
80
- }
81
-
82
- & .mc-form__control {
83
- padding-left: 0;
84
- }
85
-
86
- & .mc-form__legend {
87
- margin-top: var(
88
- --mc-forms-size-vertical-legend-margin-top, #{map.get($tokens, forms-size-vertical-legend-margin-top)}
89
- );
90
- margin-bottom: var(
91
- --mc-forms-size-vertical-legend-margin-bottom, #{map.get($tokens, forms-size-vertical-legend-margin-bottom)}
92
- );
93
- }
94
- }
95
-
96
- .mc-form__fieldset {
97
- display: flex;
98
- flex-direction: column;
99
- }
100
-
101
- .mc-form__fieldset.mc-horizontal {
102
- flex-direction: row;
103
-
104
- & .mc-form__row:not(:first-child) {
105
- padding-left: var(
106
- --mc-forms-size-vertical-control-padding-left, #{map.get($tokens, forms-size-vertical-control-padding-left)}
107
- );
108
- }
109
- }