@taiga-ui/kit 4.52.0-canary.c107f6a → 4.52.0-canary.c8448e0

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 (438) hide show
  1. package/README.md +1 -1
  2. package/components/avatar/avatar-labeled.component.d.ts +3 -3
  3. package/components/avatar/avatar-stack.component.d.ts +2 -2
  4. package/components/badge/badge.options.d.ts +1 -3
  5. package/components/badge-notification/badge-notification.component.d.ts +2 -3
  6. package/components/badge-notification/badge-notification.options.d.ts +1 -3
  7. package/components/badged-content/badged-content.directive.d.ts +2 -3
  8. package/components/block/block.options.d.ts +1 -3
  9. package/components/breadcrumbs/breadcrumbs.component.d.ts +6 -7
  10. package/components/breadcrumbs/breadcrumbs.options.d.ts +1 -3
  11. package/components/button-loading/button-loading.component.d.ts +5 -5
  12. package/components/calendar-month/calendar-month.component.d.ts +5 -5
  13. package/components/calendar-range/calendar-range.component.d.ts +1 -3
  14. package/components/calendar-range/day-range-period.d.ts +2 -1
  15. package/components/carousel/carousel-autoscroll.directive.d.ts +1 -2
  16. package/components/carousel/carousel-scroll.directive.d.ts +1 -1
  17. package/components/carousel/carousel.component.d.ts +15 -18
  18. package/components/carousel/carousel.directive.d.ts +5 -4
  19. package/components/chip/chip.options.d.ts +1 -3
  20. package/components/combo-box/combo-box.d.ts +5 -0
  21. package/components/combo-box/combo-box.directive.d.ts +7 -9
  22. package/components/combo-box/index.d.ts +1 -0
  23. package/components/compass/compass.component.d.ts +2 -2
  24. package/components/confirm/confirm.component.d.ts +4 -3
  25. package/components/confirm/confirm.service.d.ts +1 -1
  26. package/components/copy/copy.component.d.ts +3 -4
  27. package/components/copy/copy.directive.d.ts +2 -4
  28. package/components/data-list-wrapper/data-list-group-wrapper.component.d.ts +2 -2
  29. package/components/data-list-wrapper/data-list-wrapper.component.d.ts +14 -22
  30. package/components/data-list-wrapper/{data-list-wrapper.module.d.ts → data-list-wrapper.d.ts} +1 -2
  31. package/components/data-list-wrapper/index.d.ts +1 -1
  32. package/components/drawer/drawer.component.d.ts +3 -4
  33. package/components/files/file/file.component.d.ts +16 -29
  34. package/components/files/file/file.options.d.ts +1 -1
  35. package/components/files/files/files.component.d.ts +5 -8
  36. package/components/files/input-files/input-files.component.d.ts +2 -2
  37. package/components/files/input-files/input-files.content.d.ts +7 -8
  38. package/components/files/input-files/input-files.directive.d.ts +2 -2
  39. package/components/files/input-files/input-files.options.d.ts +1 -3
  40. package/components/filter/filter.component.d.ts +9 -12
  41. package/components/fullscreen/fullscreen.component.d.ts +5 -8
  42. package/components/index.d.ts +0 -3
  43. package/components/input-chip/input-chip.component.d.ts +9 -8
  44. package/components/input-chip/input-chip.d.ts +5 -1
  45. package/components/input-chip/input-chip.directive.d.ts +7 -12
  46. package/components/input-color/index.d.ts +1 -0
  47. package/components/input-color/input-color.component.d.ts +9 -13
  48. package/components/input-color/input-color.d.ts +5 -0
  49. package/components/input-date/input-date.component.d.ts +2 -2
  50. package/components/input-date/input-date.d.ts +4 -1
  51. package/components/input-date/input-date.directive.d.ts +21 -22
  52. package/components/input-date/input-date.options.d.ts +3 -3
  53. package/components/input-date-multi/input-date-multi.d.ts +1 -2
  54. package/components/input-date-multi/input-date-multi.directive.d.ts +10 -14
  55. package/components/input-date-range/input-date-range.d.ts +4 -1
  56. package/components/input-date-range/input-date-range.directive.d.ts +9 -10
  57. package/components/input-date-range/input-date-range.options.d.ts +2 -2
  58. package/components/input-date-time/input-date-time.d.ts +4 -1
  59. package/components/input-date-time/input-date-time.directive.d.ts +14 -14
  60. package/components/input-date-time/input-date-time.options.d.ts +2 -2
  61. package/components/input-inline/input-inline.component.d.ts +3 -2
  62. package/components/input-month/input-month.component.d.ts +3 -5
  63. package/components/input-month/input-month.d.ts +4 -1
  64. package/components/input-month/input-month.directive.d.ts +6 -5
  65. package/components/input-month-range/input-month-range.d.ts +4 -1
  66. package/components/input-month-range/input-month-range.directive.d.ts +6 -5
  67. package/components/input-number/index.d.ts +3 -0
  68. package/components/input-number/input-number.d.ts +7 -2
  69. package/components/input-number/input-number.directive.d.ts +11 -24
  70. package/components/input-number/input-number.options.d.ts +4 -7
  71. package/components/input-number/number-mask.directive.d.ts +42 -0
  72. package/components/input-number/quantum.directive.d.ts +10 -8
  73. package/components/input-number/step/input-number-step.component.d.ts +10 -9
  74. package/components/input-number/transformers/bigint.value-transformer.d.ts +11 -0
  75. package/components/input-number/transformers/number.value-transformer.d.ts +11 -0
  76. package/components/input-phone/index.d.ts +1 -0
  77. package/components/input-phone/input-phone.d.ts +5 -0
  78. package/components/input-phone/input-phone.directive.d.ts +12 -14
  79. package/components/input-phone-international/index.d.ts +1 -0
  80. package/components/input-phone-international/input-phone-international.component.d.ts +14 -16
  81. package/components/input-phone-international/input-phone-international.d.ts +5 -0
  82. package/components/input-phone-international/input-phone-international.options.d.ts +2 -3
  83. package/components/input-pin/index.d.ts +1 -0
  84. package/components/input-pin/input-pin.component.d.ts +5 -6
  85. package/components/input-pin/input-pin.d.ts +5 -0
  86. package/components/input-range/index.d.ts +0 -1
  87. package/components/input-range/input-range.component.d.ts +23 -53
  88. package/components/input-slider/input-slider.d.ts +4 -1
  89. package/components/input-slider/input-slider.directive.d.ts +4 -3
  90. package/components/input-time/input-time.component.d.ts +1 -3
  91. package/components/input-time/input-time.d.ts +4 -1
  92. package/components/input-time/input-time.directive.d.ts +5 -5
  93. package/components/input-year/input-year.d.ts +4 -1
  94. package/components/input-year/input-year.directive.d.ts +8 -10
  95. package/components/input-year/input-year.options.d.ts +2 -2
  96. package/components/items-with-more/items-with-more.component.d.ts +6 -6
  97. package/components/items-with-more/items-with-more.directive.d.ts +6 -6
  98. package/components/like/like.options.d.ts +1 -1
  99. package/components/line-clamp/line-clamp-box.component.d.ts +1 -1
  100. package/components/line-clamp/line-clamp.options.d.ts +1 -3
  101. package/components/multi-select/multi-select-group/multi-select-group.component.d.ts +4 -6
  102. package/components/multi-select/multi-select-native/multi-select-native.component.d.ts +5 -4
  103. package/components/notification-middle/notification-middle.component.d.ts +2 -2
  104. package/components/notification-middle/notification-middle.directive.d.ts +4 -3
  105. package/components/notification-middle/notification-middle.service.d.ts +7 -3
  106. package/components/pager/pager.component.d.ts +12 -12
  107. package/components/pagination/pagination.component.d.ts +22 -53
  108. package/components/pagination/pagination.options.d.ts +3 -6
  109. package/components/preview/dialog/preview-dialog.component.d.ts +2 -2
  110. package/components/preview/dialog/preview-dialog.directive.d.ts +3 -3
  111. package/components/preview/dialog/preview-dialog.service.d.ts +5 -2
  112. package/components/preview/index.d.ts +1 -0
  113. package/components/preview/pagination/preview-pagination.component.d.ts +6 -10
  114. package/components/preview/preview.component.d.ts +6 -6
  115. package/components/preview/preview.d.ts +2 -1
  116. package/{tokens/preview-icons.d.ts → components/preview/preview.options.d.ts} +1 -3
  117. package/components/preview/zoom/preview-zoom.component.d.ts +11 -17
  118. package/components/progress/progress-bar/progress-bar.component.d.ts +3 -4
  119. package/components/progress/progress-circle/progress-circle.component.d.ts +7 -11
  120. package/components/progress/progress.options.d.ts +1 -3
  121. package/components/pulse/pulse.component.d.ts +2 -2
  122. package/components/push/push-alert.component.d.ts +2 -2
  123. package/components/push/push.component.d.ts +6 -7
  124. package/components/push/push.options.d.ts +4 -3
  125. package/components/push/push.service.d.ts +2 -2
  126. package/components/radio/radio.component.d.ts +1 -1
  127. package/components/radio-list/radio-list.component.d.ts +11 -9
  128. package/components/range/range.component.d.ts +3 -4
  129. package/components/rating/rating.component.d.ts +1 -1
  130. package/components/rating/rating.options.d.ts +1 -3
  131. package/components/routable-dialog/generate-dialogable-route.d.ts +1 -1
  132. package/components/segmented/segmented.component.d.ts +4 -6
  133. package/components/segmented/segmented.directive.d.ts +6 -7
  134. package/components/select/native-select/native-select.component.d.ts +4 -4
  135. package/components/select/select.d.ts +4 -1
  136. package/components/select/select.directive.d.ts +4 -3
  137. package/components/slider/helpers/slider-key-steps.directive.d.ts +10 -7
  138. package/components/slider/helpers/slider-readonly.directive.d.ts +2 -4
  139. package/components/slider/helpers/slider-thumb-label.component.d.ts +2 -4
  140. package/components/slider/slider.component.d.ts +4 -7
  141. package/components/slider/slider.options.d.ts +1 -6
  142. package/components/stepper/step.component.d.ts +14 -9
  143. package/components/stepper/stepper.component.d.ts +5 -12
  144. package/components/switch/switch.component.d.ts +1 -0
  145. package/components/tabs/tabs-horizontal.directive.d.ts +4 -5
  146. package/components/tabs/tabs-vertical.directive.d.ts +2 -2
  147. package/components/tabs/tabs-with-more.component.d.ts +12 -16
  148. package/components/tabs/tabs.directive.d.ts +5 -7
  149. package/components/tabs/tabs.options.d.ts +1 -6
  150. package/components/textarea/index.d.ts +2 -1
  151. package/components/textarea/textarea.component.d.ts +10 -11
  152. package/components/textarea/textarea.d.ts +6 -0
  153. package/components/textarea/textarea.directive.d.ts +13 -0
  154. package/components/tiles/tile-handle.directive.d.ts +2 -1
  155. package/components/tiles/tile.component.d.ts +7 -10
  156. package/components/tiles/tile.service.d.ts +1 -1
  157. package/components/tiles/tiles.component.d.ts +4 -7
  158. package/components/toast/toast.component.d.ts +4 -4
  159. package/components/toast/toast.options.d.ts +4 -3
  160. package/components/toast/toast.service.d.ts +2 -2
  161. package/components/tree/components/tree/tree.component.d.ts +7 -7
  162. package/components/tree/components/tree-item/tree-item.component.d.ts +1 -1
  163. package/components/tree/components/tree-item-content/tree-item-content.component.d.ts +7 -0
  164. package/components/tree/directives/tree-children.directive.d.ts +2 -2
  165. package/components/tree/directives/tree-controller.directive.d.ts +4 -5
  166. package/components/tree/directives/tree-item-controller.directive.d.ts +2 -2
  167. package/components/tree/directives/tree-node.directive.d.ts +5 -4
  168. package/components/tree/misc/tree.constants.d.ts +0 -3
  169. package/components/tree/misc/tree.tokens.d.ts +1 -6
  170. package/directives/appearance-proxy/appearance-proxy.directive.d.ts +10 -0
  171. package/directives/appearance-proxy/index.d.ts +1 -0
  172. package/directives/button-select/button-select.directive.d.ts +3 -2
  173. package/directives/data-list-dropdown-manager/data-list-dropdown-manager.directive.d.ts +5 -5
  174. package/directives/fade/fade.directive.d.ts +5 -6
  175. package/directives/fluid-typography/fluid-typography.options.d.ts +1 -3
  176. package/directives/highlight/highlight.directive.d.ts +4 -4
  177. package/directives/index.d.ts +1 -2
  178. package/directives/password/password.directive.d.ts +1 -1
  179. package/directives/present/present.directive.d.ts +2 -4
  180. package/directives/tooltip/tooltip.directive.d.ts +1 -1
  181. package/directives/unfinished-validator/unfinished-validator.directive.d.ts +2 -2
  182. package/directives/unmask-handler/unmask-handler.directive.d.ts +3 -3
  183. package/fesm2022/taiga-ui-kit-components-accordion.mjs +8 -8
  184. package/fesm2022/taiga-ui-kit-components-accordion.mjs.map +1 -1
  185. package/fesm2022/taiga-ui-kit-components-action-bar.mjs +7 -7
  186. package/fesm2022/taiga-ui-kit-components-action-bar.mjs.map +1 -1
  187. package/fesm2022/taiga-ui-kit-components-avatar.mjs +34 -48
  188. package/fesm2022/taiga-ui-kit-components-avatar.mjs.map +1 -1
  189. package/fesm2022/taiga-ui-kit-components-badge-notification.mjs +10 -17
  190. package/fesm2022/taiga-ui-kit-components-badge-notification.mjs.map +1 -1
  191. package/fesm2022/taiga-ui-kit-components-badge.mjs +11 -15
  192. package/fesm2022/taiga-ui-kit-components-badge.mjs.map +1 -1
  193. package/fesm2022/taiga-ui-kit-components-badged-content.mjs +9 -11
  194. package/fesm2022/taiga-ui-kit-components-badged-content.mjs.map +1 -1
  195. package/fesm2022/taiga-ui-kit-components-block.mjs +11 -15
  196. package/fesm2022/taiga-ui-kit-components-block.mjs.map +1 -1
  197. package/fesm2022/taiga-ui-kit-components-breadcrumbs.mjs +18 -37
  198. package/fesm2022/taiga-ui-kit-components-breadcrumbs.mjs.map +1 -1
  199. package/fesm2022/taiga-ui-kit-components-button-loading.mjs +18 -26
  200. package/fesm2022/taiga-ui-kit-components-button-loading.mjs.map +1 -1
  201. package/fesm2022/taiga-ui-kit-components-calendar-month.mjs +13 -33
  202. package/fesm2022/taiga-ui-kit-components-calendar-month.mjs.map +1 -1
  203. package/fesm2022/taiga-ui-kit-components-calendar-range.mjs +26 -35
  204. package/fesm2022/taiga-ui-kit-components-calendar-range.mjs.map +1 -1
  205. package/fesm2022/taiga-ui-kit-components-carousel.mjs +69 -116
  206. package/fesm2022/taiga-ui-kit-components-carousel.mjs.map +1 -1
  207. package/fesm2022/taiga-ui-kit-components-checkbox.mjs +4 -5
  208. package/fesm2022/taiga-ui-kit-components-checkbox.mjs.map +1 -1
  209. package/fesm2022/taiga-ui-kit-components-chip.mjs +11 -15
  210. package/fesm2022/taiga-ui-kit-components-chip.mjs.map +1 -1
  211. package/fesm2022/taiga-ui-kit-components-combo-box.mjs +40 -44
  212. package/fesm2022/taiga-ui-kit-components-combo-box.mjs.map +1 -1
  213. package/fesm2022/taiga-ui-kit-components-comment.mjs +7 -7
  214. package/fesm2022/taiga-ui-kit-components-comment.mjs.map +1 -1
  215. package/fesm2022/taiga-ui-kit-components-compass.mjs +8 -10
  216. package/fesm2022/taiga-ui-kit-components-compass.mjs.map +1 -1
  217. package/fesm2022/taiga-ui-kit-components-confirm.mjs +10 -12
  218. package/fesm2022/taiga-ui-kit-components-confirm.mjs.map +1 -1
  219. package/fesm2022/taiga-ui-kit-components-copy.mjs +19 -32
  220. package/fesm2022/taiga-ui-kit-components-copy.mjs.map +1 -1
  221. package/fesm2022/taiga-ui-kit-components-data-list-wrapper.mjs +24 -85
  222. package/fesm2022/taiga-ui-kit-components-data-list-wrapper.mjs.map +1 -1
  223. package/fesm2022/taiga-ui-kit-components-drawer.mjs +11 -32
  224. package/fesm2022/taiga-ui-kit-components-drawer.mjs.map +1 -1
  225. package/fesm2022/taiga-ui-kit-components-files.mjs +112 -237
  226. package/fesm2022/taiga-ui-kit-components-files.mjs.map +1 -1
  227. package/fesm2022/taiga-ui-kit-components-filter.mjs +21 -34
  228. package/fesm2022/taiga-ui-kit-components-filter.mjs.map +1 -1
  229. package/fesm2022/taiga-ui-kit-components-fullscreen.mjs +23 -42
  230. package/fesm2022/taiga-ui-kit-components-fullscreen.mjs.map +1 -1
  231. package/fesm2022/taiga-ui-kit-components-input-chip.mjs +63 -75
  232. package/fesm2022/taiga-ui-kit-components-input-chip.mjs.map +1 -1
  233. package/fesm2022/taiga-ui-kit-components-input-color.mjs +31 -32
  234. package/fesm2022/taiga-ui-kit-components-input-color.mjs.map +1 -1
  235. package/fesm2022/taiga-ui-kit-components-input-date-multi.mjs +34 -46
  236. package/fesm2022/taiga-ui-kit-components-input-date-multi.mjs.map +1 -1
  237. package/fesm2022/taiga-ui-kit-components-input-date-range.mjs +37 -36
  238. package/fesm2022/taiga-ui-kit-components-input-date-range.mjs.map +1 -1
  239. package/fesm2022/taiga-ui-kit-components-input-date-time.mjs +41 -56
  240. package/fesm2022/taiga-ui-kit-components-input-date-time.mjs.map +1 -1
  241. package/fesm2022/taiga-ui-kit-components-input-date.mjs +52 -58
  242. package/fesm2022/taiga-ui-kit-components-input-date.mjs.map +1 -1
  243. package/fesm2022/taiga-ui-kit-components-input-inline.mjs +10 -12
  244. package/fesm2022/taiga-ui-kit-components-input-inline.mjs.map +1 -1
  245. package/fesm2022/taiga-ui-kit-components-input-month-range.mjs +26 -22
  246. package/fesm2022/taiga-ui-kit-components-input-month-range.mjs.map +1 -1
  247. package/fesm2022/taiga-ui-kit-components-input-month.mjs +39 -45
  248. package/fesm2022/taiga-ui-kit-components-input-month.mjs.map +1 -1
  249. package/fesm2022/taiga-ui-kit-components-input-number.mjs +262 -182
  250. package/fesm2022/taiga-ui-kit-components-input-number.mjs.map +1 -1
  251. package/fesm2022/taiga-ui-kit-components-input-phone-international.mjs +63 -73
  252. package/fesm2022/taiga-ui-kit-components-input-phone-international.mjs.map +1 -1
  253. package/fesm2022/taiga-ui-kit-components-input-phone.mjs +37 -41
  254. package/fesm2022/taiga-ui-kit-components-input-phone.mjs.map +1 -1
  255. package/fesm2022/taiga-ui-kit-components-input-pin.mjs +24 -22
  256. package/fesm2022/taiga-ui-kit-components-input-pin.mjs.map +1 -1
  257. package/fesm2022/taiga-ui-kit-components-input-range.mjs +42 -69
  258. package/fesm2022/taiga-ui-kit-components-input-range.mjs.map +1 -1
  259. package/fesm2022/taiga-ui-kit-components-input-slider.mjs +27 -17
  260. package/fesm2022/taiga-ui-kit-components-input-slider.mjs.map +1 -1
  261. package/fesm2022/taiga-ui-kit-components-input-time.mjs +38 -39
  262. package/fesm2022/taiga-ui-kit-components-input-time.mjs.map +1 -1
  263. package/fesm2022/taiga-ui-kit-components-input-year.mjs +31 -36
  264. package/fesm2022/taiga-ui-kit-components-input-year.mjs.map +1 -1
  265. package/fesm2022/taiga-ui-kit-components-items-with-more.mjs +50 -70
  266. package/fesm2022/taiga-ui-kit-components-items-with-more.mjs.map +1 -1
  267. package/fesm2022/taiga-ui-kit-components-like.mjs +3 -3
  268. package/fesm2022/taiga-ui-kit-components-like.mjs.map +1 -1
  269. package/fesm2022/taiga-ui-kit-components-line-clamp.mjs +18 -22
  270. package/fesm2022/taiga-ui-kit-components-line-clamp.mjs.map +1 -1
  271. package/fesm2022/taiga-ui-kit-components-message.mjs +7 -7
  272. package/fesm2022/taiga-ui-kit-components-message.mjs.map +1 -1
  273. package/fesm2022/taiga-ui-kit-components-multi-select.mjs +37 -52
  274. package/fesm2022/taiga-ui-kit-components-multi-select.mjs.map +1 -1
  275. package/fesm2022/taiga-ui-kit-components-notification-middle.mjs +37 -25
  276. package/fesm2022/taiga-ui-kit-components-notification-middle.mjs.map +1 -1
  277. package/fesm2022/taiga-ui-kit-components-pager.mjs +30 -44
  278. package/fesm2022/taiga-ui-kit-components-pager.mjs.map +1 -1
  279. package/fesm2022/taiga-ui-kit-components-pagination.mjs +68 -153
  280. package/fesm2022/taiga-ui-kit-components-pagination.mjs.map +1 -1
  281. package/fesm2022/taiga-ui-kit-components-pin.mjs +7 -7
  282. package/fesm2022/taiga-ui-kit-components-pin.mjs.map +1 -1
  283. package/fesm2022/taiga-ui-kit-components-preview.mjs +96 -154
  284. package/fesm2022/taiga-ui-kit-components-preview.mjs.map +1 -1
  285. package/fesm2022/taiga-ui-kit-components-progress.mjs +47 -70
  286. package/fesm2022/taiga-ui-kit-components-progress.mjs.map +1 -1
  287. package/fesm2022/taiga-ui-kit-components-pulse.mjs +7 -11
  288. package/fesm2022/taiga-ui-kit-components-pulse.mjs.map +1 -1
  289. package/fesm2022/taiga-ui-kit-components-push.mjs +27 -40
  290. package/fesm2022/taiga-ui-kit-components-push.mjs.map +1 -1
  291. package/fesm2022/taiga-ui-kit-components-radio-list.mjs +23 -35
  292. package/fesm2022/taiga-ui-kit-components-radio-list.mjs.map +1 -1
  293. package/fesm2022/taiga-ui-kit-components-radio.mjs +7 -7
  294. package/fesm2022/taiga-ui-kit-components-radio.mjs.map +1 -1
  295. package/fesm2022/taiga-ui-kit-components-range.mjs +19 -29
  296. package/fesm2022/taiga-ui-kit-components-range.mjs.map +1 -1
  297. package/fesm2022/taiga-ui-kit-components-rating.mjs +7 -12
  298. package/fesm2022/taiga-ui-kit-components-rating.mjs.map +1 -1
  299. package/fesm2022/taiga-ui-kit-components-routable-dialog.mjs +4 -4
  300. package/fesm2022/taiga-ui-kit-components-routable-dialog.mjs.map +1 -1
  301. package/fesm2022/taiga-ui-kit-components-segmented.mjs +31 -57
  302. package/fesm2022/taiga-ui-kit-components-segmented.mjs.map +1 -1
  303. package/fesm2022/taiga-ui-kit-components-select.mjs +52 -28
  304. package/fesm2022/taiga-ui-kit-components-select.mjs.map +1 -1
  305. package/fesm2022/taiga-ui-kit-components-slider.mjs +55 -84
  306. package/fesm2022/taiga-ui-kit-components-slider.mjs.map +1 -1
  307. package/fesm2022/taiga-ui-kit-components-status.mjs +6 -6
  308. package/fesm2022/taiga-ui-kit-components-stepper.mjs +61 -88
  309. package/fesm2022/taiga-ui-kit-components-stepper.mjs.map +1 -1
  310. package/fesm2022/taiga-ui-kit-components-switch.mjs +10 -6
  311. package/fesm2022/taiga-ui-kit-components-switch.mjs.map +1 -1
  312. package/fesm2022/taiga-ui-kit-components-tabs.mjs +90 -154
  313. package/fesm2022/taiga-ui-kit-components-tabs.mjs.map +1 -1
  314. package/fesm2022/taiga-ui-kit-components-textarea.mjs +60 -71
  315. package/fesm2022/taiga-ui-kit-components-textarea.mjs.map +1 -1
  316. package/fesm2022/taiga-ui-kit-components-tiles.mjs +52 -96
  317. package/fesm2022/taiga-ui-kit-components-tiles.mjs.map +1 -1
  318. package/fesm2022/taiga-ui-kit-components-toast.mjs +27 -28
  319. package/fesm2022/taiga-ui-kit-components-toast.mjs.map +1 -1
  320. package/fesm2022/taiga-ui-kit-components-tree.mjs +90 -120
  321. package/fesm2022/taiga-ui-kit-components-tree.mjs.map +1 -1
  322. package/fesm2022/taiga-ui-kit-components.mjs +0 -3
  323. package/fesm2022/taiga-ui-kit-components.mjs.map +1 -1
  324. package/fesm2022/taiga-ui-kit-directives-appearance-proxy.mjs +27 -0
  325. package/fesm2022/taiga-ui-kit-directives-appearance-proxy.mjs.map +1 -0
  326. package/fesm2022/taiga-ui-kit-directives-button-group.mjs +7 -7
  327. package/fesm2022/taiga-ui-kit-directives-button-group.mjs.map +1 -1
  328. package/fesm2022/taiga-ui-kit-directives-button-select.mjs +20 -11
  329. package/fesm2022/taiga-ui-kit-directives-button-select.mjs.map +1 -1
  330. package/fesm2022/taiga-ui-kit-directives-chevron.mjs +10 -9
  331. package/fesm2022/taiga-ui-kit-directives-chevron.mjs.map +1 -1
  332. package/fesm2022/taiga-ui-kit-directives-connected.mjs +7 -7
  333. package/fesm2022/taiga-ui-kit-directives-connected.mjs.map +1 -1
  334. package/fesm2022/taiga-ui-kit-directives-data-list-dropdown-manager.mjs +25 -52
  335. package/fesm2022/taiga-ui-kit-directives-data-list-dropdown-manager.mjs.map +1 -1
  336. package/fesm2022/taiga-ui-kit-directives-fade.mjs +25 -34
  337. package/fesm2022/taiga-ui-kit-directives-fade.mjs.map +1 -1
  338. package/fesm2022/taiga-ui-kit-directives-fluid-typography.mjs +6 -11
  339. package/fesm2022/taiga-ui-kit-directives-fluid-typography.mjs.map +1 -1
  340. package/fesm2022/taiga-ui-kit-directives-highlight.mjs +16 -20
  341. package/fesm2022/taiga-ui-kit-directives-highlight.mjs.map +1 -1
  342. package/fesm2022/taiga-ui-kit-directives-password.mjs +10 -8
  343. package/fesm2022/taiga-ui-kit-directives-password.mjs.map +1 -1
  344. package/fesm2022/taiga-ui-kit-directives-present.mjs +10 -17
  345. package/fesm2022/taiga-ui-kit-directives-present.mjs.map +1 -1
  346. package/fesm2022/taiga-ui-kit-directives-sensitive.mjs +6 -6
  347. package/fesm2022/taiga-ui-kit-directives-shimmer.mjs +6 -6
  348. package/fesm2022/taiga-ui-kit-directives-skeleton.mjs +7 -6
  349. package/fesm2022/taiga-ui-kit-directives-skeleton.mjs.map +1 -1
  350. package/fesm2022/taiga-ui-kit-directives-tooltip.mjs +9 -9
  351. package/fesm2022/taiga-ui-kit-directives-tooltip.mjs.map +1 -1
  352. package/fesm2022/taiga-ui-kit-directives-unfinished-validator.mjs +8 -10
  353. package/fesm2022/taiga-ui-kit-directives-unfinished-validator.mjs.map +1 -1
  354. package/fesm2022/taiga-ui-kit-directives-unmask-handler.mjs +10 -14
  355. package/fesm2022/taiga-ui-kit-directives-unmask-handler.mjs.map +1 -1
  356. package/fesm2022/taiga-ui-kit-directives.mjs +1 -2
  357. package/fesm2022/taiga-ui-kit-directives.mjs.map +1 -1
  358. package/fesm2022/taiga-ui-kit-pipes-auto-color.mjs +43 -0
  359. package/fesm2022/taiga-ui-kit-pipes-auto-color.mjs.map +1 -0
  360. package/fesm2022/taiga-ui-kit-pipes-emails.mjs +3 -3
  361. package/fesm2022/taiga-ui-kit-pipes-filter-by-input.mjs +22 -35
  362. package/fesm2022/taiga-ui-kit-pipes-filter-by-input.mjs.map +1 -1
  363. package/fesm2022/taiga-ui-kit-pipes-flag.mjs +30 -0
  364. package/fesm2022/taiga-ui-kit-pipes-flag.mjs.map +1 -0
  365. package/fesm2022/taiga-ui-kit-pipes-hide-selected.mjs +23 -26
  366. package/fesm2022/taiga-ui-kit-pipes-hide-selected.mjs.map +1 -1
  367. package/fesm2022/taiga-ui-kit-pipes-initials.mjs +28 -0
  368. package/fesm2022/taiga-ui-kit-pipes-initials.mjs.map +1 -0
  369. package/fesm2022/taiga-ui-kit-pipes-sort-countries.mjs +10 -8
  370. package/fesm2022/taiga-ui-kit-pipes-sort-countries.mjs.map +1 -1
  371. package/fesm2022/taiga-ui-kit-pipes-stringify-content.mjs +3 -3
  372. package/fesm2022/taiga-ui-kit-pipes-stringify-content.mjs.map +1 -1
  373. package/fesm2022/taiga-ui-kit-pipes-stringify.mjs +3 -3
  374. package/fesm2022/taiga-ui-kit-pipes.mjs +3 -0
  375. package/fesm2022/taiga-ui-kit-pipes.mjs.map +1 -1
  376. package/fesm2022/taiga-ui-kit-tokens.mjs +4 -123
  377. package/fesm2022/taiga-ui-kit-tokens.mjs.map +1 -1
  378. package/fesm2022/taiga-ui-kit-utils.mjs +3 -15
  379. package/fesm2022/taiga-ui-kit-utils.mjs.map +1 -1
  380. package/package.json +60 -68
  381. package/pipes/auto-color/auto-color.pipe.d.ts +13 -0
  382. package/pipes/auto-color/index.d.ts +1 -0
  383. package/pipes/filter-by-input/filter-by-input.pipe.d.ts +5 -2
  384. package/pipes/flag/flag.pipe.d.ts +13 -0
  385. package/pipes/flag/index.d.ts +1 -0
  386. package/pipes/hide-selected/hide-selected.pipe.d.ts +2 -0
  387. package/pipes/index.d.ts +3 -0
  388. package/pipes/initials/index.d.ts +1 -0
  389. package/pipes/initials/initials.pipe.d.ts +7 -0
  390. package/pipes/sort-countries/sort-countries.pipe.d.ts +4 -3
  391. package/pipes/stringify-content/stringify-content.pipe.d.ts +2 -3
  392. package/styles/components/avatar.less +14 -14
  393. package/styles/components/badge.less +3 -3
  394. package/styles/components/block.less +4 -4
  395. package/styles/components/chip.less +4 -4
  396. package/styles/components/comment.less +15 -17
  397. package/styles/components/message.less +1 -1
  398. package/styles/components/pin.less +3 -3
  399. package/styles/components/switch.less +3 -2
  400. package/styles/components/toast.less +1 -1
  401. package/tokens/i18n.d.ts +1 -0
  402. package/tokens/index.d.ts +0 -7
  403. package/utils/index.d.ts +0 -2
  404. package/utils/maskito.binding.d.ts +1 -1
  405. package/components/elastic-container/elastic-container.component.d.ts +0 -8
  406. package/components/elastic-container/elastic-container.directive.d.ts +0 -7
  407. package/components/elastic-container/index.d.ts +0 -2
  408. package/components/floating-container/floating-container.directive.d.ts +0 -7
  409. package/components/floating-container/index.d.ts +0 -1
  410. package/components/input-range/input-range.d.ts +0 -3
  411. package/components/slides/index.d.ts +0 -1
  412. package/components/slides/slides.directive.d.ts +0 -11
  413. package/components/textarea/textarea-limit.directive.d.ts +0 -26
  414. package/directives/button-close/button-close.directive.d.ts +0 -6
  415. package/directives/button-close/index.d.ts +0 -1
  416. package/directives/lazy-loading/index.d.ts +0 -2
  417. package/directives/lazy-loading/lazy-loading.directive.d.ts +0 -18
  418. package/directives/lazy-loading/lazy-loading.service.d.ts +0 -12
  419. package/fesm2022/taiga-ui-kit-components-elastic-container.mjs +0 -77
  420. package/fesm2022/taiga-ui-kit-components-elastic-container.mjs.map +0 -1
  421. package/fesm2022/taiga-ui-kit-components-floating-container.mjs +0 -37
  422. package/fesm2022/taiga-ui-kit-components-floating-container.mjs.map +0 -1
  423. package/fesm2022/taiga-ui-kit-components-preview-dialog.mjs +0 -63
  424. package/fesm2022/taiga-ui-kit-components-preview-dialog.mjs.map +0 -1
  425. package/fesm2022/taiga-ui-kit-components-slides.mjs +0 -49
  426. package/fesm2022/taiga-ui-kit-components-slides.mjs.map +0 -1
  427. package/fesm2022/taiga-ui-kit-directives-button-close.mjs +0 -47
  428. package/fesm2022/taiga-ui-kit-directives-button-close.mjs.map +0 -1
  429. package/fesm2022/taiga-ui-kit-directives-lazy-loading.mjs +0 -80
  430. package/fesm2022/taiga-ui-kit-directives-lazy-loading.mjs.map +0 -1
  431. package/tokens/calendar-date-stream.d.ts +0 -10
  432. package/tokens/date-inputs-value-transformers.d.ts +0 -19
  433. package/tokens/input-date-options.d.ts +0 -15
  434. package/tokens/items-handlers.d.ts +0 -26
  435. package/tokens/mobile-calendar.d.ts +0 -6
  436. package/tokens/month-formatter.d.ts +0 -5
  437. package/utils/phone.d.ts +0 -3
  438. package/utils/toggle-day.d.ts +0 -2
