@taiga-ui/core 4.52.0-canary.24b31eb → 4.52.0-canary.2c75afa

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 (166) hide show
  1. package/classes/accessors.d.ts +1 -1
  2. package/components/alert/alert.component.d.ts +5 -6
  3. package/components/alert/alert.directive.d.ts +4 -3
  4. package/components/alert/alert.interfaces.d.ts +6 -6
  5. package/components/alert/alert.service.d.ts +6 -2
  6. package/components/alert/alert.tokens.d.ts +1 -7
  7. package/components/alert/index.d.ts +0 -1
  8. package/components/data-list/data-list.component.d.ts +1 -1
  9. package/components/dialog/dialog.component.d.ts +3 -4
  10. package/components/dialog/dialog.directive.d.ts +4 -3
  11. package/components/dialog/dialog.options.d.ts +2 -3
  12. package/components/dialog/dialog.providers.d.ts +1 -2
  13. package/components/dialog/dialog.service.d.ts +5 -2
  14. package/components/dialog/index.d.ts +0 -1
  15. package/components/error/error.component.d.ts +1 -1
  16. package/components/index.d.ts +1 -1
  17. package/components/link/link.directive.d.ts +2 -2
  18. package/components/loader/loader.component.d.ts +7 -7
  19. package/components/modal/index.d.ts +2 -0
  20. package/components/modal/modal.component.d.ts +17 -0
  21. package/components/modal/modal.service.d.ts +13 -0
  22. package/components/notification/notification.directive.d.ts +6 -11
  23. package/components/root/root.component.d.ts +1 -1
  24. package/components/scrollbar/scroll-into-view.directive.d.ts +3 -2
  25. package/components/scrollbar/scrollbar.component.d.ts +2 -2
  26. package/components/scrollbar/scrollbar.directive.d.ts +2 -2
  27. package/components/spin-button/spin-button.component.d.ts +8 -9
  28. package/components/textfield/index.d.ts +1 -3
  29. package/components/textfield/textfield-multi/textfield-multi.component.d.ts +5 -6
  30. package/components/textfield/textfield.component.d.ts +5 -7
  31. package/components/textfield/textfield.d.ts +2 -3
  32. package/components/textfield/textfield.directive.d.ts +10 -13
  33. package/components/textfield/textfield.options.d.ts +8 -11
  34. package/directives/appearance/appearance.directive.d.ts +1 -1
  35. package/directives/appearance/appearance.options.d.ts +1 -1
  36. package/directives/date-format/date-format.directive.d.ts +3 -7
  37. package/directives/dropdown/dropdown-content.directive.d.ts +9 -0
  38. package/directives/dropdown/dropdown-position.directive.d.ts +1 -1
  39. package/directives/dropdown/dropdown.d.ts +2 -2
  40. package/directives/dropdown/dropdown.directive.d.ts +1 -2
  41. package/directives/dropdown/index.d.ts +1 -3
  42. package/directives/hint/hint-describe.directive.d.ts +4 -6
  43. package/directives/hint/hint-host.directive.d.ts +2 -2
  44. package/directives/hint/hint-hover.directive.d.ts +3 -4
  45. package/directives/hint/hint-manual.directive.d.ts +2 -2
  46. package/directives/hint/hint-options.directive.d.ts +1 -1
  47. package/directives/hint/hint-overflow.directive.d.ts +2 -2
  48. package/directives/hint/hint-position.directive.d.ts +4 -5
  49. package/directives/hint/hint-unstyled.component.d.ts +2 -7
  50. package/directives/hint/hint.component.d.ts +7 -6
  51. package/directives/hint/hint.directive.d.ts +9 -11
  52. package/directives/hint/index.d.ts +0 -2
  53. package/directives/index.d.ts +1 -0
  54. package/directives/notification/index.d.ts +2 -0
  55. package/directives/notification/notification.directive.d.ts +11 -0
  56. package/directives/notification/notification.service.d.ts +12 -0
  57. package/directives/number-format/number-format.directive.d.ts +3 -7
  58. package/directives/popup/popup.directive.d.ts +6 -5
  59. package/directives/popup/popup.service.d.ts +1 -1
  60. package/directives/popup/popups.component.d.ts +2 -2
  61. package/fesm2022/taiga-ui-core-classes.mjs +1 -1
  62. package/fesm2022/taiga-ui-core-classes.mjs.map +1 -1
  63. package/fesm2022/taiga-ui-core-components-alert.mjs +57 -96
  64. package/fesm2022/taiga-ui-core-components-alert.mjs.map +1 -1
  65. package/fesm2022/taiga-ui-core-components-button.mjs.map +1 -1
  66. package/fesm2022/taiga-ui-core-components-calendar.mjs +7 -8
  67. package/fesm2022/taiga-ui-core-components-calendar.mjs.map +1 -1
  68. package/fesm2022/taiga-ui-core-components-cell.mjs.map +1 -1
  69. package/fesm2022/taiga-ui-core-components-data-list.mjs +4 -11
  70. package/fesm2022/taiga-ui-core-components-data-list.mjs.map +1 -1
  71. package/fesm2022/taiga-ui-core-components-dialog.mjs +34 -91
  72. package/fesm2022/taiga-ui-core-components-dialog.mjs.map +1 -1
  73. package/fesm2022/taiga-ui-core-components-error.mjs +2 -2
  74. package/fesm2022/taiga-ui-core-components-error.mjs.map +1 -1
  75. package/fesm2022/taiga-ui-core-components-expand.mjs.map +1 -1
  76. package/fesm2022/taiga-ui-core-components-icon.mjs +1 -2
  77. package/fesm2022/taiga-ui-core-components-icon.mjs.map +1 -1
  78. package/fesm2022/taiga-ui-core-components-label.mjs.map +1 -1
  79. package/fesm2022/taiga-ui-core-components-link.mjs +7 -9
  80. package/fesm2022/taiga-ui-core-components-link.mjs.map +1 -1
  81. package/fesm2022/taiga-ui-core-components-loader.mjs +12 -25
  82. package/fesm2022/taiga-ui-core-components-loader.mjs.map +1 -1
  83. package/fesm2022/taiga-ui-core-components-modal.mjs +89 -0
  84. package/fesm2022/taiga-ui-core-components-modal.mjs.map +1 -0
  85. package/fesm2022/taiga-ui-core-components-notification.mjs +12 -28
  86. package/fesm2022/taiga-ui-core-components-notification.mjs.map +1 -1
  87. package/fesm2022/taiga-ui-core-components-root.mjs +3 -14
  88. package/fesm2022/taiga-ui-core-components-root.mjs.map +1 -1
  89. package/fesm2022/taiga-ui-core-components-scrollbar.mjs +35 -43
  90. package/fesm2022/taiga-ui-core-components-scrollbar.mjs.map +1 -1
  91. package/fesm2022/taiga-ui-core-components-spin-button.mjs +14 -27
  92. package/fesm2022/taiga-ui-core-components-spin-button.mjs.map +1 -1
  93. package/fesm2022/taiga-ui-core-components-textfield.mjs +127 -271
  94. package/fesm2022/taiga-ui-core-components-textfield.mjs.map +1 -1
  95. package/fesm2022/taiga-ui-core-components.mjs +1 -1
  96. package/fesm2022/taiga-ui-core-directives-appearance.mjs +0 -1
  97. package/fesm2022/taiga-ui-core-directives-appearance.mjs.map +1 -1
  98. package/fesm2022/taiga-ui-core-directives-date-format.mjs +24 -18
  99. package/fesm2022/taiga-ui-core-directives-date-format.mjs.map +1 -1
  100. package/fesm2022/taiga-ui-core-directives-dropdown.mjs +44 -104
  101. package/fesm2022/taiga-ui-core-directives-dropdown.mjs.map +1 -1
  102. package/fesm2022/taiga-ui-core-directives-group.mjs.map +1 -1
  103. package/fesm2022/taiga-ui-core-directives-hint.mjs +98 -189
  104. package/fesm2022/taiga-ui-core-directives-hint.mjs.map +1 -1
  105. package/fesm2022/taiga-ui-core-directives-icons.mjs +0 -1
  106. package/fesm2022/taiga-ui-core-directives-icons.mjs.map +1 -1
  107. package/fesm2022/taiga-ui-core-directives-items-handlers.mjs +2 -5
  108. package/fesm2022/taiga-ui-core-directives-items-handlers.mjs.map +1 -1
  109. package/fesm2022/taiga-ui-core-directives-notification.mjs +73 -0
  110. package/fesm2022/taiga-ui-core-directives-notification.mjs.map +1 -0
  111. package/fesm2022/taiga-ui-core-directives-number-format.mjs +30 -18
  112. package/fesm2022/taiga-ui-core-directives-number-format.mjs.map +1 -1
  113. package/fesm2022/taiga-ui-core-directives-popup.mjs +13 -20
  114. package/fesm2022/taiga-ui-core-directives-popup.mjs.map +1 -1
  115. package/fesm2022/taiga-ui-core-directives-title.mjs.map +1 -1
  116. package/fesm2022/taiga-ui-core-directives.mjs +1 -0
  117. package/fesm2022/taiga-ui-core-directives.mjs.map +1 -1
  118. package/fesm2022/taiga-ui-core-pipes-auto-color.mjs +0 -1
  119. package/fesm2022/taiga-ui-core-pipes-auto-color.mjs.map +1 -1
  120. package/fesm2022/taiga-ui-core-pipes-calendar-sheet.mjs +0 -1
  121. package/fesm2022/taiga-ui-core-pipes-calendar-sheet.mjs.map +1 -1
  122. package/fesm2022/taiga-ui-core-pipes-flag.mjs +0 -1
  123. package/fesm2022/taiga-ui-core-pipes-flag.mjs.map +1 -1
  124. package/fesm2022/taiga-ui-core-pipes-format-date.mjs +0 -1
  125. package/fesm2022/taiga-ui-core-pipes-format-date.mjs.map +1 -1
  126. package/fesm2022/taiga-ui-core-pipes-format-number.mjs +21 -12
  127. package/fesm2022/taiga-ui-core-pipes-format-number.mjs.map +1 -1
  128. package/fesm2022/taiga-ui-core-pipes-initials.mjs +0 -1
  129. package/fesm2022/taiga-ui-core-pipes-initials.mjs.map +1 -1
  130. package/fesm2022/taiga-ui-core-pipes-month.mjs +2 -2
  131. package/fesm2022/taiga-ui-core-pipes-month.mjs.map +1 -1
  132. package/fesm2022/taiga-ui-core-pipes-order-week-days.mjs +0 -1
  133. package/fesm2022/taiga-ui-core-pipes-order-week-days.mjs.map +1 -1
  134. package/fesm2022/taiga-ui-core-tokens.mjs +19 -9
  135. package/fesm2022/taiga-ui-core-tokens.mjs.map +1 -1
  136. package/fesm2022/taiga-ui-core-utils-format.mjs +1 -0
  137. package/fesm2022/taiga-ui-core-utils-format.mjs.map +1 -1
  138. package/fesm2022/taiga-ui-core-utils-miscellaneous.mjs +1 -1
  139. package/fesm2022/taiga-ui-core-utils-miscellaneous.mjs.map +1 -1
  140. package/package.json +13 -6
  141. package/pipes/format-number/format-number.pipe.d.ts +5 -3
  142. package/styles/components/link.less +1 -0
  143. package/styles/mixins/appearance.less +1 -1
  144. package/styles/mixins/mixins.less +0 -5
  145. package/styles/mixins/mixins.scss +0 -5
  146. package/styles/mixins/slider.less +24 -14
  147. package/styles/theme/variables.less +2 -4
  148. package/tokens/date-format.d.ts +2 -3
  149. package/tokens/i18n.d.ts +7 -7
  150. package/tokens/number-format.d.ts +2 -3
  151. package/types/index.d.ts +0 -1
  152. package/components/alert/alerts.component.d.ts +0 -12
  153. package/components/dialog/active-zone-adapter.directive.d.ts +0 -11
  154. package/components/dialog/dialogs.component.d.ts +0 -8
  155. package/components/header/header.directive.d.ts +0 -17
  156. package/components/header/index.d.ts +0 -1
  157. package/components/textfield/select.directive.d.ts +0 -19
  158. package/components/textfield/textfield-dropdown.directive.d.ts +0 -16
  159. package/directives/dropdown/dropdown-portal.directive.d.ts +0 -14
  160. package/directives/dropdown/dropdown.service.d.ts +0 -6
  161. package/directives/dropdown/dropdowns.component.d.ts +0 -9
  162. package/directives/hint/hint.service.d.ts +0 -13
  163. package/directives/hint/hints.component.d.ts +0 -12
  164. package/fesm2022/taiga-ui-core-components-header.mjs +0 -42
  165. package/fesm2022/taiga-ui-core-components-header.mjs.map +0 -1
  166. package/types/portal-item.d.ts +0 -9
