@taiga-ui/core 4.52.0-canary.40b6993 → 4.52.0-canary.49575ff

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 (87) hide show
  1. package/components/input/input.d.ts +1 -1
  2. package/components/notification/notification.directive.d.ts +1 -1
  3. package/components/root/root.component.d.ts +1 -1
  4. package/fesm2022/taiga-ui-core-components-button.mjs +2 -2
  5. package/fesm2022/taiga-ui-core-components-button.mjs.map +1 -1
  6. package/fesm2022/taiga-ui-core-components-calendar.mjs +4 -4
  7. package/fesm2022/taiga-ui-core-components-cell.mjs +2 -2
  8. package/fesm2022/taiga-ui-core-components-cell.mjs.map +1 -1
  9. package/fesm2022/taiga-ui-core-components-data-list.mjs +2 -2
  10. package/fesm2022/taiga-ui-core-components-data-list.mjs.map +1 -1
  11. package/fesm2022/taiga-ui-core-components-error.mjs +2 -2
  12. package/fesm2022/taiga-ui-core-components-icon.mjs +2 -2
  13. package/fesm2022/taiga-ui-core-components-icon.mjs.map +1 -1
  14. package/fesm2022/taiga-ui-core-components-input.mjs +3 -2
  15. package/fesm2022/taiga-ui-core-components-input.mjs.map +1 -1
  16. package/fesm2022/taiga-ui-core-components-label.mjs +2 -2
  17. package/fesm2022/taiga-ui-core-components-label.mjs.map +1 -1
  18. package/fesm2022/taiga-ui-core-components-link.mjs +2 -2
  19. package/fesm2022/taiga-ui-core-components-link.mjs.map +1 -1
  20. package/fesm2022/taiga-ui-core-components-loader.mjs +2 -2
  21. package/fesm2022/taiga-ui-core-components-notification.mjs +6 -6
  22. package/fesm2022/taiga-ui-core-components-notification.mjs.map +1 -1
  23. package/fesm2022/taiga-ui-core-components-root.mjs +4 -6
  24. package/fesm2022/taiga-ui-core-components-root.mjs.map +1 -1
  25. package/fesm2022/taiga-ui-core-components-spin-button.mjs +2 -2
  26. package/fesm2022/taiga-ui-core-components-textfield.mjs +11 -9
  27. package/fesm2022/taiga-ui-core-components-textfield.mjs.map +1 -1
  28. package/fesm2022/taiga-ui-core-components-title.mjs +2 -2
  29. package/fesm2022/taiga-ui-core-components-title.mjs.map +1 -1
  30. package/fesm2022/taiga-ui-core-directives-appearance.mjs +2 -2
  31. package/fesm2022/taiga-ui-core-directives-appearance.mjs.map +1 -1
  32. package/fesm2022/taiga-ui-core-directives-group.mjs +2 -2
  33. package/fesm2022/taiga-ui-core-directives-group.mjs.map +1 -1
  34. package/fesm2022/taiga-ui-core-directives-icons.mjs +2 -2
  35. package/fesm2022/taiga-ui-core-directives-icons.mjs.map +1 -1
  36. package/fesm2022/taiga-ui-core-portals-dialog.mjs +3 -3
  37. package/fesm2022/taiga-ui-core-portals-dialog.mjs.map +1 -1
  38. package/fesm2022/taiga-ui-core-portals-dropdown.mjs +14 -30
  39. package/fesm2022/taiga-ui-core-portals-dropdown.mjs.map +1 -1
  40. package/fesm2022/taiga-ui-core-portals-hint.mjs +14 -12
  41. package/fesm2022/taiga-ui-core-portals-hint.mjs.map +1 -1
  42. package/fesm2022/taiga-ui-core-portals-modal.mjs +2 -2
  43. package/fesm2022/taiga-ui-core-portals-modal.mjs.map +1 -1
  44. package/fesm2022/taiga-ui-core-services.mjs +5 -30
  45. package/fesm2022/taiga-ui-core-services.mjs.map +1 -1
  46. package/fesm2022/taiga-ui-core-tokens.mjs +29 -15
  47. package/fesm2022/taiga-ui-core-tokens.mjs.map +1 -1
  48. package/fesm2022/taiga-ui-core-utils-miscellaneous.mjs +13 -4
  49. package/fesm2022/taiga-ui-core-utils-miscellaneous.mjs.map +1 -1
  50. package/package.json +41 -41
  51. package/portals/dropdown/dropdown-options.directive.d.ts +0 -4
  52. package/portals/hint/hint-position.directive.d.ts +2 -2
  53. package/portals/hint/hint.directive.d.ts +1 -1
  54. package/services/index.d.ts +0 -1
  55. package/styles/components/button.less +10 -20
  56. package/styles/components/icon.less +11 -0
  57. package/styles/components/icons.less +2 -1
  58. package/styles/components/label.less +3 -12
  59. package/styles/components/link.less +1 -2
  60. package/styles/components/notification.less +21 -22
  61. package/styles/components/textfield.less +27 -63
  62. package/styles/components/title.less +8 -8
  63. package/styles/mixins/appearance.less +8 -24
  64. package/styles/mixins/appearance.scss +8 -24
  65. package/styles/mixins/date-picker.less +1 -1
  66. package/styles/mixins/picker.less +1 -1
  67. package/styles/mixins/picker.scss +1 -1
  68. package/styles/mixins/slider.less +1 -1
  69. package/styles/mixins/slider.scss +1 -1
  70. package/styles/taiga-ui-local.less +0 -1
  71. package/styles/taiga-ui-local.scss +0 -1
  72. package/styles/taiga-ui-theme.less +0 -1
  73. package/styles/theme/appearance/outline.less +9 -18
  74. package/styles/theme/appearance/primary.less +2 -4
  75. package/styles/theme/appearance/secondary.less +6 -14
  76. package/styles/theme/appearance/status.less +0 -4
  77. package/styles/theme/appearance/table.less +38 -31
  78. package/styles/theme/appearance.less +0 -1
  79. package/styles/theme/variables.less +18 -17
  80. package/tokens/breakpoint.d.ts +4 -0
  81. package/tokens/index.d.ts +1 -0
  82. package/utils/miscellaneous/font-scaling.d.ts +2 -1
  83. package/services/breakpoint.service.d.ts +0 -16
  84. package/styles/mixins/wrapper.less +0 -64
  85. package/styles/mixins/wrapper.scss +0 -61
  86. package/styles/theme/appearance/opposite.less +0 -17
  87. package/styles/theme/wrapper.less +0 -211
