@taiga-ui/kit 4.52.0-canary.932d3ef → 4.52.0-canary.9fae831

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 (105) hide show
  1. package/components/avatar/avatar.directive.d.ts +4 -3
  2. package/components/checkbox/checkbox.component.d.ts +7 -18
  3. package/components/checkbox/checkbox.options.d.ts +5 -9
  4. package/components/confirm/confirm.component.d.ts +1 -0
  5. package/components/confirm/confirm.service.d.ts +2 -1
  6. package/components/index.d.ts +0 -1
  7. package/components/input-color/input-color.component.d.ts +2 -2
  8. package/components/like/like.component.d.ts +4 -11
  9. package/components/like/like.options.d.ts +2 -3
  10. package/components/pager/pager.component.d.ts +1 -1
  11. package/components/push/push.component.d.ts +1 -1
  12. package/components/radio/radio.component.d.ts +7 -8
  13. package/components/radio/radio.directive.d.ts +2 -2
  14. package/components/radio/radio.options.d.ts +2 -5
  15. package/components/rating/rating.component.d.ts +5 -5
  16. package/components/rating/rating.options.d.ts +5 -3
  17. package/components/switch/switch.component.d.ts +7 -19
  18. package/components/switch/switch.options.d.ts +4 -8
  19. package/directives/copy/copy.directive.d.ts +1 -2
  20. package/directives/copy/copy.options.d.ts +1 -1
  21. package/fesm2022/taiga-ui-kit-components-avatar.mjs +12 -13
  22. package/fesm2022/taiga-ui-kit-components-avatar.mjs.map +1 -1
  23. package/fesm2022/taiga-ui-kit-components-badge.mjs +2 -2
  24. package/fesm2022/taiga-ui-kit-components-badge.mjs.map +1 -1
  25. package/fesm2022/taiga-ui-kit-components-checkbox.mjs +18 -75
  26. package/fesm2022/taiga-ui-kit-components-checkbox.mjs.map +1 -1
  27. package/fesm2022/taiga-ui-kit-components-chip.mjs +2 -2
  28. package/fesm2022/taiga-ui-kit-components-chip.mjs.map +1 -1
  29. package/fesm2022/taiga-ui-kit-components-confirm.mjs +7 -7
  30. package/fesm2022/taiga-ui-kit-components-confirm.mjs.map +1 -1
  31. package/fesm2022/taiga-ui-kit-components-data-list-wrapper.mjs +2 -2
  32. package/fesm2022/taiga-ui-kit-components-data-list-wrapper.mjs.map +1 -1
  33. package/fesm2022/taiga-ui-kit-components-input-chip.mjs +10 -5
  34. package/fesm2022/taiga-ui-kit-components-input-chip.mjs.map +1 -1
  35. package/fesm2022/taiga-ui-kit-components-input-color.mjs +4 -6
  36. package/fesm2022/taiga-ui-kit-components-input-color.mjs.map +1 -1
  37. package/fesm2022/taiga-ui-kit-components-input-date-multi.mjs +2 -2
  38. package/fesm2022/taiga-ui-kit-components-input-date-multi.mjs.map +1 -1
  39. package/fesm2022/taiga-ui-kit-components-input-date.mjs +2 -2
  40. package/fesm2022/taiga-ui-kit-components-input-date.mjs.map +1 -1
  41. package/fesm2022/taiga-ui-kit-components-input-month-range.mjs +2 -2
  42. package/fesm2022/taiga-ui-kit-components-input-month-range.mjs.map +1 -1
  43. package/fesm2022/taiga-ui-kit-components-input-month.mjs +2 -2
  44. package/fesm2022/taiga-ui-kit-components-input-month.mjs.map +1 -1
  45. package/fesm2022/taiga-ui-kit-components-input-pin.mjs +2 -2
  46. package/fesm2022/taiga-ui-kit-components-input-pin.mjs.map +1 -1
  47. package/fesm2022/taiga-ui-kit-components-input-range.mjs +4 -4
  48. package/fesm2022/taiga-ui-kit-components-input-range.mjs.map +1 -1
  49. package/fesm2022/taiga-ui-kit-components-input-time.mjs +2 -2
  50. package/fesm2022/taiga-ui-kit-components-input-time.mjs.map +1 -1
  51. package/fesm2022/taiga-ui-kit-components-input-year.mjs +2 -2
  52. package/fesm2022/taiga-ui-kit-components-input-year.mjs.map +1 -1
  53. package/fesm2022/taiga-ui-kit-components-like.mjs +38 -31
  54. package/fesm2022/taiga-ui-kit-components-like.mjs.map +1 -1
  55. package/fesm2022/taiga-ui-kit-components-multi-select.mjs +1 -1
  56. package/fesm2022/taiga-ui-kit-components-multi-select.mjs.map +1 -1
  57. package/fesm2022/taiga-ui-kit-components-pager.mjs +3 -3
  58. package/fesm2022/taiga-ui-kit-components-pager.mjs.map +1 -1
  59. package/fesm2022/taiga-ui-kit-components-pagination.mjs +2 -2
  60. package/fesm2022/taiga-ui-kit-components-pagination.mjs.map +1 -1
  61. package/fesm2022/taiga-ui-kit-components-pin.mjs +2 -2
  62. package/fesm2022/taiga-ui-kit-components-pin.mjs.map +1 -1
  63. package/fesm2022/taiga-ui-kit-components-push.mjs +2 -2
  64. package/fesm2022/taiga-ui-kit-components-push.mjs.map +1 -1
  65. package/fesm2022/taiga-ui-kit-components-radio.mjs +29 -34
  66. package/fesm2022/taiga-ui-kit-components-radio.mjs.map +1 -1
  67. package/fesm2022/taiga-ui-kit-components-rating.mjs +15 -19
  68. package/fesm2022/taiga-ui-kit-components-rating.mjs.map +1 -1
  69. package/fesm2022/taiga-ui-kit-components-select.mjs +1 -1
  70. package/fesm2022/taiga-ui-kit-components-select.mjs.map +1 -1
  71. package/fesm2022/taiga-ui-kit-components-switch.mjs +18 -64
  72. package/fesm2022/taiga-ui-kit-components-switch.mjs.map +1 -1
  73. package/fesm2022/taiga-ui-kit-components-tabs.mjs +5 -5
  74. package/fesm2022/taiga-ui-kit-components-tabs.mjs.map +1 -1
  75. package/fesm2022/taiga-ui-kit-components.mjs +0 -1
  76. package/fesm2022/taiga-ui-kit-components.mjs.map +1 -1
  77. package/fesm2022/taiga-ui-kit-directives-copy.mjs +4 -6
  78. package/fesm2022/taiga-ui-kit-directives-copy.mjs.map +1 -1
  79. package/fesm2022/taiga-ui-kit-directives-password.mjs +3 -3
  80. package/fesm2022/taiga-ui-kit-directives-password.mjs.map +1 -1
  81. package/fesm2022/taiga-ui-kit-directives-unfinished-validator.mjs +1 -2
  82. package/fesm2022/taiga-ui-kit-directives-unfinished-validator.mjs.map +1 -1
  83. package/fesm2022/taiga-ui-kit-pipes.mjs +0 -1
  84. package/fesm2022/taiga-ui-kit-pipes.mjs.map +1 -1
  85. package/fesm2022/taiga-ui-kit-tokens.mjs +1 -6
  86. package/fesm2022/taiga-ui-kit-tokens.mjs.map +1 -1
  87. package/package.json +9 -17
  88. package/pipes/index.d.ts +0 -1
  89. package/styles/components/avatar.less +188 -0
  90. package/styles/components/checkbox.less +13 -11
  91. package/styles/components/like.less +4 -9
  92. package/styles/components/pin.less +3 -6
  93. package/styles/components/switch.less +8 -8
  94. package/tokens/index.d.ts +0 -1
  95. package/components/input-password/index.d.ts +0 -2
  96. package/components/input-password/input-password.component.d.ts +0 -16
  97. package/components/input-password/input-password.options.d.ts +0 -24
  98. package/fesm2022/taiga-ui-kit-components-input-password.mjs +0 -95
  99. package/fesm2022/taiga-ui-kit-components-input-password.mjs.map +0 -1
  100. package/fesm2022/taiga-ui-kit-pipes-field-error.mjs +0 -147
  101. package/fesm2022/taiga-ui-kit-pipes-field-error.mjs.map +0 -1
  102. package/pipes/field-error/field-error-content-pipe.d.ts +0 -14
  103. package/pipes/field-error/field-error-pipe.d.ts +0 -29
  104. package/pipes/field-error/index.d.ts +0 -2
  105. package/tokens/validation-errors.d.ts +0 -5
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@taiga-ui/kit",
3
- "version": "4.52.0-canary.932d3ef",
3
+ "version": "4.52.0-canary.9fae831",
4
4
  "description": "Taiga UI Angular main components kit",
