@ptsecurity/mosaic 13.2.0 → 13.4.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 (345) hide show
  1. package/_theming.scss +241 -64
  2. package/_visual.scss +437 -232
  3. package/button/button.component.d.ts +1 -1
  4. package/core/option/option.d.ts +1 -0
  5. package/core/validation/validation.d.ts +3 -3
  6. package/design-tokens/legacy-2017/tokens/components/alert.json5 +37 -37
  7. package/design-tokens/legacy-2017/tokens/components/autocomplete.json5 +2 -2
  8. package/design-tokens/legacy-2017/tokens/components/badge.json5 +69 -69
  9. package/design-tokens/legacy-2017/tokens/components/button-toggle.json5 +2 -2
  10. package/design-tokens/legacy-2017/tokens/components/button.json5 +55 -56
  11. package/design-tokens/legacy-2017/tokens/components/card.json5 +25 -25
  12. package/design-tokens/legacy-2017/tokens/components/checkbox.json5 +13 -13
  13. package/design-tokens/legacy-2017/tokens/components/datepicker.json5 +12 -12
  14. package/design-tokens/legacy-2017/tokens/components/dl.json5 +8 -8
  15. package/design-tokens/legacy-2017/tokens/components/dropdown.json5 +5 -4
  16. package/design-tokens/legacy-2017/tokens/components/form-field.json5 +27 -26
  17. package/design-tokens/legacy-2017/tokens/components/forms.json5 +14 -14
  18. package/design-tokens/legacy-2017/tokens/components/icon.json5 +104 -0
  19. package/design-tokens/legacy-2017/tokens/components/input.json5 +2 -3
  20. package/design-tokens/legacy-2017/tokens/components/link.json5 +13 -19
  21. package/design-tokens/legacy-2017/tokens/components/list.json5 +3 -5
  22. package/design-tokens/legacy-2017/tokens/components/modal.json5 +17 -15
  23. package/design-tokens/legacy-2017/tokens/components/navbar.json5 +19 -18
  24. package/design-tokens/legacy-2017/tokens/components/option.json5 +2 -2
  25. package/design-tokens/legacy-2017/tokens/components/popover.json5 +23 -23
  26. package/design-tokens/legacy-2017/tokens/components/popup.json5 +8 -8
  27. package/design-tokens/legacy-2017/tokens/components/progress-bar.json5 +3 -3
  28. package/design-tokens/legacy-2017/tokens/components/progress-spinner.json5 +1 -1
  29. package/design-tokens/legacy-2017/tokens/components/radio.json5 +12 -12
  30. package/design-tokens/legacy-2017/tokens/components/select.json5 +6 -7
  31. package/design-tokens/legacy-2017/tokens/components/sidepanel.json5 +7 -5
  32. package/design-tokens/legacy-2017/tokens/components/table.json5 +4 -4
  33. package/design-tokens/legacy-2017/tokens/components/tabs.json5 +32 -32
  34. package/design-tokens/legacy-2017/tokens/components/tags.json5 +56 -57
  35. package/design-tokens/legacy-2017/tokens/components/textarea.json5 +1 -1
  36. package/design-tokens/legacy-2017/tokens/components/timepicker.json5 +1 -1
  37. package/design-tokens/legacy-2017/tokens/components/toggle.json5 +18 -18
  38. package/design-tokens/legacy-2017/tokens/components/tooltip.json5 +27 -27
  39. package/design-tokens/legacy-2017/tokens/components/tree.json5 +6 -3
  40. package/design-tokens/legacy-2017/tokens/properties/colors.json5 +39 -35
  41. package/design-tokens/legacy-2017/tokens/properties/globals.json5 +14 -14
  42. package/design-tokens/legacy-2017/tokens/properties/typography.json5 +70 -35
  43. package/design-tokens/legacy-2017/tokens.d.ts +220 -122
  44. package/design-tokens/pt-2022/tokens/components/alert.json5 +37 -37
  45. package/design-tokens/pt-2022/tokens/components/autocomplete.json5 +2 -2
  46. package/design-tokens/pt-2022/tokens/components/badge.json5 +68 -68
  47. package/design-tokens/pt-2022/tokens/components/button-toggle.json5 +2 -2
  48. package/design-tokens/pt-2022/tokens/components/button.json5 +56 -57
  49. package/design-tokens/pt-2022/tokens/components/card.json5 +25 -25
  50. package/design-tokens/pt-2022/tokens/components/checkbox.json5 +13 -13
  51. package/design-tokens/pt-2022/tokens/components/datepicker.json5 +12 -12
  52. package/design-tokens/pt-2022/tokens/components/dl.json5 +4 -4
  53. package/design-tokens/pt-2022/tokens/components/dropdown.json5 +5 -4
  54. package/design-tokens/pt-2022/tokens/components/form-field.json5 +26 -25
  55. package/design-tokens/pt-2022/tokens/components/forms.json5 +14 -14
  56. package/design-tokens/pt-2022/tokens/components/icon.json5 +104 -0
  57. package/design-tokens/pt-2022/tokens/components/input.json5 +2 -3
  58. package/design-tokens/pt-2022/tokens/components/link.json5 +17 -23
  59. package/design-tokens/pt-2022/tokens/components/list.json5 +2 -4
  60. package/design-tokens/pt-2022/tokens/components/modal.json5 +17 -15
  61. package/design-tokens/pt-2022/tokens/components/navbar.json5 +21 -20
  62. package/design-tokens/pt-2022/tokens/components/option.json5 +2 -2
  63. package/design-tokens/pt-2022/tokens/components/popover.json5 +26 -26
  64. package/design-tokens/pt-2022/tokens/components/popup.json5 +8 -8
  65. package/design-tokens/pt-2022/tokens/components/progress-bar.json5 +2 -2
  66. package/design-tokens/pt-2022/tokens/components/progress-spinner.json5 +1 -1
  67. package/design-tokens/pt-2022/tokens/components/radio.json5 +12 -12
  68. package/design-tokens/pt-2022/tokens/components/select.json5 +6 -7
  69. package/design-tokens/pt-2022/tokens/components/sidepanel.json5 +8 -6
  70. package/design-tokens/pt-2022/tokens/components/table.json5 +4 -4
  71. package/design-tokens/pt-2022/tokens/components/tabs.json5 +32 -32
  72. package/design-tokens/pt-2022/tokens/components/tags.json5 +56 -57
  73. package/design-tokens/pt-2022/tokens/components/textarea.json5 +1 -1
  74. package/design-tokens/pt-2022/tokens/components/timepicker.json5 +1 -1
  75. package/design-tokens/pt-2022/tokens/components/toggle.json5 +19 -19
  76. package/design-tokens/pt-2022/tokens/components/tooltip.json5 +29 -29
  77. package/design-tokens/pt-2022/tokens/components/tree.json5 +6 -3
  78. package/design-tokens/pt-2022/tokens/properties/colors.json5 +41 -37
  79. package/design-tokens/pt-2022/tokens/properties/globals.json5 +14 -14
  80. package/design-tokens/pt-2022/tokens/properties/palette.json5 +7 -0
  81. package/design-tokens/pt-2022/tokens/properties/typography.json5 +69 -34
  82. package/design-tokens/pt-2022/tokens.d.ts +508 -118
  83. package/dropdown/dropdown-trigger.directive.d.ts +4 -3
  84. package/esm2020/autocomplete/autocomplete-origin.directive.mjs +3 -3
  85. package/esm2020/autocomplete/autocomplete-trigger.directive.mjs +3 -3
  86. package/esm2020/autocomplete/autocomplete.component.mjs +5 -5
  87. package/esm2020/autocomplete/autocomplete.module.mjs +4 -4
  88. package/esm2020/button/button.component.mjs +29 -21
  89. package/esm2020/button/button.module.mjs +4 -4
  90. package/esm2020/button-toggle/button-toggle.component.mjs +8 -8
  91. package/esm2020/button-toggle/button-toggle.module.mjs +4 -4
  92. package/esm2020/card/card.component.mjs +3 -3
  93. package/esm2020/card/card.module.mjs +4 -4
  94. package/esm2020/checkbox/checkbox-module.mjs +4 -4
  95. package/esm2020/checkbox/checkbox-required-validator.mjs +3 -3
  96. package/esm2020/checkbox/checkbox.mjs +3 -3
  97. package/esm2020/core/common-behaviors/common-module.mjs +4 -4
  98. package/esm2020/core/error/error-options.mjs +6 -6
  99. package/esm2020/core/formatters/date/formatter.mjs +3 -3
  100. package/esm2020/core/formatters/index.mjs +4 -4
  101. package/esm2020/core/formatters/number/formatter.mjs +4 -4
  102. package/esm2020/core/forms/forms-module.mjs +4 -4
  103. package/esm2020/core/forms/forms.directive.mjs +6 -6
  104. package/esm2020/core/highlight/highlight.pipe.mjs +3 -3
  105. package/esm2020/core/highlight/index.mjs +4 -4
  106. package/esm2020/core/line/line.mjs +7 -7
  107. package/esm2020/core/option/action.mjs +3 -3
  108. package/esm2020/core/option/optgroup.mjs +3 -3
  109. package/esm2020/core/option/option-module.mjs +4 -4
  110. package/esm2020/core/option/option.mjs +10 -7
  111. package/esm2020/core/pop-up/pop-up-trigger.mjs +3 -3
  112. package/esm2020/core/pop-up/pop-up.mjs +3 -3
  113. package/esm2020/core/selection/pseudo-checkbox/pseudo-checkbox.mjs +3 -3
  114. package/esm2020/core/selection/pseudo-checkbox/pseudo-checkbox.module.mjs +4 -4
  115. package/esm2020/core/services/measure-scrollbar.service.mjs +3 -3
  116. package/esm2020/core/validation/validation.mjs +10 -5
  117. package/esm2020/datepicker/calendar-body.component.mjs +3 -3
  118. package/esm2020/datepicker/calendar.component.mjs +6 -6
  119. package/esm2020/datepicker/datepicker-input.directive.mjs +3 -3
  120. package/esm2020/datepicker/datepicker-intl.mjs +3 -3
  121. package/esm2020/datepicker/datepicker-module.mjs +4 -4
  122. package/esm2020/datepicker/datepicker-toggle.component.mjs +6 -6
  123. package/esm2020/datepicker/datepicker.component.mjs +6 -6
  124. package/esm2020/datepicker/month-view.component.mjs +3 -3
  125. package/esm2020/datepicker/multi-year-view.component.mjs +3 -3
  126. package/esm2020/datepicker/year-view.component.mjs +3 -3
  127. package/esm2020/design-tokens/legacy-2017/tokens.mjs +221 -123
  128. package/esm2020/design-tokens/pt-2022/tokens.mjs +243 -138
  129. package/esm2020/divider/divider.component.mjs +3 -3
  130. package/esm2020/divider/divider.module.mjs +4 -4
  131. package/esm2020/dl/dl.component.mjs +9 -9
  132. package/esm2020/dl/dl.module.mjs +4 -4
  133. package/esm2020/dropdown/dropdown-content.directive.mjs +3 -3
  134. package/esm2020/dropdown/dropdown-item.component.mjs +5 -5
  135. package/esm2020/dropdown/dropdown-trigger.directive.mjs +11 -7
  136. package/esm2020/dropdown/dropdown.component.mjs +6 -6
  137. package/esm2020/dropdown/dropdown.module.mjs +4 -4
  138. package/esm2020/form-field/cleaner.mjs +3 -3
  139. package/esm2020/form-field/form-field.mjs +7 -7
  140. package/esm2020/form-field/form-field.module.mjs +4 -4
  141. package/esm2020/form-field/hint.mjs +3 -3
  142. package/esm2020/form-field/password-hint.mjs +34 -15
  143. package/esm2020/form-field/prefix.mjs +3 -3
  144. package/esm2020/form-field/stepper.mjs +3 -3
  145. package/esm2020/form-field/suffix.mjs +3 -3
  146. package/esm2020/icon/icon.component.mjs +6 -6
  147. package/esm2020/icon/icon.module.mjs +4 -4
  148. package/esm2020/input/input-number-validators.mjs +6 -6
  149. package/esm2020/input/input-number.mjs +3 -3
  150. package/esm2020/input/input-password.mjs +12 -11
  151. package/esm2020/input/input.mjs +12 -11
  152. package/esm2020/input/input.module.mjs +4 -4
  153. package/esm2020/link/link.component.mjs +3 -3
  154. package/esm2020/link/link.module.mjs +4 -4
  155. package/esm2020/list/list-selection.component.mjs +11 -11
  156. package/esm2020/list/list.component.mjs +7 -7
  157. package/esm2020/list/list.module.mjs +4 -4
  158. package/esm2020/modal/css-unit.pipe.mjs +3 -3
  159. package/esm2020/modal/modal-control.service.mjs +3 -3
  160. package/esm2020/modal/modal.component.mjs +4 -4
  161. package/esm2020/modal/modal.directive.mjs +12 -12
  162. package/esm2020/modal/modal.module.mjs +4 -4
  163. package/esm2020/modal/modal.service.mjs +3 -3
  164. package/esm2020/navbar/navbar-item.component.mjs +81 -82
  165. package/esm2020/navbar/navbar.component.mjs +10 -10
  166. package/esm2020/navbar/navbar.module.mjs +4 -4
  167. package/esm2020/navbar/vertical-navbar.animation.mjs +3 -3
  168. package/esm2020/navbar/vertical-navbar.component.mjs +6 -6
  169. package/esm2020/popover/popover-confirm.component.mjs +8 -8
  170. package/esm2020/popover/popover.component.mjs +8 -8
  171. package/esm2020/popover/popover.module.mjs +4 -4
  172. package/esm2020/progress-bar/progress-bar.component.mjs +3 -3
  173. package/esm2020/progress-bar/progress-bar.module.mjs +4 -4
  174. package/esm2020/progress-spinner/progress-spinner.component.mjs +3 -3
  175. package/esm2020/progress-spinner/progress-spinner.module.mjs +4 -4
  176. package/esm2020/radio/radio.component.mjs +6 -6
  177. package/esm2020/radio/radio.module.mjs +4 -4
  178. package/esm2020/select/public-api.mjs +2 -1
  179. package/esm2020/select/select-option.directive.mjs +65 -0
  180. package/esm2020/select/select.component.mjs +16 -16
  181. package/esm2020/select/select.module.mjs +19 -10
  182. package/esm2020/sidebar/sidebar.component.mjs +9 -9
  183. package/esm2020/sidebar/sidebar.module.mjs +4 -4
  184. package/esm2020/sidepanel/sidepanel-container.component.mjs +5 -5
  185. package/esm2020/sidepanel/sidepanel-directives.mjs +15 -15
  186. package/esm2020/sidepanel/sidepanel.module.mjs +4 -4
  187. package/esm2020/sidepanel/sidepanel.service.mjs +3 -3
  188. package/esm2020/splitter/splitter.component.mjs +12 -12
  189. package/esm2020/splitter/splitter.module.mjs +4 -4
  190. package/esm2020/table/table.component.mjs +3 -3
  191. package/esm2020/table/table.module.mjs +4 -4
  192. package/esm2020/tabs/paginated-tab-header.mjs +3 -3
  193. package/esm2020/tabs/tab-body.component.mjs +6 -6
  194. package/esm2020/tabs/tab-content.directive.mjs +3 -3
  195. package/esm2020/tabs/tab-group.component.mjs +19 -19
  196. package/esm2020/tabs/tab-header.component.mjs +4 -4
  197. package/esm2020/tabs/tab-label-wrapper.directive.mjs +3 -3
  198. package/esm2020/tabs/tab-label.directive.mjs +3 -3
  199. package/esm2020/tabs/tab-nav-bar/tab-nav-bar.mjs +6 -6
  200. package/esm2020/tabs/tab.component.mjs +3 -3
  201. package/esm2020/tabs/tabs.module.mjs +4 -4
  202. package/esm2020/tags/tag-input.mjs +3 -3
  203. package/esm2020/tags/tag-list.component.mjs +6 -6
  204. package/esm2020/tags/tag.component.mjs +67 -69
  205. package/esm2020/tags/tag.module.mjs +4 -4
  206. package/esm2020/textarea/textarea.component.mjs +9 -8
  207. package/esm2020/textarea/textarea.module.mjs +4 -4
  208. package/esm2020/timepicker/timepicker.directive.mjs +3 -3
  209. package/esm2020/timepicker/timepicker.module.mjs +4 -4
  210. package/esm2020/toggle/toggle.component.mjs +3 -3
  211. package/esm2020/toggle/toggle.module.mjs +4 -4
  212. package/esm2020/tooltip/tooltip.component.mjs +15 -14
  213. package/esm2020/tooltip/tooltip.module.mjs +4 -4
  214. package/esm2020/tree/node.mjs +3 -3
  215. package/esm2020/tree/outlet.mjs +3 -3
  216. package/esm2020/tree/padding.directive.mjs +3 -3
  217. package/esm2020/tree/toggle.mjs +10 -10
  218. package/esm2020/tree/tree-base.mjs +6 -6
  219. package/esm2020/tree/tree-option.component.mjs +5 -5
  220. package/esm2020/tree/tree-selection.component.mjs +8 -6
  221. package/esm2020/tree/tree.mjs +3 -3
  222. package/esm2020/tree/tree.module.mjs +4 -4
  223. package/esm2020/tree-select/tree-select.component.mjs +14 -14
  224. package/esm2020/tree-select/tree-select.module.mjs +4 -4
  225. package/fesm2015/ptsecurity-mosaic-autocomplete.mjs +15 -15
  226. package/fesm2015/ptsecurity-mosaic-button-toggle.mjs +12 -12
  227. package/fesm2015/ptsecurity-mosaic-button.mjs +32 -24
  228. package/fesm2015/ptsecurity-mosaic-button.mjs.map +1 -1
  229. package/fesm2015/ptsecurity-mosaic-card.mjs +7 -7
  230. package/fesm2015/ptsecurity-mosaic-checkbox.mjs +10 -10
  231. package/fesm2015/ptsecurity-mosaic-core.mjs +89 -81
  232. package/fesm2015/ptsecurity-mosaic-core.mjs.map +1 -1
  233. package/fesm2015/ptsecurity-mosaic-datepicker.mjs +40 -40
  234. package/fesm2015/ptsecurity-mosaic-design-tokens.mjs +572 -271
  235. package/fesm2015/ptsecurity-mosaic-design-tokens.mjs.map +1 -1
  236. package/fesm2015/ptsecurity-mosaic-divider.mjs +7 -7
  237. package/fesm2015/ptsecurity-mosaic-dl.mjs +13 -13
  238. package/fesm2015/ptsecurity-mosaic-dropdown.mjs +25 -21
  239. package/fesm2015/ptsecurity-mosaic-dropdown.mjs.map +1 -1
  240. package/fesm2015/ptsecurity-mosaic-form-field.mjs +60 -38
  241. package/fesm2015/ptsecurity-mosaic-form-field.mjs.map +1 -1
  242. package/fesm2015/ptsecurity-mosaic-icon.mjs +10 -10
  243. package/fesm2015/ptsecurity-mosaic-input.mjs +33 -31
  244. package/fesm2015/ptsecurity-mosaic-input.mjs.map +1 -1
  245. package/fesm2015/ptsecurity-mosaic-link.mjs +7 -7
  246. package/fesm2015/ptsecurity-mosaic-list.mjs +21 -21
  247. package/fesm2015/ptsecurity-mosaic-list.mjs.map +1 -1
  248. package/fesm2015/ptsecurity-mosaic-modal.mjs +29 -29
  249. package/fesm2015/ptsecurity-mosaic-modal.mjs.map +1 -1
  250. package/fesm2015/ptsecurity-mosaic-navbar.mjs +100 -101
  251. package/fesm2015/ptsecurity-mosaic-navbar.mjs.map +1 -1
  252. package/fesm2015/ptsecurity-mosaic-popover.mjs +18 -18
  253. package/fesm2015/ptsecurity-mosaic-popover.mjs.map +1 -1
  254. package/fesm2015/ptsecurity-mosaic-progress-bar.mjs +7 -7
  255. package/fesm2015/ptsecurity-mosaic-progress-spinner.mjs +7 -7
  256. package/fesm2015/ptsecurity-mosaic-radio.mjs +10 -10
  257. package/fesm2015/ptsecurity-mosaic-select.mjs +99 -33
  258. package/fesm2015/ptsecurity-mosaic-select.mjs.map +1 -1
  259. package/fesm2015/ptsecurity-mosaic-sidebar.mjs +13 -13
  260. package/fesm2015/ptsecurity-mosaic-sidepanel.mjs +26 -26
  261. package/fesm2015/ptsecurity-mosaic-sidepanel.mjs.map +1 -1
  262. package/fesm2015/ptsecurity-mosaic-splitter.mjs +16 -16
  263. package/fesm2015/ptsecurity-mosaic-table.mjs +7 -7
  264. package/fesm2015/ptsecurity-mosaic-tabs.mjs +54 -54
  265. package/fesm2015/ptsecurity-mosaic-tabs.mjs.map +1 -1
  266. package/fesm2015/ptsecurity-mosaic-tags.mjs +81 -83
  267. package/fesm2015/ptsecurity-mosaic-tags.mjs.map +1 -1
  268. package/fesm2015/ptsecurity-mosaic-textarea.mjs +11 -10
  269. package/fesm2015/ptsecurity-mosaic-textarea.mjs.map +1 -1
  270. package/fesm2015/ptsecurity-mosaic-timepicker.mjs +7 -7
  271. package/fesm2015/ptsecurity-mosaic-toggle.mjs +7 -7
  272. package/fesm2015/ptsecurity-mosaic-tooltip.mjs +18 -17
  273. package/fesm2015/ptsecurity-mosaic-tooltip.mjs.map +1 -1
  274. package/fesm2015/ptsecurity-mosaic-tree-select.mjs +17 -17
  275. package/fesm2015/ptsecurity-mosaic-tree-select.mjs.map +1 -1
  276. package/fesm2015/ptsecurity-mosaic-tree.mjs +44 -42
  277. package/fesm2015/ptsecurity-mosaic-tree.mjs.map +1 -1
  278. package/fesm2020/ptsecurity-mosaic-autocomplete.mjs +15 -15
  279. package/fesm2020/ptsecurity-mosaic-button-toggle.mjs +12 -12
  280. package/fesm2020/ptsecurity-mosaic-button.mjs +32 -24
  281. package/fesm2020/ptsecurity-mosaic-button.mjs.map +1 -1
  282. package/fesm2020/ptsecurity-mosaic-card.mjs +7 -7
  283. package/fesm2020/ptsecurity-mosaic-checkbox.mjs +10 -10
  284. package/fesm2020/ptsecurity-mosaic-core.mjs +89 -81
  285. package/fesm2020/ptsecurity-mosaic-core.mjs.map +1 -1
  286. package/fesm2020/ptsecurity-mosaic-datepicker.mjs +40 -40
  287. package/fesm2020/ptsecurity-mosaic-design-tokens.mjs +572 -271
  288. package/fesm2020/ptsecurity-mosaic-design-tokens.mjs.map +1 -1
  289. package/fesm2020/ptsecurity-mosaic-divider.mjs +7 -7
  290. package/fesm2020/ptsecurity-mosaic-dl.mjs +13 -13
  291. package/fesm2020/ptsecurity-mosaic-dropdown.mjs +25 -21
  292. package/fesm2020/ptsecurity-mosaic-dropdown.mjs.map +1 -1
  293. package/fesm2020/ptsecurity-mosaic-form-field.mjs +57 -38
  294. package/fesm2020/ptsecurity-mosaic-form-field.mjs.map +1 -1
  295. package/fesm2020/ptsecurity-mosaic-icon.mjs +10 -10
  296. package/fesm2020/ptsecurity-mosaic-input.mjs +33 -31
  297. package/fesm2020/ptsecurity-mosaic-input.mjs.map +1 -1
  298. package/fesm2020/ptsecurity-mosaic-link.mjs +7 -7
  299. package/fesm2020/ptsecurity-mosaic-list.mjs +21 -21
  300. package/fesm2020/ptsecurity-mosaic-list.mjs.map +1 -1
  301. package/fesm2020/ptsecurity-mosaic-modal.mjs +29 -29
  302. package/fesm2020/ptsecurity-mosaic-modal.mjs.map +1 -1
  303. package/fesm2020/ptsecurity-mosaic-navbar.mjs +100 -101
  304. package/fesm2020/ptsecurity-mosaic-navbar.mjs.map +1 -1
  305. package/fesm2020/ptsecurity-mosaic-popover.mjs +18 -18
  306. package/fesm2020/ptsecurity-mosaic-popover.mjs.map +1 -1
  307. package/fesm2020/ptsecurity-mosaic-progress-bar.mjs +7 -7
  308. package/fesm2020/ptsecurity-mosaic-progress-spinner.mjs +7 -7
  309. package/fesm2020/ptsecurity-mosaic-radio.mjs +10 -10
  310. package/fesm2020/ptsecurity-mosaic-select.mjs +96 -32
  311. package/fesm2020/ptsecurity-mosaic-select.mjs.map +1 -1
  312. package/fesm2020/ptsecurity-mosaic-sidebar.mjs +13 -13
  313. package/fesm2020/ptsecurity-mosaic-sidepanel.mjs +26 -26
  314. package/fesm2020/ptsecurity-mosaic-sidepanel.mjs.map +1 -1
  315. package/fesm2020/ptsecurity-mosaic-splitter.mjs +16 -16
  316. package/fesm2020/ptsecurity-mosaic-table.mjs +7 -7
  317. package/fesm2020/ptsecurity-mosaic-tabs.mjs +54 -54
  318. package/fesm2020/ptsecurity-mosaic-tabs.mjs.map +1 -1
  319. package/fesm2020/ptsecurity-mosaic-tags.mjs +79 -81
  320. package/fesm2020/ptsecurity-mosaic-tags.mjs.map +1 -1
  321. package/fesm2020/ptsecurity-mosaic-textarea.mjs +11 -10
  322. package/fesm2020/ptsecurity-mosaic-textarea.mjs.map +1 -1
  323. package/fesm2020/ptsecurity-mosaic-timepicker.mjs +7 -7
  324. package/fesm2020/ptsecurity-mosaic-toggle.mjs +7 -7
  325. package/fesm2020/ptsecurity-mosaic-tooltip.mjs +18 -17
  326. package/fesm2020/ptsecurity-mosaic-tooltip.mjs.map +1 -1
  327. package/fesm2020/ptsecurity-mosaic-tree-select.mjs +17 -17
  328. package/fesm2020/ptsecurity-mosaic-tree-select.mjs.map +1 -1
  329. package/fesm2020/ptsecurity-mosaic-tree.mjs +44 -42
  330. package/fesm2020/ptsecurity-mosaic-tree.mjs.map +1 -1
  331. package/form-field/password-hint.d.ts +3 -1
  332. package/input/input-password.d.ts +4 -3
  333. package/input/input.d.ts +4 -3
  334. package/list/list-selection.component.d.ts +1 -1
  335. package/navbar/navbar-item.component.d.ts +18 -18
  336. package/package.json +4 -4
  337. package/prebuilt-themes/dark-theme.css +1 -1
  338. package/prebuilt-themes/default-theme.css +1 -1
  339. package/prebuilt-visual/default-visual.css +1 -1
  340. package/select/public-api.d.ts +1 -0
  341. package/select/select-option.directive.d.ts +20 -0
  342. package/select/select.module.d.ts +9 -7
  343. package/tags/tag.component.d.ts +21 -21
  344. package/textarea/textarea.component.d.ts +4 -3
  345. package/toggle/README.md +0 -0