@@ -2,9 +2,7 @@
2
2
 
3
3
  [tuiAppearance][data-appearance='secondary'],
4
4
  [tuiAppearance][data-appearance='secondary-destructive'],
5
- [tuiAppearance][data-appearance='secondary-grayscale'],
6
- /* TODO @deprecated remove in v5 */
7
- [tuiAppearance][data-appearance='destructive'] {
5
+ [tuiAppearance][data-appearance='secondary-grayscale'] {
8
6
  background: var(--tui-background-neutral-1);
9
7
  color: var(--tui-text-action);
10
8
 
@@ -30,9 +28,7 @@
30
28
  background: var(--tui-background-accent-1-pressed);
31
29
  });
32
30
 
33
- &:invalid:not([data-mode]),
34
- &[data-mode~='invalid'],
35
- &.tui-invalid:not([data-mode]) {
31
+ .appearance-invalid({
36
32
  background: var(--tui-status-negative);
37
33
  color: #fff;
38
34
 
@@ -45,12 +41,10 @@
45
41
  background: var(--tui-status-negative);
46
42
  color: #fff;
47
43
  });
48
- }
44
+ });
49
45
  }
50
46
 
51
- &:invalid:not([data-mode]),
52
- &[data-mode~='invalid'],
53
- &.tui-invalid:not([data-mode]) {
47
+ .appearance-invalid({
54
48
  color: var(--tui-text-negative);
55
49
  background: var(--tui-status-negative-pale);
56
50
 
@@ -63,12 +57,10 @@
63
57
  color: var(--tui-text-negative-hover);
64
58
  background: var(--tui-status-negative-pale-hover);
65
59
  });
66
- }
60
+ });
67
61
  }