@@ -1,32 +1,37 @@
1
+ import { TuiLabel } from '@taiga-ui/core/components/label';
2
+ import { TUI_TEXTFIELD_OPTIONS, TuiTextfieldContent, TuiTextfieldComponent, TuiTextfieldOptionsDirective } from '@taiga-ui/core/components/textfield';
3
+ import { TuiDropdownContent } from '@taiga-ui/core/portals/dropdown';
1
4
  import * as i0 from '@angular/core';
2
- import { inject, computed, effect, input, untracked, Directive, signal, Input, ChangeDetectionStrategy, ViewEncapsulation, Component } from '@angular/core';
3
- import * as i2 from '@maskito/angular';
4
- import { MaskitoDirective } from '@maskito/angular';
5
- import { maskitoTransform } from '@maskito/core';
6
- import { maskitoParseNumber, maskitoNumberOptionsGenerator, maskitoCaretGuard } from '@maskito/kit';
7
- import { TuiControl, tuiAsControl, tuiValueTransformerFrom, TuiValueTransformer } from '@taiga-ui/cdk/classes';
8
- import { CHAR_MINUS, CHAR_HYPHEN } from '@taiga-ui/cdk/constants';
5
+ import { inject, input, computed, effect, Directive, untracked, ChangeDetectionStrategy, ViewEncapsulation, Component } from '@angular/core';
6
+ import { maskitoNumberOptionsGenerator, maskitoStringifyNumber, maskitoCaretGuard, maskitoParseNumber } from '@maskito/kit';
7
+ import { TuiValueTransformer, TUI_IDENTITY_VALUE_TRANSFORMER, TuiControl, tuiAsControl } from '@taiga-ui/cdk/classes';
9
8
  import { TUI_IS_IOS } from '@taiga-ui/cdk/tokens';