@@ -2,7 +2,7 @@ import { PlatformModule } from '@angular/cdk/platform';
2
2
  import * as i4 from '@angular/common';
3
3
  import { CommonModule } from '@angular/common';
4
4
  import * as i0 from '@angular/core';
5
- import { InjectionToken, EventEmitter, Directive, Inject, Optional, Self, Input, Output, forwardRef, Component, ChangeDetectionStrategy, ViewEncapsulation, ContentChildren, ContentChild, NgModule } from '@angular/core';
5
+ import { InjectionToken, EventEmitter, Directive, Inject, Optional, Self, Input, Output, Component, ChangeDetectionStrategy, ViewEncapsulation, ContentChildren, ContentChild, forwardRef, NgModule } from '@angular/core';
6
6
  import { ENTER, TAB, SPACE, COMMA, hasModifierKey, BACKSPACE, DELETE, HOME, END } from '@ptsecurity/cdk/keycodes';
7
7
  import { coerceBooleanProperty } from '@angular/cdk/coercion';
8
8
  import * as i3 from '@angular/forms';
@@ -195,9 +195,9 @@ class McTagInput {
195
195
  return this.separatorKeyCodes.indexOf(event.keyCode) > -1;
196
196
  }
197
197
  }
198
- /** @nocollapse */ /** @nocollapse */ McTagInput.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: McTagInput, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: MC_TAGS_DEFAULT_OPTIONS }, { token: i3.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Directive });
199
- /** @nocollapse */ /** @nocollapse */ McTagInput.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.0", type: McTagInput, selector: "input[mcTagInputFor]", inputs: { separatorKeyCodes: ["mcTagInputSeparatorKeyCodes", "separatorKeyCodes"], placeholder: "placeholder", id: "id", tagList: ["mcTagInputFor", "tagList"], addOnBlur: ["mcTagInputAddOnBlur", "addOnBlur"], disabled: "disabled" }, outputs: { tagEnd: "mcTagInputTokenEnd" }, host: { listeners: { "keydown": "onKeydown($event)", "blur": "blur()", "focus": "onFocus()", "input": "onInput()", "paste": "onPaste($event)" }, properties: { "id": "id", "attr.disabled": "disabled || null", "attr.placeholder": "placeholder || null" }, classAttribute: "mc-tag-input" }, exportAs: ["mcTagInput", "mcTagInputFor"], usesOnChanges: true, ngImport: i0 });
200
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: McTagInput, decorators: [{
198
+ /** @nocollapse */ /** @nocollapse */ McTagInput.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.7", ngImport: i0, type: McTagInput, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: MC_TAGS_DEFAULT_OPTIONS }, { token: i3.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Directive });
199
+ /** @nocollapse */ /** @nocollapse */ McTagInput.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.7", type: McTagInput, selector: "input[mcTagInputFor]", inputs: { separatorKeyCodes: ["mcTagInputSeparatorKeyCodes", "separatorKeyCodes"], placeholder: "placeholder", id: "id", tagList: ["mcTagInputFor", "tagList"], addOnBlur: ["mcTagInputAddOnBlur", "addOnBlur"], disabled: "disabled" }, outputs: { tagEnd: "mcTagInputTokenEnd" }, host: { listeners: { "keydown": "onKeydown($event)", "blur": "blur()", "focus": "onFocus()", "input": "onInput()", "paste": "onPaste($event)" }, properties: { "id": "id", "attr.disabled": "disabled || null", "attr.placeholder": "placeholder || null" }, classAttribute: "mc-tag-input" }, exportAs: ["mcTagInput", "mcTagInputFor"], usesOnChanges: true, ngImport: i0 });
200
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.7", ngImport: i0, type: McTagInput, decorators: [{
201
201
  type: Directive,
202
202
  args: [{
203
203
  selector: 'input[mcTagInputFor]',
@@ -258,9 +258,9 @@ const TAG_ATTRIBUTE_NAMES = ['mc-basic-tag'];
258
258
  */
259
259
  class McTagAvatar {
260
260
  }
261
- /** @nocollapse */ /** @nocollapse */ McTagAvatar.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: McTagAvatar, deps: [], target: i0.ɵɵFactoryTarget.Directive });
262
- /** @nocollapse */ /** @nocollapse */ McTagAvatar.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.0", type: McTagAvatar, selector: "mc-tag-avatar, [mcTagAvatar]", host: { classAttribute: "mc-tag-avatar" }, ngImport: i0 });
263
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: McTagAvatar, decorators: [{
261
+ /** @nocollapse */ /** @nocollapse */ McTagAvatar.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.7", ngImport: i0, type: McTagAvatar, deps: [], target: i0.ɵɵFactoryTarget.Directive });
262
+ /** @nocollapse */ /** @nocollapse */ McTagAvatar.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.7", type: McTagAvatar, selector: "mc-tag-avatar, [mcTagAvatar]", host: { classAttribute: "mc-tag-avatar" }, ngImport: i0 });
263
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.7", ngImport: i0, type: McTagAvatar, decorators: [{
264
264
  type: Directive,
265
265
  args: [{
266
266
  selector: 'mc-tag-avatar, [mcTagAvatar]',
@@ -273,66 +273,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImpor
273
273
  */
274
274
  class McTagTrailingIcon {
275
275
  }
276
- /** @nocollapse */ /** @nocollapse */ McTagTrailingIcon.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: McTagTrailingIcon, deps: [], target: i0.ɵɵFactoryTarget.Directive });
277
- /** @nocollapse */ /** @nocollapse */ McTagTrailingIcon.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.0", type: McTagTrailingIcon, selector: "mc-tag-trailing-icon, [mcTagTrailingIcon]", host: { classAttribute: "mc-tag-trailing-icon" }, ngImport: i0 });
278
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: McTagTrailingIcon, decorators: [{
276
+ /** @nocollapse */ /** @nocollapse */ McTagTrailingIcon.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.7", ngImport: i0, type: McTagTrailingIcon, deps: [], target: i0.ɵɵFactoryTarget.Directive });
277
+ /** @nocollapse */ /** @nocollapse */ McTagTrailingIcon.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.7", type: McTagTrailingIcon, selector: "mc-tag-trailing-icon, [mcTagTrailingIcon]", host: { classAttribute: "mc-tag-trailing-icon" }, ngImport: i0 });
278
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.7", ngImport: i0, type: McTagTrailingIcon, decorators: [{
279
279
  type: Directive,
280
280
  args: [{
281
281
  selector: 'mc-tag-trailing-icon, [mcTagTrailingIcon]',
282
282
  host: { class: 'mc-tag-trailing-icon' }
283
283
  }]
284
284
  }] });
285
- /**
286
- *
287
- * Example:
288
- *
289
- * `<mc-tag>
290
- * <mc-icon mcTagRemove>cancel</mc-icon>
291
- * </mc-tag>`
292
- *
293
- * You *may* use a custom icon, but you may need to override the `mc-tag-remove` positioning
294
- * styles to properly center the icon within the tag.
295
- */
296
- class McTagRemove {
297
- constructor(parentTag) {
298
- this.parentTag = parentTag;
299
- }
300
- focus($event) {
301
- $event.stopPropagation();
302
- }
303
- /** Calls the parent tag's public `remove()` method if applicable. */
304
- handleClick(event) {
305
- if (this.parentTag.removable) {
306
- this.parentTag.hasFocus = true;
307
- this.parentTag.remove();
308
- }
309
- // We need to stop event propagation because otherwise the event will bubble up to the
310
- // form field and cause the `onContainerClick` method to be invoked. This method would then
311
- // reset the focused tag that has been focused after tag removal. Usually the parent
312
- // the parent click listener of the `McTag` would prevent propagation, but it can happen
313
- // that the tag is being removed before the event bubbles up.
314
- event.stopPropagation();
315
- }
316
- }
317
- /** @nocollapse */ /** @nocollapse */ McTagRemove.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: McTagRemove, deps: [{ token: forwardRef(() => McTag) }], target: i0.ɵɵFactoryTarget.Directive });
318
- /** @nocollapse */ /** @nocollapse */ McTagRemove.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.0", type: McTagRemove, selector: "[mcTagRemove]", host: { listeners: { "click": "handleClick($event)", "focus": "focus($event)" }, properties: { "attr.tabindex": "-1" }, classAttribute: "mc-tag-remove mc-tag-trailing-icon" }, ngImport: i0 });
319
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: McTagRemove, decorators: [{
320
- type: Directive,
321
- args: [{
322
- selector: '[mcTagRemove]',
323
- host: {
324
- class: 'mc-tag-remove mc-tag-trailing-icon',
325
- '[attr.tabindex]': '-1',
326
- '(click)': 'handleClick($event)',
327
- '(focus)': 'focus($event)'
328
- }
329
- }]
330
- }], ctorParameters: function () {
331
- return [{ type: McTag, decorators: [{
332
- type: Inject,
333
- args: [forwardRef(() => McTag)]
334
- }] }];
335
- } });
336
285
  class McTagBase {
337
286
  // tslint:disable-next-line:naming-convention
338
287
  constructor(_elementRef) {
@@ -430,15 +379,13 @@ class McTag extends McTagMixinBase {
430
379
  const icons = this.contentChildren.map((item) => item._elementRef.nativeElement);
431
380
  if (icons.length === 1) {
432
381
  const iconElement = icons[0];
433
- if (!iconElement.previousElementSibling && !iconElement.nextElementSibling) {
434
- if (iconElement.nextSibling) {
435
- iconElement.classList.add('mc-icon_left');
436
- this.nativeElement.classList.add('mc-left-icon');
437
- }
438
- if (iconElement.previousSibling) {
439
- iconElement.classList.add('mc-icon_right');
440
- this.nativeElement.classList.add('mc-right-icon');
441
- }
382
+ if (iconElement.classList.contains('mc-tag-remove')) {
383
+ iconElement.classList.add('mc-icon_right');
384
+ this.nativeElement.classList.add('mc-right-icon');
385
+ }
386
+ else {
387
+ iconElement.classList.add('mc-icon_left');
388
+ this.nativeElement.classList.add('mc-left-icon');
442
389
  }
443
390
  }
444
391
  else if (icons.length > 1) {
@@ -565,9 +512,9 @@ class McTag extends McTagMixinBase {
565
512
  });
566
513
  }
567
514
  }
568
- /** @nocollapse */ /** @nocollapse */ McTag.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: McTag, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
569
- /** @nocollapse */ /** @nocollapse */ McTag.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.0", type: McTag, selector: "mc-tag, [mc-tag], mc-basic-tag, [mc-basic-tag]", inputs: { color: "color", selected: "selected", value: "value", selectable: "selectable", removable: "removable", disabled: "disabled" }, outputs: { selectionChange: "selectionChange", destroyed: "destroyed", removed: "removed" }, host: { listeners: { "click": "handleClick($event)", "keydown": "handleKeydown($event)", "focus": "focus()", "blur": "blur()" }, properties: { "attr.tabindex": "tabindex", "attr.disabled": "disabled || null", "class.mc-selected": "selected", "class.mc-focused": "hasFocus", "class.mc-tag-with-avatar": "avatar", "class.mc-tag-with-icon": "contentChildren", "class.mc-tag-with-trailing-icon": "trailingIcon || removeIcon", "class.mc-disabled": "disabled" }, classAttribute: "mc-tag" }, queries: [{ propertyName: "avatar", first: true, predicate: McTagAvatar, descendants: true }, { propertyName: "trailingIcon", first: true, predicate: McTagTrailingIcon, descendants: true }, { propertyName: "removeIcon", first: true, predicate: i0.forwardRef(function () { return McTagRemove; }), descendants: true }, { propertyName: "contentChildren", predicate: McIcon }], exportAs: ["mcTag"], usesInheritance: true, ngImport: i0, template: "<div class=\"mc-tag__wrapper\">\n <span class=\"mc-tag__text\"><ng-content></ng-content></span>\n <ng-content select=\"[mc-icon]\"></ng-content>\n <div class=\"mc-tag-overlay\"></div>\n</div>\n", styles: [".mc-tag{position:relative;display:inline-block;overflow:hidden;margin:var(--mc-tags-size-margin, 2px);height:var(--mc-tags-size-height, 24px);border-width:var(--mc-tags-size-border-width, 1px);border-style:solid;border-radius:var(--mc-tags-size-border-radius, 4px);cursor:default;outline:none;box-sizing:border-box}.mc-tag .mc-icon:hover{cursor:pointer}.mc-tag.mc-disabled .mc-icon:hover{cursor:default}.mc-tag.mc-left-icon{padding-left:var(--mc-tags-size-icon-padding, 3px)}.mc-tag.mc-right-icon{padding-right:var(--mc-tags-size-icon-padding, 3px)}.mc-tag .mc-tag__text{margin-left:calc(var(--mc-tags-size-text-margin, 8px) - var(--mc-tags-size-border-width, 1px));text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.mc-tag:not(.mc-tag-with-icon) .mc-tag__text{margin-right:calc(var(--mc-tags-size-text-margin, 8px) - var(--mc-tags-size-border-width, 1px))}.mc-tag__wrapper{display:flex;align-items:center;height:100%;flex:1 1 100%}.mc-tag__wrapper .mc-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:var(--mc-tags-size-height, 24px);height:var(--mc-tags-size-height, 24px)}.mc-tag__wrapper .mc-icon_left{margin-right:var(--mc-tags-size-icon-padding, 3px)}.mc-tag__wrapper .mc-icon_right{margin-left:var(--mc-tags-size-icon-padding, 3px)}.mc-tag-overlay{position:absolute;top:-1px;left:-1px;right:-1px;bottom:-1px;pointer-events:none;border-radius:inherit}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
570
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: McTag, decorators: [{
515
+ /** @nocollapse */ /** @nocollapse */ McTag.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.7", ngImport: i0, type: McTag, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
516
+ /** @nocollapse */ /** @nocollapse */ McTag.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.7", type: McTag, selector: "mc-tag, [mc-tag], mc-basic-tag, [mc-basic-tag]", inputs: { color: "color", selected: "selected", value: "value", selectable: "selectable", removable: "removable", disabled: "disabled" }, outputs: { selectionChange: "selectionChange", destroyed: "destroyed", removed: "removed" }, host: { listeners: { "click": "handleClick($event)", "keydown": "handleKeydown($event)", "focus": "focus()", "blur": "blur()" }, properties: { "attr.tabindex": "tabindex", "attr.disabled": "disabled || null", "class.mc-selected": "selected", "class.mc-focused": "hasFocus", "class.mc-tag-with-avatar": "avatar", "class.mc-tag-with-icon": "contentChildren", "class.mc-tag-with-trailing-icon": "trailingIcon || removeIcon", "class.mc-disabled": "disabled" }, classAttribute: "mc-tag" }, queries: [{ propertyName: "avatar", first: true, predicate: McTagAvatar, descendants: true }, { propertyName: "trailingIcon", first: true, predicate: McTagTrailingIcon, descendants: true }, { propertyName: "removeIcon", first: true, predicate: i0.forwardRef(function () { return McTagRemove; }), descendants: true }, { propertyName: "contentChildren", predicate: McIcon }], exportAs: ["mcTag"], usesInheritance: true, ngImport: i0, template: "<div class=\"mc-tag__wrapper\">\n <ng-content select=\"[mc-icon]:not([mcTagRemove])\"></ng-content>\n <span class=\"mc-tag__text\"><ng-content></ng-content></span>\n <ng-content select=\"[mcTagRemove]\"></ng-content>\n</div>\n<div class=\"mc-tag-overlay\"></div> \n", styles: [".mc-tag{position:relative;display:inline-block;overflow:hidden;margin:var(--mc-tags-size-margin, 2px);height:var(--mc-tags-size-height, 24px);border-width:var(--mc-tags-size-border-width, 1px);border-style:solid;border-radius:var(--mc-tags-size-border-radius, 4px);cursor:default;outline:none;box-sizing:border-box}.mc-tag .mc-icon.mc-tag-remove:hover{cursor:pointer}.mc-tag.mc-disabled .mc-icon.mc-tag-remove:hover{cursor:default}.mc-tag .mc-tag__text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.mc-tag:not(.mc-tag-with-icon) .mc-tag__text{margin-right:calc(var(--mc-tags-size-text-margin, 8px) - var(--mc-tags-size-border-width, 1px))}.mc-tag__wrapper{display:flex;align-items:center;height:100%;flex:1 1 100%}.mc-tag__wrapper .mc-icon.mc-tag-remove{display:flex;align-items:center;justify-content:center;flex-shrink:0;height:var(--mc-tags-size-height, 24px);padding-left:var(--mc-tags-size-icon-padding, 4px);padding-right:var(--mc-tags-size-icon-padding, 4px)}.mc-tag__wrapper .mc-icon_left{margin-right:var(--mc-tags-size-icon-padding, 4px)}.mc-tag__wrapper>.mc-icon:first-child{margin-left:calc(var(--mc-tags-size-icon-padding, 4px) - var(--mc-tags-size-border-width, 1px))}.mc-tag__wrapper>.mc-tag__text:last-child{margin-right:calc(var(--mc-tags-size-text-margin, 8px) - var(--mc-tags-size-border-width, 1px))}.mc-tag__wrapper>.mc-tag__text:first-child{margin-left:calc(var(--mc-tags-size-text-margin, 8px) - var(--mc-tags-size-border-width, 1px))}.mc-tag-overlay{position:absolute;top:-1px;left:-1px;right:-1px;bottom:-1px;pointer-events:none;border-radius:inherit}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
517
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.7", ngImport: i0, type: McTag, decorators: [{
571
518
  type: Component,
572
519
  args: [{ selector: 'mc-tag, [mc-tag], mc-basic-tag, [mc-basic-tag]', exportAs: 'mcTag', inputs: ['color'], host: {
573
520
  class: 'mc-tag',
@@ -583,7 +530,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImpor
583
530
  '(keydown)': 'handleKeydown($event)',
584
531
  '(focus)': 'focus()',
585
532
  '(blur)': 'blur()'
586
- }, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div class=\"mc-tag__wrapper\">\n <span class=\"mc-tag__text\"><ng-content></ng-content></span>\n <ng-content select=\"[mc-icon]\"></ng-content>\n <div class=\"mc-tag-overlay\"></div>\n</div>\n", styles: [".mc-tag{position:relative;display:inline-block;overflow:hidden;margin:var(--mc-tags-size-margin, 2px);height:var(--mc-tags-size-height, 24px);border-width:var(--mc-tags-size-border-width, 1px);border-style:solid;border-radius:var(--mc-tags-size-border-radius, 4px);cursor:default;outline:none;box-sizing:border-box}.mc-tag .mc-icon:hover{cursor:pointer}.mc-tag.mc-disabled .mc-icon:hover{cursor:default}.mc-tag.mc-left-icon{padding-left:var(--mc-tags-size-icon-padding, 3px)}.mc-tag.mc-right-icon{padding-right:var(--mc-tags-size-icon-padding, 3px)}.mc-tag .mc-tag__text{margin-left:calc(var(--mc-tags-size-text-margin, 8px) - var(--mc-tags-size-border-width, 1px));text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.mc-tag:not(.mc-tag-with-icon) .mc-tag__text{margin-right:calc(var(--mc-tags-size-text-margin, 8px) - var(--mc-tags-size-border-width, 1px))}.mc-tag__wrapper{display:flex;align-items:center;height:100%;flex:1 1 100%}.mc-tag__wrapper .mc-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:var(--mc-tags-size-height, 24px);height:var(--mc-tags-size-height, 24px)}.mc-tag__wrapper .mc-icon_left{margin-right:var(--mc-tags-size-icon-padding, 3px)}.mc-tag__wrapper .mc-icon_right{margin-left:var(--mc-tags-size-icon-padding, 3px)}.mc-tag-overlay{position:absolute;top:-1px;left:-1px;right:-1px;bottom:-1px;pointer-events:none;border-radius:inherit}\n"] }]
533
+ }, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div class=\"mc-tag__wrapper\">\n <ng-content select=\"[mc-icon]:not([mcTagRemove])\"></ng-content>\n <span class=\"mc-tag__text\"><ng-content></ng-content></span>\n <ng-content select=\"[mcTagRemove]\"></ng-content>\n</div>\n<div class=\"mc-tag-overlay\"></div> \n", styles: [".mc-tag{position:relative;display:inline-block;overflow:hidden;margin:var(--mc-tags-size-margin, 2px);height:var(--mc-tags-size-height, 24px);border-width:var(--mc-tags-size-border-width, 1px);border-style:solid;border-radius:var(--mc-tags-size-border-radius, 4px);cursor:default;outline:none;box-sizing:border-box}.mc-tag .mc-icon.mc-tag-remove:hover{cursor:pointer}.mc-tag.mc-disabled .mc-icon.mc-tag-remove:hover{cursor:default}.mc-tag .mc-tag__text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.mc-tag:not(.mc-tag-with-icon) .mc-tag__text{margin-right:calc(var(--mc-tags-size-text-margin, 8px) - var(--mc-tags-size-border-width, 1px))}.mc-tag__wrapper{display:flex;align-items:center;height:100%;flex:1 1 100%}.mc-tag__wrapper .mc-icon.mc-tag-remove{display:flex;align-items:center;justify-content:center;flex-shrink:0;height:var(--mc-tags-size-height, 24px);padding-left:var(--mc-tags-size-icon-padding, 4px);padding-right:var(--mc-tags-size-icon-padding, 4px)}.mc-tag__wrapper .mc-icon_left{margin-right:var(--mc-tags-size-icon-padding, 4px)}.mc-tag__wrapper>.mc-icon:first-child{margin-left:calc(var(--mc-tags-size-icon-padding, 4px) - var(--mc-tags-size-border-width, 1px))}.mc-tag__wrapper>.mc-tag__text:last-child{margin-right:calc(var(--mc-tags-size-text-margin, 8px) - var(--mc-tags-size-border-width, 1px))}.mc-tag__wrapper>.mc-tag__text:first-child{margin-left:calc(var(--mc-tags-size-text-margin, 8px) - var(--mc-tags-size-border-width, 1px))}.mc-tag-overlay{position:absolute;top:-1px;left:-1px;right:-1px;bottom:-1px;pointer-events:none;border-radius:inherit}\n"] }]
587
534
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i0.NgZone }]; }, propDecorators: { contentChildren: [{
588
535
  type: ContentChildren,
589
536
  args: [McIcon]
@@ -613,6 +560,57 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImpor
613
560
  }], disabled: [{
614
561
  type: Input
615
562
  }] } });
