@taiga-ui/kit 4.52.0-canary.e444d19 → 4.52.0-canary.e53e79e

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 (447) hide show
  1. package/README.md +1 -1
  2. package/components/accordion/accordion.component.d.ts +13 -0
  3. package/components/accordion/accordion.d.ts +4 -4
  4. package/components/accordion/accordion.directive.d.ts +11 -10
  5. package/components/accordion/index.d.ts +1 -3
  6. package/components/action-bar/action-bar.component.d.ts +5 -7
  7. package/components/action-bar/index.d.ts +0 -2
  8. package/components/avatar/avatar-outline.directive.d.ts +3 -3
  9. package/components/avatar/avatar.directive.d.ts +15 -0
  10. package/components/avatar/avatar.options.d.ts +1 -4
  11. package/components/avatar/index.d.ts +1 -1
  12. package/components/badge/badge.directive.d.ts +2 -2
  13. package/components/badge/badge.options.d.ts +1 -3
  14. package/components/badge-notification/badge-notification.options.d.ts +1 -3
  15. package/components/block/block.directive.d.ts +4 -4
  16. package/components/block/block.options.d.ts +2 -4
  17. package/components/breadcrumbs/breadcrumbs.options.d.ts +1 -3
  18. package/components/calendar-month/calendar-month.component.d.ts +1 -1
  19. package/components/calendar-month/calendar-month.options.d.ts +1 -1
  20. package/components/calendar-range/calendar-range.component.d.ts +1 -2
  21. package/components/checkbox/checkbox.component.d.ts +7 -18
  22. package/components/checkbox/checkbox.options.d.ts +5 -9
  23. package/components/chip/chip.directive.d.ts +2 -4
  24. package/components/chip/chip.options.d.ts +1 -3
  25. package/components/combo-box/combo-box.d.ts +5 -0
  26. package/components/combo-box/combo-box.directive.d.ts +5 -5
  27. package/components/combo-box/index.d.ts +1 -0
  28. package/components/comment/comment.directive.d.ts +2 -2
  29. package/components/confirm/confirm.component.d.ts +5 -3
  30. package/components/confirm/confirm.service.d.ts +3 -2
  31. package/{directives → components}/copy/copy.component.d.ts +2 -2
  32. package/{directives → components}/copy/copy.directive.d.ts +4 -6
  33. package/{directives → components}/copy/copy.options.d.ts +2 -2
  34. package/components/data-list-wrapper/data-list-group-wrapper.component.d.ts +4 -2
  35. package/components/data-list-wrapper/data-list-wrapper.component.d.ts +14 -22
  36. package/components/data-list-wrapper/{data-list-wrapper.module.d.ts → data-list-wrapper.d.ts} +1 -2
  37. package/components/data-list-wrapper/index.d.ts +1 -1
  38. package/components/elastic-container/elastic-container.component.d.ts +1 -1
  39. package/components/files/file/file.options.d.ts +2 -2
  40. package/components/files/files/files.component.d.ts +2 -2
  41. package/components/files/input-files/input-files.options.d.ts +1 -3
  42. package/components/floating-container/floating-container.directive.d.ts +3 -2
  43. package/components/fullscreen/fullscreen.component.d.ts +14 -0
  44. package/components/fullscreen/index.d.ts +1 -0
  45. package/components/index.d.ts +3 -2
  46. package/components/input-chip/input-chip.component.d.ts +9 -8
  47. package/components/input-chip/input-chip.d.ts +5 -1
  48. package/components/input-chip/input-chip.directive.d.ts +7 -12
  49. package/components/input-chip/input-chip.options.d.ts +1 -1
  50. package/components/input-color/index.d.ts +1 -0
  51. package/components/input-color/input-color.component.d.ts +6 -6
  52. package/components/input-color/input-color.d.ts +5 -0
  53. package/components/input-color/input-color.options.d.ts +1 -1
  54. package/components/input-date/input-date.d.ts +4 -1
  55. package/components/input-date/input-date.directive.d.ts +10 -12
  56. package/components/input-date/input-date.options.d.ts +1 -1
  57. package/components/input-date-multi/input-date-multi.d.ts +1 -2
  58. package/components/input-date-multi/input-date-multi.directive.d.ts +10 -14
  59. package/components/input-date-range/input-date-range.d.ts +4 -1
  60. package/components/input-date-range/input-date-range.directive.d.ts +5 -8
  61. package/components/input-date-time/input-date-time.d.ts +4 -1
  62. package/components/input-date-time/input-date-time.directive.d.ts +6 -6
  63. package/components/input-month/input-month.d.ts +4 -1
  64. package/components/input-month/input-month.directive.d.ts +5 -4
  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 +5 -4
  67. package/components/input-number/input-number.d.ts +4 -1
  68. package/components/input-number/input-number.directive.d.ts +7 -11
  69. package/components/input-number/input-number.options.d.ts +1 -1
  70. package/components/input-number/quantum.directive.d.ts +1 -1
  71. package/components/input-number/step/input-number-step.component.d.ts +1 -1
  72. package/components/input-phone/index.d.ts +1 -0
  73. package/components/input-phone/input-phone.d.ts +5 -0
  74. package/components/input-phone/input-phone.directive.d.ts +7 -7
  75. package/components/input-phone/input-phone.options.d.ts +1 -1
  76. package/components/input-phone-international/index.d.ts +1 -0
  77. package/components/input-phone-international/input-phone-international.component.d.ts +26 -32
  78. package/components/input-phone-international/input-phone-international.d.ts +5 -0
  79. package/components/input-phone-international/input-phone-international.options.d.ts +1 -3
  80. package/components/input-pin/index.d.ts +1 -0
  81. package/components/input-pin/input-pin.component.d.ts +4 -4
  82. package/components/input-pin/input-pin.d.ts +5 -0
  83. package/components/input-range/input-range.component.d.ts +9 -12
  84. package/components/input-slider/input-slider.d.ts +4 -1
  85. package/components/input-slider/input-slider.directive.d.ts +3 -5
  86. package/components/input-time/input-time.component.d.ts +1 -3
  87. package/components/input-time/input-time.d.ts +4 -1
  88. package/components/input-time/input-time.directive.d.ts +8 -10
  89. package/components/input-time/input-time.options.d.ts +1 -1
  90. package/components/input-year/input-year.d.ts +4 -1
  91. package/components/input-year/input-year.directive.d.ts +5 -5
  92. package/components/like/like.component.d.ts +4 -11
  93. package/components/like/like.options.d.ts +4 -5
  94. package/components/line-clamp/line-clamp-box.component.d.ts +3 -4
  95. package/components/line-clamp/line-clamp.component.d.ts +8 -10
  96. package/components/line-clamp/line-clamp.options.d.ts +1 -3
  97. package/components/multi-select/multi-select-group/multi-select-group.component.d.ts +6 -8
  98. package/components/multi-select/multi-select-option/multi-select-option.component.d.ts +1 -1
  99. package/components/notification-middle/notification-middle.component.d.ts +2 -2
  100. package/components/notification-middle/notification-middle.directive.d.ts +4 -3
  101. package/components/notification-middle/notification-middle.service.d.ts +7 -3
  102. package/components/pager/pager.component.d.ts +1 -1
  103. package/components/pagination/index.d.ts +1 -0
  104. package/components/pagination/pagination.component.d.ts +25 -54
  105. package/components/pagination/pagination.options.d.ts +7 -0
  106. package/components/pin/pin.directive.d.ts +2 -2
  107. package/components/preview/dialog/preview-dialog.component.d.ts +2 -2
  108. package/components/preview/dialog/preview-dialog.directive.d.ts +3 -3
  109. package/components/preview/dialog/preview-dialog.service.d.ts +5 -2
  110. package/components/preview/pagination/preview-pagination.component.d.ts +1 -1
  111. package/components/preview/preview.component.d.ts +1 -1
  112. package/components/preview/preview.d.ts +2 -1
  113. package/components/preview/zoom/preview-zoom.component.d.ts +2 -1
  114. package/components/progress/progress-bar/fixed-gradient/progress-fixed-gradient.directive.d.ts +1 -2
  115. package/components/progress/progress-bar/progress-color-segments.directive.d.ts +4 -4
  116. package/components/progress/progress-segmented/progress-segmented.directive.d.ts +2 -2
  117. package/components/progress/progress.options.d.ts +1 -3
  118. package/components/push/push-alert.component.d.ts +4 -3
  119. package/components/push/push.component.d.ts +2 -2
  120. package/components/push/push.directive.d.ts +4 -6
  121. package/components/push/push.options.d.ts +5 -8
  122. package/components/push/push.service.d.ts +6 -2
  123. package/components/radio/radio.component.d.ts +8 -9
  124. package/components/radio/radio.directive.d.ts +2 -2
  125. package/components/radio/radio.options.d.ts +2 -5
  126. package/components/radio-list/radio-list.component.d.ts +5 -3
  127. package/components/range/range-change.directive.d.ts +1 -2
  128. package/components/range/range.component.d.ts +16 -24
  129. package/components/rating/rating.component.d.ts +5 -5
  130. package/components/rating/rating.options.d.ts +6 -6
  131. package/components/routable-dialog/generate-dialogable-route.d.ts +1 -1
  132. package/components/segmented/segmented.component.d.ts +5 -9
  133. package/components/segmented/segmented.directive.d.ts +6 -7
  134. package/components/select/native-select/native-select.component.d.ts +7 -8
  135. package/components/select/select.d.ts +4 -1
  136. package/components/select/select.directive.d.ts +4 -3
  137. package/components/slider/helpers/key-steps.d.ts +1 -2
  138. package/components/slider/helpers/slider-key-steps.directive.d.ts +12 -21
  139. package/components/slider/slider.options.d.ts +1 -6
  140. package/components/slides/slides.directive.d.ts +4 -4
  141. package/components/status/status.directive.d.ts +2 -2
  142. package/components/stepper/step.component.d.ts +6 -8
  143. package/components/stepper/stepper.component.d.ts +6 -11
  144. package/components/switch/switch.component.d.ts +8 -19
  145. package/components/switch/switch.options.d.ts +4 -8
  146. package/components/tabs/tabs-with-more.component.d.ts +1 -1
  147. package/components/tabs/tabs.options.d.ts +1 -6
  148. package/components/textarea/index.d.ts +2 -1
  149. package/components/textarea/textarea.component.d.ts +4 -4
  150. package/components/textarea/textarea.d.ts +6 -0
  151. package/components/textarea/textarea.directive.d.ts +13 -0
  152. package/components/textarea/textarea.options.d.ts +1 -1
  153. package/components/toast/index.d.ts +5 -0
  154. package/components/toast/toast.component.d.ts +18 -0
  155. package/components/toast/toast.d.ts +3 -0
  156. package/components/toast/toast.directive.d.ts +7 -0
  157. package/components/toast/toast.options.d.ts +10 -0
  158. package/components/toast/toast.service.d.ts +17 -0
  159. package/components/tree/components/tree-item-content/tree-item-content.component.d.ts +8 -1
  160. package/components/tree/misc/tree.constants.d.ts +0 -3
  161. package/components/tree/misc/tree.tokens.d.ts +1 -6
  162. package/directives/button-close/button-close.directive.d.ts +2 -1
  163. package/directives/button-select/button-select.directive.d.ts +4 -4
  164. package/directives/chevron/chevron.directive.d.ts +2 -3
  165. package/directives/data-list-dropdown-manager/data-list-dropdown-manager.directive.d.ts +5 -5
  166. package/directives/fade/fade.directive.d.ts +2 -2
  167. package/directives/fluid-typography/fluid-typography.directive.d.ts +3 -6
  168. package/directives/fluid-typography/fluid-typography.options.d.ts +1 -3
  169. package/directives/highlight/highlight.directive.d.ts +1 -3
  170. package/directives/index.d.ts +0 -2
  171. package/directives/password/password.directive.d.ts +1 -1
  172. package/directives/password/password.options.d.ts +1 -1
  173. package/directives/sensitive/sensitive.directive.d.ts +2 -2
  174. package/directives/shimmer/shimmer.directive.d.ts +3 -3
  175. package/directives/skeleton/skeleton.directive.d.ts +3 -3
  176. package/directives/tooltip/tooltip.directive.d.ts +3 -3
  177. package/directives/tooltip/tooltip.options.d.ts +1 -4
  178. package/fesm2022/taiga-ui-kit-components-accordion.mjs +69 -145
  179. package/fesm2022/taiga-ui-kit-components-accordion.mjs.map +1 -1
  180. package/fesm2022/taiga-ui-kit-components-action-bar.mjs +24 -40
  181. package/fesm2022/taiga-ui-kit-components-action-bar.mjs.map +1 -1
  182. package/fesm2022/taiga-ui-kit-components-avatar.mjs +62 -80
  183. package/fesm2022/taiga-ui-kit-components-avatar.mjs.map +1 -1
  184. package/fesm2022/taiga-ui-kit-components-badge-notification.mjs +7 -12
  185. package/fesm2022/taiga-ui-kit-components-badge-notification.mjs.map +1 -1
  186. package/fesm2022/taiga-ui-kit-components-badge.mjs +16 -27
  187. package/fesm2022/taiga-ui-kit-components-badge.mjs.map +1 -1
  188. package/fesm2022/taiga-ui-kit-components-badged-content.mjs +6 -7
  189. package/fesm2022/taiga-ui-kit-components-badged-content.mjs.map +1 -1
  190. package/fesm2022/taiga-ui-kit-components-block.mjs +20 -31
  191. package/fesm2022/taiga-ui-kit-components-block.mjs.map +1 -1
  192. package/fesm2022/taiga-ui-kit-components-breadcrumbs.mjs +12 -18
  193. package/fesm2022/taiga-ui-kit-components-breadcrumbs.mjs.map +1 -1
  194. package/fesm2022/taiga-ui-kit-components-button-loading.mjs +6 -6
  195. package/fesm2022/taiga-ui-kit-components-button-loading.mjs.map +1 -1
  196. package/fesm2022/taiga-ui-kit-components-calendar-month.mjs +6 -17
  197. package/fesm2022/taiga-ui-kit-components-calendar-month.mjs.map +1 -1
  198. package/fesm2022/taiga-ui-kit-components-calendar-range.mjs +7 -8
  199. package/fesm2022/taiga-ui-kit-components-calendar-range.mjs.map +1 -1
  200. package/fesm2022/taiga-ui-kit-components-carousel.mjs +17 -23
  201. package/fesm2022/taiga-ui-kit-components-carousel.mjs.map +1 -1
  202. package/fesm2022/taiga-ui-kit-components-checkbox.mjs +18 -76
  203. package/fesm2022/taiga-ui-kit-components-checkbox.mjs.map +1 -1
  204. package/fesm2022/taiga-ui-kit-components-chip.mjs +25 -34
  205. package/fesm2022/taiga-ui-kit-components-chip.mjs.map +1 -1
  206. package/fesm2022/taiga-ui-kit-components-combo-box.mjs +42 -32
  207. package/fesm2022/taiga-ui-kit-components-combo-box.mjs.map +1 -1
  208. package/fesm2022/taiga-ui-kit-components-comment.mjs +13 -20
  209. package/fesm2022/taiga-ui-kit-components-comment.mjs.map +1 -1
  210. package/fesm2022/taiga-ui-kit-components-compass.mjs +5 -5
  211. package/fesm2022/taiga-ui-kit-components-compass.mjs.map +1 -1
  212. package/fesm2022/taiga-ui-kit-components-confirm.mjs +14 -17
  213. package/fesm2022/taiga-ui-kit-components-confirm.mjs.map +1 -1
  214. package/fesm2022/taiga-ui-kit-components-copy.mjs +113 -0
  215. package/fesm2022/taiga-ui-kit-components-copy.mjs.map +1 -0
  216. package/fesm2022/taiga-ui-kit-components-data-list-wrapper.mjs +25 -78
  217. package/fesm2022/taiga-ui-kit-components-data-list-wrapper.mjs.map +1 -1
  218. package/fesm2022/taiga-ui-kit-components-drawer.mjs +5 -5
  219. package/fesm2022/taiga-ui-kit-components-drawer.mjs.map +1 -1
  220. package/fesm2022/taiga-ui-kit-components-elastic-container.mjs +8 -12
  221. package/fesm2022/taiga-ui-kit-components-elastic-container.mjs.map +1 -1
  222. package/fesm2022/taiga-ui-kit-components-files.mjs +43 -50
  223. package/fesm2022/taiga-ui-kit-components-files.mjs.map +1 -1
  224. package/fesm2022/taiga-ui-kit-components-filter.mjs +5 -5
  225. package/fesm2022/taiga-ui-kit-components-filter.mjs.map +1 -1
  226. package/fesm2022/taiga-ui-kit-components-floating-container.mjs +16 -19
  227. package/fesm2022/taiga-ui-kit-components-floating-container.mjs.map +1 -1
  228. package/fesm2022/taiga-ui-kit-components-fullscreen.mjs +63 -0
  229. package/fesm2022/taiga-ui-kit-components-fullscreen.mjs.map +1 -0
  230. package/fesm2022/taiga-ui-kit-components-input-chip.mjs +79 -79
  231. package/fesm2022/taiga-ui-kit-components-input-chip.mjs.map +1 -1
  232. package/fesm2022/taiga-ui-kit-components-input-color.mjs +28 -19
  233. package/fesm2022/taiga-ui-kit-components-input-color.mjs.map +1 -1
  234. package/fesm2022/taiga-ui-kit-components-input-date-multi.mjs +35 -52
  235. package/fesm2022/taiga-ui-kit-components-input-date-multi.mjs.map +1 -1
  236. package/fesm2022/taiga-ui-kit-components-input-date-range.mjs +27 -32
  237. package/fesm2022/taiga-ui-kit-components-input-date-range.mjs.map +1 -1
  238. package/fesm2022/taiga-ui-kit-components-input-date-time.mjs +32 -29
  239. package/fesm2022/taiga-ui-kit-components-input-date-time.mjs.map +1 -1
  240. package/fesm2022/taiga-ui-kit-components-input-date.mjs +45 -48
  241. package/fesm2022/taiga-ui-kit-components-input-date.mjs.map +1 -1
  242. package/fesm2022/taiga-ui-kit-components-input-inline.mjs +4 -5
  243. package/fesm2022/taiga-ui-kit-components-input-inline.mjs.map +1 -1
  244. package/fesm2022/taiga-ui-kit-components-input-month-range.mjs +25 -19
  245. package/fesm2022/taiga-ui-kit-components-input-month-range.mjs.map +1 -1
  246. package/fesm2022/taiga-ui-kit-components-input-month.mjs +28 -22
  247. package/fesm2022/taiga-ui-kit-components-input-month.mjs.map +1 -1
  248. package/fesm2022/taiga-ui-kit-components-input-number.mjs +60 -77
  249. package/fesm2022/taiga-ui-kit-components-input-number.mjs.map +1 -1
  250. package/fesm2022/taiga-ui-kit-components-input-phone-international.mjs +122 -138
  251. package/fesm2022/taiga-ui-kit-components-input-phone-international.mjs.map +1 -1
  252. package/fesm2022/taiga-ui-kit-components-input-phone.mjs +32 -23
  253. package/fesm2022/taiga-ui-kit-components-input-phone.mjs.map +1 -1
  254. package/fesm2022/taiga-ui-kit-components-input-pin.mjs +20 -11
  255. package/fesm2022/taiga-ui-kit-components-input-pin.mjs.map +1 -1
  256. package/fesm2022/taiga-ui-kit-components-input-range.mjs +33 -29
  257. package/fesm2022/taiga-ui-kit-components-input-range.mjs.map +1 -1
  258. package/fesm2022/taiga-ui-kit-components-input-slider.mjs +36 -45
  259. package/fesm2022/taiga-ui-kit-components-input-slider.mjs.map +1 -1
  260. package/fesm2022/taiga-ui-kit-components-input-time.mjs +65 -71
  261. package/fesm2022/taiga-ui-kit-components-input-time.mjs.map +1 -1
  262. package/fesm2022/taiga-ui-kit-components-input-year.mjs +27 -19
  263. package/fesm2022/taiga-ui-kit-components-input-year.mjs.map +1 -1
  264. package/fesm2022/taiga-ui-kit-components-items-with-more.mjs +14 -16
  265. package/fesm2022/taiga-ui-kit-components-items-with-more.mjs.map +1 -1
  266. package/fesm2022/taiga-ui-kit-components-like.mjs +40 -33
  267. package/fesm2022/taiga-ui-kit-components-like.mjs.map +1 -1
  268. package/fesm2022/taiga-ui-kit-components-line-clamp.mjs +38 -82
  269. package/fesm2022/taiga-ui-kit-components-line-clamp.mjs.map +1 -1
  270. package/fesm2022/taiga-ui-kit-components-message.mjs +9 -12
  271. package/fesm2022/taiga-ui-kit-components-message.mjs.map +1 -1
  272. package/fesm2022/taiga-ui-kit-components-multi-select.mjs +37 -48
  273. package/fesm2022/taiga-ui-kit-components-multi-select.mjs.map +1 -1
  274. package/fesm2022/taiga-ui-kit-components-notification-middle.mjs +37 -33
  275. package/fesm2022/taiga-ui-kit-components-notification-middle.mjs.map +1 -1
  276. package/fesm2022/taiga-ui-kit-components-pager.mjs +7 -9
  277. package/fesm2022/taiga-ui-kit-components-pager.mjs.map +1 -1
  278. package/fesm2022/taiga-ui-kit-components-pagination.mjs +69 -140
  279. package/fesm2022/taiga-ui-kit-components-pagination.mjs.map +1 -1
  280. package/fesm2022/taiga-ui-kit-components-pin.mjs +15 -19
  281. package/fesm2022/taiga-ui-kit-components-pin.mjs.map +1 -1
  282. package/fesm2022/taiga-ui-kit-components-preview.mjs +59 -50
  283. package/fesm2022/taiga-ui-kit-components-preview.mjs.map +1 -1
  284. package/fesm2022/taiga-ui-kit-components-progress.mjs +76 -81
  285. package/fesm2022/taiga-ui-kit-components-progress.mjs.map +1 -1
  286. package/fesm2022/taiga-ui-kit-components-pulse.mjs +4 -4
  287. package/fesm2022/taiga-ui-kit-components-pulse.mjs.map +1 -1
  288. package/fesm2022/taiga-ui-kit-components-push.mjs +49 -57
  289. package/fesm2022/taiga-ui-kit-components-push.mjs.map +1 -1
  290. package/fesm2022/taiga-ui-kit-components-radio-list.mjs +8 -8
  291. package/fesm2022/taiga-ui-kit-components-radio-list.mjs.map +1 -1
  292. package/fesm2022/taiga-ui-kit-components-radio.mjs +35 -41
  293. package/fesm2022/taiga-ui-kit-components-radio.mjs.map +1 -1
  294. package/fesm2022/taiga-ui-kit-components-range.mjs +41 -85
  295. package/fesm2022/taiga-ui-kit-components-range.mjs.map +1 -1
  296. package/fesm2022/taiga-ui-kit-components-rating.mjs +19 -28
  297. package/fesm2022/taiga-ui-kit-components-rating.mjs.map +1 -1
  298. package/fesm2022/taiga-ui-kit-components-routable-dialog.mjs +11 -7
  299. package/fesm2022/taiga-ui-kit-components-routable-dialog.mjs.map +1 -1
  300. package/fesm2022/taiga-ui-kit-components-segmented.mjs +32 -59
  301. package/fesm2022/taiga-ui-kit-components-segmented.mjs.map +1 -1
  302. package/fesm2022/taiga-ui-kit-components-select.mjs +82 -62
  303. package/fesm2022/taiga-ui-kit-components-select.mjs.map +1 -1
  304. package/fesm2022/taiga-ui-kit-components-slider.mjs +74 -82
  305. package/fesm2022/taiga-ui-kit-components-slider.mjs.map +1 -1
  306. package/fesm2022/taiga-ui-kit-components-slides.mjs +16 -24
  307. package/fesm2022/taiga-ui-kit-components-slides.mjs.map +1 -1
  308. package/fesm2022/taiga-ui-kit-components-status.mjs +12 -16
  309. package/fesm2022/taiga-ui-kit-components-status.mjs.map +1 -1
  310. package/fesm2022/taiga-ui-kit-components-stepper.mjs +45 -79
  311. package/fesm2022/taiga-ui-kit-components-stepper.mjs.map +1 -1
  312. package/fesm2022/taiga-ui-kit-components-switch.mjs +22 -64
  313. package/fesm2022/taiga-ui-kit-components-switch.mjs.map +1 -1
  314. package/fesm2022/taiga-ui-kit-components-tabs.mjs +36 -47
  315. package/fesm2022/taiga-ui-kit-components-tabs.mjs.map +1 -1
  316. package/fesm2022/taiga-ui-kit-components-textarea.mjs +54 -62
  317. package/fesm2022/taiga-ui-kit-components-textarea.mjs.map +1 -1
  318. package/fesm2022/taiga-ui-kit-components-tiles.mjs +14 -15
  319. package/fesm2022/taiga-ui-kit-components-tiles.mjs.map +1 -1
  320. package/fesm2022/taiga-ui-kit-components-toast.mjs +164 -0
  321. package/fesm2022/taiga-ui-kit-components-toast.mjs.map +1 -0
  322. package/fesm2022/taiga-ui-kit-components-tree.mjs +59 -63
  323. package/fesm2022/taiga-ui-kit-components-tree.mjs.map +1 -1
  324. package/fesm2022/taiga-ui-kit-components.mjs +3 -2
  325. package/fesm2022/taiga-ui-kit-components.mjs.map +1 -1
  326. package/fesm2022/taiga-ui-kit-directives-button-close.mjs +15 -7
  327. package/fesm2022/taiga-ui-kit-directives-button-close.mjs.map +1 -1
  328. package/fesm2022/taiga-ui-kit-directives-button-group.mjs +9 -12
  329. package/fesm2022/taiga-ui-kit-directives-button-group.mjs.map +1 -1
  330. package/fesm2022/taiga-ui-kit-directives-button-select.mjs +20 -19
  331. package/fesm2022/taiga-ui-kit-directives-button-select.mjs.map +1 -1
  332. package/fesm2022/taiga-ui-kit-directives-chevron.mjs +16 -22
  333. package/fesm2022/taiga-ui-kit-directives-chevron.mjs.map +1 -1
  334. package/fesm2022/taiga-ui-kit-directives-connected.mjs +9 -15
  335. package/fesm2022/taiga-ui-kit-directives-connected.mjs.map +1 -1
  336. package/fesm2022/taiga-ui-kit-directives-data-list-dropdown-manager.mjs +25 -53
  337. package/fesm2022/taiga-ui-kit-directives-data-list-dropdown-manager.mjs.map +1 -1
  338. package/fesm2022/taiga-ui-kit-directives-fade.mjs +15 -17
  339. package/fesm2022/taiga-ui-kit-directives-fade.mjs.map +1 -1
  340. package/fesm2022/taiga-ui-kit-directives-fluid-typography.mjs +14 -27
  341. package/fesm2022/taiga-ui-kit-directives-fluid-typography.mjs.map +1 -1
  342. package/fesm2022/taiga-ui-kit-directives-highlight.mjs +3 -4
  343. package/fesm2022/taiga-ui-kit-directives-highlight.mjs.map +1 -1
  344. package/fesm2022/taiga-ui-kit-directives-password.mjs +14 -16
  345. package/fesm2022/taiga-ui-kit-directives-password.mjs.map +1 -1
  346. package/fesm2022/taiga-ui-kit-directives-present.mjs +3 -4
  347. package/fesm2022/taiga-ui-kit-directives-present.mjs.map +1 -1
  348. package/fesm2022/taiga-ui-kit-directives-sensitive.mjs +13 -18
  349. package/fesm2022/taiga-ui-kit-directives-sensitive.mjs.map +1 -1
  350. package/fesm2022/taiga-ui-kit-directives-shimmer.mjs +24 -34
  351. package/fesm2022/taiga-ui-kit-directives-shimmer.mjs.map +1 -1
  352. package/fesm2022/taiga-ui-kit-directives-skeleton.mjs +28 -38
  353. package/fesm2022/taiga-ui-kit-directives-skeleton.mjs.map +1 -1
  354. package/fesm2022/taiga-ui-kit-directives-tooltip.mjs +17 -22
  355. package/fesm2022/taiga-ui-kit-directives-tooltip.mjs.map +1 -1
  356. package/fesm2022/taiga-ui-kit-directives-unfinished-validator.mjs +6 -8
  357. package/fesm2022/taiga-ui-kit-directives-unfinished-validator.mjs.map +1 -1
  358. package/fesm2022/taiga-ui-kit-directives-unmask-handler.mjs +4 -5
  359. package/fesm2022/taiga-ui-kit-directives-unmask-handler.mjs.map +1 -1
  360. package/fesm2022/taiga-ui-kit-directives.mjs +0 -2
  361. package/fesm2022/taiga-ui-kit-directives.mjs.map +1 -1
  362. package/fesm2022/taiga-ui-kit-pipes-auto-color.mjs +43 -0
  363. package/fesm2022/taiga-ui-kit-pipes-auto-color.mjs.map +1 -0
  364. package/fesm2022/taiga-ui-kit-pipes-emails.mjs +3 -4
  365. package/fesm2022/taiga-ui-kit-pipes-emails.mjs.map +1 -1
  366. package/fesm2022/taiga-ui-kit-pipes-filter-by-input.mjs +12 -25
  367. package/fesm2022/taiga-ui-kit-pipes-filter-by-input.mjs.map +1 -1
  368. package/fesm2022/taiga-ui-kit-pipes-flag.mjs +31 -0
  369. package/fesm2022/taiga-ui-kit-pipes-flag.mjs.map +1 -0
  370. package/fesm2022/taiga-ui-kit-pipes-hide-selected.mjs +4 -5
  371. package/fesm2022/taiga-ui-kit-pipes-hide-selected.mjs.map +1 -1
  372. package/fesm2022/taiga-ui-kit-pipes-initials.mjs +28 -0
  373. package/fesm2022/taiga-ui-kit-pipes-initials.mjs.map +1 -0
  374. package/fesm2022/taiga-ui-kit-pipes-sort-countries.mjs +5 -5
  375. package/fesm2022/taiga-ui-kit-pipes-sort-countries.mjs.map +1 -1
  376. package/fesm2022/taiga-ui-kit-pipes-stringify-content.mjs +3 -4
  377. package/fesm2022/taiga-ui-kit-pipes-stringify-content.mjs.map +1 -1
  378. package/fesm2022/taiga-ui-kit-pipes-stringify.mjs +3 -4
  379. package/fesm2022/taiga-ui-kit-pipes-stringify.mjs.map +1 -1
  380. package/fesm2022/taiga-ui-kit-pipes.mjs +3 -1
  381. package/fesm2022/taiga-ui-kit-pipes.mjs.map +1 -1
  382. package/fesm2022/taiga-ui-kit-tokens.mjs +7 -25
  383. package/fesm2022/taiga-ui-kit-tokens.mjs.map +1 -1
  384. package/fesm2022/taiga-ui-kit-utils.mjs +2 -8
  385. package/fesm2022/taiga-ui-kit-utils.mjs.map +1 -1
  386. package/package.json +53 -49
  387. package/pipes/auto-color/auto-color.pipe.d.ts +13 -0
  388. package/pipes/auto-color/index.d.ts +1 -0
  389. package/pipes/filter-by-input/filter-by-input.pipe.d.ts +2 -2
  390. package/pipes/flag/flag.pipe.d.ts +14 -0
  391. package/pipes/flag/index.d.ts +1 -0
  392. package/pipes/index.d.ts +3 -1
  393. package/pipes/initials/index.d.ts +1 -0
  394. package/pipes/initials/initials.pipe.d.ts +7 -0
  395. package/pipes/stringify-content/stringify-content.pipe.d.ts +2 -3
  396. package/styles/components/avatar.less +188 -0
  397. package/styles/components/badge.less +1 -0
  398. package/styles/components/checkbox.less +14 -12
  399. package/styles/components/chip.less +12 -3
  400. package/styles/components/like.less +4 -9
  401. package/styles/components/pin.less +3 -7
  402. package/styles/components/radio.less +1 -1
  403. package/styles/components/switch.less +9 -9
  404. package/styles/components/toast.less +44 -0
  405. package/tokens/i18n.d.ts +25 -26
  406. package/tokens/index.d.ts +0 -1
  407. package/tokens/input-date-options.d.ts +1 -1
  408. package/tokens/items-handlers.d.ts +1 -7
  409. package/tokens/preview-icons.d.ts +1 -3
  410. package/utils/index.d.ts +0 -1
  411. package/components/accordion/accordion-item-content.directive.d.ts +0 -6
  412. package/components/accordion/accordion-item-eager-content.directive.d.ts +0 -5
  413. package/components/accordion/accordion-item.component.d.ts +0 -25
  414. package/components/action-bar/action-bar.d.ts +0 -3
  415. package/components/action-bar/action-bar.directive.d.ts +0 -6
  416. package/components/avatar/avatar.component.d.ts +0 -15
  417. package/components/input-password/index.d.ts +0 -2
  418. package/components/input-password/input-password.component.d.ts +0 -16
  419. package/components/input-password/input-password.options.d.ts +0 -24
  420. package/components/pdf-viewer/index.d.ts +0 -4
  421. package/components/pdf-viewer/pdf-viewer.component.d.ts +0 -12
  422. package/components/pdf-viewer/pdf-viewer.directive.d.ts +0 -7
  423. package/components/pdf-viewer/pdf-viewer.options.d.ts +0 -13
  424. package/components/pdf-viewer/pdf-viewer.service.d.ts +0 -13
  425. package/components/textarea/textarea-limit.directive.d.ts +0 -27
  426. package/directives/lazy-loading/index.d.ts +0 -2
  427. package/directives/lazy-loading/lazy-loading.directive.d.ts +0 -18
  428. package/directives/lazy-loading/lazy-loading.service.d.ts +0 -12
  429. package/fesm2022/taiga-ui-kit-components-input-password.mjs +0 -95
  430. package/fesm2022/taiga-ui-kit-components-input-password.mjs.map +0 -1
  431. package/fesm2022/taiga-ui-kit-components-pdf-viewer.mjs +0 -83
  432. package/fesm2022/taiga-ui-kit-components-pdf-viewer.mjs.map +0 -1
  433. package/fesm2022/taiga-ui-kit-components-preview-dialog.mjs +0 -64
  434. package/fesm2022/taiga-ui-kit-components-preview-dialog.mjs.map +0 -1
  435. package/fesm2022/taiga-ui-kit-directives-copy.mjs +0 -121
  436. package/fesm2022/taiga-ui-kit-directives-copy.mjs.map +0 -1
  437. package/fesm2022/taiga-ui-kit-directives-lazy-loading.mjs +0 -81
  438. package/fesm2022/taiga-ui-kit-directives-lazy-loading.mjs.map +0 -1
  439. package/fesm2022/taiga-ui-kit-pipes-field-error.mjs +0 -147
  440. package/fesm2022/taiga-ui-kit-pipes-field-error.mjs.map +0 -1
  441. package/pipes/field-error/field-error-content-pipe.d.ts +0 -14
  442. package/pipes/field-error/field-error-pipe.d.ts +0 -29
  443. package/pipes/field-error/index.d.ts +0 -2
  444. package/tokens/validation-errors.d.ts +0 -5
  445. package/utils/phone.d.ts +0 -3
  446. /package/{directives → components}/copy/copy.d.ts +0 -0
  447. /package/{directives → components}/copy/index.d.ts +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-components-combo-box.mjs","sources":["../../../projects/kit/components/combo-box/combo-box.directive.ts","../../../projects/kit/components/combo-box/taiga-ui-kit-components-combo-box.ts"],"sourcesContent":["import {\n computed,\n Directive,\n effect,\n inject,\n Input,\n isSignal,\n signal,\n untracked,\n} from '@angular/core';\nimport {tuiAsControl, TuiControl} from '@taiga-ui/cdk/classes';\nimport {TUI_ALLOW_SIGNAL_WRITES, TUI_STRICT_MATCHER} from '@taiga-ui/cdk/constants';\nimport {type TuiStringMatcher} from '@taiga-ui/cdk/types';\nimport {\n tuiAsOptionContent,\n type TuiDataListAccessor,\n} from '@taiga-ui/core/components/data-list';\nimport {\n tuiAsTextfieldAccessor,\n tuiInjectAuxiliary,\n type TuiTextfieldAccessor,\n TuiTextfieldComponent,\n TuiTextfieldDirective,\n TuiWithTextfield,\n} from '@taiga-ui/core/components/textfield';\nimport {\n TuiDropdownDirective,\n tuiDropdownEnabled,\n tuiDropdownOpen,\n} from '@taiga-ui/core/directives/dropdown';\nimport {\n TUI_ITEMS_HANDLERS,\n type TuiItemsHandlers,\n} from '@taiga-ui/core/directives/items-handlers';\nimport {TuiSelectOption} from '@taiga-ui/kit/components/select';\n\n@Directive({\n standalone: true,\n selector: 'input[tuiComboBox]',\n providers: [\n tuiAsOptionContent(TuiSelectOption),\n tuiAsTextfieldAccessor(TuiComboBox),\n tuiAsControl(TuiComboBox),\n ],\n hostDirectives: [TuiWithTextfield],\n host: {\n '[disabled]': 'disabled()',\n '(click)': 'toggleDropdown()',\n '(input)': 'toggleDropdown(true)',\n '(keydown.enter)': 'keydownEnter($event)',\n },\n})\nexport class TuiComboBox<T>\n extends TuiControl<T | string | null>\n implements TuiTextfieldAccessor<T>\n{\n private readonly host: TuiTextfieldComponent<T> = inject(TuiTextfieldComponent);\n private readonly textfield: TuiTextfieldDirective<T> = inject(TuiTextfieldDirective);\n private readonly open = tuiDropdownOpen();\n private readonly dropdownEnabled = tuiDropdownEnabled(this.interactive);\n private readonly dropdown = inject(TuiDropdownDirective);\n private readonly handlers: TuiItemsHandlers<T | string> = inject(TUI_ITEMS_HANDLERS);\n\n private readonly matcher = signal<TuiStringMatcher<T> | null>(TUI_STRICT_MATCHER);\n private readonly strict = signal(true);\n private readonly datalist = tuiInjectAuxiliary<TuiDataListAccessor<T>>(\n (x) => x !== this && 'options' in x && isSignal(x.options),\n );\n\n private readonly options = computed(\n () =>\n this.datalist()\n ?.options?.() // TODO(v5): remove optional call `?.()`\n .filter((x) => !this.handlers.disabledItemHandler()(x)) ?? [],\n );\n\n protected readonly nonStrictControlEffect = effect(() => {\n if (\n !this.options().length &&\n !this.strict() &&\n this.stringify(this.value()) !== this.textfield.value()\n ) {\n this.onChange(this.textfield.value() || null);\n }\n }, TUI_ALLOW_SIGNAL_WRITES);\n\n protected readonly matchingEffect = effect(() => {\n const options = this.options();\n const matcher = this.matcher();\n\n if (!options.length || !matcher) {\n return;\n }\n\n const textfieldValue = this.textfield.value();\n const selectedOption = options.find((x) =>\n matcher(x, textfieldValue, this.handlers.stringify()),\n );\n const value = untracked(() => this.value());\n const unchanged = this.stringify(value) === textfieldValue;\n const fallback = this.strict() || !textfieldValue ? null : textfieldValue;\n\n this.onChange(\n selectedOption ??\n /**\n * Don't clear already not-null form control value on new `this.options()` array.\n * Otherwise, `ComboBox` becomes incompatible with virtual scroll\n * (which displays large lists of elements by only rendering the items that fit on-screen).\n * Users can still able to patch form value with `null` on new items if they wish the such behavior.\n */\n (unchanged ? value : fallback),\n );\n }, TUI_ALLOW_SIGNAL_WRITES);\n\n protected readonly newValueEffect = effect(() => {\n const stringified = this.stringify(this.value());\n\n this.textfield.value.update((x) => stringified || x);\n }, TUI_ALLOW_SIGNAL_WRITES);\n\n protected readonly blurEffect = effect(() => {\n const incomplete = untracked(() => this.strict() && this.value() === null);\n\n if (!this.host.focused() && incomplete) {\n this.textfield.value.set('');\n }\n }, TUI_ALLOW_SIGNAL_WRITES);\n\n // TODO(v5): use signal input\n @Input('strict')\n public set strictSetter(x: boolean) {\n this.strict.set(x);\n }\n\n // TODO(v5): use signal input\n @Input('matcher')\n public set matcherSetter(x: TuiStringMatcher<T> | null) {\n this.matcher.set(x);\n }\n\n public setValue(value: T | null): void {\n this.textfield.setValue(value);\n this.onChange(value);\n\n if (!value) {\n this.toggleDropdown(true);\n }\n }\n\n public override writeValue(value: T | string | null): void {\n const reset = this.control.pristine && this.control.untouched && !value;\n const changed = untracked(() => value !== this.value());\n\n if (changed || reset) {\n super.writeValue(value);\n untracked(() => this.textfield.value.set(this.stringify(value)));\n }\n }\n\n protected toggleDropdown(open = !this.open()): void {\n if (this.dropdownEnabled() && this.dropdown._content()) {\n this.open.set(open);\n }\n }\n\n protected keydownEnter(event: KeyboardEvent): void {\n if (!this.open()) {\n return;\n }\n\n event.preventDefault();\n\n const options = this.options();\n\n if (options.length === 1 && options[0]) {\n this.setValue(options[0]);\n this.toggleDropdown(false);\n }\n }\n\n private stringify(value?: T | string | null): string {\n return value != null ? this.handlers.stringify()(value) : '';\n }\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-kit-components-combo-box.mjs","sources":["../../../projects/kit/components/combo-box/combo-box.directive.ts","../../../projects/kit/components/combo-box/combo-box.ts","../../../projects/kit/components/combo-box/taiga-ui-kit-components-combo-box.ts"],"sourcesContent":["import {\n computed,\n Directive,\n effect,\n inject,\n Input,\n isSignal,\n signal,\n untracked,\n} from '@angular/core';\nimport {tuiAsControl, TuiControl} from '@taiga-ui/cdk/classes';\nimport {TUI_STRICT_MATCHER} from '@taiga-ui/cdk/constants';\nimport {type TuiStringMatcher} from '@taiga-ui/cdk/types';\nimport {\n tuiAsOptionContent,\n type TuiDataListAccessor,\n} from '@taiga-ui/core/components/data-list';\nimport {TuiInputDirective, TuiWithInput} from '@taiga-ui/core/components/input';\nimport {\n tuiAsTextfieldAccessor,\n tuiInjectAuxiliary,\n type TuiTextfieldAccessor,\n TuiTextfieldComponent,\n} from '@taiga-ui/core/components/textfield';\nimport {\n TUI_ITEMS_HANDLERS,\n type TuiItemsHandlers,\n} from '@taiga-ui/core/directives/items-handlers';\nimport {\n TuiDropdownDirective,\n tuiDropdownEnabled,\n TuiDropdownOpen,\n} from '@taiga-ui/core/portals/dropdown';\nimport {TuiSelectOption} from '@taiga-ui/kit/components/select';\n\n@Directive({\n selector: 'input[tuiComboBox]',\n providers: [\n tuiAsOptionContent(TuiSelectOption),\n tuiAsTextfieldAccessor(TuiComboBoxDirective),\n tuiAsControl(TuiComboBoxDirective),\n ],\n hostDirectives: [TuiWithInput],\n host: {\n '[disabled]': 'disabled()',\n '(click)': 'toggleDropdown()',\n '(input)': 'toggleDropdown(true)',\n '(keydown.enter)': 'keydownEnter($event)',\n },\n})\nexport class TuiComboBoxDirective<T>\n extends TuiControl<T | string | null>\n implements TuiTextfieldAccessor<T>\n{\n private readonly host: TuiTextfieldComponent<T> = inject(TuiTextfieldComponent);\n private readonly input: TuiInputDirective<T> = inject(TuiInputDirective);\n private readonly open = inject(TuiDropdownOpen).open;\n private readonly dropdownEnabled = tuiDropdownEnabled(this.interactive);\n private readonly dropdown = inject(TuiDropdownDirective);\n private readonly handlers: TuiItemsHandlers<T | string> = inject(TUI_ITEMS_HANDLERS);\n private readonly matcher = signal<TuiStringMatcher<T> | null>(TUI_STRICT_MATCHER);\n private readonly strict = signal(true);\n private readonly datalist = tuiInjectAuxiliary<TuiDataListAccessor<T>>(\n (x) => 'options' in x && isSignal(x.options),\n );\n\n private readonly options = computed(\n () =>\n this.datalist()\n ?.options()\n .filter((x) => !this.handlers.disabledItemHandler()(x)) ?? [],\n );\n\n protected readonly nonStrictControlEffect = effect(() => {\n if (\n !this.options().length &&\n !this.strict() &&\n this.stringify(this.value()) !== this.input.value()\n ) {\n this.onChange(this.input.value() || null);\n }\n });\n\n protected readonly matchingEffect = effect(() => {\n const options = this.options();\n const matcher = this.matcher();\n\n if (!options.length || !matcher) {\n return;\n }\n\n const textfieldValue = this.input.value();\n const selectedOption = options.find((x) =>\n matcher(x, textfieldValue, this.handlers.stringify()),\n );\n const value = untracked(() => this.value());\n const unchanged = this.stringify(value) === textfieldValue;\n const fallback = this.strict() || !textfieldValue ? null : textfieldValue;\n\n this.onChange(\n selectedOption ??\n /**\n * Don't clear already not-null form control value on new `this.options()` array.\n * Otherwise, `ComboBox` becomes incompatible with virtual scroll\n * (which displays large lists of elements by only rendering the items that fit on-screen).\n * Users can still able to patch form value with `null` on new items if they wish the such behavior.\n */\n (unchanged ? value : fallback),\n );\n });\n\n protected readonly newValueEffect = effect(() => {\n const stringified = this.stringify(this.value());\n\n this.input.value.update((x) => stringified || x);\n });\n\n protected readonly blurEffect = effect(() => {\n const incomplete = untracked(() => this.strict() && this.value() === null);\n\n if (!this.host.focused() && incomplete) {\n this.input.value.set('');\n }\n });\n\n // TODO(v5): use signal input\n @Input('strict')\n public set strictSetter(x: boolean) {\n this.strict.set(x);\n }\n\n // TODO(v5): use signal input\n @Input('matcher')\n public set matcherSetter(x: TuiStringMatcher<T> | null) {\n this.matcher.set(x);\n }\n\n public setValue(value: T | null): void {\n this.input.setValue(value);\n this.onChange(value);\n\n if (!value) {\n this.toggleDropdown(true);\n }\n }\n\n public override writeValue(value: T | string | null): void {\n const reset = this.control.pristine && this.control.untouched && !value;\n const changed = untracked(() => value !== this.value());\n\n if (changed || reset) {\n super.writeValue(value);\n untracked(() => this.input.value.set(this.stringify(value)));\n }\n }\n\n protected toggleDropdown(open = !this.open()): void {\n if (this.dropdownEnabled() && this.dropdown.content()) {\n this.open.set(open);\n }\n }\n\n protected keydownEnter(event: KeyboardEvent): void {\n if (!this.open()) {\n return;\n }\n\n event.preventDefault();\n\n const options = this.options();\n\n if (options.length === 1 && options[0]) {\n this.setValue(options[0]);\n this.toggleDropdown(false);\n }\n }\n\n private stringify(value?: T | string | null): string {\n return value != null ? this.handlers.stringify()(value) : '';\n }\n}\n","import {TuiLabel} from '@taiga-ui/core/components/label';\nimport {\n TuiTextfieldComponent,\n TuiTextfieldOptionsDirective,\n} from '@taiga-ui/core/components/textfield';\nimport {TuiDropdownContent} from '@taiga-ui/core/portals';\n\nimport {TuiComboBoxDirective} from './combo-box.directive';\n\nexport const TuiComboBox = [\n TuiComboBoxDirective,\n TuiLabel,\n TuiTextfieldComponent,\n TuiTextfieldOptionsDirective,\n TuiDropdownContent,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,37 +1,30 @@
1
1
  import * as i0 from '@angular/core';
2
- import { ChangeDetectionStrategy, ViewEncapsulation, Component, Input, Directive } from '@angular/core';
2
+ import { ChangeDetectionStrategy, ViewEncapsulation, Component, input, Directive } from '@angular/core';
3
3
  import { tuiWithStyles } from '@taiga-ui/cdk/utils/miscellaneous';
4
4
 
5
- class TuiCommentStyles {
6
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiCommentStyles, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
7
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: TuiCommentStyles, isStandalone: true, selector: "ng-component", host: { classAttribute: "tui-comment" }, ngImport: i0, template: '', isInline: true, styles: ["[tuiComment]{position:relative;display:inline-flex;font:var(--tui-font-text-m);color:#fff;padding:.5rem .75rem;min-inline-size:2.5rem;border-radius:1rem;line-height:1.125rem;background:var(--tui-background-accent-2);align-items:center;justify-content:center}[tuiComment]:before{content:\"\";position:absolute;bottom:100%;left:50%;inline-size:1.5625rem;block-size:.5625rem;background:inherit;transform:translate(-50%);mask:url(\"data:image/svg+xml,%3Csvg width='25' height='9' viewBox='0 0 25 9' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M5.23309 6.67813L7.56191 3.83178C9.4546 1.5185 10.4009 0.361853 11.5998 0.10488C12.0834 0.00123882 12.5834 0.00123882 13.0669 0.10488C14.2658 0.361853 15.2121 1.5185 17.1048 3.83178L19.4337 6.67813C20.636 8.14771 22.4346 9 24.3334 9H0.333374C2.23217 9 4.0307 8.14772 5.23309 6.67813Z' fill='black'/%3E%3C/svg%3E%0A\") no-repeat}[tuiComment][data-direction=bottom]:before{top:100%;bottom:auto;transform:translate(-50%) rotate(180deg)}[tuiComment][data-direction=left]:before{left:auto;top:50%;right:100%;transform:translate(.785rem,-50%) rotate(-90deg)}[tuiComment][data-direction=right]:before{top:50%;left:100%;transform:translate(-.785rem,-50%) rotate(90deg)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
5
+ class Styles {
6
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: Styles, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
7
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.16", type: Styles, isStandalone: true, selector: "ng-component", host: { classAttribute: "tui-comment" }, ngImport: i0, template: '', isInline: true, styles: ["[tuiComment]{position:relative;display:inline-flex;font:var(--tui-font-text-m);color:#fff;padding:.5rem .75rem;min-inline-size:2.5rem;border-radius:1rem;line-height:1.125rem;background:var(--tui-background-accent-2);align-items:center;justify-content:center}[tuiComment]:before{content:\"\";position:absolute;bottom:100%;left:50%;inline-size:1.5625rem;block-size:.5625rem;background:inherit;transform:translate(-50%);mask:url(\"data:image/svg+xml,%3Csvg width='25' height='9' viewBox='0 0 25 9' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M5.23309 6.67813L7.56191 3.83178C9.4546 1.5185 10.4009 0.361853 11.5998 0.10488C12.0834 0.00123882 12.5834 0.00123882 13.0669 0.10488C14.2658 0.361853 15.2121 1.5185 17.1048 3.83178L19.4337 6.67813C20.636 8.14771 22.4346 9 24.3334 9H0.333374C2.23217 9 4.0307 8.14772 5.23309 6.67813Z' fill='black'/%3E%3C/svg%3E%0A\") no-repeat}[tuiComment][data-direction=bottom]:before{top:100%;bottom:auto;transform:translate(-50%) rotate(180deg)}[tuiComment][data-direction=left]:before{left:auto;top:50%;right:100%;transform:translate(.785rem,-50%) rotate(-90deg)}[tuiComment][data-direction=right]:before{top:50%;left:100%;transform:translate(-.785rem,-50%) rotate(90deg)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
8
8
  }
9
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiCommentStyles, decorators: [{
9
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: Styles, decorators: [{
10
10
  type: Component,
11
- args: [{ standalone: true, template: '', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
12
- class: 'tui-comment',
13
- }, styles: ["[tuiComment]{position:relative;display:inline-flex;font:var(--tui-font-text-m);color:#fff;padding:.5rem .75rem;min-inline-size:2.5rem;border-radius:1rem;line-height:1.125rem;background:var(--tui-background-accent-2);align-items:center;justify-content:center}[tuiComment]:before{content:\"\";position:absolute;bottom:100%;left:50%;inline-size:1.5625rem;block-size:.5625rem;background:inherit;transform:translate(-50%);mask:url(\"data:image/svg+xml,%3Csvg width='25' height='9' viewBox='0 0 25 9' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M5.23309 6.67813L7.56191 3.83178C9.4546 1.5185 10.4009 0.361853 11.5998 0.10488C12.0834 0.00123882 12.5834 0.00123882 13.0669 0.10488C14.2658 0.361853 15.2121 1.5185 17.1048 3.83178L19.4337 6.67813C20.636 8.14771 22.4346 9 24.3334 9H0.333374C2.23217 9 4.0307 8.14772 5.23309 6.67813Z' fill='black'/%3E%3C/svg%3E%0A\") no-repeat}[tuiComment][data-direction=bottom]:before{top:100%;bottom:auto;transform:translate(-50%) rotate(180deg)}[tuiComment][data-direction=left]:before{left:auto;top:50%;right:100%;transform:translate(.785rem,-50%) rotate(-90deg)}[tuiComment][data-direction=right]:before{top:50%;left:100%;transform:translate(-.785rem,-50%) rotate(90deg)}\n"] }]
11
+ args: [{ template: '', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: { class: 'tui-comment' }, styles: ["[tuiComment]{position:relative;display:inline-flex;font:var(--tui-font-text-m);color:#fff;padding:.5rem .75rem;min-inline-size:2.5rem;border-radius:1rem;line-height:1.125rem;background:var(--tui-background-accent-2);align-items:center;justify-content:center}[tuiComment]:before{content:\"\";position:absolute;bottom:100%;left:50%;inline-size:1.5625rem;block-size:.5625rem;background:inherit;transform:translate(-50%);mask:url(\"data:image/svg+xml,%3Csvg width='25' height='9' viewBox='0 0 25 9' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M5.23309 6.67813L7.56191 3.83178C9.4546 1.5185 10.4009 0.361853 11.5998 0.10488C12.0834 0.00123882 12.5834 0.00123882 13.0669 0.10488C14.2658 0.361853 15.2121 1.5185 17.1048 3.83178L19.4337 6.67813C20.636 8.14771 22.4346 9 24.3334 9H0.333374C2.23217 9 4.0307 8.14772 5.23309 6.67813Z' fill='black'/%3E%3C/svg%3E%0A\") no-repeat}[tuiComment][data-direction=bottom]:before{top:100%;bottom:auto;transform:translate(-50%) rotate(180deg)}[tuiComment][data-direction=left]:before{left:auto;top:50%;right:100%;transform:translate(.785rem,-50%) rotate(-90deg)}[tuiComment][data-direction=right]:before{top:50%;left:100%;transform:translate(-.785rem,-50%) rotate(90deg)}\n"] }]
14
12
  }] });
15
13
  class TuiComment {
16
14
  constructor() {
17
- this.nothing = tuiWithStyles(TuiCommentStyles);
18
- this.tuiComment = 'top';
15
+ this.nothing = tuiWithStyles(Styles);
16
+ this.direction = input('top', { alias: 'tuiComment' });
19
17
  }
20
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiComment, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
21
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.15", type: TuiComment, isStandalone: true, selector: "[tuiComment]", inputs: { tuiComment: "tuiComment" }, host: { properties: { "attr.data-direction": "tuiComment" } }, ngImport: i0 }); }
18
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: TuiComment, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
19
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.16", type: TuiComment, isStandalone: true, selector: "[tuiComment]", inputs: { direction: { classPropertyName: "direction", publicName: "tuiComment", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.data-direction": "direction()" } }, ngImport: i0 }); }
22
20
  }
