@taiga-ui/core 4.43.0 → 4.44.0-canary.0bcf1bf

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 (150) hide show
  1. package/components/alert/alert.tokens.d.ts +5 -4
  2. package/components/calendar/calendar-sheet.options.d.ts +2 -1
  3. package/components/data-list/data-list.tokens.d.ts +3 -2
  4. package/components/data-list/option/option-content.d.ts +2 -1
  5. package/components/dialog/dialog.factory.d.ts +3 -3
  6. package/components/dialog/dialog.tokens.d.ts +4 -3
  7. package/components/link/link.options.d.ts +2 -1
  8. package/components/loader/loader.options.d.ts +2 -1
  9. package/components/spin-button/spin-button.component.d.ts +0 -2
  10. package/components/textfield/select-like.directive.d.ts +0 -1
  11. package/components/textfield/textfield-accessor.d.ts +2 -1
  12. package/components/textfield/textfield-multi/textfield-item.component.d.ts +1 -0
  13. package/components/textfield/textfield-multi/textfield-multi.component.d.ts +2 -1
  14. package/components/textfield/textfield.component.d.ts +2 -2
  15. package/components/textfield/textfield.options.d.ts +2 -1
  16. package/directives/appearance/appearance.options.d.ts +2 -1
  17. package/directives/dropdown/dropdown-hover.options.d.ts +2 -1
  18. package/directives/dropdown/dropdown-options.directive.d.ts +2 -1
  19. package/directives/dropdown/dropdown.providers.d.ts +3 -2
  20. package/directives/group/group.options.d.ts +2 -1
  21. package/directives/hint/hint-options.directive.d.ts +2 -1
  22. package/directives/hint/hint.providers.d.ts +2 -1
  23. package/directives/items-handlers/items-handlers.tokens.d.ts +2 -1
  24. package/esm2022/components/alert/alert.component.mjs +3 -3
  25. package/esm2022/components/alert/alert.tokens.mjs +28 -21
  26. package/esm2022/components/calendar/calendar-sheet.component.mjs +3 -3
  27. package/esm2022/components/calendar/calendar-sheet.options.mjs +6 -3
  28. package/esm2022/components/calendar/calendar.component.mjs +3 -3
  29. package/esm2022/components/data-list/data-list.component.mjs +3 -3
  30. package/esm2022/components/data-list/data-list.tokens.mjs +5 -4
  31. package/esm2022/components/data-list/option/option-content.mjs +3 -4
  32. package/esm2022/components/dialog/dialog.component.mjs +3 -3
  33. package/esm2022/components/dialog/dialog.factory.mjs +1 -1
  34. package/esm2022/components/dialog/dialog.tokens.mjs +12 -5
  35. package/esm2022/components/dialog/dialogs.component.mjs +3 -3
  36. package/esm2022/components/label/label.directive.mjs +2 -2
  37. package/esm2022/components/link/link.options.mjs +6 -3
  38. package/esm2022/components/loader/loader.component.mjs +3 -3
  39. package/esm2022/components/loader/loader.options.mjs +6 -3
  40. package/esm2022/components/notification/notification.directive.mjs +2 -2
  41. package/esm2022/components/root/root.component.mjs +3 -3
  42. package/esm2022/components/scrollbar/scroll-controls.component.mjs +3 -3
  43. package/esm2022/components/scrollbar/scrollbar.directive.mjs +3 -2
  44. package/esm2022/components/scrollbar/scrollbar.service.mjs +7 -3
  45. package/esm2022/components/spin-button/spin-button.component.mjs +5 -11
  46. package/esm2022/components/textfield/select-like.directive.mjs +4 -16
  47. package/esm2022/components/textfield/textfield-accessor.mjs +4 -3
  48. package/esm2022/components/textfield/textfield-dropdown.directive.mjs +7 -2
  49. package/esm2022/components/textfield/textfield-multi/textfield-item.component.mjs +7 -4
  50. package/esm2022/components/textfield/textfield-multi/textfield-multi.component.mjs +20 -10
  51. package/esm2022/components/textfield/textfield.component.mjs +11 -9
  52. package/esm2022/components/textfield/textfield.options.mjs +9 -7
  53. package/esm2022/directives/appearance/appearance.options.mjs +6 -3
  54. package/esm2022/directives/dropdown/dropdown-hover.options.mjs +6 -3
  55. package/esm2022/directives/dropdown/dropdown-options.directive.mjs +6 -4
  56. package/esm2022/directives/dropdown/dropdown.providers.mjs +6 -4
  57. package/esm2022/directives/group/group.directive.mjs +2 -2
  58. package/esm2022/directives/group/group.options.mjs +6 -3
  59. package/esm2022/directives/hint/hint-options.directive.mjs +6 -4
  60. package/esm2022/directives/hint/hint.providers.mjs +5 -3
  61. package/esm2022/directives/items-handlers/items-handlers.tokens.mjs +5 -4
  62. package/esm2022/directives/title/title.directive.mjs +2 -2
  63. package/esm2022/tokens/animations-speed.mjs +5 -4
  64. package/esm2022/tokens/assets-path.mjs +5 -3
  65. package/esm2022/tokens/auxiliary.mjs +6 -3
  66. package/esm2022/tokens/common-icons.mjs +6 -3
  67. package/esm2022/tokens/dark-mode.mjs +34 -31
  68. package/esm2022/tokens/date-format.mjs +5 -4
  69. package/esm2022/tokens/day-type-handler.mjs +5 -3
  70. package/esm2022/tokens/first-day-of-week.mjs +5 -3
  71. package/esm2022/tokens/i18n.mjs +23 -9
  72. package/esm2022/tokens/icon-resolver.mjs +7 -6
  73. package/esm2022/tokens/icon.mjs +8 -4
  74. package/esm2022/tokens/icons.mjs +5 -4
  75. package/esm2022/tokens/media.mjs +8 -6
  76. package/esm2022/tokens/number-format.mjs +5 -4
  77. package/esm2022/tokens/reduced-motion.mjs +6 -5
  78. package/esm2022/tokens/scroll-ref.mjs +5 -4
  79. package/esm2022/tokens/selection-stream.mjs +7 -6
  80. package/esm2022/tokens/spin-icons.mjs +7 -5
  81. package/esm2022/tokens/theme.mjs +5 -3
  82. package/esm2022/tokens/viewport.mjs +27 -25
  83. package/fesm2022/taiga-ui-core-components-alert.mjs +29 -22
  84. package/fesm2022/taiga-ui-core-components-alert.mjs.map +1 -1
  85. package/fesm2022/taiga-ui-core-components-calendar.mjs +9 -7
  86. package/fesm2022/taiga-ui-core-components-calendar.mjs.map +1 -1
  87. package/fesm2022/taiga-ui-core-components-data-list.mjs +7 -7
  88. package/fesm2022/taiga-ui-core-components-data-list.mjs.map +1 -1
  89. package/fesm2022/taiga-ui-core-components-dialog.mjs +15 -9
  90. package/fesm2022/taiga-ui-core-components-dialog.mjs.map +1 -1
  91. package/fesm2022/taiga-ui-core-components-label.mjs +2 -2
  92. package/fesm2022/taiga-ui-core-components-label.mjs.map +1 -1
  93. package/fesm2022/taiga-ui-core-components-link.mjs +5 -3
  94. package/fesm2022/taiga-ui-core-components-link.mjs.map +1 -1
  95. package/fesm2022/taiga-ui-core-components-loader.mjs +7 -5
  96. package/fesm2022/taiga-ui-core-components-loader.mjs.map +1 -1
  97. package/fesm2022/taiga-ui-core-components-notification.mjs +2 -2
  98. package/fesm2022/taiga-ui-core-components-notification.mjs.map +1 -1
  99. package/fesm2022/taiga-ui-core-components-root.mjs +2 -2
  100. package/fesm2022/taiga-ui-core-components-root.mjs.map +1 -1
  101. package/fesm2022/taiga-ui-core-components-scrollbar.mjs +10 -5
  102. package/fesm2022/taiga-ui-core-components-scrollbar.mjs.map +1 -1
  103. package/fesm2022/taiga-ui-core-components-spin-button.mjs +4 -10
  104. package/fesm2022/taiga-ui-core-components-spin-button.mjs.map +1 -1
  105. package/fesm2022/taiga-ui-core-components-textfield.mjs +50 -41
  106. package/fesm2022/taiga-ui-core-components-textfield.mjs.map +1 -1
  107. package/fesm2022/taiga-ui-core-directives-appearance.mjs +5 -3
  108. package/fesm2022/taiga-ui-core-directives-appearance.mjs.map +1 -1
  109. package/fesm2022/taiga-ui-core-directives-dropdown.mjs +12 -6
  110. package/fesm2022/taiga-ui-core-directives-dropdown.mjs.map +1 -1
  111. package/fesm2022/taiga-ui-core-directives-group.mjs +7 -5
  112. package/fesm2022/taiga-ui-core-directives-group.mjs.map +1 -1
  113. package/fesm2022/taiga-ui-core-directives-hint.mjs +8 -4
  114. package/fesm2022/taiga-ui-core-directives-hint.mjs.map +1 -1
  115. package/fesm2022/taiga-ui-core-directives-items-handlers.mjs +5 -3
  116. package/fesm2022/taiga-ui-core-directives-items-handlers.mjs.map +1 -1
  117. package/fesm2022/taiga-ui-core-directives-title.mjs +2 -2
  118. package/fesm2022/taiga-ui-core-directives-title.mjs.map +1 -1
  119. package/fesm2022/taiga-ui-core-tokens.mjs +143 -87
  120. package/fesm2022/taiga-ui-core-tokens.mjs.map +1 -1
  121. package/package.json +3 -3
  122. package/styles/components/group.less +17 -0
  123. package/styles/components/label.less +2 -2
  124. package/styles/components/notification.less +9 -21
  125. package/styles/components/textfield.less +12 -3
  126. package/styles/components/title.less +8 -0
  127. package/styles/mixins/mixins.less +1 -1
  128. package/styles/mixins/slider.less +3 -3
  129. package/styles/mixins/slider.scss +3 -3
  130. package/styles/theme/appearance/table.less +1 -1
  131. package/tokens/animations-speed.d.ts +2 -1
  132. package/tokens/assets-path.d.ts +2 -1
  133. package/tokens/auxiliary.d.ts +2 -1
  134. package/tokens/common-icons.d.ts +2 -1
  135. package/tokens/dark-mode.d.ts +3 -2
  136. package/tokens/date-format.d.ts +2 -1
  137. package/tokens/day-type-handler.d.ts +2 -1
  138. package/tokens/first-day-of-week.d.ts +2 -1
  139. package/tokens/i18n.d.ts +8 -7
  140. package/tokens/icon-resolver.d.ts +3 -2
  141. package/tokens/icon.d.ts +3 -2
  142. package/tokens/icons.d.ts +3 -2
  143. package/tokens/media.d.ts +2 -1
  144. package/tokens/number-format.d.ts +2 -1
  145. package/tokens/reduced-motion.d.ts +2 -1
  146. package/tokens/scroll-ref.d.ts +2 -2
  147. package/tokens/selection-stream.d.ts +2 -1
  148. package/tokens/spin-icons.d.ts +2 -1
  149. package/tokens/theme.d.ts +2 -1
  150. package/tokens/viewport.d.ts +2 -1