563
+ /**
564
+ *
565
+ * Example:
566
+ *
567
+ * `<mc-tag>
568
+ * <mc-icon mcTagRemove>cancel</mc-icon>
569
+ * </mc-tag>`
570
+ *
571
+ * You *may* use a custom icon, but you may need to override the `mc-tag-remove` positioning
572
+ * styles to properly center the icon within the tag.
573
+ */
574
+ class McTagRemove {
575
+ constructor(parentTag) {
576
+ this.parentTag = parentTag;
577
+ }
578
+ focus($event) {
579
+ $event.stopPropagation();
580
+ }
581
+ /** Calls the parent tag's public `remove()` method if applicable. */
582
+ handleClick(event) {
583
+ if (this.parentTag.removable) {
584
+ this.parentTag.hasFocus = true;
585
+ this.parentTag.remove();
586
+ }
587
+ // We need to stop event propagation because otherwise the event will bubble up to the
588
+ // form field and cause the `onContainerClick` method to be invoked. This method would then
589
+ // reset the focused tag that has been focused after tag removal. Usually the parent
590
+ // the parent click listener of the `McTag` would prevent propagation, but it can happen
591
+ // that the tag is being removed before the event bubbles up.
592
+ event.stopPropagation();
593
+ }
594
+ }
595
+ /** @nocollapse */ /** @nocollapse */ McTagRemove.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.7", ngImport: i0, type: McTagRemove, deps: [{ token: forwardRef(() => McTag) }], target: i0.ɵɵFactoryTarget.Directive });
596
+ /** @nocollapse */ /** @nocollapse */ McTagRemove.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.7", type: McTagRemove, selector: "[mcTagRemove]", host: { listeners: { "click": "handleClick($event)", "focus": "focus($event)" }, properties: { "attr.tabindex": "-1" }, classAttribute: "mc-tag-remove mc-tag-trailing-icon" }, ngImport: i0 });
597
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.7", ngImport: i0, type: McTagRemove, decorators: [{
598
+ type: Directive,
599
+ args: [{
600
+ selector: '[mcTagRemove]',
601
+ host: {
602
+ class: 'mc-tag-remove mc-tag-trailing-icon',
603
+ '[attr.tabindex]': '-1',
604
+ '(click)': 'handleClick($event)',
605
+ '(focus)': 'focus($event)'
606
+ }
607
+ }]
608
+ }], ctorParameters: function () {
609
+ return [{ type: McTag, decorators: [{
610
+ type: Inject,
611
+ args: [forwardRef(() => McTag)]
612
+ }] }];
613
+ } });
616
614
 