68
62
 
69
- [tuiAppearance][data-appearance='secondary-destructive'],
70
- /* TODO @deprecated remove in v5 */
71
- [tuiAppearance][data-appearance='destructive'] {
63
+ [tuiAppearance][data-appearance='secondary-destructive'] {
72
64
  color: var(--tui-text-negative);
73
65
  }
74
66
 
@@ -1,7 +1,5 @@
1
1
  @import '@taiga-ui/core/styles/taiga-ui-local.less';
2
2
 
3
- [tuiAppearance][data-appearance='error'], /* TODO @deprecated remove in v5 */
4
- [tuiAppearance][data-appearance='success'], /* TODO @deprecated remove in v5 */
5
3
  [tuiAppearance][data-appearance='negative'],
6
4
  [tuiAppearance][data-appearance='positive'],
7
5
  [tuiAppearance][data-appearance='warning'],
@@ -16,7 +14,6 @@
16
14
  }
17
15
  }
18
16
 
19
- [tuiAppearance][data-appearance='error'], /* TODO @deprecated remove in v5 */
20
17
  [tuiAppearance][data-appearance='negative'] {
21
18
  --t-bg: var(--tui-status-negative-pale);
22
19
 
@@ -39,7 +36,6 @@
39
36
  }
40
37
  }
41
38
 
