@ng-matero/extensions 16.3.1 → 17.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (204) hide show
  1. package/_index.scss +2 -1
  2. package/alert/_alert-theme.scss +54 -24
  3. package/alert/alert.d.ts +3 -6
  4. package/alert/alert.scss +3 -3
  5. package/button/_button-theme.scss +6 -4
  6. package/button/button-loading.d.ts +5 -10
  7. package/button/button-module.d.ts +5 -5
  8. package/checkbox-group/checkbox-group.d.ts +4 -9
  9. package/colorpicker/_colorpicker-theme.scss +62 -34
  10. package/colorpicker/colorpicker-input.d.ts +1 -3
  11. package/colorpicker/colorpicker-toggle.d.ts +2 -3
  12. package/colorpicker/colorpicker.d.ts +5 -6
  13. package/core/color/_all-color.scss +7 -18
  14. package/core/density/_all-density.scss +28 -14
  15. package/core/mdc-helpers/_mdc-helpers.scss +27 -238
  16. package/core/style/_sass-utils.scss +13 -1
  17. package/core/style/_validation.scss +43 -0
  18. package/core/theming/_all-theme.scss +32 -17
  19. package/core/theming/_inspection.scss +303 -0
  20. package/core/theming/_m2-inspection.scss +266 -0
  21. package/core/tokens/_token-utils.scss +4 -5
  22. package/core/tokens/m2/mdc/_plain-tooltip.scss +21 -29
  23. package/core/tokens/m2/mtx/_alert.scss +14 -15
  24. package/core/tokens/m2/mtx/_colorpicker.scss +8 -11
  25. package/core/tokens/m2/mtx/_datetimepicker.scss +38 -47
  26. package/core/tokens/m2/mtx/_drawer.scss +9 -10
  27. package/core/tokens/m2/mtx/_grid.scss +34 -22
  28. package/core/tokens/m2/mtx/_loader.scss +6 -6
  29. package/core/tokens/m2/mtx/_popover.scss +10 -11
  30. package/core/tokens/m2/mtx/_progress.scss +18 -17
  31. package/core/tokens/m2/mtx/_select.scss +65 -25
  32. package/core/tokens/m2/mtx/_split.scss +8 -11
  33. package/core/typography/_all-typography.scss +40 -0
  34. package/core/typography/_typography.scss +1 -579
  35. package/datetimepicker/_datetimepicker-theme.scss +75 -48
  36. package/datetimepicker/calendar.d.ts +7 -14
  37. package/datetimepicker/calendar.scss +16 -4
  38. package/datetimepicker/clock.d.ts +1 -2
  39. package/datetimepicker/datetimepicker-content.scss +3 -3
  40. package/datetimepicker/datetimepicker-input.d.ts +1 -2
  41. package/datetimepicker/datetimepicker-toggle.d.ts +2 -3
  42. package/datetimepicker/datetimepicker.d.ts +15 -26
  43. package/datetimepicker/month-view.d.ts +1 -1
  44. package/datetimepicker/multi-year-view.d.ts +1 -1
  45. package/datetimepicker/time.d.ts +3 -5
  46. package/datetimepicker/time.scss +2 -2
  47. package/datetimepicker/year-view.d.ts +1 -1
  48. package/drawer/_drawer-theme.scss +55 -22
  49. package/drawer/drawer-container.scss +25 -4
  50. package/esm2022/alert/alert-module.mjs +4 -4
  51. package/esm2022/alert/alert.mjs +11 -18
  52. package/esm2022/button/button-loading.mjs +13 -23
  53. package/esm2022/button/button-module.mjs +6 -7
  54. package/esm2022/checkbox-group/checkbox-group-module.mjs +4 -4
  55. package/esm2022/checkbox-group/checkbox-group.mjs +18 -29
  56. package/esm2022/colorpicker/colorpicker-input.mjs +13 -14
  57. package/esm2022/colorpicker/colorpicker-module.mjs +4 -4
  58. package/esm2022/colorpicker/colorpicker-toggle.mjs +18 -18
  59. package/esm2022/colorpicker/colorpicker.mjs +31 -36
  60. package/esm2022/column-resize/column-resize-directives/column-resize-flex.mjs +4 -4
  61. package/esm2022/column-resize/column-resize-directives/column-resize.mjs +4 -4
  62. package/esm2022/column-resize/column-resize-module.mjs +4 -4
  63. package/esm2022/column-resize/column-resize-notifier.mjs +7 -7
  64. package/esm2022/column-resize/column-resize.mjs +3 -3
  65. package/esm2022/column-resize/column-size-store.mjs +3 -3
  66. package/esm2022/column-resize/event-dispatcher.mjs +4 -4
  67. package/esm2022/column-resize/overlay-handle.mjs +3 -3
  68. package/esm2022/column-resize/resizable.mjs +3 -3
  69. package/esm2022/column-resize/resize-strategy.mjs +13 -13
  70. package/esm2022/core/datetime/datetime.module.mjs +8 -8
  71. package/esm2022/core/datetime/native-datetime-adapter.mjs +5 -5
  72. package/esm2022/core/pipes/is-template-ref.pipe.mjs +3 -3
  73. package/esm2022/core/pipes/pipes.module.mjs +4 -4
  74. package/esm2022/core/pipes/to-observable.pipe.mjs +3 -3
  75. package/esm2022/datetimepicker/calendar-body.mjs +5 -6
  76. package/esm2022/datetimepicker/calendar.mjs +30 -47
  77. package/esm2022/datetimepicker/clock.mjs +10 -9
  78. package/esm2022/datetimepicker/datetimepicker-input.mjs +14 -15
  79. package/esm2022/datetimepicker/datetimepicker-intl.mjs +3 -3
  80. package/esm2022/datetimepicker/datetimepicker-module.mjs +4 -4
  81. package/esm2022/datetimepicker/datetimepicker-toggle.mjs +18 -18
  82. package/esm2022/datetimepicker/datetimepicker.mjs +57 -80
  83. package/esm2022/datetimepicker/month-view.mjs +8 -9
  84. package/esm2022/datetimepicker/multi-year-view.mjs +8 -8
  85. package/esm2022/datetimepicker/time.mjs +18 -24
  86. package/esm2022/datetimepicker/year-view.mjs +8 -8
  87. package/esm2022/dialog/dialog-container.mjs +7 -7
  88. package/esm2022/dialog/dialog-module.mjs +4 -4
  89. package/esm2022/dialog/dialog.mjs +4 -4
  90. package/esm2022/drawer/drawer-container.mjs +7 -7
  91. package/esm2022/drawer/drawer-module.mjs +4 -4
  92. package/esm2022/drawer/drawer.mjs +5 -5
  93. package/esm2022/grid/cell.mjs +6 -6
  94. package/esm2022/grid/column-menu.mjs +5 -5
  95. package/esm2022/grid/column-resize/column-resize-directives/column-resize-flex.mjs +4 -4
  96. package/esm2022/grid/column-resize/column-resize-directives/column-resize.mjs +4 -4
  97. package/esm2022/grid/column-resize/column-resize-module.mjs +8 -8
  98. package/esm2022/grid/column-resize/overlay-handle.mjs +6 -6
  99. package/esm2022/grid/column-resize/resizable-directives/resizable.mjs +6 -6
  100. package/esm2022/grid/column-resize/resize-strategy.mjs +5 -5
  101. package/esm2022/grid/expansion-toggle.mjs +5 -5
  102. package/esm2022/grid/grid-module.mjs +4 -4
  103. package/esm2022/grid/grid-pipes.mjs +22 -22
  104. package/esm2022/grid/grid-utils.mjs +4 -4
  105. package/esm2022/grid/grid.mjs +76 -44
  106. package/esm2022/loader/loader-module.mjs +4 -4
  107. package/esm2022/loader/loader.mjs +17 -29
  108. package/esm2022/photoviewer/photoviewer-module.mjs +4 -4
  109. package/esm2022/photoviewer/photoviewer.mjs +7 -7
  110. package/esm2022/popover/popover-content.mjs +8 -8
  111. package/esm2022/popover/popover-module.mjs +4 -4
  112. package/esm2022/popover/popover-target.mjs +4 -4
  113. package/esm2022/popover/popover-trigger.mjs +6 -6
  114. package/esm2022/popover/popover.mjs +52 -137
  115. package/esm2022/progress/progress-module.mjs +4 -4
  116. package/esm2022/progress/progress.mjs +14 -25
  117. package/esm2022/select/option.mjs +11 -17
  118. package/esm2022/select/select-module.mjs +4 -4
  119. package/esm2022/select/select.mjs +13 -13
  120. package/esm2022/select/templates.mjs +44 -44
  121. package/esm2022/split/split-module.mjs +4 -4
  122. package/esm2022/split/split-pane.mjs +5 -5
  123. package/esm2022/split/split.mjs +7 -7
  124. package/esm2022/tooltip/tooltip-module.mjs +4 -4
  125. package/esm2022/tooltip/tooltip.mjs +22 -22
  126. package/fesm2022/mtxAlert.mjs +14 -21
  127. package/fesm2022/mtxAlert.mjs.map +1 -1
  128. package/fesm2022/mtxButton.mjs +17 -28
  129. package/fesm2022/mtxButton.mjs.map +1 -1
  130. package/fesm2022/mtxCheckboxGroup.mjs +21 -32
  131. package/fesm2022/mtxCheckboxGroup.mjs.map +1 -1
  132. package/fesm2022/mtxColorpicker.mjs +61 -64
  133. package/fesm2022/mtxColorpicker.mjs.map +1 -1
  134. package/fesm2022/mtxColumnResize.mjs +48 -48
  135. package/fesm2022/mtxCore.mjs +23 -23
  136. package/fesm2022/mtxDatetimepicker.mjs +150 -190
  137. package/fesm2022/mtxDatetimepicker.mjs.map +1 -1
  138. package/fesm2022/mtxDialog.mjs +14 -14
  139. package/fesm2022/mtxDialog.mjs.map +1 -1
  140. package/fesm2022/mtxDrawer.mjs +17 -17
  141. package/fesm2022/mtxDrawer.mjs.map +1 -1
  142. package/fesm2022/mtxGrid.mjs +150 -118
  143. package/fesm2022/mtxGrid.mjs.map +1 -1
  144. package/fesm2022/mtxLoader.mjs +20 -32
  145. package/fesm2022/mtxLoader.mjs.map +1 -1
  146. package/fesm2022/mtxPhotoviewer.mjs +10 -10
  147. package/fesm2022/mtxPhotoviewer.mjs.map +1 -1
  148. package/fesm2022/mtxPopover.mjs +73 -158
  149. package/fesm2022/mtxPopover.mjs.map +1 -1
  150. package/fesm2022/mtxProgress.mjs +17 -28
  151. package/fesm2022/mtxProgress.mjs.map +1 -1
  152. package/fesm2022/mtxSelect.mjs +68 -73
  153. package/fesm2022/mtxSelect.mjs.map +1 -1
  154. package/fesm2022/mtxSplit.mjs +14 -14
  155. package/fesm2022/mtxSplit.mjs.map +1 -1
  156. package/fesm2022/mtxTooltip.mjs +26 -26
  157. package/fesm2022/mtxTooltip.mjs.map +1 -1
  158. package/grid/_grid-theme.scss +60 -24
  159. package/grid/column-menu.scss +32 -3
  160. package/grid/grid.d.ts +33 -1
  161. package/grid/grid.scss +36 -108
  162. package/loader/_loader-theme.scss +55 -22
  163. package/loader/loader.d.ts +4 -9
  164. package/loader/loader.scss +1 -1
  165. package/package.json +13 -19
  166. package/photoviewer/photoviewer.d.ts +1 -0
  167. package/popover/_popover-theme.scss +55 -22
  168. package/popover/popover.d.ts +23 -54
  169. package/popover/popover.scss +2 -2
  170. package/prebuilt-themes/deeppurple-amber.css +1 -1
  171. package/prebuilt-themes/indigo-pink.css +1 -1
  172. package/prebuilt-themes/pink-bluegrey.css +1 -1
  173. package/prebuilt-themes/purple-green.css +1 -1
  174. package/progress/_progress-theme.scss +60 -22
  175. package/progress/progress.d.ts +4 -9
  176. package/progress/progress.scss +3 -3
  177. package/select/_select-theme.scss +66 -34
  178. package/select/option.d.ts +2 -5
  179. package/select/select.d.ts +1 -3
  180. package/select/select.scss +104 -127
  181. package/split/_split-theme.scss +62 -32
  182. package/split/split.scss +2 -4
  183. package/tooltip/_tooltip-theme.scss +66 -34
  184. package/_theming.scss +0 -16
  185. package/alert/_alert-theme.import.scss +0 -2
  186. package/button/_button-theme.import.scss +0 -2
  187. package/colorpicker/_colorpicker-theme.import.scss +0 -2
  188. package/core/style/_elevation.scss +0 -91
  189. package/core/style/_private.scss +0 -32
  190. package/core/style/_variables.scss +0 -44
  191. package/core/style/_vendor-prefixes.scss +0 -46
  192. package/core/theming/_palette.scss +0 -746
  193. package/core/theming/_theming.scss +0 -463
  194. package/core/typography/_typography-utils.scss +0 -101
  195. package/datetimepicker/_datetimepicker-theme.import.scss +0 -4
  196. package/drawer/_drawer-theme.import.scss +0 -2
  197. package/grid/_grid-theme.import.scss +0 -2
  198. package/loader/_loader-theme.import.scss +0 -2
  199. package/popover/_popover-theme.import.scss +0 -2
  200. package/progress/_progress-theme.import.scss +0 -2
  201. package/select/_select-density.scss +0 -68
  202. package/select/_select-theme.import.scss +0 -3
  203. package/split/_split-theme.import.scss +0 -2
  204. package/tooltip/_tooltip-theme.import.scss +0 -1