10
9
  import { tuiInjectElement } from '@taiga-ui/cdk/utils/dom';
11
- import { tuiIsSafeToRound, tuiRound, tuiClamp } from '@taiga-ui/cdk/utils/math';
12
- import * as i1 from '@taiga-ui/core/components/textfield';
13
- import { TuiTextfieldDirective, TuiWithTextfield, TUI_TEXTFIELD_OPTIONS, TuiTextfieldContent } from '@taiga-ui/core/components/textfield';
10
+ import * as i1$1 from '@taiga-ui/core/components/input';
11
+ import { TuiInputDirective, TuiWithInput } from '@taiga-ui/core/components/input';
12
+ import * as i1 from '@maskito/angular';
13
+ import { MaskitoDirective } from '@maskito/angular';
14
+ import { maskitoTransform } from '@maskito/core';
14
15
  import { TUI_NUMBER_FORMAT } from '@taiga-ui/core/tokens';
15
- import { tuiFormatNumber, tuiGetFractionPartPadded } from '@taiga-ui/core/utils/format';
16
16
  import { tuiMaskito } from '@taiga-ui/kit/utils';
17
- import { tuiCreateOptions } from '@taiga-ui/cdk/utils/di';
18
- import { tuiProvide } from '@taiga-ui/cdk/utils/miscellaneous';
17
+ import { CHAR_MINUS } from '@taiga-ui/cdk/constants';
18
+ import { tuiCreateOptions, tuiProvide } from '@taiga-ui/cdk/utils/di';
19
+ import { tuiRound, tuiIsSafeToRound, tuiClamp } from '@taiga-ui/cdk/utils/math';
20
+ import { tuiGetFractionPartPadded } from '@taiga-ui/core/utils/format';
19
21
  import { TUI_FLOATING_PRECISION } from '@taiga-ui/kit/components/slider';