42
- [tuiAppearance][data-appearance='success'], /* TODO @deprecated remove in v5 */
43
39
  [tuiAppearance][data-appearance='positive'] {
44
40
  --t-bg: var(--tui-status-positive-pale);
45
41
 
@@ -1,47 +1,54 @@
1
1
  @import '@taiga-ui/core/styles/taiga-ui-local.less';
2
2
 
3
- /*
4
- TODO: remove :not([tuiWrapper]) after legacy controls deletion
5
- */
6
- [tuiAppearance][data-appearance='table']:not([tuiWrapper]) {
7
- content: '';
8
- position: fixed;
9
- /* TODO: Use inset: -1px after Safari 14+ support */
10
- top: -1px;
11
- bottom: -1px;
12
- left: -1px;
13
- right: -1px;
14
- inline-size: auto;
3
+ [tuiAppearance][data-appearance='table'] {
15
4
  block-size: auto;
16
- border-radius: 0;
5
+ border-radius: 0 !important;
17
6
  background: transparent;
7
+ color: var(--tui-text-primary);
18
8
  border: none;
19
9
  outline: none;
20
10
  border-block-end: calc(var(--t-row-height) - var(--t-height)) solid transparent;
21
11
 
22
- &:not(._empty) {
23
- color: var(--tui-text-primary);
12
+ &:is(tui-textfield[multi]),
13
+ &:is(tui-input-card-group) {
14
+ min-block-size: 100%;
15
+ border-block-end: 0;
24
16
  }
25
17
 
26
- .appearance-hover({
27
- &[data-focus='false'] {
28
- background-color: var(--tui-background-neutral-1);
29
- }
30
- });
18
+ &:is(textarea) {
19
+ block-size: 100%;
20
+ border-block-end: 0;
21
+ }
22
+
23
+ &::before,
24
+ &::after {
25
+ color: var(--tui-text-tertiary);
26
+ }
27
+
28
+ &:not([data-mode~='readonly']) {
29
+ .appearance-hover({
30
+ &[data-focus='false'] {
31
+ background-color: var(--tui-background-neutral-1);
32
+ }
33
+
34
+ &::before,
35
+ &::after {
36
+ color: var(--tui-text-secondary);
37
+ }
38
+ });
39
+ }
31
40
 
32
41
  .appearance-focus({
33
- outline-offset: -0.125rem;
42
+ outline-offset: -1px;
34
43
  outline: 0.125rem solid var(--tui-border-focus);
35
44
  });
36
45
 
37
- &:invalid:not([data-mode]),
38
- &[data-mode~='invalid'],
39
- &.tui-invalid:not([data-mode]) {
40
- background-origin: border-box;
41
- background-position: top right;
42
- background-repeat: no-repeat;
43
- background-image: linear-gradient(to top right, transparent 0% 50%, var(--tui-status-negative) 50% 100%);
44
- background-size: 0.5rem 0.5rem;
46
+ .appearance-invalid({
47
+ background:
48
+ linear-gradient(to top right, transparent 0% 50%, var(--tui-status-negative) 50% 100%)
49
+ top right / 0.5rem 0.5rem
50
+ no-repeat
51
+ border-box;
45
52
 
46
53
  &[data-focus='false'] {
47
54
  background-color: var(--tui-status-negative-pale);
@@ -60,8 +67,8 @@ TODO: remove :not([tuiWrapper]) after legacy controls deletion
60
67
 
61
68
  .appearance-focus({
62
69
  background-color: transparent;
63
- outline-offset: -0.0625rem;
70
+ outline-offset: 0;
64
71
  outline: 0.0625rem solid var(--tui-status-negative);
65
72
  });
66
- }
73
+ });
67
74
  }
@@ -3,7 +3,6 @@
3
3
  @import 'appearance/flat.less';
4
4
  @import 'appearance/floating.less';
5
5
  @import 'appearance/glass.less';
6
- @import 'appearance/opposite.less';
7
6
  @import 'appearance/outline.less';
8
7
  @import 'appearance/primary.less';
9
8
  @import 'appearance/secondary.less';
@@ -1,27 +1,28 @@
1
1
  &:root,
2
2
  &:host {
3
3
  // Fonts
4
- --tui-font-heading: 'Manrope', system-ui, sans-serif;
5
- --tui-font-text: 'Manrope', system-ui, sans-serif;
4
+ --tui-font-family-text: 'Manrope', system-ui, sans-serif;
5
+ --tui-font-family-display: 'Manrope', system-ui, sans-serif;
6
6
  --tui-font-offset: ~'0rem';
7
7
  // Heading
8
- --tui-font-heading-1: bold calc(var(--tui-font-offset) + 3.125rem) / 3.5rem var(--tui-font-heading);
9
- --tui-font-heading-2: bold calc(var(--tui-font-offset) + 2.75rem) / 3rem var(--tui-font-heading);
10
- --tui-font-heading-3: bold calc(var(--tui-font-offset) + 2.25rem) / 2.5rem var(--tui-font-heading);
11
- --tui-font-heading-4: bold calc(var(--tui-font-offset) + 1.75rem) / 2rem var(--tui-font-heading);
12
- --tui-font-heading-5: bold calc(var(--tui-font-offset) + 1.5rem) / 1.75rem var(--tui-font-heading);
13
- --tui-font-heading-6: bold calc(var(--tui-font-offset) + 1.25rem) / 1.5rem var(--tui-font-heading);
8
+ --tui-font-heading-h1: bold calc(var(--tui-font-offset) + 3.125rem) / calc(50 / 56) var(--tui-font-family-display);
9
+ --tui-font-heading-h2: bold calc(var(--tui-font-offset) + 2.75rem) / calc(48 / 44) var(--tui-font-family-display);
10
+ --tui-font-heading-h3: bold calc(var(--tui-font-offset) + 2.25rem) / calc(40 / 36) var(--tui-font-family-display);
11
+ --tui-font-heading-h4: bold calc(var(--tui-font-offset) + 1.75rem) / calc(32 / 28) var(--tui-font-family-display);
12
+ --tui-font-heading-h5: bold calc(var(--tui-font-offset) + 1.5rem) / calc(28 / 24) var(--tui-font-family-display);
13
+ --tui-font-heading-h6: bold calc(var(--tui-font-offset) + 1.25rem) / calc(24 / 20) var(--tui-font-family-display);
14
14
  // Body
15
- --tui-font-text-xl: normal calc(var(--tui-font-offset) + 1.1875rem) / 1.75rem var(--tui-font-text);
16
- --tui-font-text-l: normal calc(var(--tui-font-offset) + 1.0625rem) / 1.75rem var(--tui-font-text);
17
- --tui-font-text-m: normal calc(var(--tui-font-offset) + 1rem) / 1.5rem var(--tui-font-text);
18
- --tui-font-text-s: normal calc(var(--tui-font-offset) + 0.8125rem) / 1.25rem var(--tui-font-text);
19
- --tui-font-text-xs: normal calc(var(--tui-font-offset) + 0.6875rem) / 1rem var(--tui-font-text);
15
+ --tui-font-legacy-body-xl: normal calc(var(--tui-font-offset) + 1.1875rem) / calc(28 / 19)
16
+ var(--tui-font-family-text);
17
+ --tui-font-body-l: normal calc(var(--tui-font-offset) + 1.0625rem) / calc(28 / 17) var(--tui-font-family-text);
18
+ --tui-font-body-m: normal calc(var(--tui-font-offset) + 1rem) / calc(24 / 16) var(--tui-font-family-text);
19
+ --tui-font-body-s: normal calc(var(--tui-font-offset) + 0.8125rem) / calc(20 / 13) var(--tui-font-family-text);
20
+ --tui-font-body-xs: normal calc(var(--tui-font-offset) + 0.6875rem) / calc(16 / 11) var(--tui-font-family-text);
20
21
  // Reduced
21
- --tui-font-text-ui-l: normal calc(var(--tui-font-offset) + 1.0625rem) / 1.5rem var(--tui-font-text);
22
- --tui-font-text-ui-m: normal calc(var(--tui-font-offset) + 1rem) / 1.25rem var(--tui-font-text);
23
- --tui-font-text-ui-s: normal calc(var(--tui-font-offset) + 0.8125rem) / 1rem var(--tui-font-text);
24
- --tui-font-text-ui-xs: normal calc(var(--tui-font-offset) + 0.6875rem) / 0.8125rem var(--tui-font-text);
22
+ --tui-font-ui-l: normal calc(var(--tui-font-offset) + 1.0625rem) / calc(24 / 17) var(--tui-font-family-text);
23
+ --tui-font-ui-m: normal calc(var(--tui-font-offset) + 1rem) / calc(20 / 16) var(--tui-font-family-text);
24
+ --tui-font-ui-s: normal calc(var(--tui-font-offset) + 0.8125rem) / calc(16 / 13) var(--tui-font-family-text);
25
+ --tui-font-ui-xs: normal calc(var(--tui-font-offset) + 0.6875rem) / calc(13 / 11) var(--tui-font-family-text);
25
26
  // Radii
26
27
  --tui-radius-xs: 0.25rem;
27
28
  --tui-radius-s: 0.5rem;
@@ -0,0 +1,4 @@
1
+ import { InjectionToken, type Signal } from '@angular/core';
2
+ import { type TuiMedia } from './media';
3
+ export type TuiBreakpointMediaKey = keyof Omit<TuiMedia, 'tablet'>;
4
+ export declare const TUI_BREAKPOINT: InjectionToken<Signal<"desktopLarge" | "desktopSmall" | "mobile">>;
package/tokens/index.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  export * from './animations-speed';
2
2
  export * from './assets-path';
3
3
  export * from './auxiliary';
4
+ export * from './breakpoint';
4
5
  export * from './common-icons';
5
6
  export * from './dark-mode';
6
7
  export * from './date-format';
@@ -1,2 +1,3 @@
1
- import { type Provider } from '@angular/core';
1
+ import { InjectionToken, type Provider, type WritableSignal } from '@angular/core';
2
+ export declare const TUI_FONT_OFFSET: InjectionToken<WritableSignal<number>>;
2
3
  export declare function tuiEnableFontScaling(): Provider;
@@ -1,16 +0,0 @@
1
- import { type TuiMedia } from '@taiga-ui/core/tokens';
2
- import { Observable } from 'rxjs';
3
- import * as i0 from "@angular/core";
4
- export type TuiBreakpointMediaKey = keyof Omit<TuiMedia, 'tablet'>;
5
- /**
6
- * Service to provide the current breakpoint based on Taiga UI's media queries
7
- */
8
- export declare class TuiBreakpointService extends Observable<TuiBreakpointMediaKey | null> {
9
- private readonly media;
10
- private readonly sorted;
11
- private readonly invert;
12
- private readonly stream$;
13
- constructor();
14
- static ɵfac: i0.ɵɵFactoryDeclaration<TuiBreakpointService, never>;
15
- static ɵprov: i0.ɵɵInjectableDeclaration<TuiBreakpointService>;
16
- }
@@ -1,64 +0,0 @@
1
- /**
2
- * @deprecated use appearance instead
3
- */
4
- .wrapper-hover(@ruleset) {
5
- @media @tui-mouse {
6
- &:hover:not(._no-hover),
7
- &[data-state='hover'] {
8
- @ruleset();
9
- }
10
- }
11
- }
12
-
13
- .wrapper-active(@ruleset) {
14
- &:active:not(._no-active),
15
- &[data-state='active'],
16
- &[data-state='active']:hover {
17
- @ruleset();
18
- }
19
- }
20
-
21
- .wrapper-readonly(@ruleset, @native: false) {
22
- // Specificity artificially increased to match `:hover:not()` level
23
- & when (@native = true) {
24
- &:read-only:read-only,
25
- &[data-state='readonly'][data-state='readonly'] {
26
- @ruleset();
27
- }
28
- }
29
-
30
- & when (@native = false) {
31
- &[data-state='readonly'][data-state='readonly'] {
32
- @ruleset();
33
- }
34
- }
35
- }
36
-
37
- .wrapper-disabled(@ruleset) {
38
- // Specificity artificially increased to match `:hover:not()` level
39
- &:disabled:disabled,
40
- &[data-state='disabled'][data-state='disabled'] {
41
- @ruleset();
42
- }
43
- }
44
-
45
- .wrapper-focus(@ruleset) {
46
- &:focus-visible:focus-visible {
47
- @ruleset();
48
- }
49
-
50
- &:has(:focus-visible) {
51
- @ruleset();
52
- }
53
-
54
- &._focused._focused {
55
- @ruleset();
56
- }
57
- }
58
-
59
- .wrapper-invalid(@ruleset) {
60
- &:invalid:invalid,
61
- &._invalid._invalid {
62
- @ruleset();
63
- }
64
- }
@@ -1,61 +0,0 @@
1
- @import '../variables/media.scss';
2
-
3
- @mixin wrapper-hover {
4
- @media ($tui-mouse) {
5
- &:hover:not(._no-hover),
6
- &[data-state='hover'] {
7
- @content;
8
- }
9
- }
10
- }
11
-
12
- @mixin wrapper-active {
13
- &:active:not(._no-active),
14
- &[data-state='active'],
15
- &[data-state='active']:hover {
16
- @content;
17
- }
18
- }
19
-
20
- @mixin wrapper-readonly($native: false) {
21
- // Specificity artificially increased to match `:hover:not()` level
22
- @if $native == true {
23
- &:read-only:read-only,
24
- &[data-state='readonly'][data-state='readonly'] {
25
- @content;
26
- }
27
- }
28
-
29
- @if $native == false {
30
- &[data-state='readonly'][data-state='readonly'] {
31
- @content;
32
- }
33
- }
34
- }
35
-
36
- @mixin wrapper-disabled {
37
- // Specificity artificially increased to match `:hover:not()` level
38
- &:disabled:disabled,
39
- &[data-state='disabled'][data-state='disabled'] {
40
- @content;
41
- }
42
- }
43
-
44
- @mixin wrapper-focus {
45
- // TODO: Join rules together once all browsers support focus-visible
46
- // Specificity artificially increased to match `:hover:not()` level
47
- &:focus-visible:focus-visible {
48
- @content;
49
- }
50
-
51
- &._focused._focused {
52
- @content;
53
- }
54
- }
55
-
56
- @mixin wrapper-invalid {
57
- &:invalid:invalid,
58
- &._invalid._invalid {
59
- @content;
60
- }
61
- }
@@ -1,17 +0,0 @@
1
- @import '@taiga-ui/core/styles/taiga-ui-local.less';
2
-
3
- /* TODO @deprecated remove in v5 */
4
- [tuiAppearance][data-appearance='opposite'] {
5
- --tui-border-focus: #979797;
6
-
7
- background: var(--tui-background-accent-opposite);
8
- color: var(--tui-background-base);
9
-
10
- .appearance-hover({
11
- background: var(--tui-background-accent-opposite-hover);
12
- });
13
-
14
- .appearance-active({
15
- background: var(--tui-background-accent-opposite-pressed);
16
- });
17
- }
@@ -1,211 +0,0 @@
1
- @import '@taiga-ui/core/styles/taiga-ui-local.less';
2
-
3
- /**
4
- * TODO: Drop in v.5
5
- * @deprecated use appearance instead
6
- */
7
- [tuiWrapper] {
8
- .transition(~'color, background, opacity');
9
-
10
- position: relative;
11
- display: block;
12
- block-size: 100%;
13
- inline-size: 100%;
14
- appearance: none;
15
- border-radius: inherit;
16
-
17
- .wrapper-disabled({
18
- pointer-events: none;
19
- opacity: var(--tui-disabled-opacity);
20
- });
21
- }
22
-
23
- [tuiWrapper][data-appearance='textfield'] {
24
- .transition(~'box-shadow, background');
25
-
26
- background: var(--tui-background-base);
27
- color: var(--tui-text-primary);
28
- outline: none !important;
29
- box-shadow: 0 0.125rem 0.1875rem rgba(0, 0, 0, 0.1);
30
-
31
- &::after {
32
- .transition(color);
33
- .fullsize(absolute, inset);
34
-
35
- content: '';
36
- border-radius: inherit;
37
- border: 1px solid currentColor;
38
- pointer-events: none;
39
- color: var(--tui-border-normal);
40
- }
41
-
42
- .wrapper-hover({
43
- box-shadow: 0 0.125rem 0.3125rem rgba(0, 0, 0, 0.16);
44
- });
45
-
46
- .wrapper-focus({
47
- box-shadow: none;
48
-
49
- &:after {
50
- border-width: 2px;
51
- color: var(--tui-background-accent-1);
52
- }
53
- });
54
-
55
- .wrapper-readonly({
56
- box-shadow: none;
57
- background: transparent;
58
-
59
- &:after {
60
- color: var(--tui-border-normal);
61
- }
62
- });
63
-
64
- .wrapper-disabled({
65
- box-shadow: none;
66
- });
67
-
68
- .wrapper-invalid({
69
- &:after {
70
- color: var(--tui-text-negative);
71
- }
72
- });
73
- }
74
-
75
- [tuiTheme='dark'][tuiWrapper][data-appearance='textfield'],
76
- [tuiTheme='dark'] [tuiWrapper][data-appearance='textfield'] {
77
- background: var(--tui-background-neutral-1);
78
-
79
- .wrapper-hover({
80
- background: var(--tui-background-neutral-1-hover);
81
- });
82
-
83
- .wrapper-focus({
84
- background: transparent;
85
- });
86
- }
87
-
88
- /* stylelint-disable order/order */
89
- [tuiWrapper][data-appearance='table'] {
90
- border-radius: 0;
91
- background: transparent;
92
- color: var(--tui-text-primary);
93
- outline: none !important;
94
-
95
- /* stylelint-disable meowtec/no-px */
96
- &::before,
97
- &[data-appearance='table']::after {
98
- content: '';
99
- position: fixed;
100
- top: -0.03125rem;
101
- left: -1px;
102
- right: -0.03125rem;
103
- bottom: -1px;
104
- }
105
- /* stylelint-enable meowtec/no-px */
106
-
107
- &::before {
108
- .transition(background);
109
-
110
- z-index: -1;
111
- background-repeat: no-repeat;
112
- background-position: top right;
113
- background-size: 0.5rem 0.5rem;
114
- }
115
-
116
- &[data-appearance='table']::after {
117
- border: 1px solid currentColor;
118
- border-radius: inherit;
119
- pointer-events: none;
120
- color: var(--tui-border-normal);
121
- }
122
-
123
- .wrapper-hover({
124
- &:not(._focused):before {
125
- background-color: var(--tui-background-neutral-1);
126
- }
127
- });
128
-
129
- .wrapper-focus({
130
- background: transparent;
131
-
132
- &:after {
133
- border-width: 2px;
134
- color: var(--tui-border-focus);
135
- }
136
- });
137
-
138
- .wrapper-invalid({
139
- &:before {
140
- background-image: linear-gradient(to top right, transparent 0%, transparent 50%, var(--tui-status-negative) 50%, var(--tui-status-negative) 100%);
141
- }
142
-
143
- &:not(._focused):before {
144
- background-color: var(--tui-status-negative-pale);
145
- }
146
-
147
- .wrapper-hover({
148
- &:not(._focused):before {
149
- background-color: var(--tui-status-negative-pale-hover);
150
- }
151
- });
152
-
153
- .wrapper-disabled({
154
- background: transparent;
155
- });
156
-
157
- .wrapper-focus({
158
- background: transparent;
159
-
160
- --tui-border-focus: var(--tui-status-negative);
161
-
162
- &:after {
163
- border-width: 1px;
164
- }
165
- });
166
- });
167
- }
168
-
169
- table [tuiWrapper][data-appearance='table'] {
170
- &[data-appearance='table']:not(._focused)::after {
171
- border-width: 0;
172
- }
173
-
174
- &._focused {
175
- z-index: 1;
176
- }
177
- }
178
-
179
- [tuiWrapper][data-appearance='icon'] {
180
- color: var(--tui-text-tertiary);
181
-
182
- [tuiWrapper]:not([data-state='readonly']):hover .t-textfield-icon &:not([data-state='disabled']) {
183
- color: var(--tui-text-secondary);
184
- }
185
-
186
- .wrapper-hover({
187
- color: var(--tui-text-secondary);
188
- });
189
-
190
- .wrapper-active({
191
- color: var(--tui-text-primary);
192
- });
193
- }
194
-
195
- tui-primitive-textfield:hover:not(._disabled) [tuiAppearance][data-appearance='icon'],
196
- tui-textarea:hover:not(._disabled) [tuiAppearance][data-appearance='icon'],
197
- tui-input-tag:hover:not(._disabled) [tuiAppearance][data-appearance='icon'] {
198
- color: var(--tui-text-secondary);
199
-
200
- .wrapper-active({
201
- color: var(--tui-text-primary);
202
- });
203
- }
204
-
205
- [tuiWrapper][data-appearance='none'] {
206
- outline: none;
207
-
208
- &::after {
209
- border: none;
210
- }
211
- }