@@ -78,6 +78,7 @@ function tuiFormatNumber(value, settings = {}) {
78
78
  return fractionPartPadded ? result + decimalSeparator + fractionPartPadded : result;
79
79
  }
80
80
 
81
+ /* eslint-disable no-bitwise */
81
82
  /**
82
83
  * Converts a string to an HSL color
83
84
  * @param value string to convert
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-core-utils-format.mjs","sources":["../../../projects/core/utils/format/number-to-string-without-exp.ts","../../../projects/core/utils/format/get-fractional-part-padded.ts","../../../projects/core/utils/format/format-number.ts","../../../projects/core/utils/format/string-hash-to-hsl.ts","../../../projects/core/utils/format/taiga-ui-core-utils-format.ts"],"sourcesContent":["/**\n * Convert number to string with replacing exponent part on decimals\n *\n * @param value the number\n * @return string representation of a number\n */\nexport function tuiNumberToStringWithoutExp(value: number): string {\n const valueAsString = String(value);\n const [numberPart, expPart] = valueAsString.split('e-');\n\n let valueWithoutExp = valueAsString;\n\n if (expPart) {\n const [, fractionalPart = ''] = numberPart?.split('.') ?? [];\n const decimalDigits = Number(expPart) + (fractionalPart?.length || 0);\n\n valueWithoutExp = value.toFixed(decimalDigits);\n }\n\n return valueWithoutExp;\n}\n","import {tuiIsNumber} from '@taiga-ui/cdk/utils/miscellaneous';\n\nimport {tuiNumberToStringWithoutExp} from './number-to-string-without-exp';\n\n/**\n * Return fractional part of number\n *\n * @param value the number\n * @param precision number of digits of decimal part, null to keep untouched\n * @return the fractional part of number\n */\nexport function tuiGetFractionPartPadded(\n value: number,\n precision?: number | null,\n): string {\n const [, fractionPartPadded = ''] = tuiNumberToStringWithoutExp(value).split('.');\n\n return tuiIsNumber(precision)\n ? fractionPartPadded.slice(0, Math.max(0, precision))\n : fractionPartPadded;\n}\n","import {CHAR_HYPHEN} from '@taiga-ui/cdk/constants';\nimport {tuiRoundWith} from '@taiga-ui/cdk/utils/math';\nimport {\n TUI_DEFAULT_NUMBER_FORMAT,\n type TuiNumberFormatSettings,\n} from '@taiga-ui/core/tokens';\n\nimport {tuiGetFractionPartPadded} from './get-fractional-part-padded';\n\n/**\n * Formats number adding a thousand separators and correct decimal separator\n * padding decimal part with zeroes to given length\n *\n * @param value the input number\n * @param settings See {@link TuiNumberFormatSettings}\n * @return the formatted string\n */\nexport function tuiFormatNumber(\n value: number,\n settings: Partial<TuiNumberFormatSettings> = {},\n): string {\n const {precision, decimalSeparator, thousandSeparator, decimalMode, rounding} = {\n ...TUI_DEFAULT_NUMBER_FORMAT,\n decimalMode: 'always',\n precision: Infinity,\n ...settings,\n };\n\n const rounded = Number.isFinite(precision)\n ? tuiRoundWith({value, precision, method: rounding})\n : value;\n const integerPartString = String(Math.floor(Math.abs(rounded)));\n\n let fractionPartPadded = tuiGetFractionPartPadded(rounded, precision);\n const hasFraction = Number(fractionPartPadded) > 0;\n\n if (Number.isFinite(precision)) {\n if (decimalMode === 'always' || (hasFraction && decimalMode === 'pad')) {\n const zeroPaddingSize: number = Math.max(\n precision - fractionPartPadded.length,\n 0,\n );\n const zeroPartString = '0'.repeat(zeroPaddingSize);\n\n fractionPartPadded = `${fractionPartPadded}${zeroPartString}`;\n } else {\n fractionPartPadded = fractionPartPadded.replace(/0*$/, '');\n }\n }\n\n const remainder = integerPartString.length % 3;\n const sign = value < 0 ? CHAR_HYPHEN : '';\n let result = sign + integerPartString.charAt(0);\n\n for (let i = 1; i < integerPartString.length; i++) {\n if (i % 3 === remainder && integerPartString.length > 3) {\n result += thousandSeparator;\n }\n\n result += integerPartString.charAt(i);\n }\n\n return fractionPartPadded ? result + decimalSeparator + fractionPartPadded : result;\n}\n","/**\n * Converts a string to an HSL color\n * @param value string to convert\n * @return HSL color string\n */\n// @bad TODO: convert stringHashToHsl to stringHashToRgb\nexport function tuiStringHashToHsl(value: string): string {\n if (value === '') {\n return '';\n }\n\n let hash = 0;\n\n for (let i = 0; i < value.length; i++) {\n hash = value.charCodeAt(i) + ((hash << 5) - hash);\n hash &= hash;\n }\n\n const hue = hash % 360;\n const saturation = 60 + (hash % 5);\n const lightness = 80 + (hash % 5);\n\n return `hsl(${hue},${saturation}%,${lightness}%)`;\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-format.mjs","sources":["../../../projects/core/utils/format/number-to-string-without-exp.ts","../../../projects/core/utils/format/get-fractional-part-padded.ts","../../../projects/core/utils/format/format-number.ts","../../../projects/core/utils/format/string-hash-to-hsl.ts","../../../projects/core/utils/format/taiga-ui-core-utils-format.ts"],"sourcesContent":["/**\n * Convert number to string with replacing exponent part on decimals\n *\n * @param value the number\n * @return string representation of a number\n */\nexport function tuiNumberToStringWithoutExp(value: number): string {\n const valueAsString = String(value);\n const [numberPart, expPart] = valueAsString.split('e-');\n\n let valueWithoutExp = valueAsString;\n\n if (expPart) {\n const [, fractionalPart = ''] = numberPart?.split('.') ?? [];\n const decimalDigits = Number(expPart) + (fractionalPart?.length || 0);\n\n valueWithoutExp = value.toFixed(decimalDigits);\n }\n\n return valueWithoutExp;\n}\n","import {tuiIsNumber} from '@taiga-ui/cdk/utils/miscellaneous';\n\nimport {tuiNumberToStringWithoutExp} from './number-to-string-without-exp';\n\n/**\n * Return fractional part of number\n *\n * @param value the number\n * @param precision number of digits of decimal part, null to keep untouched\n * @return the fractional part of number\n */\nexport function tuiGetFractionPartPadded(\n value: number,\n precision?: number | null,\n): string {\n const [, fractionPartPadded = ''] = tuiNumberToStringWithoutExp(value).split('.');\n\n return tuiIsNumber(precision)\n ? fractionPartPadded.slice(0, Math.max(0, precision))\n : fractionPartPadded;\n}\n","import {CHAR_HYPHEN} from '@taiga-ui/cdk/constants';\nimport {tuiRoundWith} from '@taiga-ui/cdk/utils/math';\nimport {\n TUI_DEFAULT_NUMBER_FORMAT,\n type TuiNumberFormatSettings,\n} from '@taiga-ui/core/tokens';\n\nimport {tuiGetFractionPartPadded} from './get-fractional-part-padded';\n\n/**\n * Formats number adding a thousand separators and correct decimal separator\n * padding decimal part with zeroes to given length\n *\n * @param value the input number\n * @param settings See {@link TuiNumberFormatSettings}\n * @return the formatted string\n */\nexport function tuiFormatNumber(\n value: number,\n settings: Partial<TuiNumberFormatSettings> = {},\n): string {\n const {precision, decimalSeparator, thousandSeparator, decimalMode, rounding} = {\n ...TUI_DEFAULT_NUMBER_FORMAT,\n decimalMode: 'always',\n precision: Infinity,\n ...settings,\n };\n\n const rounded = Number.isFinite(precision)\n ? tuiRoundWith({value, precision, method: rounding})\n : value;\n const integerPartString = String(Math.floor(Math.abs(rounded)));\n\n let fractionPartPadded = tuiGetFractionPartPadded(rounded, precision);\n const hasFraction = Number(fractionPartPadded) > 0;\n\n if (Number.isFinite(precision)) {\n if (decimalMode === 'always' || (hasFraction && decimalMode === 'pad')) {\n const zeroPaddingSize: number = Math.max(\n precision - fractionPartPadded.length,\n 0,\n );\n const zeroPartString = '0'.repeat(zeroPaddingSize);\n\n fractionPartPadded = `${fractionPartPadded}${zeroPartString}`;\n } else {\n fractionPartPadded = fractionPartPadded.replace(/0*$/, '');\n }\n }\n\n const remainder = integerPartString.length % 3;\n const sign = value < 0 ? CHAR_HYPHEN : '';\n let result = sign + integerPartString.charAt(0);\n\n for (let i = 1; i < integerPartString.length; i++) {\n if (i % 3 === remainder && integerPartString.length > 3) {\n result += thousandSeparator;\n }\n\n result += integerPartString.charAt(i);\n }\n\n return fractionPartPadded ? result + decimalSeparator + fractionPartPadded : result;\n}\n","/* eslint-disable no-bitwise */\n/**\n * Converts a string to an HSL color\n * @param value string to convert\n * @return HSL color string\n */\n// @bad TODO: convert stringHashToHsl to stringHashToRgb\nexport function tuiStringHashToHsl(value: string): string {\n if (value === '') {\n return '';\n }\n\n let hash = 0;\n\n for (let i = 0; i < value.length; i++) {\n hash = value.charCodeAt(i) + ((hash << 5) - hash);\n hash &= hash;\n }\n\n const hue = hash % 360;\n const saturation = 60 + (hash % 5);\n const lightness = 80 + (hash % 5);\n\n return `hsl(${hue},${saturation}%,${lightness}%)`;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -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.24b31eb",
3
+ "version": "4.52.0-canary.2c75afa",
4
4
  "description": "Core library for creating Angular components and applications using Taiga UI",