22
+ import { identity, merge, fromEvent, Subject, switchMap, timer, expand, map, takeUntil } from 'rxjs';
20
23
  import { DOCUMENT } from '@angular/common';
21
24
  import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
22
25
  import { TuiButton } from '@taiga-ui/core/components/button';
23
- import { Subject, merge, fromEvent, switchMap, timer, expand, map, takeUntil } from 'rxjs';
26
+ import * as i1$2 from '@taiga-ui/kit/directives/appearance-proxy';
27
+ import { TuiAppearanceProxy } from '@taiga-ui/kit/directives/appearance-proxy';
24
28
 
25
29
  const TUI_INPUT_NUMBER_DEFAULT_OPTIONS = {
26
30
  min: Number.MIN_SAFE_INTEGER,
27
31
  max: Number.MAX_SAFE_INTEGER,
28
32
  prefix: '',
29
33
  postfix: '',
34
+ minusSign: CHAR_MINUS,
30
35
  step: 0,
31
36
  icons: {
32
37
  increase: '@tui.plus',
@@ -36,120 +41,53 @@ const TUI_INPUT_NUMBER_DEFAULT_OPTIONS = {
36
41
  };
37
42
  const [TUI_INPUT_NUMBER_OPTIONS, tuiInputNumberOptionsProvider] = tuiCreateOptions(TUI_INPUT_NUMBER_DEFAULT_OPTIONS);
38
43
 
39
- const DEFAULT_MAX_LENGTH = 18;
40
- class TuiInputNumberDirective extends TuiControl {
44
+ class TuiNumberMask {
41
45
  constructor() {
42
- super(...arguments);
43
46
  this.options = inject(TUI_INPUT_NUMBER_OPTIONS);
44
- this.textfield = inject(TuiTextfieldDirective);
45
- this.isIOS = inject(TUI_IS_IOS);
46
47
  this.numberFormat = inject(TUI_NUMBER_FORMAT);
47
- this.formatted = computed(() => maskitoParseNumber(this.textfield.value(), this.numberFormat()));
48
- this.precision = computed((precision = this.numberFormat().precision) => Number.isNaN(precision) ? 2 : precision);
49
- this.unfinished = computed((value = this.formatted()) => value < 0 ? value > this.max() : value < this.min());
50
- this.element = tuiInjectElement();
51
- this.mask = tuiMaskito(computed(() => this.computeMask(this.maskParams)));
52
- this.inputMode = computed(() => {
53
- if (this.isIOS) {
54
- return this.min() < 0
55
- ? 'text' // iPhone does not have minus sign if inputMode is equal to 'numeric' / 'decimal'
56
- : 'decimal';
57
- }
58
- /**
59
- * Samsung Keyboard does not have minus sign for `inputmode=decimal`
60
- * @see https://github.com/taiga-family/taiga-ui/issues/11061#issuecomment-2939103792
61
- */
62
- return 'numeric';
48
+ this.input = inject(TuiInputDirective);
49
+ this.prefix = input(this.options.prefix);
50
+ this.postfix = input(this.options.postfix);
51
+ this.maximumFractionDigits = computed((precision = this.numberFormat().precision) => Number.isNaN(precision) ? 2 : precision);
52
+ this.min = input(this.options.min, {
53
+ transform: (x) => x ?? this.options.min,
63
54
  });
64
- this.defaultMaxLength = computed(() => {
65
- const { decimalSeparator, thousandSeparator } = this.numberFormat();
66
- const decimalPart = !!this.precision() && this.textfield.value().includes(decimalSeparator);
67
- const precision = decimalPart ? Math.min(this.precision() + 1, 20) : 0;
68
- const takeThousand = thousandSeparator.repeat(5).length;
69
- return DEFAULT_MAX_LENGTH + precision + takeThousand;
55
+ this.max = input(this.options.max, {
56
+ transform: (x) => x ?? this.options.max,
70
57
  });
71
- this.onChangeEffect = effect(() => {
72
- const value = this.formatted();
73
- if (Number.isNaN(value) && !Number.isNaN(this.value())) {
74
- this.onChange(null);
75
- return;
76
- }
77
- if (this.unfinished() ||
78
- value < this.min() ||
79
- value > this.max() ||
80
- Object.is(this.value(), value)) {
81
- return;
82
- }
83
- this.onChange(value);
58
+ this.params = computed(() => {
59
+ const { decimalMode, ...numberFormat } = this.numberFormat();
60
+ const maximumFractionDigits = this.maximumFractionDigits();
61
+ return {
62
+ ...numberFormat,
63
+ ...this.options,
64
+ maximumFractionDigits,
65
+ min: this.min(),
66
+ max: this.max(),
67
+ prefix: this.prefix(),
68
+ postfix: this.postfix(),
69
+ minimumFractionDigits: decimalMode === 'always' ? maximumFractionDigits : 0,
70
+ };
84
71
  });
85
- this.maskInitialCalibrationEffect = effect(() => {
72
+ this.mask = tuiMaskito(computed(() => this.computeMask(this.params())));
73
+ this.maskInitialCalibration = effect(() => {
86
74
  const options = maskitoNumberOptionsGenerator({
87
- ...this.maskParams,
88
- min: Number.MIN_SAFE_INTEGER,
89
- max: Number.MAX_SAFE_INTEGER,
75
+ ...this.params(),
76
+ min: -Infinity,
77
+ max: Infinity,
90
78
  });
91
- this.textfield.value.update((x) => maskitoTransform(x, options));
92
- });
93
- this.min = computed(() => Math.min(this.minRaw(), this.maxRaw()));
94
- this.max = computed(() => Math.max(this.minRaw(), this.maxRaw()));
95
- this.prefix = input(this.options.prefix);
96
- this.postfix = input(this.options.postfix);
97
- this.minRaw = input(this.options.min, {
98
- alias: 'min',
99
- transform: (x) => this.transformer.fromControlValue(x ?? this.options.min),
79
+ this.input.value.update((x) => maskitoTransform(x, options));
100
80
  });
101
- this.maxRaw = input(this.options.max, {
102
- alias: 'max',
103
- transform: (x) => this.transformer.fromControlValue(x ?? this.options.max),
104
- });
105
- }
106
- writeValue(value) {
107
- const reset = this.control.pristine && this.control.untouched && !value;
108
- const changed = untracked(() => value !== this.value());
109
- if (changed || reset) {
110
- super.writeValue(value);
111
- untracked(() => this.setValue(this.value()));
112
- }
113
- }
114
- setValue(value) {
115
- this.textfield.value.set(this.formatNumber(value));
116
81
  }
117
- onFocus() {
118
- if (Number.isNaN(this.formatted()) && !this.readOnly()) {
119
- this.textfield.value.set(this.prefix() + this.postfix());
120
- }
121
- }
122
- get maskParams() {
123
- const { decimalMode, ...numberFormat } = this.numberFormat();
124
- const maximumFractionDigits = this.precision();
125
- return {
126
- ...numberFormat,
127
- maximumFractionDigits,
128
- min: this.min(),
129
- max: this.max(),
130
- prefix: this.prefix(),
131
- postfix: this.postfix(),
132
- minimumFractionDigits: decimalMode === 'always' ? maximumFractionDigits : 0,
133
- };
134
- }
135
- formatNumber(value) {
136
- if (value === null || Number.isNaN(value)) {
137
- return '';
138
- }
139
- return ((this.prefix() !== CHAR_MINUS ? this.prefix() : '') +
140
- tuiFormatNumber(value, {
141
- ...this.numberFormat(),
142
- /**
143
- * Number can satisfy interval [Number.MIN_SAFE_INTEGER; Number.MAX_SAFE_INTEGER]
144
- * but its rounding can violate it.
145
- * Before BigInt support there is no perfect solution – only trade off.
146
- * No rounding is better than lose precision and incorrect mutation of already valid value.
147
- */
148
- precision: tuiIsSafeToRound(value, this.precision())
149
- ? this.precision()
150
- : Infinity,
151
- }).replace(CHAR_HYPHEN, CHAR_MINUS) +
152
- this.postfix());
82
+ stringify(value) {
83
+ const params = this.params();
84
+ return maskitoStringifyNumber(value ?? null, {
85
+ ...params,
86
+ minimumFractionDigits: String(value).includes(params.decimalSeparator) &&
87
+ this.numberFormat().decimalMode !== 'not-zero'
88
+ ? params.maximumFractionDigits
89
+ : 0,
90
+ });
153
91
  }
154
92
  computeMask(params) {
155
93
  const { prefix = '', postfix = '' } = params;
@@ -165,84 +103,192 @@ class TuiInputNumberDirective extends TuiControl {
165
103
  ],
166
104
  };
167
105
  }
168
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiInputNumberDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
169
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.15", type: TuiInputNumberDirective, isStandalone: true, selector: "input[tuiInputNumber]", inputs: { prefix: { classPropertyName: "prefix", publicName: "prefix", isSignal: true, isRequired: false, transformFunction: null }, postfix: { classPropertyName: "postfix", publicName: "postfix", isSignal: true, isRequired: false, transformFunction: null }, minRaw: { classPropertyName: "minRaw", publicName: "min", isSignal: true, isRequired: false, transformFunction: null }, maxRaw: { classPropertyName: "maxRaw", publicName: "max", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "focusout": "setValue(transformer.fromControlValue(control.value))", "focus": "onFocus()" }, properties: { "disabled": "disabled()", "attr.inputMode": "inputMode()", "attr.maxLength": "element.maxLength > 0 ? element.maxLength : defaultMaxLength()" } }, providers: [
170
- tuiAsControl(TuiInputNumberDirective),
171
- tuiValueTransformerFrom(TUI_INPUT_NUMBER_OPTIONS),
172
- ], usesInheritance: true, hostDirectives: [{ directive: i1.TuiWithTextfield }, { directive: i2.MaskitoDirective }], ngImport: i0 }); }
106
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiNumberMask, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
107
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.17", type: TuiNumberMask, isStandalone: true, inputs: { prefix: { classPropertyName: "prefix", publicName: "prefix", isSignal: true, isRequired: false, transformFunction: null }, postfix: { classPropertyName: "postfix", publicName: "postfix", isSignal: true, isRequired: false, transformFunction: null }, min: { classPropertyName: "min", publicName: "min", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null } }, hostDirectives: [{ directive: i1.MaskitoDirective }], ngImport: i0 }); }
173
108
  }
174
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiInputNumberDirective, decorators: [{
109
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiNumberMask, decorators: [{
110
+ type: Directive,
111
+ args: [{ hostDirectives: [MaskitoDirective] }]
112
+ }] });
113
+ class TuiWithNumberMask {
114
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiWithNumberMask, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
115
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.17", type: TuiWithNumberMask, isStandalone: true, hostDirectives: [{ directive: TuiNumberMask, inputs: ["min", "min", "max", "max", "prefix", "prefix", "postfix", "postfix"] }], ngImport: i0 }); }
116
+ }
117
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiWithNumberMask, decorators: [{
175
118
  type: Directive,
176
119
  args: [{
177
- selector: 'input[tuiInputNumber]',
178
- providers: [
179
- tuiAsControl(TuiInputNumberDirective),
180
- tuiValueTransformerFrom(TUI_INPUT_NUMBER_OPTIONS),
120
+ hostDirectives: [
121
+ {
122
+ directive: TuiNumberMask,
123
+ inputs: ['min', 'max', 'prefix', 'postfix'],
124
+ },
181
125
  ],
182
- hostDirectives: [TuiWithTextfield, MaskitoDirective],
183
- host: {
184
- '[disabled]': 'disabled()',
185
- '[attr.inputMode]': 'inputMode()',
186
- '[attr.maxLength]': 'element.maxLength > 0 ? element.maxLength : defaultMaxLength()',
187
- '(focusout)': 'setValue(transformer.fromControlValue(control.value))',
188
- '(focus)': 'onFocus()',
189
- },
190
126
  }]
191
127
  }] });
192
128
 
193
129
  class TuiQuantumValueTransformerBase extends TuiValueTransformer {
194
- // eslint-disable-next-line @typescript-eslint/parameter-properties
130
+ // eslint-disable-next-line @typescript-eslint/parameter-properties,@angular-eslint/prefer-inject
195
131
  constructor(quantum = 0) {
196
132
  super();
197
133
  this.quantum = quantum;
198
- this.parent = null;
199
- }
200
- fromControlValue(controlValue) {
201
- return this.parent?.fromControlValue(controlValue) ?? controlValue;
134
+ this.fromControlValue = identity;
202
135
  }
203
- toControlValue(internalValue) {
204
- const value = this.parent?.toControlValue(internalValue) ?? internalValue;
136
+ toControlValue(value) {
205
137
  return value != null &&
206
138
  this.quantum > 0 &&
207
139
  tuiIsSafeToRound(value, tuiGetFractionPartPadded(this.quantum).length)
208
140
  ? tuiRound(Math.round(value / this.quantum) * this.quantum, TUI_FLOATING_PRECISION)
209
141
  : value;
210
142
  }
211
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiQuantumValueTransformerBase, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive }); }
212
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.15", type: TuiQuantumValueTransformerBase, isStandalone: true, usesInheritance: true, ngImport: i0 }); }
143
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiQuantumValueTransformerBase, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive }); }
144
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.17", type: TuiQuantumValueTransformerBase, isStandalone: true, usesInheritance: true, ngImport: i0 }); }
213
145
  }
214
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiQuantumValueTransformerBase, decorators: [{
146
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiQuantumValueTransformerBase, decorators: [{
215
147
  type: Directive
216
148
  }], ctorParameters: () => [{ type: undefined }] });
217
149
  class TuiQuantumValueTransformer extends TuiQuantumValueTransformerBase {
218
150
  constructor() {
219
151
  super(0);
220
- this.parent = inject(TUI_INPUT_NUMBER_OPTIONS).valueTransformer;
221
152
  }
222
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiQuantumValueTransformer, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
223
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.15", type: TuiQuantumValueTransformer, isStandalone: true, selector: "[tuiInputNumber][quantum]", inputs: { quantum: "quantum" }, providers: [tuiProvide(TuiValueTransformer, TuiQuantumValueTransformer)], usesInheritance: true, ngImport: i0 }); }
153
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiQuantumValueTransformer, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
154
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.17", type: TuiQuantumValueTransformer, isStandalone: true, selector: "[tuiInputNumber][quantum]:not([bigint])", inputs: { quantum: "quantum" }, usesInheritance: true, ngImport: i0 }); }
224
155
  }
225
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiQuantumValueTransformer, decorators: [{
156
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiQuantumValueTransformer, decorators: [{
226
157
  type: Directive,
227
158
  args: [{
228
- selector: '[tuiInputNumber][quantum]',
159
+ selector: '[tuiInputNumber][quantum]:not([bigint])',
229
160
  inputs: ['quantum'],
230
- providers: [tuiProvide(TuiValueTransformer, TuiQuantumValueTransformer)],
231
161
  }]
232
162
  }], ctorParameters: () => [] });
233
- class TuiWithQuantumValueTransformer {
234
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiWithQuantumValueTransformer, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
235
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.15", type: TuiWithQuantumValueTransformer, isStandalone: true, hostDirectives: [{ directive: TuiQuantumValueTransformer, inputs: ["quantum", "quantum"] }], ngImport: i0 }); }
163
+ class TuiBigIntQuantumValueTransformer extends TuiValueTransformer {
164
+ constructor() {
165
+ super(...arguments);
166
+ this.quantum = input(BigInt(0));
167
+ this.fromControlValue = identity;
168
+ }
169
+ toControlValue(value) {
170
+ if (!this.quantum() || !value) {
171
+ return value;
172
+ }
173
+ const floor = (value / this.quantum()) * this.quantum();
174
+ const remainder = value % this.quantum();
175
+ return (floor + (BigInt(2) * remainder >= this.quantum() ? this.quantum() : BigInt(0)));
176
+ }
177
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiBigIntQuantumValueTransformer, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
178
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.17", type: TuiBigIntQuantumValueTransformer, isStandalone: true, selector: "[tuiInputNumber][bigint][quantum]", inputs: { quantum: { classPropertyName: "quantum", publicName: "quantum", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0 }); }
179
+ }
180
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiBigIntQuantumValueTransformer, decorators: [{
181
+ type: Directive,
182
+ args: [{ selector: '[tuiInputNumber][bigint][quantum]' }]
183
+ }] });
184
+
185
+ class TuiNumberValueTransformer extends TuiValueTransformer {
186
+ constructor() {
187
+ super(...arguments);
188
+ this.mask = inject(TuiNumberMask);
189
+ this.quantumTransformer = inject(TuiQuantumValueTransformer, { optional: true }) ??
190
+ TUI_IDENTITY_VALUE_TRANSFORMER;
191
+ this.optionsTransformer = inject(TUI_INPUT_NUMBER_OPTIONS).valueTransformer ??
192
+ TUI_IDENTITY_VALUE_TRANSFORMER;
193
+ }
194
+ toControlValue(textfieldValue) {
195
+ const parsed = maskitoParseNumber(textfieldValue ?? '', this.mask.params());
196
+ return this.optionsTransformer.toControlValue(this.quantumTransformer.toControlValue(Number.isNaN(parsed) ? null : parsed));
197
+ }
198
+ fromControlValue(controlValue) {
199
+ return this.mask.stringify(this.optionsTransformer.fromControlValue(controlValue));
200
+ }
201
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiNumberValueTransformer, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
202
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.17", type: TuiNumberValueTransformer, isStandalone: true, providers: [tuiProvide(TuiValueTransformer, TuiNumberValueTransformer)], usesInheritance: true, ngImport: i0 }); }
236
203
  }