5
5
  "keywords": [
6
6
  "angular",
@@ -177,10 +177,6 @@
177
177
  "types": "./components/input-number/index.d.ts",
178
178
  "default": "./fesm2022/taiga-ui-kit-components-input-number.mjs"
179
179
  },
180
- "./components/input-password": {
181
- "types": "./components/input-password/index.d.ts",
182
- "default": "./fesm2022/taiga-ui-kit-components-input-password.mjs"
183
- },
184
180
  "./components/input-phone": {
185
181
  "types": "./components/input-phone/index.d.ts",
186
182
  "default": "./fesm2022/taiga-ui-kit-components-input-phone.mjs"
@@ -317,14 +313,14 @@
317
313
  "types": "./components/tabs/index.d.ts",
318
314
  "default": "./fesm2022/taiga-ui-kit-components-tabs.mjs"
319
315
  },
320
- "./components/tiles": {
321
- "types": "./components/tiles/index.d.ts",
322
- "default": "./fesm2022/taiga-ui-kit-components-tiles.mjs"
323
- },
324
316
  "./components/textarea": {
325
317
  "types": "./components/textarea/index.d.ts",
326
318
  "default": "./fesm2022/taiga-ui-kit-components-textarea.mjs"
327
319
  },
320
+ "./components/tiles": {
321
+ "types": "./components/tiles/index.d.ts",
322
+ "default": "./fesm2022/taiga-ui-kit-components-tiles.mjs"
323
+ },
328
324
  "./components/tree": {
329
325
  "types": "./components/tree/index.d.ts",
330
326
  "default": "./fesm2022/taiga-ui-kit-components-tree.mjs"
@@ -409,10 +405,6 @@
409
405
  "types": "./pipes/emails/index.d.ts",
410
406
  "default": "./fesm2022/taiga-ui-kit-pipes-emails.mjs"
411
407
  },