@@ -1,6 +1,6 @@
1
- import { inject, signal, effect, Optional, SkipSelf, ElementRef } from '@angular/core';
2
- import { tuiCreateTokenFromFactory, tuiCreateToken, tuiProvide, tuiProvideOptions } from '@taiga-ui/cdk/utils/miscellaneous';
1
+ import { InjectionToken, inject, signal, effect, Optional, SkipSelf, ElementRef } from '@angular/core';
3
2
  import { DOCUMENT } from '@angular/common';
3
+ import { tuiProvide, tuiProvideOptions } from '@taiga-ui/cdk/utils/miscellaneous';
4
4
  import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
5
5
  import { WA_LOCAL_STORAGE, WA_WINDOW } from '@ng-web-apis/common';
6
6
  import { fromEvent, filter, of, map, merge, switchMap, takeUntil, share } from 'rxjs';
@@ -9,15 +9,21 @@ import { tuiExtractI18n } from '@taiga-ui/i18n/utils';
9
9
  import { CHAR_NO_BREAK_SPACE } from '@taiga-ui/cdk/constants';
10
10
  import { tuiTypedFromEvent } from '@taiga-ui/cdk/observables';
11
11
 
12
- const TUI_REDUCED_MOTION = tuiCreateTokenFromFactory(() => inject(DOCUMENT).defaultView?.matchMedia?.('(prefers-reduced-motion: reduce)')
13
- .matches ?? false);
12
+ const TUI_REDUCED_MOTION = new InjectionToken(ngDevMode ? 'TUI_REDUCED_MOTION' : '', {
13
+ factory: () => inject(DOCUMENT).defaultView?.matchMedia?.('(prefers-reduced-motion: reduce)')
14
+ .matches ?? false,
15
+ });
14
16
 
15
17
  /**
16
18
  * Speed of all Taiga UI animations. 1 equals 300ms.
17
19
  */
18
- const TUI_ANIMATIONS_SPEED = tuiCreateTokenFromFactory(() => inject(TUI_REDUCED_MOTION) ? 0 : 1);
20
+ const TUI_ANIMATIONS_SPEED = new InjectionToken(ngDevMode ? 'TUI_ANIMATIONS_SPEED' : '', {
21
+ factory: () => (inject(TUI_REDUCED_MOTION) ? 0 : 1),
22
+ });
19
23
 