237
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiWithQuantumValueTransformer, decorators: [{
204
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiNumberValueTransformer, decorators: [{
238
205
  type: Directive,
239
206
  args: [{
240
- hostDirectives: [
241
- {
242
- directive: TuiQuantumValueTransformer,
243
- inputs: ['quantum'],
244
- },
245
- ],
207
+ providers: [tuiProvide(TuiValueTransformer, TuiNumberValueTransformer)],
208
+ }]
209
+ }] });
210
+
211
+ const DEFAULT_MAX_LENGTH = 18;
212
+ class TuiInputNumberDirective extends TuiControl {
213
+ constructor() {
214
+ super(...arguments);
215
+ this.mask = inject(TuiNumberMask);
216
+ this.input = inject(TuiInputDirective);
217
+ this.isIOS = inject(TUI_IS_IOS);
218
+ this.element = tuiInjectElement();
219
+ this.inputMode = computed(() => {
220
+ if (this.isIOS) {
221
+ return this.mask.min() < 0
222
+ ? 'text' // iPhone does not have minus sign if inputMode is equal to 'numeric' / 'decimal'
223
+ : 'decimal';
224
+ }
225
+ /**
226
+ * Samsung Keyboard does not have minus sign for `inputmode=decimal`
227
+ * @see https://github.com/taiga-family/taiga-ui/issues/11061#issuecomment-2939103792
228
+ */
229
+ return 'numeric';
230
+ });
231
+ this.defaultMaxLength = computed(() => {
232
+ const { decimalSeparator, thousandSeparator, maximumFractionDigits, prefix, postfix, min, max, } = this.mask.params();
233
+ if (!Number.isFinite(min) || !Number.isFinite(max)) {
234
+ return -1;
235
+ }
236
+ const decimalPart = !!maximumFractionDigits && this.input.value().includes(decimalSeparator);
237
+ const precision = decimalPart ? Math.min(maximumFractionDigits + 1, 20) : 0;
238
+ const takeThousand = thousandSeparator.repeat(5).length;
239
+ const affixes = prefix.length + postfix.length;
240
+ return DEFAULT_MAX_LENGTH + precision + takeThousand + affixes;
241
+ });
242
+ this.parsed = computed(() => this.parse(this.input.value()));
243
+ this.onChangeEffect = effect(() => {
244
+ const changed = !Object.is(this.input.value().replaceAll(/\D/g, ''), untracked(() => this.value()?.replaceAll(/\D/g, '')) ?? '');
245
+ const value = this.parsed();
246
+ const valid = Number.isNaN(value) || (value >= this.mask.min() && value <= this.mask.max());
247
+ if (changed && valid) {
248
+ this.onChange(this.input.value());
249
+ }
250
+ });
251
+ }
252
+ writeValue(value) {
253
+ const reset = this.control.pristine && this.control.untouched && !value;
254
+ const changed = untracked(() => value !== this.transformer.toControlValue(this.value()));
255
+ if (changed || reset) {
256
+ super.writeValue(value);
257
+ untracked(() => this.input.value.set(this.value()));
258
+ }
259
+ }
260
+ setValue(value) {
261
+ this.input.value.set(typeof value === 'string' ? value : this.mask.stringify(value));
262
+ }
263
+ onFocus() {
264
+ if (!this.input.value() && !this.readOnly()) {
265
+ this.input.value.set(this.mask.prefix() + this.mask.postfix());
266
+ }
267
+ }
268
+ parse(value) {
269
+ const params = this.mask.params();
270
+ const possibleTooBig = !Number.isFinite(this.mask.min()) || !Number.isFinite(this.mask.max());
271
+ return (maskitoParseNumber(value, {
272
+ ...params,
273
+ bigint: !value.includes(params.decimalSeparator) && possibleTooBig,
274
+ }) ?? NaN);
275
+ }
276
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiInputNumberDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
277
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.17", type: TuiInputNumberDirective, isStandalone: true, selector: "input[tuiInputNumber]", host: { listeners: { "focusout": "setValue(transformer.fromControlValue(control.value))", "focus": "onFocus()" }, properties: { "disabled": "disabled()", "attr.inputMode": "inputMode()", "attr.maxLength": "element.maxLength > 0 ? element.maxLength : defaultMaxLength()" } }, providers: [tuiAsControl(TuiInputNumberDirective)], usesInheritance: true, hostDirectives: [{ directive: i1$1.TuiWithInput }, { directive: TuiWithNumberMask }, { directive: TuiNumberValueTransformer }], ngImport: i0 }); }
278
+ }
279
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiInputNumberDirective, decorators: [{
280
+ type: Directive,
281
+ args: [{
282
+ selector: 'input[tuiInputNumber]',
283
+ providers: [tuiAsControl(TuiInputNumberDirective)],
284
+ hostDirectives: [TuiWithInput, TuiWithNumberMask, TuiNumberValueTransformer],
285
+ host: {
286
+ '[disabled]': 'disabled()',
287
+ '[attr.inputMode]': 'inputMode()',
288
+ '[attr.maxLength]': 'element.maxLength > 0 ? element.maxLength : defaultMaxLength()',
289
+ '(focusout)': 'setValue(transformer.fromControlValue(control.value))',
290
+ '(focus)': 'onFocus()',
291
+ },
246
292
  }]
247
293
  }] });