package/grid/grid.scss CHANGED
@@ -14,6 +14,8 @@ $_tokens: tokens-mtx-grid.$prefix, tokens-mtx-grid.get-token-slots();
14
14
 
15
15
  border: 1px solid var($border-color);
16
16
 
17
+ @include token-utils.create-token-slot(border-radius, container-shape);
18
+
17
19
  .mat-mdc-table {
18
20
  &.mat-table-striped .mat-row-odd {
19
21
  @include token-utils.create-token-slot(background-color, table-row-striped-background-color);
@@ -52,7 +54,9 @@ $_tokens: tokens-mtx-grid.$prefix, tokens-mtx-grid.get-token-slots();
52
54
  .mat-mdc-footer-cell,
53
55
  .mat-mdc-cell {
54
56
  &:not(.mtx-grid-checkbox-cell) {
55
- min-width: 80px;
57
+ @include token-utils.use-tokens($_tokens...) {
58
+ @include token-utils.create-token-slot(min-width, table-cell-min-width);
59
+ }
56
60
  }
57
61
  }
58
62
  }
@@ -75,41 +79,6 @@ $_tokens: tokens-mtx-grid.$prefix, tokens-mtx-grid.get-token-slots();
75
79
  }
76
80
  }
77
81
 
78
- .mat-mdc-header-cell,
79
- .mat-mdc-footer-cell,
80
- .mat-mdc-cell {
81
- padding: 4px 10px;
82
- box-sizing: border-box;
83
-
84
- &:first-of-type:not(:only-of-type) {
85
- padding-left: 24px;
86
-
87
- &.mtx-grid-checkbox-cell {
88
- padding-left: 10px;
89
- padding-right: 10px;
90
- }
91
-
92
- [dir='rtl'] & {
93
- padding-left: 10px;
94
- padding-right: 24px;
95
-
96
- &.mtx-grid-checkbox-cell {
97
- padding-left: 10px;
98
- padding-right: 10px;
99
- }
100
- }
101
- }
102
-
103
- &:last-of-type:not(:only-of-type) {
104
- padding-right: 24px;
105
-
106
- [dir='rtl'] & {
107
- padding-left: 24px;
108
- padding-right: 10px;
109
- }
110
- }
111
- }
112
-
113
82
  .mat-mdc-footer-cell {
114
83
  border-top: 1px solid var(--mat-table-row-item-outline-color);
115
84
 
@@ -118,22 +87,16 @@ $_tokens: tokens-mtx-grid.$prefix, tokens-mtx-grid.get-token-slots();
118
87
  }