617
615
  class McTagListBase {
618
616
  constructor(defaultErrorStateMatcher, parentForm, parentFormGroup, ngControl) {
@@ -819,7 +817,7 @@ class McTagList extends McTagListMixinBase {
819
817
  }
820
818
  ngAfterContentInit() {
821
819
  if (this.mcValidation.useValidation) {
822
- setMosaicValidation(this);
820
+ setMosaicValidation(this, this.changeDetectorRef);
823
821
  }
824
822
  this.keyManager = new FocusKeyManager(this.tags)
825
823
  .withVerticalOrientation()
@@ -1241,9 +1239,9 @@ class McTagList extends McTagListMixinBase {
1241
1239
  }
1242
1240
  }
1243
1241
  }
1244
- /** @nocollapse */ /** @nocollapse */ McTagList.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: McTagList, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.ErrorStateMatcher }, { token: NG_VALIDATORS, optional: true }, { token: MC_VALIDATION, optional: true }, { token: i2.Directionality, optional: true }, { token: i3.NgForm, optional: true }, { token: i3.FormGroupDirective, optional: true }, { token: i3.NgControl, optional: true, self: true }, { token: i3.NgModel, optional: true, self: true }, { token: i3.FormControlName, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component });
1245
- /** @nocollapse */ /** @nocollapse */ McTagList.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.0", type: McTagList, selector: "mc-tag-list", inputs: { multiple: "multiple", compareWith: "compareWith", value: "value", required: "required", placeholder: "placeholder", disabled: "disabled", selectable: "selectable", tabIndex: "tabIndex", errorStateMatcher: "errorStateMatcher", orientation: "orientation" }, outputs: { valueChange: "valueChange", change: "change" }, host: { listeners: { "focus": "focus()", "blur": "blur()", "keydown": "keydown($event)" }, properties: { "class.mc-disabled": "disabled", "class.mc-invalid": "errorState", "attr.tabindex": "disabled ? null : tabIndex", "id": "uid" }, classAttribute: "mc-tag-list" }, providers: [{ provide: McFormFieldControl, useExisting: McTagList }], queries: [{ propertyName: "cleaner", first: true, predicate: ["mcTagListCleaner"], descendants: true, static: true }, { propertyName: "tags", predicate: McTag, descendants: true }], exportAs: ["mcTagList"], usesInheritance: true, ngImport: i0, template: "<div class=\"mc-tags-list__list-container\">\n <ng-content></ng-content>\n</div>\n\n<div class=\"mc-tags-list__cleaner\"\n *ngIf=\"canShowCleaner\">\n <ng-content select=\"mc-cleaner\"></ng-content>\n</div>\n", styles: [".mc-tag-list{display:flex;flex-direction:row;box-sizing:border-box}.mc-tag-input{border:none;outline:none;background:transparent}.mc-tags-list__list-container{display:flex;flex-wrap:wrap;flex:1 1 100%;box-sizing:border-box;min-width:0;min-height:var(--mc-tag-list-size-min-height, 30px);padding:var(--mc-tag-list-size-padding, 1px 6px)}.mc-tags-list__list-container .mc-tag-input{max-width:100%;flex:1 1 auto;height:var(--mc-tag-input-size-height, 22px);margin:var(--mc-tag-input-size-margin, 2px 4px)}.mc-tags-list__cleaner .mc-cleaner{height:30px}\n"], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
1246
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: McTagList, decorators: [{
1242
+ /** @nocollapse */ /** @nocollapse */ McTagList.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.7", ngImport: i0, type: McTagList, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.ErrorStateMatcher }, { token: NG_VALIDATORS, optional: true }, { token: MC_VALIDATION, optional: true }, { token: i2.Directionality, optional: true }, { token: i3.NgForm, optional: true }, { token: i3.FormGroupDirective, optional: true }, { token: i3.NgControl, optional: true, self: true }, { token: i3.NgModel, optional: true, self: true }, { token: i3.FormControlName, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component });
1243
+ /** @nocollapse */ /** @nocollapse */ McTagList.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.7", type: McTagList, selector: "mc-tag-list", inputs: { multiple: "multiple", compareWith: "compareWith", value: "value", required: "required", placeholder: "placeholder", disabled: "disabled", selectable: "selectable", tabIndex: "tabIndex", errorStateMatcher: "errorStateMatcher", orientation: "orientation" }, outputs: { valueChange: "valueChange", change: "change" }, host: { listeners: { "focus": "focus()", "blur": "blur()", "keydown": "keydown($event)" }, properties: { "class.mc-disabled": "disabled", "class.mc-invalid": "errorState", "attr.tabindex": "disabled ? null : tabIndex", "id": "uid" }, classAttribute: "mc-tag-list" }, providers: [{ provide: McFormFieldControl, useExisting: McTagList }], queries: [{ propertyName: "cleaner", first: true, predicate: ["mcTagListCleaner"], descendants: true, static: true }, { propertyName: "tags", predicate: McTag, descendants: true }], exportAs: ["mcTagList"], usesInheritance: true, ngImport: i0, template: "<div class=\"mc-tags-list__list-container\">\n <ng-content></ng-content>\n</div>\n\n<div class=\"mc-tags-list__cleaner\"\n *ngIf=\"canShowCleaner\">\n <ng-content select=\"mc-cleaner\"></ng-content>\n</div>\n", styles: [".mc-tag-list{display:flex;flex-direction:row;box-sizing:border-box}.mc-tag-input{border:none;outline:none;background:transparent}.mc-tags-list__list-container{display:flex;flex-wrap:wrap;flex:1 1 100%;box-sizing:border-box;min-width:0;min-height:calc(var(--mc-form-field-size-height, 32px) - var(--mc-form-field-size-border-width, 1px) * 2);padding:var(--mc-tag-list-size-padding, 1px 12px)}.mc-tags-list__list-container .mc-tag-input{max-width:100%;flex:1 1 auto;height:var(--mc-tag-input-size-height, 22px);margin:var(--mc-tag-input-size-margin, 2px 4px)}.mc-tags-list__cleaner .mc-cleaner{height:30px}\n"], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
1244
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.7", ngImport: i0, type: McTagList, decorators: [{
1247
1245
  type: Component,
1248
1246
  args: [{ selector: 'mc-tag-list', exportAs: 'mcTagList', host: {
1249
1247
  class: 'mc-tag-list',
@@ -1254,7 +1252,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImpor
1254
1252
  '(focus)': 'focus()',
1255
1253
  '(blur)': 'blur()',
1256
1254
  '(keydown)': 'keydown($event)'
1257
- }, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [{ provide: McFormFieldControl, useExisting: McTagList }], template: "<div class=\"mc-tags-list__list-container\">\n <ng-content></ng-content>\n</div>\n\n<div class=\"mc-tags-list__cleaner\"\n *ngIf=\"canShowCleaner\">\n <ng-content select=\"mc-cleaner\"></ng-content>\n</div>\n", styles: [".mc-tag-list{display:flex;flex-direction:row;box-sizing:border-box}.mc-tag-input{border:none;outline:none;background:transparent}.mc-tags-list__list-container{display:flex;flex-wrap:wrap;flex:1 1 100%;box-sizing:border-box;min-width:0;min-height:var(--mc-tag-list-size-min-height, 30px);padding:var(--mc-tag-list-size-padding, 1px 6px)}.mc-tags-list__list-container .mc-tag-input{max-width:100%;flex:1 1 auto;height:var(--mc-tag-input-size-height, 22px);margin:var(--mc-tag-input-size-margin, 2px 4px)}.mc-tags-list__cleaner .mc-cleaner{height:30px}\n"] }]
1255
+ }, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [{ provide: McFormFieldControl, useExisting: McTagList }], template: "<div class=\"mc-tags-list__list-container\">\n <ng-content></ng-content>\n</div>\n\n<div class=\"mc-tags-list__cleaner\"\n *ngIf=\"canShowCleaner\">\n <ng-content select=\"mc-cleaner\"></ng-content>\n</div>\n", styles: [".mc-tag-list{display:flex;flex-direction:row;box-sizing:border-box}.mc-tag-input{border:none;outline:none;background:transparent}.mc-tags-list__list-container{display:flex;flex-wrap:wrap;flex:1 1 100%;box-sizing:border-box;min-width:0;min-height:calc(var(--mc-form-field-size-height, 32px) - var(--mc-form-field-size-border-width, 1px) * 2);padding:var(--mc-tag-list-size-padding, 1px 12px)}.mc-tags-list__list-container .mc-tag-input{max-width:100%;flex:1 1 auto;height:var(--mc-tag-input-size-height, 22px);margin:var(--mc-tag-input-size-margin, 2px 4px)}.mc-tags-list__cleaner .mc-cleaner{height:30px}\n"] }]
1258
1256
  }], ctorParameters: function () {
1259
1257
  return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.ErrorStateMatcher }, { type: undefined, decorators: [{
1260
1258
  type: Optional
@@ -1324,8 +1322,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImpor
1324
1322
 
1325
1323
  class McTagsModule {
1326
1324
  }
1327
- /** @nocollapse */ /** @nocollapse */ McTagsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: McTagsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1328
- /** @nocollapse */ /** @nocollapse */ McTagsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: McTagsModule, declarations: [McTagList,
1325
+ /** @nocollapse */ /** @nocollapse */ McTagsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.7", ngImport: i0, type: McTagsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1326
+ /** @nocollapse */ /** @nocollapse */ McTagsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.7", ngImport: i0, type: McTagsModule, declarations: [McTagList,
1329
1327
  McTag,
1330
1328
  McTagInput,
1331
1329
  McTagTrailingIcon,
@@ -1336,12 +1334,12 @@ class McTagsModule {
1336
1334
  McTagTrailingIcon,
1337
1335
  McTagAvatar,
1338
1336
  McTagRemove] });
1339
- /** @nocollapse */ /** @nocollapse */ McTagsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: McTagsModule, providers: [{
1337
+ /** @nocollapse */ /** @nocollapse */ McTagsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.7", ngImport: i0, type: McTagsModule, providers: [{
1340
1338
  provide: MC_TAGS_DEFAULT_OPTIONS,
1341
1339
  // tslint:disable-next-line: no-object-literal-type-assertion
1342
1340
  useValue: { separatorKeyCodes: [ENTER] }
1343
1341
  }], imports: [[CommonModule, PlatformModule]] });
1344
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: McTagsModule, decorators: [{
1342
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.7", ngImport: i0, type: McTagsModule, decorators: [{
1345
1343
  type: NgModule,
1346
1344
  args: [{
1347
1345
  imports: [CommonModule, PlatformModule],