@taiga-ui/core 4.52.0-canary.6be767f → 4.52.0-canary.831274e

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 (103) hide show
  1. package/components/alert/alert.component.d.ts +5 -6
  2. package/components/alert/alert.directive.d.ts +4 -3
  3. package/components/alert/alert.interfaces.d.ts +2 -1
  4. package/components/alert/alert.service.d.ts +6 -2
  5. package/components/alert/alert.tokens.d.ts +1 -7
  6. package/components/alert/index.d.ts +0 -1
  7. package/components/data-list/data-list.component.d.ts +1 -1
  8. package/components/dialog/dialog.component.d.ts +1 -1
  9. package/components/dialog/dialog.directive.d.ts +4 -3
  10. package/components/dialog/dialog.service.d.ts +5 -2
  11. package/components/error/error.component.d.ts +1 -1
  12. package/components/index.d.ts +1 -0
  13. package/components/link/link.directive.d.ts +2 -2
  14. package/components/loader/loader.component.d.ts +7 -7
  15. package/components/modal/index.d.ts +2 -0
  16. package/components/modal/modal.component.d.ts +17 -0
  17. package/components/modal/modal.service.d.ts +13 -0
  18. package/components/notification/notification.directive.d.ts +1 -1
  19. package/components/root/root.component.d.ts +1 -1
  20. package/components/spin-button/spin-button.component.d.ts +8 -9
  21. package/components/textfield/textfield-multi/textfield-multi.component.d.ts +2 -2
  22. package/components/textfield/textfield.component.d.ts +4 -5
  23. package/components/textfield/textfield.directive.d.ts +10 -13
  24. package/components/textfield/textfield.options.d.ts +8 -11
  25. package/directives/appearance/appearance.directive.d.ts +1 -1
  26. package/directives/appearance/appearance.options.d.ts +1 -1
  27. package/directives/dropdown/dropdown.directive.d.ts +1 -2
  28. package/directives/dropdown/index.d.ts +0 -2
  29. package/directives/hint/hint-describe.directive.d.ts +4 -6
  30. package/directives/hint/hint-host.directive.d.ts +2 -2
  31. package/directives/hint/hint-hover.directive.d.ts +3 -4
  32. package/directives/hint/hint-manual.directive.d.ts +2 -2
  33. package/directives/hint/hint-options.directive.d.ts +1 -1
  34. package/directives/hint/hint-overflow.directive.d.ts +2 -2
  35. package/directives/hint/hint-position.directive.d.ts +4 -5
  36. package/directives/hint/hint-unstyled.component.d.ts +2 -7
  37. package/directives/hint/hint.component.d.ts +7 -6
  38. package/directives/hint/hint.directive.d.ts +9 -11
  39. package/directives/hint/index.d.ts +0 -2
  40. package/directives/index.d.ts +1 -0
  41. package/directives/notification/index.d.ts +2 -0
  42. package/directives/notification/notification.directive.d.ts +11 -0
  43. package/directives/notification/notification.service.d.ts +12 -0
  44. package/fesm2022/taiga-ui-core-components-alert.mjs +57 -96
  45. package/fesm2022/taiga-ui-core-components-alert.mjs.map +1 -1
  46. package/fesm2022/taiga-ui-core-components-button.mjs.map +1 -1
  47. package/fesm2022/taiga-ui-core-components-calendar.mjs +2 -1
  48. package/fesm2022/taiga-ui-core-components-calendar.mjs.map +1 -1
  49. package/fesm2022/taiga-ui-core-components-cell.mjs.map +1 -1
  50. package/fesm2022/taiga-ui-core-components-data-list.mjs +3 -3
  51. package/fesm2022/taiga-ui-core-components-data-list.mjs.map +1 -1
  52. package/fesm2022/taiga-ui-core-components-dialog.mjs +31 -19
  53. package/fesm2022/taiga-ui-core-components-dialog.mjs.map +1 -1
  54. package/fesm2022/taiga-ui-core-components-error.mjs +2 -2
  55. package/fesm2022/taiga-ui-core-components-error.mjs.map +1 -1
  56. package/fesm2022/taiga-ui-core-components-expand.mjs.map +1 -1
  57. package/fesm2022/taiga-ui-core-components-header.mjs.map +1 -1
  58. package/fesm2022/taiga-ui-core-components-label.mjs.map +1 -1
  59. package/fesm2022/taiga-ui-core-components-link.mjs +5 -7
  60. package/fesm2022/taiga-ui-core-components-link.mjs.map +1 -1
  61. package/fesm2022/taiga-ui-core-components-loader.mjs +12 -25
  62. package/fesm2022/taiga-ui-core-components-loader.mjs.map +1 -1
  63. package/fesm2022/taiga-ui-core-components-modal.mjs +89 -0
  64. package/fesm2022/taiga-ui-core-components-modal.mjs.map +1 -0
  65. package/fesm2022/taiga-ui-core-components-notification.mjs.map +1 -1
  66. package/fesm2022/taiga-ui-core-components-root.mjs +3 -13
  67. package/fesm2022/taiga-ui-core-components-root.mjs.map +1 -1
  68. package/fesm2022/taiga-ui-core-components-scrollbar.mjs.map +1 -1
  69. package/fesm2022/taiga-ui-core-components-spin-button.mjs +14 -27
  70. package/fesm2022/taiga-ui-core-components-spin-button.mjs.map +1 -1
  71. package/fesm2022/taiga-ui-core-components-textfield.mjs +51 -94
  72. package/fesm2022/taiga-ui-core-components-textfield.mjs.map +1 -1
  73. package/fesm2022/taiga-ui-core-components.mjs +1 -0
  74. package/fesm2022/taiga-ui-core-components.mjs.map +1 -1
  75. package/fesm2022/taiga-ui-core-directives-appearance.mjs.map +1 -1
  76. package/fesm2022/taiga-ui-core-directives-dropdown.mjs +3 -33
  77. package/fesm2022/taiga-ui-core-directives-dropdown.mjs.map +1 -1
  78. package/fesm2022/taiga-ui-core-directives-group.mjs.map +1 -1
  79. package/fesm2022/taiga-ui-core-directives-hint.mjs +94 -182
  80. package/fesm2022/taiga-ui-core-directives-hint.mjs.map +1 -1
  81. package/fesm2022/taiga-ui-core-directives-icons.mjs.map +1 -1
  82. package/fesm2022/taiga-ui-core-directives-items-handlers.mjs +2 -2
  83. package/fesm2022/taiga-ui-core-directives-items-handlers.mjs.map +1 -1
  84. package/fesm2022/taiga-ui-core-directives-notification.mjs +73 -0
  85. package/fesm2022/taiga-ui-core-directives-notification.mjs.map +1 -0
  86. package/fesm2022/taiga-ui-core-directives-popup.mjs +4 -4
  87. package/fesm2022/taiga-ui-core-directives-popup.mjs.map +1 -1
  88. package/fesm2022/taiga-ui-core-directives-title.mjs.map +1 -1
  89. package/fesm2022/taiga-ui-core-directives.mjs +1 -0
  90. package/fesm2022/taiga-ui-core-directives.mjs.map +1 -1
  91. package/fesm2022/taiga-ui-core-pipes-month.mjs +2 -1
  92. package/fesm2022/taiga-ui-core-pipes-month.mjs.map +1 -1
  93. package/fesm2022/taiga-ui-core-utils-miscellaneous.mjs +1 -1
  94. package/fesm2022/taiga-ui-core-utils-miscellaneous.mjs.map +1 -1
  95. package/package.json +13 -5
  96. package/tokens/i18n.d.ts +7 -7
  97. package/types/index.d.ts +0 -1
  98. package/components/alert/alerts.component.d.ts +0 -12
  99. package/directives/dropdown/dropdown.service.d.ts +0 -6
  100. package/directives/dropdown/dropdowns.component.d.ts +0 -9
  101. package/directives/hint/hint.service.d.ts +0 -13
  102. package/directives/hint/hints.component.d.ts +0 -12
  103. package/types/portal-item.d.ts +0 -9
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-core-pipes-month.mjs","sources":["../../../projects/core/pipes/month/month.pipe.ts","../../../projects/core/pipes/month/taiga-ui-core-pipes-month.ts"],"sourcesContent":["import {inject, Pipe, type PipeTransform} from '@angular/core';\nimport {type TuiMonth} from '@taiga-ui/cdk/date-time';\nimport {TUI_MONTHS} from '@taiga-ui/core/tokens';\nimport {map, type Observable} from 'rxjs';\n\n@Pipe({\n standalone: true,\n name: 'tuiMonth',\n})\nexport class TuiMonthPipe implements PipeTransform {\n private readonly months$ = inject(TUI_MONTHS);\n\n public transform({month}: TuiMonth): Observable<string> {\n return this.months$.pipe(map((months) => months[month] || months[0]));\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;MASa,YAAY,CAAA;AAJzB,IAAA,WAAA,GAAA;AAKqB,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC;AAKhD;IAHU,SAAS,CAAC,EAAC,KAAK,EAAW,EAAA;QAC9B,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;;+GAJhE,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;6GAAZ,YAAY,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,UAAA,EAAA,CAAA,CAAA;;4FAAZ,YAAY,EAAA,UAAA,EAAA,CAAA;kBAJxB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,IAAI,EAAE,UAAU;AACnB,iBAAA;;;ACRD;;AAEG;;;;"}
1
+ {"version":3,"file":"taiga-ui-core-pipes-month.mjs","sources":["../../../projects/core/pipes/month/month.pipe.ts","../../../projects/core/pipes/month/taiga-ui-core-pipes-month.ts"],"sourcesContent":["import {inject, Pipe, type PipeTransform} from '@angular/core';\nimport {toObservable} from '@angular/core/rxjs-interop';\nimport {type TuiMonth} from '@taiga-ui/cdk/date-time';\nimport {TUI_MONTHS} from '@taiga-ui/core/tokens';\nimport {map, type Observable} from 'rxjs';\n\n@Pipe({\n standalone: true,\n name: 'tuiMonth',\n})\nexport class TuiMonthPipe implements PipeTransform {\n private readonly months$ = toObservable(inject(TUI_MONTHS));\n\n public transform({month}: TuiMonth): Observable<string> {\n return this.months$.pipe(map((months) => months[month] || months[0]));\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;MAUa,YAAY,CAAA;AAJzB,IAAA,WAAA,GAAA;QAKqB,IAAO,CAAA,OAAA,GAAG,YAAY,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;AAK9D;IAHU,SAAS,CAAC,EAAC,KAAK,EAAW,EAAA;QAC9B,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;;+GAJhE,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;6GAAZ,YAAY,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,UAAA,EAAA,CAAA,CAAA;;4FAAZ,YAAY,EAAA,UAAA,EAAA,CAAA;kBAJxB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,IAAI,EAAE,UAAU;AACnB,iBAAA;;;ACTD;;AAEG;;;;"}
@@ -36,7 +36,7 @@ function tuiIsEditingKey(key = '') {
36
36
  /**
37
37
  * @internal
38
38
  */
39
- function tuiIsObscured(el, exceptSelector = 'tui-hints') {
39
+ function tuiIsObscured(el, exceptSelector = 'tui-popups') {
40
40
  return !!tuiGetElementObscures(el)?.some((el) => !el.closest(exceptSelector));
41
41
  }
42
42
 
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-core-utils-miscellaneous.mjs","sources":["../../../projects/core/utils/miscellaneous/font-scaling.ts","../../../projects/core/utils/miscellaneous/is-editing-key.ts","../../../projects/core/utils/miscellaneous/is-obscured.ts","../../../projects/core/utils/miscellaneous/override-options.ts","../../../projects/core/utils/miscellaneous/provide-taiga.ts","../../../projects/core/utils/miscellaneous/size-bigger.ts","../../../projects/core/utils/miscellaneous/to-animation-options.ts","../../../projects/core/utils/miscellaneous/taiga-ui-core-utils-miscellaneous.ts"],"sourcesContent":["import {DOCUMENT} from '@angular/common';\nimport {inject, type Provider} from '@angular/core';\nimport {TUI_FONT_SIZE_HANDLER} from '@taiga-ui/cdk/directives/font-size';\nimport {tuiClamp} from '@taiga-ui/cdk/utils/math';\n\nexport function tuiEnableFontScaling(): Provider {\n return {\n provide: TUI_FONT_SIZE_HANDLER,\n useFactory:\n ({documentElement} = inject(DOCUMENT)) =>\n (size: number): void =>\n documentElement.style.setProperty(\n '--tui-font-offset',\n `${tuiClamp(size, 17, 28) - 17}px`,\n ),\n };\n}\n","const KEYS: readonly string[] = [\n 'Spacebar',\n 'Backspace',\n 'Delete',\n 'ArrowLeft',\n 'ArrowRight',\n 'Left',\n 'Right',\n 'End',\n 'Home',\n];\n\n/**\n * Check if pressed key is interactive in terms of input field\n */\nexport function tuiIsEditingKey(key = ''): boolean {\n return key.length === 1 || KEYS.includes(key);\n}\n","import {tuiGetElementObscures} from '@taiga-ui/cdk/utils/dom';\n\n/**\n * @internal\n */\nexport function tuiIsObscured(el: HTMLElement, exceptSelector = 'tui-hints'): boolean {\n return !!tuiGetElementObscures(el)?.some((el) => !el.closest(exceptSelector));\n}\n","export function tuiOverrideOptions<T>(\n override: Partial<T>,\n fallback: T,\n): (directive: T | null, options: T | null) => T {\n return (directive, options) => {\n const result: T = directive || {...(options || fallback)};\n\n Object.keys(override).forEach((key) => {\n // Update directive props with new defaults before inputs are processed\n (result as Record<string, unknown>)[key] = override[key as keyof T];\n });\n\n return result;\n };\n}\n","import {DOCUMENT} from '@angular/common';\nimport {\n effect,\n type EnvironmentProviders,\n inject,\n InjectionToken,\n provideAppInitializer,\n type Provider,\n} from '@angular/core';\nimport {REMOVE_STYLES_ON_COMPONENT_DESTROY} from '@angular/platform-browser';\nimport {tuiIsPresent} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TUI_DARK_MODE} from '@taiga-ui/core/tokens';\nimport {provideEventPlugins} from '@taiga-ui/event-plugins';\n\nimport {tuiEnableFontScaling} from './font-scaling';\n\ninterface ExperimentalAPIs {\n readonly all: boolean;\n}\n\nexport interface TuiOptions {\n readonly mode?: 'dark' | 'light';\n readonly apis: Partial<ExperimentalAPIs> | 'stable';\n readonly fontScaling: boolean;\n readonly scrollbars: 'custom' | 'native';\n}\n\nconst DEFAULT: TuiOptions = {\n apis: 'stable',\n fontScaling: true,\n scrollbars: 'custom',\n};\n\nexport const TUI_OPTIONS = new InjectionToken<TuiOptions>(ngDevMode ? 'TUI_OPTIONS' : '');\n\nexport function provideTaiga(\n config: Partial<TuiOptions> = {},\n): Array<EnvironmentProviders | Provider> {\n const options = {...DEFAULT, ...config};\n const providers: Array<EnvironmentProviders | Provider> = [\n {\n provide: REMOVE_STYLES_ON_COMPONENT_DESTROY,\n useValue: false,\n },\n {\n provide: TUI_OPTIONS,\n useValue: options,\n },\n provideEventPlugins(),\n provideAppInitializer(() => {\n const doc = inject(DOCUMENT);\n const mode = inject(TUI_DARK_MODE);\n\n if (options.scrollbars === 'custom') {\n doc.documentElement.classList.add('tui-zero-scrollbar');\n }\n\n if (tuiIsPresent(options.mode)) {\n mode.set(options.mode === 'dark');\n }\n\n effect(() => {\n if (mode()) {\n doc.body.setAttribute('tuiTheme', 'dark');\n } else {\n doc.body.removeAttribute('tuiTheme');\n }\n });\n }),\n ];\n\n if (options.fontScaling) {\n providers.push(tuiEnableFontScaling());\n }\n\n return providers;\n}\n","import {type TuiSizeXXL, type TuiSizeXXS} from '@taiga-ui/core/types';\n\nconst SIZES: Record<TuiSizeXXL | TuiSizeXXS, number> = {\n xxs: 0,\n xs: 1,\n s: 2,\n m: 3,\n l: 4,\n xl: 5,\n xxl: 6,\n};\n\n/**\n * Compares size constants to determine if first size is bigger than the second\n *\n * @param size size that we need to compare\n * @param biggerThanSize size to compare with, 's' by default\n */\nexport function tuiSizeBigger(\n size: TuiSizeXXL | TuiSizeXXS,\n biggerThanSize: TuiSizeXXL | TuiSizeXXS = 's',\n): boolean {\n return SIZES[size] > SIZES[biggerThanSize];\n}\n","import {type AnimationOptions} from '@angular/animations';\nimport {inject} from '@angular/core';\nimport {TUI_ANIMATIONS_SPEED} from '@taiga-ui/core/tokens';\n\nexport const TUI_ANIMATIONS_DEFAULT_DURATION = 300;\n\nexport function tuiToAnimationOptions(\n speed: number = inject(TUI_ANIMATIONS_SPEED),\n easing?: string,\n): AnimationOptions {\n return {\n value: '',\n params: {\n duration: tuiGetDuration(speed),\n easing,\n },\n } as unknown as AnimationOptions;\n}\n\nexport function tuiGetDuration(speed: number): number {\n return speed && TUI_ANIMATIONS_DEFAULT_DURATION / speed;\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-utils-miscellaneous.mjs","sources":["../../../projects/core/utils/miscellaneous/font-scaling.ts","../../../projects/core/utils/miscellaneous/is-editing-key.ts","../../../projects/core/utils/miscellaneous/is-obscured.ts","../../../projects/core/utils/miscellaneous/override-options.ts","../../../projects/core/utils/miscellaneous/provide-taiga.ts","../../../projects/core/utils/miscellaneous/size-bigger.ts","../../../projects/core/utils/miscellaneous/to-animation-options.ts","../../../projects/core/utils/miscellaneous/taiga-ui-core-utils-miscellaneous.ts"],"sourcesContent":["import {DOCUMENT} from '@angular/common';\nimport {inject, type Provider} from '@angular/core';\nimport {TUI_FONT_SIZE_HANDLER} from '@taiga-ui/cdk/directives/font-size';\nimport {tuiClamp} from '@taiga-ui/cdk/utils/math';\n\nexport function tuiEnableFontScaling(): Provider {\n return {\n provide: TUI_FONT_SIZE_HANDLER,\n useFactory:\n ({documentElement} = inject(DOCUMENT)) =>\n (size: number): void =>\n documentElement.style.setProperty(\n '--tui-font-offset',\n `${tuiClamp(size, 17, 28) - 17}px`,\n ),\n };\n}\n","const KEYS: readonly string[] = [\n 'Spacebar',\n 'Backspace',\n 'Delete',\n 'ArrowLeft',\n 'ArrowRight',\n 'Left',\n 'Right',\n 'End',\n 'Home',\n];\n\n/**\n * Check if pressed key is interactive in terms of input field\n */\nexport function tuiIsEditingKey(key = ''): boolean {\n return key.length === 1 || KEYS.includes(key);\n}\n","import {tuiGetElementObscures} from '@taiga-ui/cdk/utils/dom';\n\n/**\n * @internal\n */\nexport function tuiIsObscured(el: HTMLElement, exceptSelector = 'tui-popups'): boolean {\n return !!tuiGetElementObscures(el)?.some((el) => !el.closest(exceptSelector));\n}\n","export function tuiOverrideOptions<T>(\n override: Partial<T>,\n fallback: T,\n): (directive: T | null, options: T | null) => T {\n return (directive, options) => {\n const result: T = directive || {...(options || fallback)};\n\n Object.keys(override).forEach((key) => {\n // Update directive props with new defaults before inputs are processed\n (result as Record<string, unknown>)[key] = override[key as keyof T];\n });\n\n return result;\n };\n}\n","import {DOCUMENT} from '@angular/common';\nimport {\n effect,\n type EnvironmentProviders,\n inject,\n InjectionToken,\n provideAppInitializer,\n type Provider,\n} from '@angular/core';\nimport {REMOVE_STYLES_ON_COMPONENT_DESTROY} from '@angular/platform-browser';\nimport {tuiIsPresent} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TUI_DARK_MODE} from '@taiga-ui/core/tokens';\nimport {provideEventPlugins} from '@taiga-ui/event-plugins';\n\nimport {tuiEnableFontScaling} from './font-scaling';\n\ninterface ExperimentalAPIs {\n readonly all: boolean;\n}\n\nexport interface TuiOptions {\n readonly mode?: 'dark' | 'light';\n readonly apis: Partial<ExperimentalAPIs> | 'stable';\n readonly fontScaling: boolean;\n readonly scrollbars: 'custom' | 'native';\n}\n\nconst DEFAULT: TuiOptions = {\n apis: 'stable',\n fontScaling: true,\n scrollbars: 'custom',\n};\n\nexport const TUI_OPTIONS = new InjectionToken<TuiOptions>(ngDevMode ? 'TUI_OPTIONS' : '');\n\nexport function provideTaiga(\n config: Partial<TuiOptions> = {},\n): Array<EnvironmentProviders | Provider> {\n const options = {...DEFAULT, ...config};\n const providers: Array<EnvironmentProviders | Provider> = [\n {\n provide: REMOVE_STYLES_ON_COMPONENT_DESTROY,\n useValue: false,\n },\n {\n provide: TUI_OPTIONS,\n useValue: options,\n },\n provideEventPlugins(),\n provideAppInitializer(() => {\n const doc = inject(DOCUMENT);\n const mode = inject(TUI_DARK_MODE);\n\n if (options.scrollbars === 'custom') {\n doc.documentElement.classList.add('tui-zero-scrollbar');\n }\n\n if (tuiIsPresent(options.mode)) {\n mode.set(options.mode === 'dark');\n }\n\n effect(() => {\n if (mode()) {\n doc.body.setAttribute('tuiTheme', 'dark');\n } else {\n doc.body.removeAttribute('tuiTheme');\n }\n });\n }),\n ];\n\n if (options.fontScaling) {\n providers.push(tuiEnableFontScaling());\n }\n\n return providers;\n}\n","import {type TuiSizeXXL, type TuiSizeXXS} from '@taiga-ui/core/types';\n\nconst SIZES: Record<TuiSizeXXL | TuiSizeXXS, number> = {\n xxs: 0,\n xs: 1,\n s: 2,\n m: 3,\n l: 4,\n xl: 5,\n xxl: 6,\n};\n\n/**\n * Compares size constants to determine if first size is bigger than the second\n *\n * @param size size that we need to compare\n * @param biggerThanSize size to compare with, 's' by default\n */\nexport function tuiSizeBigger(\n size: TuiSizeXXL | TuiSizeXXS,\n biggerThanSize: TuiSizeXXL | TuiSizeXXS = 's',\n): boolean {\n return SIZES[size] > SIZES[biggerThanSize];\n}\n","import {type AnimationOptions} from '@angular/animations';\nimport {inject} from '@angular/core';\nimport {TUI_ANIMATIONS_SPEED} from '@taiga-ui/core/tokens';\n\nexport const TUI_ANIMATIONS_DEFAULT_DURATION = 300;\n\nexport function tuiToAnimationOptions(\n speed: number = inject(TUI_ANIMATIONS_SPEED),\n easing?: string,\n): AnimationOptions {\n return {\n value: '',\n params: {\n duration: tuiGetDuration(speed),\n easing,\n },\n } as unknown as AnimationOptions;\n}\n\nexport function tuiGetDuration(speed: number): number {\n return speed && TUI_ANIMATIONS_DEFAULT_DURATION / speed;\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.52.0-canary.6be767f",
3
+ "version": "4.52.0-canary.831274e",
4
4
  "description": "Core library for creating Angular components and applications using Taiga UI",
5
5
  "keywords": [
6
6
  "angular",
@@ -111,6 +111,10 @@
111
111
  "types": "./components/loader/index.d.ts",
112
112
  "default": "./fesm2022/taiga-ui-core-components-loader.mjs"
113
113
  },
114
+ "./components/modal": {
115
+ "types": "./components/modal/index.d.ts",
116
+ "default": "./fesm2022/taiga-ui-core-components-modal.mjs"
117
+ },
114
118
  "./components/notification": {
115
119
  "types": "./components/notification/index.d.ts",
116
120
  "default": "./fesm2022/taiga-ui-core-components-notification.mjs"
@@ -159,6 +163,10 @@
159
163
  "types": "./directives/items-handlers/index.d.ts",
160
164
  "default": "./fesm2022/taiga-ui-core-directives-items-handlers.mjs"
161
165
  },
166
+ "./directives/notification": {
167
+ "types": "./directives/notification/index.d.ts",
168
+ "default": "./fesm2022/taiga-ui-core-directives-notification.mjs"
169
+ },
162
170
  "./directives/number-format": {
163
171
  "types": "./directives/number-format/index.d.ts",
164
172
  "default": "./fesm2022/taiga-ui-core-directives-number-format.mjs"
@@ -179,14 +187,14 @@
179
187
  "types": "./pipes/calendar-sheet/index.d.ts",
180
188
  "default": "./fesm2022/taiga-ui-core-pipes-calendar-sheet.mjs"
181
189
  },
182
- "./pipes/flag": {
183
- "types": "./pipes/flag/index.d.ts",
184
- "default": "./fesm2022/taiga-ui-core-pipes-flag.mjs"
185
- },
186
190
  "./pipes/format-date": {
187
191
  "types": "./pipes/format-date/index.d.ts",
188
192
  "default": "./fesm2022/taiga-ui-core-pipes-format-date.mjs"
189
193
  },
194
+ "./pipes/flag": {
195
+ "types": "./pipes/flag/index.d.ts",
196
+ "default": "./fesm2022/taiga-ui-core-pipes-flag.mjs"
197
+ },
190
198
  "./pipes/format-number": {
191
199
  "types": "./pipes/format-number/index.d.ts",
192
200
  "default": "./fesm2022/taiga-ui-core-pipes-format-number.mjs"
package/tokens/i18n.d.ts CHANGED
@@ -2,28 +2,28 @@ import { InjectionToken } from '@angular/core';
2
2
  /**
3
3
  * Localized months names
4
4
  */
5
- export declare const TUI_MONTHS: InjectionToken<import("rxjs").Observable<readonly [January: string, February: string, March: string, April: string, May: string, June: string, July: string, August: string, September: string, October: string, November: string, December: string]>>;
5
+ export declare const TUI_MONTHS: InjectionToken<import("@angular/core").Signal<readonly [January: string, February: string, March: string, April: string, May: string, June: string, July: string, August: string, September: string, October: string, November: string, December: string]>>;
6
6
  /**
7
7
  * i18n 'close' word
8
8
  */
9
- export declare const TUI_CLOSE_WORD: InjectionToken<import("rxjs").Observable<string>>;
9
+ export declare const TUI_CLOSE_WORD: InjectionToken<import("@angular/core").Signal<string>>;
10
10
  /**
11
11
  * i18n 'clear' word
12
12
  */
13
- export declare const TUI_CLEAR_WORD: InjectionToken<import("rxjs").Observable<string>>;
13
+ export declare const TUI_CLEAR_WORD: InjectionToken<import("@angular/core").Signal<string>>;
14
14
  /**
15
15
  * i18n 'Nothing found' message
16
16
  */
17
- export declare const TUI_NOTHING_FOUND_MESSAGE: InjectionToken<import("rxjs").Observable<string>>;
17
+ export declare const TUI_NOTHING_FOUND_MESSAGE: InjectionToken<import("@angular/core").Signal<string>>;
18
18
  /**
19
19
  * i18n of error message
20
20
  */
21
- export declare const TUI_DEFAULT_ERROR_MESSAGE: InjectionToken<import("rxjs").Observable<string>>;
21
+ export declare const TUI_DEFAULT_ERROR_MESSAGE: InjectionToken<import("@angular/core").Signal<string>>;
22
22
  /**
23
23
  * spin i18n texts
24
24
  */
25
- export declare const TUI_SPIN_TEXTS: InjectionToken<import("rxjs").Observable<readonly [previous: string, next: string]>>;
25
+ export declare const TUI_SPIN_TEXTS: InjectionToken<import("@angular/core").Signal<readonly [previous: string, next: string]>>;
26
26
  /**
27
27
  * calendars i18n texts
28
28
  */
29
- export declare const TUI_SHORT_WEEK_DAYS: InjectionToken<import("rxjs").Observable<readonly [Monday: string, Tuesday: string, Wednesday: string, Thursday: string, Friday: string, Saturday: string, Sunday: string]>>;
29
+ export declare const TUI_SHORT_WEEK_DAYS: InjectionToken<import("@angular/core").Signal<readonly [Monday: string, Tuesday: string, Wednesday: string, Thursday: string, Friday: string, Saturday: string, Sunday: string]>>;
package/types/index.d.ts CHANGED
@@ -2,7 +2,6 @@ export type * from './direction';
2
2
  export type * from './interactive-state';
3
3
  export type * from './orientation';
4
4
  export type * from './point';
5
- export type * from './portal-item';
6
5
  export type * from './range-state';
7
6
  export type * from './size';
8
7
  export type * from './value-content-context';
@@ -1,12 +0,0 @@
1
- import { Injector, type Type } from '@angular/core';
2
- import { type TuiMapper } from '@taiga-ui/cdk/types';
3
- import { identity } from 'rxjs';
4
- import * as i0 from "@angular/core";
5
- export declare class TuiAlerts {
6
- private readonly injector;
7
- protected readonly alerts$: import("rxjs").Observable<(readonly any[])[]>;
8
- protected readonly trackBy: typeof identity;
9
- protected readonly mapper: TuiMapper<[Type<any>], Injector>;
10
- static ɵfac: i0.ɵɵFactoryDeclaration<TuiAlerts, never>;
11
- static ɵcmp: i0.ɵɵComponentDeclaration<TuiAlerts, "tui-alerts", never, {}, {}, never, never, true, never>;
12
- }
@@ -1,6 +0,0 @@
1
- import { TuiPortalService } from '@taiga-ui/cdk/portals';
2
- import * as i0 from "@angular/core";
3
- export declare class TuiDropdownService extends TuiPortalService {
4
- static ɵfac: i0.ɵɵFactoryDeclaration<TuiDropdownService, never>;
5
- static ɵprov: i0.ɵɵInjectableDeclaration<TuiDropdownService>;
6
- }
@@ -1,9 +0,0 @@
1
- import { TuiPortals } from '@taiga-ui/cdk/portals';
2
- import * as i0 from "@angular/core";
3
- /**
4
- * Host element for dynamically created portals, for example using {@link TuiDropdownDirective}.
5
- */
6
- export declare class TuiDropdowns extends TuiPortals {
7
- static ɵfac: i0.ɵɵFactoryDeclaration<TuiDropdowns, never>;
8
- static ɵcmp: i0.ɵɵComponentDeclaration<TuiDropdowns, "tui-dropdowns", never, {}, {}, never, never, true, never>;
9
- }
@@ -1,13 +0,0 @@
1
- import { type TuiPortalItem } from '@taiga-ui/core/types';
2
- import { BehaviorSubject } from 'rxjs';
3
- import * as i0 from "@angular/core";
4
- /**
5
- * Service for displaying hints/tooltips
6
- */
7
- export declare class TuiHintService extends BehaviorSubject<readonly TuiPortalItem[]> {
8
- constructor();
9
- add(directive: TuiPortalItem): void;
10
- remove(directive: TuiPortalItem): void;
11
- static ɵfac: i0.ɵɵFactoryDeclaration<TuiHintService, never>;
12
- static ɵprov: i0.ɵɵInjectableDeclaration<TuiHintService>;
13
- }
@@ -1,12 +0,0 @@
1
- import { type OnInit } from '@angular/core';
2
- import { type TuiPortalItem } from '@taiga-ui/core/types';
3
- import * as i0 from "@angular/core";
4
- export declare class TuiHints implements OnInit {
5
- private readonly hints$;
6
- private readonly destroyRef;
7
- private readonly cdr;
8
- protected hints: readonly TuiPortalItem[];
9
- ngOnInit(): void;
10
- static ɵfac: i0.ɵɵFactoryDeclaration<TuiHints, never>;
11
- static ɵcmp: i0.ɵɵComponentDeclaration<TuiHints, "tui-hints", never, {}, {}, never, never, true, never>;
12
- }
@@ -1,9 +0,0 @@
1
- import { type TuiActiveZone } from '@taiga-ui/cdk/directives/active-zone';
2
- import { type PolymorpheusComponent, type PolymorpheusContent } from '@taiga-ui/polymorpheus';
3
- export interface TuiPortalItem<C = any> {
4
- readonly activeZone?: TuiActiveZone | null;
5
- readonly appearance?: string;
6
- readonly component: PolymorpheusComponent<any>;
7
- readonly content: PolymorpheusContent<C>;
8
- readonly context?: C;
9
- }