5
5
  "keywords": [
6
6
  "angular",
@@ -12,7 +12,10 @@
12
12
  "directive"
13
13
  ],
14
14
  "homepage": "https://github.com/taiga-family/taiga-ui",
15
- "repository": "https://github.com/taiga-family/taiga-ui",
15
+ "repository": {
16
+ "type": "git",
17
+ "url": "https://github.com/taiga-family/taiga-ui"
18
+ },
16
19
  "license": "Apache-2.0",
17
20
  "exports": {
18
21
  "./styles/*": "./styles/*",
@@ -91,10 +94,6 @@
91
94
  "types": "./components/expand/index.d.ts",
92
95
  "default": "./fesm2022/taiga-ui-core-components-expand.mjs"
93
96
  },
94
- "./components/header": {
95
- "types": "./components/header/index.d.ts",
96
- "default": "./fesm2022/taiga-ui-core-components-header.mjs"
97
- },
98
97
  "./components/icon": {
99
98
  "types": "./components/icon/index.d.ts",
100
99
  "default": "./fesm2022/taiga-ui-core-components-icon.mjs"
@@ -111,6 +110,10 @@
111
110
  "types": "./components/loader/index.d.ts",
112
111
  "default": "./fesm2022/taiga-ui-core-components-loader.mjs"
113
112
  },