248
294
 
@@ -251,56 +297,90 @@ const DELAY_DECREMENT = 15;
251
297
  const MIN_DELAY = 100;
252
298
  class TuiInputNumberStep {
253
299
  constructor() {
300
+ this.doc = inject(DOCUMENT);
254
301
  this.el = tuiInjectElement();
302
+ this.stop$ = merge(fromEvent(this.doc, 'pointerup'), fromEvent(this.doc, 'pointerleave'), fromEvent(this.doc, 'pointercancel'));
255
303
  this.appearance = inject(TUI_TEXTFIELD_OPTIONS).appearance;
256
304
  this.options = inject(TUI_INPUT_NUMBER_OPTIONS);
305
+ this.mask = inject(TuiNumberMask, { self: true });
257
306
  this.input = inject(TuiInputNumberDirective, { self: true });
258
- this.step = signal(this.options.step);
259
- this.value = computed(() => this.input.value() ?? NaN);
260
307
  this.step$ = new Subject();
261
- this.doc = inject(DOCUMENT);
262
- this.stop$ = merge(fromEvent(this.doc, 'pointerup'), fromEvent(this.doc, 'pointerleave'), fromEvent(this.doc, 'pointercancel'));
263
308
  this.stepping = this.step$
264
309
  .pipe(switchMap((value) => timer(INITIAL_DELAY).pipe(expand((_, index) => timer(getDelay(index))), map(() => value), takeUntil(this.stop$))), takeUntilDestroyed())
265
310
  .subscribe((value) => this.onStep(value));
266
- }
267
- // TODO(v5): replace with signal input
268
- set stepSetter(x) {
269
- this.step.set(x);
311
+ this.step = input(this.options.step);
270
312
  }
271
313
  onStep(step) {
272
- const current = this.input.value() ?? 0;
273
- this.input.setValue(tuiClamp(current + step, this.input.min(), this.input.max()));
314
+ const value = this.input.parsed() || 0;
315
+ this.input.setValue(tuiClamp(
316
+ /**
317
+ * Without explicit conversion it throws
318
+ * TS2365: Operator + cannot be applied to types `number | bigint` and `number | bigint`
319
+ */
320
+ typeof value === 'bigint' ? value + BigInt(step) : value + Number(step), this.mask.min(), this.mask.max()));
274
321
  this.el.setSelectionRange(Number.MAX_SAFE_INTEGER, Number.MAX_SAFE_INTEGER);
275
322
  }
276
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiInputNumberStep, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
277
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.15", type: TuiInputNumberStep, isStandalone: true, selector: "input[tuiInputNumber][step]", inputs: { stepSetter: ["step", "stepSetter"] }, host: { attributes: { "ngSkipHydration": "true" }, listeners: { "keydown.arrowDown.prevent": "onStep(-step())", "keydown.arrowUp.prevent": "onStep(step())" }, properties: { "class._with-buttons": "step()" } }, ngImport: i0, template: "<ng-container *tuiTextfieldContent>\n @if (step()) {\n <section class=\"t-input-number-buttons\">\n <button\n size=\"s\"\n tabindex=\"-1\"\n tuiIconButton\n type=\"button\"\n class=\"t-button\"\n [appearance]=\"appearance()\"\n [disabled]=\"!input.interactive() || value() >= input.max()\"\n [iconStart]=\"options.icons.increase\"\n (click.prevent)=\"onStep(step())\"\n (pointerdown.prevent)=\"step$.next(step())\"\n >\n +\n </button>\n <button\n size=\"s\"\n tabindex=\"-1\"\n tuiIconButton\n type=\"button\"\n class=\"t-button\"\n [appearance]=\"appearance()\"\n [disabled]=\"!input.interactive() || value() <= input.min()\"\n [iconStart]=\"options.icons.decrease\"\n (click.prevent)=\"onStep(-step())\"\n (pointerdown.prevent)=\"step$.next(-step())\"\n >\n -\n </button>\n </section>\n }\n</ng-container>\n", styles: [".t-input-number-buttons.t-input-number-buttons{position:absolute;right:0;display:flex;block-size:var(--t-height);flex-direction:column;gap:.125rem;border-radius:inherit}@supports (inset-inline-end: 0){.t-input-number-buttons.t-input-number-buttons{right:unset;inset-inline-end:0}}tui-textfield[data-size=s] .t-input-number-buttons.t-input-number-buttons{flex-direction:row-reverse}.t-input-number-buttons.t-input-number-buttons>*{flex:1 1 0;border-radius:0}.t-input-number-buttons.t-input-number-buttons>*:first-child{border-top-right-radius:inherit}.t-input-number-buttons.t-input-number-buttons>*:last-child{border-bottom-right-radius:inherit}[dir=rtl] .t-input-number-buttons.t-input-number-buttons>*:first-child{border-radius:0;border-top-left-radius:inherit}[dir=rtl] .t-input-number-buttons.t-input-number-buttons>*:last-child{border-radius:0;border-bottom-left-radius:inherit}tui-textfield[data-size=l] .t-input-number-buttons.t-input-number-buttons>*{inline-size:var(--tui-height-m)}tui-textfield[data-size=s] .t-input-number-buttons.t-input-number-buttons>*:first-child{border-top-right-radius:inherit;border-bottom-right-radius:inherit}tui-textfield[data-size=s] .t-input-number-buttons.t-input-number-buttons>*:last-child{border-radius:0}[tuiInputNumber]._with-buttons{border-top-right-radius:0;border-bottom-right-radius:0}[dir=rtl] [tuiInputNumber]._with-buttons{border-radius:inherit;border-top-left-radius:0;border-bottom-left-radius:0}tui-textfield[data-size=l]{--t-input-number-offset-end: calc(var(--tui-height-m) + .125rem)}tui-textfield[data-size=m]{--t-input-number-offset-end: calc(var(--tui-height-s) + .125rem)}tui-textfield[data-size=s]{--t-input-number-offset-end: calc(2 * var(--tui-height-s) + .25rem)}[tuiInputNumber]._with-buttons,[tuiInputNumber]._with-buttons~.t-template{inline-size:calc(100% - var(--t-input-number-offset-end));margin-inline-end:var(--t-input-number-offset-end)}[tuiInputNumber]._with-buttons~.t-content{margin-inline-end:var(--t-input-number-offset-end)}\n"], dependencies: [{ kind: "directive", type: TuiButton, selector: "a[tuiButton],button[tuiButton],a[tuiIconButton],button[tuiIconButton]", inputs: ["size"] }, { kind: "directive", type: TuiTextfieldContent, selector: "ng-template[tuiTextfieldContent]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
323
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiInputNumberStep, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
324
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.17", type: TuiInputNumberStep, isStandalone: true, selector: "input[tuiInputNumber][step]", inputs: { step: { classPropertyName: "step", publicName: "step", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "ngSkipHydration": "true" }, listeners: { "keydown.arrowDown.prevent": "onStep(-step())", "keydown.arrowUp.prevent": "onStep(step())" }, properties: { "class._with-buttons": "step()" } }, hostDirectives: [{ directive: i1$2.TuiAppearanceProxy }], ngImport: i0, template: "<ng-container *tuiTextfieldContent>\n @if (step()) {\n <section class=\"t-input-number-buttons\">\n <button\n size=\"s\"\n tabindex=\"-1\"\n tuiIconButton\n type=\"button\"\n class=\"t-button\"\n [appearance]=\"appearance()\"\n [disabled]=\"!input.interactive() || input.parsed() >= mask.max()\"\n [iconStart]=\"options.icons.increase\"\n (click.prevent)=\"onStep(step())\"\n (pointerdown.prevent)=\"step$.next(step())\"\n >\n +\n </button>\n <button\n size=\"s\"\n tabindex=\"-1\"\n tuiIconButton\n type=\"button\"\n class=\"t-button\"\n [appearance]=\"appearance()\"\n [disabled]=\"!input.interactive() || input.parsed() <= mask.min()\"\n [iconStart]=\"options.icons.decrease\"\n (click.prevent)=\"onStep(-step())\"\n (pointerdown.prevent)=\"step$.next(-step())\"\n >\n -\n </button>\n </section>\n }\n</ng-container>\n", styles: [".t-input-number-buttons.t-input-number-buttons{position:absolute;display:flex;inset-inline-end:0;block-size:var(--t-height);flex-direction:column;gap:.125rem;border-radius:inherit}tui-textfield[data-size=s] .t-input-number-buttons.t-input-number-buttons{flex-direction:row-reverse}.t-input-number-buttons.t-input-number-buttons>*{flex:1 1 0;border-radius:0}.t-input-number-buttons.t-input-number-buttons>*:first-child{border-top-right-radius:inherit}.t-input-number-buttons.t-input-number-buttons>*:last-child{border-bottom-right-radius:inherit}[dir=rtl] .t-input-number-buttons.t-input-number-buttons>*:first-child{border-radius:0;border-top-left-radius:inherit}[dir=rtl] .t-input-number-buttons.t-input-number-buttons>*:last-child{border-radius:0;border-bottom-left-radius:inherit}tui-textfield[data-size=l] .t-input-number-buttons.t-input-number-buttons>*{inline-size:var(--tui-height-m)}tui-textfield[data-size=s] .t-input-number-buttons.t-input-number-buttons>*:first-child{border-top-right-radius:inherit;border-bottom-right-radius:inherit}tui-textfield[data-size=s] .t-input-number-buttons.t-input-number-buttons>*:last-child{border-radius:0}[tuiInputNumber]._with-buttons{border-top-right-radius:0;border-bottom-right-radius:0}[dir=rtl] [tuiInputNumber]._with-buttons{border-radius:inherit;border-top-left-radius:0;border-bottom-left-radius:0}tui-textfield[data-size=l]{--t-input-number-offset-end: calc(var(--tui-height-m) + .125rem)}tui-textfield[data-size=m]{--t-input-number-offset-end: calc(var(--tui-height-s) + .125rem)}tui-textfield[data-size=s]{--t-input-number-offset-end: calc(2 * var(--tui-height-s) + .25rem)}[tuiInputNumber]._with-buttons,[tuiInputNumber]._with-buttons~.t-template{inline-size:calc(100% - var(--t-input-number-offset-end));margin-inline-end:var(--t-input-number-offset-end)}[tuiInputNumber]._with-buttons~.t-content{margin-inline-end:var(--t-input-number-offset-end)}\n"], dependencies: [{ kind: "directive", type: TuiButton, selector: "a[tuiButton],button[tuiButton],a[tuiIconButton],button[tuiIconButton]", inputs: ["size"] }, { kind: "directive", type: TuiTextfieldContent, selector: "ng-template[tuiTextfieldContent]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
278
325
  }
279
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiInputNumberStep, decorators: [{
326
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiInputNumberStep, decorators: [{
280
327
  type: Component,
281
- args: [{ selector: 'input[tuiInputNumber][step]', imports: [TuiButton, TuiTextfieldContent], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
328
+ args: [{ selector: 'input[tuiInputNumber][step]', imports: [TuiButton, TuiTextfieldContent], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, hostDirectives: [TuiAppearanceProxy], host: {
282
329
  ngSkipHydration: 'true',
283
330
  '(keydown.arrowDown.prevent)': 'onStep(-step())',
284
331
  '(keydown.arrowUp.prevent)': 'onStep(step())',
285
332
  '[class._with-buttons]': 'step()',
286
- }, template: "<ng-container *tuiTextfieldContent>\n @if (step()) {\n <section class=\"t-input-number-buttons\">\n <button\n size=\"s\"\n tabindex=\"-1\"\n tuiIconButton\n type=\"button\"\n class=\"t-button\"\n [appearance]=\"appearance()\"\n [disabled]=\"!input.interactive() || value() >= input.max()\"\n [iconStart]=\"options.icons.increase\"\n (click.prevent)=\"onStep(step())\"\n (pointerdown.prevent)=\"step$.next(step())\"\n >\n +\n </button>\n <button\n size=\"s\"\n tabindex=\"-1\"\n tuiIconButton\n type=\"button\"\n class=\"t-button\"\n [appearance]=\"appearance()\"\n [disabled]=\"!input.interactive() || value() <= input.min()\"\n [iconStart]=\"options.icons.decrease\"\n (click.prevent)=\"onStep(-step())\"\n (pointerdown.prevent)=\"step$.next(-step())\"\n >\n -\n </button>\n </section>\n }\n</ng-container>\n", styles: [".t-input-number-buttons.t-input-number-buttons{position:absolute;right:0;display:flex;block-size:var(--t-height);flex-direction:column;gap:.125rem;border-radius:inherit}@supports (inset-inline-end: 0){.t-input-number-buttons.t-input-number-buttons{right:unset;inset-inline-end:0}}tui-textfield[data-size=s] .t-input-number-buttons.t-input-number-buttons{flex-direction:row-reverse}.t-input-number-buttons.t-input-number-buttons>*{flex:1 1 0;border-radius:0}.t-input-number-buttons.t-input-number-buttons>*:first-child{border-top-right-radius:inherit}.t-input-number-buttons.t-input-number-buttons>*:last-child{border-bottom-right-radius:inherit}[dir=rtl] .t-input-number-buttons.t-input-number-buttons>*:first-child{border-radius:0;border-top-left-radius:inherit}[dir=rtl] .t-input-number-buttons.t-input-number-buttons>*:last-child{border-radius:0;border-bottom-left-radius:inherit}tui-textfield[data-size=l] .t-input-number-buttons.t-input-number-buttons>*{inline-size:var(--tui-height-m)}tui-textfield[data-size=s] .t-input-number-buttons.t-input-number-buttons>*:first-child{border-top-right-radius:inherit;border-bottom-right-radius:inherit}tui-textfield[data-size=s] .t-input-number-buttons.t-input-number-buttons>*:last-child{border-radius:0}[tuiInputNumber]._with-buttons{border-top-right-radius:0;border-bottom-right-radius:0}[dir=rtl] [tuiInputNumber]._with-buttons{border-radius:inherit;border-top-left-radius:0;border-bottom-left-radius:0}tui-textfield[data-size=l]{--t-input-number-offset-end: calc(var(--tui-height-m) + .125rem)}tui-textfield[data-size=m]{--t-input-number-offset-end: calc(var(--tui-height-s) + .125rem)}tui-textfield[data-size=s]{--t-input-number-offset-end: calc(2 * var(--tui-height-s) + .25rem)}[tuiInputNumber]._with-buttons,[tuiInputNumber]._with-buttons~.t-template{inline-size:calc(100% - var(--t-input-number-offset-end));margin-inline-end:var(--t-input-number-offset-end)}[tuiInputNumber]._with-buttons~.t-content{margin-inline-end:var(--t-input-number-offset-end)}\n"] }]
287
- }], propDecorators: { stepSetter: [{
288
- type: Input,
289
- args: ['step']
290
- }] } });
333
+ }, template: "<ng-container *tuiTextfieldContent>\n @if (step()) {\n <section class=\"t-input-number-buttons\">\n <button\n size=\"s\"\n tabindex=\"-1\"\n tuiIconButton\n type=\"button\"\n class=\"t-button\"\n [appearance]=\"appearance()\"\n [disabled]=\"!input.interactive() || input.parsed() >= mask.max()\"\n [iconStart]=\"options.icons.increase\"\n (click.prevent)=\"onStep(step())\"\n (pointerdown.prevent)=\"step$.next(step())\"\n >\n +\n </button>\n <button\n size=\"s\"\n tabindex=\"-1\"\n tuiIconButton\n type=\"button\"\n class=\"t-button\"\n [appearance]=\"appearance()\"\n [disabled]=\"!input.interactive() || input.parsed() <= mask.min()\"\n [iconStart]=\"options.icons.decrease\"\n (click.prevent)=\"onStep(-step())\"\n (pointerdown.prevent)=\"step$.next(-step())\"\n >\n -\n </button>\n </section>\n }\n</ng-container>\n", styles: [".t-input-number-buttons.t-input-number-buttons{position:absolute;display:flex;inset-inline-end:0;block-size:var(--t-height);flex-direction:column;gap:.125rem;border-radius:inherit}tui-textfield[data-size=s] .t-input-number-buttons.t-input-number-buttons{flex-direction:row-reverse}.t-input-number-buttons.t-input-number-buttons>*{flex:1 1 0;border-radius:0}.t-input-number-buttons.t-input-number-buttons>*:first-child{border-top-right-radius:inherit}.t-input-number-buttons.t-input-number-buttons>*:last-child{border-bottom-right-radius:inherit}[dir=rtl] .t-input-number-buttons.t-input-number-buttons>*:first-child{border-radius:0;border-top-left-radius:inherit}[dir=rtl] .t-input-number-buttons.t-input-number-buttons>*:last-child{border-radius:0;border-bottom-left-radius:inherit}tui-textfield[data-size=l] .t-input-number-buttons.t-input-number-buttons>*{inline-size:var(--tui-height-m)}tui-textfield[data-size=s] .t-input-number-buttons.t-input-number-buttons>*:first-child{border-top-right-radius:inherit;border-bottom-right-radius:inherit}tui-textfield[data-size=s] .t-input-number-buttons.t-input-number-buttons>*:last-child{border-radius:0}[tuiInputNumber]._with-buttons{border-top-right-radius:0;border-bottom-right-radius:0}[dir=rtl] [tuiInputNumber]._with-buttons{border-radius:inherit;border-top-left-radius:0;border-bottom-left-radius:0}tui-textfield[data-size=l]{--t-input-number-offset-end: calc(var(--tui-height-m) + .125rem)}tui-textfield[data-size=m]{--t-input-number-offset-end: calc(var(--tui-height-s) + .125rem)}tui-textfield[data-size=s]{--t-input-number-offset-end: calc(2 * var(--tui-height-s) + .25rem)}[tuiInputNumber]._with-buttons,[tuiInputNumber]._with-buttons~.t-template{inline-size:calc(100% - var(--t-input-number-offset-end));margin-inline-end:var(--t-input-number-offset-end)}[tuiInputNumber]._with-buttons~.t-content{margin-inline-end:var(--t-input-number-offset-end)}\n"] }]
334
+ }] });
291
335
  function getDelay(index) {
292
336
  return Math.max(INITIAL_DELAY - index * DELAY_DECREMENT, MIN_DELAY);
293
337
  }
294
338
 
339
+ class TuiBigIntValueTransformer extends TuiValueTransformer {
340
+ constructor() {
341
+ super(...arguments);
342
+ this.quantumTransformer = inject(TuiBigIntQuantumValueTransformer, { optional: true }) ??
343
+ TUI_IDENTITY_VALUE_TRANSFORMER;
344
+ this.optionsTransformer = inject(TUI_INPUT_NUMBER_OPTIONS).valueTransformer ??
345
+ TUI_IDENTITY_VALUE_TRANSFORMER;
346
+ this.mask = inject(TuiNumberMask);
347
+ }
348
+ toControlValue(textfieldValue) {
349
+ return this.optionsTransformer.toControlValue(this.quantumTransformer.toControlValue(maskitoParseNumber(textfieldValue ?? '', {
350
+ ...this.mask.params(),
351
+ bigint: true,
352
+ })));
353
+ }
354
+ fromControlValue(controlValue) {
355
+ return this.mask.stringify(this.optionsTransformer.fromControlValue(controlValue));
356
+ }
357
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiBigIntValueTransformer, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
358
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.17", type: TuiBigIntValueTransformer, isStandalone: true, selector: "[tuiInputNumber][bigint]", providers: [tuiProvide(TuiValueTransformer, TuiBigIntValueTransformer)], usesInheritance: true, ngImport: i0 }); }
359
+ }
360
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiBigIntValueTransformer, decorators: [{
361
+ type: Directive,
362
+ args: [{
363
+ selector: '[tuiInputNumber][bigint]',
364
+ providers: [tuiProvide(TuiValueTransformer, TuiBigIntValueTransformer)],
365
+ }]
366
+ }] });
367
+
295
368
  const TuiInputNumber = [
296
369
  TuiInputNumberDirective,
370
+ TuiNumberMask,
297
371
  TuiInputNumberStep,
372
+ TuiBigIntValueTransformer,
298
373
  TuiQuantumValueTransformer,
374
+ TuiBigIntQuantumValueTransformer,
375
+ TuiLabel,
376
+ TuiTextfieldComponent,
377
+ TuiTextfieldOptionsDirective,
378
+ TuiDropdownContent,
299
379
  ];
300
380
 
301
381
  /**
302
382
  * Generated bundle index. Do not edit.
303
383
  */
304
384
 
305
- export { TUI_INPUT_NUMBER_DEFAULT_OPTIONS, TUI_INPUT_NUMBER_OPTIONS, TuiInputNumber, TuiInputNumberDirective, TuiInputNumberStep, TuiQuantumValueTransformer, TuiQuantumValueTransformerBase, TuiWithQuantumValueTransformer, tuiInputNumberOptionsProvider };
385
+ export { TUI_INPUT_NUMBER_DEFAULT_OPTIONS, TUI_INPUT_NUMBER_OPTIONS, TuiBigIntQuantumValueTransformer, TuiBigIntValueTransformer, TuiInputNumber, TuiInputNumberDirective, TuiInputNumberStep, TuiNumberMask, TuiNumberValueTransformer, TuiQuantumValueTransformer, TuiQuantumValueTransformerBase, TuiWithNumberMask, tuiInputNumberOptionsProvider };
306
386
  //# sourceMappingURL=taiga-ui-kit-components-input-number.mjs.map