23
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiComment, decorators: [{
21
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: TuiComment, decorators: [{
24
22
  type: Directive,
25
23
  args: [{
26
- standalone: true,
27
24
  selector: '[tuiComment]',
28
- host: {
29
- '[attr.data-direction]': 'tuiComment',
30
- },
25
+ host: { '[attr.data-direction]': 'direction()' },
31
26
  }]
32
- }], propDecorators: { tuiComment: [{
33
- type: Input
34
- }] } });
27
+ }] });
35
28
 
36
29
  /**
37
30
  * Generated bundle index. Do not edit.
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-components-comment.mjs","sources":["../../../projects/kit/components/comment/comment.directive.ts","../../../projects/kit/components/comment/taiga-ui-kit-components-comment.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n Directive,\n Input,\n ViewEncapsulation,\n} from '@angular/core';\nimport {tuiWithStyles} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {\n type TuiHorizontalDirection,\n type TuiVerticalDirection,\n} from '@taiga-ui/core/types';\n\n@Component({\n standalone: true,\n template: '',\n styles: ['@import \"@taiga-ui/kit/styles/components/comment.less\";'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'tui-comment',\n },\n})\nclass TuiCommentStyles {}\n\n@Directive({\n standalone: true,\n selector: '[tuiComment]',\n host: {\n '[attr.data-direction]': 'tuiComment',\n },\n})\nexport class TuiComment {\n protected readonly nothing = tuiWithStyles(TuiCommentStyles);\n\n @Input()\n public tuiComment: TuiHorizontalDirection | TuiVerticalDirection | '' = 'top';\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;AAaA,MAUM,gBAAgB,CAAA;+GAAhB,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,gBAAgB,iHARR,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,osCAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;4FAQV,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAVrB,SAAS;iCACM,IAAI,EAAA,QAAA,EACN,EAAE,EAAA,aAAA,EAEG,iBAAiB,CAAC,IAAI,EACpB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EACzC,IAAA,EAAA;AACF,wBAAA,KAAK,EAAE,aAAa;AACvB,qBAAA,EAAA,MAAA,EAAA,CAAA,osCAAA,CAAA,EAAA;;MAWQ,UAAU,CAAA;AAPvB,IAAA,WAAA,GAAA;AAQuB,QAAA,IAAA,CAAA,OAAO,GAAG,aAAa,CAAC,gBAAgB,CAAC;QAGrD,IAAU,CAAA,UAAA,GAAuD,KAAK;AAChF;+GALY,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAV,UAAU,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,qBAAA,EAAA,YAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAAV,UAAU,EAAA,UAAA,EAAA,CAAA;kBAPtB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,cAAc;AACxB,oBAAA,IAAI,EAAE;AACF,wBAAA,uBAAuB,EAAE,YAAY;AACxC,qBAAA;AACJ,iBAAA;8BAKU,UAAU,EAAA,CAAA;sBADhB;;;ACnCL;;AAEG;;;;"}
1
+ {"version":3,"file":"taiga-ui-kit-components-comment.mjs","sources":["../../../projects/kit/components/comment/comment.directive.ts","../../../projects/kit/components/comment/taiga-ui-kit-components-comment.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n Directive,\n input,\n ViewEncapsulation,\n} from '@angular/core';\nimport {tuiWithStyles} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {\n type TuiHorizontalDirection,\n type TuiVerticalDirection,\n} from '@taiga-ui/core/types';\n\n@Component({\n template: '',\n styles: '@import \"@taiga-ui/kit/styles/components/comment.less\";',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {class: 'tui-comment'},\n})\nclass Styles {}\n\n@Directive({\n selector: '[tuiComment]',\n host: {'[attr.data-direction]': 'direction()'},\n})\nexport class TuiComment {\n protected readonly nothing = tuiWithStyles(Styles);\n\n public readonly direction = input<TuiHorizontalDirection | TuiVerticalDirection | ''>(\n 'top',\n {alias: 'tuiComment'},\n );\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;AAaA,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,iHANE,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,osCAAA,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,aAAa,EAAC,EAAA,MAAA,EAAA,CAAA,osCAAA,CAAA,EAAA;;MAQnB,UAAU,CAAA;AAJvB,IAAA,WAAA,GAAA;AAKuB,QAAA,IAAA,CAAA,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC;QAElC,IAAS,CAAA,SAAA,GAAG,KAAK,CAC7B,KAAK,EACL,EAAC,KAAK,EAAE,YAAY,EAAC,CACxB;AACJ;+GAPY,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAV,UAAU,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,qBAAA,EAAA,aAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAAV,UAAU,EAAA,UAAA,EAAA,CAAA;kBAJtB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,cAAc;AACxB,oBAAA,IAAI,EAAE,EAAC,uBAAuB,EAAE,aAAa,EAAC;AACjD,iBAAA;;;ACzBD;;AAEG;;;;"}
@@ -5,14 +5,14 @@ class TuiCompass {
5
5
  constructor() {
6
6
  this.degrees = NaN;
7
7
  }
8
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiCompass, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
9
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: TuiCompass, isStandalone: true, selector: "tui-compass", inputs: { degrees: "degrees" }, host: { properties: { "style.--t-degrees.deg": "degrees" } }, ngImport: i0, template: '', isInline: true, styles: ["tui-compass{position:relative;display:inline-block;color:var(--tui-background-accent-1);border-radius:50%;inline-size:1rem;block-size:1rem;border:.1875rem solid var(--tui-background-base);box-shadow:0 0 .1875rem #0000004d;transform-style:preserve-3d}tui-compass:before{content:\"\";position:absolute;top:0;left:.125rem;-webkit-mask-image:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M0 8.99993C4 8 8 8 12 8.99993C9.91509 5.73239 8.5 3 6 0C3.5 3 2 5.5 0 8.99993Z\"/></svg>');mask-image:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M0 8.99993C4 8 8 8 12 8.99993C9.91509 5.73239 8.5 3 6 0C3.5 3 2 5.5 0 8.99993Z\"/></svg>');transform:rotate(var(--t-degrees)) translateY(-.625rem) translateZ(-1rem);inline-size:.75rem;block-size:1rem;background:currentColor}tui-compass:after{position:absolute;top:0;left:0;bottom:0;right:0;content:\"\";border-radius:inherit;background:currentColor linear-gradient(-45deg,rgba(0,0,0,.2),transparent)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
8
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: TuiCompass, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
9
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.16", type: TuiCompass, isStandalone: true, selector: "tui-compass", inputs: { degrees: "degrees" }, host: { properties: { "style.--t-degrees.deg": "degrees" } }, ngImport: i0, template: '', isInline: true, styles: ["tui-compass{position:relative;display:inline-block;color:var(--tui-background-accent-1);border-radius:50%;inline-size:1rem;block-size:1rem;border:.1875rem solid var(--tui-background-base);box-shadow:0 0 .1875rem #0000004d;transform-style:preserve-3d}tui-compass:before{content:\"\";position:absolute;top:0;left:.125rem;-webkit-mask-image:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M0 8.99993C4 8 8 8 12 8.99993C9.91509 5.73239 8.5 3 6 0C3.5 3 2 5.5 0 8.99993Z\"/></svg>');mask-image:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M0 8.99993C4 8 8 8 12 8.99993C9.91509 5.73239 8.5 3 6 0C3.5 3 2 5.5 0 8.99993Z\"/></svg>');transform:rotate(var(--t-degrees)) translateY(-.625rem) translateZ(-1rem);inline-size:.75rem;block-size:1rem;background:currentColor}tui-compass:after{position:absolute;inset:0;content:\"\";border-radius:inherit;background:currentColor linear-gradient(-45deg,rgba(0,0,0,.2),transparent)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
10
10
  }
11
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiCompass, decorators: [{
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: TuiCompass, decorators: [{
12
12
  type: Component,
13
- args: [{ standalone: true, selector: 'tui-compass', template: '', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
13
+ args: [{ selector: 'tui-compass', template: '', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
14
14
  '[style.--t-degrees.deg]': 'degrees',
15
- }, styles: ["tui-compass{position:relative;display:inline-block;color:var(--tui-background-accent-1);border-radius:50%;inline-size:1rem;block-size:1rem;border:.1875rem solid var(--tui-background-base);box-shadow:0 0 .1875rem #0000004d;transform-style:preserve-3d}tui-compass:before{content:\"\";position:absolute;top:0;left:.125rem;-webkit-mask-image:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M0 8.99993C4 8 8 8 12 8.99993C9.91509 5.73239 8.5 3 6 0C3.5 3 2 5.5 0 8.99993Z\"/></svg>');mask-image:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M0 8.99993C4 8 8 8 12 8.99993C9.91509 5.73239 8.5 3 6 0C3.5 3 2 5.5 0 8.99993Z\"/></svg>');transform:rotate(var(--t-degrees)) translateY(-.625rem) translateZ(-1rem);inline-size:.75rem;block-size:1rem;background:currentColor}tui-compass:after{position:absolute;top:0;left:0;bottom:0;right:0;content:\"\";border-radius:inherit;background:currentColor linear-gradient(-45deg,rgba(0,0,0,.2),transparent)}\n"] }]
15
+ }, styles: ["tui-compass{position:relative;display:inline-block;color:var(--tui-background-accent-1);border-radius:50%;inline-size:1rem;block-size:1rem;border:.1875rem solid var(--tui-background-base);box-shadow:0 0 .1875rem #0000004d;transform-style:preserve-3d}tui-compass:before{content:\"\";position:absolute;top:0;left:.125rem;-webkit-mask-image:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M0 8.99993C4 8 8 8 12 8.99993C9.91509 5.73239 8.5 3 6 0C3.5 3 2 5.5 0 8.99993Z\"/></svg>');mask-image:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M0 8.99993C4 8 8 8 12 8.99993C9.91509 5.73239 8.5 3 6 0C3.5 3 2 5.5 0 8.99993Z\"/></svg>');transform:rotate(var(--t-degrees)) translateY(-.625rem) translateZ(-1rem);inline-size:.75rem;block-size:1rem;background:currentColor}tui-compass:after{position:absolute;inset:0;content:\"\";border-radius:inherit;background:currentColor linear-gradient(-45deg,rgba(0,0,0,.2),transparent)}\n"] }]
16
16
  }], propDecorators: { degrees: [{
17
17
  type: Input
18
18
  }] } });
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-components-compass.mjs","sources":["../../../projects/kit/components/compass/compass.component.ts","../../../projects/kit/components/compass/taiga-ui-kit-components-compass.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n Input,\n ViewEncapsulation,\n} from '@angular/core';\n\n@Component({\n standalone: true,\n selector: 'tui-compass',\n template: '',\n styles: ['@import \"@taiga-ui/kit/styles/components/compass.less\";'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[style.--t-degrees.deg]': 'degrees',\n },\n})\nexport class TuiCompass {\n @Input()\n public degrees = NaN;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;MAkBa,UAAU,CAAA;AAXvB,IAAA,WAAA,GAAA;QAaW,IAAO,CAAA,OAAA,GAAG,GAAG;AACvB;+GAHY,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAV,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,UAAU,qKART,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,o+BAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;4FAQH,UAAU,EAAA,UAAA,EAAA,CAAA;kBAXtB,SAAS;AACM,YAAA,IAAA,EAAA,CAAA,EAAA,UAAA,EAAA,IAAI,EACN,QAAA,EAAA,aAAa,EACb,QAAA,EAAA,EAAE,EAEG,aAAA,EAAA,iBAAiB,CAAC,IAAI,EACpB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EACzC,IAAA,EAAA;AACF,wBAAA,yBAAyB,EAAE,SAAS;AACvC,qBAAA,EAAA,MAAA,EAAA,CAAA,o+BAAA,CAAA,EAAA;8BAIM,OAAO,EAAA,CAAA;sBADb;;;ACnBL;;AAEG;;;;"}
1
+ {"version":3,"file":"taiga-ui-kit-components-compass.mjs","sources":["../../../projects/kit/components/compass/compass.component.ts","../../../projects/kit/components/compass/taiga-ui-kit-components-compass.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n Input,\n ViewEncapsulation,\n} from '@angular/core';\n\n@Component({\n selector: 'tui-compass',\n template: '',\n styles: '@import \"@taiga-ui/kit/styles/components/compass.less\";',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[style.--t-degrees.deg]': 'degrees',\n },\n})\nexport class TuiCompass {\n @Input()\n public degrees = NaN;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;MAiBa,UAAU,CAAA;AAVvB,IAAA,WAAA,GAAA;QAYW,IAAO,CAAA,OAAA,GAAG,GAAG;AACvB;+GAHY,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAV,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,UAAU,qKART,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,88BAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;4FAQH,UAAU,EAAA,UAAA,EAAA,CAAA;kBAVtB,SAAS;+BACI,aAAa,EAAA,QAAA,EACb,EAAE,EAAA,aAAA,EAEG,iBAAiB,CAAC,IAAI,EACpB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EACzC,IAAA,EAAA;AACF,wBAAA,yBAAyB,EAAE,SAAS;AACvC,qBAAA,EAAA,MAAA,EAAA,CAAA,88BAAA,CAAA,EAAA;8BAIM,OAAO,EAAA,CAAA;sBADb;;;AClBL;;AAEG;;;;"}
@@ -1,36 +1,36 @@
1
- import { AsyncPipe } from '@angular/common';
2
1
  import * as i0 from '@angular/core';
3
- import { inject, ChangeDetectionStrategy, Component, Injectable } from '@angular/core';
2
+ import { inject, ChangeDetectionStrategy, Component, InjectionToken, Injectable } from '@angular/core';
4
3
  import { TuiAutoFocus } from '@taiga-ui/cdk/directives/auto-focus';
5
4
  import { TUI_IS_MOBILE } from '@taiga-ui/cdk/tokens';
6
5
  import { TuiButton } from '@taiga-ui/core/components/button';
7
6
  import { TUI_CONFIRM_WORDS } from '@taiga-ui/kit/tokens';
8
7
  import { injectContext, PolymorpheusOutlet, PolymorpheusComponent } from '@taiga-ui/polymorpheus';
9
- import { TuiDialogService } from '@taiga-ui/core/components/dialog';
8
+ import { TuiDialogService } from '@taiga-ui/core/portals/dialog';
10
9
  import { defer, of } from 'rxjs';
11
10
 
12
- // TODO: Remove selector in v5
13
11
  class TuiConfirm {
14
12
  constructor() {
15
13
  this.isMobile = inject(TUI_IS_MOBILE);
16
- this.words$ = inject(TUI_CONFIRM_WORDS);
14
+ this.words = inject(TUI_CONFIRM_WORDS);
17
15
  this.context = injectContext();
18
16
  }
19
17
  get appearance() {
20
18
  return this.isMobile ? 'secondary' : 'flat';
21
19
  }
22
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiConfirm, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
23
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.15", type: TuiConfirm, isStandalone: true, selector: "tui-confirm", ngImport: i0, template: "<p\n *polymorpheusOutlet=\"context.data?.content as text\"\n class=\"t-content\"\n [innerHTML]=\"text\"\n></p>\n@if (words$ | async; as words) {\n <footer class=\"t-buttons\">\n <button\n size=\"m\"\n tuiButton\n type=\"button\"\n class=\"t-button\"\n [appearance]=\"appearance\"\n (click)=\"context.completeWith(false)\"\n >\n {{ context.data?.no || words.no }}\n </button>\n <button\n size=\"m\"\n tuiAutoFocus\n tuiButton\n type=\"button\"\n class=\"t-button\"\n [appearance]=\"context.data?.appearance || 'primary'\"\n (click)=\"context.completeWith(true)\"\n >\n {{ context.data?.yes || words.yes }}\n </button>\n </footer>\n}\n", styles: [":host{display:block}.t-content:not(:empty){margin-block-end:.875rem;overflow-wrap:break-word}.t-buttons{display:flex;justify-content:flex-end;flex-wrap:wrap-reverse;margin:.375rem -.375rem -.375rem}.t-button{margin:.375rem;white-space:nowrap}:host-context(tui-root._mobile) .t-button{flex:1;overflow:visible}:host-context(tui-dialog[new]){margin-block-start:-.75rem}:host-context(tui-dialog[new]) .t-button{margin:0}:host-context(tui-dialog[new]) .t-buttons{margin-block-end:0;margin-inline-end:0;margin-inline-start:0}\n"], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "directive", type: PolymorpheusOutlet, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { kind: "directive", type: TuiAutoFocus, selector: "[tuiAutoFocus]", inputs: ["tuiAutoFocus"] }, { kind: "directive", type: TuiButton, selector: "a[tuiButton],button[tuiButton],a[tuiIconButton],button[tuiIconButton]", inputs: ["size"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
20
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: TuiConfirm, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
21
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.16", type: TuiConfirm, isStandalone: true, selector: "ng-component", ngImport: i0, template: "<p\n *polymorpheusOutlet=\"context.data?.content as text\"\n class=\"t-content\"\n [innerHTML]=\"text\"\n></p>\n<footer class=\"t-buttons\">\n <button\n size=\"m\"\n tuiButton\n type=\"button\"\n class=\"t-button\"\n [appearance]=\"appearance\"\n (click)=\"context.completeWith(false)\"\n >\n {{ context.data?.no || words().no }}\n </button>\n <button\n size=\"m\"\n tuiAutoFocus\n tuiButton\n type=\"button\"\n class=\"t-button\"\n [appearance]=\"context.data?.appearance || 'primary'\"\n (click)=\"context.completeWith(true)\"\n >\n {{ context.data?.yes || words().yes }}\n </button>\n</footer>\n", styles: [":host{display:block}.t-content:not(:empty){margin-block-end:.875rem;overflow-wrap:break-word}.t-buttons{display:flex;justify-content:flex-end;flex-wrap:wrap-reverse;margin:.375rem -.375rem -.375rem}.t-button{margin:.375rem;white-space:nowrap}:host-context(tui-root._mobile) .t-button{flex:1;overflow:visible}:host-context(tui-dialog){margin-block-start:-.75rem}:host-context(tui-dialog) .t-button{margin:0}:host-context(tui-dialog) .t-buttons{margin-block-end:0;margin-inline-end:0;margin-inline-start:0}:host-context(tui-dialog) .t-buttons:first-child{margin-block-start:2rem}\n"], dependencies: [{ kind: "directive", type: PolymorpheusOutlet, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { kind: "directive", type: TuiAutoFocus, selector: "[tuiAutoFocus]", inputs: ["tuiAutoFocus"] }, { kind: "directive", type: TuiButton, selector: "a[tuiButton],button[tuiButton],a[tuiIconButton],button[tuiIconButton]", inputs: ["size"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
24
22
  }
25
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiConfirm, decorators: [{
23
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: TuiConfirm, decorators: [{
26
24
  type: Component,
27
- args: [{ selector: 'tui-confirm', imports: [AsyncPipe, PolymorpheusOutlet, TuiAutoFocus, TuiButton], changeDetection: ChangeDetectionStrategy.OnPush, template: "<p\n *polymorpheusOutlet=\"context.data?.content as text\"\n class=\"t-content\"\n [innerHTML]=\"text\"\n></p>\n@if (words$ | async; as words) {\n <footer class=\"t-buttons\">\n <button\n size=\"m\"\n tuiButton\n type=\"button\"\n class=\"t-button\"\n [appearance]=\"appearance\"\n (click)=\"context.completeWith(false)\"\n >\n {{ context.data?.no || words.no }}\n </button>\n <button\n size=\"m\"\n tuiAutoFocus\n tuiButton\n type=\"button\"\n class=\"t-button\"\n [appearance]=\"context.data?.appearance || 'primary'\"\n (click)=\"context.completeWith(true)\"\n >\n {{ context.data?.yes || words.yes }}\n </button>\n </footer>\n}\n", styles: [":host{display:block}.t-content:not(:empty){margin-block-end:.875rem;overflow-wrap:break-word}.t-buttons{display:flex;justify-content:flex-end;flex-wrap:wrap-reverse;margin:.375rem -.375rem -.375rem}.t-button{margin:.375rem;white-space:nowrap}:host-context(tui-root._mobile) .t-button{flex:1;overflow:visible}:host-context(tui-dialog[new]){margin-block-start:-.75rem}:host-context(tui-dialog[new]) .t-button{margin:0}:host-context(tui-dialog[new]) .t-buttons{margin-block-end:0;margin-inline-end:0;margin-inline-start:0}\n"] }]
25
+ args: [{ imports: [PolymorpheusOutlet, TuiAutoFocus, TuiButton], changeDetection: ChangeDetectionStrategy.OnPush, template: "<p\n *polymorpheusOutlet=\"context.data?.content as text\"\n class=\"t-content\"\n [innerHTML]=\"text\"\n></p>\n<footer class=\"t-buttons\">\n <button\n size=\"m\"\n tuiButton\n type=\"button\"\n class=\"t-button\"\n [appearance]=\"appearance\"\n (click)=\"context.completeWith(false)\"\n >\n {{ context.data?.no || words().no }}\n </button>\n <button\n size=\"m\"\n tuiAutoFocus\n tuiButton\n type=\"button\"\n class=\"t-button\"\n [appearance]=\"context.data?.appearance || 'primary'\"\n (click)=\"context.completeWith(true)\"\n >\n {{ context.data?.yes || words().yes }}\n </button>\n</footer>\n", styles: [":host{display:block}.t-content:not(:empty){margin-block-end:.875rem;overflow-wrap:break-word}.t-buttons{display:flex;justify-content:flex-end;flex-wrap:wrap-reverse;margin:.375rem -.375rem -.375rem}.t-button{margin:.375rem;white-space:nowrap}:host-context(tui-root._mobile) .t-button{flex:1;overflow:visible}:host-context(tui-dialog){margin-block-start:-.75rem}:host-context(tui-dialog) .t-button{margin:0}:host-context(tui-dialog) .t-buttons{margin-block-end:0;margin-inline-end:0;margin-inline-start:0}:host-context(tui-dialog) .t-buttons:first-child{margin-block-start:2rem}\n"] }]
28
26
  }] });
29
27
  const TUI_CONFIRM = new PolymorpheusComponent(TuiConfirm);
28
+ const TUI_CONFIRM_DIALOG = new InjectionToken(ngDevMode ? 'TUI_CONFIRM_DIALOG' : '', { factory: () => TUI_CONFIRM });
30
29
 
31
30
  class TuiConfirmService {
32
31
  constructor() {
33
32
  this.dialogs = inject(TuiDialogService);
33
+ this.component = inject(TUI_CONFIRM_DIALOG);
34
34
  this.dirty = false;
35
35
  }
36
36
  markAsDirty() {
@@ -41,16 +41,13 @@ class TuiConfirmService {
41
41
  }
42
42
  withConfirm(options) {
43
43
  return defer(() => this.dirty
44
- ? this.dialogs.open(TUI_CONFIRM, {
45
- size: 's',
46
- ...options,
47
- })
44
+ ? this.dialogs.open(this.component, { size: 's', ...options })
48
45
  : of(true));
49
46
  }
50
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiConfirmService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
51
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiConfirmService }); }
47
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: TuiConfirmService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
48
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: TuiConfirmService }); }
52
49
  }
53
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiConfirmService, decorators: [{
50
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: TuiConfirmService, decorators: [{
54
51
  type: Injectable
55
52
  }] });
56
53
 
@@ -58,5 +55,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
58
55
  * Generated bundle index. Do not edit.
59
56
  */