119
88
  }
120
89
 
121
- .mat-mdc-row {
122
- &.mtx-grid-expansion {
123
- height: 0;
124
- overflow: hidden;
90
+ .mat-mdc-row.mtx-grid-expansion {
91
+ height: 0;
92
+ overflow: hidden;
125
93
 
126
- .mat-mdc-cell {
127
- padding-top: 0;
128
- padding-bottom: 0;
129
- }
130
-
131
- &.collapsed .mat-mdc-cell {
132
- border-bottom-width: 0;
133
- }
94
+ .mat-mdc-cell {
95
+ padding-top: 0;
96
+ padding-bottom: 0;
134
97
  }
135
98
 
136
- &:last-of-type .mat-cell {
99
+ &.collapsed .mat-mdc-cell {
137
100
  border-bottom-width: 0;
138
101
  }
139
102
  }
@@ -145,6 +108,7 @@ $_tokens: tokens-mtx-grid.$prefix, tokens-mtx-grid.get-token-slots();
145
108
  .mat-header-cell-inner {
146
109
  display: inline-flex;
147
110
  align-items: center;
111
+ vertical-align: middle;
148
112
  }
149
113
 
150
114
  .mat-mdc-paginator {
@@ -152,12 +116,21 @@ $_tokens: tokens-mtx-grid.$prefix, tokens-mtx-grid.get-token-slots();
152
116
  $border-color: token-utils.get-token-variable(outline-color);
153
117
 
154
118
  border-top: 1px solid var($border-color);
119
+
120
+ @include token-utils.create-token-slot(border-bottom-left-radius, container-shape);
121
+ @include token-utils.create-token-slot(border-bottom-right-radius, container-shape);
155
122
  }
156
123
  }
157
124
 
158
125
  .mat-paginator-hidden {
159
126
  display: none;
160
127
  }
128
+
129
+ .mtx-grid-checkbox-cell {
130
+ width: 60px;
131
+ min-width: 60px;
132
+ padding: 0 calc((60px - var(--mdc-checkbox-state-layer-size)) / 2);
133
+ }
161
134
  }
162
135
 
163
136
  .mtx-grid-progress {
@@ -182,6 +155,12 @@ $_tokens: tokens-mtx-grid.$prefix, tokens-mtx-grid.get-token-slots();
182
155
  }
183
156
  }