113
+ "./components/modal": {
114
+ "types": "./components/modal/index.d.ts",
115
+ "default": "./fesm2022/taiga-ui-core-components-modal.mjs"
116
+ },
114
117
  "./components/notification": {
115
118
  "types": "./components/notification/index.d.ts",
116
119
  "default": "./fesm2022/taiga-ui-core-components-notification.mjs"
@@ -159,6 +162,10 @@
159
162
  "types": "./directives/items-handlers/index.d.ts",
160
163
  "default": "./fesm2022/taiga-ui-core-directives-items-handlers.mjs"
161
164
  },
165
+ "./directives/notification": {
166
+ "types": "./directives/notification/index.d.ts",
167
+ "default": "./fesm2022/taiga-ui-core-directives-notification.mjs"
168
+ },
162
169
  "./directives/number-format": {
163
170
  "types": "./directives/number-format/index.d.ts",
164
171
  "default": "./fesm2022/taiga-ui-core-directives-number-format.mjs"
@@ -1,16 +1,18 @@
1
1
  import { type PipeTransform } from '@angular/core';
2
2
  import { type TuiNumberFormatSettings } from '@taiga-ui/core/tokens';
3
- import { type Observable } from 'rxjs';
4
3
  import * as i0 from "@angular/core";
5
4
  export declare class TuiFormatNumberPipe implements PipeTransform {
6
- private readonly numberFormat;
5
+ private readonly format;
6
+ private readonly value;
7
+ private readonly settings;
8
+ private readonly formatted;
7
9
  /**
8
10
  * Formats number adding thousand separators and correct decimal separator
9
11
  * padding decimal part with zeroes to given length
10
12
  * @param value number
11
13
  * @param settings See {@link TuiNumberFormatSettings}
12
14
  */
13
- transform(value: number, settings?: Partial<TuiNumberFormatSettings>): Observable<string>;
15
+ transform(value: number, settings?: Partial<TuiNumberFormatSettings>): string;
14
16
  static ɵfac: i0.ɵɵFactoryDeclaration<TuiFormatNumberPipe, never>;
15
17
  static ɵpipe: i0.ɵɵPipeDeclaration<TuiFormatNumberPipe, "tuiFormatNumber", true>;
16
18
  }
@@ -51,6 +51,7 @@
51
51
  line-height: 0;
52
52
  box-sizing: border-box;
53
53
  mask-size: calc(100% + 10 * var(--tui-stroke-width, 0.125rem)) 100%;
54
+ transition: none;
54
55
  }