60
57
 
61
- export { TUI_CONFIRM, TuiConfirm, TuiConfirmService };
58
+ export { TUI_CONFIRM, TUI_CONFIRM_DIALOG, TuiConfirm, TuiConfirmService };
62
59
  //# sourceMappingURL=taiga-ui-kit-components-confirm.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-components-confirm.mjs","sources":["../../../projects/kit/components/confirm/confirm.component.ts","../../../projects/kit/components/confirm/confirm.template.html","../../../projects/kit/components/confirm/confirm.service.ts","../../../projects/kit/components/confirm/taiga-ui-kit-components-confirm.ts"],"sourcesContent":["import {AsyncPipe} from '@angular/common';\nimport {ChangeDetectionStrategy, Component, inject} from '@angular/core';\nimport {TuiAutoFocus} from '@taiga-ui/cdk/directives/auto-focus';\nimport {TUI_IS_MOBILE} from '@taiga-ui/cdk/tokens';\nimport {TuiButton} from '@taiga-ui/core/components/button';\nimport {type TuiDialogContext} from '@taiga-ui/core/components/dialog';\nimport {TUI_CONFIRM_WORDS} from '@taiga-ui/kit/tokens';\nimport {\n injectContext,\n PolymorpheusComponent,\n type PolymorpheusContent,\n PolymorpheusOutlet,\n} from '@taiga-ui/polymorpheus';\n\nexport interface TuiConfirmData {\n readonly content?: PolymorpheusContent;\n readonly no?: string;\n readonly yes?: string;\n readonly appearance?: string;\n}\n\n// TODO: Remove selector in v5\n@Component({\n selector: 'tui-confirm',\n imports: [AsyncPipe, PolymorpheusOutlet, TuiAutoFocus, TuiButton],\n templateUrl: './confirm.template.html',\n styleUrls: ['./confirm.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiConfirm {\n private readonly isMobile = inject(TUI_IS_MOBILE);\n protected readonly words$ = inject(TUI_CONFIRM_WORDS);\n\n public readonly context =\n injectContext<TuiDialogContext<boolean, TuiConfirmData | undefined>>();\n\n protected get appearance(): string {\n return this.isMobile ? 'secondary' : 'flat';\n }\n}\n\nexport const TUI_CONFIRM = new PolymorpheusComponent(TuiConfirm);\n","<p\n *polymorpheusOutlet=\"context.data?.content as text\"\n class=\"t-content\"\n [innerHTML]=\"text\"\n></p>\n@if (words$ | async; as words) {\n <footer class=\"t-buttons\">\n <button\n size=\"m\"\n tuiButton\n type=\"button\"\n class=\"t-button\"\n [appearance]=\"appearance\"\n (click)=\"context.completeWith(false)\"\n >\n {{ context.data?.no || words.no }}\n </button>\n <button\n size=\"m\"\n tuiAutoFocus\n tuiButton\n type=\"button\"\n class=\"t-button\"\n [appearance]=\"context.data?.appearance || 'primary'\"\n (click)=\"context.completeWith(true)\"\n >\n {{ context.data?.yes || words.yes }}\n </button>\n </footer>\n}\n","import {inject, Injectable} from '@angular/core';\nimport {type TuiDialogOptions, TuiDialogService} from '@taiga-ui/core/components/dialog';\nimport {defer, type Observable, of} from 'rxjs';\n\nimport {TUI_CONFIRM, type TuiConfirmData} from './confirm.component';\n\n@Injectable()\nexport class TuiConfirmService {\n private readonly dialogs = inject(TuiDialogService);\n private dirty = false;\n\n public markAsDirty(): void {\n this.dirty = true;\n }\n\n public markAsPristine(): void {\n this.dirty = false;\n }\n\n public withConfirm(\n options: Partial<TuiDialogOptions<TuiConfirmData>>,\n ): Observable<boolean> {\n return defer(() =>\n this.dirty\n ? this.dialogs.open<boolean>(TUI_CONFIRM, {\n size: 's',\n ...options,\n })\n : of(true),\n );\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;AAqBA;MAQa,UAAU,CAAA;AAPvB,IAAA,WAAA,GAAA;AAQqB,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,aAAa,CAAC;AAC9B,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,iBAAiB,CAAC;QAErC,IAAO,CAAA,OAAA,GACnB,aAAa,EAAyD;AAK7E;AAHG,IAAA,IAAc,UAAU,GAAA;QACpB,OAAO,IAAI,CAAC,QAAQ,GAAG,WAAW,GAAG,MAAM;;+GARtC,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAV,UAAU,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,aAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC7BvB,y1BA8BA,EDNc,MAAA,EAAA,CAAA,2gBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,SAAS,8CAAE,kBAAkB,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,2BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,YAAY,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,SAAS,EAAA,QAAA,EAAA,uEAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;4FAKvD,UAAU,EAAA,UAAA,EAAA,CAAA;kBAPtB,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,aAAa,EACd,OAAA,EAAA,CAAC,SAAS,EAAE,kBAAkB,EAAE,YAAY,EAAE,SAAS,CAAC,EAGhD,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,y1BAAA,EAAA,MAAA,EAAA,CAAA,2gBAAA,CAAA,EAAA;;MActC,WAAW,GAAG,IAAI,qBAAqB,CAAC,UAAU;;MElClD,iBAAiB,CAAA;AAD9B,IAAA,WAAA,GAAA;AAEqB,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,gBAAgB,CAAC;QAC3C,IAAK,CAAA,KAAA,GAAG,KAAK;AAsBxB;IApBU,WAAW,GAAA;AACd,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI;;IAGd,cAAc,GAAA;AACjB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;;AAGf,IAAA,WAAW,CACd,OAAkD,EAAA;AAElD,QAAA,OAAO,KAAK,CAAC,MACT,IAAI,CAAC;cACC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAU,WAAW,EAAE;AACpC,gBAAA,IAAI,EAAE,GAAG;AACT,gBAAA,GAAG,OAAO;aACb;AACH,cAAE,EAAE,CAAC,IAAI,CAAC,CACjB;;+GAtBI,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;mHAAjB,iBAAiB,EAAA,CAAA,CAAA;;4FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAD7B;;;ACND;;AAEG;;;;"}