184
157
 
158
+ .mtx-grid-toolbar-content {
159
+ flex: 1;
160
+ width: 0;
161
+ padding: 0 8px;
162
+ }
163
+
185
164
  .mtx-grid-layout {
186
165
  display: flex;
187
166
  flex: 1 1 auto;
@@ -236,52 +215,30 @@ $_tokens: tokens-mtx-grid.$prefix, tokens-mtx-grid.get-token-slots();
236
215
 
237
216
  .mtx-grid-expansion-placeholder {
238
217
  display: inline-block;
239
- width: 40px;
240
- height: 40px;
241
218
  vertical-align: middle;
219
+
220
+ @include token-utils.use-tokens($_tokens...) {
221
+ @include token-utils.create-token-slot(width, row-expand-button-size);
222
+ @include token-utils.create-token-slot(height, row-expand-button-size);
223
+ }
242
224
  }
243
225
 
244
226
  .mtx-grid-expansion-detail {
245
227
  display: flex;
246
228
  align-items: center;
247
- min-height: 48px;
229
+ min-height: var(--mat-table-row-item-container-height);
248
230
  overflow: hidden;
249
231
  }
250
232
 
251
- .mtx-grid-checkbox-cell {
252
- flex: none;
253
- justify-content: center;
254
- width: 60px;
255
- min-width: 60px;
256
-
257
- .mat-checkbox {
258
- display: flex; // Fix checkbox height
259
- margin: 0 10px;
260
- }
261
-
262
- .mat-checkbox-inner-container {
263
- margin-left: 0; // Fix checkbox margin with RTL
264
- }
265
- }
266
-
267
- .mtx-grid-row-expand-button.mat-mdc-icon-button {
268
- width: 40px;
269
- height: 40px;
270
- padding: 8px;
271
- vertical-align: middle;
272
-
233
+ .mtx-grid-row-expand-button {
273
234
  &.expanded .mtx-grid-row-expand-icon {
274
235
  transform: rotate(90deg);
275
236
  }
276
237
 
238
+ &.mat-mdc-icon-button,
277
239
  +mtx-grid-cell {
278
240
  vertical-align: middle;
279
241
  }
280
-
281
- .mat-mdc-button-touch-target {
282
- width: 100%;
283
- height: 100%;
284
- }
285
242
  }
286
243
 
287
244
  .mtx-grid-icon {
@@ -289,32 +246,3 @@ $_tokens: tokens-mtx-grid.$prefix, tokens-mtx-grid.get-token-slots();
289
246
  height: 20px;
290
247
  font-size: 20px;
291
248
  }
292
-
293
- .mtx-grid-column-menu-item {
294
- @include token-utils.use-tokens($_tokens...) {
295
- @include token-utils.create-token-slot(color, column-menu-text-color);
296
- }
297
- }
298
-
299
- .mtx-grid-column-menu-header,
300
- .mtx-grid-column-menu-footer {
301
- @include token-utils.use-tokens($_tokens...) {
302
- @include token-utils.create-token-slot(color, column-menu-text-color);
303
- }
304
- }
305
-
306
- .mtx-grid-column-menu-header {
307
- @include token-utils.use-tokens($_tokens...) {
308
- $border-color: token-utils.get-token-variable(column-menu-divider-color);
309
-
310
- border-bottom: 1px solid var($border-color);
311
- }
312
- }
313
-
314
- .mtx-grid-column-menu-footer {
315
- @include token-utils.use-tokens($_tokens...) {
316
- $border-color: token-utils.get-token-variable(column-menu-divider-color);
317
-
318
- border-top: 1px solid var($border-color);
319
- }
320
- }
@@ -1,36 +1,69 @@
1
- @use '../core/theming/theming';
1
+ @use '@angular/material' as mat;
2
2
  @use '../core/style/sass-utils';
3
3
  @use '../core/tokens/token-utils';
4
4
  @use '../core/tokens/m2/mtx/loader' as tokens-mtx-loader;
5
5
 
6
- @mixin color($config-or-theme) {
7
- $config: theming.get-color-config($config-or-theme);
8
-
9
- @include sass-utils.current-selector-or-root() {
10
- @include token-utils.create-token-values(tokens-mtx-loader.$prefix,
11
- tokens-mtx-loader.get-color-tokens($config));
6
+ @mixin base($theme) {
7
+ @if mat.get-theme-version($theme) == 1 {
8
+ @include _theme-from-tokens(mat.get-theme-tokens($theme, base));
9
+ }
10
+ @else {
11
+ @include sass-utils.current-selector-or-root() {
12
+ @include token-utils.create-token-values(tokens-mtx-loader.$prefix,
13
+ tokens-mtx-loader.get-unthemable-tokens());
14
+ }
12
15
  }
13
16
  }
14
17
 
15
- @mixin typography($config-or-theme) {}
18
+ @mixin color($theme) {
19
+ @if mat.get-theme-version($theme) == 1 {
20
+ @include _theme-from-tokens(mat.get-theme-tokens($theme, color));
21
+ }
22
+ @else {
23
+ @include sass-utils.current-selector-or-root() {
24
+ @include token-utils.create-token-values(tokens-mtx-loader.$prefix,
25
+ tokens-mtx-loader.get-color-tokens($theme));
26
+ }
27
+ }
28
+ }
16
29
 
17
- @mixin density($config-or-theme) {}
30
+ @mixin typography($theme) {
31
+ @if mat.get-theme-version($theme) == 1 {
32
+ @include _theme-from-tokens(mat.get-theme-tokens($theme, typography));
33
+ }
34
+ @else {}
35
+ }
18
36
 
19
- @mixin theme($theme-or-color-config) {
20
- $theme: theming.private-legacy-get-theme($theme-or-color-config);
21
- @include theming.private-check-duplicate-theme-styles($theme, 'mtx-loader') {
22
- $color: theming.get-color-config($theme);
23
- $density: theming.get-density-config($theme);
24
- $typography: theming.get-typography-config($theme);
37
+ @mixin density($theme) {
38
+ @if mat.get-theme-version($theme) == 1 {
39
+ @include _theme-from-tokens(mat.get-theme-tokens($theme, density));
40
+ }
41
+ @else {}
42
+ }
25
43
 
26
- @if $color != null {
27
- @include color($color);
28
- }
29
- @if $density != null {
30
- @include density($density);
44
+ @mixin theme($theme) {
45
+ @include mat.private-check-duplicate-theme-styles($theme, 'mtx-loader') {
46
+ @if mat.get-theme-version($theme) == 1 {
47
+ @include _theme-from-tokens(mat.get-theme-tokens($theme));
31
48
  }
32
- @if $typography != null {
33
- @include typography($typography);
49
+ @else {
50
+ @include base($theme);
51
+ @if mat.theme-has($theme, color) {
52
+ @include color($theme);
53
+ }
54
+ @if mat.theme-has($theme, density) {
55
+ @include density($theme);
56
+ }
57
+ @if mat.theme-has($theme, typography) {
58
+ @include typography($theme);
59
+ }
34
60
  }
35
61
  }
36
62
  }
63
+
64
+ @mixin _theme-from-tokens($tokens) {
65
+ @if ($tokens != ()) {
66
+ @include token-utils.create-token-values(tokens-mtx-loader.$prefix,
67
+ map.get($tokens, tokens-mtx-loader.$prefix));
68
+ }
69
+ }
@@ -1,5 +1,4 @@
1
1
  import { ChangeDetectorRef } from '@angular/core';
2
- import { BooleanInput } from '@angular/cdk/coercion';
3
2
  import { ThemePalette } from '@angular/material/core';
4
3
  import { ProgressBarMode } from '@angular/material/progress-bar';
5
4
  import { ProgressSpinnerMode } from '@angular/material/progress-spinner';
@@ -22,16 +21,12 @@ export declare class MtxLoader {
22
21
  /** Value of the progress circle or the progress bar. */
23
22
  value: number;
24
23
  /** Whether the loader is loading. */
25
- get loading(): boolean;
26
- set loading(value: boolean);
27
- private _loading;
24
+ loading: boolean;
28
25
  /** Whether the loader has a backdrop. */
29
- get hasBackdrop(): boolean;
30
- set hasBackdrop(value: boolean);
31
- private _hasBackdrop;
26
+ hasBackdrop: boolean;
32
27
  constructor(_changeDetectorRef: ChangeDetectorRef);
33
- static ngAcceptInputType_loading: BooleanInput;
34
- static ngAcceptInputType_hasBackdrop: BooleanInput;
35
28
  static ɵfac: i0.ɵɵFactoryDeclaration<MtxLoader, never>;
36
29
  static ɵcmp: i0.ɵɵComponentDeclaration<MtxLoader, "mtx-loader", ["mtxLoader"], { "type": { "alias": "type"; "required": false; }; "color": { "alias": "color"; "required": false; }; "mode": { "alias": "mode"; "required": false; }; "strokeWidth": { "alias": "strokeWidth"; "required": false; }; "diameter": { "alias": "diameter"; "required": false; }; "bufferValue": { "alias": "bufferValue"; "required": false; }; "value": { "alias": "value"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; "hasBackdrop": { "alias": "hasBackdrop"; "required": false; }; }, {}, never, ["*"], false, never>;
30
+ static ngAcceptInputType_loading: unknown;
31
+ static ngAcceptInputType_hasBackdrop: unknown;
37
32
  }
@@ -32,11 +32,11 @@
32
32
  }
33
33
 
34
34
  .mtx-loader-backdrop {
35
- display: block;
36
35
  position: absolute;
37
36
  top: 0;
38
37
  left: 0;
39
38
  z-index: 1;
39
+ display: block;
40
40
  width: 100%;
41
41
  height: 100%;
42
42
  content: '';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ng-matero/extensions",
3
- "version": "16.3.1",
3
+ "version": "17.0.0",
4
4
  "description": "Angular Material Extensions",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -42,12 +42,6 @@
42
42
  "esm": "./esm2022/ng-matero-extensions.mjs",
43
43
  "default": "./fesm2022/ng-matero-extensions.mjs"
44
44
  },
45
- "./theming": {
46
- "sass": "./_theming.scss"
47
- },
48
- "./_theming": {
49
- "sass": "./_theming.scss"
50
- },
51
45
  "./prebuilt-themes/indigo-pink.css": {
52
46
  "style": "./prebuilt-themes/indigo-pink.css"
53
47
  },
@@ -96,18 +90,18 @@
96
90
  "esm": "./esm2022/core/mtxCore.mjs",
97
91
  "default": "./fesm2022/mtxCore.mjs"
98
92
  },
99
- "./datetimepicker": {
100
- "types": "./datetimepicker/index.d.ts",
101
- "esm2022": "./esm2022/datetimepicker/mtxDatetimepicker.mjs",
102
- "esm": "./esm2022/datetimepicker/mtxDatetimepicker.mjs",
103
- "default": "./fesm2022/mtxDatetimepicker.mjs"
104
- },
105
93
  "./column-resize": {
106
94
  "types": "./column-resize/index.d.ts",
107
95
  "esm2022": "./esm2022/column-resize/mtxColumnResize.mjs",
108
96
  "esm": "./esm2022/column-resize/mtxColumnResize.mjs",
109
97
  "default": "./fesm2022/mtxColumnResize.mjs"
110
98
  },
99
+ "./datetimepicker": {
100
+ "types": "./datetimepicker/index.d.ts",
101
+ "esm2022": "./esm2022/datetimepicker/mtxDatetimepicker.mjs",
102
+ "esm": "./esm2022/datetimepicker/mtxDatetimepicker.mjs",
103
+ "default": "./fesm2022/mtxDatetimepicker.mjs"
104
+ },
111
105
  "./dialog": {
112
106
  "types": "./dialog/index.d.ts",
113
107
  "esm2022": "./esm2022/dialog/mtxDialog.mjs",
@@ -170,17 +164,17 @@
170
164
  }
171
165
  },
172
166
  "dependencies": {
173
- "@ng-select/ng-select": "^11.0.0",
167
+ "@ng-select/ng-select": "^12.0.0",
174
168
  "ngx-color": "^9.0.0",
175
169
  "photoviewer": "^3.9.0",
176
170
  "tslib": "^2.4.0"
177
171
  },
178
172
  "peerDependencies": {
179
- "@angular/animations": ">=16.0.0",
180
- "@angular/cdk": ">=16.0.0",
181
- "@angular/common": ">=16.0.0",
182
- "@angular/core": ">=16.0.0",
183
- "@angular/material": ">=16.0.0"
173
+ "@angular/animations": ">=17.0.0",
174
+ "@angular/cdk": ">=17.0.0",
175
+ "@angular/common": ">=17.0.0",
176
+ "@angular/core": ">=17.0.0",
177
+ "@angular/material": ">=17.0.0"
184
178
  },
185
179
  "sideEffects": false,
186
180
  "module": "fesm2022/ng-matero-extensions.mjs",
@@ -14,4 +14,5 @@ export declare class MtxPhotoviewer implements OnInit, OnDestroy {
14
14
  initPhotoViewer(): void;
15
15
  static ɵfac: i0.ɵɵFactoryDeclaration<MtxPhotoviewer, never>;
16
16
  static ɵdir: i0.ɵɵDirectiveDeclaration<MtxPhotoviewer, "[mtxPhotoviewer]", ["mtxPhotoviewer"], { "images": { "alias": "mtxPhotoviewerItems"; "required": false; }; "options": { "alias": "mtxPhotoviewerOptions"; "required": false; }; "embed": { "alias": "mtxPhotoviewerEmbed"; "required": false; }; }, {}, never, never, false, never>;
17
+ static ngAcceptInputType_embed: unknown;
17
18
  }
@@ -1,36 +1,69 @@
1
- @use '../core/theming/theming';
1
+ @use '@angular/material' as mat;
2
2
  @use '../core/style/sass-utils';
3
3
  @use '../core/tokens/token-utils';
4
4
  @use '../core/tokens/m2/mtx/popover' as tokens-mtx-popover;
5
5
 
6
- @mixin color($config-or-theme) {
7
- $config: theming.get-color-config($config-or-theme);
8
-
9
- @include sass-utils.current-selector-or-root() {
10
- @include token-utils.create-token-values(tokens-mtx-popover.$prefix,
11
- tokens-mtx-popover.get-color-tokens($config));
6
+ @mixin base($theme) {
7
+ @if mat.get-theme-version($theme) == 1 {
8
+ @include _theme-from-tokens(mat.get-theme-tokens($theme, base));
9
+ }
10
+ @else {
11
+ @include sass-utils.current-selector-or-root() {
12
+ @include token-utils.create-token-values(tokens-mtx-popover.$prefix,
13
+ tokens-mtx-popover.get-unthemable-tokens());
14
+ }
12
15
  }
13
16
  }
14
17
 
15
- @mixin typography($config-or-theme) {}
18
+ @mixin color($theme) {
19
+ @if mat.get-theme-version($theme) == 1 {
20
+ @include _theme-from-tokens(mat.get-theme-tokens($theme, color));
21
+ }
22
+ @else {
23
+ @include sass-utils.current-selector-or-root() {
24
+ @include token-utils.create-token-values(tokens-mtx-popover.$prefix,
25
+ tokens-mtx-popover.get-color-tokens($theme));
26
+ }
27
+ }
28
+ }
16
29
 
17
- @mixin density($config-or-theme) {}
30
+ @mixin typography($theme) {
31
+ @if mat.get-theme-version($theme) == 1 {
32
+ @include _theme-from-tokens(mat.get-theme-tokens($theme, typography));
33
+ }
34
+ @else {}
35
+ }
18
36
 
19
- @mixin theme($theme-or-color-config) {
20
- $theme: theming.private-legacy-get-theme($theme-or-color-config);
21
- @include theming.private-check-duplicate-theme-styles($theme, 'mtx-popover') {
22
- $color: theming.get-color-config($theme);
23
- $density: theming.get-density-config($theme);
24
- $typography: theming.get-typography-config($theme);
37
+ @mixin density($theme) {
38
+ @if mat.get-theme-version($theme) == 1 {
39
+ @include _theme-from-tokens(mat.get-theme-tokens($theme, density));
40
+ }
41
+ @else {}
42
+ }
25
43
 
26
- @if $color != null {
27
- @include color($color);
28
- }
29
- @if $density != null {
30
- @include density($density);
44
+ @mixin theme($theme) {
45
+ @include mat.private-check-duplicate-theme-styles($theme, 'mtx-popover') {
46
+ @if mat.get-theme-version($theme) == 1 {
47
+ @include _theme-from-tokens(mat.get-theme-tokens($theme));
31
48
  }
32
- @if $typography != null {
33
- @include typography($typography);
49
+ @else {
50
+ @include base($theme);
51
+ @if mat.theme-has($theme, color) {
52
+ @include color($theme);
53
+ }
54
+ @if mat.theme-has($theme, density) {
55
+ @include density($theme);
56
+ }
57
+ @if mat.theme-has($theme, typography) {
58
+ @include typography($theme);
59
+ }
34
60
  }
35
61
  }
36
62
  }
63
+
64
+ @mixin _theme-from-tokens($tokens) {
65
+ @if ($tokens != ()) {
66
+ @include token-utils.create-token-values(tokens-mtx-popover.$prefix,
67
+ map.get($tokens, tokens-mtx-popover.$prefix));
68
+ }
69
+ }
@@ -1,6 +1,5 @@
1
1
  import { AnimationEvent } from '@angular/animations';
2
2
  import { Direction } from '@angular/cdk/bidi';
3
- import { BooleanInput } from '@angular/cdk/coercion';
4
3
  import { ElementRef, EventEmitter, InjectionToken, NgZone, OnDestroy, OnInit, TemplateRef } from '@angular/core';
5
4
  import { Subject } from 'rxjs';
6
5
  import { MtxPopoverContent } from './popover-content';
@@ -15,23 +14,6 @@ export declare class MtxPopover implements MtxPopoverPanel, OnInit, OnDestroy {
15
14
  private _elementRef;
16
15
  private _ngZone;
17
16
  private _defaultOptions;
18
- private _triggerEvent;
19
- private _enterDelay;
20
- private _leaveDelay;
21
- private _position;
22
- private _panelOffsetX;
23
- private _panelOffsetY;
24
- private _arrowWidth;
25
- private _arrowHeight;
26
- private _arrowOffsetX;
27
- private _arrowOffsetY;
28
- private _hideArrow;
29
- private _closeOnPanelClick;
30
- private _closeOnBackdropClick;
31
- private _focusTrapEnabled;
32
- private _focusTrapAutoCaptureEnabled;
33
- private _hasBackdrop;
34
- private _elevation;
35
17
  private _previousElevation?;
36
18
  private _elevationPrefix;
37
19
  /** Config object to be passed into the popover's ngClass. */
@@ -61,56 +43,43 @@ export declare class MtxPopover implements MtxPopoverPanel, OnInit, OnDestroy {
61
43
  /** aria-describedby for the popover panel. */
62
44
  ariaDescribedby?: string;
63
45
  /** Popover's trigger event. */
64
- get triggerEvent(): MtxPopoverTriggerEvent;
65
- set triggerEvent(value: MtxPopoverTriggerEvent);
46
+ triggerEvent: MtxPopoverTriggerEvent;
66
47
  /** Popover's enter delay. */
67
- get enterDelay(): number;
68
- set enterDelay(value: number);
48
+ enterDelay: number;
69
49
  /** Popover's leave delay. */
70
- get leaveDelay(): number;
71
- set leaveDelay(value: number);
50
+ leaveDelay: number;
72
51
  /** Popover's position. */
73
52
  get position(): MtxPopoverPosition;
74
53
  set position(value: MtxPopoverPosition);
54
+ private _position;
75
55
  /** Popover-panel's X offset. */
76
- get xOffset(): number;
77
- set xOffset(value: number);
56
+ xOffset: number;
78
57
  /** Popover-panel's Y offset. */
79
- get yOffset(): number;
80
- set yOffset(value: number);
58
+ yOffset: number;
81
59
  /** Popover-arrow's width. */
82
- get arrowWidth(): number;
83
- set arrowWidth(value: number);
60
+ arrowWidth: number;
84
61
  /** Popover-arrow's height. */
85
- get arrowHeight(): number;
86
- set arrowHeight(value: number);
62
+ arrowHeight: number;
87
63
  /** Popover-arrow's X offset. */
88
- get arrowOffsetX(): number;
89
- set arrowOffsetX(value: number);
64
+ arrowOffsetX: number;
90
65
  /** Popover-arrow's Y offset. */
91
- get arrowOffsetY(): number;
92
- set arrowOffsetY(value: number);
66
+ arrowOffsetY: number;
93
67
  /** Whether the popover arrow should be hidden. */
94
- get hideArrow(): boolean;
95
- set hideArrow(value: boolean);
68
+ hideArrow: boolean;
96
69
  /** Whether popover can be closed when click the popover-panel. */
97
- get closeOnPanelClick(): boolean;
98
- set closeOnPanelClick(value: boolean);
70
+ closeOnPanelClick: boolean;
99
71
  /** Whether popover can be closed when click the backdrop. */
100
- get closeOnBackdropClick(): boolean;
101
- set closeOnBackdropClick(value: boolean);
72
+ closeOnBackdropClick: boolean;
102
73
  /** Whether enable focus trap using `cdkTrapFocus`. */
103
- get focusTrapEnabled(): boolean;
104
- set focusTrapEnabled(value: boolean);
74
+ focusTrapEnabled: boolean;
105
75
  /** Whether enable focus trap auto capture using `cdkTrapFocusAutoCapture`. */
106
- get focusTrapAutoCaptureEnabled(): boolean;
107
- set focusTrapAutoCaptureEnabled(value: boolean);
76
+ focusTrapAutoCaptureEnabled: boolean;
108
77
  /** Whether the popover has a backdrop. It will always be false if the trigger event is hover. */
109
- get hasBackdrop(): boolean | undefined;
110
- set hasBackdrop(value: boolean | undefined);
78
+ hasBackdrop: boolean | undefined;
111
79
  /** Popover-panel's elevation (0~24). */
112
80
  get elevation(): number;
113
81
  set elevation(value: number);
82
+ private _elevation;
114
83
  /**
115
84
  * This method takes classes set on the host md-popover element and applies them on the
116
85
  * popover template that displays in the overlay container. Otherwise, it's difficult
@@ -164,12 +133,12 @@ export declare class MtxPopover implements MtxPopoverPanel, OnInit, OnDestroy {
164
133
  /** Callback that is invoked when the panel animation completes. */
165
134
  _onAnimationDone(event: AnimationEvent): void;
166
135
  _onAnimationStart(event: AnimationEvent): void;
167
- static ngAcceptInputType_closeOnPanelClick: BooleanInput;
168
- static ngAcceptInputType_closeOnBackdropClick: BooleanInput;
169
- static ngAcceptInputType_focusTrapEnabled: BooleanInput;
170
- static ngAcceptInputType_focusTrapAutoCaptureEnabled: BooleanInput;
171
- static ngAcceptInputType_hasBackdrop: BooleanInput;
172
- static ngAcceptInputType_hideArrow: BooleanInput;
173
136
  static ɵfac: i0.ɵɵFactoryDeclaration<MtxPopover, never>;
174
137
  static ɵcmp: i0.ɵɵComponentDeclaration<MtxPopover, "mtx-popover", ["mtxPopover"], { "backdropClass": { "alias": "backdropClass"; "required": false; }; "ariaLabel": { "alias": "aria-label"; "required": false; }; "ariaLabelledby": { "alias": "aria-labelledby"; "required": false; }; "ariaDescribedby": { "alias": "aria-describedby"; "required": false; }; "triggerEvent": { "alias": "triggerEvent"; "required": false; }; "enterDelay": { "alias": "enterDelay"; "required": false; }; "leaveDelay": { "alias": "leaveDelay"; "required": false; }; "position": { "alias": "position"; "required": false; }; "xOffset": { "alias": "xOffset"; "required": false; }; "yOffset": { "alias": "yOffset"; "required": false; }; "arrowWidth": { "alias": "arrowWidth"; "required": false; }; "arrowHeight": { "alias": "arrowHeight"; "required": false; }; "arrowOffsetX": { "alias": "arrowOffsetX"; "required": false; }; "arrowOffsetY": { "alias": "arrowOffsetY"; "required": false; }; "hideArrow": { "alias": "hideArrow"; "required": false; }; "closeOnPanelClick": { "alias": "closeOnPanelClick"; "required": false; }; "closeOnBackdropClick": { "alias": "closeOnBackdropClick"; "required": false; }; "focusTrapEnabled": { "alias": "focusTrapEnabled"; "required": false; }; "focusTrapAutoCaptureEnabled": { "alias": "focusTrapAutoCaptureEnabled"; "required": false; }; "hasBackdrop": { "alias": "hasBackdrop"; "required": false; }; "elevation": { "alias": "elevation"; "required": false; }; "panelClass": { "alias": "class"; "required": false; }; "classList": { "alias": "classList"; "required": false; }; }, { "closed": "closed"; }, ["lazyContent"], ["*"], false, never>;
138
+ static ngAcceptInputType_hideArrow: unknown;
139
+ static ngAcceptInputType_closeOnPanelClick: unknown;
140
+ static ngAcceptInputType_closeOnBackdropClick: unknown;
141
+ static ngAcceptInputType_focusTrapEnabled: unknown;
142
+ static ngAcceptInputType_focusTrapAutoCaptureEnabled: unknown;
143
+ static ngAcceptInputType_hasBackdrop: unknown;
175
144
  }
@@ -9,11 +9,11 @@ $_tokens: tokens-mtx-popover.$prefix, tokens-mtx-popover.get-token-slots();
9
9
  position: relative;
10
10
  max-height: calc(100vh - 48px);
11
11
  padding: 8px;
12
- border-radius: 4px;
13
- font-size: 16px; // It can change the arrow size
12
+ font-size: inherit; // It can change the arrow size
14
13
  outline: 0;
15
14
 
16
15
  @include token-utils.use-tokens($_tokens...) {
16
+ @include token-utils.create-token-slot(border-radius, container-shape);
17
17
  @include token-utils.create-token-slot(background-color, background-color);
18
18
  @include token-utils.create-token-slot(color, text-color);
19
19
  }