412
- "./pipes/field-error": {
413
- "types": "./pipes/field-error/index.d.ts",
414
- "default": "./fesm2022/taiga-ui-kit-pipes-field-error.mjs"
415
- },
416
408
  "./pipes/filter-by-input": {
417
409
  "types": "./pipes/filter-by-input/index.d.ts",
418
410
  "default": "./fesm2022/taiga-ui-kit-pipes-filter-by-input.mjs"
@@ -443,10 +435,10 @@
443
435
  "@angular/core": ">=19.0.0",
444
436
  "@angular/forms": ">=19.0.0",
445
437
  "@angular/router": ">=19.0.0",
446
- "@maskito/angular": "^3.10.3",
447
- "@maskito/core": "^3.10.3",
448
- "@maskito/kit": "^3.10.3",
449
- "@maskito/phone": "^3.10.3",
438
+ "@maskito/angular": "^3.11.0",
439
+ "@maskito/core": "^3.11.0",
440
+ "@maskito/kit": "^3.11.0",
441
+ "@maskito/phone": "^3.11.0",
450
442
  "@ng-web-apis/common": "^4.12.0",
451
443
  "@ng-web-apis/intersection-observer": "^4.12.0",
452
444
  "@ng-web-apis/mutation-observer": "^4.12.0",
package/pipes/index.d.ts CHANGED
@@ -1,5 +1,4 @@
1
1
  export * from '@taiga-ui/kit/pipes/emails';
2
- export * from '@taiga-ui/kit/pipes/field-error';
3
2
  export * from '@taiga-ui/kit/pipes/filter-by-input';
4
3
  export * from '@taiga-ui/kit/pipes/hide-selected';
5
4
  export * from '@taiga-ui/kit/pipes/sort-countries';
@@ -0,0 +1,188 @@
1
+ @import '@taiga-ui/core/styles/taiga-ui-local.less';
2
+
3
+ /**
4
+ * @name Avatar
5
+ * @selector [tuiAvatar]
6
+ *
7
+ * @description
8
+ * An avatar component which can be used with icons, text or images
9
+ * and is applicable to static elements as well as buttons and links
10
+ *
11
+ * @attributes
12
+ * data-size — size (default: 'l') ('xs' | 's' | 'm' | 'l' | 'xl' | 'xxl')
13
+ * data-shape — shape (default: 'round') ('round' | 'square')
14
+ *
15
+ * @example
16
+ * <span tuiAvatar tuiIcons style="--t-icon-start: url('icon.svg')"></span>
17
+ * <button tuiAvatar>
18
+ * <img src="path/to/image" alt="Avatar" />
19
+ * </button>
20
+ *
21
+ * @see-also
22
+ * Icons, Icon, Appearance
23
+ */
24
+ [tuiAvatar] {
25
+ --t-size: var(--tui-height-l);
26
+ --t-radius: 0.75rem;
27
+ --t-corner-offset: calc((var(--t-radius) * 1.4142 - var(--t-radius)) * 1 / 1.4142);
28
+
29
+ position: relative;
30
+ display: inline-flex;
31
+ flex-shrink: 0;
32
+ inline-size: var(--t-size);
33
+ block-size: var(--t-size);
34
+ align-items: center;
35
+ justify-content: center;
36
+ white-space: nowrap;
37
+ border-radius: var(--t-radius);
38
+ border: none;
39
+ background: var(--tui-background-neutral-1);
40
+ color: var(--tui-text-secondary);
41
+ vertical-align: middle;
42
+ box-sizing: border-box;
43
+ padding: 0.25rem;
44
+ font: var(--tui-font-text-l);
45
+ font-weight: bold;
46
+ opacity: 0.999; // Kick in hardware rendering layer to avoid artifacts on the edges
47
+
48
+ &::before {
49
+ inline-size: auto;
50
+ block-size: auto;
51
+ }
52
+
53
+ &:not(._initials)::before {
54
+ position: absolute;
55
+ inset: 0;
56
+ font-size: calc(var(--t-size) * 0.6);
57
+ }
58
+
59
+ &[data-size='xs'] {
60
+ --t-size: var(--tui-height-xs);
61
+ --t-radius: 0.5rem;
62
+
63
+ font: var(--tui-font-text-ui-xs);
64
+ font-size: 0.5625rem;
65
+
66
+ &._initials::before {
67
+ font: var(--tui-font-text-ui-xs);
68
+ font-weight: bold;
69
+ }
70
+ }
71
+
72
+ &[data-size='s'] {
73
+ --t-size: var(--tui-height-s);
74
+ --t-radius: 0.5rem;
75
+
76
+ font: var(--tui-font-text-ui-xs);
77
+ font-weight: bold;
78
+
79
+ &._initials::before {
80
+ font: var(--tui-font-text-s);
81
+ font-weight: bold;
82
+ }
83
+ }
84
+
85
+ &[data-size='m'] {
86
+ --t-size: calc(var(--tui-height-m) - 0.25rem);
87
+ --t-radius: 0.75rem;
88
+
89
+ font: var(--tui-font-text-ui-m);
90
+ font-weight: bold;
91
+
92
+ &._initials::before {
93
+ font: var(--tui-font-text-m);
94
+ font-weight: bold;
95
+ }
96
+ }
97
+
98
+ &[data-size='xl'] {
99
+ --t-size: 5rem;
100
+ --t-radius: 0.75rem;
101
+
102
+ font: var(--tui-font-heading-4);
103
+
104
+ &._initials::before {
105
+ font: var(--tui-font-heading-3);
106
+ }
107
+ }
108
+
109
+ &[data-size='xxl'] {
110
+ --t-size: 6rem;
111
+ --t-radius: 1rem;
112
+
113
+ font: var(--tui-font-heading-3);
114
+
115
+ &._initials::before {
116
+ font: var(--tui-font-heading-3);
117
+ }
118
+ }
119
+
120
+ &[data-size='xxxl'] {
121
+ --t-size: 8rem;
122
+ --t-radius: 1.25rem;
123
+
124
+ font: var(--tui-font-heading-3);
125
+
126
+ &._initials::before {
127
+ font: var(--tui-font-heading-2);
128
+ }
129
+ }
130
+
131
+ &:not([data-shape='square']) {
132
+ --t-radius: calc(var(--t-size) / 2);
133
+ }
134
+
135
+ &._initials {
136
+ &::before {
137
+ content: attr(data-icon-start);
138
+ mask: none;
139
+ background: none;
140
+ font: var(--tui-font-heading-6);
141
+ }
142
+ }
143
+
144
+ &._badge {
145
+ mask: radial-gradient(
146
+ circle at calc(100% - var(--t-corner-offset)) calc(100% - var(--t-corner-offset)),
147
+ black 0.23rem,
148
+ transparent 0.25rem,
149
+ transparent 0.375rem,
150
+ black 0.39rem
151
+ );
152
+ mask-clip: no-clip;
153
+
154
+ &::after {
155
+ content: '';
156
+ position: absolute;
157
+ top: calc(100% - var(--t-corner-offset));
158
+ left: calc(100% - var(--t-corner-offset));
159
+ display: block;
160
+ inline-size: 0.55rem;
161
+ block-size: 0.55rem;
162
+ border-radius: 100%;
163
+ background: var(--t-badge);
164
+ transform: translate3d(-50%, -50%, 0);
165
+ }
166
+ }
167
+
168
+ &._fallback {
169
+ img,
170
+ video {
171
+ display: none;
172
+ }
173
+ }
174
+
175
+ img,
176
+ video,
177
+ picture {
178
+ .fullsize();
179
+
180
+ object-fit: cover;
181
+ box-sizing: border-box;
182
+ border-radius: inherit;
183
+ }
184
+
185
+ &:has(img, video):not(._fallback) {
186
+ background: none;
187
+ }
188
+ }
@@ -11,11 +11,11 @@
11
11
  * data-size — size (default: 'm') ('s' | 'm')
12
12
  *
13
13
  * @vars
14
- * --t-checked-icon — checkmark icon
15
- * --t-indeterminate-icon — indeterminate state icon
14
+ * --t-icon-start — checkmark icon
15
+ * --t-icon-end — indeterminate state icon
16
16
  *
17
17
  * @example
18
- * <input type="checkbox" tuiCheckbox />
18
+ * <input type="checkbox" tuiCheckbox tuiIcons tuiAppearance data-appearance='secondary' />
19
19
  *
20
20
  * @see-also
21
21
  * Switch, Radio, Appearance
@@ -32,19 +32,21 @@
32
32
  flex-shrink: 0;
33
33
 
34
34
  &::before {
35
- .fullsize(absolute, inset);
36
-
37
- content: '';
35
+ position: absolute;
36
+ block-size: 100%;
37
+ inline-size: 100%;
38
38
  font-size: 1rem;
39
- background: currentColor;
40
- mask: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg"></svg>') no-repeat center /
41
- calc(~'min(1em, 100%)' + 10 * var(--tui-stroke-width, 0.125rem)) ~'min(1em, 100%)' padding-box;
39
+ mask-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg"></svg>');
42
40
  transform: scale(0);
43
41
  transition:
44
42
  transform var(--tui-duration) ease-in-out,
45
43
  mask 0s var(--tui-duration) ease-in-out;
46
44
  }
47
45
 
46
+ &::after {
47
+ display: none;
48
+ }
49
+
48
50
  &:disabled._readonly {
49
51
  opacity: 1;
50
52
  pointer-events: none;
@@ -53,7 +55,7 @@
53
55
  &:checked,
54
56
  &:indeterminate {
55
57
  &::before {
56
- mask-image: var(--t-checked-icon);
58
+ mask-image: var(--t-icon-start);
57
59
  transform: scale(1);
58
60
  transition:
59
61
  transform var(--tui-duration) ease-in-out,
@@ -63,7 +65,7 @@
63
65
  }
64
66
 
65
67
  &:indeterminate::before {
66
- mask-image: var(--t-indeterminate-icon);
68
+ mask-image: var(--t-icon-end);
67
69
  }
68
70
 
69
71
  &[data-size='s'] {
@@ -11,12 +11,12 @@
11
11
  * data-size — size (default: 'm') ('s' | 'm')
12
12
  *
13
13
  * @vars
14
- * --t-icon-color - custom color for `:checked` state
15
- * --t-unchecked-icon — default state icon
16
- * --t-checked-icon — checkmark icon
14
+ * --t-icon-color custom color for `:checked` state
15
+ * --t-icon-start — default state icon
16
+ * --t-icon-end — checkmark icon
17
17
  *
18
18
  * @example
19
- * <input tuiLike />
19
+ * <input tuiLike tuiIcons tuiAppearance data-appearance="secondary" />
20
20
  *
21
21
  * @see-also
22
22
  * Checkbox, Switch, Radio, Appearance
@@ -34,16 +34,11 @@
34
34
  &::after {
35
35
  .fullsize();
36
36
 
37
- content: '';
38
- background: currentColor;
39
37
  font-size: 1.25rem;
40
- mask: var(--t-unchecked-icon) no-repeat center /
41
- calc(~'min(1em, 100%)' + 10 * var(--tui-stroke-width, 0.125rem)) ~'min(1em, 100%)' padding-box;
42
38
  transition-property: transform, opacity;
43
39
  }
44
40
 
45
41
  &::after {
46
- mask-image: var(--t-checked-icon);
47
42
  opacity: 0;
48
43
  color: var(--t-icon-color, inherit);
49
44
  transform: scale(0);
@@ -64,8 +64,7 @@ tui-pin,
64
64
  background: var(--tui-background-base);
65
65
  }
66
66
 
67
- > tui-icon,
68
- > tui-svg {
67
+ > tui-icon {
69
68
  .transition(~'width, height');
70
69
 
71
70
  font-size: 1.25rem;
@@ -84,8 +83,7 @@ tui-pin,
84
83
  padding: 0.125rem;
85
84
  }
86
85
 
87
- > tui-icon,
88
- > tui-svg {
86
+ > tui-icon {
89
87
  font-size: 2.125rem;
90
88
  }
91
89
 
@@ -113,8 +111,7 @@ tui-pin,
113
111
  padding: 0.125rem;
114
112
  }
115
113
 
116
- > tui-icon,
117
- > tui-svg {
114
+ > tui-icon {
118
115
  font-size: 2.125rem;
119
116
  }
120
117
 
@@ -11,10 +11,10 @@
11
11
  * data-size — size (default: 'm') ('s' | 'm')
12
12
  *
13
13
  * @vars
14
- * --t-checked-icon — checkmark icon
14
+ * --t-icon-start — checkmark icon
15
15
  *
16
16
  * @example
17
- * <input type="checkbox" tuiSwitch />
17
+ * <input type="checkbox" tuiSwitch tuiAppearance data-appearance="primary" />
18
18
  *
19
19
  * @see-also
20
20
  * Checkbox, Radio
@@ -69,7 +69,6 @@
69
69
 
70
70
  &::before,
71
71
  &::after {
72
- content: '';
73
72
  position: absolute;
74
73
  block-size: 100%;
75
74
  inline-size: 1.5rem;
@@ -77,10 +76,6 @@
77
76
  }
78
77
 
79
78
  &::before {
80
- display: var(--t-checked-icon, none);
81
- background: currentColor;
82
- mask: var(--t-checked-icon) no-repeat center / calc(~'min(1em, 100%)' + 10 * var(--tui-stroke-width, 0.125rem))
83
- ~'min(1em, 100%)' padding-box;
84
79
  font-size: 1rem;
85
80
  inline-size: 1.375rem;
86
81
  transform: translateX(-1.5rem);
@@ -88,11 +83,16 @@
88
83
 
89
84
  &::after {
90
85
  right: 0;
86
+ display: block;
91
87
  border-radius: 100%;
88
+ background: none;
92
89
  transform: scale(0.33333);
93
90
  box-shadow: -4.5rem 0 0 0.75rem var(--tui-background-base);
94
91
  outline: 0.375rem solid var(--tui-background-neutral-2-pressed);
95
- outline-offset: var(--t-checked-icon, 20rem);
92
+ }
93
+
94
+ &:not([data-icon-start])::after {
95
+ outline-offset: 20rem;
96
96
  }
97
97
 
98
98
  &:invalid:not([data-mode]),
package/tokens/index.d.ts CHANGED
@@ -6,4 +6,3 @@ export * from './items-handlers';
6
6
  export * from './mobile-calendar';
7
7
  export * from './month-formatter';
8
8
  export * from './preview-icons';
9
- export * from './validation-errors';
@@ -1,2 +0,0 @@
1
- export * from './input-password.component';
2
- export * from './input-password.options';
@@ -1,16 +0,0 @@
1
- import * as i0 from "@angular/core";
2
- import * as i1 from "@taiga-ui/core/components/textfield";
3
- /**
4
- * @deprecated use {@link TuiPassword} with {@link TuiTextfield}
5
- */
6
- export declare class TuiInputPassword {
7
- private readonly options;
8
- private readonly texts;
9
- protected readonly el: HTMLInputElement;
10
- protected readonly size: import("@angular/core").WritableSignal<"m" | "l" | "s">;
11
- protected readonly hidden: import("@angular/core").WritableSignal<boolean>;
12
- protected readonly text: import("@angular/core").Signal<string>;
13
- protected readonly icon: import("@angular/core").Signal<string>;
14
- static ɵfac: i0.ɵɵFactoryDeclaration<TuiInputPassword, never>;
15
- static ɵcmp: i0.ɵɵComponentDeclaration<TuiInputPassword, "input[tuiInputPassword]", never, {}, {}, never, never, true, [{ directive: typeof i1.TuiWithTextfield; inputs: {}; outputs: {}; }]>;
16
- }
@@ -1,24 +0,0 @@
1
- import { InjectionToken, type Provider } from '@angular/core';
2
- import { type TuiStringHandler } from '@taiga-ui/cdk/types';
3
- import { type TuiSizeL, type TuiSizeS } from '@taiga-ui/core/types';
4
- /**
5
- * @deprecated use {@link TuiPassword} with {@link TuiTextfield}
6
- */
7
- export interface TuiInputPasswordOptions {
8
- readonly icons: Readonly<{
9
- hide: TuiStringHandler<TuiSizeL | TuiSizeS> | string;
10
- show: TuiStringHandler<TuiSizeL | TuiSizeS> | string;
11
- }>;
12
- }
13
- /**
14
- * @deprecated use {@link TuiPassword} with {@link TuiTextfield}
15
- */
16
- export declare const TUI_INPUT_PASSWORD_DEFAULT_OPTIONS: TuiInputPasswordOptions;
17
- /**
18
- * @deprecated use {@link TuiPassword} with {@link TuiTextfield}
19
- */
20
- export declare const TUI_INPUT_PASSWORD_OPTIONS: InjectionToken<TuiInputPasswordOptions>;
21
- /**
22
- * @deprecated use {@link TuiPassword} with {@link TuiTextfield}
23
- */
24
- export declare function tuiInputPasswordOptionsProvider(options: Partial<TuiInputPasswordOptions>): Provider;
@@ -1,95 +0,0 @@
1
- import * as i0 from '@angular/core';
2
- import { InjectionToken, inject, signal, computed, ChangeDetectionStrategy, Component } from '@angular/core';
3
- import { toSignal } from '@angular/core/rxjs-interop';
4
- import { tuiFallbackValueProvider } from '@taiga-ui/cdk/tokens';
5
- import { tuiInjectElement } from '@taiga-ui/cdk/utils/dom';
6
- import { tuiProvideOptions, tuiIsString } from '@taiga-ui/cdk/utils/miscellaneous';
7
- import { TuiIcon } from '@taiga-ui/core/components/icon';
8
- import * as i1 from '@taiga-ui/core/components/textfield';
9
- import { TUI_TEXTFIELD_OPTIONS, TuiTextfieldContent, TuiWithTextfield } from '@taiga-ui/core/components/textfield';
10
- import { TuiTooltip } from '@taiga-ui/kit/directives';
11
- import { TUI_PASSWORD_TEXTS } from '@taiga-ui/kit/tokens';
12
-
13
- /**
14
- * @deprecated use {@link TuiPassword} with {@link TuiTextfield}
15
- */
16
- const TUI_INPUT_PASSWORD_DEFAULT_OPTIONS = {
17
- icons: {
18
- hide: '@tui.eye-off',
19
- show: '@tui.eye',
20
- },
21
- };
22
- /**
23
- * @deprecated use {@link TuiPassword} with {@link TuiTextfield}
24
- */
25
- const TUI_INPUT_PASSWORD_OPTIONS = new InjectionToken(ngDevMode ? 'TUI_INPUT_PASSWORD_OPTIONS' : '', {
26
- factory: () => TUI_INPUT_PASSWORD_DEFAULT_OPTIONS,
27
- });
28
- /**
29
- * @deprecated use {@link TuiPassword} with {@link TuiTextfield}
30
- */
31
- function tuiInputPasswordOptionsProvider(options) {
32
- return tuiProvideOptions(TUI_INPUT_PASSWORD_OPTIONS, options, TUI_INPUT_PASSWORD_DEFAULT_OPTIONS);
33
- }
34
-
35
- /**
36
- * @deprecated use {@link TuiPassword} with {@link TuiTextfield}
37
- */
38
- class TuiInputPassword {
39
- constructor() {
40
- this.options = inject(TUI_INPUT_PASSWORD_OPTIONS);
41
- this.texts = toSignal(inject(TUI_PASSWORD_TEXTS), {
42
- initialValue: ['', ''],
43
- });
44
- this.el = tuiInjectElement();
45
- this.size = inject(TUI_TEXTFIELD_OPTIONS).size;
46
- this.hidden = signal(true);
47
- this.text = computed(() => this.hidden() ? this.texts()[0] : this.texts()[1]);
48
- this.icon = computed((size = this.size()) => {
49
- const icon = this.hidden() ? this.options.icons.show : this.options.icons.hide;
50
- return tuiIsString(icon) ? icon : icon(size);
51
- });
52
- }
53
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiInputPassword, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
54
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: TuiInputPassword, isStandalone: true, selector: "input[tuiInputPassword]", host: { attributes: { "ngSkipHydration": "true" }, properties: { "type": "hidden() ? \"password\" : \"text\"" } }, providers: [tuiFallbackValueProvider('')], hostDirectives: [{ directive: i1.TuiWithTextfield }], ngImport: i0, template: `
55
- <tui-icon
56
- *tuiTextfieldContent
57
- [icon]="icon()"
58
- [style.border]="size() === 's' ? null : 'none'"
59
- [tuiTooltip]="text()"
60
- (click)="hidden.set(!hidden())"
61
- (mousedown.capture.prevent.stop)="el.focus()"
62
- />
63
- `, isInline: true, dependencies: [{ kind: "component", type: TuiIcon, selector: "tui-icon:not([tuiBadge])", inputs: ["background"] }, { kind: "directive", type: TuiTextfieldContent, selector: "ng-template[tuiTextfieldContent]" }, { kind: "directive", type: TuiTooltip, selector: "tui-icon[tuiTooltip]", inputs: ["size"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
64
- }
65
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiInputPassword, decorators: [{
66
- type: Component,
67
- args: [{
68
- selector: 'input[tuiInputPassword]',
69
- imports: [TuiIcon, TuiTextfieldContent, TuiTooltip],
70
- template: `
71
- <tui-icon
72
- *tuiTextfieldContent
73
- [icon]="icon()"
74
- [style.border]="size() === 's' ? null : 'none'"
75
- [tuiTooltip]="text()"
76
- (click)="hidden.set(!hidden())"
77
- (mousedown.capture.prevent.stop)="el.focus()"
78
- />
79
- `,
80
- changeDetection: ChangeDetectionStrategy.OnPush,
81
- providers: [tuiFallbackValueProvider('')],
82
- hostDirectives: [TuiWithTextfield],
83
- host: {
84
- ngSkipHydration: 'true',
85
- '[type]': 'hidden() ? "password" : "text"',
86
- },
87
- }]
88
- }] });
89
-
90
- /**
91
- * Generated bundle index. Do not edit.
92
- */
93
-
94
- export { TUI_INPUT_PASSWORD_DEFAULT_OPTIONS, TUI_INPUT_PASSWORD_OPTIONS, TuiInputPassword, tuiInputPasswordOptionsProvider };
95
- //# sourceMappingURL=taiga-ui-kit-components-input-password.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"taiga-ui-kit-components-input-password.mjs","sources":["../../../projects/kit/components/input-password/input-password.options.ts","../../../projects/kit/components/input-password/input-password.component.ts","../../../projects/kit/components/input-password/taiga-ui-kit-components-input-password.ts"],"sourcesContent":["import {InjectionToken, type Provider} from '@angular/core';\nimport {type TuiStringHandler} from '@taiga-ui/cdk/types';\nimport {tuiProvideOptions} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {type TuiSizeL, type TuiSizeS} from '@taiga-ui/core/types';\n\n/**\n * @deprecated use {@link TuiPassword} with {@link TuiTextfield}\n */\nexport interface TuiInputPasswordOptions {\n readonly icons: Readonly<{\n hide: TuiStringHandler<TuiSizeL | TuiSizeS> | string;\n show: TuiStringHandler<TuiSizeL | TuiSizeS> | string;\n }>;\n}\n\n/**\n * @deprecated use {@link TuiPassword} with {@link TuiTextfield}\n */\nexport const TUI_INPUT_PASSWORD_DEFAULT_OPTIONS: TuiInputPasswordOptions = {\n icons: {\n hide: '@tui.eye-off',\n show: '@tui.eye',\n },\n};\n\n/**\n * @deprecated use {@link TuiPassword} with {@link TuiTextfield}\n */\nexport const TUI_INPUT_PASSWORD_OPTIONS = new InjectionToken(\n ngDevMode ? 'TUI_INPUT_PASSWORD_OPTIONS' : '',\n {\n factory: () => TUI_INPUT_PASSWORD_DEFAULT_OPTIONS,\n },\n);\n\n/**\n * @deprecated use {@link TuiPassword} with {@link TuiTextfield}\n */\nexport function tuiInputPasswordOptionsProvider(\n options: Partial<TuiInputPasswordOptions>,\n): Provider {\n return tuiProvideOptions(\n TUI_INPUT_PASSWORD_OPTIONS,\n options,\n TUI_INPUT_PASSWORD_DEFAULT_OPTIONS,\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n inject,\n signal,\n} from '@angular/core';\nimport {toSignal} from '@angular/core/rxjs-interop';\nimport {tuiFallbackValueProvider} from '@taiga-ui/cdk/tokens';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {tuiIsString} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiIcon} from '@taiga-ui/core/components/icon';\nimport {\n TUI_TEXTFIELD_OPTIONS,\n TuiTextfieldContent,\n TuiWithTextfield,\n} from '@taiga-ui/core/components/textfield';\nimport {TuiTooltip} from '@taiga-ui/kit/directives';\nimport {TUI_PASSWORD_TEXTS} from '@taiga-ui/kit/tokens';\n\nimport {TUI_INPUT_PASSWORD_OPTIONS} from './input-password.options';\n\n/**\n * @deprecated use {@link TuiPassword} with {@link TuiTextfield}\n */\n@Component({\n selector: 'input[tuiInputPassword]',\n imports: [TuiIcon, TuiTextfieldContent, TuiTooltip],\n template: `\n <tui-icon\n *tuiTextfieldContent\n [icon]=\"icon()\"\n [style.border]=\"size() === 's' ? null : 'none'\"\n [tuiTooltip]=\"text()\"\n (click)=\"hidden.set(!hidden())\"\n (mousedown.capture.prevent.stop)=\"el.focus()\"\n />\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [tuiFallbackValueProvider('')],\n hostDirectives: [TuiWithTextfield],\n host: {\n ngSkipHydration: 'true',\n '[type]': 'hidden() ? \"password\" : \"text\"',\n },\n})\nexport class TuiInputPassword {\n private readonly options = inject(TUI_INPUT_PASSWORD_OPTIONS);\n private readonly texts = toSignal(inject(TUI_PASSWORD_TEXTS), {\n initialValue: ['', ''] as const,\n });\n\n protected readonly el = tuiInjectElement<HTMLInputElement>();\n protected readonly size = inject(TUI_TEXTFIELD_OPTIONS).size;\n protected readonly hidden = signal(true);\n protected readonly text = computed(() =>\n this.hidden() ? this.texts()[0] : this.texts()[1],\n );\n\n protected readonly icon = computed((size = this.size()) => {\n const icon = this.hidden() ? this.options.icons.show : this.options.icons.hide;\n\n return tuiIsString(icon) ? icon : icon(size);\n });\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}