20
- const TUI_ASSETS_PATH = tuiCreateToken('assets/taiga-ui/icons');
24
+ const TUI_ASSETS_PATH = new InjectionToken(ngDevMode ? 'TUI_ASSETS_PATH' : '', {
25
+ factory: () => 'assets/taiga-ui/icons',
26
+ });
21
27
  function tuiAssetsPathProvider(useValue) {
22
28
  return {
23
29
  provide: TUI_ASSETS_PATH,
@@ -25,7 +31,9 @@ function tuiAssetsPathProvider(useValue) {
25
31
  };
26
32
  }
27
33
 
28
- const TUI_AUXILIARY = tuiCreateToken(null);
34
+ const TUI_AUXILIARY = new InjectionToken(ngDevMode ? 'TUI_AUXILIARY' : '', {
35
+ factory: () => null,
36
+ });
29
37
  function tuiAsAuxiliary(x) {
30
38
  return tuiProvide(TUI_AUXILIARY, x);
31
39
  }
@@ -39,42 +47,48 @@ const COMMON_ICONS = {
39
47
  search: '@tui.search',
40
48
  ellipsis: '@tui.ellipsis',
41
49
  };
42
- const TUI_COMMON_ICONS = tuiCreateToken(COMMON_ICONS);
50
+ const TUI_COMMON_ICONS = new InjectionToken(ngDevMode ? 'TUI_COMMON_ICONS' : '', {
51
+ factory: () => COMMON_ICONS,
52
+ });
43
53
  function tuiCommonIconsProvider(icons) {
44
54
  return tuiProvideOptions(TUI_COMMON_ICONS, icons, COMMON_ICONS);
45
55
  }
46
56
 
47
57
  const TUI_DARK_MODE_DEFAULT_KEY = 'tuiDark';
48
- const TUI_DARK_MODE_KEY = tuiCreateToken(TUI_DARK_MODE_DEFAULT_KEY);
49
- const TUI_DARK_MODE = tuiCreateTokenFromFactory(() => {
50
- let automatic = true;
51
- const storage = inject(WA_LOCAL_STORAGE);
52
- const key = inject(TUI_DARK_MODE_KEY);
53
- const saved = storage?.getItem(key);
54
- const media = inject(WA_WINDOW).matchMedia('(prefers-color-scheme: dark)');
55
- const result = signal(Boolean((saved && JSON.parse(saved)) ?? media.matches));
56
- fromEvent(media, 'change')
57
- .pipe(filter(() => !storage?.getItem(key)), takeUntilDestroyed())
58
- .subscribe(() => {
59
- automatic = true;
60
- result.set(media.matches);
61
- });
62
- effect(() => {
63
- const value = String(result());
64
- if (automatic) {
65
- automatic = false;
66
- }
67
- else {
68
- storage?.setItem(key, value);
69
- }
70
- });
71
- return Object.assign(result, {
72
- reset: () => {
73
- storage?.removeItem(key);
58
+ const TUI_DARK_MODE_KEY = new InjectionToken(ngDevMode ? 'TUI_DARK_MODE_KEY' : '', {
59
+ factory: () => TUI_DARK_MODE_DEFAULT_KEY,
60
+ });
61
+ const TUI_DARK_MODE = new InjectionToken(ngDevMode ? 'TUI_DARK_MODE' : '', {
62
+ factory: () => {
63
+ let automatic = true;
64
+ const storage = inject(WA_LOCAL_STORAGE);
65
+ const key = inject(TUI_DARK_MODE_KEY);
66
+ const saved = storage?.getItem(key);
67
+ const media = inject(WA_WINDOW).matchMedia('(prefers-color-scheme: dark)');
68
+ const result = signal(Boolean((saved && JSON.parse(saved)) ?? media.matches));
69
+ fromEvent(media, 'change')
70
+ .pipe(filter(() => !storage?.getItem(key)), takeUntilDestroyed())
71
+ .subscribe(() => {
74
72
  automatic = true;
75
73
  result.set(media.matches);
76
- },
77
- });
74
+ });
75
+ effect(() => {
76
+ const value = String(result());
77
+ if (automatic) {
78
+ automatic = false;
79
+ }
80
+ else {
81
+ storage?.setItem(key, value);
82
+ }
83
+ });
84
+ return Object.assign(result, {
85
+ reset: () => {
86
+ storage?.removeItem(key);
87
+ automatic = true;
88
+ result.set(media.matches);
89
+ },
90
+ });
91
+ },
78
92
  });
79
93
 
80
94
  const TUI_DEFAULT_DATE_FORMAT = {
@@ -84,7 +98,9 @@ const TUI_DEFAULT_DATE_FORMAT = {
84
98
  /**
85
99
  * Formatting configuration for displayed dates
86
100
  */
87
- const TUI_DATE_FORMAT = tuiCreateToken(of(TUI_DEFAULT_DATE_FORMAT));
101
+ const TUI_DATE_FORMAT = new InjectionToken(ngDevMode ? 'TUI_DATE_FORMAT' : '', {
102
+ factory: () => of(TUI_DEFAULT_DATE_FORMAT),
103
+ });
88
104
  function tuiDateFormatProvider(options) {
89
105
  return {
90
106
  provide: TUI_DATE_FORMAT,
@@ -96,46 +112,70 @@ function tuiDateFormatProvider(options) {
96
112
  /**
97
113
  * Token for adding data-type attribute to calendar cell
98
114
  */
99
- const TUI_DAY_TYPE_HANDLER = tuiCreateToken((day) => day.isWeekend ? 'weekend' : 'weekday');
115
+ const TUI_DAY_TYPE_HANDLER = new InjectionToken(ngDevMode ? 'TUI_DAY_TYPE_HANDLER' : '', {
116
+ factory: () => (day) => (day.isWeekend ? 'weekend' : 'weekday'),
117
+ });
100
118
 
101
119
  /**
102
120
  * The first day of the week index
103
121
  */
104
- const TUI_FIRST_DAY_OF_WEEK = tuiCreateToken(TuiDayOfWeek.Monday);
122
+ const TUI_FIRST_DAY_OF_WEEK = new InjectionToken(ngDevMode ? 'TUI_FIRST_DAY_OF_WEEK' : '', {
123
+ factory: () => TuiDayOfWeek.Monday,
124
+ });
105
125
 
106
126
  /**
107
127
  * Localized months names
108
128
  */
109
- const TUI_MONTHS = tuiCreateTokenFromFactory(tuiExtractI18n('months'));
129
+ const TUI_MONTHS = new InjectionToken(ngDevMode ? 'TUI_MONTHS' : '', {
130
+ factory: tuiExtractI18n('months'),
131
+ });
110
132
  /**
111
133
  * i18n 'close' word
112
134
  */
113
- const TUI_CLOSE_WORD = tuiCreateTokenFromFactory(tuiExtractI18n('close'));
135
+ const TUI_CLOSE_WORD = new InjectionToken(ngDevMode ? 'TUI_CLOSE_WORD' : '', {
136
+ factory: tuiExtractI18n('close'),
137
+ });
114
138
  /**
115
139
  * i18n 'clear' word
116
140
  */
117
- const TUI_CLEAR_WORD = tuiCreateTokenFromFactory(tuiExtractI18n('clear'));
141
+ const TUI_CLEAR_WORD = new InjectionToken(ngDevMode ? 'TUI_CLEAR_WORD' : '', {
142
+ factory: tuiExtractI18n('clear'),
143
+ });
118
144
  /**
119
145
  * i18n 'Nothing found' message
120
146
  */
121
- const TUI_NOTHING_FOUND_MESSAGE = tuiCreateTokenFromFactory(tuiExtractI18n('nothingFoundMessage'));
147
+ const TUI_NOTHING_FOUND_MESSAGE = new InjectionToken(ngDevMode ? 'TUI_NOTHING_FOUND_MESSAGE' : '', {
148
+ factory: tuiExtractI18n('nothingFoundMessage'),
149
+ });
122
150
  /**
123
151
  * i18n of error message
124
152
  */
125
- const TUI_DEFAULT_ERROR_MESSAGE = tuiCreateTokenFromFactory(tuiExtractI18n('defaultErrorMessage'));
153
+ const TUI_DEFAULT_ERROR_MESSAGE = new InjectionToken(ngDevMode ? 'TUI_DEFAULT_ERROR_MESSAGE' : '', {
154
+ factory: tuiExtractI18n('defaultErrorMessage'),
155
+ });
126
156
  /**
127
157
  * spin i18n texts
128
158
  */
129
- const TUI_SPIN_TEXTS = tuiCreateTokenFromFactory(tuiExtractI18n('spinTexts'));
159
+ const TUI_SPIN_TEXTS = new InjectionToken(ngDevMode ? 'TUI_SPIN_TEXTS' : '', {
160
+ factory: tuiExtractI18n('spinTexts'),
161
+ });
130
162
  /**
131
163
  * calendars i18n texts
132
164
  */
133
- const TUI_SHORT_WEEK_DAYS = tuiCreateTokenFromFactory(tuiExtractI18n('shortWeekDays'));
165
+ const TUI_SHORT_WEEK_DAYS = new InjectionToken(ngDevMode ? 'TUI_SHORT_WEEK_DAYS' : '', {
166
+ factory: tuiExtractI18n('shortWeekDays'),
167
+ });
134
168
 
135
- const TUI_ICON_START = tuiCreateToken('');
136
- const TUI_ICON_END = tuiCreateToken('');
169
+ const TUI_ICON_START = new InjectionToken(ngDevMode ? 'TUI_ICON_START' : '', {
170
+ factory: () => '',
171
+ });
172
+ const TUI_ICON_END = new InjectionToken(ngDevMode ? 'TUI_ICON_END' : '', {
173
+ factory: () => '',
174
+ });
137
175
 
138
- const TUI_ICON_REGISTRY = tuiCreateToken({});
176
+ const TUI_ICON_REGISTRY = new InjectionToken(ngDevMode ? 'TUI_ICON_REGISTRY' : '', {
177
+ factory: () => ({}),
178
+ });
139
179
  /**
140
180
  * @deprecated: use {@link TUI_ICON_REGISTRY}
141
181
  */
@@ -153,9 +193,11 @@ function tuiIconsProvider(icons) {
153
193
  };
154
194
  }
155
195
 
156
- const TUI_ICON_RESOLVER = tuiCreateTokenFromFactory(() => {
157
- const path = inject(TUI_ASSETS_PATH);
158
- return (icon) => `${path}/${icon.replace('@tui.', '').split('.').join('/')}.svg`;
196
+ const TUI_ICON_RESOLVER = new InjectionToken(ngDevMode ? 'TUI_ICON_RESOLVER' : '', {
197
+ factory: () => {
198
+ const path = inject(TUI_ASSETS_PATH);
199
+ return (icon) => `${path}/${icon.replace('@tui.', '').split('.').join('/')}.svg`;
200
+ },
159
201
  });
160
202
  /**
161
203
  * @deprecated use {@link TUI_ICON_RESOLVER}
@@ -173,10 +215,12 @@ function tuiIconResolverProvider(useValue) {
173
215
  /**
174
216
  * Token for media constant
175
217
  */
176
- const TUI_MEDIA = tuiCreateToken({
177
- mobile: 768,
178
- desktopSmall: 1024,
179
- desktopLarge: 1280,
218
+ const TUI_MEDIA = new InjectionToken(ngDevMode ? 'TUI_MEDIA' : '', {
219
+ factory: () => ({
220
+ mobile: 768,
221
+ desktopSmall: 1024,
222
+ desktopLarge: 1280,
223
+ }),
180
224
  });
181
225
 
182
226
  const TUI_DEFAULT_NUMBER_FORMAT = {
@@ -189,7 +233,9 @@ const TUI_DEFAULT_NUMBER_FORMAT = {
189
233
  /**
190
234
  * Formatting configuration for displayed numbers
191
235
  */
192
- const TUI_NUMBER_FORMAT = tuiCreateToken(of(TUI_DEFAULT_NUMBER_FORMAT));
236
+ const TUI_NUMBER_FORMAT = new InjectionToken(ngDevMode ? 'TUI_NUMBER_FORMAT' : '', {
237
+ factory: () => of(TUI_DEFAULT_NUMBER_FORMAT),
238
+ });
193
239
  function tuiNumberFormatProvider(options) {
194
240
  return {
195
241
  provide: TUI_NUMBER_FORMAT,
@@ -198,48 +244,58 @@ function tuiNumberFormatProvider(options) {
198
244
  };
199
245
  }
200
246
 
201
- const TUI_SCROLL_REF = tuiCreateTokenFromFactory(() => new ElementRef(inject(DOCUMENT).documentElement));
247
+ const TUI_SCROLL_REF = new InjectionToken(ngDevMode ? 'TUI_SCROLL_REF' : '', {
248
+ factory: () => new ElementRef(inject(DOCUMENT).documentElement),
249
+ });
202
250
 
203
251
  /**
204
252
  * A stream of possible selection changes
205
253
  */
206
- const TUI_SELECTION_STREAM = tuiCreateTokenFromFactory(() => {
207
- const doc = inject(DOCUMENT);
208
- return merge(tuiTypedFromEvent(doc, 'selectionchange'), tuiTypedFromEvent(doc, 'mouseup'), tuiTypedFromEvent(doc, 'mousedown').pipe(switchMap(() => tuiTypedFromEvent(doc, 'mousemove').pipe(takeUntil(tuiTypedFromEvent(doc, 'mouseup'))))), tuiTypedFromEvent(doc, 'keydown'), tuiTypedFromEvent(doc, 'keyup')).pipe(share());
254
+ const TUI_SELECTION_STREAM = new InjectionToken(ngDevMode ? 'TUI_SELECTION_STREAM' : '', {
255
+ factory: () => {
256
+ const doc = inject(DOCUMENT);
257
+ return merge(tuiTypedFromEvent(doc, 'selectionchange'), tuiTypedFromEvent(doc, 'mouseup'), tuiTypedFromEvent(doc, 'mousedown').pipe(switchMap(() => tuiTypedFromEvent(doc, 'mousemove').pipe(takeUntil(tuiTypedFromEvent(doc, 'mouseup'))))), tuiTypedFromEvent(doc, 'keydown'), tuiTypedFromEvent(doc, 'keyup')).pipe(share());
258
+ },
209
259
  });
210
260
 
211
- const TUI_SPIN_ICONS = tuiCreateToken({
212
- decrement: '@tui.chevron-left',
213
- increment: '@tui.chevron-right',
261
+ const TUI_SPIN_ICONS = new InjectionToken(ngDevMode ? 'TUI_SPIN_ICONS' : '', {
262
+ factory: () => ({
263
+ decrement: '@tui.chevron-left',
264
+ increment: '@tui.chevron-right',
265
+ }),
214
266
  });
215
267
 
216
- const TUI_THEME = tuiCreateToken('Taiga UI');
268
+ const TUI_THEME = new InjectionToken(ngDevMode ? 'TUI_THEME' : '', {
269
+ factory: () => 'Taiga UI',
270
+ });
217
271
 
218
272
  /**
219
273
  * Viewport accessor
220
274
  */
221
- const TUI_VIEWPORT = tuiCreateTokenFromFactory(() => {
222
- const win = inject(WA_WINDOW);
223
- return {
224
- type: 'viewport',
225
- getClientRect() {
226
- const { height = 0, offsetTop = 0 } = win.visualViewport || {};
227
- const rect = {
228
- top: 0,
229
- left: 0,
230
- right: win.innerWidth,
231
- bottom: win.innerHeight,
232
- width: win.innerWidth,
233
- height: height + offsetTop || win.innerHeight,
234
- x: 0,
235
- y: 0,
236
- };
237
- return {
238
- ...rect,
239
- toJSON: () => JSON.stringify(rect),
240
- };
241
- },
242
- };
275
+ const TUI_VIEWPORT = new InjectionToken(ngDevMode ? 'TUI_VIEWPORT' : '', {
276
+ factory: () => {
277
+ const win = inject(WA_WINDOW);
278
+ return {
279
+ type: 'viewport',
280
+ getClientRect() {
281
+ const { height = 0, offsetTop = 0 } = win.visualViewport || {};
282
+ const rect = {
283
+ top: 0,
284
+ left: 0,
285
+ right: win.innerWidth,
286
+ bottom: win.innerHeight,
287
+ width: win.innerWidth,
288
+ height: height + offsetTop || win.innerHeight,
289
+ x: 0,
290
+ y: 0,
291
+ };
292
+ return {
293
+ ...rect,
294
+ toJSON: () => JSON.stringify(rect),
295
+ };
296
+ },
297
+ };
298
+ },
243
299
  });
244
300
  function tuiAsViewport(accessor) {
245
301
  return tuiProvide(TUI_VIEWPORT, accessor);
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-core-tokens.mjs","sources":["../../../projects/core/tokens/reduced-motion.ts","../../../projects/core/tokens/animations-speed.ts","../../../projects/core/tokens/assets-path.ts","../../../projects/core/tokens/auxiliary.ts","../../../projects/core/tokens/common-icons.ts","../../../projects/core/tokens/dark-mode.ts","../../../projects/core/tokens/date-format.ts","../../../projects/core/tokens/day-type-handler.ts","../../../projects/core/tokens/first-day-of-week.ts","../../../projects/core/tokens/i18n.ts","../../../projects/core/tokens/icon.ts","../../../projects/core/tokens/icons.ts","../../../projects/core/tokens/icon-resolver.ts","../../../projects/core/tokens/media.ts","../../../projects/core/tokens/number-format.ts","../../../projects/core/tokens/scroll-ref.ts","../../../projects/core/tokens/selection-stream.ts","../../../projects/core/tokens/spin-icons.ts","../../../projects/core/tokens/theme.ts","../../../projects/core/tokens/viewport.ts","../../../projects/core/tokens/taiga-ui-core-tokens.ts"],"sourcesContent":["import {DOCUMENT} from '@angular/common';\nimport {inject} from '@angular/core';\nimport {tuiCreateTokenFromFactory} from '@taiga-ui/cdk/utils/miscellaneous';\n\nexport const TUI_REDUCED_MOTION = tuiCreateTokenFromFactory(\n () =>\n inject(DOCUMENT).defaultView?.matchMedia?.('(prefers-reduced-motion: reduce)')\n .matches ?? false,\n);\n","import {inject} from '@angular/core';\nimport {tuiCreateTokenFromFactory} from '@taiga-ui/cdk/utils/miscellaneous';\n\nimport {TUI_REDUCED_MOTION} from './reduced-motion';\n\n/**\n * Speed of all Taiga UI animations. 1 equals 300ms.\n */\nexport const TUI_ANIMATIONS_SPEED = tuiCreateTokenFromFactory<number>(() =>\n inject(TUI_REDUCED_MOTION) ? 0 : 1,\n);\n","import type {ValueProvider} from '@angular/core';\nimport {tuiCreateToken} from '@taiga-ui/cdk/utils/miscellaneous';\n\nexport const TUI_ASSETS_PATH = tuiCreateToken('assets/taiga-ui/icons');\n\nexport function tuiAssetsPathProvider(useValue: string): ValueProvider {\n return {\n provide: TUI_ASSETS_PATH,\n useValue,\n };\n}\n","import type {Provider, Type} from '@angular/core';\nimport {tuiCreateToken, tuiProvide} from '@taiga-ui/cdk/utils/miscellaneous';\n\nexport const TUI_AUXILIARY = tuiCreateToken(null);\n\nexport function tuiAsAuxiliary(x: Type<unknown>): Provider {\n return tuiProvide(TUI_AUXILIARY, x);\n}\n","import type {Provider} from '@angular/core';\nimport {tuiCreateToken, tuiProvideOptions} from '@taiga-ui/cdk/utils/miscellaneous';\n\n// TODO: Rename `ellipsis` to `more` in the next major version\nconst COMMON_ICONS: TuiCommonIcons = {\n check: '@tui.check',\n close: '@tui.x',\n error: '@tui.circle-alert',\n more: '@tui.chevron-right',\n search: '@tui.search',\n ellipsis: '@tui.ellipsis',\n};\n\nexport interface TuiCommonIcons {\n readonly check: string;\n readonly close: string;\n readonly error: string;\n readonly more: string;\n readonly search: string;\n readonly ellipsis: string;\n}\n\nexport const TUI_COMMON_ICONS = tuiCreateToken(COMMON_ICONS);\n\nexport function tuiCommonIconsProvider(icons: Partial<TuiCommonIcons>): Provider {\n return tuiProvideOptions(TUI_COMMON_ICONS, icons, COMMON_ICONS);\n}\n","import type {WritableSignal} from '@angular/core';\nimport {effect, inject, signal} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {WA_LOCAL_STORAGE, WA_WINDOW} from '@ng-web-apis/common';\nimport {\n tuiCreateToken,\n tuiCreateTokenFromFactory,\n} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {filter, fromEvent} from 'rxjs';\n\nexport const TUI_DARK_MODE_DEFAULT_KEY = 'tuiDark';\nexport const TUI_DARK_MODE_KEY = tuiCreateToken(TUI_DARK_MODE_DEFAULT_KEY);\nexport const TUI_DARK_MODE = tuiCreateTokenFromFactory<\n WritableSignal<boolean> & {reset(): void}\n>(() => {\n let automatic = true;\n\n const storage = inject(WA_LOCAL_STORAGE);\n const key = inject(TUI_DARK_MODE_KEY);\n const saved = storage?.getItem(key);\n const media = inject(WA_WINDOW).matchMedia('(prefers-color-scheme: dark)');\n const result = signal(Boolean((saved && JSON.parse(saved)) ?? media.matches));\n\n fromEvent(media, 'change')\n .pipe(\n filter(() => !storage?.getItem(key)),\n takeUntilDestroyed(),\n )\n .subscribe(() => {\n automatic = true;\n result.set(media.matches);\n });\n\n effect(() => {\n const value = String(result());\n\n if (automatic) {\n automatic = false;\n } else {\n storage?.setItem(key, value);\n }\n });\n\n return Object.assign(result, {\n reset: () => {\n storage?.removeItem(key);\n automatic = true;\n result.set(media.matches);\n },\n });\n});\n","import type {InjectionToken, Provider} from '@angular/core';\nimport {Optional, SkipSelf} from '@angular/core';\nimport type {TuiDateMode} from '@taiga-ui/cdk/date-time';\nimport {tuiCreateToken} from '@taiga-ui/cdk/utils/miscellaneous';\nimport type {Observable} from 'rxjs';\nimport {map, of} from 'rxjs';\n\n/**\n * Formatting configuration for displayed dates\n */\nexport interface TuiDateFormatSettings {\n /**\n * Date format mode.\n */\n readonly mode: TuiDateMode;\n /**\n * Separator between date segments\n * @example 10.02 ('.' by default)\n */\n readonly separator: string;\n}\n\nexport const TUI_DEFAULT_DATE_FORMAT: TuiDateFormatSettings = {\n mode: 'DMY',\n separator: '.',\n};\n\n/**\n * Formatting configuration for displayed dates\n */\nexport const TUI_DATE_FORMAT: InjectionToken<Observable<TuiDateFormatSettings>> =\n tuiCreateToken(of(TUI_DEFAULT_DATE_FORMAT));\n\nexport function tuiDateFormatProvider(options: Partial<TuiDateFormatSettings>): Provider {\n return {\n provide: TUI_DATE_FORMAT,\n deps: [[new Optional(), new SkipSelf(), TUI_DATE_FORMAT]],\n useFactory: (\n parent: Observable<TuiDateFormatSettings> | null,\n ): Observable<TuiDateFormatSettings> =>\n (parent || of(TUI_DEFAULT_DATE_FORMAT)).pipe(\n map((format) => ({...format, ...options})),\n ),\n };\n}\n","import type {TuiDay} from '@taiga-ui/cdk/date-time';\nimport type {TuiHandler} from '@taiga-ui/cdk/types';\nimport {tuiCreateToken} from '@taiga-ui/cdk/utils/miscellaneous';\n\n/**\n * Token for adding data-type attribute to calendar cell\n */\nexport const TUI_DAY_TYPE_HANDLER = tuiCreateToken<TuiHandler<TuiDay, string>>((day) =>\n day.isWeekend ? 'weekend' : 'weekday',\n);\n","import {TuiDayOfWeek} from '@taiga-ui/cdk/date-time';\nimport {tuiCreateToken} from '@taiga-ui/cdk/utils/miscellaneous';\n\n/**\n * The first day of the week index\n */\nexport const TUI_FIRST_DAY_OF_WEEK = tuiCreateToken<0 | 1 | 2 | 3 | 4 | 5 | 6>(\n TuiDayOfWeek.Monday,\n);\n","import {tuiCreateTokenFromFactory} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {tuiExtractI18n} from '@taiga-ui/i18n/utils';\n\n/**\n * Localized months names\n */\nexport const TUI_MONTHS = tuiCreateTokenFromFactory(tuiExtractI18n('months'));\n\n/**\n * i18n 'close' word\n */\nexport const TUI_CLOSE_WORD = tuiCreateTokenFromFactory(tuiExtractI18n('close'));\n\n/**\n * i18n 'clear' word\n */\nexport const TUI_CLEAR_WORD = tuiCreateTokenFromFactory(tuiExtractI18n('clear'));\n\n/**\n * i18n 'Nothing found' message\n */\nexport const TUI_NOTHING_FOUND_MESSAGE = tuiCreateTokenFromFactory(\n tuiExtractI18n('nothingFoundMessage'),\n);\n\n/**\n * i18n of error message\n */\nexport const TUI_DEFAULT_ERROR_MESSAGE = tuiCreateTokenFromFactory(\n tuiExtractI18n('defaultErrorMessage'),\n);\n\n/**\n * spin i18n texts\n */\nexport const TUI_SPIN_TEXTS = tuiCreateTokenFromFactory(tuiExtractI18n('spinTexts'));\n\n/**\n * calendars i18n texts\n */\nexport const TUI_SHORT_WEEK_DAYS = tuiCreateTokenFromFactory(\n tuiExtractI18n('shortWeekDays'),\n);\n","import {tuiCreateToken} from '@taiga-ui/cdk/utils/miscellaneous';\n\nexport const TUI_ICON_START = tuiCreateToken('');\nexport const TUI_ICON_END = tuiCreateToken('');\n","import type {FactoryProvider} from '@angular/core';\nimport {inject} from '@angular/core';\nimport {tuiCreateToken} from '@taiga-ui/cdk/utils/miscellaneous';\n\nexport const TUI_ICON_REGISTRY = tuiCreateToken<Record<string, string>>({});\n\n/**\n * @deprecated: use {@link TUI_ICON_REGISTRY}\n */\nexport const TUI_ICON_STARTS = TUI_ICON_REGISTRY;\n\nexport function tuiIconsProvider(icons: Record<string, string>): FactoryProvider {\n return {\n provide: TUI_ICON_REGISTRY,\n useFactory: () => ({\n ...(inject(TUI_ICON_REGISTRY, {skipSelf: true, optional: true}) || {}),\n ...Object.fromEntries(\n Object.entries(icons).map(([key, value]) => [\n key,\n `data:image/svg+xml;charset=UTF-8,${encodeURIComponent(value)}`,\n ]),\n ),\n }),\n };\n}\n","import type {Provider} from '@angular/core';\nimport {inject} from '@angular/core';\nimport type {TuiStringHandler} from '@taiga-ui/cdk/types';\nimport {tuiCreateTokenFromFactory} from '@taiga-ui/cdk/utils/miscellaneous';\n\nimport {TUI_ASSETS_PATH} from './assets-path';\nimport {TUI_ICON_REGISTRY} from './icons';\n\nexport const TUI_ICON_RESOLVER = tuiCreateTokenFromFactory<TuiStringHandler<string>>(\n () => {\n const path = inject(TUI_ASSETS_PATH);\n\n return (icon) => `${path}/${icon.replace('@tui.', '').split('.').join('/')}.svg`;\n },\n);\n\n/**\n * @deprecated use {@link TUI_ICON_RESOLVER}\n */\nexport const TUI_ICON_START_RESOLVER = TUI_ICON_RESOLVER;\n\nexport function tuiInjectIconResolver(): TuiStringHandler<string> {\n const icons = inject(TUI_ICON_REGISTRY);\n const resolver = inject(TUI_ICON_RESOLVER);\n\n return (icon) =>\n !icon || icon.includes('/') ? icon : (icons[icon] ?? resolver(icon));\n}\n\nexport function tuiIconResolverProvider(useValue: TuiStringHandler<string>): Provider {\n return {provide: TUI_ICON_RESOLVER, useValue};\n}\n","import {tuiCreateToken} from '@taiga-ui/cdk/utils/miscellaneous';\n\nexport interface TuiMedia {\n readonly desktopLarge: number;\n readonly desktopSmall: number;\n readonly mobile: number;\n readonly tablet?: number;\n}\n\n/**\n * Token for media constant\n */\nexport const TUI_MEDIA = tuiCreateToken<TuiMedia>({\n mobile: 768,\n desktopSmall: 1024,\n desktopLarge: 1280,\n});\n","import type {InjectionToken, Provider} from '@angular/core';\nimport {Optional, SkipSelf} from '@angular/core';\nimport {CHAR_NO_BREAK_SPACE} from '@taiga-ui/cdk/constants';\nimport type {TuiRounding} from '@taiga-ui/cdk/types';\nimport {tuiCreateToken} from '@taiga-ui/cdk/utils/miscellaneous';\nimport type {Observable} from 'rxjs';\nimport {map, of} from 'rxjs';\n\nexport type TuiDecimalMode = 'always' | 'not-zero' | 'pad';\nexport type TuiDecimalSymbol = ',' | '.';\n\n/**\n * Formatting configuration for displayed numbers\n */\nexport interface TuiNumberFormatSettings {\n /**\n * Number of digits of decimal part.\n * @note Use `Infinity` to keep untouched.\n */\n readonly precision: number;\n /**\n * Separator between the integer and the decimal part.\n * @example 0,42 (',' by default)\n */\n readonly decimalSeparator: TuiDecimalSymbol;\n /**\n * Rounding method.\n */\n readonly rounding: TuiRounding;\n /**\n * Separator between thousands.\n * @example 360 000 (' ' by default)\n */\n readonly thousandSeparator: string;\n /**\n * Decimal part display mode. ('not-zero' by default)\n */\n readonly decimalMode: TuiDecimalMode;\n}\n\nexport const TUI_DEFAULT_NUMBER_FORMAT: TuiNumberFormatSettings = {\n precision: NaN,\n decimalSeparator: '.',\n thousandSeparator: CHAR_NO_BREAK_SPACE,\n rounding: 'truncate',\n decimalMode: 'pad',\n};\n\n/**\n * Formatting configuration for displayed numbers\n */\nexport const TUI_NUMBER_FORMAT: InjectionToken<Observable<TuiNumberFormatSettings>> =\n tuiCreateToken(of(TUI_DEFAULT_NUMBER_FORMAT));\n\nexport function tuiNumberFormatProvider(\n options: Partial<TuiNumberFormatSettings>,\n): Provider {\n return {\n provide: TUI_NUMBER_FORMAT,\n deps: [[new Optional(), new SkipSelf(), TUI_NUMBER_FORMAT]],\n useFactory: (\n parent: Observable<TuiNumberFormatSettings> | null,\n ): Observable<TuiNumberFormatSettings> =>\n (parent || of(TUI_DEFAULT_NUMBER_FORMAT)).pipe(\n map((format) => ({...format, ...options})),\n ),\n };\n}\n","import {DOCUMENT} from '@angular/common';\nimport {ElementRef, inject} from '@angular/core';\nimport {tuiCreateTokenFromFactory} from '@taiga-ui/cdk/utils/miscellaneous';\n\nexport const TUI_SCROLL_REF = tuiCreateTokenFromFactory(\n () => new ElementRef(inject(DOCUMENT).documentElement),\n);\n","import {DOCUMENT} from '@angular/common';\nimport {inject} from '@angular/core';\nimport {tuiTypedFromEvent} from '@taiga-ui/cdk/observables';\nimport {tuiCreateTokenFromFactory} from '@taiga-ui/cdk/utils/miscellaneous';\nimport type {Observable} from 'rxjs';\nimport {merge, share, switchMap, takeUntil} from 'rxjs';\n\n/**\n * A stream of possible selection changes\n */\nexport const TUI_SELECTION_STREAM = tuiCreateTokenFromFactory<Observable<unknown>>(() => {\n const doc = inject(DOCUMENT);\n\n return merge(\n tuiTypedFromEvent(doc, 'selectionchange'),\n tuiTypedFromEvent(doc, 'mouseup'),\n tuiTypedFromEvent(doc, 'mousedown').pipe(\n switchMap(() =>\n tuiTypedFromEvent(doc, 'mousemove').pipe(\n takeUntil(tuiTypedFromEvent(doc, 'mouseup')),\n ),\n ),\n ),\n tuiTypedFromEvent(doc, 'keydown'),\n tuiTypedFromEvent(doc, 'keyup'),\n ).pipe(share());\n});\n","import {tuiCreateToken} from '@taiga-ui/cdk/utils/miscellaneous';\n\nexport interface TuiSpinIcons {\n readonly decrement: string;\n readonly increment: string;\n}\n\nexport const TUI_SPIN_ICONS = tuiCreateToken<TuiSpinIcons>({\n decrement: '@tui.chevron-left',\n increment: '@tui.chevron-right',\n});\n","import {tuiCreateToken} from '@taiga-ui/cdk/utils/miscellaneous';\n\nexport const TUI_THEME = tuiCreateToken('Taiga UI');\n","import type {Provider, Type} from '@angular/core';\nimport {inject} from '@angular/core';\nimport {WA_WINDOW} from '@ng-web-apis/common';\nimport {tuiCreateTokenFromFactory, tuiProvide} from '@taiga-ui/cdk/utils/miscellaneous';\nimport type {TuiRectAccessor} from '@taiga-ui/core/classes';\n\n/**\n * Viewport accessor\n */\nexport const TUI_VIEWPORT = tuiCreateTokenFromFactory<TuiRectAccessor>(() => {\n const win = inject(WA_WINDOW);\n\n return {\n type: 'viewport',\n getClientRect() {\n const {height = 0, offsetTop = 0} = win.visualViewport || {};\n const rect = {\n top: 0,\n left: 0,\n right: win.innerWidth,\n bottom: win.innerHeight,\n width: win.innerWidth,\n height: height + offsetTop || win.innerHeight,\n x: 0,\n y: 0,\n };\n\n return {\n ...rect,\n toJSON: () => JSON.stringify(rect),\n };\n },\n };\n});\n\nexport function tuiAsViewport(accessor: Type<TuiRectAccessor>): Provider {\n return tuiProvide(TUI_VIEWPORT, accessor);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-core-tokens.mjs","sources":["../../../projects/core/tokens/reduced-motion.ts","../../../projects/core/tokens/animations-speed.ts","../../../projects/core/tokens/assets-path.ts","../../../projects/core/tokens/auxiliary.ts","../../../projects/core/tokens/common-icons.ts","../../../projects/core/tokens/dark-mode.ts","../../../projects/core/tokens/date-format.ts","../../../projects/core/tokens/day-type-handler.ts","../../../projects/core/tokens/first-day-of-week.ts","../../../projects/core/tokens/i18n.ts","../../../projects/core/tokens/icon.ts","../../../projects/core/tokens/icons.ts","../../../projects/core/tokens/icon-resolver.ts","../../../projects/core/tokens/media.ts","../../../projects/core/tokens/number-format.ts","../../../projects/core/tokens/scroll-ref.ts","../../../projects/core/tokens/selection-stream.ts","../../../projects/core/tokens/spin-icons.ts","../../../projects/core/tokens/theme.ts","../../../projects/core/tokens/viewport.ts","../../../projects/core/tokens/taiga-ui-core-tokens.ts"],"sourcesContent":["import {DOCUMENT} from '@angular/common';\nimport {inject, InjectionToken} from '@angular/core';\n\nexport const TUI_REDUCED_MOTION = new InjectionToken(\n ngDevMode ? 'TUI_REDUCED_MOTION' : '',\n {\n factory: () =>\n inject(DOCUMENT).defaultView?.matchMedia?.('(prefers-reduced-motion: reduce)')\n .matches ?? false,\n },\n);\n","import {inject, InjectionToken} from '@angular/core';\n\nimport {TUI_REDUCED_MOTION} from './reduced-motion';\n\n/**\n * Speed of all Taiga UI animations. 1 equals 300ms.\n */\nexport const TUI_ANIMATIONS_SPEED = new InjectionToken<number>(\n ngDevMode ? 'TUI_ANIMATIONS_SPEED' : '',\n {\n factory: () => (inject(TUI_REDUCED_MOTION) ? 0 : 1),\n },\n);\n","import type {ValueProvider} from '@angular/core';\nimport {InjectionToken} from '@angular/core';\n\nexport const TUI_ASSETS_PATH = new InjectionToken(ngDevMode ? 'TUI_ASSETS_PATH' : '', {\n factory: () => 'assets/taiga-ui/icons',\n});\n\nexport function tuiAssetsPathProvider(useValue: string): ValueProvider {\n return {\n provide: TUI_ASSETS_PATH,\n useValue,\n };\n}\n","import type {Provider, Type} from '@angular/core';\nimport {InjectionToken} from '@angular/core';\nimport {tuiProvide} from '@taiga-ui/cdk/utils/miscellaneous';\n\nexport const TUI_AUXILIARY = new InjectionToken(ngDevMode ? 'TUI_AUXILIARY' : '', {\n factory: () => null,\n});\n\nexport function tuiAsAuxiliary(x: Type<unknown>): Provider {\n return tuiProvide(TUI_AUXILIARY, x);\n}\n","import type {Provider} from '@angular/core';\nimport {InjectionToken} from '@angular/core';\nimport {tuiProvideOptions} from '@taiga-ui/cdk/utils/miscellaneous';\n\n// TODO: Rename `ellipsis` to `more` in the next major version\nconst COMMON_ICONS: TuiCommonIcons = {\n check: '@tui.check',\n close: '@tui.x',\n error: '@tui.circle-alert',\n more: '@tui.chevron-right',\n search: '@tui.search',\n ellipsis: '@tui.ellipsis',\n};\n\nexport interface TuiCommonIcons {\n readonly check: string;\n readonly close: string;\n readonly error: string;\n readonly more: string;\n readonly search: string;\n readonly ellipsis: string;\n}\n\nexport const TUI_COMMON_ICONS = new InjectionToken(ngDevMode ? 'TUI_COMMON_ICONS' : '', {\n factory: () => COMMON_ICONS,\n});\n\nexport function tuiCommonIconsProvider(icons: Partial<TuiCommonIcons>): Provider {\n return tuiProvideOptions(TUI_COMMON_ICONS, icons, COMMON_ICONS);\n}\n","import type {WritableSignal} from '@angular/core';\nimport {effect, inject, InjectionToken, signal} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {WA_LOCAL_STORAGE, WA_WINDOW} from '@ng-web-apis/common';\nimport {filter, fromEvent} from 'rxjs';\n\nexport const TUI_DARK_MODE_DEFAULT_KEY = 'tuiDark';\nexport const TUI_DARK_MODE_KEY = new InjectionToken(\n ngDevMode ? 'TUI_DARK_MODE_KEY' : '',\n {\n factory: () => TUI_DARK_MODE_DEFAULT_KEY,\n },\n);\nexport const TUI_DARK_MODE = new InjectionToken<\n WritableSignal<boolean> & {reset(): void}\n>(ngDevMode ? 'TUI_DARK_MODE' : '', {\n factory: () => {\n let automatic = true;\n\n const storage = inject(WA_LOCAL_STORAGE);\n const key = inject(TUI_DARK_MODE_KEY);\n const saved = storage?.getItem(key);\n const media = inject(WA_WINDOW).matchMedia('(prefers-color-scheme: dark)');\n const result = signal(Boolean((saved && JSON.parse(saved)) ?? media.matches));\n\n fromEvent(media, 'change')\n .pipe(\n filter(() => !storage?.getItem(key)),\n takeUntilDestroyed(),\n )\n .subscribe(() => {\n automatic = true;\n result.set(media.matches);\n });\n\n effect(() => {\n const value = String(result());\n\n if (automatic) {\n automatic = false;\n } else {\n storage?.setItem(key, value);\n }\n });\n\n return Object.assign(result, {\n reset: () => {\n storage?.removeItem(key);\n automatic = true;\n result.set(media.matches);\n },\n });\n },\n});\n","import type {Provider} from '@angular/core';\nimport {InjectionToken, Optional, SkipSelf} from '@angular/core';\nimport type {TuiDateMode} from '@taiga-ui/cdk/date-time';\nimport type {Observable} from 'rxjs';\nimport {map, of} from 'rxjs';\n\n/**\n * Formatting configuration for displayed dates\n */\nexport interface TuiDateFormatSettings {\n /**\n * Date format mode.\n */\n readonly mode: TuiDateMode;\n /**\n * Separator between date segments\n * @example 10.02 ('.' by default)\n */\n readonly separator: string;\n}\n\nexport const TUI_DEFAULT_DATE_FORMAT: TuiDateFormatSettings = {\n mode: 'DMY',\n separator: '.',\n};\n\n/**\n * Formatting configuration for displayed dates\n */\nexport const TUI_DATE_FORMAT = new InjectionToken<Observable<TuiDateFormatSettings>>(\n ngDevMode ? 'TUI_DATE_FORMAT' : '',\n {\n factory: () => of(TUI_DEFAULT_DATE_FORMAT),\n },\n);\n\nexport function tuiDateFormatProvider(options: Partial<TuiDateFormatSettings>): Provider {\n return {\n provide: TUI_DATE_FORMAT,\n deps: [[new Optional(), new SkipSelf(), TUI_DATE_FORMAT]],\n useFactory: (\n parent: Observable<TuiDateFormatSettings> | null,\n ): Observable<TuiDateFormatSettings> =>\n (parent || of(TUI_DEFAULT_DATE_FORMAT)).pipe(\n map((format) => ({...format, ...options})),\n ),\n };\n}\n","import {InjectionToken} from '@angular/core';\nimport type {TuiDay} from '@taiga-ui/cdk/date-time';\nimport type {TuiHandler} from '@taiga-ui/cdk/types';\n\n/**\n * Token for adding data-type attribute to calendar cell\n */\nexport const TUI_DAY_TYPE_HANDLER = new InjectionToken<TuiHandler<TuiDay, string>>(\n ngDevMode ? 'TUI_DAY_TYPE_HANDLER' : '',\n {\n factory: () => (day) => (day.isWeekend ? 'weekend' : 'weekday'),\n },\n);\n","import {InjectionToken} from '@angular/core';\nimport {TuiDayOfWeek} from '@taiga-ui/cdk/date-time';\n\n/**\n * The first day of the week index\n */\nexport const TUI_FIRST_DAY_OF_WEEK = new InjectionToken<0 | 1 | 2 | 3 | 4 | 5 | 6>(\n ngDevMode ? 'TUI_FIRST_DAY_OF_WEEK' : '',\n {\n factory: () => TuiDayOfWeek.Monday,\n },\n);\n","import {InjectionToken} from '@angular/core';\nimport {tuiExtractI18n} from '@taiga-ui/i18n/utils';\n\n/**\n * Localized months names\n */\nexport const TUI_MONTHS = new InjectionToken(ngDevMode ? 'TUI_MONTHS' : '', {\n factory: tuiExtractI18n('months'),\n});\n\n/**\n * i18n 'close' word\n */\nexport const TUI_CLOSE_WORD = new InjectionToken(ngDevMode ? 'TUI_CLOSE_WORD' : '', {\n factory: tuiExtractI18n('close'),\n});\n\n/**\n * i18n 'clear' word\n */\nexport const TUI_CLEAR_WORD = new InjectionToken(ngDevMode ? 'TUI_CLEAR_WORD' : '', {\n factory: tuiExtractI18n('clear'),\n});\n\n/**\n * i18n 'Nothing found' message\n */\nexport const TUI_NOTHING_FOUND_MESSAGE = new InjectionToken(\n ngDevMode ? 'TUI_NOTHING_FOUND_MESSAGE' : '',\n {\n factory: tuiExtractI18n('nothingFoundMessage'),\n },\n);\n\n/**\n * i18n of error message\n */\nexport const TUI_DEFAULT_ERROR_MESSAGE = new InjectionToken(\n ngDevMode ? 'TUI_DEFAULT_ERROR_MESSAGE' : '',\n {\n factory: tuiExtractI18n('defaultErrorMessage'),\n },\n);\n\n/**\n * spin i18n texts\n */\nexport const TUI_SPIN_TEXTS = new InjectionToken(ngDevMode ? 'TUI_SPIN_TEXTS' : '', {\n factory: tuiExtractI18n('spinTexts'),\n});\n\n/**\n * calendars i18n texts\n */\nexport const TUI_SHORT_WEEK_DAYS = new InjectionToken(\n ngDevMode ? 'TUI_SHORT_WEEK_DAYS' : '',\n {\n factory: tuiExtractI18n('shortWeekDays'),\n },\n);\n","import {InjectionToken} from '@angular/core';\n\nexport const TUI_ICON_START = new InjectionToken(ngDevMode ? 'TUI_ICON_START' : '', {\n factory: () => '',\n});\nexport const TUI_ICON_END = new InjectionToken(ngDevMode ? 'TUI_ICON_END' : '', {\n factory: () => '',\n});\n","import type {FactoryProvider} from '@angular/core';\nimport {inject, InjectionToken} from '@angular/core';\n\nexport const TUI_ICON_REGISTRY = new InjectionToken<Record<string, string>>(\n ngDevMode ? 'TUI_ICON_REGISTRY' : '',\n {\n factory: () => ({}),\n },\n);\n\n/**\n * @deprecated: use {@link TUI_ICON_REGISTRY}\n */\nexport const TUI_ICON_STARTS = TUI_ICON_REGISTRY;\n\nexport function tuiIconsProvider(icons: Record<string, string>): FactoryProvider {\n return {\n provide: TUI_ICON_REGISTRY,\n useFactory: () => ({\n ...(inject(TUI_ICON_REGISTRY, {skipSelf: true, optional: true}) || {}),\n ...Object.fromEntries(\n Object.entries(icons).map(([key, value]) => [\n key,\n `data:image/svg+xml;charset=UTF-8,${encodeURIComponent(value)}`,\n ]),\n ),\n }),\n };\n}\n","import type {Provider} from '@angular/core';\nimport {inject, InjectionToken} from '@angular/core';\nimport type {TuiStringHandler} from '@taiga-ui/cdk/types';\n\nimport {TUI_ASSETS_PATH} from './assets-path';\nimport {TUI_ICON_REGISTRY} from './icons';\n\nexport const TUI_ICON_RESOLVER = new InjectionToken<TuiStringHandler<string>>(\n ngDevMode ? 'TUI_ICON_RESOLVER' : '',\n {\n factory: () => {\n const path = inject(TUI_ASSETS_PATH);\n\n return (icon) =>\n `${path}/${icon.replace('@tui.', '').split('.').join('/')}.svg`;\n },\n },\n);\n\n/**\n * @deprecated use {@link TUI_ICON_RESOLVER}\n */\nexport const TUI_ICON_START_RESOLVER = TUI_ICON_RESOLVER;\n\nexport function tuiInjectIconResolver(): TuiStringHandler<string> {\n const icons = inject(TUI_ICON_REGISTRY);\n const resolver = inject(TUI_ICON_RESOLVER);\n\n return (icon) =>\n !icon || icon.includes('/') ? icon : (icons[icon] ?? resolver(icon));\n}\n\nexport function tuiIconResolverProvider(useValue: TuiStringHandler<string>): Provider {\n return {provide: TUI_ICON_RESOLVER, useValue};\n}\n","import {InjectionToken} from '@angular/core';\n\nexport interface TuiMedia {\n readonly desktopLarge: number;\n readonly desktopSmall: number;\n readonly mobile: number;\n readonly tablet?: number;\n}\n\n/**\n * Token for media constant\n */\nexport const TUI_MEDIA = new InjectionToken<TuiMedia>(ngDevMode ? 'TUI_MEDIA' : '', {\n factory: () => ({\n mobile: 768,\n desktopSmall: 1024,\n desktopLarge: 1280,\n }),\n});\n","import type {Provider} from '@angular/core';\nimport {InjectionToken, Optional, SkipSelf} from '@angular/core';\nimport {CHAR_NO_BREAK_SPACE} from '@taiga-ui/cdk/constants';\nimport type {TuiRounding} from '@taiga-ui/cdk/types';\nimport type {Observable} from 'rxjs';\nimport {map, of} from 'rxjs';\n\nexport type TuiDecimalMode = 'always' | 'not-zero' | 'pad';\nexport type TuiDecimalSymbol = ',' | '.';\n\n/**\n * Formatting configuration for displayed numbers\n */\nexport interface TuiNumberFormatSettings {\n /**\n * Number of digits of decimal part.\n * @note Use `Infinity` to keep untouched.\n */\n readonly precision: number;\n /**\n * Separator between the integer and the decimal part.\n * @example 0,42 (',' by default)\n */\n readonly decimalSeparator: TuiDecimalSymbol;\n /**\n * Rounding method.\n */\n readonly rounding: TuiRounding;\n /**\n * Separator between thousands.\n * @example 360 000 (' ' by default)\n */\n readonly thousandSeparator: string;\n /**\n * Decimal part display mode. ('not-zero' by default)\n */\n readonly decimalMode: TuiDecimalMode;\n}\n\nexport const TUI_DEFAULT_NUMBER_FORMAT: TuiNumberFormatSettings = {\n precision: NaN,\n decimalSeparator: '.',\n thousandSeparator: CHAR_NO_BREAK_SPACE,\n rounding: 'truncate',\n decimalMode: 'pad',\n};\n\n/**\n * Formatting configuration for displayed numbers\n */\nexport const TUI_NUMBER_FORMAT = new InjectionToken<Observable<TuiNumberFormatSettings>>(\n ngDevMode ? 'TUI_NUMBER_FORMAT' : '',\n {\n factory: () => of(TUI_DEFAULT_NUMBER_FORMAT),\n },\n);\n\nexport function tuiNumberFormatProvider(\n options: Partial<TuiNumberFormatSettings>,\n): Provider {\n return {\n provide: TUI_NUMBER_FORMAT,\n deps: [[new Optional(), new SkipSelf(), TUI_NUMBER_FORMAT]],\n useFactory: (\n parent: Observable<TuiNumberFormatSettings> | null,\n ): Observable<TuiNumberFormatSettings> =>\n (parent || of(TUI_DEFAULT_NUMBER_FORMAT)).pipe(\n map((format) => ({...format, ...options})),\n ),\n };\n}\n","import {DOCUMENT} from '@angular/common';\nimport {ElementRef, inject, InjectionToken} from '@angular/core';\n\nexport const TUI_SCROLL_REF = new InjectionToken(ngDevMode ? 'TUI_SCROLL_REF' : '', {\n factory: () => new ElementRef(inject(DOCUMENT).documentElement),\n});\n","import {DOCUMENT} from '@angular/common';\nimport {inject, InjectionToken} from '@angular/core';\nimport {tuiTypedFromEvent} from '@taiga-ui/cdk/observables';\nimport type {Observable} from 'rxjs';\nimport {merge, share, switchMap, takeUntil} from 'rxjs';\n\n/**\n * A stream of possible selection changes\n */\nexport const TUI_SELECTION_STREAM = new InjectionToken<Observable<unknown>>(\n ngDevMode ? 'TUI_SELECTION_STREAM' : '',\n {\n factory: () => {\n const doc = inject(DOCUMENT);\n\n return merge(\n tuiTypedFromEvent(doc, 'selectionchange'),\n tuiTypedFromEvent(doc, 'mouseup'),\n tuiTypedFromEvent(doc, 'mousedown').pipe(\n switchMap(() =>\n tuiTypedFromEvent(doc, 'mousemove').pipe(\n takeUntil(tuiTypedFromEvent(doc, 'mouseup')),\n ),\n ),\n ),\n tuiTypedFromEvent(doc, 'keydown'),\n tuiTypedFromEvent(doc, 'keyup'),\n ).pipe(share());\n },\n },\n);\n","import {InjectionToken} from '@angular/core';\n\nexport interface TuiSpinIcons {\n readonly decrement: string;\n readonly increment: string;\n}\n\nexport const TUI_SPIN_ICONS = new InjectionToken<TuiSpinIcons>(\n ngDevMode ? 'TUI_SPIN_ICONS' : '',\n {\n factory: () => ({\n decrement: '@tui.chevron-left',\n increment: '@tui.chevron-right',\n }),\n },\n);\n","import {InjectionToken} from '@angular/core';\n\nexport const TUI_THEME = new InjectionToken(ngDevMode ? 'TUI_THEME' : '', {\n factory: () => 'Taiga UI',\n});\n","import type {Provider, Type} from '@angular/core';\nimport {inject, InjectionToken} from '@angular/core';\nimport {WA_WINDOW} from '@ng-web-apis/common';\nimport {tuiProvide} from '@taiga-ui/cdk/utils/miscellaneous';\nimport type {TuiRectAccessor} from '@taiga-ui/core/classes';\n\n/**\n * Viewport accessor\n */\nexport const TUI_VIEWPORT = new InjectionToken<TuiRectAccessor>(\n ngDevMode ? 'TUI_VIEWPORT' : '',\n {\n factory: () => {\n const win = inject(WA_WINDOW);\n\n return {\n type: 'viewport',\n getClientRect() {\n const {height = 0, offsetTop = 0} = win.visualViewport || {};\n const rect = {\n top: 0,\n left: 0,\n right: win.innerWidth,\n bottom: win.innerHeight,\n width: win.innerWidth,\n height: height + offsetTop || win.innerHeight,\n x: 0,\n y: 0,\n };\n\n return {\n ...rect,\n toJSON: () => JSON.stringify(rect),\n };\n },\n };\n },\n },\n);\n\nexport function tuiAsViewport(accessor: Type<TuiRectAccessor>): Provider {\n return tuiProvide(TUI_VIEWPORT, accessor);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@taiga-ui/core",
3
- "version": "4.43.0",
3
+ "version": "4.44.0-canary.0bcf1bf",
4
4
  "description": "Core library for creating Angular components and applications using Taiga UI",
5
5
  "keywords": [
6
6
  "angular",
@@ -329,9 +329,9 @@
329
329
  "@angular/router": ">=16.0.0",
330
330
  "@ng-web-apis/common": "^4.12.0",
331
331
  "@ng-web-apis/mutation-observer": "^4.12.0",
332
- "@taiga-ui/cdk": "^4.43.0",
332
+ "@taiga-ui/cdk": "^4.44.0",
333
333
  "@taiga-ui/event-plugins": "^4.6.0",
334
- "@taiga-ui/i18n": "^4.43.0",
334
+ "@taiga-ui/i18n": "^4.44.0",
335
335
  "@taiga-ui/polymorpheus": "^4.9.0",
336
336
  "rxjs": ">=7.0.0"
337
337
  },
@@ -111,6 +111,23 @@
111
111
  }
112
112
  }
113
113
 
114
+ [dir='rtl'] &:not([data-orientation='vertical']) > * {
115
+ &:first-child {
116
+ border-radius: 0 var(--t-group-radius) var(--t-group-radius) 0;
117
+ mask-image: var(--t-group-mask-end);
118
+ }
119
+
120
+ &:last-child {
121
+ border-radius: var(--t-group-radius) 0 0 var(--t-group-radius);
122
+ mask-image: var(--t-group-mask-start);
123
+ }
124
+
125
+ &:only-child {
126
+ border-radius: var(--t-group-radius);
127
+ mask: none;
128
+ }
129
+ }
130
+
114
131
  &[data-size='s'],
115
132
  &[data-size='m'] {
116
133
  --t-group-radius: var(--tui-radius-m);
@@ -42,7 +42,7 @@
42
42
 
43
43
  &[data-size='s'] {
44
44
  margin-inline-end: 0.25rem;
45
- margin-top: 0.125rem;
45
+ margin-block-start: 0.125rem;
46
46
  }
47
47
  }
48
48
 
@@ -51,7 +51,7 @@
51
51
  }
52
52
 
53
53
  [tuiTitle] {
54
- margin-top: 0.125rem;
54
+ margin-block-start: 0.125rem;
55
55
  }
56
56
 
57
57
  [tuiSubtitle] {
@@ -53,11 +53,7 @@ tui-notification,
53
53
  &::before {
54
54
  position: absolute;
55
55
  left: -1rem;
56
-
57
- @supports (inset-inline-start: -1rem) {
58
- left: unset;
59
- inset-inline-start: -1rem;
60
- }
56
+ inset-inline-start: -1rem;
61
57
  }
62
58
 
63
59
  &::after {
@@ -70,7 +66,7 @@ tui-notification,
70
66
  margin-inline-start: auto;
71
67
  color: var(--tui-text-tertiary) !important;
72
68
 
73
- @supports (inset-inline-end: -0.5rem) {
69
+ @supports (inset-inline-end: 0) {
74
70
  right: unset;
75
71
  inset-inline-end: -0.5rem;
76
72
  }
@@ -89,18 +85,14 @@ tui-notification,
89
85
  &::before {
90
86
  top: 0.5rem;
91
87
  left: -0.875rem;
88
+ inset-inline-start: -0.875rem;
92
89
  font-size: 1rem;
93
-
94
- @supports (inset-inline-start: -0.875rem) {
95
- left: unset;
96
- inset-inline-start: -0.875rem;
97
- }
98
90
  }
99
91
 
100
92
  &::after {
101
93
  right: -0.875rem;
102
94
 
103
- @supports (inset-inline-end: -0.875rem) {
95
+ @supports (inset-inline-end: 0) {
104
96
  right: unset;
105
97
  inset-inline-end: -0.875rem;
106
98
  }
@@ -147,18 +139,14 @@ tui-notification,
147
139
 
148
140
  &::before {
149
141
  left: -0.875rem;
142
+ inset-inline-start: -0.875rem;
150
143
  font-size: 1.25rem;
151
-
152
- @supports (inset-inline-start: -0.875rem) {
153
- left: unset;
154
- inset-inline-start: -0.875rem;
155
- }
156
144
  }
157
145
 
158
146
  &::after {
159
147
  right: -0.75rem;
160
148
 
161
- @supports (inset-inline-end: -0.75rem) {
149
+ @supports (inset-inline-end: 0) {
162
150
  right: unset;
163
151
  inset-inline-end: -0.75rem;
164
152
  }
@@ -186,7 +174,7 @@ tui-notification,
186
174
  top: 0.375rem;
187
175
  right: 0.5rem;
188
176
 
189
- @supports (inset-inline-end: 0.5rem) {
177
+ @supports (inset-inline-end: 0) {
190
178
  right: unset;
191
179
  inset-inline-end: 0.5rem;
192
180
  }
@@ -206,7 +194,7 @@ tui-notification,
206
194
  display: flex;
207
195
  align-items: center;
208
196
  gap: 1.25rem;
209
- margin-top: 0.625rem;
197
+ margin-block-start: 0.625rem;
210
198
  font: var(--tui-font-text-s);
211
199
  }
212
200
  }
@@ -218,7 +206,7 @@ tui-notification,
218
206
  box-shadow: none !important;
219
207
  background: transparent !important;
220
208
 
221
- @supports (inset-inline-end: 0.75rem) {
209
+ @supports (inset-inline-end: 0) {
222
210
  right: unset;
223
211
  inset-inline-end: 0.75rem;
224
212
  }