55
56
 
56
57
  &[tuiChevron]::after {
@@ -24,7 +24,7 @@
24
24
 
25
25
  .appearance-active(@content) {
26
26
  .interactive({
27
- &:active:not(:disabled):not([data-state]) {
27
+ &:active:not([data-state]) {
28
28
  @content();
29
29
  }
30
30
  });
@@ -1,11 +1,6 @@
1
1
  @import 'browsers.less';
2
2
 
3
3
  .interactive(@ruleset) {
4
- // TODO remove after dropping Safari 13 support
5
- &:matches(a, button, select, textarea, input, label, .tui-interactive):not(:disabled) {
6
- @ruleset();
7
- }
8
-
9
4
  &:is(a, button, select, textarea, input, label, .tui-interactive):not(:disabled) {
10
5
  @ruleset();
11
6
  }
@@ -1,11 +1,6 @@
1
1
  @import 'browsers.scss';
2
2
 
3
3
  @mixin interactive {
4
- // TODO remove after dropping Safari 13 support
5
- &:matches(a, button, select, textarea, input, label, .tui-interactive):not(:disabled) {
6
- @content;
7
- }
8
-
9
4
  &:is(a, button, select, textarea, input, label, .tui-interactive):not(:disabled) {
10
5
  @content;
11
6
  }
@@ -1,7 +1,6 @@
1
1
  @thumb-diameters: {
2
2
  @s: 0.5rem;
3
3
  @m: 0.75rem;
4
- @l: 0.75rem;
5
4
  };
6
5
 
7
6
  @track-inset: {
@@ -10,9 +9,8 @@
10
9
  @l: 1rem;
11
10
  };
12
11
 
13
- // TODO(v5): use `l` by default (default size for new textfields)
14
- .tui-slider-ticks-labels(@input-size: m) {
15
- @thumb: @thumb-diameters[@@input-size];
12
+ .tui-slider-ticks-labels(@thumb-size: m) {
13
+ @thumb: @thumb-diameters[@@thumb-size];
16
14
 
17
15
  --t-offset: calc(@thumb / 2);
18
16
 
@@ -45,22 +43,34 @@
45
43
  }
46
44
  }
47
45
 
48
- /* TODO(v5): delete */
49
- tui-input-slider + & {
50
- margin-inline-start: calc(var(--tui-radius-m) / 2 + var(--t-offset));
51
- }
52
-
53
- tui-input-range:not([new]) + &, /* TODO(v5): delete */
54
46
  tui-range + & {
55
47
  --t-offset: @thumb;
56
48
  }
57
49
 
58
50
  /* TODO: add :has([tuiInputSlider]) */
59
- tui-textfield + & {
60
- --t-offset: calc(@track-inset[@@input-size] + @thumb / 2);
51
+ tui-textfield[data-size='l'] + & {
52
+ --t-offset: calc(@track-inset[@l] + @thumb / 2);
53
+ }
54
+
55
+ /* TODO: add :has([tuiInputSlider]) */
56
+ tui-textfield[data-size='m'] + & {
57
+ --t-offset: calc(@track-inset[@m] + @thumb / 2);
58
+ }
59
+
60
+ /* TODO: add :has([tuiInputSlider]) */
61
+ tui-textfield[data-size='s'] + & {
62
+ --t-offset: calc(@track-inset[@s] + @thumb / 2);
63
+ }
64
+
65
+ tui-input-range[data-size='l'] + & {
66
+ --t-offset: calc(@track-inset[@l] + @thumb);
67
+ }
68
+
69
+ tui-input-range[data-size='m'] + & {
70
+ --t-offset: calc(@track-inset[@m] + @thumb);
61
71
  }
62
72
 
63
- tui-input-range[new] + & {
64
- --t-offset: calc(@track-inset[@@input-size] + @thumb);
73
+ tui-input-range[data-size='s'] + & {
74
+ --t-offset: calc(@track-inset[@s] + @thumb);
65
75
  }
66
76
  }
@@ -1,10 +1,8 @@
1
- @font-fallback: -apple-system, 'BlinkMacSystemFont', system-ui, 'Roboto', 'Segoe UI', 'Helvetica Neue', sans-serif;
2
-
3
1
  &:root,
4
2
  &:host {
5
3
  // Fonts
6
- --tui-font-heading: 'Manrope', @font-fallback;
7
- --tui-font-text: 'Manrope', @font-fallback;
4
+ --tui-font-heading: 'Manrope', system-ui, sans-serif;
5
+ --tui-font-text: 'Manrope', system-ui, sans-serif;
8
6
  --tui-font-offset: ~'0rem';
9
7
  // Heading
10
8
  --tui-font-heading-1: bold calc(var(--tui-font-offset) + 3.125rem) / 3.5rem var(--tui-font-heading);
@@ -1,6 +1,5 @@
1
- import { InjectionToken, type Provider } from '@angular/core';
1
+ import { InjectionToken, type Provider, type Signal } from '@angular/core';
2
2
  import { type TuiDateMode } from '@taiga-ui/cdk/date-time';
3
- import { type Observable } from 'rxjs';
4
3
  /**
5
4
  * Formatting configuration for displayed dates
6
5
  */
@@ -19,5 +18,5 @@ export declare const TUI_DEFAULT_DATE_FORMAT: TuiDateFormatSettings;
19
18
  /**
20
19
  * Formatting configuration for displayed dates
21
20
  */
22
- export declare const TUI_DATE_FORMAT: InjectionToken<Observable<TuiDateFormatSettings>>;
21
+ export declare const TUI_DATE_FORMAT: InjectionToken<Signal<TuiDateFormatSettings>>;
23
22
  export declare function tuiDateFormatProvider(options: Partial<TuiDateFormatSettings>): Provider;
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]>>;
@@ -1,6 +1,5 @@
1
- import { InjectionToken, type Provider } from '@angular/core';
1
+ import { InjectionToken, type Provider, type Signal } from '@angular/core';
2
2
  import { type TuiRounding } from '@taiga-ui/cdk/types';
3
- import { type Observable } from 'rxjs';
4
3
  export type TuiDecimalMode = 'always' | 'not-zero' | 'pad';
5
4
  export type TuiDecimalSymbol = ',' | '.';
6
5
  /**
@@ -35,5 +34,5 @@ export declare const TUI_DEFAULT_NUMBER_FORMAT: TuiNumberFormatSettings;
35
34
  /**
36
35
  * Formatting configuration for displayed numbers
37
36
  */
38
- export declare const TUI_NUMBER_FORMAT: InjectionToken<Observable<TuiNumberFormatSettings>>;
37
+ export declare const TUI_NUMBER_FORMAT: InjectionToken<Signal<TuiNumberFormatSettings>>;
39
38
  export declare function tuiNumberFormatProvider(options: Partial<TuiNumberFormatSettings>): Provider;
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,11 +0,0 @@
1
- import { type OnDestroy, type OnInit } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "@taiga-ui/cdk/directives/active-zone";
4
- export declare class TuiActiveZoneAdapter implements OnDestroy, OnInit {
5
- private readonly current;
6
- private readonly parent;
7
- ngOnInit(): void;
8
- ngOnDestroy(): void;
9
- static ɵfac: i0.ɵɵFactoryDeclaration<TuiActiveZoneAdapter, never>;
10
- static ɵdir: i0.ɵɵDirectiveDeclaration<TuiActiveZoneAdapter, "[tuiActiveZoneAdapter]", never, {}, {}, never, never, true, [{ directive: typeof i1.TuiActiveZone; inputs: {}; outputs: {}; }]>;
11
- }
@@ -1,8 +0,0 @@
1
- import { type Signal } from '@angular/core';
2
- import { type TuiPopover } from '@taiga-ui/cdk/services';
3
- import * as i0 from "@angular/core";
4
- export declare class TuiDialogs {
5
- protected readonly dialogs: Signal<ReadonlyArray<TuiPopover<any, any>>>;
6
- static ɵfac: i0.ɵɵFactoryDeclaration<TuiDialogs, never>;
7
- static ɵcmp: i0.ɵɵComponentDeclaration<TuiDialogs, "tui-dialogs", never, {}, {}, never, never, true, never>;
8
- }
@@ -1,17 +0,0 @@
1
- import * as i0 from "@angular/core";
2
- export declare const TUI_HEADER_OPTIONS: import("@angular/core").InjectionToken<{
3
- size: "" | "body-l" | "body-m" | "body-xl" | "h1" | "h2" | "h3" | "h4" | "h5" | "h6";
4
- }>, tuiHeaderOptionsProvider: (item: Partial<{
5
- size: "" | "body-l" | "body-m" | "body-xl" | "h1" | "h2" | "h3" | "h4" | "h5" | "h6";
6
- }> | (() => Partial<{
7
- size: "" | "body-l" | "body-m" | "body-xl" | "h1" | "h2" | "h3" | "h4" | "h5" | "h6";
8
- }>)) => import("@angular/core").FactoryProvider;
9
- export declare class TuiHeader {
10
- protected readonly nothing: undefined;
11
- protected readonly options: {
12
- size: "" | "body-l" | "body-m" | "body-xl" | "h1" | "h2" | "h3" | "h4" | "h5" | "h6";
13
- };
14
- readonly tuiHeader: import("@angular/core").InputSignal<"" | "body-l" | "body-m" | "body-xl" | "h1" | "h2" | "h3" | "h4" | "h5" | "h6">;
15
- static ɵfac: i0.ɵɵFactoryDeclaration<TuiHeader, never>;
16
- static ɵdir: i0.ɵɵDirectiveDeclaration<TuiHeader, "[tuiHeader]", never, { "tuiHeader": { "alias": "tuiHeader"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
17
- }
@@ -1 +0,0 @@
1
- export * from './header.directive';
@@ -1,19 +0,0 @@
1
- import { TuiTextfieldBase } from './textfield.directive';
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "@taiga-ui/cdk/directives/native-validator";
4
- import * as i2 from "@taiga-ui/core/directives/appearance";
5
- /**
6
- * @deprecated use {@link TuiSelect} from @taiga-ui/kit instead, drop in v5
7
- */
8
- export declare class TuiSelect<T> extends TuiTextfieldBase<T> {
9
- private readonly nav;
10
- private readonly doc;
11
- placeholder: string;
12
- setValue(value: T): void;
13
- focus(): void;
14
- protected get ariaLabel(): string | null;
15
- protected get stringified(): string;
16
- protected onCopy(): Promise<void>;
17
- static ɵfac: i0.ɵɵFactoryDeclaration<TuiSelect<any>, never>;
18
- static ɵcmp: i0.ɵɵComponentDeclaration<TuiSelect<any>, "select[tuiTextfield]", never, { "placeholder": { "alias": "placeholder"; "required": false; }; }, {}, never, never, true, [{ directive: typeof i1.TuiNativeValidator; inputs: {}; outputs: {}; }, { directive: typeof i2.TuiAppearance; inputs: {}; outputs: {}; }]>;
19
- }
@@ -1,16 +0,0 @@
1
- import { type OnDestroy } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export declare class TuiTextfieldDropdownDirective implements OnDestroy {
4
- private readonly directive;
5
- constructor();
6
- ngOnDestroy(): void;
7
- static ɵfac: i0.ɵɵFactoryDeclaration<TuiTextfieldDropdownDirective, never>;
8
- static ɵdir: i0.ɵɵDirectiveDeclaration<TuiTextfieldDropdownDirective, "ng-template[tuiTextfieldDropdown]", never, {}, {}, never, never, true, never>;
9
- }
10
- /**
11
- * @deprecated remove in v5
12
- */
13
- export declare class TuiWithTextfieldDropdown {
14
- static ɵfac: i0.ɵɵFactoryDeclaration<TuiWithTextfieldDropdown, never>;
15
- static ɵdir: i0.ɵɵDirectiveDeclaration<TuiWithTextfieldDropdown, never, never, {}, {}, never, never, true, never>;
16
- }
@@ -1,14 +0,0 @@
1
- import { type OnDestroy } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- /**
4
- * @deprecated use {@link TuiPopup} directive instead
5
- */
6
- export declare class TuiDropdownPortal implements OnDestroy {
7
- private readonly template;
8
- private readonly service;
9
- private viewRef?;
10
- set tuiDropdown(show: boolean);
11
- ngOnDestroy(): void;
12
- static ɵfac: i0.ɵɵFactoryDeclaration<TuiDropdownPortal, never>;
13
- static ɵdir: i0.ɵɵDirectiveDeclaration<TuiDropdownPortal, "ng-template[tuiDropdown]", never, { "tuiDropdown": { "alias": "tuiDropdown"; "required": false; }; }, {}, never, never, true, never>;
14
- }
@@ -1,6 +0,0 @@
1
- import { TuiPortalService } from '@taiga-ui/cdk/classes';
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/classes';
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,42 +0,0 @@
1
- import * as i0 from '@angular/core';
2
- import { ChangeDetectionStrategy, ViewEncapsulation, Component, inject, input, Directive } from '@angular/core';
3
- import { tuiCreateOptions } from '@taiga-ui/cdk/utils/di';
4
- import { tuiWithStyles } from '@taiga-ui/cdk/utils/miscellaneous';
5
- import { tuiButtonOptionsProvider } from '@taiga-ui/core/components/button';
6
-
7
- const [TUI_HEADER_OPTIONS, tuiHeaderOptionsProvider] = tuiCreateOptions({ size: 'h5' });
8
- class Styles {
9
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: Styles, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
10
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: Styles, isStandalone: true, selector: "ng-component", host: { classAttribute: "tui-header" }, ngImport: i0, template: '', isInline: true, styles: ["[tuiHeader]{position:relative;display:flex;align-items:flex-start;box-sizing:content-box;color:var(--tui-text-primary);margin:0;text-align:start;overflow-wrap:break-word}[tuiHeader] p{margin:.25rem 0 0;font:var(--tui-font-text-m)}[tuiHeader] p:empty{display:none}[tuiHeader] [tuiTitle]{flex-grow:2;margin:0}[tuiHeader] [tuiTitle]:empty{display:none}[tuiHeader] [tuiAccessories]{display:flex;align-items:center;gap:.75rem;white-space:nowrap}[tuiHeader] [tuiAccessories]:has([tuiLink]){align-items:baseline}[tuiHeader] [tuiAccessories]:before{content:\"\\200b\";visibility:hidden}[tuiHeader] [tuiSubtitle]{font:var(--tui-font-text-m);color:var(--tui-text-secondary);margin:0}[tuiHeader] [tuiLink]{font:var(--tui-font-text-m)}[tuiHeader] [tuiCaption]{font:var(--tui-font-text-s);color:var(--tui-text-secondary);font-weight:500;text-transform:uppercase;margin:0}[tuiHeader][data-size=h1] [tuiTitle],[tuiHeader][data-size=h1] [tuiAccessories]{font:var(--tui-font-heading-1)}[tuiHeader][data-size=h2] [tuiTitle],[tuiHeader][data-size=h2] [tuiAccessories]{font:var(--tui-font-heading-2)}[tuiHeader][data-size=h3] [tuiTitle],[tuiHeader][data-size=h3] [tuiAccessories]{font:var(--tui-font-heading-3)}[tuiHeader][data-size=h4] [tuiTitle],[tuiHeader][data-size=h4] [tuiAccessories]{font:var(--tui-font-heading-4)}[tuiHeader][data-size=h5] [tuiTitle],[tuiHeader][data-size=h5] [tuiAccessories]{font:var(--tui-font-heading-5)}[tuiHeader][data-size=h6] [tuiTitle],[tuiHeader][data-size=h6] [tuiAccessories]{font:var(--tui-font-heading-6)}[tuiHeader][data-size=body-xl] [tuiTitle],[tuiHeader][data-size=body-xl] [tuiAccessories]{font:var(--tui-font-text-xl)}[tuiHeader][data-size=body-xl] [tuiTitle]{font-weight:700}[tuiHeader][data-size=body-l] [tuiTitle],[tuiHeader][data-size=body-l] [tuiAccessories]{font:var(--tui-font-text-l)}[tuiHeader][data-size=body-l] [tuiTitle]{font-weight:700}[tuiHeader][data-size=body-m] [tuiTitle],[tuiHeader][data-size=body-m] [tuiAccessories]{font:var(--tui-font-text-m)}[tuiHeader][data-size=body-m] [tuiTitle]{gap:.125rem;font-weight:700}[tuiHeader][data-size=body-m] [tuiSubtitle],[tuiHeader][data-size=body-l] [tuiSubtitle],[tuiHeader][data-size=body-m] [tuiLink],[tuiHeader][data-size=body-l] [tuiLink]{font:var(--tui-font-text-s)}[tuiHeader][data-size=h1] [tuiSubtitle],[tuiHeader][data-size=h2] [tuiSubtitle],[tuiHeader][data-size=h3] [tuiSubtitle],[tuiHeader][data-size=h1] [tuiLink],[tuiHeader][data-size=h2] [tuiLink],[tuiHeader][data-size=h3] [tuiLink]{font:var(--tui-font-text-l)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
11
- }
12
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: Styles, decorators: [{
13
- type: Component,
14
- args: [{ template: '', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: { class: 'tui-header' }, styles: ["[tuiHeader]{position:relative;display:flex;align-items:flex-start;box-sizing:content-box;color:var(--tui-text-primary);margin:0;text-align:start;overflow-wrap:break-word}[tuiHeader] p{margin:.25rem 0 0;font:var(--tui-font-text-m)}[tuiHeader] p:empty{display:none}[tuiHeader] [tuiTitle]{flex-grow:2;margin:0}[tuiHeader] [tuiTitle]:empty{display:none}[tuiHeader] [tuiAccessories]{display:flex;align-items:center;gap:.75rem;white-space:nowrap}[tuiHeader] [tuiAccessories]:has([tuiLink]){align-items:baseline}[tuiHeader] [tuiAccessories]:before{content:\"\\200b\";visibility:hidden}[tuiHeader] [tuiSubtitle]{font:var(--tui-font-text-m);color:var(--tui-text-secondary);margin:0}[tuiHeader] [tuiLink]{font:var(--tui-font-text-m)}[tuiHeader] [tuiCaption]{font:var(--tui-font-text-s);color:var(--tui-text-secondary);font-weight:500;text-transform:uppercase;margin:0}[tuiHeader][data-size=h1] [tuiTitle],[tuiHeader][data-size=h1] [tuiAccessories]{font:var(--tui-font-heading-1)}[tuiHeader][data-size=h2] [tuiTitle],[tuiHeader][data-size=h2] [tuiAccessories]{font:var(--tui-font-heading-2)}[tuiHeader][data-size=h3] [tuiTitle],[tuiHeader][data-size=h3] [tuiAccessories]{font:var(--tui-font-heading-3)}[tuiHeader][data-size=h4] [tuiTitle],[tuiHeader][data-size=h4] [tuiAccessories]{font:var(--tui-font-heading-4)}[tuiHeader][data-size=h5] [tuiTitle],[tuiHeader][data-size=h5] [tuiAccessories]{font:var(--tui-font-heading-5)}[tuiHeader][data-size=h6] [tuiTitle],[tuiHeader][data-size=h6] [tuiAccessories]{font:var(--tui-font-heading-6)}[tuiHeader][data-size=body-xl] [tuiTitle],[tuiHeader][data-size=body-xl] [tuiAccessories]{font:var(--tui-font-text-xl)}[tuiHeader][data-size=body-xl] [tuiTitle]{font-weight:700}[tuiHeader][data-size=body-l] [tuiTitle],[tuiHeader][data-size=body-l] [tuiAccessories]{font:var(--tui-font-text-l)}[tuiHeader][data-size=body-l] [tuiTitle]{font-weight:700}[tuiHeader][data-size=body-m] [tuiTitle],[tuiHeader][data-size=body-m] [tuiAccessories]{font:var(--tui-font-text-m)}[tuiHeader][data-size=body-m] [tuiTitle]{gap:.125rem;font-weight:700}[tuiHeader][data-size=body-m] [tuiSubtitle],[tuiHeader][data-size=body-l] [tuiSubtitle],[tuiHeader][data-size=body-m] [tuiLink],[tuiHeader][data-size=body-l] [tuiLink]{font:var(--tui-font-text-s)}[tuiHeader][data-size=h1] [tuiSubtitle],[tuiHeader][data-size=h2] [tuiSubtitle],[tuiHeader][data-size=h3] [tuiSubtitle],[tuiHeader][data-size=h1] [tuiLink],[tuiHeader][data-size=h2] [tuiLink],[tuiHeader][data-size=h3] [tuiLink]{font:var(--tui-font-text-l)}\n"] }]
15
- }] });
16
- class TuiHeader {
17
- constructor() {
18
- this.nothing = tuiWithStyles(Styles);
19
- this.options = inject(TUI_HEADER_OPTIONS);
20
- this.tuiHeader = input(this.options.size);
21
- }
22
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiHeader, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
23
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.15", type: TuiHeader, isStandalone: true, selector: "[tuiHeader]", inputs: { tuiHeader: { classPropertyName: "tuiHeader", publicName: "tuiHeader", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "tuiHeader": "" }, properties: { "attr.data-size": "tuiHeader() || options.size || \"h5\"" } }, providers: [tuiButtonOptionsProvider({ size: 's' })], ngImport: i0 }); }
24
- }
25
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiHeader, decorators: [{
26
- type: Directive,
27
- args: [{
28
- selector: '[tuiHeader]',
29
- providers: [tuiButtonOptionsProvider({ size: 's' })],
30
- host: {
31
- tuiHeader: '',
32
- '[attr.data-size]': 'tuiHeader() || options.size || "h5"',
33
- },
34
- }]
35
- }] });
36
-
37
- /**
38
- * Generated bundle index. Do not edit.
39
- */
40
-
41
- export { TUI_HEADER_OPTIONS, TuiHeader, tuiHeaderOptionsProvider };
42
- //# sourceMappingURL=taiga-ui-core-components-header.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"taiga-ui-core-components-header.mjs","sources":["../../../projects/core/components/header/header.directive.ts","../../../projects/core/components/header/taiga-ui-core-components-header.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n Directive,\n inject,\n input,\n ViewEncapsulation,\n} from '@angular/core';\nimport {tuiCreateOptions} from '@taiga-ui/cdk/utils/di';\nimport {tuiWithStyles} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {tuiButtonOptionsProvider} from '@taiga-ui/core/components/button';\n\nexport const [TUI_HEADER_OPTIONS, tuiHeaderOptionsProvider] = tuiCreateOptions<{\n size: '' | 'body-l' | 'body-m' | 'body-xl' | 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6';\n}>({size: 'h5'});\n\n@Component({\n template: '',\n styleUrls: ['./header.styles.less'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {class: 'tui-header'},\n})\nclass Styles {}\n\n@Directive({\n selector: '[tuiHeader]',\n providers: [tuiButtonOptionsProvider({size: 's'})],\n host: {\n tuiHeader: '',\n '[attr.data-size]': 'tuiHeader() || options.size || \"h5\"',\n },\n})\nexport class TuiHeader {\n protected readonly nothing = tuiWithStyles(Styles);\n protected readonly options = inject(TUI_HEADER_OPTIONS);\n\n public readonly tuiHeader = input(this.options.size);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;AAYa,MAAA,CAAC,kBAAkB,EAAE,wBAAwB,CAAC,GAAG,gBAAgB,CAE3E,EAAC,IAAI,EAAE,IAAI,EAAC;AAEf,MAOM,MAAM,CAAA;+GAAN,MAAM,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAN,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,MAAM,gHANE,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,m9EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;4FAMV,MAAM,EAAA,UAAA,EAAA,CAAA;kBAPX,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAE,EAEG,aAAA,EAAA,iBAAiB,CAAC,IAAI,EACpB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EACzC,IAAA,EAAA,EAAC,KAAK,EAAE,YAAY,EAAC,EAAA,MAAA,EAAA,CAAA,m9EAAA,CAAA,EAAA;;MAYlB,SAAS,CAAA;AARtB,IAAA,WAAA,GAAA;AASuB,QAAA,IAAA,CAAA,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC;AAC/B,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,kBAAkB,CAAC;QAEvC,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;AACvD;+GALY,SAAS,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAT,SAAS,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,WAAA,EAAA,EAAA,EAAA,EAAA,UAAA,EAAA,EAAA,gBAAA,EAAA,uCAAA,EAAA,EAAA,EAAA,SAAA,EANP,CAAC,wBAAwB,CAAC,EAAC,IAAI,EAAE,GAAG,EAAC,CAAC,CAAC,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAMzC,SAAS,EAAA,UAAA,EAAA,CAAA;kBARrB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,aAAa;oBACvB,SAAS,EAAE,CAAC,wBAAwB,CAAC,EAAC,IAAI,EAAE,GAAG,EAAC,CAAC,CAAC;AAClD,oBAAA,IAAI,EAAE;AACF,wBAAA,SAAS,EAAE,EAAE;AACb,wBAAA,kBAAkB,EAAE,qCAAqC;AAC5D,qBAAA;AACJ,iBAAA;;;AChCD;;AAEG;;;;"}
@@ -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
- }