1
+ {"version":3,"file":"taiga-ui-kit-components-confirm.mjs","sources":["../../../projects/kit/components/confirm/confirm.component.ts","../../../projects/kit/components/confirm/confirm.template.html","../../../projects/kit/components/confirm/confirm.service.ts","../../../projects/kit/components/confirm/taiga-ui-kit-components-confirm.ts"],"sourcesContent":["import {ChangeDetectionStrategy, Component, inject, InjectionToken} from '@angular/core';\nimport {TuiAutoFocus} from '@taiga-ui/cdk/directives/auto-focus';\nimport {TUI_IS_MOBILE} from '@taiga-ui/cdk/tokens';\nimport {TuiButton} from '@taiga-ui/core/components/button';\nimport {type TuiDialogContext} from '@taiga-ui/core/portals/dialog';\nimport {TUI_CONFIRM_WORDS} from '@taiga-ui/kit/tokens';\nimport {\n injectContext,\n PolymorpheusComponent,\n type PolymorpheusContent,\n PolymorpheusOutlet,\n} from '@taiga-ui/polymorpheus';\n\nexport interface TuiConfirmData {\n readonly content?: PolymorpheusContent;\n readonly no?: string;\n readonly yes?: string;\n readonly appearance?: string;\n}\n\n@Component({\n imports: [PolymorpheusOutlet, TuiAutoFocus, TuiButton],\n templateUrl: './confirm.template.html',\n styleUrl: './confirm.style.less',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiConfirm {\n private readonly isMobile = inject(TUI_IS_MOBILE);\n protected readonly words = inject(TUI_CONFIRM_WORDS);\n\n public readonly context =\n injectContext<TuiDialogContext<boolean, TuiConfirmData | undefined>>();\n\n protected get appearance(): string {\n return this.isMobile ? 'secondary' : 'flat';\n }\n}\n\nexport const TUI_CONFIRM = new PolymorpheusComponent(TuiConfirm);\nexport const TUI_CONFIRM_DIALOG = new InjectionToken<\n PolymorpheusContent<TuiDialogContext<boolean, unknown>>\n>(ngDevMode ? 'TUI_CONFIRM_DIALOG' : '', {factory: () => TUI_CONFIRM});\n","<p\n *polymorpheusOutlet=\"context.data?.content as text\"\n class=\"t-content\"\n [innerHTML]=\"text\"\n></p>\n<footer class=\"t-buttons\">\n <button\n size=\"m\"\n tuiButton\n type=\"button\"\n class=\"t-button\"\n [appearance]=\"appearance\"\n (click)=\"context.completeWith(false)\"\n >\n {{ context.data?.no || words().no }}\n </button>\n <button\n size=\"m\"\n tuiAutoFocus\n tuiButton\n type=\"button\"\n class=\"t-button\"\n [appearance]=\"context.data?.appearance || 'primary'\"\n (click)=\"context.completeWith(true)\"\n >\n {{ context.data?.yes || words().yes }}\n </button>\n</footer>\n","import {inject, Injectable} from '@angular/core';\nimport {type TuiDialogOptions, TuiDialogService} from '@taiga-ui/core/portals/dialog';\nimport {defer, type Observable, of} from 'rxjs';\n\nimport {TUI_CONFIRM_DIALOG, type TuiConfirmData} from './confirm.component';\n\n@Injectable()\nexport class TuiConfirmService {\n private readonly dialogs = inject(TuiDialogService);\n private readonly component = inject(TUI_CONFIRM_DIALOG);\n private dirty = false;\n\n public markAsDirty(): void {\n this.dirty = true;\n }\n\n public markAsPristine(): void {\n this.dirty = false;\n }\n\n public withConfirm<T = TuiConfirmData>(\n options: Partial<TuiDialogOptions<NoInfer<T>>>,\n ): Observable<boolean> {\n return defer(() =>\n this.dirty\n ? this.dialogs.open<boolean>(this.component, {size: 's', ...options})\n : of(true),\n );\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;MA0Ba,UAAU,CAAA;AANvB,IAAA,WAAA,GAAA;AAOqB,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,aAAa,CAAC;AAC9B,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,iBAAiB,CAAC;QAEpC,IAAO,CAAA,OAAA,GACnB,aAAa,EAAyD;AAK7E;AAHG,IAAA,IAAc,UAAU,GAAA;QACpB,OAAO,IAAI,CAAC,QAAQ,GAAG,WAAW,GAAG,MAAM;;+GARtC,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAV,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,UAAU,wEC1BvB,4tBA4BA,EAAA,MAAA,EAAA,CAAA,qkBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDPc,kBAAkB,EAAE,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,2BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,YAAY,qFAAE,SAAS,EAAA,QAAA,EAAA,uEAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;4FAK5C,UAAU,EAAA,UAAA,EAAA,CAAA;kBANtB,SAAS;8BACG,CAAC,kBAAkB,EAAE,YAAY,EAAE,SAAS,CAAC,EAAA,eAAA,EAGrC,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,4tBAAA,EAAA,MAAA,EAAA,CAAA,qkBAAA,CAAA,EAAA;;MActC,WAAW,GAAG,IAAI,qBAAqB,CAAC,UAAU;AAClD,MAAA,kBAAkB,GAAG,IAAI,cAAc,CAElD,SAAS,GAAG,oBAAoB,GAAG,EAAE,EAAE,EAAC,OAAO,EAAE,MAAM,WAAW,EAAC;;MElCxD,iBAAiB,CAAA;AAD9B,IAAA,WAAA,GAAA;AAEqB,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,gBAAgB,CAAC;AAClC,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,kBAAkB,CAAC;QAC/C,IAAK,CAAA,KAAA,GAAG,KAAK;AAmBxB;IAjBU,WAAW,GAAA;AACd,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI;;IAGd,cAAc,GAAA;AACjB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;;AAGf,IAAA,WAAW,CACd,OAA8C,EAAA;AAE9C,QAAA,OAAO,KAAK,CAAC,MACT,IAAI,CAAC;AACD,cAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAU,IAAI,CAAC,SAAS,EAAE,EAAC,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,EAAC;AACpE,cAAE,EAAE,CAAC,IAAI,CAAC,CACjB;;+GApBI,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;mHAAjB,iBAAiB,EAAA,CAAA,CAAA;;4FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAD7B;;;ACND;;AAEG;;;;"}
@@ -0,0 +1,113 @@
1
+ import * as i1 from '@angular/cdk/clipboard';
2
+ import { ClipboardModule } from '@angular/cdk/clipboard';
3
+ import * as i0 from '@angular/core';
4
+ import { inject, Input, ChangeDetectionStrategy, Component, Directive } from '@angular/core';
5
+ import { toSignal, toObservable } from '@angular/core/rxjs-interop';
6
+ import { TUI_FALSE_HANDLER } from '@taiga-ui/cdk/constants';
7
+ import { tuiIsString } from '@taiga-ui/cdk/utils/miscellaneous';
8
+ import { TuiButton } from '@taiga-ui/core/components/button';
9
+ import { TuiIcon } from '@taiga-ui/core/components/icon';
10
+ import { TUI_NOTIFICATION_OPTIONS } from '@taiga-ui/core/components/notification';
11
+ import * as i2 from '@taiga-ui/core/portals/hint';
12
+ import { TuiHint, TuiHintDirective } from '@taiga-ui/core/portals/hint';
13
+ import { TUI_COPY_TEXTS } from '@taiga-ui/kit/tokens';
14
+ import { BehaviorSubject, switchMap, timer, map, startWith, Subject } from 'rxjs';
15
+ import { tuiCreateOptions, tuiDirectiveBinding } from '@taiga-ui/cdk/utils/di';
16
+ import { DOCUMENT } from '@angular/common';
17
+ import { TuiTextfieldComponent, tuiTextfieldIcon } from '@taiga-ui/core/components/textfield';
18
+ import * as i1$1 from '@taiga-ui/core/directives/appearance';
19
+ import { TUI_APPEARANCE_OPTIONS, TuiWithAppearance } from '@taiga-ui/core/directives/appearance';
20
+
21
+ const [TUI_COPY_OPTIONS, tuiCopyOptionsProvider] = tuiCreateOptions({ icon: () => '@tui.copy' });
22
+
23
+ class TuiCopyComponent {
24
+ constructor() {
25
+ this.notification = inject(TUI_NOTIFICATION_OPTIONS);
26
+ this.options = inject(TUI_COPY_OPTIONS);
27
+ this.copied$ = new BehaviorSubject(false);
28
+ this.texts = inject(TUI_COPY_TEXTS);
29
+ this.hint = toSignal(this.copied$.pipe(switchMap((copied) => timer(2000).pipe(map(TUI_FALSE_HANDLER), startWith(copied)))));
30
+ this.size = 'm';
31
+ }
32
+ get icon() {
33
+ return tuiIsString(this.options.icon)
34
+ ? this.options.icon
35
+ : this.options.icon(this.size);
36
+ }
37
+ get check() {
38
+ return tuiIsString(this.notification.icon)
39
+ ? this.notification.icon
40
+ : this.notification.icon('positive');
41
+ }
42
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: TuiCopyComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
43
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.16", type: TuiCopyComponent, isStandalone: true, selector: "tui-copy", inputs: { size: "size" }, host: { listeners: { "pointerdown": "copied$.next(false)" }, properties: { "attr.data-size": "size" } }, ngImport: i0, template: "<span\n #content\n tuiHintAppearance=\"dark\"\n tuiHintDirection=\"top\"\n class=\"t-content\"\n [cdkCopyToClipboard]=\"content.textContent ?? ''\"\n [tuiHint]=\"template\"\n [tuiHintManual]=\"!!hint()\"\n (cdkCopyToClipboardCopied)=\"copied$.next($event)\"\n>\n <ng-content />\n</span>\n<button\n appearance=\"icon\"\n size=\"xs\"\n tuiIconButton\n type=\"button\"\n class=\"t-button\"\n [attr.aria-label]=\"texts()[0]\"\n [cdkCopyToClipboard]=\"content.textContent ?? ''\"\n [iconStart]=\"icon\"\n (cdkCopyToClipboardCopied)=\"copied$.next($event)\"\n></button>\n<ng-template #template>\n <tui-icon\n class=\"t-icon\"\n [icon]=\"check\"\n />\n {{ texts()[1] }}\n</ng-template>\n", styles: [":host{cursor:pointer}:host[data-size=m]{--t-size: min( calc(1em + 1px) , 1rem)}:host[data-size=l]{--t-size: max(calc(1em / 1.57), min(max(calc(1em / 1.18), 1.25rem), 1.5rem))}@media (hover: hover) and (pointer: fine){:host:hover .t-content{opacity:var(--tui-disabled-opacity);-webkit-mask-position:0;mask-position:0}:host:hover .t-button{opacity:1}}:host:has(.t-button:focus-visible) .t-content{opacity:var(--tui-disabled-opacity);-webkit-mask-position:0;mask-position:0}.t-content{transition-property:opacity,mask;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;mask:linear-gradient(to var(--tui-inline-start),transparent calc(1.25 * var(--t-size)),black calc(2 * var(--t-size))) no-repeat,linear-gradient(to var(--tui-inline-end),black,black calc(2 * var(--t-size)),transparent calc(2 * var(--t-size))) no-repeat;-webkit-mask-position:calc(var(--tui-inline) * 2 * var(--t-size)),0;mask-position:calc(var(--tui-inline) * 2 * var(--t-size)),0}.t-button{position:sticky;inset-inline-start:0;opacity:0;border-radius:0;font-size:inherit!important;margin-inline-start:calc(-1 * var(--t-size));--t-size: inherit}.t-button:before{font-size:var(--t-size)}.t-button:focus-visible{opacity:1}.t-icon{font-size:1rem;margin-inline-end:.25rem;vertical-align:sub;color:var(--tui-text-positive)}\n"], dependencies: [{ kind: "ngmodule", type: ClipboardModule }, { kind: "directive", type: i1.CdkCopyToClipboard, selector: "[cdkCopyToClipboard]", inputs: ["cdkCopyToClipboard", "cdkCopyToClipboardAttempts"], outputs: ["cdkCopyToClipboardCopied"] }, { kind: "directive", type: TuiButton, selector: "a[tuiButton],button[tuiButton],a[tuiIconButton],button[tuiIconButton]", inputs: ["size"] }, { kind: "directive", type: i2.TuiHintDirective, selector: "[tuiHint]:not(ng-container):not(ng-template)", inputs: ["tuiHint", "tuiHintContext", "tuiHintAppearance"], outputs: ["tuiHintVisible"] }, { kind: "directive", type: i2.TuiHintManual, selector: "[tuiHint][tuiHintManual]", inputs: ["tuiHintManual"] }, { kind: "component", type: TuiIcon, selector: "tui-icon:not([tuiBadge])", inputs: ["background"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
44
+ }
45
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: TuiCopyComponent, decorators: [{
46
+ type: Component,
47
+ args: [{ selector: 'tui-copy', imports: [ClipboardModule, TuiButton, TuiHint, TuiIcon], changeDetection: ChangeDetectionStrategy.OnPush, host: {
48
+ '[attr.data-size]': 'size',
49
+ '(pointerdown)': 'copied$.next(false)',
50
+ }, template: "<span\n #content\n tuiHintAppearance=\"dark\"\n tuiHintDirection=\"top\"\n class=\"t-content\"\n [cdkCopyToClipboard]=\"content.textContent ?? ''\"\n [tuiHint]=\"template\"\n [tuiHintManual]=\"!!hint()\"\n (cdkCopyToClipboardCopied)=\"copied$.next($event)\"\n>\n <ng-content />\n</span>\n<button\n appearance=\"icon\"\n size=\"xs\"\n tuiIconButton\n type=\"button\"\n class=\"t-button\"\n [attr.aria-label]=\"texts()[0]\"\n [cdkCopyToClipboard]=\"content.textContent ?? ''\"\n [iconStart]=\"icon\"\n (cdkCopyToClipboardCopied)=\"copied$.next($event)\"\n></button>\n<ng-template #template>\n <tui-icon\n class=\"t-icon\"\n [icon]=\"check\"\n />\n {{ texts()[1] }}\n</ng-template>\n", styles: [":host{cursor:pointer}:host[data-size=m]{--t-size: min( calc(1em + 1px) , 1rem)}:host[data-size=l]{--t-size: max(calc(1em / 1.57), min(max(calc(1em / 1.18), 1.25rem), 1.5rem))}@media (hover: hover) and (pointer: fine){:host:hover .t-content{opacity:var(--tui-disabled-opacity);-webkit-mask-position:0;mask-position:0}:host:hover .t-button{opacity:1}}:host:has(.t-button:focus-visible) .t-content{opacity:var(--tui-disabled-opacity);-webkit-mask-position:0;mask-position:0}.t-content{transition-property:opacity,mask;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;mask:linear-gradient(to var(--tui-inline-start),transparent calc(1.25 * var(--t-size)),black calc(2 * var(--t-size))) no-repeat,linear-gradient(to var(--tui-inline-end),black,black calc(2 * var(--t-size)),transparent calc(2 * var(--t-size))) no-repeat;-webkit-mask-position:calc(var(--tui-inline) * 2 * var(--t-size)),0;mask-position:calc(var(--tui-inline) * 2 * var(--t-size)),0}.t-button{position:sticky;inset-inline-start:0;opacity:0;border-radius:0;font-size:inherit!important;margin-inline-start:calc(-1 * var(--t-size));--t-size: inherit}.t-button:before{font-size:var(--t-size)}.t-button:focus-visible{opacity:1}.t-icon{font-size:1rem;margin-inline-end:.25rem;vertical-align:sub;color:var(--tui-text-positive)}\n"] }]
51
+ }], propDecorators: { size: [{
52
+ type: Input
53
+ }] } });
54
+
55
+ class TuiCopyDirective {
56
+ constructor() {
57
+ this.copied$ = new Subject();
58
+ this.doc = inject(DOCUMENT);
59
+ this.textfield = inject(TuiTextfieldComponent);
60
+ this.icons = tuiTextfieldIcon(TUI_COPY_OPTIONS);
61
+ this.copyTexts = inject(TUI_COPY_TEXTS);
62
+ this.hint = tuiDirectiveBinding(TuiHintDirective, 'content', toSignal(toObservable(inject(TUI_COPY_TEXTS)).pipe(switchMap(([copy, copied]) => this.copied$.pipe(switchMap(() => timer(3000).pipe(map(() => copy), startWith(copied))), startWith(copy)))), { initialValue: '' }));
63
+ }
64
+ copy() {
65
+ this.textfield.input()?.nativeElement.select();
66
+ this.doc.execCommand('copy');
67
+ this.copied$.next();
68
+ }
69
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: TuiCopyDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
70
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.16", type: TuiCopyDirective, isStandalone: true, selector: "tui-icon[tuiCopy]", host: { listeners: { "click": "copy()" }, properties: { "style.pointer-events": "textfield.value() ? null : \"none\"", "style.opacity": "textfield.value() ? null : \"var(--tui-disabled-opacity)\"", "style.border-width.rem": "textfield.options.size() === \"l\" ? null : 0.25" }, styleAttribute: "cursor: pointer" }, providers: [
71
+ {
72
+ provide: TUI_APPEARANCE_OPTIONS,
73
+ useValue: { appearance: 'icon' },
74
+ },
75
+ ], hostDirectives: [{ directive: i1$1.TuiWithAppearance }, { directive: i2.TuiHintDirective, inputs: ["tuiHintAppearance", "tuiHintAppearance", "tuiHintContext", "tuiHintContext"] }], ngImport: i0 }); }
76
+ }
77
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: TuiCopyDirective, decorators: [{
78
+ type: Directive,
79
+ args: [{
80
+ selector: 'tui-icon[tuiCopy]',
81
+ providers: [
82
+ {
83
+ provide: TUI_APPEARANCE_OPTIONS,
84
+ useValue: { appearance: 'icon' },
85
+ },
86
+ ],
87
+ hostDirectives: [
88
+ TuiWithAppearance,
89
+ {
90
+ directive: TuiHintDirective,
91
+ inputs: ['tuiHintAppearance', 'tuiHintContext'],
92
+ },
93
+ ],
94
+ host: {
95
+ style: 'cursor: pointer',
96
+ '(click)': 'copy()',
97
+ '[style.pointer-events]': 'textfield.value() ? null : "none"',
98
+ '[style.opacity]': 'textfield.value() ? null : "var(--tui-disabled-opacity)"',
99
+ '[style.border-width.rem]': 'textfield.options.size() === "l" ? null : 0.25',
100
+ },
101
+ }]
102
+ }] });
103
+
104
+ const TuiCopy = [TuiCopyComponent, TuiCopyDirective];
105
+
106
+ // TODO: Move to components in v5
107
+
108
+ /**
109
+ * Generated bundle index. Do not edit.
110
+ */
111
+
112
+ export { TUI_COPY_OPTIONS, TuiCopy, TuiCopyComponent, TuiCopyDirective, tuiCopyOptionsProvider };
113
+ //# sourceMappingURL=taiga-ui-kit-components-copy.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"taiga-ui-kit-components-copy.mjs","sources":["../../../projects/kit/components/copy/copy.options.ts","../../../projects/kit/components/copy/copy.component.ts","../../../projects/kit/components/copy/copy.template.html","../../../projects/kit/components/copy/copy.directive.ts","../../../projects/kit/components/copy/copy.ts","../../../projects/kit/components/copy/index.ts","../../../projects/kit/components/copy/taiga-ui-kit-components-copy.ts"],"sourcesContent":["import {type TuiStringHandler} from '@taiga-ui/cdk/types';\nimport {tuiCreateOptions} from '@taiga-ui/cdk/utils/di';\nimport {type TuiSizeL, type TuiSizeS} from '@taiga-ui/core/types';\n\nexport interface TuiCopyOptions {\n readonly icon: TuiStringHandler<TuiSizeL | TuiSizeS>;\n}\n\nexport const [TUI_COPY_OPTIONS, tuiCopyOptionsProvider] =\n tuiCreateOptions<TuiCopyOptions>({icon: () => '@tui.copy'});\n","import {ClipboardModule} from '@angular/cdk/clipboard';\nimport {ChangeDetectionStrategy, Component, inject, Input} from '@angular/core';\nimport {toSignal} from '@angular/core/rxjs-interop';\nimport {TUI_FALSE_HANDLER} from '@taiga-ui/cdk/constants';\nimport {tuiIsString} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiButton} from '@taiga-ui/core/components/button';\nimport {TuiIcon} from '@taiga-ui/core/components/icon';\nimport {TUI_NOTIFICATION_OPTIONS} from '@taiga-ui/core/components/notification';\nimport {TuiHint} from '@taiga-ui/core/portals/hint';\nimport {type TuiSizeL} from '@taiga-ui/core/types';\nimport {TUI_COPY_TEXTS} from '@taiga-ui/kit/tokens';\nimport {BehaviorSubject, map, startWith, switchMap, timer} from 'rxjs';\n\nimport {TUI_COPY_OPTIONS} from './copy.options';\n\n@Component({\n selector: 'tui-copy',\n imports: [ClipboardModule, TuiButton, TuiHint, TuiIcon],\n templateUrl: './copy.template.html',\n styleUrl: './copy.style.less',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[attr.data-size]': 'size',\n '(pointerdown)': 'copied$.next(false)',\n },\n})\nexport class TuiCopyComponent {\n protected readonly notification = inject(TUI_NOTIFICATION_OPTIONS);\n protected readonly options = inject(TUI_COPY_OPTIONS);\n protected readonly copied$ = new BehaviorSubject<boolean>(false);\n protected readonly texts = inject(TUI_COPY_TEXTS);\n protected readonly hint = toSignal(\n this.copied$.pipe(\n switchMap((copied) =>\n timer(2000).pipe(map(TUI_FALSE_HANDLER), startWith(copied)),\n ),\n ),\n );\n\n @Input()\n public size: TuiSizeL = 'm';\n\n protected get icon(): string {\n return tuiIsString(this.options.icon)\n ? this.options.icon\n : this.options.icon(this.size);\n }\n\n protected get check(): string {\n return tuiIsString(this.notification.icon)\n ? this.notification.icon\n : this.notification.icon('positive');\n }\n}\n","<span\n #content\n tuiHintAppearance=\"dark\"\n tuiHintDirection=\"top\"\n class=\"t-content\"\n [cdkCopyToClipboard]=\"content.textContent ?? ''\"\n [tuiHint]=\"template\"\n [tuiHintManual]=\"!!hint()\"\n (cdkCopyToClipboardCopied)=\"copied$.next($event)\"\n>\n <ng-content />\n</span>\n<button\n appearance=\"icon\"\n size=\"xs\"\n tuiIconButton\n type=\"button\"\n class=\"t-button\"\n [attr.aria-label]=\"texts()[0]\"\n [cdkCopyToClipboard]=\"content.textContent ?? ''\"\n [iconStart]=\"icon\"\n (cdkCopyToClipboardCopied)=\"copied$.next($event)\"\n></button>\n<ng-template #template>\n <tui-icon\n class=\"t-icon\"\n [icon]=\"check\"\n />\n {{ texts()[1] }}\n</ng-template>\n","import {DOCUMENT} from '@angular/common';\nimport {Directive, inject} from '@angular/core';\nimport {toObservable, toSignal} from '@angular/core/rxjs-interop';\nimport {tuiDirectiveBinding} from '@taiga-ui/cdk/utils/di';\nimport {\n TuiTextfieldComponent,\n tuiTextfieldIcon,\n} from '@taiga-ui/core/components/textfield';\nimport {\n TUI_APPEARANCE_OPTIONS,\n TuiWithAppearance,\n} from '@taiga-ui/core/directives/appearance';\nimport {TuiHintDirective} from '@taiga-ui/core/portals/hint';\nimport {TUI_COPY_TEXTS} from '@taiga-ui/kit/tokens';\nimport {map, startWith, Subject, switchMap, timer} from 'rxjs';\n\nimport {TUI_COPY_OPTIONS} from './copy.options';\n\n@Directive({\n selector: 'tui-icon[tuiCopy]',\n providers: [\n {\n provide: TUI_APPEARANCE_OPTIONS,\n useValue: {appearance: 'icon'},\n },\n ],\n hostDirectives: [\n TuiWithAppearance,\n {\n directive: TuiHintDirective,\n inputs: ['tuiHintAppearance', 'tuiHintContext'],\n },\n ],\n host: {\n style: 'cursor: pointer',\n '(click)': 'copy()',\n '[style.pointer-events]': 'textfield.value() ? null : \"none\"',\n '[style.opacity]': 'textfield.value() ? null : \"var(--tui-disabled-opacity)\"',\n '[style.border-width.rem]': 'textfield.options.size() === \"l\" ? null : 0.25',\n },\n})\nexport class TuiCopyDirective {\n private readonly copied$ = new Subject<void>();\n private readonly doc = inject(DOCUMENT);\n\n protected readonly textfield = inject(TuiTextfieldComponent);\n protected readonly icons = tuiTextfieldIcon(TUI_COPY_OPTIONS);\n protected readonly copyTexts = inject(TUI_COPY_TEXTS);\n protected readonly hint = tuiDirectiveBinding(\n TuiHintDirective,\n 'content',\n toSignal(\n toObservable(inject(TUI_COPY_TEXTS)).pipe(\n switchMap(([copy, copied]) =>\n this.copied$.pipe(\n switchMap(() =>\n timer(3000).pipe(\n map(() => copy),\n startWith(copied),\n ),\n ),\n startWith(copy),\n ),\n ),\n ),\n {initialValue: ''},\n ),\n );\n\n protected copy(): void {\n this.textfield.input()?.nativeElement.select();\n this.doc.execCommand('copy');\n this.copied$.next();\n }\n}\n","import {TuiCopyComponent} from './copy.component';\nimport {TuiCopyDirective} from './copy.directive';\n\nexport const TuiCopy = [TuiCopyComponent, TuiCopyDirective] as const;\n","// TODO: Move to components in v5\nexport * from './copy';\nexport * from './copy.component';\nexport * from './copy.directive';\nexport * from './copy.options';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}